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

@s2n_use_color_in_output = external dso_local global i8, align 1
@empty_bitfield = external dso_local constant [22 x i8], align 16
@test_extension_type = external dso_local constant %struct.s2n_extension_type, align 8
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_supported_extensions = external hidden constant [21 x i16], align 16
@.str.22 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_unsupported_extension = external constant i8, align 1
@.str.23 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [88 x i8], align 1
@__const.main.extension_type_with_null_recv = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.37 = external hidden unnamed_addr constant [93 x i8], align 1
@__const.main.request_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.38 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [80 x i8], align 1
@__const.main.response_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.40 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [187 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@__const.main.extension_type_with_failure = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.44 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [88 x i8], align 1
@__const.main.extension_type_with_null_send = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.47 = external hidden unnamed_addr constant [93 x i8], align 1
@__const.main.extension_type_with_null_should_send = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.48 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [64 x i8], align 1
@__const.main.request_extension_type.50 = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.51 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [30 x i8], align 1
@__const.main.response_extension_type.58 = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.59 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [183 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [66 x i8], align 1
@__const.main.extension_type_with_never_send = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.63 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [60 x i8], align 1
@__const.main.extension_type_with_failure.65 = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.66 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [68 x i8], align 1
@__const.main.extension_type_with_too_much_data = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.68 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [84 x i8], align 1
@__const.main.extension_type_with_null_if_missing = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.72 = external hidden unnamed_addr constant [95 x i8], align 1
@__const.main.extension_type_with_noop_if_missing = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.73 = external hidden unnamed_addr constant [98 x i8], align 1
@__const.main.extension_type_with_error_if_missing = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.74 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [54 x i8], align 1
@__const.main.test_extension_type_with_min = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.77 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [25 x i8], align 1

declare zeroext i1 @s2n_extension_always_send(ptr noundef) #0

declare i32 @s2n_extension_noop_if_missing(ptr noundef) #0

; Function Attrs: nounwind uwtable
define dso_local i32 @main() #1 {
  %1 = alloca i32, align 4
  %2 = alloca i32, align 4
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca %struct.s2n_connection, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i64, align 8
  %28 = alloca i32, align 4
  %29 = alloca i8, align 1
  %30 = alloca i16, align 2
  %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 [22 x i8], align 16
  %37 = alloca i64, align 8
  %38 = alloca i16, align 2
  %39 = alloca i8, align 1
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i8, align 1
  %44 = alloca i32, align 4
  %45 = alloca %struct.s2n_stuffer, align 8
  %46 = alloca %struct.s2n_connection, align 8
  %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 %struct.s2n_extension_type, align 8
  %54 = alloca i32, align 4
  %55 = alloca i32, align 4
  %56 = alloca i32, align 4
  %57 = alloca %struct.s2n_connection, align 8
  %58 = alloca %struct.s2n_extension_type, align 8
  %59 = alloca i32, align 4
  %60 = alloca i32, align 4
  %61 = alloca %struct.s2n_connection, align 8
  %62 = alloca %struct.s2n_extension_type, 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 i32, align 4
  %69 = alloca %struct.s2n_connection, align 8
  %70 = alloca %struct.s2n_extension_type, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca %struct.s2n_connection, align 8
  %76 = alloca %struct.s2n_stuffer, align 8
  %77 = alloca i32, align 4
  %78 = alloca i32, align 4
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_extension_type, align 8
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca %struct.s2n_extension_type, align 8
  %88 = alloca i32, align 4
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca %struct.s2n_connection, align 8
  %92 = alloca %struct.s2n_stuffer, align 8
  %93 = alloca i32, align 4
  %94 = alloca %struct.s2n_extension_type, align 8
  %95 = alloca i32, align 4
  %96 = alloca i32, align 4
  %97 = alloca i16, align 2
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i16, align 2
  %101 = alloca i32, align 4
  %102 = alloca i32, align 4
  %103 = alloca i32, align 4
  %104 = alloca %struct.s2n_connection, align 8
  %105 = alloca %struct.s2n_stuffer, align 8
  %106 = alloca i32, align 4
  %107 = alloca %struct.s2n_extension_type, align 8
  %108 = alloca i32, align 4
  %109 = alloca i32, align 4
  %110 = alloca i32, align 4
  %111 = alloca i32, align 4
  %112 = alloca i32, align 4
  %113 = alloca i16, align 2
  %114 = alloca i32, align 4
  %115 = alloca i32, align 4
  %116 = alloca i16, align 2
  %117 = alloca i32, align 4
  %118 = alloca i32, align 4
  %119 = alloca i32, align 4
  %120 = alloca %struct.s2n_connection, align 8
  %121 = alloca %struct.s2n_stuffer, align 8
  %122 = alloca %struct.s2n_extension_type, align 8
  %123 = alloca i32, align 4
  %124 = alloca i32, align 4
  %125 = alloca i32, align 4
  %126 = alloca %struct.s2n_connection, align 8
  %127 = alloca %struct.s2n_stuffer, align 8
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_extension_type, align 8
  %130 = alloca i32, align 4
  %131 = alloca i32, align 4
  %132 = alloca i32, align 4
  %133 = alloca i32, align 4
  %134 = alloca %struct.s2n_connection, align 8
  %135 = alloca %struct.s2n_stuffer, align 8
  %136 = alloca i32, align 4
  %137 = alloca %struct.s2n_extension_type, align 8
  %138 = alloca i32, align 4
  %139 = alloca i32, align 4
  %140 = alloca i32, align 4
  %141 = alloca %struct.s2n_connection, align 8
  %142 = alloca i32, align 4
  %143 = alloca i32, align 4
  %144 = alloca i32, align 4
  %145 = alloca i32, align 4
  %146 = alloca i32, align 4
  %147 = alloca i32, align 4
  %148 = alloca %struct.s2n_extension_type, align 8
  %149 = alloca i32, align 4
  %150 = alloca i32, align 4
  %151 = alloca i32, align 4
  %152 = alloca %struct.s2n_connection, align 8
  %153 = alloca %struct.s2n_extension_type, align 8
  %154 = alloca i32, align 4
  %155 = alloca i32, align 4
  %156 = alloca i32, align 4
  %157 = alloca %struct.s2n_connection, align 8
  %158 = alloca %struct.s2n_extension_type, align 8
  %159 = alloca i32, align 4
  %160 = alloca i32, align 4
  %161 = alloca i32, align 4
  %162 = alloca i32, align 4
  %163 = alloca i32, align 4
  %164 = alloca i32, align 4
  %165 = alloca i32, align 4
  %166 = alloca i32, align 4
  %167 = alloca %struct.s2n_extension_type, align 8
  %168 = alloca %struct.s2n_connection, 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 i32, align 4
  %175 = alloca i32, align 4
  %176 = alloca i32, align 4
  %177 = alloca i32, align 4
  %178 = alloca i32, align 4
  %179 = alloca i32, align 4
  %180 = alloca i32, align 4
  %181 = alloca ptr, align 8
  %182 = alloca ptr, align 8
  %183 = alloca i32, align 4
  %184 = alloca i32, align 4
  %185 = alloca i32, align 4
  %186 = alloca i32, align 4
  %187 = alloca i64, align 8
  %188 = alloca i32, align 4
  %189 = alloca ptr, align 8
  %190 = alloca i32, align 4
  %191 = alloca ptr, align 8
  %192 = alloca i32, align 4
  %193 = alloca i32, align 4
  %194 = alloca i32, align 4
  %195 = alloca i16, align 2
  %196 = alloca ptr, align 8
  %197 = alloca i32, align 4
  %198 = alloca i32, align 4
  %199 = alloca ptr, align 8
  %200 = alloca i32, align 4
  %201 = alloca i32, align 4
  %202 = alloca %struct.s2n_test_io_pair, align 4
  %203 = alloca i32, align 4
  %204 = alloca i32, align 4
  %205 = alloca %struct.s2n_result, align 4
  %206 = alloca i32, align 4
  %207 = alloca i32, align 4
  %208 = alloca i32, align 4
  %209 = alloca %struct.s2n_result, align 4
  %210 = alloca i32, align 4
  %211 = alloca i32, align 4
  %212 = alloca i32, align 4
  %213 = alloca i32, align 4
  %214 = alloca ptr, align 8
  %215 = alloca i32, align 4
  %216 = alloca i32, align 4
  %217 = alloca i32, align 4
  %218 = alloca ptr, align 8
  %219 = alloca i32, align 4
  %220 = alloca i32, align 4
  %221 = alloca %struct.s2n_test_io_pair, align 4
  %222 = alloca i32, align 4
  %223 = alloca i32, align 4
  %224 = alloca %struct.s2n_result, align 4
  %225 = alloca i32, align 4
  %226 = alloca i32, align 4
  %227 = alloca i32, align 4
  %228 = alloca %struct.s2n_result, align 4
  %229 = alloca i32, align 4
  %230 = alloca i32, align 4
  %231 = alloca i32, align 4
  %232 = alloca i32, align 4
  %233 = alloca i32, align 4
  %234 = alloca ptr, align 8
  %235 = alloca i32, align 4
  %236 = alloca i32, align 4
  %237 = alloca ptr, align 8
  %238 = alloca i32, align 4
  %239 = alloca i32, align 4
  %240 = alloca i32, align 4
  %241 = alloca %struct.s2n_test_io_pair, align 4
  %242 = alloca i32, align 4
  %243 = alloca i32, align 4
  %244 = alloca %struct.s2n_result, align 4
  %245 = alloca i32, align 4
  %246 = alloca i32, align 4
  %247 = alloca i32, align 4
  %248 = alloca %struct.s2n_result, align 4
  %249 = alloca i32, align 4
  %250 = alloca i32, 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 i32, align 4
  %257 = alloca i32, align 4
  store i32 0, ptr %1, align 4
  br label %258

258:                                              ; preds = %0
  br label %259

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

264:                                              ; preds = %259
  %265 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %266 = icmp eq i32 %265, -1
  br i1 %266, label %267, label %318

267:                                              ; preds = %264
  br label %268

268:                                              ; preds = %267
  br label %269

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

276:                                              ; preds = %269
  %277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %278 = call i32 @fileno(ptr noundef %277) #11
  %279 = call i32 @isatty(i32 noundef %278) #11
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %281, label %298

281:                                              ; preds = %276
  %282 = load i32, ptr %2, align 4, !tbaa !5
  %283 = call ptr @__errno_location() #12
  store i32 %282, ptr %283, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = load i32, ptr @test_count, align 4, !tbaa !5
  %286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %287 = load i32, ptr %286, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror(i32 noundef %287, ptr noundef @.str.4)
  %289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %290 = load i32, ptr %289, align 4, !tbaa !5
  %291 = call ptr @s2n_strerror_debug(i32 noundef %290, ptr noundef @.str.4)
  %292 = call ptr @__errno_location() #12
  %293 = load i32, ptr %292, align 4, !tbaa !5
  %294 = call ptr @strerror(i32 noundef %293) #11
  %295 = call ptr @__errno_location() #12
  %296 = load i32, ptr %295, align 4, !tbaa !5
  %297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %284, ptr noundef @.str.2, i32 noundef %285, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 59, ptr noundef %288, ptr noundef %291, ptr noundef %294, i32 noundef %296) #11
  br label %315

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

315:                                              ; preds = %298, %281
  call void @llvm.lifetime.end.p0(i64 4, ptr %2) #11
  br label %316

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

317:                                              ; No predecessors!
  br label %318

318:                                              ; preds = %317, %264
  br label %319

319:                                              ; preds = %318
  br label %320

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

325:                                              ; preds = %320
  br label %326

326:                                              ; preds = %325
  br label %327

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

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

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

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

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

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

375:                                              ; No predecessors!
  br label %376

376:                                              ; preds = %375, %320
  br label %377

377:                                              ; preds = %376
  br label %378

378:                                              ; preds = %377
  br label %379

379:                                              ; preds = %378
  %380 = call i32 @s2n_init()
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %433

382:                                              ; preds = %379
  br label %383

383:                                              ; preds = %382
  br label %384

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

391:                                              ; preds = %384
  %392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %393 = call i32 @fileno(ptr noundef %392) #11
  %394 = call i32 @isatty(i32 noundef %393) #11
  %395 = icmp ne i32 %394, 0
  br i1 %395, label %396, label %413

396:                                              ; preds = %391
  %397 = load i32, ptr %4, align 4, !tbaa !5
  %398 = call ptr @__errno_location() #12
  store i32 %397, ptr %398, align 4, !tbaa !5
  %399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %400 = load i32, ptr @test_count, align 4, !tbaa !5
  %401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror(i32 noundef %402, ptr noundef @.str.4)
  %404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = call ptr @s2n_strerror_debug(i32 noundef %405, ptr noundef @.str.4)
  %407 = call ptr @__errno_location() #12
  %408 = load i32, ptr %407, align 4, !tbaa !5
  %409 = call ptr @strerror(i32 noundef %408) #11
  %410 = call ptr @__errno_location() #12
  %411 = load i32, ptr %410, align 4, !tbaa !5
  %412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %399, ptr noundef @.str.2, i32 noundef %400, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 59, ptr noundef %403, ptr noundef %406, ptr noundef %409, i32 noundef %411) #11
  br label %430

413:                                              ; preds = %391, %384
  %414 = load i32, ptr %4, align 4, !tbaa !5
  %415 = call ptr @__errno_location() #12
  store i32 %414, ptr %415, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = load i32, ptr @test_count, align 4, !tbaa !5
  %418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %419 = load i32, ptr %418, align 4, !tbaa !5
  %420 = call ptr @s2n_strerror(i32 noundef %419, ptr noundef @.str.4)
  %421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %422 = load i32, ptr %421, align 4, !tbaa !5
  %423 = call ptr @s2n_strerror_debug(i32 noundef %422, ptr noundef @.str.4)
  %424 = call ptr @__errno_location() #12
  %425 = load i32, ptr %424, align 4, !tbaa !5
  %426 = call ptr @strerror(i32 noundef %425) #11
  %427 = call ptr @__errno_location() #12
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef @.str.5, i32 noundef %417, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 59, ptr noundef %420, ptr noundef %423, ptr noundef %426, i32 noundef %428) #11
  br label %430

430:                                              ; preds = %413, %396
  call void @llvm.lifetime.end.p0(i64 4, ptr %4) #11
  br label %431

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

432:                                              ; No predecessors!
  br label %433

433:                                              ; preds = %432, %379
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434
  br label %436

436:                                              ; preds = %435
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr @test_count, align 4, !tbaa !5
  %439 = call i32 (...) @s2n_disable_tls13_in_test()
  %440 = icmp eq i32 %439, -1
  br i1 %440, label %441, label %492

441:                                              ; preds = %436
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #11
  %444 = call ptr @__errno_location() #12
  %445 = load i32, ptr %444, align 4, !tbaa !5
  store i32 %445, ptr %5, align 4, !tbaa !5
  %446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %447 = call i32 @s2n_print_stacktrace(ptr noundef %446)
  %448 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %449 = trunc i8 %448 to i1
  br i1 %449, label %450, label %472

450:                                              ; preds = %443
  %451 = load ptr, ptr @stderr, align 8, !tbaa !9
  %452 = call i32 @fileno(ptr noundef %451) #11
  %453 = call i32 @isatty(i32 noundef %452) #11
  %454 = icmp ne i32 %453, 0
  br i1 %454, label %455, label %472

455:                                              ; preds = %450
  %456 = load i32, ptr %5, align 4, !tbaa !5
  %457 = call ptr @__errno_location() #12
  store i32 %456, ptr %457, align 4, !tbaa !5
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = load i32, ptr @test_count, align 4, !tbaa !5
  %460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @s2n_strerror(i32 noundef %461, ptr noundef @.str.4)
  %463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call ptr @s2n_strerror_debug(i32 noundef %464, ptr noundef @.str.4)
  %466 = call ptr @__errno_location() #12
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @strerror(i32 noundef %467) #11
  %469 = call ptr @__errno_location() #12
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %458, ptr noundef @.str.2, i32 noundef %459, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 60, ptr noundef %462, ptr noundef %465, ptr noundef %468, i32 noundef %470) #11
  br label %489

472:                                              ; preds = %450, %443
  %473 = load i32, ptr %5, align 4, !tbaa !5
  %474 = call ptr @__errno_location() #12
  store i32 %473, ptr %474, align 4, !tbaa !5
  %475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror(i32 noundef %478, ptr noundef @.str.4)
  %480 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror_debug(i32 noundef %481, ptr noundef @.str.4)
  %483 = call ptr @__errno_location() #12
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @strerror(i32 noundef %484) #11
  %486 = call ptr @__errno_location() #12
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %475, ptr noundef @.str.5, i32 noundef %476, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 60, ptr noundef %479, ptr noundef %482, ptr noundef %485, i32 noundef %487) #11
  br label %489

489:                                              ; preds = %472, %455
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #11
  br label %490

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

491:                                              ; No predecessors!
  br label %492

492:                                              ; preds = %491, %436
  br label %493

493:                                              ; preds = %492
  br label %494

494:                                              ; preds = %493
  br label %495

495:                                              ; preds = %494
  br label %496

496:                                              ; preds = %495
  %497 = load i32, ptr @test_count, align 4, !tbaa !5
  %498 = add nsw i32 %497, 1
  store i32 %498, ptr @test_count, align 4, !tbaa !5
  %499 = call i32 @s2n_extension_send_unimplemented(ptr noundef null, ptr noundef null)
  %500 = icmp eq i32 %499, -1
  br i1 %500, label %552, label %501

501:                                              ; preds = %496
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %504 = call ptr @__errno_location() #12
  %505 = load i32, ptr %504, align 4, !tbaa !5
  store i32 %505, ptr %6, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @s2n_print_stacktrace(ptr noundef %506)
  %508 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %509 = trunc i8 %508 to i1
  br i1 %509, label %510, label %532

510:                                              ; preds = %503
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = call i32 @fileno(ptr noundef %511) #11
  %513 = call i32 @isatty(i32 noundef %512) #11
  %514 = icmp ne i32 %513, 0
  br i1 %514, label %515, label %532

515:                                              ; preds = %510
  %516 = load i32, ptr %6, align 4, !tbaa !5
  %517 = call ptr @__errno_location() #12
  store i32 %516, ptr %517, align 4, !tbaa !5
  %518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %519 = load i32, ptr @test_count, align 4, !tbaa !5
  %520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %521 = load i32, ptr %520, align 4, !tbaa !5
  %522 = call ptr @s2n_strerror(i32 noundef %521, ptr noundef @.str.4)
  %523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %524 = load i32, ptr %523, align 4, !tbaa !5
  %525 = call ptr @s2n_strerror_debug(i32 noundef %524, ptr noundef @.str.4)
  %526 = call ptr @__errno_location() #12
  %527 = load i32, ptr %526, align 4, !tbaa !5
  %528 = call ptr @strerror(i32 noundef %527) #11
  %529 = call ptr @__errno_location() #12
  %530 = load i32, ptr %529, align 4, !tbaa !5
  %531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %518, ptr noundef @.str.2, i32 noundef %519, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 65, ptr noundef %522, ptr noundef %525, ptr noundef %528, i32 noundef %530) #11
  br label %549

532:                                              ; preds = %510, %503
  %533 = load i32, ptr %6, align 4, !tbaa !5
  %534 = call ptr @__errno_location() #12
  store i32 %533, ptr %534, align 4, !tbaa !5
  %535 = load ptr, ptr @stderr, align 8, !tbaa !9
  %536 = load i32, ptr @test_count, align 4, !tbaa !5
  %537 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %538 = load i32, ptr %537, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror(i32 noundef %538, ptr noundef @.str.4)
  %540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %541 = load i32, ptr %540, align 4, !tbaa !5
  %542 = call ptr @s2n_strerror_debug(i32 noundef %541, ptr noundef @.str.4)
  %543 = call ptr @__errno_location() #12
  %544 = load i32, ptr %543, align 4, !tbaa !5
  %545 = call ptr @strerror(i32 noundef %544) #11
  %546 = call ptr @__errno_location() #12
  %547 = load i32, ptr %546, align 4, !tbaa !5
  %548 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %535, ptr noundef @.str.5, i32 noundef %536, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 65, ptr noundef %539, ptr noundef %542, ptr noundef %545, i32 noundef %547) #11
  br label %549

549:                                              ; preds = %532, %515
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %550

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

551:                                              ; No predecessors!
  br label %552

552:                                              ; preds = %551, %496
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = add nsw i32 %555, 1
  store i32 %556, ptr @test_count, align 4, !tbaa !5
  %557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %558 = load i32, ptr %557, align 4, !tbaa !5
  %559 = icmp eq i32 %558, 402653231
  br i1 %559, label %611, label %560

560:                                              ; preds = %554
  br label %561

561:                                              ; preds = %560
  br label %562

562:                                              ; preds = %561
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %563 = call ptr @__errno_location() #12
  %564 = load i32, ptr %563, align 4, !tbaa !5
  store i32 %564, ptr %7, align 4, !tbaa !5
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @s2n_print_stacktrace(ptr noundef %565)
  %567 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %568 = trunc i8 %567 to i1
  br i1 %568, label %569, label %591

569:                                              ; preds = %562
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = call i32 @fileno(ptr noundef %570) #11
  %572 = call i32 @isatty(i32 noundef %571) #11
  %573 = icmp ne i32 %572, 0
  br i1 %573, label %574, label %591

574:                                              ; preds = %569
  %575 = load i32, ptr %7, align 4, !tbaa !5
  %576 = call ptr @__errno_location() #12
  store i32 %575, ptr %576, align 4, !tbaa !5
  %577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %578 = load i32, ptr @test_count, align 4, !tbaa !5
  %579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %580 = load i32, ptr %579, align 4, !tbaa !5
  %581 = call ptr @s2n_strerror(i32 noundef %580, ptr noundef @.str.4)
  %582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %583 = load i32, ptr %582, align 4, !tbaa !5
  %584 = call ptr @s2n_strerror_debug(i32 noundef %583, ptr noundef @.str.4)
  %585 = call ptr @__errno_location() #12
  %586 = load i32, ptr %585, align 4, !tbaa !5
  %587 = call ptr @strerror(i32 noundef %586) #11
  %588 = call ptr @__errno_location() #12
  %589 = load i32, ptr %588, align 4, !tbaa !5
  %590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %577, ptr noundef @.str.2, i32 noundef %578, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 65, ptr noundef %581, ptr noundef %584, ptr noundef %587, i32 noundef %589) #11
  br label %608

591:                                              ; preds = %569, %562
  %592 = load i32, ptr %7, align 4, !tbaa !5
  %593 = call ptr @__errno_location() #12
  store i32 %592, ptr %593, align 4, !tbaa !5
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = load i32, ptr @test_count, align 4, !tbaa !5
  %596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %597 = load i32, ptr %596, align 4, !tbaa !5
  %598 = call ptr @s2n_strerror(i32 noundef %597, ptr noundef @.str.4)
  %599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %600 = load i32, ptr %599, align 4, !tbaa !5
  %601 = call ptr @s2n_strerror_debug(i32 noundef %600, ptr noundef @.str.4)
  %602 = call ptr @__errno_location() #12
  %603 = load i32, ptr %602, align 4, !tbaa !5
  %604 = call ptr @strerror(i32 noundef %603) #11
  %605 = call ptr @__errno_location() #12
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %594, ptr noundef @.str.5, i32 noundef %595, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 65, ptr noundef %598, ptr noundef %601, ptr noundef %604, i32 noundef %606) #11
  br label %608

608:                                              ; preds = %591, %574
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %609

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

610:                                              ; No predecessors!
  br label %611

611:                                              ; preds = %610, %554
  br label %612

612:                                              ; preds = %611
  br label %613

613:                                              ; preds = %612
  %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 align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = call ptr @s2n_strerror_debug(i32 noundef %617, ptr noundef @.str.4)
  %619 = icmp eq ptr %618, null
  br i1 %619, label %620, label %671

620:                                              ; preds = %613
  br label %621

621:                                              ; preds = %620
  br label %622

622:                                              ; preds = %621
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %623 = call ptr @__errno_location() #12
  %624 = load i32, ptr %623, align 4, !tbaa !5
  store i32 %624, ptr %8, align 4, !tbaa !5
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @s2n_print_stacktrace(ptr noundef %625)
  %627 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %628 = trunc i8 %627 to i1
  br i1 %628, label %629, label %651

629:                                              ; preds = %622
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = call i32 @fileno(ptr noundef %630) #11
  %632 = call i32 @isatty(i32 noundef %631) #11
  %633 = icmp ne i32 %632, 0
  br i1 %633, label %634, label %651

634:                                              ; preds = %629
  %635 = load i32, ptr %8, align 4, !tbaa !5
  %636 = call ptr @__errno_location() #12
  store i32 %635, ptr %636, align 4, !tbaa !5
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = load i32, ptr @test_count, align 4, !tbaa !5
  %639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %640 = load i32, ptr %639, align 4, !tbaa !5
  %641 = call ptr @s2n_strerror(i32 noundef %640, ptr noundef @.str.4)
  %642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %643 = load i32, ptr %642, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror_debug(i32 noundef %643, ptr noundef @.str.4)
  %645 = call ptr @__errno_location() #12
  %646 = load i32, ptr %645, align 4, !tbaa !5
  %647 = call ptr @strerror(i32 noundef %646) #11
  %648 = call ptr @__errno_location() #12
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %637, ptr noundef @.str.2, i32 noundef %638, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 65, ptr noundef %641, ptr noundef %644, ptr noundef %647, i32 noundef %649) #11
  br label %668

651:                                              ; preds = %629, %622
  %652 = load i32, ptr %8, align 4, !tbaa !5
  %653 = call ptr @__errno_location() #12
  store i32 %652, ptr %653, align 4, !tbaa !5
  %654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %655 = load i32, ptr @test_count, align 4, !tbaa !5
  %656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %657 = load i32, ptr %656, align 4, !tbaa !5
  %658 = call ptr @s2n_strerror(i32 noundef %657, ptr noundef @.str.4)
  %659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %660 = load i32, ptr %659, align 4, !tbaa !5
  %661 = call ptr @s2n_strerror_debug(i32 noundef %660, ptr noundef @.str.4)
  %662 = call ptr @__errno_location() #12
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @strerror(i32 noundef %663) #11
  %665 = call ptr @__errno_location() #12
  %666 = load i32, ptr %665, align 4, !tbaa !5
  %667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %654, ptr noundef @.str.5, i32 noundef %655, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 65, ptr noundef %658, ptr noundef %661, ptr noundef %664, i32 noundef %666) #11
  br label %668

668:                                              ; preds = %651, %634
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %669

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

670:                                              ; No predecessors!
  br label %671

671:                                              ; preds = %670, %613
  br label %672

672:                                              ; preds = %671
  br label %673

673:                                              ; preds = %672
  br label %674

674:                                              ; preds = %673
  %675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %675, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %676 = call ptr @__errno_location() #12
  store i32 0, ptr %676, align 4, !tbaa !5
  br label %677

677:                                              ; preds = %674
  br label %678

678:                                              ; preds = %677
  br label %679

679:                                              ; preds = %678
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = call i32 @s2n_extension_send_noop(ptr noundef null, ptr noundef null)
  %683 = icmp eq i32 %682, -1
  br i1 %683, label %684, label %735

684:                                              ; preds = %679
  br label %685

685:                                              ; preds = %684
  br label %686

686:                                              ; preds = %685
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #11
  %687 = call ptr @__errno_location() #12
  %688 = load i32, ptr %687, align 4, !tbaa !5
  store i32 %688, ptr %9, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = call i32 @s2n_print_stacktrace(ptr noundef %689)
  %691 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %692 = trunc i8 %691 to i1
  br i1 %692, label %693, label %715

693:                                              ; preds = %686
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = call i32 @fileno(ptr noundef %694) #11
  %696 = call i32 @isatty(i32 noundef %695) #11
  %697 = icmp ne i32 %696, 0
  br i1 %697, label %698, label %715

698:                                              ; preds = %693
  %699 = load i32, ptr %9, align 4, !tbaa !5
  %700 = call ptr @__errno_location() #12
  store i32 %699, ptr %700, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %704 = load i32, ptr %703, align 4, !tbaa !5
  %705 = call ptr @s2n_strerror(i32 noundef %704, ptr noundef @.str.4)
  %706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %707 = load i32, ptr %706, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror_debug(i32 noundef %707, ptr noundef @.str.4)
  %709 = call ptr @__errno_location() #12
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = call ptr @strerror(i32 noundef %710) #11
  %712 = call ptr @__errno_location() #12
  %713 = load i32, ptr %712, align 4, !tbaa !5
  %714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef @.str.2, i32 noundef %702, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 66, ptr noundef %705, ptr noundef %708, ptr noundef %711, i32 noundef %713) #11
  br label %732

715:                                              ; preds = %693, %686
  %716 = load i32, ptr %9, align 4, !tbaa !5
  %717 = call ptr @__errno_location() #12
  store i32 %716, ptr %717, align 4, !tbaa !5
  %718 = load ptr, ptr @stderr, align 8, !tbaa !9
  %719 = load i32, ptr @test_count, align 4, !tbaa !5
  %720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %721 = load i32, ptr %720, align 4, !tbaa !5
  %722 = call ptr @s2n_strerror(i32 noundef %721, ptr noundef @.str.4)
  %723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror_debug(i32 noundef %724, ptr noundef @.str.4)
  %726 = call ptr @__errno_location() #12
  %727 = load i32, ptr %726, align 4, !tbaa !5
  %728 = call ptr @strerror(i32 noundef %727) #11
  %729 = call ptr @__errno_location() #12
  %730 = load i32, ptr %729, align 4, !tbaa !5
  %731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %718, ptr noundef @.str.5, i32 noundef %719, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 66, ptr noundef %722, ptr noundef %725, ptr noundef %728, i32 noundef %730) #11
  br label %732

732:                                              ; preds = %715, %698
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #11
  br label %733

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

734:                                              ; No predecessors!
  br label %735

735:                                              ; preds = %734, %679
  br label %736

736:                                              ; preds = %735
  br label %737

737:                                              ; preds = %736
  br label %738

738:                                              ; preds = %737
  br label %739

739:                                              ; preds = %738
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = call i32 @s2n_extension_recv_unimplemented(ptr noundef null, ptr noundef null)
  %743 = icmp eq i32 %742, -1
  br i1 %743, label %795, label %744

744:                                              ; preds = %739
  br label %745

745:                                              ; preds = %744
  br label %746

746:                                              ; preds = %745
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %747 = call ptr @__errno_location() #12
  %748 = load i32, ptr %747, align 4, !tbaa !5
  store i32 %748, ptr %10, align 4, !tbaa !5
  %749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %750 = call i32 @s2n_print_stacktrace(ptr noundef %749)
  %751 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %752 = trunc i8 %751 to i1
  br i1 %752, label %753, label %775

753:                                              ; preds = %746
  %754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %755 = call i32 @fileno(ptr noundef %754) #11
  %756 = call i32 @isatty(i32 noundef %755) #11
  %757 = icmp ne i32 %756, 0
  br i1 %757, label %758, label %775

758:                                              ; preds = %753
  %759 = load i32, ptr %10, align 4, !tbaa !5
  %760 = call ptr @__errno_location() #12
  store i32 %759, ptr %760, align 4, !tbaa !5
  %761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %764 = load i32, ptr %763, align 4, !tbaa !5
  %765 = call ptr @s2n_strerror(i32 noundef %764, ptr noundef @.str.4)
  %766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %767 = load i32, ptr %766, align 4, !tbaa !5
  %768 = call ptr @s2n_strerror_debug(i32 noundef %767, ptr noundef @.str.4)
  %769 = call ptr @__errno_location() #12
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @strerror(i32 noundef %770) #11
  %772 = call ptr @__errno_location() #12
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef @.str.2, i32 noundef %762, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 69, ptr noundef %765, ptr noundef %768, ptr noundef %771, i32 noundef %773) #11
  br label %792

775:                                              ; preds = %753, %746
  %776 = load i32, ptr %10, align 4, !tbaa !5
  %777 = call ptr @__errno_location() #12
  store i32 %776, ptr %777, align 4, !tbaa !5
  %778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %779 = load i32, ptr @test_count, align 4, !tbaa !5
  %780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %781 = load i32, ptr %780, align 4, !tbaa !5
  %782 = call ptr @s2n_strerror(i32 noundef %781, ptr noundef @.str.4)
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror_debug(i32 noundef %784, ptr noundef @.str.4)
  %786 = call ptr @__errno_location() #12
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #11
  %789 = call ptr @__errno_location() #12
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %778, ptr noundef @.str.5, i32 noundef %779, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 69, ptr noundef %782, ptr noundef %785, ptr noundef %788, i32 noundef %790) #11
  br label %792

792:                                              ; preds = %775, %758
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #11
  br label %793

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

794:                                              ; No predecessors!
  br label %795

795:                                              ; preds = %794, %739
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = add nsw i32 %798, 1
  store i32 %799, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = icmp eq i32 %801, 402653231
  br i1 %802, label %854, label %803

803:                                              ; preds = %797
  br label %804

804:                                              ; preds = %803
  br label %805

805:                                              ; preds = %804
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #11
  %806 = call ptr @__errno_location() #12
  %807 = load i32, ptr %806, align 4, !tbaa !5
  store i32 %807, ptr %11, align 4, !tbaa !5
  %808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %809 = call i32 @s2n_print_stacktrace(ptr noundef %808)
  %810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %811 = trunc i8 %810 to i1
  br i1 %811, label %812, label %834

812:                                              ; preds = %805
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @fileno(ptr noundef %813) #11
  %815 = call i32 @isatty(i32 noundef %814) #11
  %816 = icmp ne i32 %815, 0
  br i1 %816, label %817, label %834

817:                                              ; preds = %812
  %818 = load i32, ptr %11, align 4, !tbaa !5
  %819 = call ptr @__errno_location() #12
  store i32 %818, ptr %819, align 4, !tbaa !5
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = load i32, ptr @test_count, align 4, !tbaa !5
  %822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %823 = load i32, ptr %822, align 4, !tbaa !5
  %824 = call ptr @s2n_strerror(i32 noundef %823, ptr noundef @.str.4)
  %825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %826 = load i32, ptr %825, align 4, !tbaa !5
  %827 = call ptr @s2n_strerror_debug(i32 noundef %826, ptr noundef @.str.4)
  %828 = call ptr @__errno_location() #12
  %829 = load i32, ptr %828, align 4, !tbaa !5
  %830 = call ptr @strerror(i32 noundef %829) #11
  %831 = call ptr @__errno_location() #12
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %820, ptr noundef @.str.2, i32 noundef %821, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 69, ptr noundef %824, ptr noundef %827, ptr noundef %830, i32 noundef %832) #11
  br label %851

834:                                              ; preds = %812, %805
  %835 = load i32, ptr %11, align 4, !tbaa !5
  %836 = call ptr @__errno_location() #12
  store i32 %835, ptr %836, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %840, ptr noundef @.str.4)
  %842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %843 = load i32, ptr %842, align 4, !tbaa !5
  %844 = call ptr @s2n_strerror_debug(i32 noundef %843, ptr noundef @.str.4)
  %845 = call ptr @__errno_location() #12
  %846 = load i32, ptr %845, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #11
  %848 = call ptr @__errno_location() #12
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef @.str.5, i32 noundef %838, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 69, ptr noundef %841, ptr noundef %844, ptr noundef %847, i32 noundef %849) #11
  br label %851

851:                                              ; preds = %834, %817
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #11
  br label %852

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

853:                                              ; No predecessors!
  br label %854

854:                                              ; preds = %853, %797
  br label %855

855:                                              ; preds = %854
  br label %856

856:                                              ; preds = %855
  %857 = load i32, ptr @test_count, align 4, !tbaa !5
  %858 = add nsw i32 %857, 1
  store i32 %858, ptr @test_count, align 4, !tbaa !5
  %859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %860 = load i32, ptr %859, align 4, !tbaa !5
  %861 = call ptr @s2n_strerror_debug(i32 noundef %860, ptr noundef @.str.4)
  %862 = icmp eq ptr %861, null
  br i1 %862, label %863, label %914

863:                                              ; preds = %856
  br label %864

864:                                              ; preds = %863
  br label %865

865:                                              ; preds = %864
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #11
  %866 = call ptr @__errno_location() #12
  %867 = load i32, ptr %866, align 4, !tbaa !5
  store i32 %867, ptr %12, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = call i32 @s2n_print_stacktrace(ptr noundef %868)
  %870 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %871 = trunc i8 %870 to i1
  br i1 %871, label %872, label %894

872:                                              ; preds = %865
  %873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %874 = call i32 @fileno(ptr noundef %873) #11
  %875 = call i32 @isatty(i32 noundef %874) #11
  %876 = icmp ne i32 %875, 0
  br i1 %876, label %877, label %894

877:                                              ; preds = %872
  %878 = load i32, ptr %12, align 4, !tbaa !5
  %879 = call ptr @__errno_location() #12
  store i32 %878, ptr %879, align 4, !tbaa !5
  %880 = load ptr, ptr @stderr, align 8, !tbaa !9
  %881 = load i32, ptr @test_count, align 4, !tbaa !5
  %882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %883 = load i32, ptr %882, align 4, !tbaa !5
  %884 = call ptr @s2n_strerror(i32 noundef %883, ptr noundef @.str.4)
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror_debug(i32 noundef %886, ptr noundef @.str.4)
  %888 = call ptr @__errno_location() #12
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @strerror(i32 noundef %889) #11
  %891 = call ptr @__errno_location() #12
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %880, ptr noundef @.str.2, i32 noundef %881, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 69, ptr noundef %884, ptr noundef %887, ptr noundef %890, i32 noundef %892) #11
  br label %911

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

911:                                              ; preds = %894, %877
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #11
  br label %912

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

913:                                              ; No predecessors!
  br label %914

914:                                              ; preds = %913, %856
  br label %915

915:                                              ; preds = %914
  br label %916

916:                                              ; preds = %915
  br label %917

917:                                              ; preds = %916
  %918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %918, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %919 = call ptr @__errno_location() #12
  store i32 0, ptr %919, align 4, !tbaa !5
  br label %920

920:                                              ; preds = %917
  br label %921

921:                                              ; preds = %920
  br label %922

922:                                              ; preds = %921
  %923 = load i32, ptr @test_count, align 4, !tbaa !5
  %924 = add nsw i32 %923, 1
  store i32 %924, ptr @test_count, align 4, !tbaa !5
  %925 = call i32 @s2n_extension_recv_noop(ptr noundef null, ptr noundef null)
  %926 = icmp eq i32 %925, -1
  br i1 %926, label %927, label %978

927:                                              ; preds = %922
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #11
  %930 = call ptr @__errno_location() #12
  %931 = load i32, ptr %930, align 4, !tbaa !5
  store i32 %931, ptr %13, align 4, !tbaa !5
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = call i32 @s2n_print_stacktrace(ptr noundef %932)
  %934 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %935 = trunc i8 %934 to i1
  br i1 %935, label %936, label %958

936:                                              ; preds = %929
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = call i32 @fileno(ptr noundef %937) #11
  %939 = call i32 @isatty(i32 noundef %938) #11
  %940 = icmp ne i32 %939, 0
  br i1 %940, label %941, label %958

941:                                              ; preds = %936
  %942 = load i32, ptr %13, align 4, !tbaa !5
  %943 = call ptr @__errno_location() #12
  store i32 %942, ptr %943, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = load i32, ptr @test_count, align 4, !tbaa !5
  %946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror(i32 noundef %947, ptr noundef @.str.4)
  %949 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call ptr @s2n_strerror_debug(i32 noundef %950, ptr noundef @.str.4)
  %952 = call ptr @__errno_location() #12
  %953 = load i32, ptr %952, align 4, !tbaa !5
  %954 = call ptr @strerror(i32 noundef %953) #11
  %955 = call ptr @__errno_location() #12
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %944, ptr noundef @.str.2, i32 noundef %945, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 70, ptr noundef %948, ptr noundef %951, ptr noundef %954, i32 noundef %956) #11
  br label %975

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

975:                                              ; preds = %958, %941
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #11
  br label %976

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

977:                                              ; No predecessors!
  br label %978

978:                                              ; preds = %977, %922
  br label %979

979:                                              ; preds = %978
  br label %980

980:                                              ; preds = %979
  %981 = load i32, ptr @test_count, align 4, !tbaa !5
  %982 = add nsw i32 %981, 1
  store i32 %982, ptr @test_count, align 4, !tbaa !5
  %983 = call zeroext i1 @s2n_extension_always_send(ptr noundef null)
  br i1 %983, label %1035, label %984

984:                                              ; preds = %980
  br label %985

985:                                              ; preds = %984
  br label %986

986:                                              ; preds = %985
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %987 = call ptr @__errno_location() #12
  %988 = load i32, ptr %987, align 4, !tbaa !5
  store i32 %988, ptr %14, align 4, !tbaa !5
  %989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %990 = call i32 @s2n_print_stacktrace(ptr noundef %989)
  %991 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %992 = trunc i8 %991 to i1
  br i1 %992, label %993, label %1015

993:                                              ; preds = %986
  %994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %995 = call i32 @fileno(ptr noundef %994) #11
  %996 = call i32 @isatty(i32 noundef %995) #11
  %997 = icmp ne i32 %996, 0
  br i1 %997, label %998, label %1015

998:                                              ; preds = %993
  %999 = load i32, ptr %14, align 4, !tbaa !5
  %1000 = call ptr @__errno_location() #12
  store i32 %999, ptr %1000, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call ptr @s2n_strerror(i32 noundef %1004, ptr noundef @.str.4)
  %1006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1007 = load i32, ptr %1006, align 4, !tbaa !5
  %1008 = call ptr @s2n_strerror_debug(i32 noundef %1007, ptr noundef @.str.4)
  %1009 = call ptr @__errno_location() #12
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @strerror(i32 noundef %1010) #11
  %1012 = call ptr @__errno_location() #12
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef @.str.2, i32 noundef %1002, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1005, ptr noundef %1008, ptr noundef %1011, i32 noundef %1013) #11
  br label %1032

1015:                                             ; preds = %993, %986
  %1016 = load i32, ptr %14, align 4, !tbaa !5
  %1017 = call ptr @__errno_location() #12
  store i32 %1016, ptr %1017, align 4, !tbaa !5
  %1018 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1019 = load i32, ptr @test_count, align 4, !tbaa !5
  %1020 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1021 = load i32, ptr %1020, align 4, !tbaa !5
  %1022 = call ptr @s2n_strerror(i32 noundef %1021, ptr noundef @.str.4)
  %1023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1024 = load i32, ptr %1023, align 4, !tbaa !5
  %1025 = call ptr @s2n_strerror_debug(i32 noundef %1024, ptr noundef @.str.4)
  %1026 = call ptr @__errno_location() #12
  %1027 = load i32, ptr %1026, align 4, !tbaa !5
  %1028 = call ptr @strerror(i32 noundef %1027) #11
  %1029 = call ptr @__errno_location() #12
  %1030 = load i32, ptr %1029, align 4, !tbaa !5
  %1031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1018, ptr noundef @.str.5, i32 noundef %1019, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 74, ptr noundef %1022, ptr noundef %1025, ptr noundef %1028, i32 noundef %1030) #11
  br label %1032

1032:                                             ; preds = %1015, %998
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #11
  br label %1033

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

1034:                                             ; No predecessors!
  br label %1035

1035:                                             ; preds = %1034, %980
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call zeroext i1 @s2n_extension_never_send(ptr noundef null)
  br i1 %1040, label %1041, label %1092

1041:                                             ; preds = %1037
  br label %1042

1042:                                             ; preds = %1041
  br label %1043

1043:                                             ; preds = %1042
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #11
  %1044 = call ptr @__errno_location() #12
  %1045 = load i32, ptr %1044, align 4, !tbaa !5
  store i32 %1045, ptr %15, align 4, !tbaa !5
  %1046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1047 = call i32 @s2n_print_stacktrace(ptr noundef %1046)
  %1048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1049 = trunc i8 %1048 to i1
  br i1 %1049, label %1050, label %1072

1050:                                             ; preds = %1043
  %1051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1052 = call i32 @fileno(ptr noundef %1051) #11
  %1053 = call i32 @isatty(i32 noundef %1052) #11
  %1054 = icmp ne i32 %1053, 0
  br i1 %1054, label %1055, label %1072

1055:                                             ; preds = %1050
  %1056 = load i32, ptr %15, align 4, !tbaa !5
  %1057 = call ptr @__errno_location() #12
  store i32 %1056, ptr %1057, align 4, !tbaa !5
  %1058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1059 = load i32, ptr @test_count, align 4, !tbaa !5
  %1060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror(i32 noundef %1061, ptr noundef @.str.4)
  %1063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call ptr @s2n_strerror_debug(i32 noundef %1064, ptr noundef @.str.4)
  %1066 = call ptr @__errno_location() #12
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @strerror(i32 noundef %1067) #11
  %1069 = call ptr @__errno_location() #12
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1058, ptr noundef @.str.2, i32 noundef %1059, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1062, ptr noundef %1065, ptr noundef %1068, i32 noundef %1070) #11
  br label %1089

1072:                                             ; preds = %1050, %1043
  %1073 = load i32, ptr %15, align 4, !tbaa !5
  %1074 = call ptr @__errno_location() #12
  store i32 %1073, ptr %1074, align 4, !tbaa !5
  %1075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1076 = load i32, ptr @test_count, align 4, !tbaa !5
  %1077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @s2n_strerror(i32 noundef %1078, ptr noundef @.str.4)
  %1080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror_debug(i32 noundef %1081, ptr noundef @.str.4)
  %1083 = call ptr @__errno_location() #12
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @strerror(i32 noundef %1084) #11
  %1086 = call ptr @__errno_location() #12
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1075, ptr noundef @.str.5, i32 noundef %1076, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 75, ptr noundef %1079, ptr noundef %1082, ptr noundef %1085, i32 noundef %1087) #11
  br label %1089

1089:                                             ; preds = %1072, %1055
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %1090

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

1091:                                             ; No predecessors!
  br label %1092

1092:                                             ; preds = %1091, %1037
  br label %1093

1093:                                             ; preds = %1092
  call void @llvm.lifetime.start.p0(i64 4184, ptr %16) #11
  call void @llvm.memset.p0.i64(ptr align 8 %16, i8 0, i64 4184, i1 false)
  %1094 = getelementptr inbounds %struct.s2n_connection, ptr %16, i32 0, i32 23
  store i8 33, ptr %1094, align 4, !tbaa !15
  br label %1095

1095:                                             ; preds = %1093
  %1096 = load i32, ptr @test_count, align 4, !tbaa !5
  %1097 = add nsw i32 %1096, 1
  store i32 %1097, ptr @test_count, align 4, !tbaa !5
  %1098 = call zeroext i1 @s2n_extension_send_if_tls13_connection(ptr noundef %16)
  br i1 %1098, label %1099, label %1152

1099:                                             ; preds = %1095
  br label %1100

1100:                                             ; preds = %1099
  br label %1101

1101:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #11
  %1102 = call ptr @__errno_location() #12
  %1103 = load i32, ptr %1102, align 4, !tbaa !5
  store i32 %1103, ptr %17, align 4, !tbaa !5
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @s2n_print_stacktrace(ptr noundef %1104)
  %1106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1107 = trunc i8 %1106 to i1
  br i1 %1107, label %1108, label %1130

1108:                                             ; preds = %1101
  %1109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1110 = call i32 @fileno(ptr noundef %1109) #11
  %1111 = call i32 @isatty(i32 noundef %1110) #11
  %1112 = icmp ne i32 %1111, 0
  br i1 %1112, label %1113, label %1130

1113:                                             ; preds = %1108
  %1114 = load i32, ptr %17, align 4, !tbaa !5
  %1115 = call ptr @__errno_location() #12
  store i32 %1114, ptr %1115, align 4, !tbaa !5
  %1116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1117 = load i32, ptr @test_count, align 4, !tbaa !5
  %1118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1119 = load i32, ptr %1118, align 4, !tbaa !5
  %1120 = call ptr @s2n_strerror(i32 noundef %1119, ptr noundef @.str.4)
  %1121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1122 = load i32, ptr %1121, align 4, !tbaa !5
  %1123 = call ptr @s2n_strerror_debug(i32 noundef %1122, ptr noundef @.str.4)
  %1124 = call ptr @__errno_location() #12
  %1125 = load i32, ptr %1124, align 4, !tbaa !5
  %1126 = call ptr @strerror(i32 noundef %1125) #11
  %1127 = call ptr @__errno_location() #12
  %1128 = load i32, ptr %1127, align 4, !tbaa !5
  %1129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1116, ptr noundef @.str.2, i32 noundef %1117, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1120, ptr noundef %1123, ptr noundef %1126, i32 noundef %1128) #11
  br label %1147

1130:                                             ; preds = %1108, %1101
  %1131 = load i32, ptr %17, align 4, !tbaa !5
  %1132 = call ptr @__errno_location() #12
  store i32 %1131, ptr %1132, align 4, !tbaa !5
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = load i32, ptr @test_count, align 4, !tbaa !5
  %1135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1136 = load i32, ptr %1135, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror(i32 noundef %1136, ptr noundef @.str.4)
  %1138 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1139 = load i32, ptr %1138, align 4, !tbaa !5
  %1140 = call ptr @s2n_strerror_debug(i32 noundef %1139, ptr noundef @.str.4)
  %1141 = call ptr @__errno_location() #12
  %1142 = load i32, ptr %1141, align 4, !tbaa !5
  %1143 = call ptr @strerror(i32 noundef %1142) #11
  %1144 = call ptr @__errno_location() #12
  %1145 = load i32, ptr %1144, align 4, !tbaa !5
  %1146 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1133, ptr noundef @.str.5, i32 noundef %1134, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 79, ptr noundef %1137, ptr noundef %1140, ptr noundef %1143, i32 noundef %1145) #11
  br label %1147

1147:                                             ; preds = %1130, %1113
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #11
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

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

1150:                                             ; No predecessors!
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151, %1095
  br label %1153

1153:                                             ; preds = %1152
  br label %1154

1154:                                             ; preds = %1153
  %1155 = getelementptr inbounds %struct.s2n_connection, ptr %16, i32 0, i32 23
  store i8 34, ptr %1155, align 4, !tbaa !15
  br label %1156

1156:                                             ; preds = %1154
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = add nsw i32 %1157, 1
  store i32 %1158, ptr @test_count, align 4, !tbaa !5
  %1159 = call zeroext i1 @s2n_extension_send_if_tls13_connection(ptr noundef %16)
  br i1 %1159, label %1213, label %1160

1160:                                             ; preds = %1156
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  %1163 = call ptr @__errno_location() #12
  %1164 = load i32, ptr %1163, align 4, !tbaa !5
  store i32 %1164, ptr %18, align 4, !tbaa !5
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = call i32 @s2n_print_stacktrace(ptr noundef %1165)
  %1167 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1168 = trunc i8 %1167 to i1
  br i1 %1168, label %1169, label %1191

1169:                                             ; preds = %1162
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = call i32 @fileno(ptr noundef %1170) #11
  %1172 = call i32 @isatty(i32 noundef %1171) #11
  %1173 = icmp ne i32 %1172, 0
  br i1 %1173, label %1174, label %1191

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

1191:                                             ; preds = %1169, %1162
  %1192 = load i32, ptr %18, align 4, !tbaa !5
  %1193 = call ptr @__errno_location() #12
  store i32 %1192, ptr %1193, align 4, !tbaa !5
  %1194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1195 = load i32, ptr @test_count, align 4, !tbaa !5
  %1196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror(i32 noundef %1197, ptr noundef @.str.4)
  %1199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call ptr @s2n_strerror_debug(i32 noundef %1200, ptr noundef @.str.4)
  %1202 = call ptr @__errno_location() #12
  %1203 = load i32, ptr %1202, align 4, !tbaa !5
  %1204 = call ptr @strerror(i32 noundef %1203) #11
  %1205 = call ptr @__errno_location() #12
  %1206 = load i32, ptr %1205, align 4, !tbaa !5
  %1207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1194, ptr noundef @.str.5, i32 noundef %1195, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 81, ptr noundef %1198, ptr noundef %1201, ptr noundef %1204, i32 noundef %1206) #11
  br label %1208

1208:                                             ; preds = %1191, %1174
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %1209

1209:                                             ; preds = %1208
  br label %1210

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

1211:                                             ; No predecessors!
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

1213:                                             ; preds = %1212, %1156
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214
  call void @llvm.lifetime.end.p0(i64 4184, ptr %16) #11
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = add nsw i32 %1219, 1
  store i32 %1220, ptr @test_count, align 4, !tbaa !5
  %1221 = call i32 @s2n_extension_error_if_missing(ptr noundef null)
  %1222 = icmp eq i32 %1221, -1
  br i1 %1222, label %1274, label %1223

1223:                                             ; preds = %1218
  br label %1224

1224:                                             ; preds = %1223
  br label %1225

1225:                                             ; preds = %1224
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #11
  %1226 = call ptr @__errno_location() #12
  %1227 = load i32, ptr %1226, align 4, !tbaa !5
  store i32 %1227, ptr %19, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228)
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc i8 %1230 to i1
  br i1 %1231, label %1232, label %1254

1232:                                             ; preds = %1225
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #11
  %1235 = call i32 @isatty(i32 noundef %1234) #11
  %1236 = icmp ne i32 %1235, 0
  br i1 %1236, label %1237, label %1254

1237:                                             ; preds = %1232
  %1238 = load i32, ptr %19, 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.2, i32 noundef %1241, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1244, ptr noundef %1247, ptr noundef %1250, i32 noundef %1252) #11
  br label %1271

1254:                                             ; preds = %1232, %1225
  %1255 = load i32, ptr %19, align 4, !tbaa !5
  %1256 = call ptr @__errno_location() #12
  store i32 %1255, ptr %1256, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @s2n_strerror(i32 noundef %1260, ptr noundef @.str.4)
  %1262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call ptr @s2n_strerror_debug(i32 noundef %1263, ptr noundef @.str.4)
  %1265 = call ptr @__errno_location() #12
  %1266 = load i32, ptr %1265, align 4, !tbaa !5
  %1267 = call ptr @strerror(i32 noundef %1266) #11
  %1268 = call ptr @__errno_location() #12
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef @.str.5, i32 noundef %1258, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1261, ptr noundef %1264, ptr noundef %1267, i32 noundef %1269) #11
  br label %1271

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

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

1273:                                             ; No predecessors!
  br label %1274

1274:                                             ; preds = %1273, %1218
  br label %1275

1275:                                             ; preds = %1274
  br label %1276

1276:                                             ; preds = %1275
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = icmp eq i32 %1280, 335544393
  br i1 %1281, label %1333, label %1282

1282:                                             ; preds = %1276
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #11
  %1285 = call ptr @__errno_location() #12
  %1286 = load i32, ptr %1285, align 4, !tbaa !5
  store i32 %1286, ptr %20, align 4, !tbaa !5
  %1287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1288 = call i32 @s2n_print_stacktrace(ptr noundef %1287)
  %1289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1290 = trunc i8 %1289 to i1
  br i1 %1290, label %1291, label %1313

1291:                                             ; preds = %1284
  %1292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1293 = call i32 @fileno(ptr noundef %1292) #11
  %1294 = call i32 @isatty(i32 noundef %1293) #11
  %1295 = icmp ne i32 %1294, 0
  br i1 %1295, label %1296, label %1313

1296:                                             ; preds = %1291
  %1297 = load i32, ptr %20, align 4, !tbaa !5
  %1298 = call ptr @__errno_location() #12
  store i32 %1297, ptr %1298, align 4, !tbaa !5
  %1299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1300 = load i32, ptr @test_count, align 4, !tbaa !5
  %1301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = call ptr @s2n_strerror(i32 noundef %1302, ptr noundef @.str.4)
  %1304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1305 = load i32, ptr %1304, align 4, !tbaa !5
  %1306 = call ptr @s2n_strerror_debug(i32 noundef %1305, ptr noundef @.str.4)
  %1307 = call ptr @__errno_location() #12
  %1308 = load i32, ptr %1307, align 4, !tbaa !5
  %1309 = call ptr @strerror(i32 noundef %1308) #11
  %1310 = call ptr @__errno_location() #12
  %1311 = load i32, ptr %1310, align 4, !tbaa !5
  %1312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1299, ptr noundef @.str.2, i32 noundef %1300, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1303, ptr noundef %1306, ptr noundef %1309, i32 noundef %1311) #11
  br label %1330

1313:                                             ; preds = %1291, %1284
  %1314 = load i32, ptr %20, align 4, !tbaa !5
  %1315 = call ptr @__errno_location() #12
  store i32 %1314, ptr %1315, align 4, !tbaa !5
  %1316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1317 = load i32, ptr @test_count, align 4, !tbaa !5
  %1318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1319 = load i32, ptr %1318, align 4, !tbaa !5
  %1320 = call ptr @s2n_strerror(i32 noundef %1319, ptr noundef @.str.4)
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror_debug(i32 noundef %1322, ptr noundef @.str.4)
  %1324 = call ptr @__errno_location() #12
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #11
  %1327 = call ptr @__errno_location() #12
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1316, ptr noundef @.str.5, i32 noundef %1317, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1320, ptr noundef %1323, ptr noundef %1326, i32 noundef %1328) #11
  br label %1330

1330:                                             ; preds = %1313, %1296
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %1331

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

1332:                                             ; No predecessors!
  br label %1333

1333:                                             ; preds = %1332, %1276
  br label %1334

1334:                                             ; preds = %1333
  br label %1335

1335:                                             ; preds = %1334
  %1336 = load i32, ptr @test_count, align 4, !tbaa !5
  %1337 = add nsw i32 %1336, 1
  store i32 %1337, ptr @test_count, align 4, !tbaa !5
  %1338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1339 = load i32, ptr %1338, align 4, !tbaa !5
  %1340 = call ptr @s2n_strerror_debug(i32 noundef %1339, ptr noundef @.str.4)
  %1341 = icmp eq ptr %1340, null
  br i1 %1341, label %1342, label %1393

1342:                                             ; preds = %1335
  br label %1343

1343:                                             ; preds = %1342
  br label %1344

1344:                                             ; preds = %1343
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #11
  %1345 = call ptr @__errno_location() #12
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  store i32 %1346, ptr %21, 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 %21, 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.11, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1363, ptr noundef %1366, ptr noundef %1369, i32 noundef %1371) #11
  br label %1390

1373:                                             ; preds = %1351, %1344
  %1374 = load i32, ptr %21, 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.11, ptr noundef @.str.1, i32 noundef 85, 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 %21) #11
  br label %1391

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

1392:                                             ; No predecessors!
  br label %1393

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

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  %1397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1397, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1398 = call ptr @__errno_location() #12
  store i32 0, ptr %1398, align 4, !tbaa !5
  br label %1399

1399:                                             ; preds = %1396
  br label %1400

1400:                                             ; preds = %1399
  br label %1401

1401:                                             ; preds = %1400
  %1402 = load i32, ptr @test_count, align 4, !tbaa !5
  %1403 = add nsw i32 %1402, 1
  store i32 %1403, ptr @test_count, align 4, !tbaa !5
  %1404 = call i32 @s2n_extension_noop_if_missing(ptr noundef null)
  %1405 = icmp eq i32 %1404, -1
  br i1 %1405, label %1406, label %1457

1406:                                             ; preds = %1401
  br label %1407

1407:                                             ; preds = %1406
  br label %1408

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

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

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

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

1454:                                             ; preds = %1437, %1420
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %1455

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

1456:                                             ; No predecessors!
  br label %1457

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

1458:                                             ; preds = %1457
  br label %1459

1459:                                             ; preds = %1458
  %1460 = load i32, ptr @test_count, align 4, !tbaa !5
  %1461 = add nsw i32 %1460, 1
  store i32 %1461, ptr @test_count, align 4, !tbaa !5
  %1462 = load i16, ptr getelementptr inbounds ([21 x i16], ptr @s2n_supported_extensions, i64 0, i64 5), align 2, !tbaa !42
  %1463 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %1462)
  %1464 = zext i8 %1463 to i32
  %1465 = icmp eq i32 %1464, 5
  br i1 %1465, label %1517, label %1466

1466:                                             ; preds = %1459
  br label %1467

1467:                                             ; preds = %1466
  br label %1468

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

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

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

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

1514:                                             ; preds = %1497, %1480
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %1515

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

1516:                                             ; No predecessors!
  br label %1517

1517:                                             ; preds = %1516, %1459
  br label %1518

1518:                                             ; preds = %1517
  br label %1519

1519:                                             ; preds = %1518
  %1520 = load i32, ptr @test_count, align 4, !tbaa !5
  %1521 = add nsw i32 %1520, 1
  store i32 %1521, ptr @test_count, align 4, !tbaa !5
  %1522 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext 15)
  %1523 = zext i8 %1522 to i32
  %1524 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !43
  %1525 = zext i8 %1524 to i32
  %1526 = icmp eq i32 %1523, %1525
  br i1 %1526, label %1578, label %1527

1527:                                             ; preds = %1519
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

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

1536:                                             ; preds = %1529
  %1537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1538 = call i32 @fileno(ptr noundef %1537) #11
  %1539 = call i32 @isatty(i32 noundef %1538) #11
  %1540 = icmp ne i32 %1539, 0
  br i1 %1540, label %1541, label %1558

1541:                                             ; preds = %1536
  %1542 = load i32, ptr %24, align 4, !tbaa !5
  %1543 = call ptr @__errno_location() #12
  store i32 %1542, ptr %1543, align 4, !tbaa !5
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = load i32, ptr @test_count, align 4, !tbaa !5
  %1546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @s2n_strerror(i32 noundef %1547, ptr noundef @.str.4)
  %1549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call ptr @s2n_strerror_debug(i32 noundef %1550, ptr noundef @.str.4)
  %1552 = call ptr @__errno_location() #12
  %1553 = load i32, ptr %1552, align 4, !tbaa !5
  %1554 = call ptr @strerror(i32 noundef %1553) #11
  %1555 = call ptr @__errno_location() #12
  %1556 = load i32, ptr %1555, align 4, !tbaa !5
  %1557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1544, ptr noundef @.str.2, i32 noundef %1545, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1548, ptr noundef %1551, ptr noundef %1554, i32 noundef %1556) #11
  br label %1575

1558:                                             ; preds = %1536, %1529
  %1559 = load i32, ptr %24, align 4, !tbaa !5
  %1560 = call ptr @__errno_location() #12
  store i32 %1559, ptr %1560, align 4, !tbaa !5
  %1561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1562 = load i32, ptr @test_count, align 4, !tbaa !5
  %1563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1564 = load i32, ptr %1563, align 4, !tbaa !5
  %1565 = call ptr @s2n_strerror(i32 noundef %1564, ptr noundef @.str.4)
  %1566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1567 = load i32, ptr %1566, align 4, !tbaa !5
  %1568 = call ptr @s2n_strerror_debug(i32 noundef %1567, ptr noundef @.str.4)
  %1569 = call ptr @__errno_location() #12
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  %1571 = call ptr @strerror(i32 noundef %1570) #11
  %1572 = call ptr @__errno_location() #12
  %1573 = load i32, ptr %1572, align 4, !tbaa !5
  %1574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1561, ptr noundef @.str.5, i32 noundef %1562, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1565, ptr noundef %1568, ptr noundef %1571, i32 noundef %1573) #11
  br label %1575

1575:                                             ; preds = %1558, %1541
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #11
  br label %1576

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

1577:                                             ; No predecessors!
  br label %1578

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

1579:                                             ; preds = %1578
  br label %1580

1580:                                             ; preds = %1579
  %1581 = load i32, ptr @test_count, align 4, !tbaa !5
  %1582 = add nsw i32 %1581, 1
  store i32 %1582, ptr @test_count, align 4, !tbaa !5
  %1583 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext -255)
  %1584 = zext i8 %1583 to i32
  %1585 = icmp eq i32 %1584, 0
  br i1 %1585, label %1637, label %1586

1586:                                             ; preds = %1580
  br label %1587

1587:                                             ; preds = %1586
  br label %1588

1588:                                             ; preds = %1587
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %1589 = call ptr @__errno_location() #12
  %1590 = load i32, ptr %1589, align 4, !tbaa !5
  store i32 %1590, ptr %25, align 4, !tbaa !5
  %1591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1592 = call i32 @s2n_print_stacktrace(ptr noundef %1591)
  %1593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1594 = trunc i8 %1593 to i1
  br i1 %1594, label %1595, label %1617

1595:                                             ; preds = %1588
  %1596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1597 = call i32 @fileno(ptr noundef %1596) #11
  %1598 = call i32 @isatty(i32 noundef %1597) #11
  %1599 = icmp ne i32 %1598, 0
  br i1 %1599, label %1600, label %1617

1600:                                             ; preds = %1595
  %1601 = load i32, ptr %25, align 4, !tbaa !5
  %1602 = call ptr @__errno_location() #12
  store i32 %1601, ptr %1602, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror(i32 noundef %1606, ptr noundef @.str.4)
  %1608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @s2n_strerror_debug(i32 noundef %1609, ptr noundef @.str.4)
  %1611 = call ptr @__errno_location() #12
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call ptr @strerror(i32 noundef %1612) #11
  %1614 = call ptr @__errno_location() #12
  %1615 = load i32, ptr %1614, align 4, !tbaa !5
  %1616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1603, ptr noundef @.str.2, i32 noundef %1604, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1607, ptr noundef %1610, ptr noundef %1613, i32 noundef %1615) #11
  br label %1634

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

1634:                                             ; preds = %1617, %1600
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %1635

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

1636:                                             ; No predecessors!
  br label %1637

1637:                                             ; preds = %1636, %1580
  br label %1638

1638:                                             ; preds = %1637
  br label %1639

1639:                                             ; preds = %1638
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext -256)
  %1643 = zext i8 %1642 to i32
  %1644 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !43
  %1645 = zext i8 %1644 to i32
  %1646 = icmp eq i32 %1643, %1645
  br i1 %1646, label %1698, label %1647

1647:                                             ; preds = %1639
  br label %1648

1648:                                             ; preds = %1647
  br label %1649

1649:                                             ; preds = %1648
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %1650 = call ptr @__errno_location() #12
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  store i32 %1651, ptr %26, align 4, !tbaa !5
  %1652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1653 = call i32 @s2n_print_stacktrace(ptr noundef %1652)
  %1654 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1655 = trunc i8 %1654 to i1
  br i1 %1655, label %1656, label %1678

1656:                                             ; preds = %1649
  %1657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1658 = call i32 @fileno(ptr noundef %1657) #11
  %1659 = call i32 @isatty(i32 noundef %1658) #11
  %1660 = icmp ne i32 %1659, 0
  br i1 %1660, label %1661, label %1678

1661:                                             ; preds = %1656
  %1662 = load i32, ptr %26, align 4, !tbaa !5
  %1663 = call ptr @__errno_location() #12
  store i32 %1662, ptr %1663, align 4, !tbaa !5
  %1664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1665 = load i32, ptr @test_count, align 4, !tbaa !5
  %1666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1667 = load i32, ptr %1666, align 4, !tbaa !5
  %1668 = call ptr @s2n_strerror(i32 noundef %1667, ptr noundef @.str.4)
  %1669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1670 = load i32, ptr %1669, align 4, !tbaa !5
  %1671 = call ptr @s2n_strerror_debug(i32 noundef %1670, ptr noundef @.str.4)
  %1672 = call ptr @__errno_location() #12
  %1673 = load i32, ptr %1672, align 4, !tbaa !5
  %1674 = call ptr @strerror(i32 noundef %1673) #11
  %1675 = call ptr @__errno_location() #12
  %1676 = load i32, ptr %1675, align 4, !tbaa !5
  %1677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1664, ptr noundef @.str.2, i32 noundef %1665, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 103, ptr noundef %1668, ptr noundef %1671, ptr noundef %1674, i32 noundef %1676) #11
  br label %1695

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

1695:                                             ; preds = %1678, %1661
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %1696

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

1697:                                             ; No predecessors!
  br label %1698

1698:                                             ; preds = %1697, %1639
  br label %1699

1699:                                             ; preds = %1698
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #11
  store i64 0, ptr %27, align 8, !tbaa !44
  br label %1700

1700:                                             ; preds = %1771, %1699
  %1701 = load i64, ptr %27, align 8, !tbaa !44
  %1702 = icmp ult i64 %1701, 21
  br i1 %1702, label %1704, label %1703

1703:                                             ; preds = %1700
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #11
  br label %1774

1704:                                             ; preds = %1700
  br label %1705

1705:                                             ; preds = %1704
  %1706 = load i32, ptr @test_count, align 4, !tbaa !5
  %1707 = add nsw i32 %1706, 1
  store i32 %1707, ptr @test_count, align 4, !tbaa !5
  %1708 = load i64, ptr %27, align 8, !tbaa !44
  %1709 = getelementptr inbounds [21 x i16], ptr @s2n_supported_extensions, i64 0, i64 %1708
  %1710 = load i16, ptr %1709, align 2, !tbaa !42
  %1711 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %1710)
  %1712 = zext i8 %1711 to i64
  %1713 = load i64, ptr %27, align 8, !tbaa !44
  %1714 = icmp eq i64 %1712, %1713
  br i1 %1714, label %1768, label %1715

1715:                                             ; preds = %1705
  br label %1716

1716:                                             ; preds = %1715
  br label %1717

1717:                                             ; preds = %1716
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %1718 = call ptr @__errno_location() #12
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  store i32 %1719, ptr %28, align 4, !tbaa !5
  %1720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1721 = call i32 @s2n_print_stacktrace(ptr noundef %1720)
  %1722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1723 = trunc i8 %1722 to i1
  br i1 %1723, label %1724, label %1746

1724:                                             ; preds = %1717
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = call i32 @fileno(ptr noundef %1725) #11
  %1727 = call i32 @isatty(i32 noundef %1726) #11
  %1728 = icmp ne i32 %1727, 0
  br i1 %1728, label %1729, label %1746

1729:                                             ; preds = %1724
  %1730 = load i32, ptr %28, align 4, !tbaa !5
  %1731 = call ptr @__errno_location() #12
  store i32 %1730, ptr %1731, align 4, !tbaa !5
  %1732 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1733 = load i32, ptr @test_count, align 4, !tbaa !5
  %1734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1735 = load i32, ptr %1734, align 4, !tbaa !5
  %1736 = call ptr @s2n_strerror(i32 noundef %1735, ptr noundef @.str.4)
  %1737 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1738 = load i32, ptr %1737, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror_debug(i32 noundef %1738, ptr noundef @.str.4)
  %1740 = call ptr @__errno_location() #12
  %1741 = load i32, ptr %1740, align 4, !tbaa !5
  %1742 = call ptr @strerror(i32 noundef %1741) #11
  %1743 = call ptr @__errno_location() #12
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1732, ptr noundef @.str.2, i32 noundef %1733, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1736, ptr noundef %1739, ptr noundef %1742, i32 noundef %1744) #11
  br label %1763

1746:                                             ; preds = %1724, %1717
  %1747 = load i32, ptr %28, align 4, !tbaa !5
  %1748 = call ptr @__errno_location() #12
  store i32 %1747, ptr %1748, align 4, !tbaa !5
  %1749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1750 = load i32, ptr @test_count, align 4, !tbaa !5
  %1751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1752 = load i32, ptr %1751, align 4, !tbaa !5
  %1753 = call ptr @s2n_strerror(i32 noundef %1752, ptr noundef @.str.4)
  %1754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1755 = load i32, ptr %1754, align 4, !tbaa !5
  %1756 = call ptr @s2n_strerror_debug(i32 noundef %1755, ptr noundef @.str.4)
  %1757 = call ptr @__errno_location() #12
  %1758 = load i32, ptr %1757, align 4, !tbaa !5
  %1759 = call ptr @strerror(i32 noundef %1758) #11
  %1760 = call ptr @__errno_location() #12
  %1761 = load i32, ptr %1760, align 4, !tbaa !5
  %1762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1749, ptr noundef @.str.5, i32 noundef %1750, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1753, ptr noundef %1756, ptr noundef %1759, i32 noundef %1761) #11
  br label %1763

1763:                                             ; preds = %1746, %1729
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %1764

1764:                                             ; preds = %1763
  br label %1765

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

1766:                                             ; No predecessors!
  br label %1767

1767:                                             ; preds = %1766
  br label %1768

1768:                                             ; preds = %1767, %1705
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769
  br label %1771

1771:                                             ; preds = %1770
  %1772 = load i64, ptr %27, align 8, !tbaa !44
  %1773 = add i64 %1772, 1
  store i64 %1773, ptr %27, align 8, !tbaa !44
  br label %1700, !llvm.loop !45

1774:                                             ; preds = %1703
  call void @llvm.lifetime.start.p0(i64 1, ptr %29) #11
  %1775 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !43
  store i8 %1775, ptr %29, align 1, !tbaa !43
  call void @llvm.lifetime.start.p0(i64 2, ptr %30) #11
  store i16 5, ptr %30, align 2, !tbaa !42
  br label %1776

1776:                                             ; preds = %1774
  %1777 = load i32, ptr @test_count, align 4, !tbaa !5
  %1778 = add nsw i32 %1777, 1
  store i32 %1778, ptr @test_count, align 4, !tbaa !5
  %1779 = load i16, ptr getelementptr inbounds ([21 x i16], ptr @s2n_supported_extensions, i64 0, i64 5), align 2, !tbaa !42
  %1780 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %1779, ptr noundef %29)
  %1781 = icmp eq i32 %1780, -1
  br i1 %1781, label %1782, label %1835

1782:                                             ; preds = %1776
  br label %1783

1783:                                             ; preds = %1782
  br label %1784

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

1791:                                             ; preds = %1784
  %1792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1793 = call i32 @fileno(ptr noundef %1792) #11
  %1794 = call i32 @isatty(i32 noundef %1793) #11
  %1795 = icmp ne i32 %1794, 0
  br i1 %1795, label %1796, label %1813

1796:                                             ; preds = %1791
  %1797 = load i32, ptr %31, align 4, !tbaa !5
  %1798 = call ptr @__errno_location() #12
  store i32 %1797, ptr %1798, align 4, !tbaa !5
  %1799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1800 = load i32, ptr @test_count, align 4, !tbaa !5
  %1801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call ptr @s2n_strerror(i32 noundef %1802, ptr noundef @.str.4)
  %1804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1805 = load i32, ptr %1804, align 4, !tbaa !5
  %1806 = call ptr @s2n_strerror_debug(i32 noundef %1805, ptr noundef @.str.4)
  %1807 = call ptr @__errno_location() #12
  %1808 = load i32, ptr %1807, align 4, !tbaa !5
  %1809 = call ptr @strerror(i32 noundef %1808) #11
  %1810 = call ptr @__errno_location() #12
  %1811 = load i32, ptr %1810, align 4, !tbaa !5
  %1812 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1799, ptr noundef @.str.2, i32 noundef %1800, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 117, ptr noundef %1803, ptr noundef %1806, ptr noundef %1809, i32 noundef %1811) #11
  br label %1830

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

1830:                                             ; preds = %1813, %1796
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #11
  br label %1831

1831:                                             ; preds = %1830
  br label %1832

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

1833:                                             ; No predecessors!
  br label %1834

1834:                                             ; preds = %1833
  br label %1835

1835:                                             ; preds = %1834, %1776
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836
  br label %1838

1838:                                             ; preds = %1837
  %1839 = load i32, ptr @test_count, align 4, !tbaa !5
  %1840 = add nsw i32 %1839, 1
  store i32 %1840, ptr @test_count, align 4, !tbaa !5
  %1841 = load i8, ptr %29, align 1, !tbaa !43
  %1842 = zext i8 %1841 to i32
  %1843 = icmp eq i32 %1842, 5
  br i1 %1843, label %1897, label %1844

1844:                                             ; preds = %1838
  br label %1845

1845:                                             ; preds = %1844
  br label %1846

1846:                                             ; preds = %1845
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #11
  %1847 = call ptr @__errno_location() #12
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  store i32 %1848, ptr %32, align 4, !tbaa !5
  %1849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1850 = call i32 @s2n_print_stacktrace(ptr noundef %1849)
  %1851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1852 = trunc i8 %1851 to i1
  br i1 %1852, label %1853, label %1875

1853:                                             ; preds = %1846
  %1854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1855 = call i32 @fileno(ptr noundef %1854) #11
  %1856 = call i32 @isatty(i32 noundef %1855) #11
  %1857 = icmp ne i32 %1856, 0
  br i1 %1857, label %1858, label %1875

1858:                                             ; preds = %1853
  %1859 = load i32, ptr %32, align 4, !tbaa !5
  %1860 = call ptr @__errno_location() #12
  store i32 %1859, ptr %1860, align 4, !tbaa !5
  %1861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1862 = load i32, ptr @test_count, align 4, !tbaa !5
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @s2n_strerror_debug(i32 noundef %1867, ptr noundef @.str.4)
  %1869 = call ptr @__errno_location() #12
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call ptr @strerror(i32 noundef %1870) #11
  %1872 = call ptr @__errno_location() #12
  %1873 = load i32, ptr %1872, align 4, !tbaa !5
  %1874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1861, ptr noundef @.str.2, i32 noundef %1862, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1865, ptr noundef %1868, ptr noundef %1871, i32 noundef %1873) #11
  br label %1892

1875:                                             ; preds = %1853, %1846
  %1876 = load i32, ptr %32, align 4, !tbaa !5
  %1877 = call ptr @__errno_location() #12
  store i32 %1876, ptr %1877, align 4, !tbaa !5
  %1878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1879 = load i32, ptr @test_count, align 4, !tbaa !5
  %1880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror(i32 noundef %1881, ptr noundef @.str.4)
  %1883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1884 = load i32, ptr %1883, align 4, !tbaa !5
  %1885 = call ptr @s2n_strerror_debug(i32 noundef %1884, ptr noundef @.str.4)
  %1886 = call ptr @__errno_location() #12
  %1887 = load i32, ptr %1886, align 4, !tbaa !5
  %1888 = call ptr @strerror(i32 noundef %1887) #11
  %1889 = call ptr @__errno_location() #12
  %1890 = load i32, ptr %1889, align 4, !tbaa !5
  %1891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1878, ptr noundef @.str.5, i32 noundef %1879, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1882, ptr noundef %1885, ptr noundef %1888, i32 noundef %1890) #11
  br label %1892

1892:                                             ; preds = %1875, %1858
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #11
  br label %1893

1893:                                             ; preds = %1892
  br label %1894

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

1895:                                             ; No predecessors!
  br label %1896

1896:                                             ; preds = %1895
  br label %1897

1897:                                             ; preds = %1896, %1838
  br label %1898

1898:                                             ; preds = %1897
  br label %1899

1899:                                             ; preds = %1898
  br label %1900

1900:                                             ; preds = %1899
  br label %1901

1901:                                             ; preds = %1900
  br label %1902

1902:                                             ; preds = %1901
  %1903 = load i32, ptr @test_count, align 4, !tbaa !5
  %1904 = add nsw i32 %1903, 1
  store i32 %1904, ptr @test_count, align 4, !tbaa !5
  %1905 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 15, ptr noundef %29)
  %1906 = icmp eq i32 %1905, -1
  br i1 %1906, label %1960, label %1907

1907:                                             ; preds = %1902
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #11
  %1910 = call ptr @__errno_location() #12
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  store i32 %1911, ptr %33, align 4, !tbaa !5
  %1912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1913 = call i32 @s2n_print_stacktrace(ptr noundef %1912)
  %1914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1915 = trunc i8 %1914 to i1
  br i1 %1915, label %1916, label %1938

1916:                                             ; preds = %1909
  %1917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1918 = call i32 @fileno(ptr noundef %1917) #11
  %1919 = call i32 @isatty(i32 noundef %1918) #11
  %1920 = icmp ne i32 %1919, 0
  br i1 %1920, label %1921, label %1938

1921:                                             ; preds = %1916
  %1922 = load i32, ptr %33, align 4, !tbaa !5
  %1923 = call ptr @__errno_location() #12
  store i32 %1922, ptr %1923, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @s2n_strerror(i32 noundef %1927, ptr noundef @.str.4)
  %1929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call ptr @s2n_strerror_debug(i32 noundef %1930, ptr noundef @.str.4)
  %1932 = call ptr @__errno_location() #12
  %1933 = load i32, ptr %1932, align 4, !tbaa !5
  %1934 = call ptr @strerror(i32 noundef %1933) #11
  %1935 = call ptr @__errno_location() #12
  %1936 = load i32, ptr %1935, align 4, !tbaa !5
  %1937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef @.str.2, i32 noundef %1925, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1928, ptr noundef %1931, ptr noundef %1934, i32 noundef %1936) #11
  br label %1955

1938:                                             ; preds = %1916, %1909
  %1939 = load i32, ptr %33, align 4, !tbaa !5
  %1940 = call ptr @__errno_location() #12
  store i32 %1939, ptr %1940, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = load i32, ptr @test_count, align 4, !tbaa !5
  %1943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @s2n_strerror(i32 noundef %1944, ptr noundef @.str.4)
  %1946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call ptr @s2n_strerror_debug(i32 noundef %1947, ptr noundef @.str.4)
  %1949 = call ptr @__errno_location() #12
  %1950 = load i32, ptr %1949, align 4, !tbaa !5
  %1951 = call ptr @strerror(i32 noundef %1950) #11
  %1952 = call ptr @__errno_location() #12
  %1953 = load i32, ptr %1952, align 4, !tbaa !5
  %1954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1941, ptr noundef @.str.5, i32 noundef %1942, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1945, ptr noundef %1948, ptr noundef %1951, i32 noundef %1953) #11
  br label %1955

1955:                                             ; preds = %1938, %1921
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

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

1958:                                             ; No predecessors!
  br label %1959

1959:                                             ; preds = %1958
  br label %1960

1960:                                             ; preds = %1959, %1902
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961
  br label %1963

1963:                                             ; preds = %1962
  %1964 = load i32, ptr @test_count, align 4, !tbaa !5
  %1965 = add nsw i32 %1964, 1
  store i32 %1965, ptr @test_count, align 4, !tbaa !5
  %1966 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  %1968 = icmp eq i32 %1967, 469762071
  br i1 %1968, label %2022, label %1969

1969:                                             ; preds = %1963
  br label %1970

1970:                                             ; preds = %1969
  br label %1971

1971:                                             ; preds = %1970
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #11
  %1972 = call ptr @__errno_location() #12
  %1973 = load i32, ptr %1972, align 4, !tbaa !5
  store i32 %1973, ptr %34, align 4, !tbaa !5
  %1974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1975 = call i32 @s2n_print_stacktrace(ptr noundef %1974)
  %1976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1977 = trunc i8 %1976 to i1
  br i1 %1977, label %1978, label %2000

1978:                                             ; preds = %1971
  %1979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1980 = call i32 @fileno(ptr noundef %1979) #11
  %1981 = call i32 @isatty(i32 noundef %1980) #11
  %1982 = icmp ne i32 %1981, 0
  br i1 %1982, label %1983, label %2000

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

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

2017:                                             ; preds = %2000, %1983
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #11
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

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

2020:                                             ; No predecessors!
  br label %2021

2021:                                             ; preds = %2020
  br label %2022

2022:                                             ; preds = %2021, %1963
  br label %2023

2023:                                             ; preds = %2022
  br label %2024

2024:                                             ; preds = %2023
  br label %2025

2025:                                             ; preds = %2024
  %2026 = load i32, ptr @test_count, align 4, !tbaa !5
  %2027 = add nsw i32 %2026, 1
  store i32 %2027, ptr @test_count, align 4, !tbaa !5
  %2028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2029 = load i32, ptr %2028, align 4, !tbaa !5
  %2030 = call ptr @s2n_strerror_debug(i32 noundef %2029, ptr noundef @.str.4)
  %2031 = icmp eq ptr %2030, null
  br i1 %2031, label %2032, label %2085

2032:                                             ; preds = %2025
  br label %2033

2033:                                             ; preds = %2032
  br label %2034

2034:                                             ; preds = %2033
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %2035 = call ptr @__errno_location() #12
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  store i32 %2036, ptr %35, align 4, !tbaa !5
  %2037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2038 = call i32 @s2n_print_stacktrace(ptr noundef %2037)
  %2039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2040 = trunc i8 %2039 to i1
  br i1 %2040, label %2041, label %2063

2041:                                             ; preds = %2034
  %2042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2043 = call i32 @fileno(ptr noundef %2042) #11
  %2044 = call i32 @isatty(i32 noundef %2043) #11
  %2045 = icmp ne i32 %2044, 0
  br i1 %2045, label %2046, label %2063

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

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

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

2081:                                             ; preds = %2080
  br label %2082

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

2083:                                             ; No predecessors!
  br label %2084

2084:                                             ; preds = %2083
  br label %2085

2085:                                             ; preds = %2084, %2025
  br label %2086

2086:                                             ; preds = %2085
  br label %2087

2087:                                             ; preds = %2086
  br label %2088

2088:                                             ; preds = %2087
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089
  %2091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2091, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2092 = call ptr @__errno_location() #12
  store i32 0, ptr %2092, align 4, !tbaa !5
  br label %2093

2093:                                             ; preds = %2090
  br label %2094

2094:                                             ; preds = %2093
  br label %2095

2095:                                             ; preds = %2094
  br label %2096

2096:                                             ; preds = %2095
  call void @llvm.lifetime.end.p0(i64 2, ptr %30) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %29) #11
  call void @llvm.lifetime.start.p0(i64 22, ptr %36) #11
  call void @llvm.memset.p0.i64(ptr align 16 %36, i8 0, i64 22, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #11
  store i64 0, ptr %37, align 8, !tbaa !44
  br label %2097

2097:                                             ; preds = %2350, %2096
  %2098 = load i64, ptr %37, align 8, !tbaa !44
  %2099 = icmp ult i64 %2098, 21
  br i1 %2099, label %2101, label %2100

2100:                                             ; preds = %2097
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #11
  br label %2353

2101:                                             ; preds = %2097
  call void @llvm.lifetime.start.p0(i64 2, ptr %38) #11
  %2102 = load i64, ptr %37, align 8, !tbaa !44
  %2103 = getelementptr inbounds [21 x i16], ptr @s2n_supported_extensions, i64 0, i64 %2102
  %2104 = load i16, ptr %2103, align 2, !tbaa !42
  store i16 %2104, ptr %38, align 2, !tbaa !42
  call void @llvm.lifetime.start.p0(i64 1, ptr %39) #11
  %2105 = load i16, ptr %38, align 2, !tbaa !42
  %2106 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %2105)
  store i8 %2106, ptr %39, align 1, !tbaa !43
  br label %2107

2107:                                             ; preds = %2101
  %2108 = load i32, ptr @test_count, align 4, !tbaa !5
  %2109 = add nsw i32 %2108, 1
  store i32 %2109, ptr @test_count, align 4, !tbaa !5
  %2110 = load i8, ptr %39, align 1, !tbaa !43
  %2111 = zext i8 %2110 to i32
  %2112 = ashr i32 %2111, 3
  %2113 = sext i32 %2112 to i64
  %2114 = getelementptr inbounds [22 x i8], ptr %36, i64 0, i64 %2113
  %2115 = load i8, ptr %2114, align 1, !tbaa !43
  %2116 = sext i8 %2115 to i32
  %2117 = load i8, ptr %39, align 1, !tbaa !43
  %2118 = zext i8 %2117 to i32
  %2119 = srem i32 %2118, 8
  %2120 = shl i32 1, %2119
  %2121 = and i32 %2116, %2120
  %2122 = icmp ne i32 %2121, 0
  br i1 %2122, label %2123, label %2176

2123:                                             ; preds = %2107
  br label %2124

2124:                                             ; preds = %2123
  br label %2125

2125:                                             ; preds = %2124
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #11
  %2126 = call ptr @__errno_location() #12
  %2127 = load i32, ptr %2126, align 4, !tbaa !5
  store i32 %2127, ptr %40, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @s2n_print_stacktrace(ptr noundef %2128)
  %2130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2131 = trunc i8 %2130 to i1
  br i1 %2131, label %2132, label %2154

2132:                                             ; preds = %2125
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = call i32 @fileno(ptr noundef %2133) #11
  %2135 = call i32 @isatty(i32 noundef %2134) #11
  %2136 = icmp ne i32 %2135, 0
  br i1 %2136, label %2137, label %2154

2137:                                             ; preds = %2132
  %2138 = load i32, ptr %40, align 4, !tbaa !5
  %2139 = call ptr @__errno_location() #12
  store i32 %2138, ptr %2139, align 4, !tbaa !5
  %2140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2141 = load i32, ptr @test_count, align 4, !tbaa !5
  %2142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @s2n_strerror(i32 noundef %2143, ptr noundef @.str.4)
  %2145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror_debug(i32 noundef %2146, ptr noundef @.str.4)
  %2148 = call ptr @__errno_location() #12
  %2149 = load i32, ptr %2148, align 4, !tbaa !5
  %2150 = call ptr @strerror(i32 noundef %2149) #11
  %2151 = call ptr @__errno_location() #12
  %2152 = load i32, ptr %2151, align 4, !tbaa !5
  %2153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2140, ptr noundef @.str.2, i32 noundef %2141, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2144, ptr noundef %2147, ptr noundef %2150, i32 noundef %2152) #11
  br label %2171

2154:                                             ; preds = %2132, %2125
  %2155 = load i32, ptr %40, align 4, !tbaa !5
  %2156 = call ptr @__errno_location() #12
  store i32 %2155, ptr %2156, align 4, !tbaa !5
  %2157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2160 = load i32, ptr %2159, align 4, !tbaa !5
  %2161 = call ptr @s2n_strerror(i32 noundef %2160, ptr noundef @.str.4)
  %2162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2163 = load i32, ptr %2162, align 4, !tbaa !5
  %2164 = call ptr @s2n_strerror_debug(i32 noundef %2163, ptr noundef @.str.4)
  %2165 = call ptr @__errno_location() #12
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  %2167 = call ptr @strerror(i32 noundef %2166) #11
  %2168 = call ptr @__errno_location() #12
  %2169 = load i32, ptr %2168, align 4, !tbaa !5
  %2170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2157, ptr noundef @.str.5, i32 noundef %2158, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2161, ptr noundef %2164, ptr noundef %2167, i32 noundef %2169) #11
  br label %2171

2171:                                             ; preds = %2154, %2137
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #11
  br label %2172

2172:                                             ; preds = %2171
  br label %2173

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

2174:                                             ; No predecessors!
  br label %2175

2175:                                             ; preds = %2174
  br label %2176

2176:                                             ; preds = %2175, %2107
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  %2179 = load i8, ptr %39, align 1, !tbaa !43
  %2180 = zext i8 %2179 to i32
  %2181 = srem i32 %2180, 8
  %2182 = shl i32 1, %2181
  %2183 = load i8, ptr %39, align 1, !tbaa !43
  %2184 = zext i8 %2183 to i32
  %2185 = ashr i32 %2184, 3
  %2186 = sext i32 %2185 to i64
  %2187 = getelementptr inbounds [22 x i8], ptr %36, i64 0, i64 %2186
  %2188 = load i8, ptr %2187, align 1, !tbaa !43
  %2189 = sext i8 %2188 to i32
  %2190 = or i32 %2189, %2182
  %2191 = trunc i32 %2190 to i8
  store i8 %2191, ptr %2187, align 1, !tbaa !43
  br label %2192

2192:                                             ; preds = %2178
  %2193 = load i32, ptr @test_count, align 4, !tbaa !5
  %2194 = add nsw i32 %2193, 1
  store i32 %2194, ptr @test_count, align 4, !tbaa !5
  %2195 = load i8, ptr %39, align 1, !tbaa !43
  %2196 = zext i8 %2195 to i32
  %2197 = ashr i32 %2196, 3
  %2198 = sext i32 %2197 to i64
  %2199 = getelementptr inbounds [22 x i8], ptr %36, i64 0, i64 %2198
  %2200 = load i8, ptr %2199, align 1, !tbaa !43
  %2201 = sext i8 %2200 to i32
  %2202 = load i8, ptr %39, align 1, !tbaa !43
  %2203 = zext i8 %2202 to i32
  %2204 = srem i32 %2203, 8
  %2205 = shl i32 1, %2204
  %2206 = and i32 %2201, %2205
  %2207 = icmp ne i32 %2206, 0
  br i1 %2207, label %2261, label %2208

2208:                                             ; preds = %2192
  br label %2209

2209:                                             ; preds = %2208
  br label %2210

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

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

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

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

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

2257:                                             ; preds = %2256
  br label %2258

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

2259:                                             ; No predecessors!
  br label %2260

2260:                                             ; preds = %2259
  br label %2261

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

2262:                                             ; preds = %2261
  br label %2263

2263:                                             ; preds = %2262
  %2264 = load i8, ptr %39, align 1, !tbaa !43
  %2265 = zext i8 %2264 to i32
  %2266 = srem i32 %2265, 8
  %2267 = shl i32 1, %2266
  %2268 = xor i32 %2267, -1
  %2269 = load i8, ptr %39, align 1, !tbaa !43
  %2270 = zext i8 %2269 to i32
  %2271 = ashr i32 %2270, 3
  %2272 = sext i32 %2271 to i64
  %2273 = getelementptr inbounds [22 x i8], ptr %36, i64 0, i64 %2272
  %2274 = load i8, ptr %2273, align 1, !tbaa !43
  %2275 = sext i8 %2274 to i32
  %2276 = and i32 %2275, %2268
  %2277 = trunc i32 %2276 to i8
  store i8 %2277, ptr %2273, align 1, !tbaa !43
  br label %2278

2278:                                             ; preds = %2263
  %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 = load i8, ptr %39, align 1, !tbaa !43
  %2282 = zext i8 %2281 to i32
  %2283 = ashr i32 %2282, 3
  %2284 = sext i32 %2283 to i64
  %2285 = getelementptr inbounds [22 x i8], ptr %36, i64 0, i64 %2284
  %2286 = load i8, ptr %2285, align 1, !tbaa !43
  %2287 = sext i8 %2286 to i32
  %2288 = load i8, ptr %39, align 1, !tbaa !43
  %2289 = zext i8 %2288 to i32
  %2290 = srem i32 %2289, 8
  %2291 = shl i32 1, %2290
  %2292 = and i32 %2287, %2291
  %2293 = icmp ne i32 %2292, 0
  br i1 %2293, label %2294, label %2347

2294:                                             ; preds = %2278
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %2297 = call ptr @__errno_location() #12
  %2298 = load i32, ptr %2297, align 4, !tbaa !5
  store i32 %2298, ptr %42, align 4, !tbaa !5
  %2299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2300 = call i32 @s2n_print_stacktrace(ptr noundef %2299)
  %2301 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2302 = trunc i8 %2301 to i1
  br i1 %2302, label %2303, label %2325

2303:                                             ; preds = %2296
  %2304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2305 = call i32 @fileno(ptr noundef %2304) #11
  %2306 = call i32 @isatty(i32 noundef %2305) #11
  %2307 = icmp ne i32 %2306, 0
  br i1 %2307, label %2308, label %2325

2308:                                             ; preds = %2303
  %2309 = load i32, ptr %42, align 4, !tbaa !5
  %2310 = call ptr @__errno_location() #12
  store i32 %2309, ptr %2310, align 4, !tbaa !5
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = load i32, ptr @test_count, align 4, !tbaa !5
  %2313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2314 = load i32, ptr %2313, align 4, !tbaa !5
  %2315 = call ptr @s2n_strerror(i32 noundef %2314, ptr noundef @.str.4)
  %2316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call ptr @s2n_strerror_debug(i32 noundef %2317, ptr noundef @.str.4)
  %2319 = call ptr @__errno_location() #12
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call ptr @strerror(i32 noundef %2320) #11
  %2322 = call ptr @__errno_location() #12
  %2323 = load i32, ptr %2322, align 4, !tbaa !5
  %2324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2311, ptr noundef @.str.2, i32 noundef %2312, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2315, ptr noundef %2318, ptr noundef %2321, i32 noundef %2323) #11
  br label %2342

2325:                                             ; preds = %2303, %2296
  %2326 = load i32, ptr %42, align 4, !tbaa !5
  %2327 = call ptr @__errno_location() #12
  store i32 %2326, ptr %2327, align 4, !tbaa !5
  %2328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2329 = load i32, ptr @test_count, align 4, !tbaa !5
  %2330 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2331 = load i32, ptr %2330, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror(i32 noundef %2331, ptr noundef @.str.4)
  %2333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @s2n_strerror_debug(i32 noundef %2334, ptr noundef @.str.4)
  %2336 = call ptr @__errno_location() #12
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @strerror(i32 noundef %2337) #11
  %2339 = call ptr @__errno_location() #12
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2328, ptr noundef @.str.5, i32 noundef %2329, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2332, ptr noundef %2335, ptr noundef %2338, i32 noundef %2340) #11
  br label %2342

2342:                                             ; preds = %2325, %2308
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %2343

2343:                                             ; preds = %2342
  br label %2344

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

2345:                                             ; No predecessors!
  br label %2346

2346:                                             ; preds = %2345
  br label %2347

2347:                                             ; preds = %2346, %2278
  br label %2348

2348:                                             ; preds = %2347
  br label %2349

2349:                                             ; preds = %2348
  call void @llvm.lifetime.end.p0(i64 1, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %38) #11
  br label %2350

2350:                                             ; preds = %2349
  %2351 = load i64, ptr %37, align 8, !tbaa !44
  %2352 = add i64 %2351, 1
  store i64 %2352, ptr %37, align 8, !tbaa !44
  br label %2097, !llvm.loop !47

2353:                                             ; preds = %2100
  call void @llvm.lifetime.end.p0(i64 22, ptr %36) #11
  call void @llvm.lifetime.start.p0(i64 1, ptr %43) #11
  %2354 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext 43)
  store i8 %2354, ptr %43, align 1, !tbaa !43
  br label %2355

2355:                                             ; preds = %2353
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = add nsw i32 %2356, 1
  store i32 %2357, ptr @test_count, align 4, !tbaa !5
  %2358 = load i8, ptr %43, align 1, !tbaa !43
  %2359 = zext i8 %2358 to i32
  %2360 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !43
  %2361 = zext i8 %2360 to i32
  %2362 = icmp eq i32 %2359, %2361
  br i1 %2362, label %2363, label %2416

2363:                                             ; preds = %2355
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

2365:                                             ; preds = %2364
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %2366 = call ptr @__errno_location() #12
  %2367 = load i32, ptr %2366, align 4, !tbaa !5
  store i32 %2367, ptr %44, align 4, !tbaa !5
  %2368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2369 = call i32 @s2n_print_stacktrace(ptr noundef %2368)
  %2370 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2371 = trunc i8 %2370 to i1
  br i1 %2371, label %2372, label %2394

2372:                                             ; preds = %2365
  %2373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2374 = call i32 @fileno(ptr noundef %2373) #11
  %2375 = call i32 @isatty(i32 noundef %2374) #11
  %2376 = icmp ne i32 %2375, 0
  br i1 %2376, label %2377, label %2394

2377:                                             ; preds = %2372
  %2378 = load i32, ptr %44, align 4, !tbaa !5
  %2379 = call ptr @__errno_location() #12
  store i32 %2378, ptr %2379, align 4, !tbaa !5
  %2380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2381 = load i32, ptr @test_count, align 4, !tbaa !5
  %2382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @s2n_strerror(i32 noundef %2383, ptr noundef @.str.4)
  %2385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call ptr @s2n_strerror_debug(i32 noundef %2386, ptr noundef @.str.4)
  %2388 = call ptr @__errno_location() #12
  %2389 = load i32, ptr %2388, align 4, !tbaa !5
  %2390 = call ptr @strerror(i32 noundef %2389) #11
  %2391 = call ptr @__errno_location() #12
  %2392 = load i32, ptr %2391, align 4, !tbaa !5
  %2393 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2380, ptr noundef @.str.2, i32 noundef %2381, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 142, ptr noundef %2384, ptr noundef %2387, ptr noundef %2390, i32 noundef %2392) #11
  br label %2411

2394:                                             ; preds = %2372, %2365
  %2395 = load i32, ptr %44, align 4, !tbaa !5
  %2396 = call ptr @__errno_location() #12
  store i32 %2395, ptr %2396, align 4, !tbaa !5
  %2397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef @.str.4)
  %2402 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call ptr @s2n_strerror_debug(i32 noundef %2403, ptr noundef @.str.4)
  %2405 = call ptr @__errno_location() #12
  %2406 = load i32, ptr %2405, align 4, !tbaa !5
  %2407 = call ptr @strerror(i32 noundef %2406) #11
  %2408 = call ptr @__errno_location() #12
  %2409 = load i32, ptr %2408, align 4, !tbaa !5
  %2410 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2397, ptr noundef @.str.5, i32 noundef %2398, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 142, ptr noundef %2401, ptr noundef %2404, ptr noundef %2407, i32 noundef %2409) #11
  br label %2411

2411:                                             ; preds = %2394, %2377
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %2412

2412:                                             ; preds = %2411
  br label %2413

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

2414:                                             ; No predecessors!
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

2416:                                             ; preds = %2415, %2355
  br label %2417

2417:                                             ; preds = %2416
  br label %2418

2418:                                             ; preds = %2417
  call void @llvm.lifetime.start.p0(i64 40, ptr %45) #11
  call void @llvm.memset.p0.i64(ptr align 8 %45, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 4184, ptr %46) #11
  call void @llvm.memset.p0.i64(ptr align 8 %46, i8 0, i64 4184, i1 false)
  br label %2419

2419:                                             ; preds = %2418
  br label %2420

2420:                                             ; preds = %2419
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = add nsw i32 %2421, 1
  store i32 %2422, ptr @test_count, align 4, !tbaa !5
  %2423 = call i32 @s2n_extension_recv(ptr noundef null, ptr noundef %46, ptr noundef %45)
  %2424 = icmp eq i32 %2423, -1
  br i1 %2424, label %2478, label %2425

2425:                                             ; preds = %2420
  br label %2426

2426:                                             ; preds = %2425
  br label %2427

2427:                                             ; preds = %2426
  call void @llvm.lifetime.start.p0(i64 4, ptr %47) #11
  %2428 = call ptr @__errno_location() #12
  %2429 = load i32, ptr %2428, align 4, !tbaa !5
  store i32 %2429, ptr %47, align 4, !tbaa !5
  %2430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2431 = call i32 @s2n_print_stacktrace(ptr noundef %2430)
  %2432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2433 = trunc i8 %2432 to i1
  br i1 %2433, label %2434, label %2456

2434:                                             ; preds = %2427
  %2435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2436 = call i32 @fileno(ptr noundef %2435) #11
  %2437 = call i32 @isatty(i32 noundef %2436) #11
  %2438 = icmp ne i32 %2437, 0
  br i1 %2438, label %2439, label %2456

2439:                                             ; preds = %2434
  %2440 = load i32, ptr %47, align 4, !tbaa !5
  %2441 = call ptr @__errno_location() #12
  store i32 %2440, ptr %2441, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = load i32, ptr @test_count, align 4, !tbaa !5
  %2444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2445 = load i32, ptr %2444, align 4, !tbaa !5
  %2446 = call ptr @s2n_strerror(i32 noundef %2445, ptr noundef @.str.4)
  %2447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = call ptr @s2n_strerror_debug(i32 noundef %2448, ptr noundef @.str.4)
  %2450 = call ptr @__errno_location() #12
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call ptr @strerror(i32 noundef %2451) #11
  %2453 = call ptr @__errno_location() #12
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2442, ptr noundef @.str.2, i32 noundef %2443, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2446, ptr noundef %2449, ptr noundef %2452, i32 noundef %2454) #11
  br label %2473

2456:                                             ; preds = %2434, %2427
  %2457 = load i32, ptr %47, align 4, !tbaa !5
  %2458 = call ptr @__errno_location() #12
  store i32 %2457, ptr %2458, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = load i32, ptr @test_count, align 4, !tbaa !5
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef @.str.4)
  %2464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror_debug(i32 noundef %2465, ptr noundef @.str.4)
  %2467 = call ptr @__errno_location() #12
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call ptr @strerror(i32 noundef %2468) #11
  %2470 = call ptr @__errno_location() #12
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2459, ptr noundef @.str.5, i32 noundef %2460, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2463, ptr noundef %2466, ptr noundef %2469, i32 noundef %2471) #11
  br label %2473

2473:                                             ; preds = %2456, %2439
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %2474

2474:                                             ; preds = %2473
  br label %2475

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

2476:                                             ; No predecessors!
  br label %2477

2477:                                             ; preds = %2476
  br label %2478

2478:                                             ; preds = %2477, %2420
  br label %2479

2479:                                             ; preds = %2478
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480
  %2482 = load i32, ptr @test_count, align 4, !tbaa !5
  %2483 = add nsw i32 %2482, 1
  store i32 %2483, ptr @test_count, align 4, !tbaa !5
  %2484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = icmp eq i32 %2485, 0
  br i1 %2486, label %2487, label %2540

2487:                                             ; preds = %2481
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

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

2496:                                             ; preds = %2489
  %2497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2498 = call i32 @fileno(ptr noundef %2497) #11
  %2499 = call i32 @isatty(i32 noundef %2498) #11
  %2500 = icmp ne i32 %2499, 0
  br i1 %2500, label %2501, label %2518

2501:                                             ; preds = %2496
  %2502 = load i32, ptr %48, align 4, !tbaa !5
  %2503 = call ptr @__errno_location() #12
  store i32 %2502, ptr %2503, align 4, !tbaa !5
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2507 = load i32, ptr %2506, align 4, !tbaa !5
  %2508 = call ptr @s2n_strerror(i32 noundef %2507, ptr noundef @.str.4)
  %2509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2510 = load i32, ptr %2509, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror_debug(i32 noundef %2510, ptr noundef @.str.4)
  %2512 = call ptr @__errno_location() #12
  %2513 = load i32, ptr %2512, align 4, !tbaa !5
  %2514 = call ptr @strerror(i32 noundef %2513) #11
  %2515 = call ptr @__errno_location() #12
  %2516 = load i32, ptr %2515, align 4, !tbaa !5
  %2517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2504, ptr noundef @.str.2, i32 noundef %2505, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2508, ptr noundef %2511, ptr noundef %2514, i32 noundef %2516) #11
  br label %2535

2518:                                             ; preds = %2496, %2489
  %2519 = load i32, ptr %48, align 4, !tbaa !5
  %2520 = call ptr @__errno_location() #12
  store i32 %2519, ptr %2520, align 4, !tbaa !5
  %2521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2522 = load i32, ptr @test_count, align 4, !tbaa !5
  %2523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2524 = load i32, ptr %2523, align 4, !tbaa !5
  %2525 = call ptr @s2n_strerror(i32 noundef %2524, ptr noundef @.str.4)
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror_debug(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call ptr @__errno_location() #12
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @strerror(i32 noundef %2530) #11
  %2532 = call ptr @__errno_location() #12
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2521, ptr noundef @.str.5, i32 noundef %2522, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2525, ptr noundef %2528, ptr noundef %2531, i32 noundef %2533) #11
  br label %2535

2535:                                             ; preds = %2518, %2501
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #11
  br label %2536

2536:                                             ; preds = %2535
  br label %2537

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

2538:                                             ; No predecessors!
  br label %2539

2539:                                             ; preds = %2538
  br label %2540

2540:                                             ; preds = %2539, %2481
  br label %2541

2541:                                             ; preds = %2540
  br label %2542

2542:                                             ; preds = %2541
  br label %2543

2543:                                             ; preds = %2542
  %2544 = load i32, ptr @test_count, align 4, !tbaa !5
  %2545 = add nsw i32 %2544, 1
  store i32 %2545, ptr @test_count, align 4, !tbaa !5
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = icmp eq ptr %2548, null
  br i1 %2549, label %2550, label %2603

2550:                                             ; preds = %2543
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

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

2559:                                             ; preds = %2552
  %2560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2561 = call i32 @fileno(ptr noundef %2560) #11
  %2562 = call i32 @isatty(i32 noundef %2561) #11
  %2563 = icmp ne i32 %2562, 0
  br i1 %2563, label %2564, label %2581

2564:                                             ; preds = %2559
  %2565 = load i32, ptr %49, 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.2, i32 noundef %2568, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2571, ptr noundef %2574, ptr noundef %2577, i32 noundef %2579) #11
  br label %2598

2581:                                             ; preds = %2559, %2552
  %2582 = load i32, ptr %49, align 4, !tbaa !5
  %2583 = call ptr @__errno_location() #12
  store i32 %2582, ptr %2583, align 4, !tbaa !5
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = load i32, ptr @test_count, align 4, !tbaa !5
  %2586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2587 = load i32, ptr %2586, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @s2n_strerror_debug(i32 noundef %2590, ptr noundef @.str.4)
  %2592 = call ptr @__errno_location() #12
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call ptr @strerror(i32 noundef %2593) #11
  %2595 = call ptr @__errno_location() #12
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2584, ptr noundef @.str.5, i32 noundef %2585, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2588, ptr noundef %2591, ptr noundef %2594, i32 noundef %2596) #11
  br label %2598

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

2599:                                             ; preds = %2598
  br label %2600

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

2601:                                             ; No predecessors!
  br label %2602

2602:                                             ; preds = %2601
  br label %2603

2603:                                             ; preds = %2602, %2543
  br label %2604

2604:                                             ; preds = %2603
  br label %2605

2605:                                             ; preds = %2604
  br label %2606

2606:                                             ; preds = %2605
  %2607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2607, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2608 = call ptr @__errno_location() #12
  store i32 0, ptr %2608, align 4, !tbaa !5
  br label %2609

2609:                                             ; preds = %2606
  br label %2610

2610:                                             ; preds = %2609
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  %2615 = load i32, ptr @test_count, align 4, !tbaa !5
  %2616 = add nsw i32 %2615, 1
  store i32 %2616, ptr @test_count, align 4, !tbaa !5
  %2617 = call i32 @s2n_extension_recv(ptr noundef @test_extension_type, ptr noundef null, ptr noundef %45)
  %2618 = icmp eq i32 %2617, -1
  br i1 %2618, label %2672, label %2619

2619:                                             ; preds = %2614
  br label %2620

2620:                                             ; preds = %2619
  br label %2621

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

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

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

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

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

2668:                                             ; preds = %2667
  br label %2669

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

2670:                                             ; No predecessors!
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

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

2673:                                             ; preds = %2672
  br label %2674

2674:                                             ; preds = %2673
  br label %2675

2675:                                             ; preds = %2674
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = add nsw i32 %2676, 1
  store i32 %2677, ptr @test_count, align 4, !tbaa !5
  %2678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2679 = load i32, ptr %2678, align 4, !tbaa !5
  %2680 = icmp eq i32 %2679, 0
  br i1 %2680, label %2681, label %2734

2681:                                             ; preds = %2675
  br label %2682

2682:                                             ; preds = %2681
  br label %2683

2683:                                             ; preds = %2682
  call void @llvm.lifetime.start.p0(i64 4, ptr %51) #11
  %2684 = call ptr @__errno_location() #12
  %2685 = load i32, ptr %2684, align 4, !tbaa !5
  store i32 %2685, ptr %51, align 4, !tbaa !5
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @s2n_print_stacktrace(ptr noundef %2686)
  %2688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2689 = trunc i8 %2688 to i1
  br i1 %2689, label %2690, label %2712

2690:                                             ; preds = %2683
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = call i32 @fileno(ptr noundef %2691) #11
  %2693 = call i32 @isatty(i32 noundef %2692) #11
  %2694 = icmp ne i32 %2693, 0
  br i1 %2694, label %2695, label %2712

2695:                                             ; preds = %2690
  %2696 = load i32, ptr %51, align 4, !tbaa !5
  %2697 = call ptr @__errno_location() #12
  store i32 %2696, ptr %2697, align 4, !tbaa !5
  %2698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2699 = load i32, ptr @test_count, align 4, !tbaa !5
  %2700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2701 = load i32, ptr %2700, align 4, !tbaa !5
  %2702 = call ptr @s2n_strerror(i32 noundef %2701, ptr noundef @.str.4)
  %2703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2704 = load i32, ptr %2703, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef @.str.4)
  %2706 = call ptr @__errno_location() #12
  %2707 = load i32, ptr %2706, align 4, !tbaa !5
  %2708 = call ptr @strerror(i32 noundef %2707) #11
  %2709 = call ptr @__errno_location() #12
  %2710 = load i32, ptr %2709, align 4, !tbaa !5
  %2711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2698, ptr noundef @.str.2, i32 noundef %2699, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2702, ptr noundef %2705, ptr noundef %2708, i32 noundef %2710) #11
  br label %2729

2712:                                             ; preds = %2690, %2683
  %2713 = load i32, ptr %51, align 4, !tbaa !5
  %2714 = call ptr @__errno_location() #12
  store i32 %2713, ptr %2714, align 4, !tbaa !5
  %2715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2716 = load i32, ptr @test_count, align 4, !tbaa !5
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror_debug(i32 noundef %2721, ptr noundef @.str.4)
  %2723 = call ptr @__errno_location() #12
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call ptr @strerror(i32 noundef %2724) #11
  %2726 = call ptr @__errno_location() #12
  %2727 = load i32, ptr %2726, align 4, !tbaa !5
  %2728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2715, ptr noundef @.str.5, i32 noundef %2716, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2719, ptr noundef %2722, ptr noundef %2725, i32 noundef %2727) #11
  br label %2729

2729:                                             ; preds = %2712, %2695
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %2730

2730:                                             ; preds = %2729
  br label %2731

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

2732:                                             ; No predecessors!
  br label %2733

2733:                                             ; preds = %2732
  br label %2734

2734:                                             ; preds = %2733, %2675
  br label %2735

2735:                                             ; preds = %2734
  br label %2736

2736:                                             ; preds = %2735
  br label %2737

2737:                                             ; preds = %2736
  %2738 = load i32, ptr @test_count, align 4, !tbaa !5
  %2739 = add nsw i32 %2738, 1
  store i32 %2739, ptr @test_count, align 4, !tbaa !5
  %2740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call ptr @s2n_strerror_debug(i32 noundef %2741, ptr noundef @.str.4)
  %2743 = icmp eq ptr %2742, null
  br i1 %2743, label %2744, label %2797

2744:                                             ; preds = %2737
  br label %2745

2745:                                             ; preds = %2744
  br label %2746

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

2753:                                             ; preds = %2746
  %2754 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2755 = call i32 @fileno(ptr noundef %2754) #11
  %2756 = call i32 @isatty(i32 noundef %2755) #11
  %2757 = icmp ne i32 %2756, 0
  br i1 %2757, label %2758, label %2775

2758:                                             ; preds = %2753
  %2759 = load i32, ptr %52, align 4, !tbaa !5
  %2760 = call ptr @__errno_location() #12
  store i32 %2759, ptr %2760, align 4, !tbaa !5
  %2761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2762 = load i32, ptr @test_count, align 4, !tbaa !5
  %2763 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2764 = load i32, ptr %2763, align 4, !tbaa !5
  %2765 = call ptr @s2n_strerror(i32 noundef %2764, ptr noundef @.str.4)
  %2766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2767 = load i32, ptr %2766, align 4, !tbaa !5
  %2768 = call ptr @s2n_strerror_debug(i32 noundef %2767, ptr noundef @.str.4)
  %2769 = call ptr @__errno_location() #12
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  %2771 = call ptr @strerror(i32 noundef %2770) #11
  %2772 = call ptr @__errno_location() #12
  %2773 = load i32, ptr %2772, align 4, !tbaa !5
  %2774 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2761, ptr noundef @.str.2, i32 noundef %2762, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2765, ptr noundef %2768, ptr noundef %2771, i32 noundef %2773) #11
  br label %2792

2775:                                             ; preds = %2753, %2746
  %2776 = load i32, ptr %52, align 4, !tbaa !5
  %2777 = call ptr @__errno_location() #12
  store i32 %2776, ptr %2777, align 4, !tbaa !5
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = load i32, ptr @test_count, align 4, !tbaa !5
  %2780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2781 = load i32, ptr %2780, align 4, !tbaa !5
  %2782 = call ptr @s2n_strerror(i32 noundef %2781, ptr noundef @.str.4)
  %2783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2784 = load i32, ptr %2783, align 4, !tbaa !5
  %2785 = call ptr @s2n_strerror_debug(i32 noundef %2784, ptr noundef @.str.4)
  %2786 = call ptr @__errno_location() #12
  %2787 = load i32, ptr %2786, align 4, !tbaa !5
  %2788 = call ptr @strerror(i32 noundef %2787) #11
  %2789 = call ptr @__errno_location() #12
  %2790 = load i32, ptr %2789, align 4, !tbaa !5
  %2791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2778, ptr noundef @.str.5, i32 noundef %2779, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 153, ptr noundef %2782, ptr noundef %2785, ptr noundef %2788, i32 noundef %2790) #11
  br label %2792

2792:                                             ; preds = %2775, %2758
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %2793

2793:                                             ; preds = %2792
  br label %2794

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

2795:                                             ; No predecessors!
  br label %2796

2796:                                             ; preds = %2795
  br label %2797

2797:                                             ; preds = %2796, %2737
  br label %2798

2798:                                             ; preds = %2797
  br label %2799

2799:                                             ; preds = %2798
  br label %2800

2800:                                             ; preds = %2799
  %2801 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2801, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2802 = call ptr @__errno_location() #12
  store i32 0, ptr %2802, align 4, !tbaa !5
  br label %2803

2803:                                             ; preds = %2800
  br label %2804

2804:                                             ; preds = %2803
  br label %2805

2805:                                             ; preds = %2804
  br label %2806

2806:                                             ; preds = %2805
  call void @llvm.lifetime.start.p0(i64 40, ptr %53) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %53, ptr align 8 @__const.main.extension_type_with_null_recv, i64 40, i1 false)
  %2807 = getelementptr inbounds %struct.s2n_extension_type, ptr %53, i32 0, i32 4
  store ptr null, ptr %2807, align 8, !tbaa !48
  br label %2808

2808:                                             ; preds = %2806
  br label %2809

2809:                                             ; preds = %2808
  %2810 = load i32, ptr @test_count, align 4, !tbaa !5
  %2811 = add nsw i32 %2810, 1
  store i32 %2811, ptr @test_count, align 4, !tbaa !5
  %2812 = call i32 @s2n_extension_recv(ptr noundef %53, ptr noundef %46, ptr noundef %45)
  %2813 = icmp eq i32 %2812, -1
  br i1 %2813, label %2867, label %2814

2814:                                             ; preds = %2809
  br label %2815

2815:                                             ; preds = %2814
  br label %2816

2816:                                             ; preds = %2815
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %2817 = call ptr @__errno_location() #12
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  store i32 %2818, ptr %54, align 4, !tbaa !5
  %2819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2820 = call i32 @s2n_print_stacktrace(ptr noundef %2819)
  %2821 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2822 = trunc i8 %2821 to i1
  br i1 %2822, label %2823, label %2845

2823:                                             ; preds = %2816
  %2824 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2825 = call i32 @fileno(ptr noundef %2824) #11
  %2826 = call i32 @isatty(i32 noundef %2825) #11
  %2827 = icmp ne i32 %2826, 0
  br i1 %2827, label %2828, label %2845

2828:                                             ; preds = %2823
  %2829 = load i32, ptr %54, align 4, !tbaa !5
  %2830 = call ptr @__errno_location() #12
  store i32 %2829, ptr %2830, align 4, !tbaa !5
  %2831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2832 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %2834, ptr noundef @.str.4)
  %2836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2837 = load i32, ptr %2836, align 4, !tbaa !5
  %2838 = call ptr @s2n_strerror_debug(i32 noundef %2837, ptr noundef @.str.4)
  %2839 = call ptr @__errno_location() #12
  %2840 = load i32, ptr %2839, align 4, !tbaa !5
  %2841 = call ptr @strerror(i32 noundef %2840) #11
  %2842 = call ptr @__errno_location() #12
  %2843 = load i32, ptr %2842, align 4, !tbaa !5
  %2844 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2831, ptr noundef @.str.2, i32 noundef %2832, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2835, ptr noundef %2838, ptr noundef %2841, i32 noundef %2843) #11
  br label %2862

2845:                                             ; preds = %2823, %2816
  %2846 = load i32, ptr %54, align 4, !tbaa !5
  %2847 = call ptr @__errno_location() #12
  store i32 %2846, ptr %2847, align 4, !tbaa !5
  %2848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2849 = load i32, ptr @test_count, align 4, !tbaa !5
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror(i32 noundef %2851, ptr noundef @.str.4)
  %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 = call ptr @__errno_location() #12
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call ptr @strerror(i32 noundef %2857) #11
  %2859 = call ptr @__errno_location() #12
  %2860 = load i32, ptr %2859, align 4, !tbaa !5
  %2861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2848, ptr noundef @.str.5, i32 noundef %2849, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2852, ptr noundef %2855, ptr noundef %2858, i32 noundef %2860) #11
  br label %2862

2862:                                             ; preds = %2845, %2828
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2863

2863:                                             ; preds = %2862
  br label %2864

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

2865:                                             ; No predecessors!
  br label %2866

2866:                                             ; preds = %2865
  br label %2867

2867:                                             ; preds = %2866, %2809
  br label %2868

2868:                                             ; preds = %2867
  br label %2869

2869:                                             ; preds = %2868
  br label %2870

2870:                                             ; preds = %2869
  %2871 = load i32, ptr @test_count, align 4, !tbaa !5
  %2872 = add nsw i32 %2871, 1
  store i32 %2872, ptr @test_count, align 4, !tbaa !5
  %2873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = icmp eq i32 %2874, 0
  br i1 %2875, label %2876, label %2929

2876:                                             ; preds = %2870
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

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

2885:                                             ; preds = %2878
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = call i32 @fileno(ptr noundef %2886) #11
  %2888 = call i32 @isatty(i32 noundef %2887) #11
  %2889 = icmp ne i32 %2888, 0
  br i1 %2889, label %2890, label %2907

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

2907:                                             ; preds = %2885, %2878
  %2908 = load i32, ptr %55, align 4, !tbaa !5
  %2909 = call ptr @__errno_location() #12
  store i32 %2908, ptr %2909, align 4, !tbaa !5
  %2910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2911 = load i32, ptr @test_count, align 4, !tbaa !5
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror_debug(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call ptr @__errno_location() #12
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @strerror(i32 noundef %2919) #11
  %2921 = call ptr @__errno_location() #12
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2910, ptr noundef @.str.5, i32 noundef %2911, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2914, ptr noundef %2917, ptr noundef %2920, i32 noundef %2922) #11
  br label %2924

2924:                                             ; preds = %2907, %2890
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2925

2925:                                             ; preds = %2924
  br label %2926

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

2927:                                             ; No predecessors!
  br label %2928

2928:                                             ; preds = %2927
  br label %2929

2929:                                             ; preds = %2928, %2870
  br label %2930

2930:                                             ; preds = %2929
  br label %2931

2931:                                             ; preds = %2930
  br label %2932

2932:                                             ; preds = %2931
  %2933 = load i32, ptr @test_count, align 4, !tbaa !5
  %2934 = add nsw i32 %2933, 1
  store i32 %2934, ptr @test_count, align 4, !tbaa !5
  %2935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror_debug(i32 noundef %2936, ptr noundef @.str.4)
  %2938 = icmp eq ptr %2937, null
  br i1 %2938, label %2939, label %2992

2939:                                             ; preds = %2932
  br label %2940

2940:                                             ; preds = %2939
  br label %2941

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

2948:                                             ; preds = %2941
  %2949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2950 = call i32 @fileno(ptr noundef %2949) #11
  %2951 = call i32 @isatty(i32 noundef %2950) #11
  %2952 = icmp ne i32 %2951, 0
  br i1 %2952, label %2953, label %2970

2953:                                             ; preds = %2948
  %2954 = load i32, ptr %56, align 4, !tbaa !5
  %2955 = call ptr @__errno_location() #12
  store i32 %2954, ptr %2955, align 4, !tbaa !5
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = load i32, ptr @test_count, align 4, !tbaa !5
  %2958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2959 = load i32, ptr %2958, align 4, !tbaa !5
  %2960 = call ptr @s2n_strerror(i32 noundef %2959, ptr noundef @.str.4)
  %2961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2962 = load i32, ptr %2961, align 4, !tbaa !5
  %2963 = call ptr @s2n_strerror_debug(i32 noundef %2962, ptr noundef @.str.4)
  %2964 = call ptr @__errno_location() #12
  %2965 = load i32, ptr %2964, align 4, !tbaa !5
  %2966 = call ptr @strerror(i32 noundef %2965) #11
  %2967 = call ptr @__errno_location() #12
  %2968 = load i32, ptr %2967, align 4, !tbaa !5
  %2969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2956, ptr noundef @.str.2, i32 noundef %2957, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2960, ptr noundef %2963, ptr noundef %2966, i32 noundef %2968) #11
  br label %2987

2970:                                             ; preds = %2948, %2941
  %2971 = load i32, ptr %56, align 4, !tbaa !5
  %2972 = call ptr @__errno_location() #12
  store i32 %2971, ptr %2972, align 4, !tbaa !5
  %2973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2974 = load i32, ptr @test_count, align 4, !tbaa !5
  %2975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2976 = load i32, ptr %2975, align 4, !tbaa !5
  %2977 = call ptr @s2n_strerror(i32 noundef %2976, ptr noundef @.str.4)
  %2978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2979 = load i32, ptr %2978, align 4, !tbaa !5
  %2980 = call ptr @s2n_strerror_debug(i32 noundef %2979, ptr noundef @.str.4)
  %2981 = call ptr @__errno_location() #12
  %2982 = load i32, ptr %2981, align 4, !tbaa !5
  %2983 = call ptr @strerror(i32 noundef %2982) #11
  %2984 = call ptr @__errno_location() #12
  %2985 = load i32, ptr %2984, align 4, !tbaa !5
  %2986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2973, ptr noundef @.str.5, i32 noundef %2974, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 157, ptr noundef %2977, ptr noundef %2980, ptr noundef %2983, i32 noundef %2985) #11
  br label %2987

2987:                                             ; preds = %2970, %2953
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #11
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

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

2990:                                             ; No predecessors!
  br label %2991

2991:                                             ; preds = %2990
  br label %2992

2992:                                             ; preds = %2991, %2932
  br label %2993

2993:                                             ; preds = %2992
  br label %2994

2994:                                             ; preds = %2993
  br label %2995

2995:                                             ; preds = %2994
  %2996 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2996, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2997 = call ptr @__errno_location() #12
  store i32 0, ptr %2997, align 4, !tbaa !5
  br label %2998

2998:                                             ; preds = %2995
  br label %2999

2999:                                             ; preds = %2998
  br label %3000

3000:                                             ; preds = %2999
  br label %3001

3001:                                             ; preds = %3000
  call void @llvm.lifetime.end.p0(i64 40, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %46) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %57) #11
  call void @llvm.memset.p0.i64(ptr align 8 %57, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %58) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %58, ptr align 8 @__const.main.request_extension_type, i64 40, i1 false)
  %3002 = getelementptr inbounds %struct.s2n_extension_type, ptr %58, i32 0, i32 1
  %3003 = load i8, ptr %3002, align 2
  %3004 = and i8 %3003, -2
  %3005 = or i8 %3004, 0
  store i8 %3005, ptr %3002, align 2
  br label %3006

3006:                                             ; preds = %3001
  %3007 = load i32, ptr @test_count, align 4, !tbaa !5
  %3008 = add nsw i32 %3007, 1
  store i32 %3008, ptr @test_count, align 4, !tbaa !5
  %3009 = call i32 @s2n_extension_recv(ptr noundef %58, ptr noundef %57, ptr noundef %45)
  %3010 = icmp eq i32 %3009, -1
  br i1 %3010, label %3011, label %3064

3011:                                             ; preds = %3006
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

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

3020:                                             ; preds = %3013
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = call i32 @fileno(ptr noundef %3021) #11
  %3023 = call i32 @isatty(i32 noundef %3022) #11
  %3024 = icmp ne i32 %3023, 0
  br i1 %3024, label %3025, label %3042

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

3042:                                             ; preds = %3020, %3013
  %3043 = load i32, ptr %59, align 4, !tbaa !5
  %3044 = call ptr @__errno_location() #12
  store i32 %3043, ptr %3044, align 4, !tbaa !5
  %3045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3046 = load i32, ptr @test_count, align 4, !tbaa !5
  %3047 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @s2n_strerror(i32 noundef %3048, ptr noundef @.str.4)
  %3050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call ptr @s2n_strerror_debug(i32 noundef %3051, ptr noundef @.str.4)
  %3053 = call ptr @__errno_location() #12
  %3054 = load i32, ptr %3053, align 4, !tbaa !5
  %3055 = call ptr @strerror(i32 noundef %3054) #11
  %3056 = call ptr @__errno_location() #12
  %3057 = load i32, ptr %3056, align 4, !tbaa !5
  %3058 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3045, ptr noundef @.str.5, i32 noundef %3046, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 167, ptr noundef %3049, ptr noundef %3052, ptr noundef %3055, i32 noundef %3057) #11
  br label %3059

3059:                                             ; preds = %3042, %3025
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #11
  br label %3060

3060:                                             ; preds = %3059
  br label %3061

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

3062:                                             ; No predecessors!
  br label %3063

3063:                                             ; preds = %3062
  br label %3064

3064:                                             ; preds = %3063, %3006
  br label %3065

3065:                                             ; preds = %3064
  br label %3066

3066:                                             ; preds = %3065
  br label %3067

3067:                                             ; preds = %3066
  %3068 = load i32, ptr @test_count, align 4, !tbaa !5
  %3069 = add nsw i32 %3068, 1
  store i32 %3069, ptr @test_count, align 4, !tbaa !5
  %3070 = getelementptr inbounds %struct.s2n_connection, ptr %57, i32 0, i32 11
  %3071 = load i8, ptr %43, align 1, !tbaa !43
  %3072 = zext i8 %3071 to i32
  %3073 = ashr i32 %3072, 3
  %3074 = sext i32 %3073 to i64
  %3075 = getelementptr inbounds [22 x i8], ptr %3070, i64 0, i64 %3074
  %3076 = load i8, ptr %3075, align 1, !tbaa !43
  %3077 = sext i8 %3076 to i32
  %3078 = load i8, ptr %43, align 1, !tbaa !43
  %3079 = zext i8 %3078 to i32
  %3080 = srem i32 %3079, 8
  %3081 = shl i32 1, %3080
  %3082 = and i32 %3077, %3081
  %3083 = icmp ne i32 %3082, 0
  br i1 %3083, label %3137, label %3084

3084:                                             ; preds = %3067
  br label %3085

3085:                                             ; preds = %3084
  br label %3086

3086:                                             ; preds = %3085
  call void @llvm.lifetime.start.p0(i64 4, ptr %60) #11
  %3087 = call ptr @__errno_location() #12
  %3088 = load i32, ptr %3087, align 4, !tbaa !5
  store i32 %3088, ptr %60, align 4, !tbaa !5
  %3089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3090 = call i32 @s2n_print_stacktrace(ptr noundef %3089)
  %3091 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3092 = trunc i8 %3091 to i1
  br i1 %3092, label %3093, label %3115

3093:                                             ; preds = %3086
  %3094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3095 = call i32 @fileno(ptr noundef %3094) #11
  %3096 = call i32 @isatty(i32 noundef %3095) #11
  %3097 = icmp ne i32 %3096, 0
  br i1 %3097, label %3098, label %3115

3098:                                             ; preds = %3093
  %3099 = load i32, ptr %60, align 4, !tbaa !5
  %3100 = call ptr @__errno_location() #12
  store i32 %3099, ptr %3100, align 4, !tbaa !5
  %3101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3102 = load i32, ptr @test_count, align 4, !tbaa !5
  %3103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3104 = load i32, ptr %3103, align 4, !tbaa !5
  %3105 = call ptr @s2n_strerror(i32 noundef %3104, ptr noundef @.str.4)
  %3106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3107 = load i32, ptr %3106, align 4, !tbaa !5
  %3108 = call ptr @s2n_strerror_debug(i32 noundef %3107, ptr noundef @.str.4)
  %3109 = call ptr @__errno_location() #12
  %3110 = load i32, ptr %3109, align 4, !tbaa !5
  %3111 = call ptr @strerror(i32 noundef %3110) #11
  %3112 = call ptr @__errno_location() #12
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3101, ptr noundef @.str.2, i32 noundef %3102, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3105, ptr noundef %3108, ptr noundef %3111, i32 noundef %3113) #11
  br label %3132

3115:                                             ; preds = %3093, %3086
  %3116 = load i32, ptr %60, align 4, !tbaa !5
  %3117 = call ptr @__errno_location() #12
  store i32 %3116, ptr %3117, align 4, !tbaa !5
  %3118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3119 = load i32, ptr @test_count, align 4, !tbaa !5
  %3120 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3121 = load i32, ptr %3120, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror(i32 noundef %3121, ptr noundef @.str.4)
  %3123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3124 = load i32, ptr %3123, align 4, !tbaa !5
  %3125 = call ptr @s2n_strerror_debug(i32 noundef %3124, ptr noundef @.str.4)
  %3126 = call ptr @__errno_location() #12
  %3127 = load i32, ptr %3126, align 4, !tbaa !5
  %3128 = call ptr @strerror(i32 noundef %3127) #11
  %3129 = call ptr @__errno_location() #12
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3118, ptr noundef @.str.5, i32 noundef %3119, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3122, ptr noundef %3125, ptr noundef %3128, i32 noundef %3130) #11
  br label %3132

3132:                                             ; preds = %3115, %3098
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %3133

3133:                                             ; preds = %3132
  br label %3134

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

3135:                                             ; No predecessors!
  br label %3136

3136:                                             ; preds = %3135
  br label %3137

3137:                                             ; preds = %3136, %3067
  br label %3138

3138:                                             ; preds = %3137
  br label %3139

3139:                                             ; preds = %3138
  call void @llvm.lifetime.end.p0(i64 40, ptr %58) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %57) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %61) #11
  call void @llvm.memset.p0.i64(ptr align 8 %61, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %62) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %62, ptr align 8 @__const.main.response_extension_type, i64 40, i1 false)
  %3140 = getelementptr inbounds %struct.s2n_extension_type, ptr %62, i32 0, i32 1
  %3141 = load i8, ptr %3140, align 2
  %3142 = and i8 %3141, -2
  %3143 = or i8 %3142, 1
  store i8 %3143, ptr %3140, align 2
  br label %3144

3144:                                             ; preds = %3139
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

3146:                                             ; preds = %3145
  %3147 = load i32, ptr @test_count, align 4, !tbaa !5
  %3148 = add nsw i32 %3147, 1
  store i32 %3148, ptr @test_count, align 4, !tbaa !5
  %3149 = call i32 @s2n_extension_recv(ptr noundef %62, ptr noundef %61, ptr noundef %45)
  %3150 = icmp eq i32 %3149, -1
  br i1 %3150, label %3204, label %3151

3151:                                             ; preds = %3146
  br label %3152

3152:                                             ; preds = %3151
  br label %3153

3153:                                             ; preds = %3152
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %3154 = call ptr @__errno_location() #12
  %3155 = load i32, ptr %3154, align 4, !tbaa !5
  store i32 %3155, ptr %63, align 4, !tbaa !5
  %3156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3157 = call i32 @s2n_print_stacktrace(ptr noundef %3156)
  %3158 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3159 = trunc i8 %3158 to i1
  br i1 %3159, label %3160, label %3182

3160:                                             ; preds = %3153
  %3161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3162 = call i32 @fileno(ptr noundef %3161) #11
  %3163 = call i32 @isatty(i32 noundef %3162) #11
  %3164 = icmp ne i32 %3163, 0
  br i1 %3164, label %3165, label %3182

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

3182:                                             ; preds = %3160, %3153
  %3183 = load i32, ptr %63, align 4, !tbaa !5
  %3184 = call ptr @__errno_location() #12
  store i32 %3183, ptr %3184, align 4, !tbaa !5
  %3185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3186 = load i32, ptr @test_count, align 4, !tbaa !5
  %3187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3188 = load i32, ptr %3187, align 4, !tbaa !5
  %3189 = call ptr @s2n_strerror(i32 noundef %3188, ptr noundef @.str.4)
  %3190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3191 = load i32, ptr %3190, align 4, !tbaa !5
  %3192 = call ptr @s2n_strerror_debug(i32 noundef %3191, ptr noundef @.str.4)
  %3193 = call ptr @__errno_location() #12
  %3194 = load i32, ptr %3193, align 4, !tbaa !5
  %3195 = call ptr @strerror(i32 noundef %3194) #11
  %3196 = call ptr @__errno_location() #12
  %3197 = load i32, ptr %3196, align 4, !tbaa !5
  %3198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3185, ptr noundef @.str.5, i32 noundef %3186, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3189, ptr noundef %3192, ptr noundef %3195, i32 noundef %3197) #11
  br label %3199

3199:                                             ; preds = %3182, %3165
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %3200

3200:                                             ; preds = %3199
  br label %3201

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

3202:                                             ; No predecessors!
  br label %3203

3203:                                             ; preds = %3202
  br label %3204

3204:                                             ; preds = %3203, %3146
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205
  br label %3207

3207:                                             ; preds = %3206
  %3208 = load i32, ptr @test_count, align 4, !tbaa !5
  %3209 = add nsw i32 %3208, 1
  store i32 %3209, 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 = icmp eq i32 %3211, 335544394
  br i1 %3212, label %3266, label %3213

3213:                                             ; preds = %3207
  br label %3214

3214:                                             ; preds = %3213
  br label %3215

3215:                                             ; preds = %3214
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #11
  %3216 = call ptr @__errno_location() #12
  %3217 = load i32, ptr %3216, align 4, !tbaa !5
  store i32 %3217, ptr %64, align 4, !tbaa !5
  %3218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3219 = call i32 @s2n_print_stacktrace(ptr noundef %3218)
  %3220 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3221 = trunc i8 %3220 to i1
  br i1 %3221, label %3222, label %3244

3222:                                             ; preds = %3215
  %3223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3224 = call i32 @fileno(ptr noundef %3223) #11
  %3225 = call i32 @isatty(i32 noundef %3224) #11
  %3226 = icmp ne i32 %3225, 0
  br i1 %3226, label %3227, label %3244

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

3244:                                             ; preds = %3222, %3215
  %3245 = load i32, ptr %64, align 4, !tbaa !5
  %3246 = call ptr @__errno_location() #12
  store i32 %3245, ptr %3246, align 4, !tbaa !5
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3250 = load i32, ptr %3249, align 4, !tbaa !5
  %3251 = call ptr @s2n_strerror(i32 noundef %3250, ptr noundef @.str.4)
  %3252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3253 = load i32, ptr %3252, align 4, !tbaa !5
  %3254 = call ptr @s2n_strerror_debug(i32 noundef %3253, ptr noundef @.str.4)
  %3255 = call ptr @__errno_location() #12
  %3256 = load i32, ptr %3255, align 4, !tbaa !5
  %3257 = call ptr @strerror(i32 noundef %3256) #11
  %3258 = call ptr @__errno_location() #12
  %3259 = load i32, ptr %3258, align 4, !tbaa !5
  %3260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3247, ptr noundef @.str.5, i32 noundef %3248, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3251, ptr noundef %3254, ptr noundef %3257, i32 noundef %3259) #11
  br label %3261

3261:                                             ; preds = %3244, %3227
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #11
  br label %3262

3262:                                             ; preds = %3261
  br label %3263

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

3264:                                             ; No predecessors!
  br label %3265

3265:                                             ; preds = %3264
  br label %3266

3266:                                             ; preds = %3265, %3207
  br label %3267

3267:                                             ; preds = %3266
  br label %3268

3268:                                             ; preds = %3267
  br label %3269

3269:                                             ; preds = %3268
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = add nsw i32 %3270, 1
  store i32 %3271, ptr @test_count, align 4, !tbaa !5
  %3272 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3273 = load i32, ptr %3272, align 4, !tbaa !5
  %3274 = call ptr @s2n_strerror_debug(i32 noundef %3273, ptr noundef @.str.4)
  %3275 = icmp eq ptr %3274, null
  br i1 %3275, label %3276, label %3329

3276:                                             ; preds = %3269
  br label %3277

3277:                                             ; preds = %3276
  br label %3278

3278:                                             ; preds = %3277
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %3279 = call ptr @__errno_location() #12
  %3280 = load i32, ptr %3279, align 4, !tbaa !5
  store i32 %3280, ptr %65, align 4, !tbaa !5
  %3281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3282 = call i32 @s2n_print_stacktrace(ptr noundef %3281)
  %3283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3284 = trunc i8 %3283 to i1
  br i1 %3284, label %3285, label %3307

3285:                                             ; preds = %3278
  %3286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3287 = call i32 @fileno(ptr noundef %3286) #11
  %3288 = call i32 @isatty(i32 noundef %3287) #11
  %3289 = icmp ne i32 %3288, 0
  br i1 %3289, label %3290, label %3307

3290:                                             ; preds = %3285
  %3291 = load i32, ptr %65, align 4, !tbaa !5
  %3292 = call ptr @__errno_location() #12
  store i32 %3291, ptr %3292, align 4, !tbaa !5
  %3293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3294 = load i32, ptr @test_count, align 4, !tbaa !5
  %3295 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3296 = load i32, ptr %3295, align 4, !tbaa !5
  %3297 = call ptr @s2n_strerror(i32 noundef %3296, ptr noundef @.str.4)
  %3298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3299 = load i32, ptr %3298, align 4, !tbaa !5
  %3300 = call ptr @s2n_strerror_debug(i32 noundef %3299, ptr noundef @.str.4)
  %3301 = call ptr @__errno_location() #12
  %3302 = load i32, ptr %3301, align 4, !tbaa !5
  %3303 = call ptr @strerror(i32 noundef %3302) #11
  %3304 = call ptr @__errno_location() #12
  %3305 = load i32, ptr %3304, align 4, !tbaa !5
  %3306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3293, ptr noundef @.str.2, i32 noundef %3294, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3297, ptr noundef %3300, ptr noundef %3303, i32 noundef %3305) #11
  br label %3324

3307:                                             ; preds = %3285, %3278
  %3308 = load i32, ptr %65, align 4, !tbaa !5
  %3309 = call ptr @__errno_location() #12
  store i32 %3308, ptr %3309, align 4, !tbaa !5
  %3310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3311 = load i32, ptr @test_count, align 4, !tbaa !5
  %3312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3313 = load i32, ptr %3312, align 4, !tbaa !5
  %3314 = call ptr @s2n_strerror(i32 noundef %3313, ptr noundef @.str.4)
  %3315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3316 = load i32, ptr %3315, align 4, !tbaa !5
  %3317 = call ptr @s2n_strerror_debug(i32 noundef %3316, ptr noundef @.str.4)
  %3318 = call ptr @__errno_location() #12
  %3319 = load i32, ptr %3318, align 4, !tbaa !5
  %3320 = call ptr @strerror(i32 noundef %3319) #11
  %3321 = call ptr @__errno_location() #12
  %3322 = load i32, ptr %3321, align 4, !tbaa !5
  %3323 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3310, ptr noundef @.str.5, i32 noundef %3311, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3314, ptr noundef %3317, ptr noundef %3320, i32 noundef %3322) #11
  br label %3324

3324:                                             ; preds = %3307, %3290
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %3325

3325:                                             ; preds = %3324
  br label %3326

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

3327:                                             ; No predecessors!
  br label %3328

3328:                                             ; preds = %3327
  br label %3329

3329:                                             ; preds = %3328, %3269
  br label %3330

3330:                                             ; preds = %3329
  br label %3331

3331:                                             ; preds = %3330
  br label %3332

3332:                                             ; preds = %3331
  br label %3333

3333:                                             ; preds = %3332
  br label %3334

3334:                                             ; preds = %3333
  %3335 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3335, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3336 = call ptr @__errno_location() #12
  store i32 0, ptr %3336, align 4, !tbaa !5
  br label %3337

3337:                                             ; preds = %3334
  br label %3338

3338:                                             ; preds = %3337
  br label %3339

3339:                                             ; preds = %3338
  br label %3340

3340:                                             ; preds = %3339
  br label %3341

3341:                                             ; preds = %3340
  br label %3342

3342:                                             ; preds = %3341
  %3343 = load i32, ptr @test_count, align 4, !tbaa !5
  %3344 = add nsw i32 %3343, 1
  store i32 %3344, ptr @test_count, align 4, !tbaa !5
  %3345 = getelementptr inbounds %struct.s2n_connection, ptr %61, i32 0, i32 11
  %3346 = getelementptr inbounds [22 x i8], ptr %3345, i64 0, i64 0
  %3347 = call i32 @memcmp(ptr noundef %3346, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %3348 = icmp eq i32 %3347, 0
  br i1 %3348, label %3402, label %3349

3349:                                             ; preds = %3342
  br label %3350

3350:                                             ; preds = %3349
  br label %3351

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

3358:                                             ; preds = %3351
  %3359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3360 = call i32 @fileno(ptr noundef %3359) #11
  %3361 = call i32 @isatty(i32 noundef %3360) #11
  %3362 = icmp ne i32 %3361, 0
  br i1 %3362, label %3363, label %3380

3363:                                             ; preds = %3358
  %3364 = load i32, ptr %66, align 4, !tbaa !5
  %3365 = call ptr @__errno_location() #12
  store i32 %3364, ptr %3365, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = load i32, ptr @test_count, align 4, !tbaa !5
  %3368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3369 = load i32, ptr %3368, align 4, !tbaa !5
  %3370 = call ptr @s2n_strerror(i32 noundef %3369, ptr noundef @.str.4)
  %3371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3372 = load i32, ptr %3371, align 4, !tbaa !5
  %3373 = call ptr @s2n_strerror_debug(i32 noundef %3372, ptr noundef @.str.4)
  %3374 = call ptr @__errno_location() #12
  %3375 = load i32, ptr %3374, align 4, !tbaa !5
  %3376 = call ptr @strerror(i32 noundef %3375) #11
  %3377 = call ptr @__errno_location() #12
  %3378 = load i32, ptr %3377, align 4, !tbaa !5
  %3379 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3366, ptr noundef @.str.2, i32 noundef %3367, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3370, ptr noundef %3373, ptr noundef %3376, i32 noundef %3378) #11
  br label %3397

3380:                                             ; preds = %3358, %3351
  %3381 = load i32, ptr %66, align 4, !tbaa !5
  %3382 = call ptr @__errno_location() #12
  store i32 %3381, ptr %3382, align 4, !tbaa !5
  %3383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3384 = load i32, ptr @test_count, align 4, !tbaa !5
  %3385 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3386 = load i32, ptr %3385, align 4, !tbaa !5
  %3387 = call ptr @s2n_strerror(i32 noundef %3386, ptr noundef @.str.4)
  %3388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror_debug(i32 noundef %3389, ptr noundef @.str.4)
  %3391 = call ptr @__errno_location() #12
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @strerror(i32 noundef %3392) #11
  %3394 = call ptr @__errno_location() #12
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3383, ptr noundef @.str.5, i32 noundef %3384, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 200, ptr noundef %3387, ptr noundef %3390, ptr noundef %3393, i32 noundef %3395) #11
  br label %3397

3397:                                             ; preds = %3380, %3363
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %3398

3398:                                             ; preds = %3397
  br label %3399

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

3400:                                             ; No predecessors!
  br label %3401

3401:                                             ; preds = %3400
  br label %3402

3402:                                             ; preds = %3401, %3342
  br label %3403

3403:                                             ; preds = %3402
  br label %3404

3404:                                             ; preds = %3403
  br label %3405

3405:                                             ; preds = %3404
  br label %3406

3406:                                             ; preds = %3405
  %3407 = load i8, ptr %43, align 1, !tbaa !43
  %3408 = zext i8 %3407 to i32
  %3409 = srem i32 %3408, 8
  %3410 = shl i32 1, %3409
  %3411 = getelementptr inbounds %struct.s2n_connection, ptr %61, i32 0, i32 10
  %3412 = load i8, ptr %43, align 1, !tbaa !43
  %3413 = zext i8 %3412 to i32
  %3414 = ashr i32 %3413, 3
  %3415 = sext i32 %3414 to i64
  %3416 = getelementptr inbounds [22 x i8], ptr %3411, i64 0, i64 %3415
  %3417 = load i8, ptr %3416, align 1, !tbaa !43
  %3418 = sext i8 %3417 to i32
  %3419 = or i32 %3418, %3410
  %3420 = trunc i32 %3419 to i8
  store i8 %3420, ptr %3416, align 1, !tbaa !43
  br label %3421

3421:                                             ; preds = %3406
  %3422 = load i32, ptr @test_count, align 4, !tbaa !5
  %3423 = add nsw i32 %3422, 1
  store i32 %3423, ptr @test_count, align 4, !tbaa !5
  %3424 = call i32 @s2n_extension_recv(ptr noundef %62, ptr noundef %61, ptr noundef %45)
  %3425 = icmp eq i32 %3424, -1
  br i1 %3425, label %3426, label %3479

3426:                                             ; preds = %3421
  br label %3427

3427:                                             ; preds = %3426
  br label %3428

3428:                                             ; preds = %3427
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #11
  %3429 = call ptr @__errno_location() #12
  %3430 = load i32, ptr %3429, align 4, !tbaa !5
  store i32 %3430, ptr %67, align 4, !tbaa !5
  %3431 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3432 = call i32 @s2n_print_stacktrace(ptr noundef %3431)
  %3433 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3434 = trunc i8 %3433 to i1
  br i1 %3434, label %3435, label %3457

3435:                                             ; preds = %3428
  %3436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3437 = call i32 @fileno(ptr noundef %3436) #11
  %3438 = call i32 @isatty(i32 noundef %3437) #11
  %3439 = icmp ne i32 %3438, 0
  br i1 %3439, label %3440, label %3457

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

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

3474:                                             ; preds = %3457, %3440
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %3475

3475:                                             ; preds = %3474
  br label %3476

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

3477:                                             ; No predecessors!
  br label %3478

3478:                                             ; preds = %3477
  br label %3479

3479:                                             ; preds = %3478, %3421
  br label %3480

3480:                                             ; preds = %3479
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

3482:                                             ; preds = %3481
  br label %3483

3483:                                             ; preds = %3482
  %3484 = load i32, ptr @test_count, align 4, !tbaa !5
  %3485 = add nsw i32 %3484, 1
  store i32 %3485, ptr @test_count, align 4, !tbaa !5
  %3486 = getelementptr inbounds %struct.s2n_connection, ptr %61, i32 0, i32 11
  %3487 = getelementptr inbounds [22 x i8], ptr %3486, i64 0, i64 0
  %3488 = call i32 @memcmp(ptr noundef %3487, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %3489 = icmp eq i32 %3488, 0
  br i1 %3489, label %3543, label %3490

3490:                                             ; preds = %3483
  br label %3491

3491:                                             ; preds = %3490
  br label %3492

3492:                                             ; preds = %3491
  call void @llvm.lifetime.start.p0(i64 4, ptr %68) #11
  %3493 = call ptr @__errno_location() #12
  %3494 = load i32, ptr %3493, align 4, !tbaa !5
  store i32 %3494, ptr %68, align 4, !tbaa !5
  %3495 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3496 = call i32 @s2n_print_stacktrace(ptr noundef %3495)
  %3497 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3498 = trunc i8 %3497 to i1
  br i1 %3498, label %3499, label %3521

3499:                                             ; preds = %3492
  %3500 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3501 = call i32 @fileno(ptr noundef %3500) #11
  %3502 = call i32 @isatty(i32 noundef %3501) #11
  %3503 = icmp ne i32 %3502, 0
  br i1 %3503, label %3504, label %3521

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

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

3538:                                             ; preds = %3521, %3504
  call void @llvm.lifetime.end.p0(i64 4, ptr %68) #11
  br label %3539

3539:                                             ; preds = %3538
  br label %3540

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

3541:                                             ; No predecessors!
  br label %3542

3542:                                             ; preds = %3541
  br label %3543

3543:                                             ; preds = %3542, %3483
  br label %3544

3544:                                             ; preds = %3543
  br label %3545

3545:                                             ; preds = %3544
  br label %3546

3546:                                             ; preds = %3545
  br label %3547

3547:                                             ; preds = %3546
  call void @llvm.lifetime.end.p0(i64 40, ptr %62) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %61) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %69) #11
  call void @llvm.memset.p0.i64(ptr align 8 %69, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %70) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %70, ptr align 8 @__const.main.extension_type_with_failure, i64 40, i1 false)
  %3548 = getelementptr inbounds %struct.s2n_extension_type, ptr %70, i32 0, i32 4
  store ptr @s2n_extension_recv_unimplemented, ptr %3548, align 8, !tbaa !48
  br label %3549

3549:                                             ; preds = %3547
  br label %3550

3550:                                             ; preds = %3549
  br label %3551

3551:                                             ; preds = %3550
  %3552 = load i32, ptr @test_count, align 4, !tbaa !5
  %3553 = add nsw i32 %3552, 1
  store i32 %3553, ptr @test_count, align 4, !tbaa !5
  %3554 = call i32 @s2n_extension_recv(ptr noundef %70, ptr noundef %69, ptr noundef %45)
  %3555 = icmp eq i32 %3554, -1
  br i1 %3555, label %3609, label %3556

3556:                                             ; preds = %3551
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %3559 = call ptr @__errno_location() #12
  %3560 = load i32, ptr %3559, align 4, !tbaa !5
  store i32 %3560, ptr %71, align 4, !tbaa !5
  %3561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3562 = call i32 @s2n_print_stacktrace(ptr noundef %3561)
  %3563 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3564 = trunc i8 %3563 to i1
  br i1 %3564, label %3565, label %3587

3565:                                             ; preds = %3558
  %3566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3567 = call i32 @fileno(ptr noundef %3566) #11
  %3568 = call i32 @isatty(i32 noundef %3567) #11
  %3569 = icmp ne i32 %3568, 0
  br i1 %3569, label %3570, label %3587

3570:                                             ; preds = %3565
  %3571 = load i32, ptr %71, align 4, !tbaa !5
  %3572 = call ptr @__errno_location() #12
  store i32 %3571, ptr %3572, align 4, !tbaa !5
  %3573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3574 = load i32, ptr @test_count, align 4, !tbaa !5
  %3575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3576 = load i32, ptr %3575, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror(i32 noundef %3576, ptr noundef @.str.4)
  %3578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3579 = load i32, ptr %3578, align 4, !tbaa !5
  %3580 = call ptr @s2n_strerror_debug(i32 noundef %3579, ptr noundef @.str.4)
  %3581 = call ptr @__errno_location() #12
  %3582 = load i32, ptr %3581, align 4, !tbaa !5
  %3583 = call ptr @strerror(i32 noundef %3582) #11
  %3584 = call ptr @__errno_location() #12
  %3585 = load i32, ptr %3584, align 4, !tbaa !5
  %3586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3573, ptr noundef @.str.2, i32 noundef %3574, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3577, ptr noundef %3580, ptr noundef %3583, i32 noundef %3585) #11
  br label %3604

3587:                                             ; preds = %3565, %3558
  %3588 = load i32, ptr %71, align 4, !tbaa !5
  %3589 = call ptr @__errno_location() #12
  store i32 %3588, ptr %3589, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = load i32, ptr @test_count, align 4, !tbaa !5
  %3592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3593 = load i32, ptr %3592, align 4, !tbaa !5
  %3594 = call ptr @s2n_strerror(i32 noundef %3593, ptr noundef @.str.4)
  %3595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3596 = load i32, ptr %3595, align 4, !tbaa !5
  %3597 = call ptr @s2n_strerror_debug(i32 noundef %3596, ptr noundef @.str.4)
  %3598 = call ptr @__errno_location() #12
  %3599 = load i32, ptr %3598, align 4, !tbaa !5
  %3600 = call ptr @strerror(i32 noundef %3599) #11
  %3601 = call ptr @__errno_location() #12
  %3602 = load i32, ptr %3601, align 4, !tbaa !5
  %3603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3590, ptr noundef @.str.5, i32 noundef %3591, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3594, ptr noundef %3597, ptr noundef %3600, i32 noundef %3602) #11
  br label %3604

3604:                                             ; preds = %3587, %3570
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %3605

3605:                                             ; preds = %3604
  br label %3606

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

3607:                                             ; No predecessors!
  br label %3608

3608:                                             ; preds = %3607
  br label %3609

3609:                                             ; preds = %3608, %3551
  br label %3610

3610:                                             ; preds = %3609
  br label %3611

3611:                                             ; preds = %3610
  br label %3612

3612:                                             ; preds = %3611
  %3613 = load i32, ptr @test_count, align 4, !tbaa !5
  %3614 = add nsw i32 %3613, 1
  store i32 %3614, ptr @test_count, align 4, !tbaa !5
  %3615 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3616 = load i32, ptr %3615, align 4, !tbaa !5
  %3617 = icmp eq i32 %3616, 402653231
  br i1 %3617, label %3671, label %3618

3618:                                             ; preds = %3612
  br label %3619

3619:                                             ; preds = %3618
  br label %3620

3620:                                             ; preds = %3619
  call void @llvm.lifetime.start.p0(i64 4, ptr %72) #11
  %3621 = call ptr @__errno_location() #12
  %3622 = load i32, ptr %3621, align 4, !tbaa !5
  store i32 %3622, ptr %72, align 4, !tbaa !5
  %3623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3624 = call i32 @s2n_print_stacktrace(ptr noundef %3623)
  %3625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3626 = trunc i8 %3625 to i1
  br i1 %3626, label %3627, label %3649

3627:                                             ; preds = %3620
  %3628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3629 = call i32 @fileno(ptr noundef %3628) #11
  %3630 = call i32 @isatty(i32 noundef %3629) #11
  %3631 = icmp ne i32 %3630, 0
  br i1 %3631, label %3632, label %3649

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

3649:                                             ; preds = %3627, %3620
  %3650 = load i32, ptr %72, align 4, !tbaa !5
  %3651 = call ptr @__errno_location() #12
  store i32 %3650, ptr %3651, align 4, !tbaa !5
  %3652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3653 = load i32, ptr @test_count, align 4, !tbaa !5
  %3654 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3655 = load i32, ptr %3654, align 4, !tbaa !5
  %3656 = call ptr @s2n_strerror(i32 noundef %3655, ptr noundef @.str.4)
  %3657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3658 = load i32, ptr %3657, align 4, !tbaa !5
  %3659 = call ptr @s2n_strerror_debug(i32 noundef %3658, ptr noundef @.str.4)
  %3660 = call ptr @__errno_location() #12
  %3661 = load i32, ptr %3660, align 4, !tbaa !5
  %3662 = call ptr @strerror(i32 noundef %3661) #11
  %3663 = call ptr @__errno_location() #12
  %3664 = load i32, ptr %3663, align 4, !tbaa !5
  %3665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3652, ptr noundef @.str.5, i32 noundef %3653, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3656, ptr noundef %3659, ptr noundef %3662, i32 noundef %3664) #11
  br label %3666

3666:                                             ; preds = %3649, %3632
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %3667

3667:                                             ; preds = %3666
  br label %3668

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

3669:                                             ; No predecessors!
  br label %3670

3670:                                             ; preds = %3669
  br label %3671

3671:                                             ; preds = %3670, %3612
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672
  br label %3674

3674:                                             ; preds = %3673
  %3675 = load i32, ptr @test_count, align 4, !tbaa !5
  %3676 = add nsw i32 %3675, 1
  store i32 %3676, ptr @test_count, align 4, !tbaa !5
  %3677 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3678 = load i32, ptr %3677, align 4, !tbaa !5
  %3679 = call ptr @s2n_strerror_debug(i32 noundef %3678, ptr noundef @.str.4)
  %3680 = icmp eq ptr %3679, null
  br i1 %3680, label %3681, label %3734

3681:                                             ; preds = %3674
  br label %3682

3682:                                             ; preds = %3681
  br label %3683

3683:                                             ; preds = %3682
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #11
  %3684 = call ptr @__errno_location() #12
  %3685 = load i32, ptr %3684, align 4, !tbaa !5
  store i32 %3685, ptr %73, align 4, !tbaa !5
  %3686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3687 = call i32 @s2n_print_stacktrace(ptr noundef %3686)
  %3688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3689 = trunc i8 %3688 to i1
  br i1 %3689, label %3690, label %3712

3690:                                             ; preds = %3683
  %3691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3692 = call i32 @fileno(ptr noundef %3691) #11
  %3693 = call i32 @isatty(i32 noundef %3692) #11
  %3694 = icmp ne i32 %3693, 0
  br i1 %3694, label %3695, label %3712

3695:                                             ; preds = %3690
  %3696 = load i32, ptr %73, align 4, !tbaa !5
  %3697 = call ptr @__errno_location() #12
  store i32 %3696, ptr %3697, align 4, !tbaa !5
  %3698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3699 = load i32, ptr @test_count, align 4, !tbaa !5
  %3700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3701 = load i32, ptr %3700, align 4, !tbaa !5
  %3702 = call ptr @s2n_strerror(i32 noundef %3701, ptr noundef @.str.4)
  %3703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3704 = load i32, ptr %3703, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror_debug(i32 noundef %3704, ptr noundef @.str.4)
  %3706 = call ptr @__errno_location() #12
  %3707 = load i32, ptr %3706, align 4, !tbaa !5
  %3708 = call ptr @strerror(i32 noundef %3707) #11
  %3709 = call ptr @__errno_location() #12
  %3710 = load i32, ptr %3709, align 4, !tbaa !5
  %3711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3698, ptr noundef @.str.2, i32 noundef %3699, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3702, ptr noundef %3705, ptr noundef %3708, i32 noundef %3710) #11
  br label %3729

3712:                                             ; preds = %3690, %3683
  %3713 = load i32, ptr %73, align 4, !tbaa !5
  %3714 = call ptr @__errno_location() #12
  store i32 %3713, ptr %3714, align 4, !tbaa !5
  %3715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3716 = load i32, ptr @test_count, align 4, !tbaa !5
  %3717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3718 = load i32, ptr %3717, align 4, !tbaa !5
  %3719 = call ptr @s2n_strerror(i32 noundef %3718, ptr noundef @.str.4)
  %3720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3721 = load i32, ptr %3720, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror_debug(i32 noundef %3721, ptr noundef @.str.4)
  %3723 = call ptr @__errno_location() #12
  %3724 = load i32, ptr %3723, align 4, !tbaa !5
  %3725 = call ptr @strerror(i32 noundef %3724) #11
  %3726 = call ptr @__errno_location() #12
  %3727 = load i32, ptr %3726, align 4, !tbaa !5
  %3728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3715, ptr noundef @.str.5, i32 noundef %3716, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 215, ptr noundef %3719, ptr noundef %3722, ptr noundef %3725, i32 noundef %3727) #11
  br label %3729

3729:                                             ; preds = %3712, %3695
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #11
  br label %3730

3730:                                             ; preds = %3729
  br label %3731

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

3732:                                             ; No predecessors!
  br label %3733

3733:                                             ; preds = %3732
  br label %3734

3734:                                             ; preds = %3733, %3674
  br label %3735

3735:                                             ; preds = %3734
  br label %3736

3736:                                             ; preds = %3735
  br label %3737

3737:                                             ; preds = %3736
  br label %3738

3738:                                             ; preds = %3737
  br label %3739

3739:                                             ; preds = %3738
  %3740 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3740, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3741 = call ptr @__errno_location() #12
  store i32 0, ptr %3741, align 4, !tbaa !5
  br label %3742

3742:                                             ; preds = %3739
  br label %3743

3743:                                             ; preds = %3742
  br label %3744

3744:                                             ; preds = %3743
  br label %3745

3745:                                             ; preds = %3744
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

3747:                                             ; preds = %3746
  %3748 = load i32, ptr @test_count, align 4, !tbaa !5
  %3749 = add nsw i32 %3748, 1
  store i32 %3749, ptr @test_count, align 4, !tbaa !5
  %3750 = getelementptr inbounds %struct.s2n_connection, ptr %69, i32 0, i32 11
  %3751 = getelementptr inbounds [22 x i8], ptr %3750, i64 0, i64 0
  %3752 = call i32 @memcmp(ptr noundef %3751, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %3753 = icmp eq i32 %3752, 0
  br i1 %3753, label %3807, label %3754

3754:                                             ; preds = %3747
  br label %3755

3755:                                             ; preds = %3754
  br label %3756

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

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

3768:                                             ; preds = %3763
  %3769 = load i32, ptr %74, align 4, !tbaa !5
  %3770 = call ptr @__errno_location() #12
  store i32 %3769, ptr %3770, align 4, !tbaa !5
  %3771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3772 = load i32, ptr @test_count, align 4, !tbaa !5
  %3773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3774 = load i32, ptr %3773, align 4, !tbaa !5
  %3775 = call ptr @s2n_strerror(i32 noundef %3774, ptr noundef @.str.4)
  %3776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3777 = load i32, ptr %3776, align 4, !tbaa !5
  %3778 = call ptr @s2n_strerror_debug(i32 noundef %3777, ptr noundef @.str.4)
  %3779 = call ptr @__errno_location() #12
  %3780 = load i32, ptr %3779, align 4, !tbaa !5
  %3781 = call ptr @strerror(i32 noundef %3780) #11
  %3782 = call ptr @__errno_location() #12
  %3783 = load i32, ptr %3782, align 4, !tbaa !5
  %3784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3771, ptr noundef @.str.2, i32 noundef %3772, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 217, ptr noundef %3775, ptr noundef %3778, ptr noundef %3781, i32 noundef %3783) #11
  br label %3802

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

3802:                                             ; preds = %3785, %3768
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %3803

3803:                                             ; preds = %3802
  br label %3804

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

3805:                                             ; No predecessors!
  br label %3806

3806:                                             ; preds = %3805
  br label %3807

3807:                                             ; preds = %3806, %3747
  br label %3808

3808:                                             ; preds = %3807
  br label %3809

3809:                                             ; preds = %3808
  br label %3810

3810:                                             ; preds = %3809
  br label %3811

3811:                                             ; preds = %3810
  call void @llvm.lifetime.end.p0(i64 40, ptr %70) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %69) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %45) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %75) #11
  call void @llvm.memset.p0.i64(ptr align 8 %75, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %76) #11
  call void @llvm.memset.p0.i64(ptr align 8 %76, i8 0, i64 40, i1 false)
  br label %3812

3812:                                             ; preds = %3811
  br label %3813

3813:                                             ; preds = %3812
  %3814 = load i32, ptr @test_count, align 4, !tbaa !5
  %3815 = add nsw i32 %3814, 1
  store i32 %3815, ptr @test_count, align 4, !tbaa !5
  %3816 = call i32 @s2n_extension_send(ptr noundef null, ptr noundef %75, ptr noundef %76)
  %3817 = icmp eq i32 %3816, -1
  br i1 %3817, label %3871, label %3818

3818:                                             ; preds = %3813
  br label %3819

3819:                                             ; preds = %3818
  br label %3820

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

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

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

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

3866:                                             ; preds = %3849, %3832
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %3867

3867:                                             ; preds = %3866
  br label %3868

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

3869:                                             ; No predecessors!
  br label %3870

3870:                                             ; preds = %3869
  br label %3871

3871:                                             ; preds = %3870, %3813
  br label %3872

3872:                                             ; preds = %3871
  br label %3873

3873:                                             ; preds = %3872
  br label %3874

3874:                                             ; preds = %3873
  %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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3878 = load i32, ptr %3877, align 4, !tbaa !5
  %3879 = icmp eq i32 %3878, 0
  br i1 %3879, label %3880, label %3933

3880:                                             ; preds = %3874
  br label %3881

3881:                                             ; preds = %3880
  br label %3882

3882:                                             ; preds = %3881
  call void @llvm.lifetime.start.p0(i64 4, ptr %78) #11
  %3883 = call ptr @__errno_location() #12
  %3884 = load i32, ptr %3883, align 4, !tbaa !5
  store i32 %3884, ptr %78, align 4, !tbaa !5
  %3885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3886 = call i32 @s2n_print_stacktrace(ptr noundef %3885)
  %3887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3888 = trunc i8 %3887 to i1
  br i1 %3888, label %3889, label %3911

3889:                                             ; preds = %3882
  %3890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3891 = call i32 @fileno(ptr noundef %3890) #11
  %3892 = call i32 @isatty(i32 noundef %3891) #11
  %3893 = icmp ne i32 %3892, 0
  br i1 %3893, label %3894, label %3911

3894:                                             ; preds = %3889
  %3895 = load i32, ptr %78, align 4, !tbaa !5
  %3896 = call ptr @__errno_location() #12
  store i32 %3895, ptr %3896, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3900 = load i32, ptr %3899, align 4, !tbaa !5
  %3901 = call ptr @s2n_strerror(i32 noundef %3900, ptr noundef @.str.4)
  %3902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3903 = load i32, ptr %3902, align 4, !tbaa !5
  %3904 = call ptr @s2n_strerror_debug(i32 noundef %3903, ptr noundef @.str.4)
  %3905 = call ptr @__errno_location() #12
  %3906 = load i32, ptr %3905, align 4, !tbaa !5
  %3907 = call ptr @strerror(i32 noundef %3906) #11
  %3908 = call ptr @__errno_location() #12
  %3909 = load i32, ptr %3908, align 4, !tbaa !5
  %3910 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3897, ptr noundef @.str.2, i32 noundef %3898, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3901, ptr noundef %3904, ptr noundef %3907, i32 noundef %3909) #11
  br label %3928

3911:                                             ; preds = %3889, %3882
  %3912 = load i32, ptr %78, align 4, !tbaa !5
  %3913 = call ptr @__errno_location() #12
  store i32 %3912, ptr %3913, align 4, !tbaa !5
  %3914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3915 = load i32, ptr @test_count, align 4, !tbaa !5
  %3916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3917 = load i32, ptr %3916, align 4, !tbaa !5
  %3918 = call ptr @s2n_strerror(i32 noundef %3917, ptr noundef @.str.4)
  %3919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3920 = load i32, ptr %3919, align 4, !tbaa !5
  %3921 = call ptr @s2n_strerror_debug(i32 noundef %3920, ptr noundef @.str.4)
  %3922 = call ptr @__errno_location() #12
  %3923 = load i32, ptr %3922, align 4, !tbaa !5
  %3924 = call ptr @strerror(i32 noundef %3923) #11
  %3925 = call ptr @__errno_location() #12
  %3926 = load i32, ptr %3925, align 4, !tbaa !5
  %3927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3914, ptr noundef @.str.5, i32 noundef %3915, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3918, ptr noundef %3921, ptr noundef %3924, i32 noundef %3926) #11
  br label %3928

3928:                                             ; preds = %3911, %3894
  call void @llvm.lifetime.end.p0(i64 4, ptr %78) #11
  br label %3929

3929:                                             ; preds = %3928
  br label %3930

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

3931:                                             ; No predecessors!
  br label %3932

3932:                                             ; preds = %3931
  br label %3933

3933:                                             ; preds = %3932, %3874
  br label %3934

3934:                                             ; preds = %3933
  br label %3935

3935:                                             ; preds = %3934
  br label %3936

3936:                                             ; preds = %3935
  %3937 = load i32, ptr @test_count, align 4, !tbaa !5
  %3938 = add nsw i32 %3937, 1
  store i32 %3938, ptr @test_count, align 4, !tbaa !5
  %3939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3940 = load i32, ptr %3939, align 4, !tbaa !5
  %3941 = call ptr @s2n_strerror_debug(i32 noundef %3940, ptr noundef @.str.4)
  %3942 = icmp eq ptr %3941, null
  br i1 %3942, label %3943, label %3996

3943:                                             ; preds = %3936
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

3945:                                             ; preds = %3944
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #11
  %3946 = call ptr @__errno_location() #12
  %3947 = load i32, ptr %3946, align 4, !tbaa !5
  store i32 %3947, ptr %79, align 4, !tbaa !5
  %3948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3949 = call i32 @s2n_print_stacktrace(ptr noundef %3948)
  %3950 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3951 = trunc i8 %3950 to i1
  br i1 %3951, label %3952, label %3974

3952:                                             ; preds = %3945
  %3953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3954 = call i32 @fileno(ptr noundef %3953) #11
  %3955 = call i32 @isatty(i32 noundef %3954) #11
  %3956 = icmp ne i32 %3955, 0
  br i1 %3956, label %3957, label %3974

3957:                                             ; preds = %3952
  %3958 = load i32, ptr %79, align 4, !tbaa !5
  %3959 = call ptr @__errno_location() #12
  store i32 %3958, ptr %3959, align 4, !tbaa !5
  %3960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3961 = load i32, ptr @test_count, align 4, !tbaa !5
  %3962 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3963 = load i32, ptr %3962, align 4, !tbaa !5
  %3964 = call ptr @s2n_strerror(i32 noundef %3963, ptr noundef @.str.4)
  %3965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3966 = load i32, ptr %3965, align 4, !tbaa !5
  %3967 = call ptr @s2n_strerror_debug(i32 noundef %3966, ptr noundef @.str.4)
  %3968 = call ptr @__errno_location() #12
  %3969 = load i32, ptr %3968, align 4, !tbaa !5
  %3970 = call ptr @strerror(i32 noundef %3969) #11
  %3971 = call ptr @__errno_location() #12
  %3972 = load i32, ptr %3971, align 4, !tbaa !5
  %3973 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3960, ptr noundef @.str.2, i32 noundef %3961, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3964, ptr noundef %3967, ptr noundef %3970, i32 noundef %3972) #11
  br label %3991

3974:                                             ; preds = %3952, %3945
  %3975 = load i32, ptr %79, align 4, !tbaa !5
  %3976 = call ptr @__errno_location() #12
  store i32 %3975, ptr %3976, align 4, !tbaa !5
  %3977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3978 = load i32, ptr @test_count, align 4, !tbaa !5
  %3979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @s2n_strerror(i32 noundef %3980, ptr noundef @.str.4)
  %3982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call ptr @s2n_strerror_debug(i32 noundef %3983, ptr noundef @.str.4)
  %3985 = call ptr @__errno_location() #12
  %3986 = load i32, ptr %3985, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #11
  %3988 = call ptr @__errno_location() #12
  %3989 = load i32, ptr %3988, align 4, !tbaa !5
  %3990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3977, ptr noundef @.str.5, i32 noundef %3978, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 228, ptr noundef %3981, ptr noundef %3984, ptr noundef %3987, i32 noundef %3989) #11
  br label %3991

3991:                                             ; preds = %3974, %3957
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #11
  br label %3992

3992:                                             ; preds = %3991
  br label %3993

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

3994:                                             ; No predecessors!
  br label %3995

3995:                                             ; preds = %3994
  br label %3996

3996:                                             ; preds = %3995, %3936
  br label %3997

3997:                                             ; preds = %3996
  br label %3998

3998:                                             ; preds = %3997
  br label %3999

3999:                                             ; preds = %3998
  %4000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4000, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4001 = call ptr @__errno_location() #12
  store i32 0, ptr %4001, align 4, !tbaa !5
  br label %4002

4002:                                             ; preds = %3999
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

4004:                                             ; preds = %4003
  br label %4005

4005:                                             ; preds = %4004
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = add nsw i32 %4008, 1
  store i32 %4009, ptr @test_count, align 4, !tbaa !5
  %4010 = call i32 @s2n_extension_send(ptr noundef @test_extension_type, ptr noundef null, ptr noundef %76)
  %4011 = icmp eq i32 %4010, -1
  br i1 %4011, label %4065, label %4012

4012:                                             ; preds = %4007
  br label %4013

4013:                                             ; preds = %4012
  br label %4014

4014:                                             ; preds = %4013
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #11
  %4015 = call ptr @__errno_location() #12
  %4016 = load i32, ptr %4015, align 4, !tbaa !5
  store i32 %4016, ptr %80, align 4, !tbaa !5
  %4017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4018 = call i32 @s2n_print_stacktrace(ptr noundef %4017)
  %4019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4020 = trunc i8 %4019 to i1
  br i1 %4020, label %4021, label %4043

4021:                                             ; preds = %4014
  %4022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4023 = call i32 @fileno(ptr noundef %4022) #11
  %4024 = call i32 @isatty(i32 noundef %4023) #11
  %4025 = icmp ne i32 %4024, 0
  br i1 %4025, label %4026, label %4043

4026:                                             ; preds = %4021
  %4027 = load i32, ptr %80, align 4, !tbaa !5
  %4028 = call ptr @__errno_location() #12
  store i32 %4027, ptr %4028, align 4, !tbaa !5
  %4029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4030 = load i32, ptr @test_count, align 4, !tbaa !5
  %4031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4032 = load i32, ptr %4031, align 4, !tbaa !5
  %4033 = call ptr @s2n_strerror(i32 noundef %4032, ptr noundef @.str.4)
  %4034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4035 = load i32, ptr %4034, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror_debug(i32 noundef %4035, ptr noundef @.str.4)
  %4037 = call ptr @__errno_location() #12
  %4038 = load i32, ptr %4037, align 4, !tbaa !5
  %4039 = call ptr @strerror(i32 noundef %4038) #11
  %4040 = call ptr @__errno_location() #12
  %4041 = load i32, ptr %4040, align 4, !tbaa !5
  %4042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4029, ptr noundef @.str.2, i32 noundef %4030, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4033, ptr noundef %4036, ptr noundef %4039, i32 noundef %4041) #11
  br label %4060

4043:                                             ; preds = %4021, %4014
  %4044 = load i32, ptr %80, align 4, !tbaa !5
  %4045 = call ptr @__errno_location() #12
  store i32 %4044, ptr %4045, align 4, !tbaa !5
  %4046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4047 = load i32, ptr @test_count, align 4, !tbaa !5
  %4048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4049 = load i32, ptr %4048, align 4, !tbaa !5
  %4050 = call ptr @s2n_strerror(i32 noundef %4049, ptr noundef @.str.4)
  %4051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4052 = load i32, ptr %4051, align 4, !tbaa !5
  %4053 = call ptr @s2n_strerror_debug(i32 noundef %4052, ptr noundef @.str.4)
  %4054 = call ptr @__errno_location() #12
  %4055 = load i32, ptr %4054, align 4, !tbaa !5
  %4056 = call ptr @strerror(i32 noundef %4055) #11
  %4057 = call ptr @__errno_location() #12
  %4058 = load i32, ptr %4057, align 4, !tbaa !5
  %4059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4046, ptr noundef @.str.5, i32 noundef %4047, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4050, ptr noundef %4053, ptr noundef %4056, i32 noundef %4058) #11
  br label %4060

4060:                                             ; preds = %4043, %4026
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %4061

4061:                                             ; preds = %4060
  br label %4062

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

4063:                                             ; No predecessors!
  br label %4064

4064:                                             ; preds = %4063
  br label %4065

4065:                                             ; preds = %4064, %4007
  br label %4066

4066:                                             ; preds = %4065
  br label %4067

4067:                                             ; preds = %4066
  br label %4068

4068:                                             ; preds = %4067
  %4069 = load i32, ptr @test_count, align 4, !tbaa !5
  %4070 = add nsw i32 %4069, 1
  store i32 %4070, ptr @test_count, align 4, !tbaa !5
  %4071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4072 = load i32, ptr %4071, align 4, !tbaa !5
  %4073 = icmp eq i32 %4072, 0
  br i1 %4073, label %4074, label %4127

4074:                                             ; preds = %4068
  br label %4075

4075:                                             ; preds = %4074
  br label %4076

4076:                                             ; preds = %4075
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %4077 = call ptr @__errno_location() #12
  %4078 = load i32, ptr %4077, align 4, !tbaa !5
  store i32 %4078, ptr %81, align 4, !tbaa !5
  %4079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4080 = call i32 @s2n_print_stacktrace(ptr noundef %4079)
  %4081 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4082 = trunc i8 %4081 to i1
  br i1 %4082, label %4083, label %4105

4083:                                             ; preds = %4076
  %4084 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4085 = call i32 @fileno(ptr noundef %4084) #11
  %4086 = call i32 @isatty(i32 noundef %4085) #11
  %4087 = icmp ne i32 %4086, 0
  br i1 %4087, label %4088, label %4105

4088:                                             ; preds = %4083
  %4089 = load i32, ptr %81, align 4, !tbaa !5
  %4090 = call ptr @__errno_location() #12
  store i32 %4089, ptr %4090, align 4, !tbaa !5
  %4091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4092 = load i32, ptr @test_count, align 4, !tbaa !5
  %4093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4094 = load i32, ptr %4093, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror(i32 noundef %4094, ptr noundef @.str.4)
  %4096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4097 = load i32, ptr %4096, align 4, !tbaa !5
  %4098 = call ptr @s2n_strerror_debug(i32 noundef %4097, ptr noundef @.str.4)
  %4099 = call ptr @__errno_location() #12
  %4100 = load i32, ptr %4099, align 4, !tbaa !5
  %4101 = call ptr @strerror(i32 noundef %4100) #11
  %4102 = call ptr @__errno_location() #12
  %4103 = load i32, ptr %4102, align 4, !tbaa !5
  %4104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4091, ptr noundef @.str.2, i32 noundef %4092, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4095, ptr noundef %4098, ptr noundef %4101, i32 noundef %4103) #11
  br label %4122

4105:                                             ; preds = %4083, %4076
  %4106 = load i32, ptr %81, align 4, !tbaa !5
  %4107 = call ptr @__errno_location() #12
  store i32 %4106, ptr %4107, align 4, !tbaa !5
  %4108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4109 = load i32, ptr @test_count, align 4, !tbaa !5
  %4110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4111 = load i32, ptr %4110, align 4, !tbaa !5
  %4112 = call ptr @s2n_strerror(i32 noundef %4111, ptr noundef @.str.4)
  %4113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4114 = load i32, ptr %4113, align 4, !tbaa !5
  %4115 = call ptr @s2n_strerror_debug(i32 noundef %4114, ptr noundef @.str.4)
  %4116 = call ptr @__errno_location() #12
  %4117 = load i32, ptr %4116, align 4, !tbaa !5
  %4118 = call ptr @strerror(i32 noundef %4117) #11
  %4119 = call ptr @__errno_location() #12
  %4120 = load i32, ptr %4119, align 4, !tbaa !5
  %4121 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4108, ptr noundef @.str.5, i32 noundef %4109, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4112, ptr noundef %4115, ptr noundef %4118, i32 noundef %4120) #11
  br label %4122

4122:                                             ; preds = %4105, %4088
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %4123

4123:                                             ; preds = %4122
  br label %4124

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

4125:                                             ; No predecessors!
  br label %4126

4126:                                             ; preds = %4125
  br label %4127

4127:                                             ; preds = %4126, %4068
  br label %4128

4128:                                             ; preds = %4127
  br label %4129

4129:                                             ; preds = %4128
  br label %4130

4130:                                             ; preds = %4129
  %4131 = load i32, ptr @test_count, align 4, !tbaa !5
  %4132 = add nsw i32 %4131, 1
  store i32 %4132, ptr @test_count, align 4, !tbaa !5
  %4133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4134 = load i32, ptr %4133, align 4, !tbaa !5
  %4135 = call ptr @s2n_strerror_debug(i32 noundef %4134, ptr noundef @.str.4)
  %4136 = icmp eq ptr %4135, null
  br i1 %4136, label %4137, label %4190

4137:                                             ; preds = %4130
  br label %4138

4138:                                             ; preds = %4137
  br label %4139

4139:                                             ; preds = %4138
  call void @llvm.lifetime.start.p0(i64 4, ptr %82) #11
  %4140 = call ptr @__errno_location() #12
  %4141 = load i32, ptr %4140, align 4, !tbaa !5
  store i32 %4141, ptr %82, align 4, !tbaa !5
  %4142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4143 = call i32 @s2n_print_stacktrace(ptr noundef %4142)
  %4144 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4145 = trunc i8 %4144 to i1
  br i1 %4145, label %4146, label %4168

4146:                                             ; preds = %4139
  %4147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4148 = call i32 @fileno(ptr noundef %4147) #11
  %4149 = call i32 @isatty(i32 noundef %4148) #11
  %4150 = icmp ne i32 %4149, 0
  br i1 %4150, label %4151, label %4168

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

4168:                                             ; preds = %4146, %4139
  %4169 = load i32, ptr %82, align 4, !tbaa !5
  %4170 = call ptr @__errno_location() #12
  store i32 %4169, ptr %4170, align 4, !tbaa !5
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = load i32, ptr @test_count, align 4, !tbaa !5
  %4173 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @s2n_strerror(i32 noundef %4174, ptr noundef @.str.4)
  %4176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call ptr @s2n_strerror_debug(i32 noundef %4177, ptr noundef @.str.4)
  %4179 = call ptr @__errno_location() #12
  %4180 = load i32, ptr %4179, align 4, !tbaa !5
  %4181 = call ptr @strerror(i32 noundef %4180) #11
  %4182 = call ptr @__errno_location() #12
  %4183 = load i32, ptr %4182, align 4, !tbaa !5
  %4184 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4171, ptr noundef @.str.5, i32 noundef %4172, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 229, ptr noundef %4175, ptr noundef %4178, ptr noundef %4181, i32 noundef %4183) #11
  br label %4185

4185:                                             ; preds = %4168, %4151
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %4186

4186:                                             ; preds = %4185
  br label %4187

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

4188:                                             ; No predecessors!
  br label %4189

4189:                                             ; preds = %4188
  br label %4190

4190:                                             ; preds = %4189, %4130
  br label %4191

4191:                                             ; preds = %4190
  br label %4192

4192:                                             ; preds = %4191
  br label %4193

4193:                                             ; preds = %4192
  %4194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4194, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4195 = call ptr @__errno_location() #12
  store i32 0, ptr %4195, align 4, !tbaa !5
  br label %4196

4196:                                             ; preds = %4193
  br label %4197

4197:                                             ; preds = %4196
  br label %4198

4198:                                             ; preds = %4197
  br label %4199

4199:                                             ; preds = %4198
  call void @llvm.lifetime.start.p0(i64 40, ptr %83) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %83, ptr align 8 @__const.main.extension_type_with_null_send, i64 40, i1 false)
  %4200 = getelementptr inbounds %struct.s2n_extension_type, ptr %83, i32 0, i32 3
  store ptr null, ptr %4200, align 8, !tbaa !50
  br label %4201

4201:                                             ; preds = %4199
  br label %4202

4202:                                             ; preds = %4201
  %4203 = load i32, ptr @test_count, align 4, !tbaa !5
  %4204 = add nsw i32 %4203, 1
  store i32 %4204, ptr @test_count, align 4, !tbaa !5
  %4205 = call i32 @s2n_extension_send(ptr noundef %83, ptr noundef %75, ptr noundef %76)
  %4206 = icmp eq i32 %4205, -1
  br i1 %4206, label %4260, label %4207

4207:                                             ; preds = %4202
  br label %4208

4208:                                             ; preds = %4207
  br label %4209

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

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

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

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

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

4256:                                             ; preds = %4255
  br label %4257

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

4258:                                             ; No predecessors!
  br label %4259

4259:                                             ; preds = %4258
  br label %4260

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

4261:                                             ; preds = %4260
  br label %4262

4262:                                             ; preds = %4261
  br label %4263

4263:                                             ; preds = %4262
  %4264 = load i32, ptr @test_count, align 4, !tbaa !5
  %4265 = add nsw i32 %4264, 1
  store i32 %4265, ptr @test_count, align 4, !tbaa !5
  %4266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4267 = load i32, ptr %4266, align 4, !tbaa !5
  %4268 = icmp eq i32 %4267, 0
  br i1 %4268, label %4269, label %4322

4269:                                             ; preds = %4263
  br label %4270

4270:                                             ; preds = %4269
  br label %4271

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

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

4283:                                             ; preds = %4278
  %4284 = load i32, ptr %85, align 4, !tbaa !5
  %4285 = call ptr @__errno_location() #12
  store i32 %4284, ptr %4285, align 4, !tbaa !5
  %4286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4287 = load i32, ptr @test_count, align 4, !tbaa !5
  %4288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4289 = load i32, ptr %4288, align 4, !tbaa !5
  %4290 = call ptr @s2n_strerror(i32 noundef %4289, ptr noundef @.str.4)
  %4291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4292 = load i32, ptr %4291, align 4, !tbaa !5
  %4293 = call ptr @s2n_strerror_debug(i32 noundef %4292, ptr noundef @.str.4)
  %4294 = call ptr @__errno_location() #12
  %4295 = load i32, ptr %4294, align 4, !tbaa !5
  %4296 = call ptr @strerror(i32 noundef %4295) #11
  %4297 = call ptr @__errno_location() #12
  %4298 = load i32, ptr %4297, align 4, !tbaa !5
  %4299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4286, ptr noundef @.str.2, i32 noundef %4287, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4290, ptr noundef %4293, ptr noundef %4296, i32 noundef %4298) #11
  br label %4317

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

4317:                                             ; preds = %4300, %4283
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  br label %4318

4318:                                             ; preds = %4317
  br label %4319

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

4320:                                             ; No predecessors!
  br label %4321

4321:                                             ; preds = %4320
  br label %4322

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

4323:                                             ; preds = %4322
  br label %4324

4324:                                             ; preds = %4323
  br label %4325

4325:                                             ; preds = %4324
  %4326 = load i32, ptr @test_count, align 4, !tbaa !5
  %4327 = add nsw i32 %4326, 1
  store i32 %4327, 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_debug(i32 noundef %4329, ptr noundef @.str.4)
  %4331 = icmp eq ptr %4330, null
  br i1 %4331, label %4332, label %4385

4332:                                             ; preds = %4325
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

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

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

4346:                                             ; preds = %4341
  %4347 = load i32, ptr %86, align 4, !tbaa !5
  %4348 = call ptr @__errno_location() #12
  store i32 %4347, ptr %4348, align 4, !tbaa !5
  %4349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4350 = load i32, 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(i32 noundef %4352, ptr noundef @.str.4)
  %4354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4355 = load i32, ptr %4354, align 4, !tbaa !5
  %4356 = call ptr @s2n_strerror_debug(i32 noundef %4355, ptr noundef @.str.4)
  %4357 = call ptr @__errno_location() #12
  %4358 = load i32, ptr %4357, align 4, !tbaa !5
  %4359 = call ptr @strerror(i32 noundef %4358) #11
  %4360 = call ptr @__errno_location() #12
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4349, ptr noundef @.str.2, i32 noundef %4350, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 233, ptr noundef %4353, ptr noundef %4356, ptr noundef %4359, i32 noundef %4361) #11
  br label %4380

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

4380:                                             ; preds = %4363, %4346
  call void @llvm.lifetime.end.p0(i64 4, ptr %86) #11
  br label %4381

4381:                                             ; preds = %4380
  br label %4382

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

4383:                                             ; No predecessors!
  br label %4384

4384:                                             ; preds = %4383
  br label %4385

4385:                                             ; preds = %4384, %4325
  br label %4386

4386:                                             ; preds = %4385
  br label %4387

4387:                                             ; preds = %4386
  br label %4388

4388:                                             ; preds = %4387
  %4389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4389, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4390 = call ptr @__errno_location() #12
  store i32 0, ptr %4390, align 4, !tbaa !5
  br label %4391

4391:                                             ; preds = %4388
  br label %4392

4392:                                             ; preds = %4391
  br label %4393

4393:                                             ; preds = %4392
  br label %4394

4394:                                             ; preds = %4393
  call void @llvm.lifetime.start.p0(i64 40, ptr %87) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %87, ptr align 8 @__const.main.extension_type_with_null_should_send, i64 40, i1 false)
  %4395 = getelementptr inbounds %struct.s2n_extension_type, ptr %87, i32 0, i32 5
  store ptr null, ptr %4395, align 8, !tbaa !51
  br label %4396

4396:                                             ; preds = %4394
  br label %4397

4397:                                             ; preds = %4396
  %4398 = load i32, ptr @test_count, align 4, !tbaa !5
  %4399 = add nsw i32 %4398, 1
  store i32 %4399, ptr @test_count, align 4, !tbaa !5
  %4400 = call i32 @s2n_extension_send(ptr noundef %87, ptr noundef %75, ptr noundef %76)
  %4401 = icmp eq i32 %4400, -1
  br i1 %4401, label %4455, label %4402

4402:                                             ; preds = %4397
  br label %4403

4403:                                             ; preds = %4402
  br label %4404

4404:                                             ; preds = %4403
  call void @llvm.lifetime.start.p0(i64 4, ptr %88) #11
  %4405 = call ptr @__errno_location() #12
  %4406 = load i32, ptr %4405, align 4, !tbaa !5
  store i32 %4406, ptr %88, align 4, !tbaa !5
  %4407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4408 = call i32 @s2n_print_stacktrace(ptr noundef %4407)
  %4409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4410 = trunc i8 %4409 to i1
  br i1 %4410, label %4411, label %4433

4411:                                             ; preds = %4404
  %4412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4413 = call i32 @fileno(ptr noundef %4412) #11
  %4414 = call i32 @isatty(i32 noundef %4413) #11
  %4415 = icmp ne i32 %4414, 0
  br i1 %4415, label %4416, label %4433

4416:                                             ; preds = %4411
  %4417 = load i32, ptr %88, align 4, !tbaa !5
  %4418 = call ptr @__errno_location() #12
  store i32 %4417, ptr %4418, align 4, !tbaa !5
  %4419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4420 = load i32, ptr @test_count, align 4, !tbaa !5
  %4421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4422 = load i32, ptr %4421, align 4, !tbaa !5
  %4423 = call ptr @s2n_strerror(i32 noundef %4422, ptr noundef @.str.4)
  %4424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4425 = load i32, ptr %4424, align 4, !tbaa !5
  %4426 = call ptr @s2n_strerror_debug(i32 noundef %4425, ptr noundef @.str.4)
  %4427 = call ptr @__errno_location() #12
  %4428 = load i32, ptr %4427, align 4, !tbaa !5
  %4429 = call ptr @strerror(i32 noundef %4428) #11
  %4430 = call ptr @__errno_location() #12
  %4431 = load i32, ptr %4430, align 4, !tbaa !5
  %4432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4419, ptr noundef @.str.2, i32 noundef %4420, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4423, ptr noundef %4426, ptr noundef %4429, i32 noundef %4431) #11
  br label %4450

4433:                                             ; preds = %4411, %4404
  %4434 = load i32, ptr %88, align 4, !tbaa !5
  %4435 = call ptr @__errno_location() #12
  store i32 %4434, ptr %4435, align 4, !tbaa !5
  %4436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4437 = load i32, ptr @test_count, align 4, !tbaa !5
  %4438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4439 = load i32, ptr %4438, align 4, !tbaa !5
  %4440 = call ptr @s2n_strerror(i32 noundef %4439, ptr noundef @.str.4)
  %4441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4442 = load i32, ptr %4441, align 4, !tbaa !5
  %4443 = call ptr @s2n_strerror_debug(i32 noundef %4442, ptr noundef @.str.4)
  %4444 = call ptr @__errno_location() #12
  %4445 = load i32, ptr %4444, align 4, !tbaa !5
  %4446 = call ptr @strerror(i32 noundef %4445) #11
  %4447 = call ptr @__errno_location() #12
  %4448 = load i32, ptr %4447, align 4, !tbaa !5
  %4449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4436, ptr noundef @.str.5, i32 noundef %4437, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4440, ptr noundef %4443, ptr noundef %4446, i32 noundef %4448) #11
  br label %4450

4450:                                             ; preds = %4433, %4416
  call void @llvm.lifetime.end.p0(i64 4, ptr %88) #11
  br label %4451

4451:                                             ; preds = %4450
  br label %4452

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

4453:                                             ; No predecessors!
  br label %4454

4454:                                             ; preds = %4453
  br label %4455

4455:                                             ; preds = %4454, %4397
  br label %4456

4456:                                             ; preds = %4455
  br label %4457

4457:                                             ; preds = %4456
  br label %4458

4458:                                             ; preds = %4457
  %4459 = load i32, ptr @test_count, align 4, !tbaa !5
  %4460 = add nsw i32 %4459, 1
  store i32 %4460, 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 = icmp eq i32 %4462, 0
  br i1 %4463, label %4464, label %4517

4464:                                             ; preds = %4458
  br label %4465

4465:                                             ; preds = %4464
  br label %4466

4466:                                             ; preds = %4465
  call void @llvm.lifetime.start.p0(i64 4, ptr %89) #11
  %4467 = call ptr @__errno_location() #12
  %4468 = load i32, ptr %4467, align 4, !tbaa !5
  store i32 %4468, ptr %89, align 4, !tbaa !5
  %4469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4470 = call i32 @s2n_print_stacktrace(ptr noundef %4469)
  %4471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4472 = trunc i8 %4471 to i1
  br i1 %4472, label %4473, label %4495

4473:                                             ; preds = %4466
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = call i32 @fileno(ptr noundef %4474) #11
  %4476 = call i32 @isatty(i32 noundef %4475) #11
  %4477 = icmp ne i32 %4476, 0
  br i1 %4477, label %4478, label %4495

4478:                                             ; preds = %4473
  %4479 = load i32, ptr %89, align 4, !tbaa !5
  %4480 = call ptr @__errno_location() #12
  store i32 %4479, ptr %4480, align 4, !tbaa !5
  %4481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4482 = load i32, ptr @test_count, align 4, !tbaa !5
  %4483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4484 = load i32, ptr %4483, align 4, !tbaa !5
  %4485 = call ptr @s2n_strerror(i32 noundef %4484, ptr noundef @.str.4)
  %4486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4487 = load i32, ptr %4486, align 4, !tbaa !5
  %4488 = call ptr @s2n_strerror_debug(i32 noundef %4487, ptr noundef @.str.4)
  %4489 = call ptr @__errno_location() #12
  %4490 = load i32, ptr %4489, align 4, !tbaa !5
  %4491 = call ptr @strerror(i32 noundef %4490) #11
  %4492 = call ptr @__errno_location() #12
  %4493 = load i32, ptr %4492, align 4, !tbaa !5
  %4494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4481, ptr noundef @.str.2, i32 noundef %4482, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4485, ptr noundef %4488, ptr noundef %4491, i32 noundef %4493) #11
  br label %4512

4495:                                             ; preds = %4473, %4466
  %4496 = load i32, ptr %89, align 4, !tbaa !5
  %4497 = call ptr @__errno_location() #12
  store i32 %4496, ptr %4497, align 4, !tbaa !5
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = load i32, ptr @test_count, align 4, !tbaa !5
  %4500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4501 = load i32, ptr %4500, align 4, !tbaa !5
  %4502 = call ptr @s2n_strerror(i32 noundef %4501, ptr noundef @.str.4)
  %4503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4504 = load i32, ptr %4503, align 4, !tbaa !5
  %4505 = call ptr @s2n_strerror_debug(i32 noundef %4504, ptr noundef @.str.4)
  %4506 = call ptr @__errno_location() #12
  %4507 = load i32, ptr %4506, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #11
  %4509 = call ptr @__errno_location() #12
  %4510 = load i32, ptr %4509, align 4, !tbaa !5
  %4511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4498, ptr noundef @.str.5, i32 noundef %4499, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4502, ptr noundef %4505, ptr noundef %4508, i32 noundef %4510) #11
  br label %4512

4512:                                             ; preds = %4495, %4478
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %4513

4513:                                             ; preds = %4512
  br label %4514

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

4515:                                             ; No predecessors!
  br label %4516

4516:                                             ; preds = %4515
  br label %4517

4517:                                             ; preds = %4516, %4458
  br label %4518

4518:                                             ; preds = %4517
  br label %4519

4519:                                             ; preds = %4518
  br label %4520

4520:                                             ; preds = %4519
  %4521 = load i32, ptr @test_count, align 4, !tbaa !5
  %4522 = add nsw i32 %4521, 1
  store i32 %4522, 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_debug(i32 noundef %4524, ptr noundef @.str.4)
  %4526 = icmp eq ptr %4525, null
  br i1 %4526, label %4527, label %4580

4527:                                             ; preds = %4520
  br label %4528

4528:                                             ; preds = %4527
  br label %4529

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

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

4541:                                             ; preds = %4536
  %4542 = load i32, ptr %90, align 4, !tbaa !5
  %4543 = call ptr @__errno_location() #12
  store i32 %4542, ptr %4543, align 4, !tbaa !5
  %4544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4545 = load i32, ptr @test_count, align 4, !tbaa !5
  %4546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4547 = load i32, ptr %4546, align 4, !tbaa !5
  %4548 = call ptr @s2n_strerror(i32 noundef %4547, ptr noundef @.str.4)
  %4549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4550 = load i32, ptr %4549, align 4, !tbaa !5
  %4551 = call ptr @s2n_strerror_debug(i32 noundef %4550, ptr noundef @.str.4)
  %4552 = call ptr @__errno_location() #12
  %4553 = load i32, ptr %4552, align 4, !tbaa !5
  %4554 = call ptr @strerror(i32 noundef %4553) #11
  %4555 = call ptr @__errno_location() #12
  %4556 = load i32, ptr %4555, align 4, !tbaa !5
  %4557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4544, ptr noundef @.str.2, i32 noundef %4545, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4548, ptr noundef %4551, ptr noundef %4554, i32 noundef %4556) #11
  br label %4575

4558:                                             ; preds = %4536, %4529
  %4559 = load i32, ptr %90, align 4, !tbaa !5
  %4560 = call ptr @__errno_location() #12
  store i32 %4559, ptr %4560, align 4, !tbaa !5
  %4561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4562 = load i32, ptr @test_count, align 4, !tbaa !5
  %4563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4564 = load i32, ptr %4563, align 4, !tbaa !5
  %4565 = call ptr @s2n_strerror(i32 noundef %4564, ptr noundef @.str.4)
  %4566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4567 = load i32, ptr %4566, align 4, !tbaa !5
  %4568 = call ptr @s2n_strerror_debug(i32 noundef %4567, ptr noundef @.str.4)
  %4569 = call ptr @__errno_location() #12
  %4570 = load i32, ptr %4569, align 4, !tbaa !5
  %4571 = call ptr @strerror(i32 noundef %4570) #11
  %4572 = call ptr @__errno_location() #12
  %4573 = load i32, ptr %4572, align 4, !tbaa !5
  %4574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4561, ptr noundef @.str.5, i32 noundef %4562, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 237, ptr noundef %4565, ptr noundef %4568, ptr noundef %4571, i32 noundef %4573) #11
  br label %4575

4575:                                             ; preds = %4558, %4541
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %4576

4576:                                             ; preds = %4575
  br label %4577

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

4578:                                             ; No predecessors!
  br label %4579

4579:                                             ; preds = %4578
  br label %4580

4580:                                             ; preds = %4579, %4520
  br label %4581

4581:                                             ; preds = %4580
  br label %4582

4582:                                             ; preds = %4581
  br label %4583

4583:                                             ; preds = %4582
  %4584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4584, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4585 = call ptr @__errno_location() #12
  store i32 0, ptr %4585, align 4, !tbaa !5
  br label %4586

4586:                                             ; preds = %4583
  br label %4587

4587:                                             ; preds = %4586
  br label %4588

4588:                                             ; preds = %4587
  br label %4589

4589:                                             ; preds = %4588
  call void @llvm.lifetime.end.p0(i64 40, ptr %87) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %83) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %76) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %75) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %91) #11
  call void @llvm.memset.p0.i64(ptr align 8 %91, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %92) #11
  call void @llvm.memset.p0.i64(ptr align 8 %92, i8 0, i64 40, i1 false)
  br label %4590

4590:                                             ; preds = %4589
  %4591 = load i32, ptr @test_count, align 4, !tbaa !5
  %4592 = add nsw i32 %4591, 1
  store i32 %4592, ptr @test_count, align 4, !tbaa !5
  %4593 = call i32 @s2n_stuffer_alloc(ptr noundef %92, i32 noundef 40)
  %4594 = icmp eq i32 %4593, -1
  br i1 %4594, label %4595, label %4648

4595:                                             ; preds = %4590
  br label %4596

4596:                                             ; preds = %4595
  br label %4597

4597:                                             ; preds = %4596
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %4598 = call ptr @__errno_location() #12
  %4599 = load i32, ptr %4598, align 4, !tbaa !5
  store i32 %4599, ptr %93, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = call i32 @s2n_print_stacktrace(ptr noundef %4600)
  %4602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4603 = trunc i8 %4602 to i1
  br i1 %4603, label %4604, label %4626

4604:                                             ; preds = %4597
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = call i32 @fileno(ptr noundef %4605) #11
  %4607 = call i32 @isatty(i32 noundef %4606) #11
  %4608 = icmp ne i32 %4607, 0
  br i1 %4608, label %4609, label %4626

4609:                                             ; preds = %4604
  %4610 = load i32, ptr %93, align 4, !tbaa !5
  %4611 = call ptr @__errno_location() #12
  store i32 %4610, ptr %4611, align 4, !tbaa !5
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = load i32, ptr @test_count, align 4, !tbaa !5
  %4614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4615 = load i32, ptr %4614, align 4, !tbaa !5
  %4616 = call ptr @s2n_strerror(i32 noundef %4615, ptr noundef @.str.4)
  %4617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4618 = load i32, ptr %4617, align 4, !tbaa !5
  %4619 = call ptr @s2n_strerror_debug(i32 noundef %4618, ptr noundef @.str.4)
  %4620 = call ptr @__errno_location() #12
  %4621 = load i32, ptr %4620, align 4, !tbaa !5
  %4622 = call ptr @strerror(i32 noundef %4621) #11
  %4623 = call ptr @__errno_location() #12
  %4624 = load i32, ptr %4623, align 4, !tbaa !5
  %4625 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4612, ptr noundef @.str.2, i32 noundef %4613, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4616, ptr noundef %4619, ptr noundef %4622, i32 noundef %4624) #11
  br label %4643

4626:                                             ; preds = %4604, %4597
  %4627 = load i32, ptr %93, align 4, !tbaa !5
  %4628 = call ptr @__errno_location() #12
  store i32 %4627, ptr %4628, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = load i32, ptr @test_count, align 4, !tbaa !5
  %4631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4632 = load i32, ptr %4631, align 4, !tbaa !5
  %4633 = call ptr @s2n_strerror(i32 noundef %4632, ptr noundef @.str.4)
  %4634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4635 = load i32, ptr %4634, align 4, !tbaa !5
  %4636 = call ptr @s2n_strerror_debug(i32 noundef %4635, ptr noundef @.str.4)
  %4637 = call ptr @__errno_location() #12
  %4638 = load i32, ptr %4637, align 4, !tbaa !5
  %4639 = call ptr @strerror(i32 noundef %4638) #11
  %4640 = call ptr @__errno_location() #12
  %4641 = load i32, ptr %4640, align 4, !tbaa !5
  %4642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4629, ptr noundef @.str.5, i32 noundef %4630, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 244, ptr noundef %4633, ptr noundef %4636, ptr noundef %4639, i32 noundef %4641) #11
  br label %4643

4643:                                             ; preds = %4626, %4609
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %4644

4644:                                             ; preds = %4643
  br label %4645

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

4646:                                             ; No predecessors!
  br label %4647

4647:                                             ; preds = %4646
  br label %4648

4648:                                             ; preds = %4647, %4590
  br label %4649

4649:                                             ; preds = %4648
  br label %4650

4650:                                             ; preds = %4649
  call void @llvm.lifetime.start.p0(i64 40, ptr %94) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %94, ptr align 8 @__const.main.request_extension_type.50, i64 40, i1 false)
  %4651 = getelementptr inbounds %struct.s2n_extension_type, ptr %94, i32 0, i32 1
  %4652 = load i8, ptr %4651, align 2
  %4653 = and i8 %4652, -2
  %4654 = or i8 %4653, 0
  store i8 %4654, ptr %4651, align 2
  br label %4655

4655:                                             ; preds = %4650
  %4656 = load i32, ptr @test_count, align 4, !tbaa !5
  %4657 = add nsw i32 %4656, 1
  store i32 %4657, ptr @test_count, align 4, !tbaa !5
  %4658 = call i32 @s2n_extension_send(ptr noundef %94, ptr noundef %91, ptr noundef %92)
  %4659 = icmp eq i32 %4658, -1
  br i1 %4659, label %4660, label %4713

4660:                                             ; preds = %4655
  br label %4661

4661:                                             ; preds = %4660
  br label %4662

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

4669:                                             ; preds = %4662
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = call i32 @fileno(ptr noundef %4670) #11
  %4672 = call i32 @isatty(i32 noundef %4671) #11
  %4673 = icmp ne i32 %4672, 0
  br i1 %4673, label %4674, label %4691

4674:                                             ; preds = %4669
  %4675 = load i32, ptr %95, align 4, !tbaa !5
  %4676 = call ptr @__errno_location() #12
  store i32 %4675, ptr %4676, align 4, !tbaa !5
  %4677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4678 = load i32, ptr @test_count, align 4, !tbaa !5
  %4679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4680 = load i32, ptr %4679, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror(i32 noundef %4680, ptr noundef @.str.4)
  %4682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4683 = load i32, ptr %4682, align 4, !tbaa !5
  %4684 = call ptr @s2n_strerror_debug(i32 noundef %4683, ptr noundef @.str.4)
  %4685 = call ptr @__errno_location() #12
  %4686 = load i32, ptr %4685, align 4, !tbaa !5
  %4687 = call ptr @strerror(i32 noundef %4686) #11
  %4688 = call ptr @__errno_location() #12
  %4689 = load i32, ptr %4688, align 4, !tbaa !5
  %4690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4677, ptr noundef @.str.2, i32 noundef %4678, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4681, ptr noundef %4684, ptr noundef %4687, i32 noundef %4689) #11
  br label %4708

4691:                                             ; preds = %4669, %4662
  %4692 = load i32, ptr %95, align 4, !tbaa !5
  %4693 = call ptr @__errno_location() #12
  store i32 %4692, ptr %4693, align 4, !tbaa !5
  %4694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4695 = load i32, ptr @test_count, align 4, !tbaa !5
  %4696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4697 = load i32, ptr %4696, align 4, !tbaa !5
  %4698 = call ptr @s2n_strerror(i32 noundef %4697, ptr noundef @.str.4)
  %4699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4700 = load i32, ptr %4699, align 4, !tbaa !5
  %4701 = call ptr @s2n_strerror_debug(i32 noundef %4700, ptr noundef @.str.4)
  %4702 = call ptr @__errno_location() #12
  %4703 = load i32, ptr %4702, align 4, !tbaa !5
  %4704 = call ptr @strerror(i32 noundef %4703) #11
  %4705 = call ptr @__errno_location() #12
  %4706 = load i32, ptr %4705, align 4, !tbaa !5
  %4707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4694, ptr noundef @.str.5, i32 noundef %4695, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 250, ptr noundef %4698, ptr noundef %4701, ptr noundef %4704, i32 noundef %4706) #11
  br label %4708

4708:                                             ; preds = %4691, %4674
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %4709

4709:                                             ; preds = %4708
  br label %4710

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

4711:                                             ; No predecessors!
  br label %4712

4712:                                             ; preds = %4711
  br label %4713

4713:                                             ; preds = %4712, %4655
  br label %4714

4714:                                             ; preds = %4713
  br label %4715

4715:                                             ; preds = %4714
  br label %4716

4716:                                             ; preds = %4715
  %4717 = load i32, ptr @test_count, align 4, !tbaa !5
  %4718 = add nsw i32 %4717, 1
  store i32 %4718, ptr @test_count, align 4, !tbaa !5
  %4719 = getelementptr inbounds %struct.s2n_connection, ptr %91, i32 0, i32 10
  %4720 = load i8, ptr %43, align 1, !tbaa !43
  %4721 = zext i8 %4720 to i32
  %4722 = ashr i32 %4721, 3
  %4723 = sext i32 %4722 to i64
  %4724 = getelementptr inbounds [22 x i8], ptr %4719, i64 0, i64 %4723
  %4725 = load i8, ptr %4724, align 1, !tbaa !43
  %4726 = sext i8 %4725 to i32
  %4727 = load i8, ptr %43, align 1, !tbaa !43
  %4728 = zext i8 %4727 to i32
  %4729 = srem i32 %4728, 8
  %4730 = shl i32 1, %4729
  %4731 = and i32 %4726, %4730
  %4732 = icmp ne i32 %4731, 0
  br i1 %4732, label %4786, label %4733

4733:                                             ; preds = %4716
  br label %4734

4734:                                             ; preds = %4733
  br label %4735

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

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

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

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

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

4782:                                             ; preds = %4781
  br label %4783

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

4784:                                             ; No predecessors!
  br label %4785

4785:                                             ; preds = %4784
  br label %4786

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

4787:                                             ; preds = %4786
  br label %4788

4788:                                             ; preds = %4787
  call void @llvm.lifetime.start.p0(i64 2, ptr %97) #11
  store i16 0, ptr %97, align 2, !tbaa !42
  br label %4789

4789:                                             ; preds = %4788
  %4790 = load i32, ptr @test_count, align 4, !tbaa !5
  %4791 = add nsw i32 %4790, 1
  store i32 %4791, ptr @test_count, align 4, !tbaa !5
  %4792 = call i32 @s2n_stuffer_read_uint16(ptr noundef %92, ptr noundef %97)
  %4793 = icmp eq i32 %4792, -1
  br i1 %4793, label %4794, label %4847

4794:                                             ; preds = %4789
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %4797 = call ptr @__errno_location() #12
  %4798 = load i32, ptr %4797, align 4, !tbaa !5
  store i32 %4798, ptr %98, align 4, !tbaa !5
  %4799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4800 = call i32 @s2n_print_stacktrace(ptr noundef %4799)
  %4801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4802 = trunc i8 %4801 to i1
  br i1 %4802, label %4803, label %4825

4803:                                             ; preds = %4796
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @fileno(ptr noundef %4804) #11
  %4806 = call i32 @isatty(i32 noundef %4805) #11
  %4807 = icmp ne i32 %4806, 0
  br i1 %4807, label %4808, label %4825

4808:                                             ; preds = %4803
  %4809 = load i32, ptr %98, align 4, !tbaa !5
  %4810 = call ptr @__errno_location() #12
  store i32 %4809, ptr %4810, align 4, !tbaa !5
  %4811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4812 = load i32, ptr @test_count, align 4, !tbaa !5
  %4813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4814 = load i32, ptr %4813, align 4, !tbaa !5
  %4815 = call ptr @s2n_strerror(i32 noundef %4814, ptr noundef @.str.4)
  %4816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4817 = load i32, ptr %4816, align 4, !tbaa !5
  %4818 = call ptr @s2n_strerror_debug(i32 noundef %4817, ptr noundef @.str.4)
  %4819 = call ptr @__errno_location() #12
  %4820 = load i32, ptr %4819, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #11
  %4822 = call ptr @__errno_location() #12
  %4823 = load i32, ptr %4822, align 4, !tbaa !5
  %4824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4811, ptr noundef @.str.2, i32 noundef %4812, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 255, ptr noundef %4815, ptr noundef %4818, ptr noundef %4821, i32 noundef %4823) #11
  br label %4842

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

4842:                                             ; preds = %4825, %4808
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %4843

4843:                                             ; preds = %4842
  br label %4844

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

4845:                                             ; No predecessors!
  br label %4846

4846:                                             ; preds = %4845
  br label %4847

4847:                                             ; preds = %4846, %4789
  br label %4848

4848:                                             ; preds = %4847
  br label %4849

4849:                                             ; preds = %4848
  br label %4850

4850:                                             ; preds = %4849
  %4851 = load i32, ptr @test_count, align 4, !tbaa !5
  %4852 = add nsw i32 %4851, 1
  store i32 %4852, ptr @test_count, align 4, !tbaa !5
  %4853 = load i16, ptr %97, align 2, !tbaa !42
  %4854 = zext i16 %4853 to i32
  %4855 = getelementptr inbounds %struct.s2n_extension_type, ptr %94, i32 0, i32 0
  %4856 = load i16, ptr %4855, align 8, !tbaa !52
  %4857 = zext i16 %4856 to i32
  %4858 = icmp eq i32 %4854, %4857
  br i1 %4858, label %4912, label %4859

4859:                                             ; preds = %4850
  br label %4860

4860:                                             ; preds = %4859
  br label %4861

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

4868:                                             ; preds = %4861
  %4869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4870 = call i32 @fileno(ptr noundef %4869) #11
  %4871 = call i32 @isatty(i32 noundef %4870) #11
  %4872 = icmp ne i32 %4871, 0
  br i1 %4872, label %4873, label %4890

4873:                                             ; preds = %4868
  %4874 = load i32, ptr %99, align 4, !tbaa !5
  %4875 = call ptr @__errno_location() #12
  store i32 %4874, ptr %4875, align 4, !tbaa !5
  %4876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4877 = load i32, ptr @test_count, align 4, !tbaa !5
  %4878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4879 = load i32, ptr %4878, align 4, !tbaa !5
  %4880 = call ptr @s2n_strerror(i32 noundef %4879, ptr noundef @.str.4)
  %4881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4882 = load i32, ptr %4881, align 4, !tbaa !5
  %4883 = call ptr @s2n_strerror_debug(i32 noundef %4882, ptr noundef @.str.4)
  %4884 = call ptr @__errno_location() #12
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call ptr @strerror(i32 noundef %4885) #11
  %4887 = call ptr @__errno_location() #12
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4876, ptr noundef @.str.2, i32 noundef %4877, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 256, ptr noundef %4880, ptr noundef %4883, ptr noundef %4886, i32 noundef %4888) #11
  br label %4907

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

4907:                                             ; preds = %4890, %4873
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %4908

4908:                                             ; preds = %4907
  br label %4909

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

4910:                                             ; No predecessors!
  br label %4911

4911:                                             ; preds = %4910
  br label %4912

4912:                                             ; preds = %4911, %4850
  br label %4913

4913:                                             ; preds = %4912
  br label %4914

4914:                                             ; preds = %4913
  call void @llvm.lifetime.start.p0(i64 2, ptr %100) #11
  store i16 0, ptr %100, align 2, !tbaa !42
  br label %4915

4915:                                             ; preds = %4914
  %4916 = load i32, ptr @test_count, align 4, !tbaa !5
  %4917 = add nsw i32 %4916, 1
  store i32 %4917, ptr @test_count, align 4, !tbaa !5
  %4918 = call i32 @s2n_stuffer_read_uint16(ptr noundef %92, ptr noundef %100)
  %4919 = icmp eq i32 %4918, -1
  br i1 %4919, label %4920, label %4973

4920:                                             ; preds = %4915
  br label %4921

4921:                                             ; preds = %4920
  br label %4922

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

4929:                                             ; preds = %4922
  %4930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4931 = call i32 @fileno(ptr noundef %4930) #11
  %4932 = call i32 @isatty(i32 noundef %4931) #11
  %4933 = icmp ne i32 %4932, 0
  br i1 %4933, label %4934, label %4951

4934:                                             ; preds = %4929
  %4935 = load i32, ptr %101, align 4, !tbaa !5
  %4936 = call ptr @__errno_location() #12
  store i32 %4935, ptr %4936, align 4, !tbaa !5
  %4937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4938 = load i32, ptr @test_count, align 4, !tbaa !5
  %4939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4940 = load i32, ptr %4939, align 4, !tbaa !5
  %4941 = call ptr @s2n_strerror(i32 noundef %4940, ptr noundef @.str.4)
  %4942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4943 = load i32, ptr %4942, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror_debug(i32 noundef %4943, ptr noundef @.str.4)
  %4945 = call ptr @__errno_location() #12
  %4946 = load i32, ptr %4945, align 4, !tbaa !5
  %4947 = call ptr @strerror(i32 noundef %4946) #11
  %4948 = call ptr @__errno_location() #12
  %4949 = load i32, ptr %4948, align 4, !tbaa !5
  %4950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4937, ptr noundef @.str.2, i32 noundef %4938, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 260, ptr noundef %4941, ptr noundef %4944, ptr noundef %4947, i32 noundef %4949) #11
  br label %4968

4951:                                             ; preds = %4929, %4922
  %4952 = load i32, ptr %101, align 4, !tbaa !5
  %4953 = call ptr @__errno_location() #12
  store i32 %4952, ptr %4953, align 4, !tbaa !5
  %4954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4955 = load i32, ptr @test_count, align 4, !tbaa !5
  %4956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4957 = load i32, ptr %4956, align 4, !tbaa !5
  %4958 = call ptr @s2n_strerror(i32 noundef %4957, ptr noundef @.str.4)
  %4959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4960 = load i32, ptr %4959, align 4, !tbaa !5
  %4961 = call ptr @s2n_strerror_debug(i32 noundef %4960, ptr noundef @.str.4)
  %4962 = call ptr @__errno_location() #12
  %4963 = load i32, ptr %4962, align 4, !tbaa !5
  %4964 = call ptr @strerror(i32 noundef %4963) #11
  %4965 = call ptr @__errno_location() #12
  %4966 = load i32, ptr %4965, align 4, !tbaa !5
  %4967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4954, ptr noundef @.str.5, i32 noundef %4955, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 260, ptr noundef %4958, ptr noundef %4961, ptr noundef %4964, i32 noundef %4966) #11
  br label %4968

4968:                                             ; preds = %4951, %4934
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %4969

4969:                                             ; preds = %4968
  br label %4970

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

4971:                                             ; No predecessors!
  br label %4972

4972:                                             ; preds = %4971
  br label %4973

4973:                                             ; preds = %4972, %4915
  br label %4974

4974:                                             ; preds = %4973
  br label %4975

4975:                                             ; preds = %4974
  br label %4976

4976:                                             ; preds = %4975
  %4977 = load i32, ptr @test_count, align 4, !tbaa !5
  %4978 = add nsw i32 %4977, 1
  store i32 %4978, ptr @test_count, align 4, !tbaa !5
  %4979 = load i16, ptr %100, align 2, !tbaa !42
  %4980 = zext i16 %4979 to i32
  %4981 = getelementptr inbounds %struct.s2n_stuffer, ptr %92, i32 0, i32 2
  %4982 = load i32, ptr %4981, align 4, !tbaa !53
  %4983 = getelementptr inbounds %struct.s2n_stuffer, ptr %92, i32 0, i32 1
  %4984 = load i32, ptr %4983, align 8, !tbaa !54
  %4985 = sub i32 %4982, %4984
  %4986 = icmp eq i32 %4980, %4985
  br i1 %4986, label %5040, label %4987

4987:                                             ; preds = %4976
  br label %4988

4988:                                             ; preds = %4987
  br label %4989

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

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

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

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

5035:                                             ; preds = %5018, %5001
  call void @llvm.lifetime.end.p0(i64 4, ptr %102) #11
  br label %5036

5036:                                             ; preds = %5035
  br label %5037

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

5038:                                             ; No predecessors!
  br label %5039

5039:                                             ; preds = %5038
  br label %5040

5040:                                             ; preds = %5039, %4976
  br label %5041

5041:                                             ; preds = %5040
  br label %5042

5042:                                             ; preds = %5041
  br label %5043

5043:                                             ; preds = %5042
  %5044 = load i32, ptr @test_count, align 4, !tbaa !5
  %5045 = add nsw i32 %5044, 1
  store i32 %5045, ptr @test_count, align 4, !tbaa !5
  %5046 = load i16, ptr %100, align 2, !tbaa !42
  %5047 = zext i16 %5046 to i32
  %5048 = icmp eq i32 %5047, 20
  br i1 %5048, label %5102, label %5049

5049:                                             ; preds = %5043
  br label %5050

5050:                                             ; preds = %5049
  br label %5051

5051:                                             ; preds = %5050
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %5052 = call ptr @__errno_location() #12
  %5053 = load i32, ptr %5052, align 4, !tbaa !5
  store i32 %5053, ptr %103, 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 %103, 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.57, ptr noundef @.str.1, i32 noundef 262, ptr noundef %5070, ptr noundef %5073, ptr noundef %5076, i32 noundef %5078) #11
  br label %5097

5080:                                             ; preds = %5058, %5051
  %5081 = load i32, ptr %103, 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.57, ptr noundef @.str.1, i32 noundef 262, 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 %103) #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, %5043
  br label %5103

5103:                                             ; preds = %5102
  br label %5104

5104:                                             ; preds = %5103
  %5105 = call i32 @s2n_stuffer_free(ptr noundef %92)
  call void @llvm.lifetime.end.p0(i64 2, ptr %100) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %94) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %92) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %91) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %104) #11
  call void @llvm.memset.p0.i64(ptr align 8 %104, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %105) #11
  call void @llvm.memset.p0.i64(ptr align 8 %105, i8 0, i64 40, i1 false)
  br label %5106

5106:                                             ; preds = %5104
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = add nsw i32 %5107, 1
  store i32 %5108, ptr @test_count, align 4, !tbaa !5
  %5109 = call i32 @s2n_stuffer_alloc(ptr noundef %105, i32 noundef 40)
  %5110 = icmp eq i32 %5109, -1
  br i1 %5110, label %5111, label %5164

5111:                                             ; preds = %5106
  br label %5112

5112:                                             ; preds = %5111
  br label %5113

5113:                                             ; preds = %5112
  call void @llvm.lifetime.start.p0(i64 4, ptr %106) #11
  %5114 = call ptr @__errno_location() #12
  %5115 = load i32, ptr %5114, align 4, !tbaa !5
  store i32 %5115, ptr %106, 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 %106, 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.49, ptr noundef @.str.1, i32 noundef 286, ptr noundef %5132, ptr noundef %5135, ptr noundef %5138, i32 noundef %5140) #11
  br label %5159

5142:                                             ; preds = %5120, %5113
  %5143 = load i32, ptr %106, 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.49, ptr noundef @.str.1, i32 noundef 286, 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 %106) #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, %5106
  br label %5165

5165:                                             ; preds = %5164
  br label %5166

5166:                                             ; preds = %5165
  call void @llvm.lifetime.start.p0(i64 40, ptr %107) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %107, ptr align 8 @__const.main.response_extension_type.58, i64 40, i1 false)
  %5167 = getelementptr inbounds %struct.s2n_extension_type, ptr %107, i32 0, i32 1
  %5168 = load i8, ptr %5167, align 2
  %5169 = and i8 %5168, -2
  %5170 = or i8 %5169, 1
  store i8 %5170, ptr %5167, align 2
  br label %5171

5171:                                             ; preds = %5166
  %5172 = load i32, ptr @test_count, align 4, !tbaa !5
  %5173 = add nsw i32 %5172, 1
  store i32 %5173, ptr @test_count, align 4, !tbaa !5
  %5174 = call i32 @s2n_extension_send(ptr noundef %107, ptr noundef %104, ptr noundef %105)
  %5175 = icmp eq i32 %5174, -1
  br i1 %5175, label %5176, label %5229

5176:                                             ; preds = %5171
  br label %5177

5177:                                             ; preds = %5176
  br label %5178

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

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

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

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

5224:                                             ; preds = %5207, %5190
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %5225

5225:                                             ; preds = %5224
  br label %5226

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

5227:                                             ; No predecessors!
  br label %5228

5228:                                             ; preds = %5227
  br label %5229

5229:                                             ; preds = %5228, %5171
  br label %5230

5230:                                             ; preds = %5229
  br label %5231

5231:                                             ; preds = %5230
  br label %5232

5232:                                             ; preds = %5231
  %5233 = load i32, ptr @test_count, align 4, !tbaa !5
  %5234 = add nsw i32 %5233, 1
  store i32 %5234, ptr @test_count, align 4, !tbaa !5
  %5235 = getelementptr inbounds %struct.s2n_stuffer, ptr %105, i32 0, i32 2
  %5236 = load i32, ptr %5235, align 4, !tbaa !53
  %5237 = getelementptr inbounds %struct.s2n_stuffer, ptr %105, i32 0, i32 1
  %5238 = load i32, ptr %5237, align 8, !tbaa !54
  %5239 = sub i32 %5236, %5238
  %5240 = icmp eq i32 0, %5239
  br i1 %5240, label %5294, label %5241

5241:                                             ; preds = %5232
  br label %5242

5242:                                             ; preds = %5241
  br label %5243

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

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

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

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

5289:                                             ; preds = %5272, %5255
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %5290

5290:                                             ; preds = %5289
  br label %5291

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

5292:                                             ; No predecessors!
  br label %5293

5293:                                             ; preds = %5292
  br label %5294

5294:                                             ; preds = %5293, %5232
  br label %5295

5295:                                             ; preds = %5294
  br label %5296

5296:                                             ; preds = %5295
  br label %5297

5297:                                             ; preds = %5296
  br label %5298

5298:                                             ; preds = %5297
  %5299 = load i32, ptr @test_count, align 4, !tbaa !5
  %5300 = add nsw i32 %5299, 1
  store i32 %5300, ptr @test_count, align 4, !tbaa !5
  %5301 = getelementptr inbounds %struct.s2n_connection, ptr %104, i32 0, i32 10
  %5302 = getelementptr inbounds [22 x i8], ptr %5301, i64 0, i64 0
  %5303 = call i32 @memcmp(ptr noundef %5302, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %5304 = icmp eq i32 %5303, 0
  br i1 %5304, label %5358, label %5305

5305:                                             ; preds = %5298
  br label %5306

5306:                                             ; preds = %5305
  br label %5307

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

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

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

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

5353:                                             ; preds = %5336, %5319
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %5354

5354:                                             ; preds = %5353
  br label %5355

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

5356:                                             ; No predecessors!
  br label %5357

5357:                                             ; preds = %5356
  br label %5358

5358:                                             ; preds = %5357, %5298
  br label %5359

5359:                                             ; preds = %5358
  br label %5360

5360:                                             ; preds = %5359
  br label %5361

5361:                                             ; preds = %5360
  br label %5362

5362:                                             ; preds = %5361
  %5363 = load i8, ptr %43, align 1, !tbaa !43
  %5364 = zext i8 %5363 to i32
  %5365 = srem i32 %5364, 8
  %5366 = shl i32 1, %5365
  %5367 = getelementptr inbounds %struct.s2n_connection, ptr %104, i32 0, i32 11
  %5368 = load i8, ptr %43, align 1, !tbaa !43
  %5369 = zext i8 %5368 to i32
  %5370 = ashr i32 %5369, 3
  %5371 = sext i32 %5370 to i64
  %5372 = getelementptr inbounds [22 x i8], ptr %5367, i64 0, i64 %5371
  %5373 = load i8, ptr %5372, align 1, !tbaa !43
  %5374 = sext i8 %5373 to i32
  %5375 = or i32 %5374, %5366
  %5376 = trunc i32 %5375 to i8
  store i8 %5376, ptr %5372, align 1, !tbaa !43
  br label %5377

5377:                                             ; preds = %5362
  %5378 = load i32, ptr @test_count, align 4, !tbaa !5
  %5379 = add nsw i32 %5378, 1
  store i32 %5379, ptr @test_count, align 4, !tbaa !5
  %5380 = call i32 @s2n_extension_send(ptr noundef %107, ptr noundef %104, ptr noundef %105)
  %5381 = icmp eq i32 %5380, -1
  br i1 %5381, label %5382, label %5435

5382:                                             ; preds = %5377
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

5384:                                             ; preds = %5383
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %5385 = call ptr @__errno_location() #12
  %5386 = load i32, ptr %5385, align 4, !tbaa !5
  store i32 %5386, ptr %111, align 4, !tbaa !5
  %5387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5388 = call i32 @s2n_print_stacktrace(ptr noundef %5387)
  %5389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5390 = trunc i8 %5389 to i1
  br i1 %5390, label %5391, label %5413

5391:                                             ; preds = %5384
  %5392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5393 = call i32 @fileno(ptr noundef %5392) #11
  %5394 = call i32 @isatty(i32 noundef %5393) #11
  %5395 = icmp ne i32 %5394, 0
  br i1 %5395, label %5396, label %5413

5396:                                             ; preds = %5391
  %5397 = load i32, ptr %111, align 4, !tbaa !5
  %5398 = call ptr @__errno_location() #12
  store i32 %5397, ptr %5398, align 4, !tbaa !5
  %5399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5400 = load i32, ptr @test_count, align 4, !tbaa !5
  %5401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5402 = load i32, ptr %5401, align 4, !tbaa !5
  %5403 = call ptr @s2n_strerror(i32 noundef %5402, ptr noundef @.str.4)
  %5404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5405 = load i32, ptr %5404, align 4, !tbaa !5
  %5406 = call ptr @s2n_strerror_debug(i32 noundef %5405, ptr noundef @.str.4)
  %5407 = call ptr @__errno_location() #12
  %5408 = load i32, ptr %5407, align 4, !tbaa !5
  %5409 = call ptr @strerror(i32 noundef %5408) #11
  %5410 = call ptr @__errno_location() #12
  %5411 = load i32, ptr %5410, align 4, !tbaa !5
  %5412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5399, ptr noundef @.str.2, i32 noundef %5400, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 299, ptr noundef %5403, ptr noundef %5406, ptr noundef %5409, i32 noundef %5411) #11
  br label %5430

5413:                                             ; preds = %5391, %5384
  %5414 = load i32, ptr %111, align 4, !tbaa !5
  %5415 = call ptr @__errno_location() #12
  store i32 %5414, ptr %5415, align 4, !tbaa !5
  %5416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5417 = load i32, ptr @test_count, align 4, !tbaa !5
  %5418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5419 = load i32, ptr %5418, align 4, !tbaa !5
  %5420 = call ptr @s2n_strerror(i32 noundef %5419, ptr noundef @.str.4)
  %5421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5422 = load i32, ptr %5421, align 4, !tbaa !5
  %5423 = call ptr @s2n_strerror_debug(i32 noundef %5422, ptr noundef @.str.4)
  %5424 = call ptr @__errno_location() #12
  %5425 = load i32, ptr %5424, align 4, !tbaa !5
  %5426 = call ptr @strerror(i32 noundef %5425) #11
  %5427 = call ptr @__errno_location() #12
  %5428 = load i32, ptr %5427, align 4, !tbaa !5
  %5429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5416, ptr noundef @.str.5, i32 noundef %5417, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 299, ptr noundef %5420, ptr noundef %5423, ptr noundef %5426, i32 noundef %5428) #11
  br label %5430

5430:                                             ; preds = %5413, %5396
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %5431

5431:                                             ; preds = %5430
  br label %5432

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

5433:                                             ; No predecessors!
  br label %5434

5434:                                             ; preds = %5433
  br label %5435

5435:                                             ; preds = %5434, %5377
  br label %5436

5436:                                             ; preds = %5435
  br label %5437

5437:                                             ; preds = %5436
  br label %5438

5438:                                             ; preds = %5437
  br label %5439

5439:                                             ; preds = %5438
  %5440 = load i32, ptr @test_count, align 4, !tbaa !5
  %5441 = add nsw i32 %5440, 1
  store i32 %5441, ptr @test_count, align 4, !tbaa !5
  %5442 = getelementptr inbounds %struct.s2n_connection, ptr %104, i32 0, i32 10
  %5443 = getelementptr inbounds [22 x i8], ptr %5442, i64 0, i64 0
  %5444 = call i32 @memcmp(ptr noundef %5443, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %5445 = icmp eq i32 %5444, 0
  br i1 %5445, label %5499, label %5446

5446:                                             ; preds = %5439
  br label %5447

5447:                                             ; preds = %5446
  br label %5448

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

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

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

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

5494:                                             ; preds = %5477, %5460
  call void @llvm.lifetime.end.p0(i64 4, ptr %112) #11
  br label %5495

5495:                                             ; preds = %5494
  br label %5496

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

5497:                                             ; No predecessors!
  br label %5498

5498:                                             ; preds = %5497
  br label %5499

5499:                                             ; preds = %5498, %5439
  br label %5500

5500:                                             ; preds = %5499
  br label %5501

5501:                                             ; preds = %5500
  br label %5502

5502:                                             ; preds = %5501
  br label %5503

5503:                                             ; preds = %5502
  call void @llvm.lifetime.start.p0(i64 2, ptr %113) #11
  store i16 0, ptr %113, align 2, !tbaa !42
  br label %5504

5504:                                             ; preds = %5503
  %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 = call i32 @s2n_stuffer_read_uint16(ptr noundef %105, ptr noundef %113)
  %5508 = icmp eq i32 %5507, -1
  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 %114) #11
  %5512 = call ptr @__errno_location() #12
  %5513 = load i32, ptr %5512, align 4, !tbaa !5
  store i32 %5513, ptr %114, 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 %114, 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.53, ptr noundef @.str.1, i32 noundef 305, ptr noundef %5530, ptr noundef %5533, ptr noundef %5536, i32 noundef %5538) #11
  br label %5557

5540:                                             ; preds = %5518, %5511
  %5541 = load i32, ptr %114, 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.53, ptr noundef @.str.1, i32 noundef 305, 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 %114) #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 i16, ptr %113, align 2, !tbaa !42
  %5569 = zext i16 %5568 to i32
  %5570 = getelementptr inbounds %struct.s2n_extension_type, ptr %107, i32 0, i32 0
  %5571 = load i16, ptr %5570, align 8, !tbaa !52
  %5572 = zext i16 %5571 to i32
  %5573 = icmp eq i32 %5569, %5572
  br i1 %5573, label %5627, label %5574

5574:                                             ; preds = %5565
  br label %5575

5575:                                             ; preds = %5574
  br label %5576

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

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

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

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

5622:                                             ; preds = %5605, %5588
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %5623

5623:                                             ; preds = %5622
  br label %5624

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

5625:                                             ; No predecessors!
  br label %5626

5626:                                             ; preds = %5625
  br label %5627

5627:                                             ; preds = %5626, %5565
  br label %5628

5628:                                             ; preds = %5627
  br label %5629

5629:                                             ; preds = %5628
  call void @llvm.lifetime.start.p0(i64 2, ptr %116) #11
  store i16 0, ptr %116, align 2, !tbaa !42
  br label %5630

5630:                                             ; preds = %5629
  %5631 = load i32, ptr @test_count, align 4, !tbaa !5
  %5632 = add nsw i32 %5631, 1
  store i32 %5632, ptr @test_count, align 4, !tbaa !5
  %5633 = call i32 @s2n_stuffer_read_uint16(ptr noundef %105, ptr noundef %116)
  %5634 = icmp eq i32 %5633, -1
  br i1 %5634, label %5635, label %5688

5635:                                             ; preds = %5630
  br label %5636

5636:                                             ; preds = %5635
  br label %5637

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

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

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

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

5683:                                             ; preds = %5666, %5649
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %5684

5684:                                             ; preds = %5683
  br label %5685

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

5686:                                             ; No predecessors!
  br label %5687

5687:                                             ; preds = %5686
  br label %5688

5688:                                             ; preds = %5687, %5630
  br label %5689

5689:                                             ; preds = %5688
  br label %5690

5690:                                             ; preds = %5689
  br label %5691

5691:                                             ; preds = %5690
  %5692 = load i32, ptr @test_count, align 4, !tbaa !5
  %5693 = add nsw i32 %5692, 1
  store i32 %5693, ptr @test_count, align 4, !tbaa !5
  %5694 = load i16, ptr %116, align 2, !tbaa !42
  %5695 = zext i16 %5694 to i32
  %5696 = getelementptr inbounds %struct.s2n_stuffer, ptr %105, i32 0, i32 2
  %5697 = load i32, ptr %5696, align 4, !tbaa !53
  %5698 = getelementptr inbounds %struct.s2n_stuffer, ptr %105, i32 0, i32 1
  %5699 = load i32, ptr %5698, align 8, !tbaa !54
  %5700 = sub i32 %5697, %5699
  %5701 = icmp eq i32 %5695, %5700
  br i1 %5701, label %5755, label %5702

5702:                                             ; preds = %5691
  br label %5703

5703:                                             ; preds = %5702
  br label %5704

5704:                                             ; preds = %5703
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %5705 = call ptr @__errno_location() #12
  %5706 = load i32, ptr %5705, align 4, !tbaa !5
  store i32 %5706, ptr %118, align 4, !tbaa !5
  %5707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5708 = call i32 @s2n_print_stacktrace(ptr noundef %5707)
  %5709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5710 = trunc i8 %5709 to i1
  br i1 %5710, label %5711, label %5733

5711:                                             ; preds = %5704
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = call i32 @fileno(ptr noundef %5712) #11
  %5714 = call i32 @isatty(i32 noundef %5713) #11
  %5715 = icmp ne i32 %5714, 0
  br i1 %5715, label %5716, label %5733

5716:                                             ; preds = %5711
  %5717 = load i32, ptr %118, align 4, !tbaa !5
  %5718 = call ptr @__errno_location() #12
  store i32 %5717, ptr %5718, align 4, !tbaa !5
  %5719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5720 = load i32, ptr @test_count, align 4, !tbaa !5
  %5721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5722 = load i32, ptr %5721, align 4, !tbaa !5
  %5723 = call ptr @s2n_strerror(i32 noundef %5722, ptr noundef @.str.4)
  %5724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5725 = load i32, ptr %5724, align 4, !tbaa !5
  %5726 = call ptr @s2n_strerror_debug(i32 noundef %5725, ptr noundef @.str.4)
  %5727 = call ptr @__errno_location() #12
  %5728 = load i32, ptr %5727, align 4, !tbaa !5
  %5729 = call ptr @strerror(i32 noundef %5728) #11
  %5730 = call ptr @__errno_location() #12
  %5731 = load i32, ptr %5730, align 4, !tbaa !5
  %5732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5719, ptr noundef @.str.2, i32 noundef %5720, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5723, ptr noundef %5726, ptr noundef %5729, i32 noundef %5731) #11
  br label %5750

5733:                                             ; preds = %5711, %5704
  %5734 = load i32, ptr %118, align 4, !tbaa !5
  %5735 = call ptr @__errno_location() #12
  store i32 %5734, ptr %5735, align 4, !tbaa !5
  %5736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5737 = load i32, ptr @test_count, align 4, !tbaa !5
  %5738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5739 = load i32, ptr %5738, align 4, !tbaa !5
  %5740 = call ptr @s2n_strerror(i32 noundef %5739, ptr noundef @.str.4)
  %5741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5742 = load i32, ptr %5741, align 4, !tbaa !5
  %5743 = call ptr @s2n_strerror_debug(i32 noundef %5742, ptr noundef @.str.4)
  %5744 = call ptr @__errno_location() #12
  %5745 = load i32, ptr %5744, align 4, !tbaa !5
  %5746 = call ptr @strerror(i32 noundef %5745) #11
  %5747 = call ptr @__errno_location() #12
  %5748 = load i32, ptr %5747, align 4, !tbaa !5
  %5749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5736, ptr noundef @.str.5, i32 noundef %5737, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 311, ptr noundef %5740, ptr noundef %5743, ptr noundef %5746, i32 noundef %5748) #11
  br label %5750

5750:                                             ; preds = %5733, %5716
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %5751

5751:                                             ; preds = %5750
  br label %5752

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

5753:                                             ; No predecessors!
  br label %5754

5754:                                             ; preds = %5753
  br label %5755

5755:                                             ; preds = %5754, %5691
  br label %5756

5756:                                             ; preds = %5755
  br label %5757

5757:                                             ; preds = %5756
  br label %5758

5758:                                             ; preds = %5757
  %5759 = load i32, ptr @test_count, align 4, !tbaa !5
  %5760 = add nsw i32 %5759, 1
  store i32 %5760, ptr @test_count, align 4, !tbaa !5
  %5761 = load i16, ptr %116, align 2, !tbaa !42
  %5762 = zext i16 %5761 to i32
  %5763 = icmp eq i32 %5762, 20
  br i1 %5763, label %5817, label %5764

5764:                                             ; preds = %5758
  br label %5765

5765:                                             ; preds = %5764
  br label %5766

5766:                                             ; preds = %5765
  call void @llvm.lifetime.start.p0(i64 4, ptr %119) #11
  %5767 = call ptr @__errno_location() #12
  %5768 = load i32, ptr %5767, align 4, !tbaa !5
  store i32 %5768, ptr %119, align 4, !tbaa !5
  %5769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5770 = call i32 @s2n_print_stacktrace(ptr noundef %5769)
  %5771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5772 = trunc i8 %5771 to i1
  br i1 %5772, label %5773, label %5795

5773:                                             ; preds = %5766
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = call i32 @fileno(ptr noundef %5774) #11
  %5776 = call i32 @isatty(i32 noundef %5775) #11
  %5777 = icmp ne i32 %5776, 0
  br i1 %5777, label %5778, label %5795

5778:                                             ; preds = %5773
  %5779 = load i32, ptr %119, align 4, !tbaa !5
  %5780 = call ptr @__errno_location() #12
  store i32 %5779, ptr %5780, align 4, !tbaa !5
  %5781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5782 = load i32, ptr @test_count, align 4, !tbaa !5
  %5783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5784 = load i32, ptr %5783, align 4, !tbaa !5
  %5785 = call ptr @s2n_strerror(i32 noundef %5784, ptr noundef @.str.4)
  %5786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5787 = load i32, ptr %5786, align 4, !tbaa !5
  %5788 = call ptr @s2n_strerror_debug(i32 noundef %5787, ptr noundef @.str.4)
  %5789 = call ptr @__errno_location() #12
  %5790 = load i32, ptr %5789, align 4, !tbaa !5
  %5791 = call ptr @strerror(i32 noundef %5790) #11
  %5792 = call ptr @__errno_location() #12
  %5793 = load i32, ptr %5792, align 4, !tbaa !5
  %5794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5781, ptr noundef @.str.2, i32 noundef %5782, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5785, ptr noundef %5788, ptr noundef %5791, i32 noundef %5793) #11
  br label %5812

5795:                                             ; preds = %5773, %5766
  %5796 = load i32, ptr %119, align 4, !tbaa !5
  %5797 = call ptr @__errno_location() #12
  store i32 %5796, ptr %5797, align 4, !tbaa !5
  %5798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5799 = load i32, ptr @test_count, align 4, !tbaa !5
  %5800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5801 = load i32, ptr %5800, align 4, !tbaa !5
  %5802 = call ptr @s2n_strerror(i32 noundef %5801, ptr noundef @.str.4)
  %5803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5804 = load i32, ptr %5803, align 4, !tbaa !5
  %5805 = call ptr @s2n_strerror_debug(i32 noundef %5804, ptr noundef @.str.4)
  %5806 = call ptr @__errno_location() #12
  %5807 = load i32, ptr %5806, align 4, !tbaa !5
  %5808 = call ptr @strerror(i32 noundef %5807) #11
  %5809 = call ptr @__errno_location() #12
  %5810 = load i32, ptr %5809, align 4, !tbaa !5
  %5811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5798, ptr noundef @.str.5, i32 noundef %5799, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 312, ptr noundef %5802, ptr noundef %5805, ptr noundef %5808, i32 noundef %5810) #11
  br label %5812

5812:                                             ; preds = %5795, %5778
  call void @llvm.lifetime.end.p0(i64 4, ptr %119) #11
  br label %5813

5813:                                             ; preds = %5812
  br label %5814

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

5815:                                             ; No predecessors!
  br label %5816

5816:                                             ; preds = %5815
  br label %5817

5817:                                             ; preds = %5816, %5758
  br label %5818

5818:                                             ; preds = %5817
  br label %5819

5819:                                             ; preds = %5818
  %5820 = call i32 @s2n_stuffer_free(ptr noundef %105)
  call void @llvm.lifetime.end.p0(i64 2, ptr %116) #11
  call void @llvm.lifetime.end.p0(i64 2, ptr %113) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %107) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %105) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %104) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %120) #11
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %121) #11
  call void @llvm.memset.p0.i64(ptr align 8 %121, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %122) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %122, ptr align 8 @__const.main.extension_type_with_never_send, i64 40, i1 false)
  %5821 = getelementptr inbounds %struct.s2n_extension_type, ptr %122, i32 0, i32 5
  store ptr @s2n_extension_never_send, ptr %5821, align 8, !tbaa !51
  br label %5822

5822:                                             ; preds = %5819
  %5823 = load i32, ptr @test_count, align 4, !tbaa !5
  %5824 = add nsw i32 %5823, 1
  store i32 %5824, ptr @test_count, align 4, !tbaa !5
  %5825 = call i32 @s2n_extension_send(ptr noundef %122, ptr noundef %120, ptr noundef %121)
  %5826 = icmp eq i32 %5825, -1
  br i1 %5826, label %5827, label %5880

5827:                                             ; preds = %5822
  br label %5828

5828:                                             ; preds = %5827
  br label %5829

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

5836:                                             ; preds = %5829
  %5837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5838 = call i32 @fileno(ptr noundef %5837) #11
  %5839 = call i32 @isatty(i32 noundef %5838) #11
  %5840 = icmp ne i32 %5839, 0
  br i1 %5840, label %5841, label %5858

5841:                                             ; preds = %5836
  %5842 = load i32, ptr %123, align 4, !tbaa !5
  %5843 = call ptr @__errno_location() #12
  store i32 %5842, ptr %5843, align 4, !tbaa !5
  %5844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5845 = load i32, ptr @test_count, align 4, !tbaa !5
  %5846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call ptr @s2n_strerror(i32 noundef %5847, ptr noundef @.str.4)
  %5849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5850 = load i32, ptr %5849, align 4, !tbaa !5
  %5851 = call ptr @s2n_strerror_debug(i32 noundef %5850, ptr noundef @.str.4)
  %5852 = call ptr @__errno_location() #12
  %5853 = load i32, ptr %5852, align 4, !tbaa !5
  %5854 = call ptr @strerror(i32 noundef %5853) #11
  %5855 = call ptr @__errno_location() #12
  %5856 = load i32, ptr %5855, align 4, !tbaa !5
  %5857 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5844, ptr noundef @.str.2, i32 noundef %5845, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 325, ptr noundef %5848, ptr noundef %5851, ptr noundef %5854, i32 noundef %5856) #11
  br label %5875

5858:                                             ; preds = %5836, %5829
  %5859 = load i32, ptr %123, align 4, !tbaa !5
  %5860 = call ptr @__errno_location() #12
  store i32 %5859, ptr %5860, align 4, !tbaa !5
  %5861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5862 = load i32, ptr @test_count, align 4, !tbaa !5
  %5863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5864 = load i32, ptr %5863, align 4, !tbaa !5
  %5865 = call ptr @s2n_strerror(i32 noundef %5864, ptr noundef @.str.4)
  %5866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5867 = load i32, ptr %5866, align 4, !tbaa !5
  %5868 = call ptr @s2n_strerror_debug(i32 noundef %5867, ptr noundef @.str.4)
  %5869 = call ptr @__errno_location() #12
  %5870 = load i32, ptr %5869, align 4, !tbaa !5
  %5871 = call ptr @strerror(i32 noundef %5870) #11
  %5872 = call ptr @__errno_location() #12
  %5873 = load i32, ptr %5872, align 4, !tbaa !5
  %5874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5861, ptr noundef @.str.5, i32 noundef %5862, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 325, ptr noundef %5865, ptr noundef %5868, ptr noundef %5871, i32 noundef %5873) #11
  br label %5875

5875:                                             ; preds = %5858, %5841
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %5876

5876:                                             ; preds = %5875
  br label %5877

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

5878:                                             ; No predecessors!
  br label %5879

5879:                                             ; preds = %5878
  br label %5880

5880:                                             ; preds = %5879, %5822
  br label %5881

5881:                                             ; preds = %5880
  br label %5882

5882:                                             ; preds = %5881
  br label %5883

5883:                                             ; preds = %5882
  %5884 = load i32, ptr @test_count, align 4, !tbaa !5
  %5885 = add nsw i32 %5884, 1
  store i32 %5885, ptr @test_count, align 4, !tbaa !5
  %5886 = getelementptr inbounds %struct.s2n_stuffer, ptr %121, i32 0, i32 2
  %5887 = load i32, ptr %5886, align 4, !tbaa !53
  %5888 = getelementptr inbounds %struct.s2n_stuffer, ptr %121, i32 0, i32 1
  %5889 = load i32, ptr %5888, align 8, !tbaa !54
  %5890 = sub i32 %5887, %5889
  %5891 = icmp eq i32 0, %5890
  br i1 %5891, label %5945, label %5892

5892:                                             ; preds = %5883
  br label %5893

5893:                                             ; preds = %5892
  br label %5894

5894:                                             ; preds = %5893
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %5895 = call ptr @__errno_location() #12
  %5896 = load i32, ptr %5895, align 4, !tbaa !5
  store i32 %5896, ptr %124, align 4, !tbaa !5
  %5897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5898 = call i32 @s2n_print_stacktrace(ptr noundef %5897)
  %5899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5900 = trunc i8 %5899 to i1
  br i1 %5900, label %5901, label %5923

5901:                                             ; preds = %5894
  %5902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5903 = call i32 @fileno(ptr noundef %5902) #11
  %5904 = call i32 @isatty(i32 noundef %5903) #11
  %5905 = icmp ne i32 %5904, 0
  br i1 %5905, label %5906, label %5923

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

5923:                                             ; preds = %5901, %5894
  %5924 = load i32, ptr %124, 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.5, i32 noundef %5927, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 326, ptr noundef %5930, ptr noundef %5933, ptr noundef %5936, i32 noundef %5938) #11
  br label %5940

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

5941:                                             ; preds = %5940
  br label %5942

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

5943:                                             ; No predecessors!
  br label %5944

5944:                                             ; preds = %5943
  br label %5945

5945:                                             ; preds = %5944, %5883
  br label %5946

5946:                                             ; preds = %5945
  br label %5947

5947:                                             ; preds = %5946
  br label %5948

5948:                                             ; preds = %5947
  br label %5949

5949:                                             ; preds = %5948
  %5950 = load i32, ptr @test_count, align 4, !tbaa !5
  %5951 = add nsw i32 %5950, 1
  store i32 %5951, ptr @test_count, align 4, !tbaa !5
  %5952 = getelementptr inbounds %struct.s2n_connection, ptr %120, i32 0, i32 10
  %5953 = getelementptr inbounds [22 x i8], ptr %5952, i64 0, i64 0
  %5954 = call i32 @memcmp(ptr noundef %5953, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %5955 = icmp eq i32 %5954, 0
  br i1 %5955, label %6009, label %5956

5956:                                             ; preds = %5949
  br label %5957

5957:                                             ; preds = %5956
  br label %5958

5958:                                             ; preds = %5957
  call void @llvm.lifetime.start.p0(i64 4, ptr %125) #11
  %5959 = call ptr @__errno_location() #12
  %5960 = load i32, ptr %5959, align 4, !tbaa !5
  store i32 %5960, ptr %125, align 4, !tbaa !5
  %5961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5962 = call i32 @s2n_print_stacktrace(ptr noundef %5961)
  %5963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5964 = trunc i8 %5963 to i1
  br i1 %5964, label %5965, label %5987

5965:                                             ; preds = %5958
  %5966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5967 = call i32 @fileno(ptr noundef %5966) #11
  %5968 = call i32 @isatty(i32 noundef %5967) #11
  %5969 = icmp ne i32 %5968, 0
  br i1 %5969, label %5970, label %5987

5970:                                             ; preds = %5965
  %5971 = load i32, ptr %125, align 4, !tbaa !5
  %5972 = call ptr @__errno_location() #12
  store i32 %5971, ptr %5972, align 4, !tbaa !5
  %5973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5974 = load i32, ptr @test_count, align 4, !tbaa !5
  %5975 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5976 = load i32, ptr %5975, align 4, !tbaa !5
  %5977 = call ptr @s2n_strerror(i32 noundef %5976, ptr noundef @.str.4)
  %5978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5979 = load i32, ptr %5978, align 4, !tbaa !5
  %5980 = call ptr @s2n_strerror_debug(i32 noundef %5979, ptr noundef @.str.4)
  %5981 = call ptr @__errno_location() #12
  %5982 = load i32, ptr %5981, align 4, !tbaa !5
  %5983 = call ptr @strerror(i32 noundef %5982) #11
  %5984 = call ptr @__errno_location() #12
  %5985 = load i32, ptr %5984, align 4, !tbaa !5
  %5986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5973, ptr noundef @.str.2, i32 noundef %5974, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 328, ptr noundef %5977, ptr noundef %5980, ptr noundef %5983, i32 noundef %5985) #11
  br label %6004

5987:                                             ; preds = %5965, %5958
  %5988 = load i32, ptr %125, align 4, !tbaa !5
  %5989 = call ptr @__errno_location() #12
  store i32 %5988, ptr %5989, align 4, !tbaa !5
  %5990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5991 = load i32, ptr @test_count, align 4, !tbaa !5
  %5992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5993 = load i32, ptr %5992, align 4, !tbaa !5
  %5994 = call ptr @s2n_strerror(i32 noundef %5993, ptr noundef @.str.4)
  %5995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5996 = load i32, ptr %5995, align 4, !tbaa !5
  %5997 = call ptr @s2n_strerror_debug(i32 noundef %5996, ptr noundef @.str.4)
  %5998 = call ptr @__errno_location() #12
  %5999 = load i32, ptr %5998, align 4, !tbaa !5
  %6000 = call ptr @strerror(i32 noundef %5999) #11
  %6001 = call ptr @__errno_location() #12
  %6002 = load i32, ptr %6001, align 4, !tbaa !5
  %6003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5990, ptr noundef @.str.5, i32 noundef %5991, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 328, ptr noundef %5994, ptr noundef %5997, ptr noundef %6000, i32 noundef %6002) #11
  br label %6004

6004:                                             ; preds = %5987, %5970
  call void @llvm.lifetime.end.p0(i64 4, ptr %125) #11
  br label %6005

6005:                                             ; preds = %6004
  br label %6006

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

6007:                                             ; No predecessors!
  br label %6008

6008:                                             ; preds = %6007
  br label %6009

6009:                                             ; preds = %6008, %5949
  br label %6010

6010:                                             ; preds = %6009
  br label %6011

6011:                                             ; preds = %6010
  br label %6012

6012:                                             ; preds = %6011
  br label %6013

6013:                                             ; preds = %6012
  call void @llvm.lifetime.end.p0(i64 40, ptr %122) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %121) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %120) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %126) #11
  call void @llvm.memset.p0.i64(ptr align 8 %126, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %127) #11
  call void @llvm.memset.p0.i64(ptr align 8 %127, i8 0, i64 40, i1 false)
  br label %6014

6014:                                             ; preds = %6013
  %6015 = load i32, ptr @test_count, align 4, !tbaa !5
  %6016 = add nsw i32 %6015, 1
  store i32 %6016, ptr @test_count, align 4, !tbaa !5
  %6017 = call i32 @s2n_stuffer_alloc(ptr noundef %127, i32 noundef 20)
  %6018 = icmp eq i32 %6017, -1
  br i1 %6018, label %6019, label %6072

6019:                                             ; preds = %6014
  br label %6020

6020:                                             ; preds = %6019
  br label %6021

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

6028:                                             ; preds = %6021
  %6029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6030 = call i32 @fileno(ptr noundef %6029) #11
  %6031 = call i32 @isatty(i32 noundef %6030) #11
  %6032 = icmp ne i32 %6031, 0
  br i1 %6032, label %6033, label %6050

6033:                                             ; preds = %6028
  %6034 = load i32, ptr %128, align 4, !tbaa !5
  %6035 = call ptr @__errno_location() #12
  store i32 %6034, ptr %6035, align 4, !tbaa !5
  %6036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6037 = load i32, ptr @test_count, align 4, !tbaa !5
  %6038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6039 = load i32, ptr %6038, align 4, !tbaa !5
  %6040 = call ptr @s2n_strerror(i32 noundef %6039, ptr noundef @.str.4)
  %6041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6042 = load i32, ptr %6041, align 4, !tbaa !5
  %6043 = call ptr @s2n_strerror_debug(i32 noundef %6042, ptr noundef @.str.4)
  %6044 = call ptr @__errno_location() #12
  %6045 = load i32, ptr %6044, align 4, !tbaa !5
  %6046 = call ptr @strerror(i32 noundef %6045) #11
  %6047 = call ptr @__errno_location() #12
  %6048 = load i32, ptr %6047, align 4, !tbaa !5
  %6049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6036, ptr noundef @.str.2, i32 noundef %6037, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 335, ptr noundef %6040, ptr noundef %6043, ptr noundef %6046, i32 noundef %6048) #11
  br label %6067

6050:                                             ; preds = %6028, %6021
  %6051 = load i32, ptr %128, align 4, !tbaa !5
  %6052 = call ptr @__errno_location() #12
  store i32 %6051, ptr %6052, align 4, !tbaa !5
  %6053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6054 = load i32, ptr @test_count, align 4, !tbaa !5
  %6055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6056 = load i32, ptr %6055, align 4, !tbaa !5
  %6057 = call ptr @s2n_strerror(i32 noundef %6056, ptr noundef @.str.4)
  %6058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6059 = load i32, ptr %6058, align 4, !tbaa !5
  %6060 = call ptr @s2n_strerror_debug(i32 noundef %6059, ptr noundef @.str.4)
  %6061 = call ptr @__errno_location() #12
  %6062 = load i32, ptr %6061, align 4, !tbaa !5
  %6063 = call ptr @strerror(i32 noundef %6062) #11
  %6064 = call ptr @__errno_location() #12
  %6065 = load i32, ptr %6064, align 4, !tbaa !5
  %6066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6053, ptr noundef @.str.5, i32 noundef %6054, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 335, ptr noundef %6057, ptr noundef %6060, ptr noundef %6063, i32 noundef %6065) #11
  br label %6067

6067:                                             ; preds = %6050, %6033
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %6068

6068:                                             ; preds = %6067
  br label %6069

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

6070:                                             ; No predecessors!
  br label %6071

6071:                                             ; preds = %6070
  br label %6072

6072:                                             ; preds = %6071, %6014
  br label %6073

6073:                                             ; preds = %6072
  br label %6074

6074:                                             ; preds = %6073
  call void @llvm.lifetime.start.p0(i64 40, ptr %129) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %129, ptr align 8 @__const.main.extension_type_with_failure.65, i64 40, i1 false)
  %6075 = getelementptr inbounds %struct.s2n_extension_type, ptr %129, i32 0, i32 3
  store ptr @s2n_extension_send_unimplemented, ptr %6075, align 8, !tbaa !50
  br label %6076

6076:                                             ; preds = %6074
  br label %6077

6077:                                             ; preds = %6076
  br label %6078

6078:                                             ; preds = %6077
  %6079 = load i32, ptr @test_count, align 4, !tbaa !5
  %6080 = add nsw i32 %6079, 1
  store i32 %6080, ptr @test_count, align 4, !tbaa !5
  %6081 = call i32 @s2n_extension_send(ptr noundef %129, ptr noundef %126, ptr noundef %127)
  %6082 = icmp eq i32 %6081, -1
  br i1 %6082, label %6136, label %6083

6083:                                             ; preds = %6078
  br label %6084

6084:                                             ; preds = %6083
  br label %6085

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

6092:                                             ; preds = %6085
  %6093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6094 = call i32 @fileno(ptr noundef %6093) #11
  %6095 = call i32 @isatty(i32 noundef %6094) #11
  %6096 = icmp ne i32 %6095, 0
  br i1 %6096, label %6097, label %6114

6097:                                             ; preds = %6092
  %6098 = load i32, ptr %130, align 4, !tbaa !5
  %6099 = call ptr @__errno_location() #12
  store i32 %6098, ptr %6099, align 4, !tbaa !5
  %6100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6101 = load i32, ptr @test_count, align 4, !tbaa !5
  %6102 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6103 = load i32, ptr %6102, align 4, !tbaa !5
  %6104 = call ptr @s2n_strerror(i32 noundef %6103, ptr noundef @.str.4)
  %6105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6106 = load i32, ptr %6105, align 4, !tbaa !5
  %6107 = call ptr @s2n_strerror_debug(i32 noundef %6106, ptr noundef @.str.4)
  %6108 = call ptr @__errno_location() #12
  %6109 = load i32, ptr %6108, align 4, !tbaa !5
  %6110 = call ptr @strerror(i32 noundef %6109) #11
  %6111 = call ptr @__errno_location() #12
  %6112 = load i32, ptr %6111, align 4, !tbaa !5
  %6113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6100, ptr noundef @.str.2, i32 noundef %6101, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 340, ptr noundef %6104, ptr noundef %6107, ptr noundef %6110, i32 noundef %6112) #11
  br label %6131

6114:                                             ; preds = %6092, %6085
  %6115 = load i32, ptr %130, align 4, !tbaa !5
  %6116 = call ptr @__errno_location() #12
  store i32 %6115, ptr %6116, align 4, !tbaa !5
  %6117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6118 = load i32, ptr @test_count, align 4, !tbaa !5
  %6119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6120 = load i32, ptr %6119, align 4, !tbaa !5
  %6121 = call ptr @s2n_strerror(i32 noundef %6120, ptr noundef @.str.4)
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror_debug(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call ptr @__errno_location() #12
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @strerror(i32 noundef %6126) #11
  %6128 = call ptr @__errno_location() #12
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6117, ptr noundef @.str.5, i32 noundef %6118, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 340, ptr noundef %6121, ptr noundef %6124, ptr noundef %6127, i32 noundef %6129) #11
  br label %6131

6131:                                             ; preds = %6114, %6097
  call void @llvm.lifetime.end.p0(i64 4, ptr %130) #11
  br label %6132

6132:                                             ; preds = %6131
  br label %6133

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

6134:                                             ; No predecessors!
  br label %6135

6135:                                             ; preds = %6134
  br label %6136

6136:                                             ; preds = %6135, %6078
  br label %6137

6137:                                             ; preds = %6136
  br label %6138

6138:                                             ; preds = %6137
  br label %6139

6139:                                             ; preds = %6138
  %6140 = load i32, ptr @test_count, align 4, !tbaa !5
  %6141 = add nsw i32 %6140, 1
  store i32 %6141, ptr @test_count, align 4, !tbaa !5
  %6142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6143 = load i32, ptr %6142, align 4, !tbaa !5
  %6144 = icmp eq i32 %6143, 402653231
  br i1 %6144, label %6198, label %6145

6145:                                             ; preds = %6139
  br label %6146

6146:                                             ; preds = %6145
  br label %6147

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

6154:                                             ; preds = %6147
  %6155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6156 = call i32 @fileno(ptr noundef %6155) #11
  %6157 = call i32 @isatty(i32 noundef %6156) #11
  %6158 = icmp ne i32 %6157, 0
  br i1 %6158, label %6159, label %6176

6159:                                             ; preds = %6154
  %6160 = load i32, ptr %131, align 4, !tbaa !5
  %6161 = call ptr @__errno_location() #12
  store i32 %6160, ptr %6161, align 4, !tbaa !5
  %6162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6163 = load i32, ptr @test_count, align 4, !tbaa !5
  %6164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6165 = load i32, ptr %6164, align 4, !tbaa !5
  %6166 = call ptr @s2n_strerror(i32 noundef %6165, ptr noundef @.str.4)
  %6167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6168 = load i32, ptr %6167, align 4, !tbaa !5
  %6169 = call ptr @s2n_strerror_debug(i32 noundef %6168, ptr noundef @.str.4)
  %6170 = call ptr @__errno_location() #12
  %6171 = load i32, ptr %6170, align 4, !tbaa !5
  %6172 = call ptr @strerror(i32 noundef %6171) #11
  %6173 = call ptr @__errno_location() #12
  %6174 = load i32, ptr %6173, align 4, !tbaa !5
  %6175 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6162, ptr noundef @.str.2, i32 noundef %6163, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 340, ptr noundef %6166, ptr noundef %6169, ptr noundef %6172, i32 noundef %6174) #11
  br label %6193

6176:                                             ; preds = %6154, %6147
  %6177 = load i32, ptr %131, align 4, !tbaa !5
  %6178 = call ptr @__errno_location() #12
  store i32 %6177, ptr %6178, align 4, !tbaa !5
  %6179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6180 = load i32, ptr @test_count, align 4, !tbaa !5
  %6181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6182 = load i32, ptr %6181, align 4, !tbaa !5
  %6183 = call ptr @s2n_strerror(i32 noundef %6182, ptr noundef @.str.4)
  %6184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6185 = load i32, ptr %6184, align 4, !tbaa !5
  %6186 = call ptr @s2n_strerror_debug(i32 noundef %6185, ptr noundef @.str.4)
  %6187 = call ptr @__errno_location() #12
  %6188 = load i32, ptr %6187, align 4, !tbaa !5
  %6189 = call ptr @strerror(i32 noundef %6188) #11
  %6190 = call ptr @__errno_location() #12
  %6191 = load i32, ptr %6190, align 4, !tbaa !5
  %6192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6179, ptr noundef @.str.5, i32 noundef %6180, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 340, ptr noundef %6183, ptr noundef %6186, ptr noundef %6189, i32 noundef %6191) #11
  br label %6193

6193:                                             ; preds = %6176, %6159
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %6194

6194:                                             ; preds = %6193
  br label %6195

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

6196:                                             ; No predecessors!
  br label %6197

6197:                                             ; preds = %6196
  br label %6198

6198:                                             ; preds = %6197, %6139
  br label %6199

6199:                                             ; preds = %6198
  br label %6200

6200:                                             ; preds = %6199
  br label %6201

6201:                                             ; preds = %6200
  %6202 = load i32, ptr @test_count, align 4, !tbaa !5
  %6203 = add nsw i32 %6202, 1
  store i32 %6203, ptr @test_count, align 4, !tbaa !5
  %6204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6205 = load i32, ptr %6204, align 4, !tbaa !5
  %6206 = call ptr @s2n_strerror_debug(i32 noundef %6205, ptr noundef @.str.4)
  %6207 = icmp eq ptr %6206, null
  br i1 %6207, label %6208, label %6261

6208:                                             ; preds = %6201
  br label %6209

6209:                                             ; preds = %6208
  br label %6210

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

6217:                                             ; preds = %6210
  %6218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6219 = call i32 @fileno(ptr noundef %6218) #11
  %6220 = call i32 @isatty(i32 noundef %6219) #11
  %6221 = icmp ne i32 %6220, 0
  br i1 %6221, label %6222, label %6239

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

6239:                                             ; preds = %6217, %6210
  %6240 = load i32, ptr %132, align 4, !tbaa !5
  %6241 = call ptr @__errno_location() #12
  store i32 %6240, ptr %6241, align 4, !tbaa !5
  %6242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6243 = load i32, ptr @test_count, align 4, !tbaa !5
  %6244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6245 = load i32, ptr %6244, align 4, !tbaa !5
  %6246 = call ptr @s2n_strerror(i32 noundef %6245, ptr noundef @.str.4)
  %6247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6248 = load i32, ptr %6247, align 4, !tbaa !5
  %6249 = call ptr @s2n_strerror_debug(i32 noundef %6248, ptr noundef @.str.4)
  %6250 = call ptr @__errno_location() #12
  %6251 = load i32, ptr %6250, align 4, !tbaa !5
  %6252 = call ptr @strerror(i32 noundef %6251) #11
  %6253 = call ptr @__errno_location() #12
  %6254 = load i32, ptr %6253, align 4, !tbaa !5
  %6255 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6242, ptr noundef @.str.5, i32 noundef %6243, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 340, ptr noundef %6246, ptr noundef %6249, ptr noundef %6252, i32 noundef %6254) #11
  br label %6256

6256:                                             ; preds = %6239, %6222
  call void @llvm.lifetime.end.p0(i64 4, ptr %132) #11
  br label %6257

6257:                                             ; preds = %6256
  br label %6258

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

6259:                                             ; No predecessors!
  br label %6260

6260:                                             ; preds = %6259
  br label %6261

6261:                                             ; preds = %6260, %6201
  br label %6262

6262:                                             ; preds = %6261
  br label %6263

6263:                                             ; preds = %6262
  br label %6264

6264:                                             ; preds = %6263
  br label %6265

6265:                                             ; preds = %6264
  br label %6266

6266:                                             ; preds = %6265
  %6267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6267, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6268 = call ptr @__errno_location() #12
  store i32 0, ptr %6268, align 4, !tbaa !5
  br label %6269

6269:                                             ; preds = %6266
  br label %6270

6270:                                             ; preds = %6269
  br label %6271

6271:                                             ; preds = %6270
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

6273:                                             ; preds = %6272
  br label %6274

6274:                                             ; preds = %6273
  %6275 = load i32, ptr @test_count, align 4, !tbaa !5
  %6276 = add nsw i32 %6275, 1
  store i32 %6276, ptr @test_count, align 4, !tbaa !5
  %6277 = getelementptr inbounds %struct.s2n_connection, ptr %126, i32 0, i32 10
  %6278 = getelementptr inbounds [22 x i8], ptr %6277, i64 0, i64 0
  %6279 = call i32 @memcmp(ptr noundef %6278, ptr noundef @empty_bitfield, i64 noundef 22) #14
  %6280 = icmp eq i32 %6279, 0
  br i1 %6280, label %6334, label %6281

6281:                                             ; preds = %6274
  br label %6282

6282:                                             ; preds = %6281
  br label %6283

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

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

6295:                                             ; preds = %6290
  %6296 = load i32, ptr %133, align 4, !tbaa !5
  %6297 = call ptr @__errno_location() #12
  store i32 %6296, ptr %6297, align 4, !tbaa !5
  %6298 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6299 = load i32, ptr @test_count, align 4, !tbaa !5
  %6300 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6301 = load i32, ptr %6300, align 4, !tbaa !5
  %6302 = call ptr @s2n_strerror(i32 noundef %6301, ptr noundef @.str.4)
  %6303 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6304 = load i32, ptr %6303, align 4, !tbaa !5
  %6305 = call ptr @s2n_strerror_debug(i32 noundef %6304, ptr noundef @.str.4)
  %6306 = call ptr @__errno_location() #12
  %6307 = load i32, ptr %6306, align 4, !tbaa !5
  %6308 = call ptr @strerror(i32 noundef %6307) #11
  %6309 = call ptr @__errno_location() #12
  %6310 = load i32, ptr %6309, align 4, !tbaa !5
  %6311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6298, ptr noundef @.str.2, i32 noundef %6299, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 342, ptr noundef %6302, ptr noundef %6305, ptr noundef %6308, i32 noundef %6310) #11
  br label %6329

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

6329:                                             ; preds = %6312, %6295
  call void @llvm.lifetime.end.p0(i64 4, ptr %133) #11
  br label %6330

6330:                                             ; preds = %6329
  br label %6331

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

6332:                                             ; No predecessors!
  br label %6333

6333:                                             ; preds = %6332
  br label %6334

6334:                                             ; preds = %6333, %6274
  br label %6335

6335:                                             ; preds = %6334
  br label %6336

6336:                                             ; preds = %6335
  br label %6337

6337:                                             ; preds = %6336
  br label %6338

6338:                                             ; preds = %6337
  %6339 = call i32 @s2n_stuffer_free(ptr noundef %127)
  call void @llvm.lifetime.end.p0(i64 40, ptr %129) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %127) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %126) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %134) #11
  call void @llvm.memset.p0.i64(ptr align 8 %134, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %135) #11
  call void @llvm.memset.p0.i64(ptr align 8 %135, i8 0, i64 40, i1 false)
  br label %6340

6340:                                             ; preds = %6338
  %6341 = load i32, ptr @test_count, align 4, !tbaa !5
  %6342 = add nsw i32 %6341, 1
  store i32 %6342, ptr @test_count, align 4, !tbaa !5
  %6343 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %135, i32 noundef 0)
  %6344 = icmp eq i32 %6343, -1
  br i1 %6344, label %6345, label %6398

6345:                                             ; preds = %6340
  br label %6346

6346:                                             ; preds = %6345
  br label %6347

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

6354:                                             ; preds = %6347
  %6355 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6356 = call i32 @fileno(ptr noundef %6355) #11
  %6357 = call i32 @isatty(i32 noundef %6356) #11
  %6358 = icmp ne i32 %6357, 0
  br i1 %6358, label %6359, label %6376

6359:                                             ; preds = %6354
  %6360 = load i32, ptr %136, align 4, !tbaa !5
  %6361 = call ptr @__errno_location() #12
  store i32 %6360, ptr %6361, align 4, !tbaa !5
  %6362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6363 = load i32, ptr @test_count, align 4, !tbaa !5
  %6364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6365 = load i32, ptr %6364, align 4, !tbaa !5
  %6366 = call ptr @s2n_strerror(i32 noundef %6365, ptr noundef @.str.4)
  %6367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @s2n_strerror_debug(i32 noundef %6368, ptr noundef @.str.4)
  %6370 = call ptr @__errno_location() #12
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @strerror(i32 noundef %6371) #11
  %6373 = call ptr @__errno_location() #12
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6362, ptr noundef @.str.2, i32 noundef %6363, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 351, ptr noundef %6366, ptr noundef %6369, ptr noundef %6372, i32 noundef %6374) #11
  br label %6393

6376:                                             ; preds = %6354, %6347
  %6377 = load i32, ptr %136, align 4, !tbaa !5
  %6378 = call ptr @__errno_location() #12
  store i32 %6377, ptr %6378, align 4, !tbaa !5
  %6379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6380 = load i32, ptr @test_count, align 4, !tbaa !5
  %6381 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6382 = load i32, ptr %6381, align 4, !tbaa !5
  %6383 = call ptr @s2n_strerror(i32 noundef %6382, ptr noundef @.str.4)
  %6384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call ptr @s2n_strerror_debug(i32 noundef %6385, ptr noundef @.str.4)
  %6387 = call ptr @__errno_location() #12
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @strerror(i32 noundef %6388) #11
  %6390 = call ptr @__errno_location() #12
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6379, ptr noundef @.str.5, i32 noundef %6380, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 351, ptr noundef %6383, ptr noundef %6386, ptr noundef %6389, i32 noundef %6391) #11
  br label %6393

6393:                                             ; preds = %6376, %6359
  call void @llvm.lifetime.end.p0(i64 4, ptr %136) #11
  br label %6394

6394:                                             ; preds = %6393
  br label %6395

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

6396:                                             ; No predecessors!
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

6398:                                             ; preds = %6397, %6340
  br label %6399

6399:                                             ; preds = %6398
  br label %6400

6400:                                             ; preds = %6399
  call void @llvm.lifetime.start.p0(i64 40, ptr %137) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %137, ptr align 8 @__const.main.extension_type_with_too_much_data, i64 40, i1 false)
  %6401 = getelementptr inbounds %struct.s2n_extension_type, ptr %137, i32 0, i32 3
  store ptr @test_send_too_much_data, ptr %6401, align 8, !tbaa !50
  br label %6402

6402:                                             ; preds = %6400
  br label %6403

6403:                                             ; preds = %6402
  br label %6404

6404:                                             ; preds = %6403
  %6405 = load i32, ptr @test_count, align 4, !tbaa !5
  %6406 = add nsw i32 %6405, 1
  store i32 %6406, ptr @test_count, align 4, !tbaa !5
  %6407 = call i32 @s2n_extension_send(ptr noundef %137, ptr noundef %134, ptr noundef %135)
  %6408 = icmp eq i32 %6407, -1
  br i1 %6408, label %6462, label %6409

6409:                                             ; preds = %6404
  br label %6410

6410:                                             ; preds = %6409
  br label %6411

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

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

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

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

6457:                                             ; preds = %6440, %6423
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %6458

6458:                                             ; preds = %6457
  br label %6459

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

6460:                                             ; No predecessors!
  br label %6461

6461:                                             ; preds = %6460
  br label %6462

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

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463
  br label %6465

6465:                                             ; preds = %6464
  %6466 = load i32, ptr @test_count, align 4, !tbaa !5
  %6467 = add nsw i32 %6466, 1
  store i32 %6467, ptr @test_count, align 4, !tbaa !5
  %6468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6469 = load i32, ptr %6468, align 4, !tbaa !5
  %6470 = icmp eq i32 %6469, 402653220
  br i1 %6470, label %6524, label %6471

6471:                                             ; preds = %6465
  br label %6472

6472:                                             ; preds = %6471
  br label %6473

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

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

6485:                                             ; preds = %6480
  %6486 = load i32, ptr %139, align 4, !tbaa !5
  %6487 = call ptr @__errno_location() #12
  store i32 %6486, ptr %6487, align 4, !tbaa !5
  %6488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6489 = load i32, ptr @test_count, align 4, !tbaa !5
  %6490 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6491 = load i32, ptr %6490, align 4, !tbaa !5
  %6492 = call ptr @s2n_strerror(i32 noundef %6491, ptr noundef @.str.4)
  %6493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6494 = load i32, ptr %6493, align 4, !tbaa !5
  %6495 = call ptr @s2n_strerror_debug(i32 noundef %6494, ptr noundef @.str.4)
  %6496 = call ptr @__errno_location() #12
  %6497 = load i32, ptr %6496, align 4, !tbaa !5
  %6498 = call ptr @strerror(i32 noundef %6497) #11
  %6499 = call ptr @__errno_location() #12
  %6500 = load i32, ptr %6499, align 4, !tbaa !5
  %6501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6488, ptr noundef @.str.2, i32 noundef %6489, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 357, ptr noundef %6492, ptr noundef %6495, ptr noundef %6498, i32 noundef %6500) #11
  br label %6519

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

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

6520:                                             ; preds = %6519
  br label %6521

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

6522:                                             ; No predecessors!
  br label %6523

6523:                                             ; preds = %6522
  br label %6524

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

6525:                                             ; preds = %6524
  br label %6526

6526:                                             ; preds = %6525
  br label %6527

6527:                                             ; preds = %6526
  %6528 = load i32, ptr @test_count, align 4, !tbaa !5
  %6529 = add nsw i32 %6528, 1
  store i32 %6529, ptr @test_count, align 4, !tbaa !5
  %6530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6531 = load i32, ptr %6530, align 4, !tbaa !5
  %6532 = call ptr @s2n_strerror_debug(i32 noundef %6531, ptr noundef @.str.4)
  %6533 = icmp eq ptr %6532, null
  br i1 %6533, label %6534, label %6587

6534:                                             ; preds = %6527
  br label %6535

6535:                                             ; preds = %6534
  br label %6536

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

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

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

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

6582:                                             ; preds = %6565, %6548
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %6583

6583:                                             ; preds = %6582
  br label %6584

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

6585:                                             ; No predecessors!
  br label %6586

6586:                                             ; preds = %6585
  br label %6587

6587:                                             ; preds = %6586, %6527
  br label %6588

6588:                                             ; preds = %6587
  br label %6589

6589:                                             ; preds = %6588
  br label %6590

6590:                                             ; preds = %6589
  br label %6591

6591:                                             ; preds = %6590
  br label %6592

6592:                                             ; preds = %6591
  %6593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6593, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6594 = call ptr @__errno_location() #12
  store i32 0, ptr %6594, align 4, !tbaa !5
  br label %6595

6595:                                             ; preds = %6592
  br label %6596

6596:                                             ; preds = %6595
  br label %6597

6597:                                             ; preds = %6596
  br label %6598

6598:                                             ; preds = %6597
  %6599 = call i32 @s2n_stuffer_free(ptr noundef %135)
  call void @llvm.lifetime.end.p0(i64 40, ptr %137) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %135) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %134) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %141) #11
  call void @llvm.memset.p0.i64(ptr align 8 %141, i8 0, i64 4184, i1 false)
  br label %6600

6600:                                             ; preds = %6598
  br label %6601

6601:                                             ; preds = %6600
  %6602 = load i32, ptr @test_count, align 4, !tbaa !5
  %6603 = add nsw i32 %6602, 1
  store i32 %6603, ptr @test_count, align 4, !tbaa !5
  %6604 = call i32 @s2n_extension_is_missing(ptr noundef null, ptr noundef %141)
  %6605 = icmp eq i32 %6604, -1
  br i1 %6605, label %6659, label %6606

6606:                                             ; preds = %6601
  br label %6607

6607:                                             ; preds = %6606
  br label %6608

6608:                                             ; preds = %6607
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %6609 = call ptr @__errno_location() #12
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  store i32 %6610, ptr %142, align 4, !tbaa !5
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = call i32 @s2n_print_stacktrace(ptr noundef %6611)
  %6613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6614 = trunc i8 %6613 to i1
  br i1 %6614, label %6615, label %6637

6615:                                             ; preds = %6608
  %6616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6617 = call i32 @fileno(ptr noundef %6616) #11
  %6618 = call i32 @isatty(i32 noundef %6617) #11
  %6619 = icmp ne i32 %6618, 0
  br i1 %6619, label %6620, label %6637

6620:                                             ; preds = %6615
  %6621 = load i32, ptr %142, align 4, !tbaa !5
  %6622 = call ptr @__errno_location() #12
  store i32 %6621, ptr %6622, align 4, !tbaa !5
  %6623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6624 = load i32, ptr @test_count, align 4, !tbaa !5
  %6625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @s2n_strerror(i32 noundef %6626, ptr noundef @.str.4)
  %6628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @s2n_strerror_debug(i32 noundef %6629, ptr noundef @.str.4)
  %6631 = call ptr @__errno_location() #12
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call ptr @strerror(i32 noundef %6632) #11
  %6634 = call ptr @__errno_location() #12
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6623, ptr noundef @.str.2, i32 noundef %6624, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6627, ptr noundef %6630, ptr noundef %6633, i32 noundef %6635) #11
  br label %6654

6637:                                             ; preds = %6615, %6608
  %6638 = load i32, ptr %142, align 4, !tbaa !5
  %6639 = call ptr @__errno_location() #12
  store i32 %6638, ptr %6639, align 4, !tbaa !5
  %6640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6641 = load i32, ptr @test_count, align 4, !tbaa !5
  %6642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @s2n_strerror(i32 noundef %6643, ptr noundef @.str.4)
  %6645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call ptr @s2n_strerror_debug(i32 noundef %6646, ptr noundef @.str.4)
  %6648 = call ptr @__errno_location() #12
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call ptr @strerror(i32 noundef %6649) #11
  %6651 = call ptr @__errno_location() #12
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6640, ptr noundef @.str.5, i32 noundef %6641, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6644, ptr noundef %6647, ptr noundef %6650, i32 noundef %6652) #11
  br label %6654

6654:                                             ; preds = %6637, %6620
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %6655

6655:                                             ; preds = %6654
  br label %6656

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

6657:                                             ; No predecessors!
  br label %6658

6658:                                             ; preds = %6657
  br label %6659

6659:                                             ; preds = %6658, %6601
  br label %6660

6660:                                             ; preds = %6659
  br label %6661

6661:                                             ; preds = %6660
  br label %6662

6662:                                             ; preds = %6661
  %6663 = load i32, ptr @test_count, align 4, !tbaa !5
  %6664 = add nsw i32 %6663, 1
  store i32 %6664, ptr @test_count, align 4, !tbaa !5
  %6665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6666 = load i32, ptr %6665, align 4, !tbaa !5
  %6667 = icmp eq i32 %6666, 0
  br i1 %6667, label %6668, label %6721

6668:                                             ; preds = %6662
  br label %6669

6669:                                             ; preds = %6668
  br label %6670

6670:                                             ; preds = %6669
  call void @llvm.lifetime.start.p0(i64 4, ptr %143) #11
  %6671 = call ptr @__errno_location() #12
  %6672 = load i32, ptr %6671, align 4, !tbaa !5
  store i32 %6672, ptr %143, align 4, !tbaa !5
  %6673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6674 = call i32 @s2n_print_stacktrace(ptr noundef %6673)
  %6675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6676 = trunc i8 %6675 to i1
  br i1 %6676, label %6677, label %6699

6677:                                             ; preds = %6670
  %6678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6679 = call i32 @fileno(ptr noundef %6678) #11
  %6680 = call i32 @isatty(i32 noundef %6679) #11
  %6681 = icmp ne i32 %6680, 0
  br i1 %6681, label %6682, label %6699

6682:                                             ; preds = %6677
  %6683 = load i32, ptr %143, align 4, !tbaa !5
  %6684 = call ptr @__errno_location() #12
  store i32 %6683, ptr %6684, align 4, !tbaa !5
  %6685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6686 = load i32, ptr @test_count, align 4, !tbaa !5
  %6687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6688 = load i32, ptr %6687, align 4, !tbaa !5
  %6689 = call ptr @s2n_strerror(i32 noundef %6688, ptr noundef @.str.4)
  %6690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6691 = load i32, ptr %6690, align 4, !tbaa !5
  %6692 = call ptr @s2n_strerror_debug(i32 noundef %6691, ptr noundef @.str.4)
  %6693 = call ptr @__errno_location() #12
  %6694 = load i32, ptr %6693, align 4, !tbaa !5
  %6695 = call ptr @strerror(i32 noundef %6694) #11
  %6696 = call ptr @__errno_location() #12
  %6697 = load i32, ptr %6696, align 4, !tbaa !5
  %6698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6685, ptr noundef @.str.2, i32 noundef %6686, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6689, ptr noundef %6692, ptr noundef %6695, i32 noundef %6697) #11
  br label %6716

6699:                                             ; preds = %6677, %6670
  %6700 = load i32, ptr %143, align 4, !tbaa !5
  %6701 = call ptr @__errno_location() #12
  store i32 %6700, ptr %6701, align 4, !tbaa !5
  %6702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6703 = load i32, ptr @test_count, align 4, !tbaa !5
  %6704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6705 = load i32, ptr %6704, align 4, !tbaa !5
  %6706 = call ptr @s2n_strerror(i32 noundef %6705, ptr noundef @.str.4)
  %6707 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6708 = load i32, ptr %6707, align 4, !tbaa !5
  %6709 = call ptr @s2n_strerror_debug(i32 noundef %6708, ptr noundef @.str.4)
  %6710 = call ptr @__errno_location() #12
  %6711 = load i32, ptr %6710, align 4, !tbaa !5
  %6712 = call ptr @strerror(i32 noundef %6711) #11
  %6713 = call ptr @__errno_location() #12
  %6714 = load i32, ptr %6713, align 4, !tbaa !5
  %6715 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6702, ptr noundef @.str.5, i32 noundef %6703, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6706, ptr noundef %6709, ptr noundef %6712, i32 noundef %6714) #11
  br label %6716

6716:                                             ; preds = %6699, %6682
  call void @llvm.lifetime.end.p0(i64 4, ptr %143) #11
  br label %6717

6717:                                             ; preds = %6716
  br label %6718

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

6719:                                             ; No predecessors!
  br label %6720

6720:                                             ; preds = %6719
  br label %6721

6721:                                             ; preds = %6720, %6662
  br label %6722

6722:                                             ; preds = %6721
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

6724:                                             ; preds = %6723
  %6725 = load i32, ptr @test_count, align 4, !tbaa !5
  %6726 = add nsw i32 %6725, 1
  store i32 %6726, ptr @test_count, align 4, !tbaa !5
  %6727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6728 = load i32, ptr %6727, align 4, !tbaa !5
  %6729 = call ptr @s2n_strerror_debug(i32 noundef %6728, ptr noundef @.str.4)
  %6730 = icmp eq ptr %6729, null
  br i1 %6730, label %6731, label %6784

6731:                                             ; preds = %6724
  br label %6732

6732:                                             ; preds = %6731
  br label %6733

6733:                                             ; preds = %6732
  call void @llvm.lifetime.start.p0(i64 4, ptr %144) #11
  %6734 = call ptr @__errno_location() #12
  %6735 = load i32, ptr %6734, align 4, !tbaa !5
  store i32 %6735, ptr %144, align 4, !tbaa !5
  %6736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6737 = call i32 @s2n_print_stacktrace(ptr noundef %6736)
  %6738 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6739 = trunc i8 %6738 to i1
  br i1 %6739, label %6740, label %6762

6740:                                             ; preds = %6733
  %6741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6742 = call i32 @fileno(ptr noundef %6741) #11
  %6743 = call i32 @isatty(i32 noundef %6742) #11
  %6744 = icmp ne i32 %6743, 0
  br i1 %6744, label %6745, label %6762

6745:                                             ; preds = %6740
  %6746 = load i32, ptr %144, align 4, !tbaa !5
  %6747 = call ptr @__errno_location() #12
  store i32 %6746, ptr %6747, align 4, !tbaa !5
  %6748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6749 = load i32, ptr @test_count, align 4, !tbaa !5
  %6750 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6751 = load i32, ptr %6750, align 4, !tbaa !5
  %6752 = call ptr @s2n_strerror(i32 noundef %6751, ptr noundef @.str.4)
  %6753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6754 = load i32, ptr %6753, align 4, !tbaa !5
  %6755 = call ptr @s2n_strerror_debug(i32 noundef %6754, ptr noundef @.str.4)
  %6756 = call ptr @__errno_location() #12
  %6757 = load i32, ptr %6756, align 4, !tbaa !5
  %6758 = call ptr @strerror(i32 noundef %6757) #11
  %6759 = call ptr @__errno_location() #12
  %6760 = load i32, ptr %6759, align 4, !tbaa !5
  %6761 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6748, ptr noundef @.str.2, i32 noundef %6749, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6752, ptr noundef %6755, ptr noundef %6758, i32 noundef %6760) #11
  br label %6779

6762:                                             ; preds = %6740, %6733
  %6763 = load i32, ptr %144, align 4, !tbaa !5
  %6764 = call ptr @__errno_location() #12
  store i32 %6763, ptr %6764, align 4, !tbaa !5
  %6765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6766 = load i32, ptr @test_count, align 4, !tbaa !5
  %6767 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6768 = load i32, ptr %6767, align 4, !tbaa !5
  %6769 = call ptr @s2n_strerror(i32 noundef %6768, ptr noundef @.str.4)
  %6770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6771 = load i32, ptr %6770, align 4, !tbaa !5
  %6772 = call ptr @s2n_strerror_debug(i32 noundef %6771, ptr noundef @.str.4)
  %6773 = call ptr @__errno_location() #12
  %6774 = load i32, ptr %6773, align 4, !tbaa !5
  %6775 = call ptr @strerror(i32 noundef %6774) #11
  %6776 = call ptr @__errno_location() #12
  %6777 = load i32, ptr %6776, align 4, !tbaa !5
  %6778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6765, ptr noundef @.str.5, i32 noundef %6766, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 369, ptr noundef %6769, ptr noundef %6772, ptr noundef %6775, i32 noundef %6777) #11
  br label %6779

6779:                                             ; preds = %6762, %6745
  call void @llvm.lifetime.end.p0(i64 4, ptr %144) #11
  br label %6780

6780:                                             ; preds = %6779
  br label %6781

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

6782:                                             ; No predecessors!
  br label %6783

6783:                                             ; preds = %6782
  br label %6784

6784:                                             ; preds = %6783, %6724
  br label %6785

6785:                                             ; preds = %6784
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

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

6790:                                             ; preds = %6787
  br label %6791

6791:                                             ; preds = %6790
  br label %6792

6792:                                             ; preds = %6791
  br label %6793

6793:                                             ; preds = %6792
  br label %6794

6794:                                             ; preds = %6793
  br label %6795

6795:                                             ; preds = %6794
  %6796 = load i32, ptr @test_count, align 4, !tbaa !5
  %6797 = add nsw i32 %6796, 1
  store i32 %6797, ptr @test_count, align 4, !tbaa !5
  %6798 = call i32 @s2n_extension_is_missing(ptr noundef @test_extension_type, ptr noundef null)
  %6799 = icmp eq i32 %6798, -1
  br i1 %6799, label %6853, label %6800

6800:                                             ; preds = %6795
  br label %6801

6801:                                             ; preds = %6800
  br label %6802

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

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

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

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

6848:                                             ; preds = %6831, %6814
  call void @llvm.lifetime.end.p0(i64 4, ptr %145) #11
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

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

6851:                                             ; No predecessors!
  br label %6852

6852:                                             ; preds = %6851
  br label %6853

6853:                                             ; preds = %6852, %6795
  br label %6854

6854:                                             ; preds = %6853
  br label %6855

6855:                                             ; preds = %6854
  br label %6856

6856:                                             ; preds = %6855
  %6857 = load i32, ptr @test_count, align 4, !tbaa !5
  %6858 = add nsw i32 %6857, 1
  store i32 %6858, ptr @test_count, align 4, !tbaa !5
  %6859 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  %6861 = icmp eq i32 %6860, 0
  br i1 %6861, label %6862, label %6915

6862:                                             ; preds = %6856
  br label %6863

6863:                                             ; preds = %6862
  br label %6864

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

6871:                                             ; preds = %6864
  %6872 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6873 = call i32 @fileno(ptr noundef %6872) #11
  %6874 = call i32 @isatty(i32 noundef %6873) #11
  %6875 = icmp ne i32 %6874, 0
  br i1 %6875, label %6876, label %6893

6876:                                             ; preds = %6871
  %6877 = load i32, ptr %146, align 4, !tbaa !5
  %6878 = call ptr @__errno_location() #12
  store i32 %6877, ptr %6878, align 4, !tbaa !5
  %6879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6880 = load i32, ptr @test_count, align 4, !tbaa !5
  %6881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @s2n_strerror(i32 noundef %6882, ptr noundef @.str.4)
  %6884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call ptr @s2n_strerror_debug(i32 noundef %6885, ptr noundef @.str.4)
  %6887 = call ptr @__errno_location() #12
  %6888 = load i32, ptr %6887, align 4, !tbaa !5
  %6889 = call ptr @strerror(i32 noundef %6888) #11
  %6890 = call ptr @__errno_location() #12
  %6891 = load i32, ptr %6890, align 4, !tbaa !5
  %6892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6879, ptr noundef @.str.2, i32 noundef %6880, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 370, ptr noundef %6883, ptr noundef %6886, ptr noundef %6889, i32 noundef %6891) #11
  br label %6910

6893:                                             ; preds = %6871, %6864
  %6894 = load i32, ptr %146, align 4, !tbaa !5
  %6895 = call ptr @__errno_location() #12
  store i32 %6894, ptr %6895, align 4, !tbaa !5
  %6896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6897 = load i32, ptr @test_count, align 4, !tbaa !5
  %6898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @s2n_strerror(i32 noundef %6899, ptr noundef @.str.4)
  %6901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call ptr @s2n_strerror_debug(i32 noundef %6902, ptr noundef @.str.4)
  %6904 = call ptr @__errno_location() #12
  %6905 = load i32, ptr %6904, align 4, !tbaa !5
  %6906 = call ptr @strerror(i32 noundef %6905) #11
  %6907 = call ptr @__errno_location() #12
  %6908 = load i32, ptr %6907, align 4, !tbaa !5
  %6909 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6896, ptr noundef @.str.5, i32 noundef %6897, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 370, ptr noundef %6900, ptr noundef %6903, ptr noundef %6906, i32 noundef %6908) #11
  br label %6910

6910:                                             ; preds = %6893, %6876
  call void @llvm.lifetime.end.p0(i64 4, ptr %146) #11
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

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

6913:                                             ; No predecessors!
  br label %6914

6914:                                             ; preds = %6913
  br label %6915

6915:                                             ; preds = %6914, %6856
  br label %6916

6916:                                             ; preds = %6915
  br label %6917

6917:                                             ; preds = %6916
  br label %6918

6918:                                             ; preds = %6917
  %6919 = load i32, ptr @test_count, align 4, !tbaa !5
  %6920 = add nsw i32 %6919, 1
  store i32 %6920, ptr @test_count, align 4, !tbaa !5
  %6921 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6922 = load i32, ptr %6921, align 4, !tbaa !5
  %6923 = call ptr @s2n_strerror_debug(i32 noundef %6922, ptr noundef @.str.4)
  %6924 = icmp eq ptr %6923, null
  br i1 %6924, label %6925, label %6978

6925:                                             ; preds = %6918
  br label %6926

6926:                                             ; preds = %6925
  br label %6927

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

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

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

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

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

6974:                                             ; preds = %6973
  br label %6975

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

6976:                                             ; No predecessors!
  br label %6977

6977:                                             ; preds = %6976
  br label %6978

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

6979:                                             ; preds = %6978
  br label %6980

6980:                                             ; preds = %6979
  br label %6981

6981:                                             ; preds = %6980
  %6982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6982, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6983 = call ptr @__errno_location() #12
  store i32 0, ptr %6983, align 4, !tbaa !5
  br label %6984

6984:                                             ; preds = %6981
  br label %6985

6985:                                             ; preds = %6984
  br label %6986

6986:                                             ; preds = %6985
  br label %6987

6987:                                             ; preds = %6986
  call void @llvm.lifetime.start.p0(i64 40, ptr %148) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %148, ptr align 8 @__const.main.extension_type_with_null_if_missing, i64 40, i1 false)
  %6988 = getelementptr inbounds %struct.s2n_extension_type, ptr %148, i32 0, i32 6
  store ptr null, ptr %6988, align 8, !tbaa !55
  br label %6989

6989:                                             ; preds = %6987
  br label %6990

6990:                                             ; preds = %6989
  %6991 = load i32, ptr @test_count, align 4, !tbaa !5
  %6992 = add nsw i32 %6991, 1
  store i32 %6992, ptr @test_count, align 4, !tbaa !5
  %6993 = call i32 @s2n_extension_is_missing(ptr noundef %148, ptr noundef %141)
  %6994 = icmp eq i32 %6993, -1
  br i1 %6994, label %7048, label %6995

6995:                                             ; preds = %6990
  br label %6996

6996:                                             ; preds = %6995
  br label %6997

6997:                                             ; preds = %6996
  call void @llvm.lifetime.start.p0(i64 4, ptr %149) #11
  %6998 = call ptr @__errno_location() #12
  %6999 = load i32, ptr %6998, align 4, !tbaa !5
  store i32 %6999, ptr %149, align 4, !tbaa !5
  %7000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7001 = call i32 @s2n_print_stacktrace(ptr noundef %7000)
  %7002 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7003 = trunc i8 %7002 to i1
  br i1 %7003, label %7004, label %7026

7004:                                             ; preds = %6997
  %7005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7006 = call i32 @fileno(ptr noundef %7005) #11
  %7007 = call i32 @isatty(i32 noundef %7006) #11
  %7008 = icmp ne i32 %7007, 0
  br i1 %7008, label %7009, label %7026

7009:                                             ; preds = %7004
  %7010 = load i32, ptr %149, align 4, !tbaa !5
  %7011 = call ptr @__errno_location() #12
  store i32 %7010, ptr %7011, align 4, !tbaa !5
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = load i32, ptr @test_count, align 4, !tbaa !5
  %7014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7015 = load i32, ptr %7014, align 4, !tbaa !5
  %7016 = call ptr @s2n_strerror(i32 noundef %7015, ptr noundef @.str.4)
  %7017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7018 = load i32, ptr %7017, align 4, !tbaa !5
  %7019 = call ptr @s2n_strerror_debug(i32 noundef %7018, ptr noundef @.str.4)
  %7020 = call ptr @__errno_location() #12
  %7021 = load i32, ptr %7020, align 4, !tbaa !5
  %7022 = call ptr @strerror(i32 noundef %7021) #11
  %7023 = call ptr @__errno_location() #12
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7012, ptr noundef @.str.2, i32 noundef %7013, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7016, ptr noundef %7019, ptr noundef %7022, i32 noundef %7024) #11
  br label %7043

7026:                                             ; preds = %7004, %6997
  %7027 = load i32, ptr %149, align 4, !tbaa !5
  %7028 = call ptr @__errno_location() #12
  store i32 %7027, ptr %7028, align 4, !tbaa !5
  %7029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7030 = load i32, ptr @test_count, align 4, !tbaa !5
  %7031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7032 = load i32, ptr %7031, align 4, !tbaa !5
  %7033 = call ptr @s2n_strerror(i32 noundef %7032, ptr noundef @.str.4)
  %7034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7035 = load i32, ptr %7034, align 4, !tbaa !5
  %7036 = call ptr @s2n_strerror_debug(i32 noundef %7035, ptr noundef @.str.4)
  %7037 = call ptr @__errno_location() #12
  %7038 = load i32, ptr %7037, align 4, !tbaa !5
  %7039 = call ptr @strerror(i32 noundef %7038) #11
  %7040 = call ptr @__errno_location() #12
  %7041 = load i32, ptr %7040, align 4, !tbaa !5
  %7042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7029, ptr noundef @.str.5, i32 noundef %7030, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7033, ptr noundef %7036, ptr noundef %7039, i32 noundef %7041) #11
  br label %7043

7043:                                             ; preds = %7026, %7009
  call void @llvm.lifetime.end.p0(i64 4, ptr %149) #11
  br label %7044

7044:                                             ; preds = %7043
  br label %7045

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

7046:                                             ; No predecessors!
  br label %7047

7047:                                             ; preds = %7046
  br label %7048

7048:                                             ; preds = %7047, %6990
  br label %7049

7049:                                             ; preds = %7048
  br label %7050

7050:                                             ; preds = %7049
  br label %7051

7051:                                             ; preds = %7050
  %7052 = load i32, ptr @test_count, align 4, !tbaa !5
  %7053 = add nsw i32 %7052, 1
  store i32 %7053, ptr @test_count, align 4, !tbaa !5
  %7054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7055 = load i32, ptr %7054, align 4, !tbaa !5
  %7056 = icmp eq i32 %7055, 0
  br i1 %7056, label %7057, label %7110

7057:                                             ; preds = %7051
  br label %7058

7058:                                             ; preds = %7057
  br label %7059

7059:                                             ; preds = %7058
  call void @llvm.lifetime.start.p0(i64 4, ptr %150) #11
  %7060 = call ptr @__errno_location() #12
  %7061 = load i32, ptr %7060, align 4, !tbaa !5
  store i32 %7061, ptr %150, align 4, !tbaa !5
  %7062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7063 = call i32 @s2n_print_stacktrace(ptr noundef %7062)
  %7064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7065 = trunc i8 %7064 to i1
  br i1 %7065, label %7066, label %7088

7066:                                             ; preds = %7059
  %7067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7068 = call i32 @fileno(ptr noundef %7067) #11
  %7069 = call i32 @isatty(i32 noundef %7068) #11
  %7070 = icmp ne i32 %7069, 0
  br i1 %7070, label %7071, label %7088

7071:                                             ; preds = %7066
  %7072 = load i32, ptr %150, 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.2, i32 noundef %7075, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7078, ptr noundef %7081, ptr noundef %7084, i32 noundef %7086) #11
  br label %7105

7088:                                             ; preds = %7066, %7059
  %7089 = load i32, ptr %150, align 4, !tbaa !5
  %7090 = call ptr @__errno_location() #12
  store i32 %7089, ptr %7090, align 4, !tbaa !5
  %7091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7092 = load i32, ptr @test_count, align 4, !tbaa !5
  %7093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7094 = load i32, ptr %7093, align 4, !tbaa !5
  %7095 = call ptr @s2n_strerror(i32 noundef %7094, ptr noundef @.str.4)
  %7096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7097 = load i32, ptr %7096, align 4, !tbaa !5
  %7098 = call ptr @s2n_strerror_debug(i32 noundef %7097, ptr noundef @.str.4)
  %7099 = call ptr @__errno_location() #12
  %7100 = load i32, ptr %7099, align 4, !tbaa !5
  %7101 = call ptr @strerror(i32 noundef %7100) #11
  %7102 = call ptr @__errno_location() #12
  %7103 = load i32, ptr %7102, align 4, !tbaa !5
  %7104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7091, ptr noundef @.str.5, i32 noundef %7092, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7095, ptr noundef %7098, ptr noundef %7101, i32 noundef %7103) #11
  br label %7105

7105:                                             ; preds = %7088, %7071
  call void @llvm.lifetime.end.p0(i64 4, ptr %150) #11
  br label %7106

7106:                                             ; preds = %7105
  br label %7107

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

7108:                                             ; No predecessors!
  br label %7109

7109:                                             ; preds = %7108
  br label %7110

7110:                                             ; preds = %7109, %7051
  br label %7111

7111:                                             ; preds = %7110
  br label %7112

7112:                                             ; preds = %7111
  br label %7113

7113:                                             ; preds = %7112
  %7114 = load i32, ptr @test_count, align 4, !tbaa !5
  %7115 = add nsw i32 %7114, 1
  store i32 %7115, ptr @test_count, align 4, !tbaa !5
  %7116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7117 = load i32, ptr %7116, align 4, !tbaa !5
  %7118 = call ptr @s2n_strerror_debug(i32 noundef %7117, ptr noundef @.str.4)
  %7119 = icmp eq ptr %7118, null
  br i1 %7119, label %7120, label %7173

7120:                                             ; preds = %7113
  br label %7121

7121:                                             ; preds = %7120
  br label %7122

7122:                                             ; preds = %7121
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %7123 = call ptr @__errno_location() #12
  %7124 = load i32, ptr %7123, align 4, !tbaa !5
  store i32 %7124, ptr %151, align 4, !tbaa !5
  %7125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7126 = call i32 @s2n_print_stacktrace(ptr noundef %7125)
  %7127 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7128 = trunc i8 %7127 to i1
  br i1 %7128, label %7129, label %7151

7129:                                             ; preds = %7122
  %7130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7131 = call i32 @fileno(ptr noundef %7130) #11
  %7132 = call i32 @isatty(i32 noundef %7131) #11
  %7133 = icmp ne i32 %7132, 0
  br i1 %7133, label %7134, label %7151

7134:                                             ; preds = %7129
  %7135 = load i32, ptr %151, 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.2, i32 noundef %7138, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7141, ptr noundef %7144, ptr noundef %7147, i32 noundef %7149) #11
  br label %7168

7151:                                             ; preds = %7129, %7122
  %7152 = load i32, ptr %151, align 4, !tbaa !5
  %7153 = call ptr @__errno_location() #12
  store i32 %7152, ptr %7153, align 4, !tbaa !5
  %7154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7155 = load i32, ptr @test_count, align 4, !tbaa !5
  %7156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7157 = load i32, ptr %7156, align 4, !tbaa !5
  %7158 = call ptr @s2n_strerror(i32 noundef %7157, ptr noundef @.str.4)
  %7159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7160 = load i32, ptr %7159, align 4, !tbaa !5
  %7161 = call ptr @s2n_strerror_debug(i32 noundef %7160, ptr noundef @.str.4)
  %7162 = call ptr @__errno_location() #12
  %7163 = load i32, ptr %7162, align 4, !tbaa !5
  %7164 = call ptr @strerror(i32 noundef %7163) #11
  %7165 = call ptr @__errno_location() #12
  %7166 = load i32, ptr %7165, align 4, !tbaa !5
  %7167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7154, ptr noundef @.str.5, i32 noundef %7155, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 374, ptr noundef %7158, ptr noundef %7161, ptr noundef %7164, i32 noundef %7166) #11
  br label %7168

7168:                                             ; preds = %7151, %7134
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %7169

7169:                                             ; preds = %7168
  br label %7170

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

7171:                                             ; No predecessors!
  br label %7172

7172:                                             ; preds = %7171
  br label %7173

7173:                                             ; preds = %7172, %7113
  br label %7174

7174:                                             ; preds = %7173
  br label %7175

7175:                                             ; preds = %7174
  br label %7176

7176:                                             ; preds = %7175
  %7177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7177, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7178 = call ptr @__errno_location() #12
  store i32 0, ptr %7178, align 4, !tbaa !5
  br label %7179

7179:                                             ; preds = %7176
  br label %7180

7180:                                             ; preds = %7179
  br label %7181

7181:                                             ; preds = %7180
  br label %7182

7182:                                             ; preds = %7181
  call void @llvm.lifetime.end.p0(i64 40, ptr %148) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %141) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %152) #11
  call void @llvm.memset.p0.i64(ptr align 8 %152, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %153) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %153, ptr align 8 @__const.main.extension_type_with_noop_if_missing, i64 40, i1 false)
  %7183 = getelementptr inbounds %struct.s2n_extension_type, ptr %153, i32 0, i32 6
  store ptr @s2n_extension_noop_if_missing, ptr %7183, align 8, !tbaa !55
  %7184 = getelementptr inbounds %struct.s2n_extension_type, ptr %153, i32 0, i32 1
  %7185 = load i8, ptr %7184, align 2
  %7186 = and i8 %7185, -2
  %7187 = or i8 %7186, 0
  store i8 %7187, ptr %7184, align 2
  br label %7188

7188:                                             ; preds = %7182
  %7189 = load i32, ptr @test_count, align 4, !tbaa !5
  %7190 = add nsw i32 %7189, 1
  store i32 %7190, ptr @test_count, align 4, !tbaa !5
  %7191 = call i32 @s2n_extension_is_missing(ptr noundef %153, ptr noundef %152)
  %7192 = icmp eq i32 %7191, -1
  br i1 %7192, label %7193, label %7246

7193:                                             ; preds = %7188
  br label %7194

7194:                                             ; preds = %7193
  br label %7195

7195:                                             ; preds = %7194
  call void @llvm.lifetime.start.p0(i64 4, ptr %154) #11
  %7196 = call ptr @__errno_location() #12
  %7197 = load i32, ptr %7196, align 4, !tbaa !5
  store i32 %7197, ptr %154, align 4, !tbaa !5
  %7198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7199 = call i32 @s2n_print_stacktrace(ptr noundef %7198)
  %7200 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7201 = trunc i8 %7200 to i1
  br i1 %7201, label %7202, label %7224

7202:                                             ; preds = %7195
  %7203 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7204 = call i32 @fileno(ptr noundef %7203) #11
  %7205 = call i32 @isatty(i32 noundef %7204) #11
  %7206 = icmp ne i32 %7205, 0
  br i1 %7206, label %7207, label %7224

7207:                                             ; preds = %7202
  %7208 = load i32, ptr %154, align 4, !tbaa !5
  %7209 = call ptr @__errno_location() #12
  store i32 %7208, ptr %7209, align 4, !tbaa !5
  %7210 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7211 = load i32, ptr @test_count, align 4, !tbaa !5
  %7212 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7213 = load i32, ptr %7212, align 4, !tbaa !5
  %7214 = call ptr @s2n_strerror(i32 noundef %7213, ptr noundef @.str.4)
  %7215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7216 = load i32, ptr %7215, align 4, !tbaa !5
  %7217 = call ptr @s2n_strerror_debug(i32 noundef %7216, ptr noundef @.str.4)
  %7218 = call ptr @__errno_location() #12
  %7219 = load i32, ptr %7218, align 4, !tbaa !5
  %7220 = call ptr @strerror(i32 noundef %7219) #11
  %7221 = call ptr @__errno_location() #12
  %7222 = load i32, ptr %7221, align 4, !tbaa !5
  %7223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7210, ptr noundef @.str.2, i32 noundef %7211, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7214, ptr noundef %7217, ptr noundef %7220, i32 noundef %7222) #11
  br label %7241

7224:                                             ; preds = %7202, %7195
  %7225 = load i32, ptr %154, align 4, !tbaa !5
  %7226 = call ptr @__errno_location() #12
  store i32 %7225, ptr %7226, align 4, !tbaa !5
  %7227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7228 = load i32, ptr @test_count, align 4, !tbaa !5
  %7229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7230 = load i32, ptr %7229, align 4, !tbaa !5
  %7231 = call ptr @s2n_strerror(i32 noundef %7230, ptr noundef @.str.4)
  %7232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7233 = load i32, ptr %7232, align 4, !tbaa !5
  %7234 = call ptr @s2n_strerror_debug(i32 noundef %7233, ptr noundef @.str.4)
  %7235 = call ptr @__errno_location() #12
  %7236 = load i32, ptr %7235, align 4, !tbaa !5
  %7237 = call ptr @strerror(i32 noundef %7236) #11
  %7238 = call ptr @__errno_location() #12
  %7239 = load i32, ptr %7238, align 4, !tbaa !5
  %7240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7227, ptr noundef @.str.5, i32 noundef %7228, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 385, ptr noundef %7231, ptr noundef %7234, ptr noundef %7237, i32 noundef %7239) #11
  br label %7241

7241:                                             ; preds = %7224, %7207
  call void @llvm.lifetime.end.p0(i64 4, ptr %154) #11
  br label %7242

7242:                                             ; preds = %7241
  br label %7243

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

7244:                                             ; No predecessors!
  br label %7245

7245:                                             ; preds = %7244
  br label %7246

7246:                                             ; preds = %7245, %7188
  br label %7247

7247:                                             ; preds = %7246
  br label %7248

7248:                                             ; preds = %7247
  %7249 = getelementptr inbounds %struct.s2n_extension_type, ptr %153, i32 0, i32 1
  %7250 = load i8, ptr %7249, align 2
  %7251 = and i8 %7250, -2
  %7252 = or i8 %7251, 1
  store i8 %7252, ptr %7249, align 2
  br label %7253

7253:                                             ; preds = %7248
  %7254 = load i32, ptr @test_count, align 4, !tbaa !5
  %7255 = add nsw i32 %7254, 1
  store i32 %7255, ptr @test_count, align 4, !tbaa !5
  %7256 = call i32 @s2n_extension_is_missing(ptr noundef %153, ptr noundef %152)
  %7257 = icmp eq i32 %7256, -1
  br i1 %7257, label %7258, label %7311

7258:                                             ; preds = %7253
  br label %7259

7259:                                             ; preds = %7258
  br label %7260

7260:                                             ; preds = %7259
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %7261 = call ptr @__errno_location() #12
  %7262 = load i32, ptr %7261, align 4, !tbaa !5
  store i32 %7262, ptr %155, align 4, !tbaa !5
  %7263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7264 = call i32 @s2n_print_stacktrace(ptr noundef %7263)
  %7265 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7266 = trunc i8 %7265 to i1
  br i1 %7266, label %7267, label %7289

7267:                                             ; preds = %7260
  %7268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7269 = call i32 @fileno(ptr noundef %7268) #11
  %7270 = call i32 @isatty(i32 noundef %7269) #11
  %7271 = icmp ne i32 %7270, 0
  br i1 %7271, label %7272, label %7289

7272:                                             ; preds = %7267
  %7273 = load i32, ptr %155, align 4, !tbaa !5
  %7274 = call ptr @__errno_location() #12
  store i32 %7273, ptr %7274, align 4, !tbaa !5
  %7275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7276 = load i32, ptr @test_count, align 4, !tbaa !5
  %7277 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7278 = load i32, ptr %7277, align 4, !tbaa !5
  %7279 = call ptr @s2n_strerror(i32 noundef %7278, ptr noundef @.str.4)
  %7280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7281 = load i32, ptr %7280, align 4, !tbaa !5
  %7282 = call ptr @s2n_strerror_debug(i32 noundef %7281, ptr noundef @.str.4)
  %7283 = call ptr @__errno_location() #12
  %7284 = load i32, ptr %7283, align 4, !tbaa !5
  %7285 = call ptr @strerror(i32 noundef %7284) #11
  %7286 = call ptr @__errno_location() #12
  %7287 = load i32, ptr %7286, align 4, !tbaa !5
  %7288 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7275, ptr noundef @.str.2, i32 noundef %7276, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 388, ptr noundef %7279, ptr noundef %7282, ptr noundef %7285, i32 noundef %7287) #11
  br label %7306

7289:                                             ; preds = %7267, %7260
  %7290 = load i32, ptr %155, align 4, !tbaa !5
  %7291 = call ptr @__errno_location() #12
  store i32 %7290, ptr %7291, align 4, !tbaa !5
  %7292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7293 = load i32, ptr @test_count, align 4, !tbaa !5
  %7294 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7295 = load i32, ptr %7294, align 4, !tbaa !5
  %7296 = call ptr @s2n_strerror(i32 noundef %7295, ptr noundef @.str.4)
  %7297 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7298 = load i32, ptr %7297, align 4, !tbaa !5
  %7299 = call ptr @s2n_strerror_debug(i32 noundef %7298, ptr noundef @.str.4)
  %7300 = call ptr @__errno_location() #12
  %7301 = load i32, ptr %7300, align 4, !tbaa !5
  %7302 = call ptr @strerror(i32 noundef %7301) #11
  %7303 = call ptr @__errno_location() #12
  %7304 = load i32, ptr %7303, align 4, !tbaa !5
  %7305 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7292, ptr noundef @.str.5, i32 noundef %7293, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 388, ptr noundef %7296, ptr noundef %7299, ptr noundef %7302, i32 noundef %7304) #11
  br label %7306

7306:                                             ; preds = %7289, %7272
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %7307

7307:                                             ; preds = %7306
  br label %7308

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

7309:                                             ; No predecessors!
  br label %7310

7310:                                             ; preds = %7309
  br label %7311

7311:                                             ; preds = %7310, %7253
  br label %7312

7312:                                             ; preds = %7311
  br label %7313

7313:                                             ; preds = %7312
  %7314 = load i8, ptr %43, align 1, !tbaa !43
  %7315 = zext i8 %7314 to i32
  %7316 = srem i32 %7315, 8
  %7317 = shl i32 1, %7316
  %7318 = getelementptr inbounds %struct.s2n_connection, ptr %152, i32 0, i32 10
  %7319 = load i8, ptr %43, align 1, !tbaa !43
  %7320 = zext i8 %7319 to i32
  %7321 = ashr i32 %7320, 3
  %7322 = sext i32 %7321 to i64
  %7323 = getelementptr inbounds [22 x i8], ptr %7318, i64 0, i64 %7322
  %7324 = load i8, ptr %7323, align 1, !tbaa !43
  %7325 = sext i8 %7324 to i32
  %7326 = or i32 %7325, %7317
  %7327 = trunc i32 %7326 to i8
  store i8 %7327, ptr %7323, align 1, !tbaa !43
  br label %7328

7328:                                             ; preds = %7313
  %7329 = load i32, ptr @test_count, align 4, !tbaa !5
  %7330 = add nsw i32 %7329, 1
  store i32 %7330, ptr @test_count, align 4, !tbaa !5
  %7331 = call i32 @s2n_extension_is_missing(ptr noundef %153, ptr noundef %152)
  %7332 = icmp eq i32 %7331, -1
  br i1 %7332, label %7333, label %7386

7333:                                             ; preds = %7328
  br label %7334

7334:                                             ; preds = %7333
  br label %7335

7335:                                             ; preds = %7334
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %7336 = call ptr @__errno_location() #12
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  store i32 %7337, ptr %156, align 4, !tbaa !5
  %7338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7339 = call i32 @s2n_print_stacktrace(ptr noundef %7338)
  %7340 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7341 = trunc i8 %7340 to i1
  br i1 %7341, label %7342, label %7364

7342:                                             ; preds = %7335
  %7343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7344 = call i32 @fileno(ptr noundef %7343) #11
  %7345 = call i32 @isatty(i32 noundef %7344) #11
  %7346 = icmp ne i32 %7345, 0
  br i1 %7346, label %7347, label %7364

7347:                                             ; preds = %7342
  %7348 = load i32, ptr %156, align 4, !tbaa !5
  %7349 = call ptr @__errno_location() #12
  store i32 %7348, ptr %7349, align 4, !tbaa !5
  %7350 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7351 = load i32, ptr @test_count, align 4, !tbaa !5
  %7352 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7353 = load i32, ptr %7352, align 4, !tbaa !5
  %7354 = call ptr @s2n_strerror(i32 noundef %7353, ptr noundef @.str.4)
  %7355 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7356 = load i32, ptr %7355, align 4, !tbaa !5
  %7357 = call ptr @s2n_strerror_debug(i32 noundef %7356, ptr noundef @.str.4)
  %7358 = call ptr @__errno_location() #12
  %7359 = load i32, ptr %7358, align 4, !tbaa !5
  %7360 = call ptr @strerror(i32 noundef %7359) #11
  %7361 = call ptr @__errno_location() #12
  %7362 = load i32, ptr %7361, align 4, !tbaa !5
  %7363 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7350, ptr noundef @.str.2, i32 noundef %7351, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7354, ptr noundef %7357, ptr noundef %7360, i32 noundef %7362) #11
  br label %7381

7364:                                             ; preds = %7342, %7335
  %7365 = load i32, ptr %156, align 4, !tbaa !5
  %7366 = call ptr @__errno_location() #12
  store i32 %7365, ptr %7366, align 4, !tbaa !5
  %7367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7368 = load i32, ptr @test_count, align 4, !tbaa !5
  %7369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7370 = load i32, ptr %7369, align 4, !tbaa !5
  %7371 = call ptr @s2n_strerror(i32 noundef %7370, ptr noundef @.str.4)
  %7372 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7373 = load i32, ptr %7372, align 4, !tbaa !5
  %7374 = call ptr @s2n_strerror_debug(i32 noundef %7373, ptr noundef @.str.4)
  %7375 = call ptr @__errno_location() #12
  %7376 = load i32, ptr %7375, align 4, !tbaa !5
  %7377 = call ptr @strerror(i32 noundef %7376) #11
  %7378 = call ptr @__errno_location() #12
  %7379 = load i32, ptr %7378, align 4, !tbaa !5
  %7380 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7367, ptr noundef @.str.5, i32 noundef %7368, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 391, ptr noundef %7371, ptr noundef %7374, ptr noundef %7377, i32 noundef %7379) #11
  br label %7381

7381:                                             ; preds = %7364, %7347
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %7382

7382:                                             ; preds = %7381
  br label %7383

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

7384:                                             ; No predecessors!
  br label %7385

7385:                                             ; preds = %7384
  br label %7386

7386:                                             ; preds = %7385, %7328
  br label %7387

7387:                                             ; preds = %7386
  br label %7388

7388:                                             ; preds = %7387
  call void @llvm.lifetime.end.p0(i64 40, ptr %153) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %152) #11
  call void @llvm.lifetime.start.p0(i64 4184, ptr %157) #11
  call void @llvm.memset.p0.i64(ptr align 8 %157, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr %158) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %158, ptr align 8 @__const.main.extension_type_with_error_if_missing, i64 40, i1 false)
  %7389 = getelementptr inbounds %struct.s2n_extension_type, ptr %158, i32 0, i32 6
  store ptr @s2n_extension_error_if_missing, ptr %7389, align 8, !tbaa !55
  %7390 = getelementptr inbounds %struct.s2n_extension_type, ptr %158, i32 0, i32 1
  %7391 = load i8, ptr %7390, align 2
  %7392 = and i8 %7391, -2
  %7393 = or i8 %7392, 0
  store i8 %7393, ptr %7390, align 2
  br label %7394

7394:                                             ; preds = %7388
  br label %7395

7395:                                             ; preds = %7394
  br label %7396

7396:                                             ; preds = %7395
  %7397 = load i32, ptr @test_count, align 4, !tbaa !5
  %7398 = add nsw i32 %7397, 1
  store i32 %7398, ptr @test_count, align 4, !tbaa !5
  %7399 = call i32 @s2n_extension_is_missing(ptr noundef %158, ptr noundef %157)
  %7400 = icmp eq i32 %7399, -1
  br i1 %7400, label %7454, label %7401

7401:                                             ; preds = %7396
  br label %7402

7402:                                             ; preds = %7401
  br label %7403

7403:                                             ; preds = %7402
  call void @llvm.lifetime.start.p0(i64 4, ptr %159) #11
  %7404 = call ptr @__errno_location() #12
  %7405 = load i32, ptr %7404, align 4, !tbaa !5
  store i32 %7405, ptr %159, align 4, !tbaa !5
  %7406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7407 = call i32 @s2n_print_stacktrace(ptr noundef %7406)
  %7408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7409 = trunc i8 %7408 to i1
  br i1 %7409, label %7410, label %7432

7410:                                             ; preds = %7403
  %7411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7412 = call i32 @fileno(ptr noundef %7411) #11
  %7413 = call i32 @isatty(i32 noundef %7412) #11
  %7414 = icmp ne i32 %7413, 0
  br i1 %7414, label %7415, label %7432

7415:                                             ; preds = %7410
  %7416 = load i32, ptr %159, align 4, !tbaa !5
  %7417 = call ptr @__errno_location() #12
  store i32 %7416, ptr %7417, align 4, !tbaa !5
  %7418 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7419 = load i32, ptr @test_count, align 4, !tbaa !5
  %7420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7421 = load i32, ptr %7420, align 4, !tbaa !5
  %7422 = call ptr @s2n_strerror(i32 noundef %7421, ptr noundef @.str.4)
  %7423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7424 = load i32, ptr %7423, align 4, !tbaa !5
  %7425 = call ptr @s2n_strerror_debug(i32 noundef %7424, ptr noundef @.str.4)
  %7426 = call ptr @__errno_location() #12
  %7427 = load i32, ptr %7426, align 4, !tbaa !5
  %7428 = call ptr @strerror(i32 noundef %7427) #11
  %7429 = call ptr @__errno_location() #12
  %7430 = load i32, ptr %7429, align 4, !tbaa !5
  %7431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7418, ptr noundef @.str.2, i32 noundef %7419, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 404, ptr noundef %7422, ptr noundef %7425, ptr noundef %7428, i32 noundef %7430) #11
  br label %7449

7432:                                             ; preds = %7410, %7403
  %7433 = load i32, ptr %159, align 4, !tbaa !5
  %7434 = call ptr @__errno_location() #12
  store i32 %7433, ptr %7434, align 4, !tbaa !5
  %7435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7436 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7438, ptr noundef @.str.4)
  %7440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7441 = load i32, ptr %7440, align 4, !tbaa !5
  %7442 = call ptr @s2n_strerror_debug(i32 noundef %7441, ptr noundef @.str.4)
  %7443 = call ptr @__errno_location() #12
  %7444 = load i32, ptr %7443, align 4, !tbaa !5
  %7445 = call ptr @strerror(i32 noundef %7444) #11
  %7446 = call ptr @__errno_location() #12
  %7447 = load i32, ptr %7446, align 4, !tbaa !5
  %7448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7435, ptr noundef @.str.5, i32 noundef %7436, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 404, ptr noundef %7439, ptr noundef %7442, ptr noundef %7445, i32 noundef %7447) #11
  br label %7449

7449:                                             ; preds = %7432, %7415
  call void @llvm.lifetime.end.p0(i64 4, ptr %159) #11
  br label %7450

7450:                                             ; preds = %7449
  br label %7451

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

7452:                                             ; No predecessors!
  br label %7453

7453:                                             ; preds = %7452
  br label %7454

7454:                                             ; preds = %7453, %7396
  br label %7455

7455:                                             ; preds = %7454
  br label %7456

7456:                                             ; preds = %7455
  br label %7457

7457:                                             ; preds = %7456
  %7458 = load i32, ptr @test_count, align 4, !tbaa !5
  %7459 = add nsw i32 %7458, 1
  store i32 %7459, ptr @test_count, align 4, !tbaa !5
  %7460 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7461 = load i32, ptr %7460, align 4, !tbaa !5
  %7462 = icmp eq i32 %7461, 335544393
  br i1 %7462, label %7516, label %7463

7463:                                             ; preds = %7457
  br label %7464

7464:                                             ; preds = %7463
  br label %7465

7465:                                             ; preds = %7464
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %7466 = call ptr @__errno_location() #12
  %7467 = load i32, ptr %7466, align 4, !tbaa !5
  store i32 %7467, ptr %160, align 4, !tbaa !5
  %7468 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7469 = call i32 @s2n_print_stacktrace(ptr noundef %7468)
  %7470 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7471 = trunc i8 %7470 to i1
  br i1 %7471, label %7472, label %7494

7472:                                             ; preds = %7465
  %7473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7474 = call i32 @fileno(ptr noundef %7473) #11
  %7475 = call i32 @isatty(i32 noundef %7474) #11
  %7476 = icmp ne i32 %7475, 0
  br i1 %7476, label %7477, label %7494

7477:                                             ; preds = %7472
  %7478 = load i32, ptr %160, align 4, !tbaa !5
  %7479 = call ptr @__errno_location() #12
  store i32 %7478, ptr %7479, align 4, !tbaa !5
  %7480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7481 = load i32, ptr @test_count, align 4, !tbaa !5
  %7482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7483 = load i32, ptr %7482, align 4, !tbaa !5
  %7484 = call ptr @s2n_strerror(i32 noundef %7483, ptr noundef @.str.4)
  %7485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7486 = load i32, ptr %7485, align 4, !tbaa !5
  %7487 = call ptr @s2n_strerror_debug(i32 noundef %7486, ptr noundef @.str.4)
  %7488 = call ptr @__errno_location() #12
  %7489 = load i32, ptr %7488, align 4, !tbaa !5
  %7490 = call ptr @strerror(i32 noundef %7489) #11
  %7491 = call ptr @__errno_location() #12
  %7492 = load i32, ptr %7491, align 4, !tbaa !5
  %7493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7480, ptr noundef @.str.2, i32 noundef %7481, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 404, ptr noundef %7484, ptr noundef %7487, ptr noundef %7490, i32 noundef %7492) #11
  br label %7511

7494:                                             ; preds = %7472, %7465
  %7495 = load i32, ptr %160, align 4, !tbaa !5
  %7496 = call ptr @__errno_location() #12
  store i32 %7495, ptr %7496, align 4, !tbaa !5
  %7497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7498 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %7500, ptr noundef @.str.4)
  %7502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7503 = load i32, ptr %7502, align 4, !tbaa !5
  %7504 = call ptr @s2n_strerror_debug(i32 noundef %7503, ptr noundef @.str.4)
  %7505 = call ptr @__errno_location() #12
  %7506 = load i32, ptr %7505, align 4, !tbaa !5
  %7507 = call ptr @strerror(i32 noundef %7506) #11
  %7508 = call ptr @__errno_location() #12
  %7509 = load i32, ptr %7508, align 4, !tbaa !5
  %7510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7497, ptr noundef @.str.5, i32 noundef %7498, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 404, ptr noundef %7501, ptr noundef %7504, ptr noundef %7507, i32 noundef %7509) #11
  br label %7511

7511:                                             ; preds = %7494, %7477
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %7512

7512:                                             ; preds = %7511
  br label %7513

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

7514:                                             ; No predecessors!
  br label %7515

7515:                                             ; preds = %7514
  br label %7516

7516:                                             ; preds = %7515, %7457
  br label %7517

7517:                                             ; preds = %7516
  br label %7518

7518:                                             ; preds = %7517
  br label %7519

7519:                                             ; preds = %7518
  %7520 = load i32, ptr @test_count, align 4, !tbaa !5
  %7521 = add nsw i32 %7520, 1
  store i32 %7521, ptr @test_count, align 4, !tbaa !5
  %7522 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7523 = load i32, ptr %7522, align 4, !tbaa !5
  %7524 = call ptr @s2n_strerror_debug(i32 noundef %7523, ptr noundef @.str.4)
  %7525 = icmp eq ptr %7524, null
  br i1 %7525, label %7526, label %7579

7526:                                             ; preds = %7519
  br label %7527

7527:                                             ; preds = %7526
  br label %7528

7528:                                             ; preds = %7527
  call void @llvm.lifetime.start.p0(i64 4, ptr %161) #11
  %7529 = call ptr @__errno_location() #12
  %7530 = load i32, ptr %7529, align 4, !tbaa !5
  store i32 %7530, ptr %161, align 4, !tbaa !5
  %7531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7532 = call i32 @s2n_print_stacktrace(ptr noundef %7531)
  %7533 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7534 = trunc i8 %7533 to i1
  br i1 %7534, label %7535, label %7557

7535:                                             ; preds = %7528
  %7536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7537 = call i32 @fileno(ptr noundef %7536) #11
  %7538 = call i32 @isatty(i32 noundef %7537) #11
  %7539 = icmp ne i32 %7538, 0
  br i1 %7539, label %7540, label %7557

7540:                                             ; preds = %7535
  %7541 = load i32, ptr %161, align 4, !tbaa !5
  %7542 = call ptr @__errno_location() #12
  store i32 %7541, ptr %7542, align 4, !tbaa !5
  %7543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7544 = load i32, ptr @test_count, align 4, !tbaa !5
  %7545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7546 = load i32, ptr %7545, align 4, !tbaa !5
  %7547 = call ptr @s2n_strerror(i32 noundef %7546, ptr noundef @.str.4)
  %7548 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  %7550 = call ptr @s2n_strerror_debug(i32 noundef %7549, ptr noundef @.str.4)
  %7551 = call ptr @__errno_location() #12
  %7552 = load i32, ptr %7551, align 4, !tbaa !5
  %7553 = call ptr @strerror(i32 noundef %7552) #11
  %7554 = call ptr @__errno_location() #12
  %7555 = load i32, ptr %7554, align 4, !tbaa !5
  %7556 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7543, ptr noundef @.str.2, i32 noundef %7544, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 404, ptr noundef %7547, ptr noundef %7550, ptr noundef %7553, i32 noundef %7555) #11
  br label %7574

7557:                                             ; preds = %7535, %7528
  %7558 = load i32, ptr %161, align 4, !tbaa !5
  %7559 = call ptr @__errno_location() #12
  store i32 %7558, ptr %7559, align 4, !tbaa !5
  %7560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7561 = load i32, ptr @test_count, align 4, !tbaa !5
  %7562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7563 = load i32, ptr %7562, align 4, !tbaa !5
  %7564 = call ptr @s2n_strerror(i32 noundef %7563, ptr noundef @.str.4)
  %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_debug(i32 noundef %7566, ptr noundef @.str.4)
  %7568 = call ptr @__errno_location() #12
  %7569 = load i32, ptr %7568, align 4, !tbaa !5
  %7570 = call ptr @strerror(i32 noundef %7569) #11
  %7571 = call ptr @__errno_location() #12
  %7572 = load i32, ptr %7571, align 4, !tbaa !5
  %7573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7560, ptr noundef @.str.5, i32 noundef %7561, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 404, ptr noundef %7564, ptr noundef %7567, ptr noundef %7570, i32 noundef %7572) #11
  br label %7574

7574:                                             ; preds = %7557, %7540
  call void @llvm.lifetime.end.p0(i64 4, ptr %161) #11
  br label %7575

7575:                                             ; preds = %7574
  br label %7576

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

7577:                                             ; No predecessors!
  br label %7578

7578:                                             ; preds = %7577
  br label %7579

7579:                                             ; preds = %7578, %7519
  br label %7580

7580:                                             ; preds = %7579
  br label %7581

7581:                                             ; preds = %7580
  br label %7582

7582:                                             ; preds = %7581
  br label %7583

7583:                                             ; preds = %7582
  br label %7584

7584:                                             ; preds = %7583
  %7585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7585, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7586 = call ptr @__errno_location() #12
  store i32 0, ptr %7586, align 4, !tbaa !5
  br label %7587

7587:                                             ; preds = %7584
  br label %7588

7588:                                             ; preds = %7587
  br label %7589

7589:                                             ; preds = %7588
  br label %7590

7590:                                             ; preds = %7589
  %7591 = getelementptr inbounds %struct.s2n_extension_type, ptr %158, i32 0, i32 1
  %7592 = load i8, ptr %7591, align 2
  %7593 = and i8 %7592, -2
  %7594 = or i8 %7593, 1
  store i8 %7594, ptr %7591, align 2
  br label %7595

7595:                                             ; preds = %7590
  %7596 = load i32, ptr @test_count, align 4, !tbaa !5
  %7597 = add nsw i32 %7596, 1
  store i32 %7597, ptr @test_count, align 4, !tbaa !5
  %7598 = call i32 @s2n_extension_is_missing(ptr noundef %158, ptr noundef %157)
  %7599 = icmp eq i32 %7598, -1
  br i1 %7599, label %7600, label %7653

7600:                                             ; preds = %7595
  br label %7601

7601:                                             ; preds = %7600
  br label %7602

7602:                                             ; preds = %7601
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %7603 = call ptr @__errno_location() #12
  %7604 = load i32, ptr %7603, align 4, !tbaa !5
  store i32 %7604, ptr %162, align 4, !tbaa !5
  %7605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7606 = call i32 @s2n_print_stacktrace(ptr noundef %7605)
  %7607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7608 = trunc i8 %7607 to i1
  br i1 %7608, label %7609, label %7631

7609:                                             ; preds = %7602
  %7610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7611 = call i32 @fileno(ptr noundef %7610) #11
  %7612 = call i32 @isatty(i32 noundef %7611) #11
  %7613 = icmp ne i32 %7612, 0
  br i1 %7613, label %7614, label %7631

7614:                                             ; preds = %7609
  %7615 = load i32, ptr %162, align 4, !tbaa !5
  %7616 = call ptr @__errno_location() #12
  store i32 %7615, ptr %7616, align 4, !tbaa !5
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = load i32, ptr @test_count, align 4, !tbaa !5
  %7619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7620 = load i32, ptr %7619, align 4, !tbaa !5
  %7621 = call ptr @s2n_strerror(i32 noundef %7620, ptr noundef @.str.4)
  %7622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7623 = load i32, ptr %7622, align 4, !tbaa !5
  %7624 = call ptr @s2n_strerror_debug(i32 noundef %7623, ptr noundef @.str.4)
  %7625 = call ptr @__errno_location() #12
  %7626 = load i32, ptr %7625, align 4, !tbaa !5
  %7627 = call ptr @strerror(i32 noundef %7626) #11
  %7628 = call ptr @__errno_location() #12
  %7629 = load i32, ptr %7628, align 4, !tbaa !5
  %7630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7617, ptr noundef @.str.2, i32 noundef %7618, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 409, ptr noundef %7621, ptr noundef %7624, ptr noundef %7627, i32 noundef %7629) #11
  br label %7648

7631:                                             ; preds = %7609, %7602
  %7632 = load i32, ptr %162, align 4, !tbaa !5
  %7633 = call ptr @__errno_location() #12
  store i32 %7632, ptr %7633, align 4, !tbaa !5
  %7634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7635 = load i32, ptr @test_count, align 4, !tbaa !5
  %7636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7637 = load i32, ptr %7636, align 4, !tbaa !5
  %7638 = call ptr @s2n_strerror(i32 noundef %7637, ptr noundef @.str.4)
  %7639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7640 = load i32, ptr %7639, align 4, !tbaa !5
  %7641 = call ptr @s2n_strerror_debug(i32 noundef %7640, ptr noundef @.str.4)
  %7642 = call ptr @__errno_location() #12
  %7643 = load i32, ptr %7642, align 4, !tbaa !5
  %7644 = call ptr @strerror(i32 noundef %7643) #11
  %7645 = call ptr @__errno_location() #12
  %7646 = load i32, ptr %7645, align 4, !tbaa !5
  %7647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7634, ptr noundef @.str.5, i32 noundef %7635, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 409, ptr noundef %7638, ptr noundef %7641, ptr noundef %7644, i32 noundef %7646) #11
  br label %7648

7648:                                             ; preds = %7631, %7614
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %7649

7649:                                             ; preds = %7648
  br label %7650

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

7651:                                             ; No predecessors!
  br label %7652

7652:                                             ; preds = %7651
  br label %7653

7653:                                             ; preds = %7652, %7595
  br label %7654

7654:                                             ; preds = %7653
  br label %7655

7655:                                             ; preds = %7654
  %7656 = load i8, ptr %43, align 1, !tbaa !43
  %7657 = zext i8 %7656 to i32
  %7658 = srem i32 %7657, 8
  %7659 = shl i32 1, %7658
  %7660 = getelementptr inbounds %struct.s2n_connection, ptr %157, i32 0, i32 10
  %7661 = load i8, ptr %43, align 1, !tbaa !43
  %7662 = zext i8 %7661 to i32
  %7663 = ashr i32 %7662, 3
  %7664 = sext i32 %7663 to i64
  %7665 = getelementptr inbounds [22 x i8], ptr %7660, i64 0, i64 %7664
  %7666 = load i8, ptr %7665, align 1, !tbaa !43
  %7667 = sext i8 %7666 to i32
  %7668 = or i32 %7667, %7659
  %7669 = trunc i32 %7668 to i8
  store i8 %7669, ptr %7665, align 1, !tbaa !43
  br label %7670

7670:                                             ; preds = %7655
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671
  %7673 = load i32, ptr @test_count, align 4, !tbaa !5
  %7674 = add nsw i32 %7673, 1
  store i32 %7674, ptr @test_count, align 4, !tbaa !5
  %7675 = call i32 @s2n_extension_is_missing(ptr noundef %158, ptr noundef %157)
  %7676 = icmp eq i32 %7675, -1
  br i1 %7676, label %7730, label %7677

7677:                                             ; preds = %7672
  br label %7678

7678:                                             ; preds = %7677
  br label %7679

7679:                                             ; preds = %7678
  call void @llvm.lifetime.start.p0(i64 4, ptr %163) #11
  %7680 = call ptr @__errno_location() #12
  %7681 = load i32, ptr %7680, align 4, !tbaa !5
  store i32 %7681, ptr %163, align 4, !tbaa !5
  %7682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7683 = call i32 @s2n_print_stacktrace(ptr noundef %7682)
  %7684 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7685 = trunc i8 %7684 to i1
  br i1 %7685, label %7686, label %7708

7686:                                             ; preds = %7679
  %7687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7688 = call i32 @fileno(ptr noundef %7687) #11
  %7689 = call i32 @isatty(i32 noundef %7688) #11
  %7690 = icmp ne i32 %7689, 0
  br i1 %7690, label %7691, label %7708

7691:                                             ; preds = %7686
  %7692 = load i32, ptr %163, align 4, !tbaa !5
  %7693 = call ptr @__errno_location() #12
  store i32 %7692, ptr %7693, align 4, !tbaa !5
  %7694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7695 = load i32, ptr @test_count, align 4, !tbaa !5
  %7696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7697 = load i32, ptr %7696, align 4, !tbaa !5
  %7698 = call ptr @s2n_strerror(i32 noundef %7697, ptr noundef @.str.4)
  %7699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7700 = load i32, ptr %7699, align 4, !tbaa !5
  %7701 = call ptr @s2n_strerror_debug(i32 noundef %7700, ptr noundef @.str.4)
  %7702 = call ptr @__errno_location() #12
  %7703 = load i32, ptr %7702, align 4, !tbaa !5
  %7704 = call ptr @strerror(i32 noundef %7703) #11
  %7705 = call ptr @__errno_location() #12
  %7706 = load i32, ptr %7705, align 4, !tbaa !5
  %7707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7694, ptr noundef @.str.2, i32 noundef %7695, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 414, ptr noundef %7698, ptr noundef %7701, ptr noundef %7704, i32 noundef %7706) #11
  br label %7725

7708:                                             ; preds = %7686, %7679
  %7709 = load i32, ptr %163, align 4, !tbaa !5
  %7710 = call ptr @__errno_location() #12
  store i32 %7709, ptr %7710, align 4, !tbaa !5
  %7711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7712 = load i32, ptr @test_count, align 4, !tbaa !5
  %7713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7714 = load i32, ptr %7713, align 4, !tbaa !5
  %7715 = call ptr @s2n_strerror(i32 noundef %7714, ptr noundef @.str.4)
  %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_debug(i32 noundef %7717, ptr noundef @.str.4)
  %7719 = call ptr @__errno_location() #12
  %7720 = load i32, ptr %7719, align 4, !tbaa !5
  %7721 = call ptr @strerror(i32 noundef %7720) #11
  %7722 = call ptr @__errno_location() #12
  %7723 = load i32, ptr %7722, align 4, !tbaa !5
  %7724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7711, ptr noundef @.str.5, i32 noundef %7712, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 414, ptr noundef %7715, ptr noundef %7718, ptr noundef %7721, i32 noundef %7723) #11
  br label %7725

7725:                                             ; preds = %7708, %7691
  call void @llvm.lifetime.end.p0(i64 4, ptr %163) #11
  br label %7726

7726:                                             ; preds = %7725
  br label %7727

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

7728:                                             ; No predecessors!
  br label %7729

7729:                                             ; preds = %7728
  br label %7730

7730:                                             ; preds = %7729, %7672
  br label %7731

7731:                                             ; preds = %7730
  br label %7732

7732:                                             ; preds = %7731
  br label %7733

7733:                                             ; preds = %7732
  %7734 = load i32, ptr @test_count, align 4, !tbaa !5
  %7735 = add nsw i32 %7734, 1
  store i32 %7735, ptr @test_count, align 4, !tbaa !5
  %7736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7737 = load i32, ptr %7736, align 4, !tbaa !5
  %7738 = icmp eq i32 %7737, 335544393
  br i1 %7738, label %7792, label %7739

7739:                                             ; preds = %7733
  br label %7740

7740:                                             ; preds = %7739
  br label %7741

7741:                                             ; preds = %7740
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %7742 = call ptr @__errno_location() #12
  %7743 = load i32, ptr %7742, align 4, !tbaa !5
  store i32 %7743, ptr %164, align 4, !tbaa !5
  %7744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7745 = call i32 @s2n_print_stacktrace(ptr noundef %7744)
  %7746 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7747 = trunc i8 %7746 to i1
  br i1 %7747, label %7748, label %7770

7748:                                             ; preds = %7741
  %7749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7750 = call i32 @fileno(ptr noundef %7749) #11
  %7751 = call i32 @isatty(i32 noundef %7750) #11
  %7752 = icmp ne i32 %7751, 0
  br i1 %7752, label %7753, label %7770

7753:                                             ; preds = %7748
  %7754 = load i32, ptr %164, align 4, !tbaa !5
  %7755 = call ptr @__errno_location() #12
  store i32 %7754, ptr %7755, align 4, !tbaa !5
  %7756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7757 = load i32, ptr @test_count, align 4, !tbaa !5
  %7758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7759 = load i32, ptr %7758, align 4, !tbaa !5
  %7760 = call ptr @s2n_strerror(i32 noundef %7759, ptr noundef @.str.4)
  %7761 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7762 = load i32, ptr %7761, align 4, !tbaa !5
  %7763 = call ptr @s2n_strerror_debug(i32 noundef %7762, ptr noundef @.str.4)
  %7764 = call ptr @__errno_location() #12
  %7765 = load i32, ptr %7764, align 4, !tbaa !5
  %7766 = call ptr @strerror(i32 noundef %7765) #11
  %7767 = call ptr @__errno_location() #12
  %7768 = load i32, ptr %7767, align 4, !tbaa !5
  %7769 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7756, ptr noundef @.str.2, i32 noundef %7757, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 414, ptr noundef %7760, ptr noundef %7763, ptr noundef %7766, i32 noundef %7768) #11
  br label %7787

7770:                                             ; preds = %7748, %7741
  %7771 = load i32, ptr %164, align 4, !tbaa !5
  %7772 = call ptr @__errno_location() #12
  store i32 %7771, ptr %7772, align 4, !tbaa !5
  %7773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7774 = load i32, ptr @test_count, align 4, !tbaa !5
  %7775 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7776 = load i32, ptr %7775, align 4, !tbaa !5
  %7777 = call ptr @s2n_strerror(i32 noundef %7776, ptr noundef @.str.4)
  %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_debug(i32 noundef %7779, ptr noundef @.str.4)
  %7781 = call ptr @__errno_location() #12
  %7782 = load i32, ptr %7781, align 4, !tbaa !5
  %7783 = call ptr @strerror(i32 noundef %7782) #11
  %7784 = call ptr @__errno_location() #12
  %7785 = load i32, ptr %7784, align 4, !tbaa !5
  %7786 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7773, ptr noundef @.str.5, i32 noundef %7774, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 414, ptr noundef %7777, ptr noundef %7780, ptr noundef %7783, i32 noundef %7785) #11
  br label %7787

7787:                                             ; preds = %7770, %7753
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %7788

7788:                                             ; preds = %7787
  br label %7789

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

7790:                                             ; No predecessors!
  br label %7791

7791:                                             ; preds = %7790
  br label %7792

7792:                                             ; preds = %7791, %7733
  br label %7793

7793:                                             ; preds = %7792
  br label %7794

7794:                                             ; preds = %7793
  br label %7795

7795:                                             ; preds = %7794
  %7796 = load i32, ptr @test_count, align 4, !tbaa !5
  %7797 = add nsw i32 %7796, 1
  store i32 %7797, ptr @test_count, align 4, !tbaa !5
  %7798 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7799 = load i32, ptr %7798, align 4, !tbaa !5
  %7800 = call ptr @s2n_strerror_debug(i32 noundef %7799, ptr noundef @.str.4)
  %7801 = icmp eq ptr %7800, null
  br i1 %7801, label %7802, label %7855

7802:                                             ; preds = %7795
  br label %7803

7803:                                             ; preds = %7802
  br label %7804

7804:                                             ; preds = %7803
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %7805 = call ptr @__errno_location() #12
  %7806 = load i32, ptr %7805, align 4, !tbaa !5
  store i32 %7806, ptr %165, align 4, !tbaa !5
  %7807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7808 = call i32 @s2n_print_stacktrace(ptr noundef %7807)
  %7809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7810 = trunc i8 %7809 to i1
  br i1 %7810, label %7811, label %7833

7811:                                             ; preds = %7804
  %7812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7813 = call i32 @fileno(ptr noundef %7812) #11
  %7814 = call i32 @isatty(i32 noundef %7813) #11
  %7815 = icmp ne i32 %7814, 0
  br i1 %7815, label %7816, label %7833

7816:                                             ; preds = %7811
  %7817 = load i32, ptr %165, align 4, !tbaa !5
  %7818 = call ptr @__errno_location() #12
  store i32 %7817, ptr %7818, align 4, !tbaa !5
  %7819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7820 = load i32, ptr @test_count, align 4, !tbaa !5
  %7821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7822 = load i32, ptr %7821, align 4, !tbaa !5
  %7823 = call ptr @s2n_strerror(i32 noundef %7822, ptr noundef @.str.4)
  %7824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7825 = load i32, ptr %7824, align 4, !tbaa !5
  %7826 = call ptr @s2n_strerror_debug(i32 noundef %7825, ptr noundef @.str.4)
  %7827 = call ptr @__errno_location() #12
  %7828 = load i32, ptr %7827, align 4, !tbaa !5
  %7829 = call ptr @strerror(i32 noundef %7828) #11
  %7830 = call ptr @__errno_location() #12
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7819, ptr noundef @.str.2, i32 noundef %7820, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 414, ptr noundef %7823, ptr noundef %7826, ptr noundef %7829, i32 noundef %7831) #11
  br label %7850

7833:                                             ; preds = %7811, %7804
  %7834 = load i32, ptr %165, align 4, !tbaa !5
  %7835 = call ptr @__errno_location() #12
  store i32 %7834, ptr %7835, align 4, !tbaa !5
  %7836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7837 = load i32, ptr @test_count, align 4, !tbaa !5
  %7838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7839 = load i32, ptr %7838, align 4, !tbaa !5
  %7840 = call ptr @s2n_strerror(i32 noundef %7839, ptr noundef @.str.4)
  %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_debug(i32 noundef %7842, ptr noundef @.str.4)
  %7844 = call ptr @__errno_location() #12
  %7845 = load i32, ptr %7844, align 4, !tbaa !5
  %7846 = call ptr @strerror(i32 noundef %7845) #11
  %7847 = call ptr @__errno_location() #12
  %7848 = load i32, ptr %7847, align 4, !tbaa !5
  %7849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7836, ptr noundef @.str.5, i32 noundef %7837, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 414, ptr noundef %7840, ptr noundef %7843, ptr noundef %7846, i32 noundef %7848) #11
  br label %7850

7850:                                             ; preds = %7833, %7816
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %7851

7851:                                             ; preds = %7850
  br label %7852

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

7853:                                             ; No predecessors!
  br label %7854

7854:                                             ; preds = %7853
  br label %7855

7855:                                             ; preds = %7854, %7795
  br label %7856

7856:                                             ; preds = %7855
  br label %7857

7857:                                             ; preds = %7856
  br label %7858

7858:                                             ; preds = %7857
  br label %7859

7859:                                             ; preds = %7858
  br label %7860

7860:                                             ; preds = %7859
  %7861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7861, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7862 = call ptr @__errno_location() #12
  store i32 0, ptr %7862, align 4, !tbaa !5
  br label %7863

7863:                                             ; preds = %7860
  br label %7864

7864:                                             ; preds = %7863
  br label %7865

7865:                                             ; preds = %7864
  br label %7866

7866:                                             ; preds = %7865
  call void @llvm.lifetime.end.p0(i64 40, ptr %158) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %157) #11
  br label %7867

7867:                                             ; preds = %7866
  %7868 = load i32, ptr @test_count, align 4, !tbaa !5
  %7869 = add nsw i32 %7868, 1
  store i32 %7869, ptr @test_count, align 4, !tbaa !5
  %7870 = call i32 (...) @s2n_reset_tls13_in_test()
  %7871 = icmp eq i32 %7870, -1
  br i1 %7871, label %7872, label %7925

7872:                                             ; preds = %7867
  br label %7873

7873:                                             ; preds = %7872
  br label %7874

7874:                                             ; preds = %7873
  call void @llvm.lifetime.start.p0(i64 4, ptr %166) #11
  %7875 = call ptr @__errno_location() #12
  %7876 = load i32, ptr %7875, align 4, !tbaa !5
  store i32 %7876, ptr %166, align 4, !tbaa !5
  %7877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7878 = call i32 @s2n_print_stacktrace(ptr noundef %7877)
  %7879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7880 = trunc i8 %7879 to i1
  br i1 %7880, label %7881, label %7903

7881:                                             ; preds = %7874
  %7882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7883 = call i32 @fileno(ptr noundef %7882) #11
  %7884 = call i32 @isatty(i32 noundef %7883) #11
  %7885 = icmp ne i32 %7884, 0
  br i1 %7885, label %7886, label %7903

7886:                                             ; preds = %7881
  %7887 = load i32, ptr %166, align 4, !tbaa !5
  %7888 = call ptr @__errno_location() #12
  store i32 %7887, ptr %7888, align 4, !tbaa !5
  %7889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7890 = load i32, ptr @test_count, align 4, !tbaa !5
  %7891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7892 = load i32, ptr %7891, align 4, !tbaa !5
  %7893 = call ptr @s2n_strerror(i32 noundef %7892, ptr noundef @.str.4)
  %7894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7895 = load i32, ptr %7894, align 4, !tbaa !5
  %7896 = call ptr @s2n_strerror_debug(i32 noundef %7895, ptr noundef @.str.4)
  %7897 = call ptr @__errno_location() #12
  %7898 = load i32, ptr %7897, align 4, !tbaa !5
  %7899 = call ptr @strerror(i32 noundef %7898) #11
  %7900 = call ptr @__errno_location() #12
  %7901 = load i32, ptr %7900, align 4, !tbaa !5
  %7902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7889, ptr noundef @.str.2, i32 noundef %7890, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 420, ptr noundef %7893, ptr noundef %7896, ptr noundef %7899, i32 noundef %7901) #11
  br label %7920

7903:                                             ; preds = %7881, %7874
  %7904 = load i32, ptr %166, align 4, !tbaa !5
  %7905 = call ptr @__errno_location() #12
  store i32 %7904, ptr %7905, align 4, !tbaa !5
  %7906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7907 = load i32, ptr @test_count, align 4, !tbaa !5
  %7908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7909 = load i32, ptr %7908, align 4, !tbaa !5
  %7910 = call ptr @s2n_strerror(i32 noundef %7909, ptr noundef @.str.4)
  %7911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7912 = load i32, ptr %7911, align 4, !tbaa !5
  %7913 = call ptr @s2n_strerror_debug(i32 noundef %7912, ptr noundef @.str.4)
  %7914 = call ptr @__errno_location() #12
  %7915 = load i32, ptr %7914, align 4, !tbaa !5
  %7916 = call ptr @strerror(i32 noundef %7915) #11
  %7917 = call ptr @__errno_location() #12
  %7918 = load i32, ptr %7917, align 4, !tbaa !5
  %7919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7906, ptr noundef @.str.5, i32 noundef %7907, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 420, ptr noundef %7910, ptr noundef %7913, ptr noundef %7916, i32 noundef %7918) #11
  br label %7920

7920:                                             ; preds = %7903, %7886
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %7921

7921:                                             ; preds = %7920
  br label %7922

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

7923:                                             ; No predecessors!
  br label %7924

7924:                                             ; preds = %7923
  br label %7925

7925:                                             ; preds = %7924, %7867
  br label %7926

7926:                                             ; preds = %7925
  br label %7927

7927:                                             ; preds = %7926
  call void @llvm.lifetime.start.p0(i64 40, ptr %167) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %167, ptr align 8 @__const.main.test_extension_type_with_min, i64 40, i1 false)
  %7928 = getelementptr inbounds %struct.s2n_extension_type, ptr %167, i32 0, i32 2
  store i16 34, ptr %7928, align 4, !tbaa !56
  %7929 = getelementptr inbounds %struct.s2n_extension_type, ptr %167, i32 0, i32 6
  store ptr @s2n_extension_error_if_missing, ptr %7929, align 8, !tbaa !55
  %7930 = getelementptr inbounds %struct.s2n_extension_type, ptr %167, i32 0, i32 3
  store ptr @s2n_extension_send_unimplemented, ptr %7930, align 8, !tbaa !50
  %7931 = getelementptr inbounds %struct.s2n_extension_type, ptr %167, i32 0, i32 4
  store ptr @s2n_extension_recv_unimplemented, ptr %7931, align 8, !tbaa !48
  call void @llvm.lifetime.start.p0(i64 4184, ptr %168) #11
  call void @llvm.memset.p0.i64(ptr align 8 %168, i8 0, i64 4184, i1 false)
  %7932 = getelementptr inbounds %struct.s2n_connection, ptr %168, i32 0, i32 23
  store i8 33, ptr %7932, align 4, !tbaa !15
  br label %7933

7933:                                             ; preds = %7927
  %7934 = load i32, ptr @test_count, align 4, !tbaa !5
  %7935 = add nsw i32 %7934, 1
  store i32 %7935, ptr @test_count, align 4, !tbaa !5
  %7936 = call i32 @s2n_extension_recv(ptr noundef %167, ptr noundef %168, ptr noundef null)
  %7937 = icmp eq i32 %7936, -1
  br i1 %7937, label %7938, label %7991

7938:                                             ; preds = %7933
  br label %7939

7939:                                             ; preds = %7938
  br label %7940

7940:                                             ; preds = %7939
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %7941 = call ptr @__errno_location() #12
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  store i32 %7942, ptr %169, align 4, !tbaa !5
  %7943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7944 = call i32 @s2n_print_stacktrace(ptr noundef %7943)
  %7945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7946 = trunc i8 %7945 to i1
  br i1 %7946, label %7947, label %7969

7947:                                             ; preds = %7940
  %7948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7949 = call i32 @fileno(ptr noundef %7948) #11
  %7950 = call i32 @isatty(i32 noundef %7949) #11
  %7951 = icmp ne i32 %7950, 0
  br i1 %7951, label %7952, label %7969

7952:                                             ; preds = %7947
  %7953 = load i32, ptr %169, align 4, !tbaa !5
  %7954 = call ptr @__errno_location() #12
  store i32 %7953, ptr %7954, align 4, !tbaa !5
  %7955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7956 = load i32, ptr @test_count, align 4, !tbaa !5
  %7957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7958 = load i32, ptr %7957, align 4, !tbaa !5
  %7959 = call ptr @s2n_strerror(i32 noundef %7958, ptr noundef @.str.4)
  %7960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7961 = load i32, ptr %7960, align 4, !tbaa !5
  %7962 = call ptr @s2n_strerror_debug(i32 noundef %7961, ptr noundef @.str.4)
  %7963 = call ptr @__errno_location() #12
  %7964 = load i32, ptr %7963, align 4, !tbaa !5
  %7965 = call ptr @strerror(i32 noundef %7964) #11
  %7966 = call ptr @__errno_location() #12
  %7967 = load i32, ptr %7966, align 4, !tbaa !5
  %7968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7955, ptr noundef @.str.2, i32 noundef %7956, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 436, ptr noundef %7959, ptr noundef %7962, ptr noundef %7965, i32 noundef %7967) #11
  br label %7986

7969:                                             ; preds = %7947, %7940
  %7970 = load i32, ptr %169, align 4, !tbaa !5
  %7971 = call ptr @__errno_location() #12
  store i32 %7970, ptr %7971, align 4, !tbaa !5
  %7972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7973 = load i32, ptr @test_count, align 4, !tbaa !5
  %7974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7975 = load i32, ptr %7974, align 4, !tbaa !5
  %7976 = call ptr @s2n_strerror(i32 noundef %7975, ptr noundef @.str.4)
  %7977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7978 = load i32, ptr %7977, align 4, !tbaa !5
  %7979 = call ptr @s2n_strerror_debug(i32 noundef %7978, ptr noundef @.str.4)
  %7980 = call ptr @__errno_location() #12
  %7981 = load i32, ptr %7980, align 4, !tbaa !5
  %7982 = call ptr @strerror(i32 noundef %7981) #11
  %7983 = call ptr @__errno_location() #12
  %7984 = load i32, ptr %7983, align 4, !tbaa !5
  %7985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7972, ptr noundef @.str.5, i32 noundef %7973, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 436, ptr noundef %7976, ptr noundef %7979, ptr noundef %7982, i32 noundef %7984) #11
  br label %7986

7986:                                             ; preds = %7969, %7952
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %7987

7987:                                             ; preds = %7986
  br label %7988

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

7989:                                             ; No predecessors!
  br label %7990

7990:                                             ; preds = %7989
  br label %7991

7991:                                             ; preds = %7990, %7933
  br label %7992

7992:                                             ; preds = %7991
  br label %7993

7993:                                             ; preds = %7992
  br label %7994

7994:                                             ; preds = %7993
  %7995 = load i32, ptr @test_count, align 4, !tbaa !5
  %7996 = add nsw i32 %7995, 1
  store i32 %7996, ptr @test_count, align 4, !tbaa !5
  %7997 = call i32 @s2n_extension_send(ptr noundef %167, ptr noundef %168, ptr noundef null)
  %7998 = icmp eq i32 %7997, -1
  br i1 %7998, label %7999, label %8052

7999:                                             ; preds = %7994
  br label %8000

8000:                                             ; preds = %7999
  br label %8001

8001:                                             ; preds = %8000
  call void @llvm.lifetime.start.p0(i64 4, ptr %170) #11
  %8002 = call ptr @__errno_location() #12
  %8003 = load i32, ptr %8002, align 4, !tbaa !5
  store i32 %8003, ptr %170, align 4, !tbaa !5
  %8004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8005 = call i32 @s2n_print_stacktrace(ptr noundef %8004)
  %8006 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8007 = trunc i8 %8006 to i1
  br i1 %8007, label %8008, label %8030

8008:                                             ; preds = %8001
  %8009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8010 = call i32 @fileno(ptr noundef %8009) #11
  %8011 = call i32 @isatty(i32 noundef %8010) #11
  %8012 = icmp ne i32 %8011, 0
  br i1 %8012, label %8013, label %8030

8013:                                             ; preds = %8008
  %8014 = load i32, ptr %170, align 4, !tbaa !5
  %8015 = call ptr @__errno_location() #12
  store i32 %8014, ptr %8015, align 4, !tbaa !5
  %8016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8017 = load i32, ptr @test_count, align 4, !tbaa !5
  %8018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  %8020 = call ptr @s2n_strerror(i32 noundef %8019, ptr noundef @.str.4)
  %8021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8022 = load i32, ptr %8021, align 4, !tbaa !5
  %8023 = call ptr @s2n_strerror_debug(i32 noundef %8022, ptr noundef @.str.4)
  %8024 = call ptr @__errno_location() #12
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  %8026 = call ptr @strerror(i32 noundef %8025) #11
  %8027 = call ptr @__errno_location() #12
  %8028 = load i32, ptr %8027, align 4, !tbaa !5
  %8029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8016, ptr noundef @.str.2, i32 noundef %8017, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 437, ptr noundef %8020, ptr noundef %8023, ptr noundef %8026, i32 noundef %8028) #11
  br label %8047

8030:                                             ; preds = %8008, %8001
  %8031 = load i32, ptr %170, align 4, !tbaa !5
  %8032 = call ptr @__errno_location() #12
  store i32 %8031, ptr %8032, align 4, !tbaa !5
  %8033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8034 = load i32, ptr @test_count, align 4, !tbaa !5
  %8035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8036 = load i32, ptr %8035, align 4, !tbaa !5
  %8037 = call ptr @s2n_strerror(i32 noundef %8036, ptr noundef @.str.4)
  %8038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8039 = load i32, ptr %8038, align 4, !tbaa !5
  %8040 = call ptr @s2n_strerror_debug(i32 noundef %8039, ptr noundef @.str.4)
  %8041 = call ptr @__errno_location() #12
  %8042 = load i32, ptr %8041, align 4, !tbaa !5
  %8043 = call ptr @strerror(i32 noundef %8042) #11
  %8044 = call ptr @__errno_location() #12
  %8045 = load i32, ptr %8044, align 4, !tbaa !5
  %8046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8033, ptr noundef @.str.5, i32 noundef %8034, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 437, ptr noundef %8037, ptr noundef %8040, ptr noundef %8043, i32 noundef %8045) #11
  br label %8047

8047:                                             ; preds = %8030, %8013
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %8048

8048:                                             ; preds = %8047
  br label %8049

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

8050:                                             ; No predecessors!
  br label %8051

8051:                                             ; preds = %8050
  br label %8052

8052:                                             ; preds = %8051, %7994
  br label %8053

8053:                                             ; preds = %8052
  br label %8054

8054:                                             ; preds = %8053
  br label %8055

8055:                                             ; preds = %8054
  %8056 = load i32, ptr @test_count, align 4, !tbaa !5
  %8057 = add nsw i32 %8056, 1
  store i32 %8057, ptr @test_count, align 4, !tbaa !5
  %8058 = call i32 @s2n_extension_is_missing(ptr noundef %167, ptr noundef %168)
  %8059 = icmp eq i32 %8058, -1
  br i1 %8059, label %8060, label %8113

8060:                                             ; preds = %8055
  br label %8061

8061:                                             ; preds = %8060
  br label %8062

8062:                                             ; preds = %8061
  call void @llvm.lifetime.start.p0(i64 4, ptr %171) #11
  %8063 = call ptr @__errno_location() #12
  %8064 = load i32, ptr %8063, align 4, !tbaa !5
  store i32 %8064, ptr %171, align 4, !tbaa !5
  %8065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8066 = call i32 @s2n_print_stacktrace(ptr noundef %8065)
  %8067 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8068 = trunc i8 %8067 to i1
  br i1 %8068, label %8069, label %8091

8069:                                             ; preds = %8062
  %8070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8071 = call i32 @fileno(ptr noundef %8070) #11
  %8072 = call i32 @isatty(i32 noundef %8071) #11
  %8073 = icmp ne i32 %8072, 0
  br i1 %8073, label %8074, label %8091

8074:                                             ; preds = %8069
  %8075 = load i32, ptr %171, align 4, !tbaa !5
  %8076 = call ptr @__errno_location() #12
  store i32 %8075, ptr %8076, align 4, !tbaa !5
  %8077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8078 = load i32, ptr @test_count, align 4, !tbaa !5
  %8079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8080 = load i32, ptr %8079, align 4, !tbaa !5
  %8081 = call ptr @s2n_strerror(i32 noundef %8080, ptr noundef @.str.4)
  %8082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8083 = load i32, ptr %8082, align 4, !tbaa !5
  %8084 = call ptr @s2n_strerror_debug(i32 noundef %8083, ptr noundef @.str.4)
  %8085 = call ptr @__errno_location() #12
  %8086 = load i32, ptr %8085, align 4, !tbaa !5
  %8087 = call ptr @strerror(i32 noundef %8086) #11
  %8088 = call ptr @__errno_location() #12
  %8089 = load i32, ptr %8088, align 4, !tbaa !5
  %8090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8077, ptr noundef @.str.2, i32 noundef %8078, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 438, ptr noundef %8081, ptr noundef %8084, ptr noundef %8087, i32 noundef %8089) #11
  br label %8108

8091:                                             ; preds = %8069, %8062
  %8092 = load i32, ptr %171, align 4, !tbaa !5
  %8093 = call ptr @__errno_location() #12
  store i32 %8092, ptr %8093, align 4, !tbaa !5
  %8094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8095 = load i32, ptr @test_count, align 4, !tbaa !5
  %8096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8097 = load i32, ptr %8096, align 4, !tbaa !5
  %8098 = call ptr @s2n_strerror(i32 noundef %8097, ptr noundef @.str.4)
  %8099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8100 = load i32, ptr %8099, align 4, !tbaa !5
  %8101 = call ptr @s2n_strerror_debug(i32 noundef %8100, ptr noundef @.str.4)
  %8102 = call ptr @__errno_location() #12
  %8103 = load i32, ptr %8102, align 4, !tbaa !5
  %8104 = call ptr @strerror(i32 noundef %8103) #11
  %8105 = call ptr @__errno_location() #12
  %8106 = load i32, ptr %8105, align 4, !tbaa !5
  %8107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8094, ptr noundef @.str.5, i32 noundef %8095, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 438, ptr noundef %8098, ptr noundef %8101, ptr noundef %8104, i32 noundef %8106) #11
  br label %8108

8108:                                             ; preds = %8091, %8074
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %8109

8109:                                             ; preds = %8108
  br label %8110

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

8111:                                             ; No predecessors!
  br label %8112

8112:                                             ; preds = %8111
  br label %8113

8113:                                             ; preds = %8112, %8055
  br label %8114

8114:                                             ; preds = %8113
  br label %8115

8115:                                             ; preds = %8114
  %8116 = getelementptr inbounds %struct.s2n_connection, ptr %168, i32 0, i32 23
  store i8 34, ptr %8116, align 4, !tbaa !15
  br label %8117

8117:                                             ; preds = %8115
  br label %8118

8118:                                             ; preds = %8117
  %8119 = load i32, ptr @test_count, align 4, !tbaa !5
  %8120 = add nsw i32 %8119, 1
  store i32 %8120, ptr @test_count, align 4, !tbaa !5
  %8121 = call i32 @s2n_extension_recv(ptr noundef %167, ptr noundef %168, ptr noundef null)
  %8122 = icmp eq i32 %8121, -1
  br i1 %8122, label %8176, label %8123

8123:                                             ; preds = %8118
  br label %8124

8124:                                             ; preds = %8123
  br label %8125

8125:                                             ; preds = %8124
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %8126 = call ptr @__errno_location() #12
  %8127 = load i32, ptr %8126, align 4, !tbaa !5
  store i32 %8127, ptr %172, align 4, !tbaa !5
  %8128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8129 = call i32 @s2n_print_stacktrace(ptr noundef %8128)
  %8130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8131 = trunc i8 %8130 to i1
  br i1 %8131, label %8132, label %8154

8132:                                             ; preds = %8125
  %8133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8134 = call i32 @fileno(ptr noundef %8133) #11
  %8135 = call i32 @isatty(i32 noundef %8134) #11
  %8136 = icmp ne i32 %8135, 0
  br i1 %8136, label %8137, label %8154

8137:                                             ; preds = %8132
  %8138 = load i32, ptr %172, align 4, !tbaa !5
  %8139 = call ptr @__errno_location() #12
  store i32 %8138, ptr %8139, align 4, !tbaa !5
  %8140 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8141 = load i32, ptr @test_count, align 4, !tbaa !5
  %8142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8143 = load i32, ptr %8142, align 4, !tbaa !5
  %8144 = call ptr @s2n_strerror(i32 noundef %8143, ptr noundef @.str.4)
  %8145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  %8147 = call ptr @s2n_strerror_debug(i32 noundef %8146, ptr noundef @.str.4)
  %8148 = call ptr @__errno_location() #12
  %8149 = load i32, ptr %8148, align 4, !tbaa !5
  %8150 = call ptr @strerror(i32 noundef %8149) #11
  %8151 = call ptr @__errno_location() #12
  %8152 = load i32, ptr %8151, align 4, !tbaa !5
  %8153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8140, ptr noundef @.str.2, i32 noundef %8141, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8144, ptr noundef %8147, ptr noundef %8150, i32 noundef %8152) #11
  br label %8171

8154:                                             ; preds = %8132, %8125
  %8155 = load i32, ptr %172, align 4, !tbaa !5
  %8156 = call ptr @__errno_location() #12
  store i32 %8155, ptr %8156, align 4, !tbaa !5
  %8157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8158 = load i32, ptr @test_count, align 4, !tbaa !5
  %8159 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8160 = load i32, ptr %8159, align 4, !tbaa !5
  %8161 = call ptr @s2n_strerror(i32 noundef %8160, ptr noundef @.str.4)
  %8162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8163 = load i32, ptr %8162, align 4, !tbaa !5
  %8164 = call ptr @s2n_strerror_debug(i32 noundef %8163, ptr noundef @.str.4)
  %8165 = call ptr @__errno_location() #12
  %8166 = load i32, ptr %8165, align 4, !tbaa !5
  %8167 = call ptr @strerror(i32 noundef %8166) #11
  %8168 = call ptr @__errno_location() #12
  %8169 = load i32, ptr %8168, align 4, !tbaa !5
  %8170 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8157, ptr noundef @.str.5, i32 noundef %8158, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8161, ptr noundef %8164, ptr noundef %8167, i32 noundef %8169) #11
  br label %8171

8171:                                             ; preds = %8154, %8137
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %8172

8172:                                             ; preds = %8171
  br label %8173

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

8174:                                             ; No predecessors!
  br label %8175

8175:                                             ; preds = %8174
  br label %8176

8176:                                             ; preds = %8175, %8118
  br label %8177

8177:                                             ; preds = %8176
  br label %8178

8178:                                             ; preds = %8177
  br label %8179

8179:                                             ; preds = %8178
  %8180 = load i32, ptr @test_count, align 4, !tbaa !5
  %8181 = add nsw i32 %8180, 1
  store i32 %8181, ptr @test_count, align 4, !tbaa !5
  %8182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8183 = load i32, ptr %8182, align 4, !tbaa !5
  %8184 = icmp eq i32 %8183, 0
  br i1 %8184, label %8185, label %8238

8185:                                             ; preds = %8179
  br label %8186

8186:                                             ; preds = %8185
  br label %8187

8187:                                             ; preds = %8186
  call void @llvm.lifetime.start.p0(i64 4, ptr %173) #11
  %8188 = call ptr @__errno_location() #12
  %8189 = load i32, ptr %8188, align 4, !tbaa !5
  store i32 %8189, ptr %173, align 4, !tbaa !5
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = call i32 @s2n_print_stacktrace(ptr noundef %8190)
  %8192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8193 = trunc i8 %8192 to i1
  br i1 %8193, label %8194, label %8216

8194:                                             ; preds = %8187
  %8195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8196 = call i32 @fileno(ptr noundef %8195) #11
  %8197 = call i32 @isatty(i32 noundef %8196) #11
  %8198 = icmp ne i32 %8197, 0
  br i1 %8198, label %8199, label %8216

8199:                                             ; preds = %8194
  %8200 = load i32, ptr %173, align 4, !tbaa !5
  %8201 = call ptr @__errno_location() #12
  store i32 %8200, ptr %8201, align 4, !tbaa !5
  %8202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8203 = load i32, ptr @test_count, align 4, !tbaa !5
  %8204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8205 = load i32, ptr %8204, align 4, !tbaa !5
  %8206 = call ptr @s2n_strerror(i32 noundef %8205, ptr noundef @.str.4)
  %8207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8208 = load i32, ptr %8207, align 4, !tbaa !5
  %8209 = call ptr @s2n_strerror_debug(i32 noundef %8208, ptr noundef @.str.4)
  %8210 = call ptr @__errno_location() #12
  %8211 = load i32, ptr %8210, align 4, !tbaa !5
  %8212 = call ptr @strerror(i32 noundef %8211) #11
  %8213 = call ptr @__errno_location() #12
  %8214 = load i32, ptr %8213, align 4, !tbaa !5
  %8215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8202, ptr noundef @.str.2, i32 noundef %8203, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8206, ptr noundef %8209, ptr noundef %8212, i32 noundef %8214) #11
  br label %8233

8216:                                             ; preds = %8194, %8187
  %8217 = load i32, ptr %173, align 4, !tbaa !5
  %8218 = call ptr @__errno_location() #12
  store i32 %8217, ptr %8218, align 4, !tbaa !5
  %8219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8220 = load i32, ptr @test_count, align 4, !tbaa !5
  %8221 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8222 = load i32, ptr %8221, align 4, !tbaa !5
  %8223 = call ptr @s2n_strerror(i32 noundef %8222, ptr noundef @.str.4)
  %8224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8225 = load i32, ptr %8224, align 4, !tbaa !5
  %8226 = call ptr @s2n_strerror_debug(i32 noundef %8225, ptr noundef @.str.4)
  %8227 = call ptr @__errno_location() #12
  %8228 = load i32, ptr %8227, align 4, !tbaa !5
  %8229 = call ptr @strerror(i32 noundef %8228) #11
  %8230 = call ptr @__errno_location() #12
  %8231 = load i32, ptr %8230, align 4, !tbaa !5
  %8232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8219, ptr noundef @.str.5, i32 noundef %8220, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8223, ptr noundef %8226, ptr noundef %8229, i32 noundef %8231) #11
  br label %8233

8233:                                             ; preds = %8216, %8199
  call void @llvm.lifetime.end.p0(i64 4, ptr %173) #11
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

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

8236:                                             ; No predecessors!
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

8238:                                             ; preds = %8237, %8179
  br label %8239

8239:                                             ; preds = %8238
  br label %8240

8240:                                             ; preds = %8239
  br label %8241

8241:                                             ; preds = %8240
  %8242 = load i32, ptr @test_count, align 4, !tbaa !5
  %8243 = add nsw i32 %8242, 1
  store i32 %8243, ptr @test_count, align 4, !tbaa !5
  %8244 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8245 = load i32, ptr %8244, align 4, !tbaa !5
  %8246 = call ptr @s2n_strerror_debug(i32 noundef %8245, ptr noundef @.str.4)
  %8247 = icmp eq ptr %8246, null
  br i1 %8247, label %8248, label %8301

8248:                                             ; preds = %8241
  br label %8249

8249:                                             ; preds = %8248
  br label %8250

8250:                                             ; preds = %8249
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %8251 = call ptr @__errno_location() #12
  %8252 = load i32, ptr %8251, align 4, !tbaa !5
  store i32 %8252, ptr %174, align 4, !tbaa !5
  %8253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8254 = call i32 @s2n_print_stacktrace(ptr noundef %8253)
  %8255 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8256 = trunc i8 %8255 to i1
  br i1 %8256, label %8257, label %8279

8257:                                             ; preds = %8250
  %8258 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8259 = call i32 @fileno(ptr noundef %8258) #11
  %8260 = call i32 @isatty(i32 noundef %8259) #11
  %8261 = icmp ne i32 %8260, 0
  br i1 %8261, label %8262, label %8279

8262:                                             ; preds = %8257
  %8263 = load i32, ptr %174, align 4, !tbaa !5
  %8264 = call ptr @__errno_location() #12
  store i32 %8263, ptr %8264, align 4, !tbaa !5
  %8265 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8266 = load i32, ptr @test_count, align 4, !tbaa !5
  %8267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8268 = load i32, ptr %8267, align 4, !tbaa !5
  %8269 = call ptr @s2n_strerror(i32 noundef %8268, ptr noundef @.str.4)
  %8270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8271 = load i32, ptr %8270, align 4, !tbaa !5
  %8272 = call ptr @s2n_strerror_debug(i32 noundef %8271, ptr noundef @.str.4)
  %8273 = call ptr @__errno_location() #12
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  %8275 = call ptr @strerror(i32 noundef %8274) #11
  %8276 = call ptr @__errno_location() #12
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  %8278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8265, ptr noundef @.str.2, i32 noundef %8266, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8269, ptr noundef %8272, ptr noundef %8275, i32 noundef %8277) #11
  br label %8296

8279:                                             ; preds = %8257, %8250
  %8280 = load i32, ptr %174, align 4, !tbaa !5
  %8281 = call ptr @__errno_location() #12
  store i32 %8280, ptr %8281, align 4, !tbaa !5
  %8282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8283 = load i32, ptr @test_count, align 4, !tbaa !5
  %8284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8285 = load i32, ptr %8284, align 4, !tbaa !5
  %8286 = call ptr @s2n_strerror(i32 noundef %8285, ptr noundef @.str.4)
  %8287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8288 = load i32, ptr %8287, align 4, !tbaa !5
  %8289 = call ptr @s2n_strerror_debug(i32 noundef %8288, ptr noundef @.str.4)
  %8290 = call ptr @__errno_location() #12
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call ptr @strerror(i32 noundef %8291) #11
  %8293 = call ptr @__errno_location() #12
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  %8295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8282, ptr noundef @.str.5, i32 noundef %8283, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 445, ptr noundef %8286, ptr noundef %8289, ptr noundef %8292, i32 noundef %8294) #11
  br label %8296

8296:                                             ; preds = %8279, %8262
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %8297

8297:                                             ; preds = %8296
  br label %8298

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

8299:                                             ; No predecessors!
  br label %8300

8300:                                             ; preds = %8299
  br label %8301

8301:                                             ; preds = %8300, %8241
  br label %8302

8302:                                             ; preds = %8301
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303
  %8305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8305, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8306 = call ptr @__errno_location() #12
  store i32 0, ptr %8306, align 4, !tbaa !5
  br label %8307

8307:                                             ; preds = %8304
  br label %8308

8308:                                             ; preds = %8307
  br label %8309

8309:                                             ; preds = %8308
  br label %8310

8310:                                             ; preds = %8309
  br label %8311

8311:                                             ; preds = %8310
  br label %8312

8312:                                             ; preds = %8311
  %8313 = load i32, ptr @test_count, align 4, !tbaa !5
  %8314 = add nsw i32 %8313, 1
  store i32 %8314, ptr @test_count, align 4, !tbaa !5
  %8315 = call i32 @s2n_extension_send(ptr noundef %167, ptr noundef %168, ptr noundef null)
  %8316 = icmp eq i32 %8315, -1
  br i1 %8316, label %8370, label %8317

8317:                                             ; preds = %8312
  br label %8318

8318:                                             ; preds = %8317
  br label %8319

8319:                                             ; preds = %8318
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %8320 = call ptr @__errno_location() #12
  %8321 = load i32, ptr %8320, align 4, !tbaa !5
  store i32 %8321, ptr %175, align 4, !tbaa !5
  %8322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8323 = call i32 @s2n_print_stacktrace(ptr noundef %8322)
  %8324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8325 = trunc i8 %8324 to i1
  br i1 %8325, label %8326, label %8348

8326:                                             ; preds = %8319
  %8327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8328 = call i32 @fileno(ptr noundef %8327) #11
  %8329 = call i32 @isatty(i32 noundef %8328) #11
  %8330 = icmp ne i32 %8329, 0
  br i1 %8330, label %8331, label %8348

8331:                                             ; preds = %8326
  %8332 = load i32, ptr %175, align 4, !tbaa !5
  %8333 = call ptr @__errno_location() #12
  store i32 %8332, ptr %8333, align 4, !tbaa !5
  %8334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8335 = load i32, ptr @test_count, align 4, !tbaa !5
  %8336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8337 = load i32, ptr %8336, align 4, !tbaa !5
  %8338 = call ptr @s2n_strerror(i32 noundef %8337, ptr noundef @.str.4)
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror_debug(i32 noundef %8340, ptr noundef @.str.4)
  %8342 = call ptr @__errno_location() #12
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @strerror(i32 noundef %8343) #11
  %8345 = call ptr @__errno_location() #12
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8334, ptr noundef @.str.2, i32 noundef %8335, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8338, ptr noundef %8341, ptr noundef %8344, i32 noundef %8346) #11
  br label %8365

8348:                                             ; preds = %8326, %8319
  %8349 = load i32, ptr %175, align 4, !tbaa !5
  %8350 = call ptr @__errno_location() #12
  store i32 %8349, ptr %8350, align 4, !tbaa !5
  %8351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8352 = load i32, ptr @test_count, align 4, !tbaa !5
  %8353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8354 = load i32, ptr %8353, align 4, !tbaa !5
  %8355 = call ptr @s2n_strerror(i32 noundef %8354, ptr noundef @.str.4)
  %8356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  %8358 = call ptr @s2n_strerror_debug(i32 noundef %8357, ptr noundef @.str.4)
  %8359 = call ptr @__errno_location() #12
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  %8361 = call ptr @strerror(i32 noundef %8360) #11
  %8362 = call ptr @__errno_location() #12
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  %8364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8351, ptr noundef @.str.5, i32 noundef %8352, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8355, ptr noundef %8358, ptr noundef %8361, i32 noundef %8363) #11
  br label %8365

8365:                                             ; preds = %8348, %8331
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %8366

8366:                                             ; preds = %8365
  br label %8367

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

8368:                                             ; No predecessors!
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

8370:                                             ; preds = %8369, %8312
  br label %8371

8371:                                             ; preds = %8370
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372
  %8374 = load i32, ptr @test_count, align 4, !tbaa !5
  %8375 = add nsw i32 %8374, 1
  store i32 %8375, ptr @test_count, align 4, !tbaa !5
  %8376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8377 = load i32, ptr %8376, align 4, !tbaa !5
  %8378 = icmp eq i32 %8377, 0
  br i1 %8378, label %8379, label %8432

8379:                                             ; preds = %8373
  br label %8380

8380:                                             ; preds = %8379
  br label %8381

8381:                                             ; preds = %8380
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %8382 = call ptr @__errno_location() #12
  %8383 = load i32, ptr %8382, align 4, !tbaa !5
  store i32 %8383, ptr %176, align 4, !tbaa !5
  %8384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8385 = call i32 @s2n_print_stacktrace(ptr noundef %8384)
  %8386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8387 = trunc i8 %8386 to i1
  br i1 %8387, label %8388, label %8410

8388:                                             ; preds = %8381
  %8389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8390 = call i32 @fileno(ptr noundef %8389) #11
  %8391 = call i32 @isatty(i32 noundef %8390) #11
  %8392 = icmp ne i32 %8391, 0
  br i1 %8392, label %8393, label %8410

8393:                                             ; preds = %8388
  %8394 = load i32, ptr %176, align 4, !tbaa !5
  %8395 = call ptr @__errno_location() #12
  store i32 %8394, ptr %8395, align 4, !tbaa !5
  %8396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8397 = load i32, ptr @test_count, align 4, !tbaa !5
  %8398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8399 = load i32, ptr %8398, align 4, !tbaa !5
  %8400 = call ptr @s2n_strerror(i32 noundef %8399, ptr noundef @.str.4)
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror_debug(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call ptr @__errno_location() #12
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @strerror(i32 noundef %8405) #11
  %8407 = call ptr @__errno_location() #12
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8396, ptr noundef @.str.2, i32 noundef %8397, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8400, ptr noundef %8403, ptr noundef %8406, i32 noundef %8408) #11
  br label %8427

8410:                                             ; preds = %8388, %8381
  %8411 = load i32, ptr %176, align 4, !tbaa !5
  %8412 = call ptr @__errno_location() #12
  store i32 %8411, ptr %8412, align 4, !tbaa !5
  %8413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8414 = load i32, ptr @test_count, align 4, !tbaa !5
  %8415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8416 = load i32, ptr %8415, align 4, !tbaa !5
  %8417 = call ptr @s2n_strerror(i32 noundef %8416, ptr noundef @.str.4)
  %8418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @s2n_strerror_debug(i32 noundef %8419, ptr noundef @.str.4)
  %8421 = call ptr @__errno_location() #12
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @strerror(i32 noundef %8422) #11
  %8424 = call ptr @__errno_location() #12
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8413, ptr noundef @.str.5, i32 noundef %8414, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8417, ptr noundef %8420, ptr noundef %8423, i32 noundef %8425) #11
  br label %8427

8427:                                             ; preds = %8410, %8393
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %8428

8428:                                             ; preds = %8427
  br label %8429

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

8430:                                             ; No predecessors!
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

8432:                                             ; preds = %8431, %8373
  br label %8433

8433:                                             ; preds = %8432
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434
  %8436 = load i32, ptr @test_count, align 4, !tbaa !5
  %8437 = add nsw i32 %8436, 1
  store i32 %8437, ptr @test_count, align 4, !tbaa !5
  %8438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8439 = load i32, ptr %8438, align 4, !tbaa !5
  %8440 = call ptr @s2n_strerror_debug(i32 noundef %8439, ptr noundef @.str.4)
  %8441 = icmp eq ptr %8440, null
  br i1 %8441, label %8442, label %8495

8442:                                             ; preds = %8435
  br label %8443

8443:                                             ; preds = %8442
  br label %8444

8444:                                             ; preds = %8443
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %8445 = call ptr @__errno_location() #12
  %8446 = load i32, ptr %8445, align 4, !tbaa !5
  store i32 %8446, ptr %177, align 4, !tbaa !5
  %8447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8448 = call i32 @s2n_print_stacktrace(ptr noundef %8447)
  %8449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8450 = trunc i8 %8449 to i1
  br i1 %8450, label %8451, label %8473

8451:                                             ; preds = %8444
  %8452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8453 = call i32 @fileno(ptr noundef %8452) #11
  %8454 = call i32 @isatty(i32 noundef %8453) #11
  %8455 = icmp ne i32 %8454, 0
  br i1 %8455, label %8456, label %8473

8456:                                             ; preds = %8451
  %8457 = load i32, ptr %177, align 4, !tbaa !5
  %8458 = call ptr @__errno_location() #12
  store i32 %8457, ptr %8458, align 4, !tbaa !5
  %8459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8460 = load i32, ptr @test_count, align 4, !tbaa !5
  %8461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8462 = load i32, ptr %8461, align 4, !tbaa !5
  %8463 = call ptr @s2n_strerror(i32 noundef %8462, ptr noundef @.str.4)
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror_debug(i32 noundef %8465, ptr noundef @.str.4)
  %8467 = call ptr @__errno_location() #12
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @strerror(i32 noundef %8468) #11
  %8470 = call ptr @__errno_location() #12
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8459, ptr noundef @.str.2, i32 noundef %8460, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8463, ptr noundef %8466, ptr noundef %8469, i32 noundef %8471) #11
  br label %8490

8473:                                             ; preds = %8451, %8444
  %8474 = load i32, ptr %177, align 4, !tbaa !5
  %8475 = call ptr @__errno_location() #12
  store i32 %8474, ptr %8475, align 4, !tbaa !5
  %8476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8477 = load i32, ptr @test_count, align 4, !tbaa !5
  %8478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8479 = load i32, ptr %8478, align 4, !tbaa !5
  %8480 = call ptr @s2n_strerror(i32 noundef %8479, ptr noundef @.str.4)
  %8481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = call ptr @s2n_strerror_debug(i32 noundef %8482, ptr noundef @.str.4)
  %8484 = call ptr @__errno_location() #12
  %8485 = load i32, ptr %8484, align 4, !tbaa !5
  %8486 = call ptr @strerror(i32 noundef %8485) #11
  %8487 = call ptr @__errno_location() #12
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  %8489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8476, ptr noundef @.str.5, i32 noundef %8477, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 446, ptr noundef %8480, ptr noundef %8483, ptr noundef %8486, i32 noundef %8488) #11
  br label %8490

8490:                                             ; preds = %8473, %8456
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %8491

8491:                                             ; preds = %8490
  br label %8492

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

8493:                                             ; No predecessors!
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

8495:                                             ; preds = %8494, %8435
  br label %8496

8496:                                             ; preds = %8495
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497
  %8499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8499, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8500 = call ptr @__errno_location() #12
  store i32 0, ptr %8500, align 4, !tbaa !5
  br label %8501

8501:                                             ; preds = %8498
  br label %8502

8502:                                             ; preds = %8501
  br label %8503

8503:                                             ; preds = %8502
  br label %8504

8504:                                             ; preds = %8503
  br label %8505

8505:                                             ; preds = %8504
  br label %8506

8506:                                             ; preds = %8505
  %8507 = load i32, ptr @test_count, align 4, !tbaa !5
  %8508 = add nsw i32 %8507, 1
  store i32 %8508, ptr @test_count, align 4, !tbaa !5
  %8509 = call i32 @s2n_extension_is_missing(ptr noundef %167, ptr noundef %168)
  %8510 = icmp eq i32 %8509, -1
  br i1 %8510, label %8564, label %8511

8511:                                             ; preds = %8506
  br label %8512

8512:                                             ; preds = %8511
  br label %8513

8513:                                             ; preds = %8512
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %8514 = call ptr @__errno_location() #12
  %8515 = load i32, ptr %8514, align 4, !tbaa !5
  store i32 %8515, ptr %178, align 4, !tbaa !5
  %8516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8517 = call i32 @s2n_print_stacktrace(ptr noundef %8516)
  %8518 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8519 = trunc i8 %8518 to i1
  br i1 %8519, label %8520, label %8542

8520:                                             ; preds = %8513
  %8521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8522 = call i32 @fileno(ptr noundef %8521) #11
  %8523 = call i32 @isatty(i32 noundef %8522) #11
  %8524 = icmp ne i32 %8523, 0
  br i1 %8524, label %8525, label %8542

8525:                                             ; preds = %8520
  %8526 = load i32, ptr %178, align 4, !tbaa !5
  %8527 = call ptr @__errno_location() #12
  store i32 %8526, ptr %8527, align 4, !tbaa !5
  %8528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8529 = load i32, ptr @test_count, align 4, !tbaa !5
  %8530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8531 = load i32, ptr %8530, align 4, !tbaa !5
  %8532 = call ptr @s2n_strerror(i32 noundef %8531, ptr noundef @.str.4)
  %8533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8534 = load i32, ptr %8533, align 4, !tbaa !5
  %8535 = call ptr @s2n_strerror_debug(i32 noundef %8534, ptr noundef @.str.4)
  %8536 = call ptr @__errno_location() #12
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call ptr @strerror(i32 noundef %8537) #11
  %8539 = call ptr @__errno_location() #12
  %8540 = load i32, ptr %8539, align 4, !tbaa !5
  %8541 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8528, ptr noundef @.str.2, i32 noundef %8529, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8532, ptr noundef %8535, ptr noundef %8538, i32 noundef %8540) #11
  br label %8559

8542:                                             ; preds = %8520, %8513
  %8543 = load i32, ptr %178, align 4, !tbaa !5
  %8544 = call ptr @__errno_location() #12
  store i32 %8543, ptr %8544, align 4, !tbaa !5
  %8545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8546 = load i32, ptr @test_count, align 4, !tbaa !5
  %8547 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8548 = load i32, ptr %8547, align 4, !tbaa !5
  %8549 = call ptr @s2n_strerror(i32 noundef %8548, ptr noundef @.str.4)
  %8550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8551 = load i32, ptr %8550, align 4, !tbaa !5
  %8552 = call ptr @s2n_strerror_debug(i32 noundef %8551, ptr noundef @.str.4)
  %8553 = call ptr @__errno_location() #12
  %8554 = load i32, ptr %8553, align 4, !tbaa !5
  %8555 = call ptr @strerror(i32 noundef %8554) #11
  %8556 = call ptr @__errno_location() #12
  %8557 = load i32, ptr %8556, align 4, !tbaa !5
  %8558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8545, ptr noundef @.str.5, i32 noundef %8546, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8549, ptr noundef %8552, ptr noundef %8555, i32 noundef %8557) #11
  br label %8559

8559:                                             ; preds = %8542, %8525
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %8560

8560:                                             ; preds = %8559
  br label %8561

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

8562:                                             ; No predecessors!
  br label %8563

8563:                                             ; preds = %8562
  br label %8564

8564:                                             ; preds = %8563, %8506
  br label %8565

8565:                                             ; preds = %8564
  br label %8566

8566:                                             ; preds = %8565
  br label %8567

8567:                                             ; preds = %8566
  %8568 = load i32, ptr @test_count, align 4, !tbaa !5
  %8569 = add nsw i32 %8568, 1
  store i32 %8569, ptr @test_count, align 4, !tbaa !5
  %8570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8571 = load i32, ptr %8570, align 4, !tbaa !5
  %8572 = icmp eq i32 %8571, 0
  br i1 %8572, label %8573, label %8626

8573:                                             ; preds = %8567
  br label %8574

8574:                                             ; preds = %8573
  br label %8575

8575:                                             ; preds = %8574
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %8576 = call ptr @__errno_location() #12
  %8577 = load i32, ptr %8576, align 4, !tbaa !5
  store i32 %8577, ptr %179, align 4, !tbaa !5
  %8578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8579 = call i32 @s2n_print_stacktrace(ptr noundef %8578)
  %8580 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8581 = trunc i8 %8580 to i1
  br i1 %8581, label %8582, label %8604

8582:                                             ; preds = %8575
  %8583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8584 = call i32 @fileno(ptr noundef %8583) #11
  %8585 = call i32 @isatty(i32 noundef %8584) #11
  %8586 = icmp ne i32 %8585, 0
  br i1 %8586, label %8587, label %8604

8587:                                             ; preds = %8582
  %8588 = load i32, ptr %179, align 4, !tbaa !5
  %8589 = call ptr @__errno_location() #12
  store i32 %8588, ptr %8589, align 4, !tbaa !5
  %8590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8591 = load i32, ptr @test_count, align 4, !tbaa !5
  %8592 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8593 = load i32, ptr %8592, align 4, !tbaa !5
  %8594 = call ptr @s2n_strerror(i32 noundef %8593, ptr noundef @.str.4)
  %8595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8596 = load i32, ptr %8595, align 4, !tbaa !5
  %8597 = call ptr @s2n_strerror_debug(i32 noundef %8596, ptr noundef @.str.4)
  %8598 = call ptr @__errno_location() #12
  %8599 = load i32, ptr %8598, align 4, !tbaa !5
  %8600 = call ptr @strerror(i32 noundef %8599) #11
  %8601 = call ptr @__errno_location() #12
  %8602 = load i32, ptr %8601, align 4, !tbaa !5
  %8603 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8590, ptr noundef @.str.2, i32 noundef %8591, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8594, ptr noundef %8597, ptr noundef %8600, i32 noundef %8602) #11
  br label %8621

8604:                                             ; preds = %8582, %8575
  %8605 = load i32, ptr %179, align 4, !tbaa !5
  %8606 = call ptr @__errno_location() #12
  store i32 %8605, ptr %8606, align 4, !tbaa !5
  %8607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8608 = load i32, ptr @test_count, align 4, !tbaa !5
  %8609 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8610 = load i32, ptr %8609, align 4, !tbaa !5
  %8611 = call ptr @s2n_strerror(i32 noundef %8610, ptr noundef @.str.4)
  %8612 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8613 = load i32, ptr %8612, align 4, !tbaa !5
  %8614 = call ptr @s2n_strerror_debug(i32 noundef %8613, ptr noundef @.str.4)
  %8615 = call ptr @__errno_location() #12
  %8616 = load i32, ptr %8615, align 4, !tbaa !5
  %8617 = call ptr @strerror(i32 noundef %8616) #11
  %8618 = call ptr @__errno_location() #12
  %8619 = load i32, ptr %8618, align 4, !tbaa !5
  %8620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8607, ptr noundef @.str.5, i32 noundef %8608, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8611, ptr noundef %8614, ptr noundef %8617, i32 noundef %8619) #11
  br label %8621

8621:                                             ; preds = %8604, %8587
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %8622

8622:                                             ; preds = %8621
  br label %8623

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

8624:                                             ; No predecessors!
  br label %8625

8625:                                             ; preds = %8624
  br label %8626

8626:                                             ; preds = %8625, %8567
  br label %8627

8627:                                             ; preds = %8626
  br label %8628

8628:                                             ; preds = %8627
  br label %8629

8629:                                             ; preds = %8628
  %8630 = load i32, ptr @test_count, align 4, !tbaa !5
  %8631 = add nsw i32 %8630, 1
  store i32 %8631, ptr @test_count, align 4, !tbaa !5
  %8632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8633 = load i32, ptr %8632, align 4, !tbaa !5
  %8634 = call ptr @s2n_strerror_debug(i32 noundef %8633, ptr noundef @.str.4)
  %8635 = icmp eq ptr %8634, null
  br i1 %8635, label %8636, label %8689

8636:                                             ; preds = %8629
  br label %8637

8637:                                             ; preds = %8636
  br label %8638

8638:                                             ; preds = %8637
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %8639 = call ptr @__errno_location() #12
  %8640 = load i32, ptr %8639, align 4, !tbaa !5
  store i32 %8640, ptr %180, align 4, !tbaa !5
  %8641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8642 = call i32 @s2n_print_stacktrace(ptr noundef %8641)
  %8643 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8644 = trunc i8 %8643 to i1
  br i1 %8644, label %8645, label %8667

8645:                                             ; preds = %8638
  %8646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8647 = call i32 @fileno(ptr noundef %8646) #11
  %8648 = call i32 @isatty(i32 noundef %8647) #11
  %8649 = icmp ne i32 %8648, 0
  br i1 %8649, label %8650, label %8667

8650:                                             ; preds = %8645
  %8651 = load i32, ptr %180, align 4, !tbaa !5
  %8652 = call ptr @__errno_location() #12
  store i32 %8651, ptr %8652, align 4, !tbaa !5
  %8653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8654 = load i32, ptr @test_count, align 4, !tbaa !5
  %8655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8656 = load i32, ptr %8655, align 4, !tbaa !5
  %8657 = call ptr @s2n_strerror(i32 noundef %8656, ptr noundef @.str.4)
  %8658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8659 = load i32, ptr %8658, align 4, !tbaa !5
  %8660 = call ptr @s2n_strerror_debug(i32 noundef %8659, ptr noundef @.str.4)
  %8661 = call ptr @__errno_location() #12
  %8662 = load i32, ptr %8661, align 4, !tbaa !5
  %8663 = call ptr @strerror(i32 noundef %8662) #11
  %8664 = call ptr @__errno_location() #12
  %8665 = load i32, ptr %8664, align 4, !tbaa !5
  %8666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8653, ptr noundef @.str.2, i32 noundef %8654, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8657, ptr noundef %8660, ptr noundef %8663, i32 noundef %8665) #11
  br label %8684

8667:                                             ; preds = %8645, %8638
  %8668 = load i32, ptr %180, align 4, !tbaa !5
  %8669 = call ptr @__errno_location() #12
  store i32 %8668, ptr %8669, align 4, !tbaa !5
  %8670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8671 = load i32, ptr @test_count, align 4, !tbaa !5
  %8672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call ptr @s2n_strerror(i32 noundef %8673, ptr noundef @.str.4)
  %8675 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8676 = load i32, ptr %8675, align 4, !tbaa !5
  %8677 = call ptr @s2n_strerror_debug(i32 noundef %8676, ptr noundef @.str.4)
  %8678 = call ptr @__errno_location() #12
  %8679 = load i32, ptr %8678, align 4, !tbaa !5
  %8680 = call ptr @strerror(i32 noundef %8679) #11
  %8681 = call ptr @__errno_location() #12
  %8682 = load i32, ptr %8681, align 4, !tbaa !5
  %8683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8670, ptr noundef @.str.5, i32 noundef %8671, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 447, ptr noundef %8674, ptr noundef %8677, ptr noundef %8680, i32 noundef %8682) #11
  br label %8684

8684:                                             ; preds = %8667, %8650
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %8685

8685:                                             ; preds = %8684
  br label %8686

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

8687:                                             ; No predecessors!
  br label %8688

8688:                                             ; preds = %8687
  br label %8689

8689:                                             ; preds = %8688, %8629
  br label %8690

8690:                                             ; preds = %8689
  br label %8691

8691:                                             ; preds = %8690
  br label %8692

8692:                                             ; preds = %8691
  %8693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8693, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8694 = call ptr @__errno_location() #12
  store i32 0, ptr %8694, align 4, !tbaa !5
  br label %8695

8695:                                             ; preds = %8692
  br label %8696

8696:                                             ; preds = %8695
  br label %8697

8697:                                             ; preds = %8696
  br label %8698

8698:                                             ; preds = %8697
  call void @llvm.lifetime.start.p0(i64 8, ptr %181) #11
  store ptr null, ptr %181, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %182) #11
  store ptr null, ptr %182, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  store i32 0, ptr %183, align 4, !tbaa !5
  br label %8699

8699:                                             ; preds = %8916, %8698
  %8700 = load i32, ptr %183, align 4, !tbaa !5
  %8701 = icmp ult i32 %8700, 10
  br i1 %8701, label %8703, label %8702

8702:                                             ; preds = %8699
  store i32 918, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %8919

8703:                                             ; preds = %8699
  br label %8704

8704:                                             ; preds = %8703
  %8705 = load i32, ptr @test_count, align 4, !tbaa !5
  %8706 = add nsw i32 %8705, 1
  store i32 %8706, ptr @test_count, align 4, !tbaa !5
  %8707 = load i32, ptr %183, align 4, !tbaa !5
  %8708 = call i32 @s2n_extension_type_list_get(i32 noundef %8707, ptr noundef %181)
  %8709 = icmp eq i32 %8708, -1
  br i1 %8709, label %8710, label %8763

8710:                                             ; preds = %8704
  br label %8711

8711:                                             ; preds = %8710
  br label %8712

8712:                                             ; preds = %8711
  call void @llvm.lifetime.start.p0(i64 4, ptr %185) #11
  %8713 = call ptr @__errno_location() #12
  %8714 = load i32, ptr %8713, align 4, !tbaa !5
  store i32 %8714, ptr %185, align 4, !tbaa !5
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = call i32 @s2n_print_stacktrace(ptr noundef %8715)
  %8717 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8718 = trunc i8 %8717 to i1
  br i1 %8718, label %8719, label %8741

8719:                                             ; preds = %8712
  %8720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8721 = call i32 @fileno(ptr noundef %8720) #11
  %8722 = call i32 @isatty(i32 noundef %8721) #11
  %8723 = icmp ne i32 %8722, 0
  br i1 %8723, label %8724, label %8741

8724:                                             ; preds = %8719
  %8725 = load i32, ptr %185, align 4, !tbaa !5
  %8726 = call ptr @__errno_location() #12
  store i32 %8725, ptr %8726, align 4, !tbaa !5
  %8727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8728 = load i32, ptr @test_count, align 4, !tbaa !5
  %8729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8730 = load i32, ptr %8729, align 4, !tbaa !5
  %8731 = call ptr @s2n_strerror(i32 noundef %8730, ptr noundef @.str.4)
  %8732 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8733 = load i32, ptr %8732, align 4, !tbaa !5
  %8734 = call ptr @s2n_strerror_debug(i32 noundef %8733, ptr noundef @.str.4)
  %8735 = call ptr @__errno_location() #12
  %8736 = load i32, ptr %8735, align 4, !tbaa !5
  %8737 = call ptr @strerror(i32 noundef %8736) #11
  %8738 = call ptr @__errno_location() #12
  %8739 = load i32, ptr %8738, align 4, !tbaa !5
  %8740 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8727, ptr noundef @.str.2, i32 noundef %8728, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 458, ptr noundef %8731, ptr noundef %8734, ptr noundef %8737, i32 noundef %8739) #11
  br label %8758

8741:                                             ; preds = %8719, %8712
  %8742 = load i32, ptr %185, align 4, !tbaa !5
  %8743 = call ptr @__errno_location() #12
  store i32 %8742, ptr %8743, align 4, !tbaa !5
  %8744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8745 = load i32, ptr @test_count, align 4, !tbaa !5
  %8746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8747 = load i32, ptr %8746, align 4, !tbaa !5
  %8748 = call ptr @s2n_strerror(i32 noundef %8747, ptr noundef @.str.4)
  %8749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8750 = load i32, ptr %8749, align 4, !tbaa !5
  %8751 = call ptr @s2n_strerror_debug(i32 noundef %8750, ptr noundef @.str.4)
  %8752 = call ptr @__errno_location() #12
  %8753 = load i32, ptr %8752, align 4, !tbaa !5
  %8754 = call ptr @strerror(i32 noundef %8753) #11
  %8755 = call ptr @__errno_location() #12
  %8756 = load i32, ptr %8755, align 4, !tbaa !5
  %8757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8744, ptr noundef @.str.5, i32 noundef %8745, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 458, ptr noundef %8748, ptr noundef %8751, ptr noundef %8754, i32 noundef %8756) #11
  br label %8758

8758:                                             ; preds = %8741, %8724
  call void @llvm.lifetime.end.p0(i64 4, ptr %185) #11
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

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

8761:                                             ; No predecessors!
  br label %8762

8762:                                             ; preds = %8761
  br label %8763

8763:                                             ; preds = %8762, %8704
  br label %8764

8764:                                             ; preds = %8763
  br label %8765

8765:                                             ; preds = %8764
  br label %8766

8766:                                             ; preds = %8765
  %8767 = load i32, ptr @test_count, align 4, !tbaa !5
  %8768 = add nsw i32 %8767, 1
  store i32 %8768, ptr @test_count, align 4, !tbaa !5
  %8769 = load ptr, ptr %181, align 8, !tbaa !9
  %8770 = icmp eq ptr %8769, null
  br i1 %8770, label %8771, label %8824

8771:                                             ; preds = %8766
  br label %8772

8772:                                             ; preds = %8771
  br label %8773

8773:                                             ; preds = %8772
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %8774 = call ptr @__errno_location() #12
  %8775 = load i32, ptr %8774, align 4, !tbaa !5
  store i32 %8775, ptr %186, align 4, !tbaa !5
  %8776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8777 = call i32 @s2n_print_stacktrace(ptr noundef %8776)
  %8778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8779 = trunc i8 %8778 to i1
  br i1 %8779, label %8780, label %8802

8780:                                             ; preds = %8773
  %8781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8782 = call i32 @fileno(ptr noundef %8781) #11
  %8783 = call i32 @isatty(i32 noundef %8782) #11
  %8784 = icmp ne i32 %8783, 0
  br i1 %8784, label %8785, label %8802

8785:                                             ; preds = %8780
  %8786 = load i32, ptr %186, align 4, !tbaa !5
  %8787 = call ptr @__errno_location() #12
  store i32 %8786, ptr %8787, align 4, !tbaa !5
  %8788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8789 = load i32, ptr @test_count, align 4, !tbaa !5
  %8790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror(i32 noundef %8791, ptr noundef @.str.4)
  %8793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @s2n_strerror_debug(i32 noundef %8794, ptr noundef @.str.4)
  %8796 = call ptr @__errno_location() #12
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call ptr @strerror(i32 noundef %8797) #11
  %8799 = call ptr @__errno_location() #12
  %8800 = load i32, ptr %8799, align 4, !tbaa !5
  %8801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8788, ptr noundef @.str.2, i32 noundef %8789, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 459, ptr noundef %8792, ptr noundef %8795, ptr noundef %8798, i32 noundef %8800) #11
  br label %8819

8802:                                             ; preds = %8780, %8773
  %8803 = load i32, ptr %186, align 4, !tbaa !5
  %8804 = call ptr @__errno_location() #12
  store i32 %8803, ptr %8804, align 4, !tbaa !5
  %8805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8806 = load i32, ptr @test_count, align 4, !tbaa !5
  %8807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8808 = load i32, ptr %8807, align 4, !tbaa !5
  %8809 = call ptr @s2n_strerror(i32 noundef %8808, ptr noundef @.str.4)
  %8810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8811 = load i32, ptr %8810, align 4, !tbaa !5
  %8812 = call ptr @s2n_strerror_debug(i32 noundef %8811, ptr noundef @.str.4)
  %8813 = call ptr @__errno_location() #12
  %8814 = load i32, ptr %8813, align 4, !tbaa !5
  %8815 = call ptr @strerror(i32 noundef %8814) #11
  %8816 = call ptr @__errno_location() #12
  %8817 = load i32, ptr %8816, align 4, !tbaa !5
  %8818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8805, ptr noundef @.str.5, i32 noundef %8806, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 459, ptr noundef %8809, ptr noundef %8812, ptr noundef %8815, i32 noundef %8817) #11
  br label %8819

8819:                                             ; preds = %8802, %8785
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

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

8822:                                             ; No predecessors!
  br label %8823

8823:                                             ; preds = %8822
  br label %8824

8824:                                             ; preds = %8823, %8766
  br label %8825

8825:                                             ; preds = %8824
  br label %8826

8826:                                             ; preds = %8825
  call void @llvm.lifetime.start.p0(i64 8, ptr %187) #11
  store i64 0, ptr %187, align 8, !tbaa !44
  br label %8827

8827:                                             ; preds = %8912, %8826
  %8828 = load i64, ptr %187, align 8, !tbaa !44
  %8829 = load ptr, ptr %181, align 8, !tbaa !9
  %8830 = getelementptr inbounds %struct.s2n_extension_type_list, ptr %8829, i32 0, i32 1
  %8831 = load i8, ptr %8830, align 8, !tbaa !57
  %8832 = zext i8 %8831 to i64
  %8833 = icmp ult i64 %8828, %8832
  br i1 %8833, label %8835, label %8834

8834:                                             ; preds = %8827
  store i32 933, ptr %184, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %187) #11
  br label %8915

8835:                                             ; preds = %8827
  %8836 = load ptr, ptr %181, align 8, !tbaa !9
  %8837 = getelementptr inbounds %struct.s2n_extension_type_list, ptr %8836, i32 0, i32 0
  %8838 = load ptr, ptr %8837, align 8, !tbaa !59
  %8839 = load i64, ptr %187, align 8, !tbaa !44
  %8840 = getelementptr inbounds ptr, ptr %8838, i64 %8839
  %8841 = load ptr, ptr %8840, align 8, !tbaa !9
  store ptr %8841, ptr %182, align 8, !tbaa !9
  br label %8842

8842:                                             ; preds = %8835
  %8843 = load i32, ptr @test_count, align 4, !tbaa !5
  %8844 = add nsw i32 %8843, 1
  store i32 %8844, ptr @test_count, align 4, !tbaa !5
  %8845 = load ptr, ptr %182, align 8, !tbaa !9
  %8846 = getelementptr inbounds %struct.s2n_extension_type, ptr %8845, i32 0, i32 2
  %8847 = load i16, ptr %8846, align 4, !tbaa !56
  %8848 = zext i16 %8847 to i32
  %8849 = icmp eq i32 %8848, 0
  br i1 %8849, label %8909, label %8850

8850:                                             ; preds = %8842
  %8851 = load ptr, ptr %182, align 8, !tbaa !9
  %8852 = getelementptr inbounds %struct.s2n_extension_type, ptr %8851, i32 0, i32 2
  %8853 = load i16, ptr %8852, align 4, !tbaa !56
  %8854 = zext i16 %8853 to i32
  %8855 = icmp sge i32 %8854, 34
  br i1 %8855, label %8909, label %8856

8856:                                             ; preds = %8850
  br label %8857

8857:                                             ; preds = %8856
  br label %8858

8858:                                             ; preds = %8857
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %8859 = call ptr @__errno_location() #12
  %8860 = load i32, ptr %8859, align 4, !tbaa !5
  store i32 %8860, ptr %188, align 4, !tbaa !5
  %8861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8862 = call i32 @s2n_print_stacktrace(ptr noundef %8861)
  %8863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8864 = trunc i8 %8863 to i1
  br i1 %8864, label %8865, label %8887

8865:                                             ; preds = %8858
  %8866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8867 = call i32 @fileno(ptr noundef %8866) #11
  %8868 = call i32 @isatty(i32 noundef %8867) #11
  %8869 = icmp ne i32 %8868, 0
  br i1 %8869, label %8870, label %8887

8870:                                             ; preds = %8865
  %8871 = load i32, ptr %188, align 4, !tbaa !5
  %8872 = call ptr @__errno_location() #12
  store i32 %8871, ptr %8872, align 4, !tbaa !5
  %8873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8874 = load i32, ptr @test_count, align 4, !tbaa !5
  %8875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call ptr @s2n_strerror(i32 noundef %8876, ptr noundef @.str.4)
  %8878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8879 = load i32, ptr %8878, align 4, !tbaa !5
  %8880 = call ptr @s2n_strerror_debug(i32 noundef %8879, ptr noundef @.str.4)
  %8881 = call ptr @__errno_location() #12
  %8882 = load i32, ptr %8881, align 4, !tbaa !5
  %8883 = call ptr @strerror(i32 noundef %8882) #11
  %8884 = call ptr @__errno_location() #12
  %8885 = load i32, ptr %8884, align 4, !tbaa !5
  %8886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8873, ptr noundef @.str.2, i32 noundef %8874, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 462, ptr noundef %8877, ptr noundef %8880, ptr noundef %8883, i32 noundef %8885) #11
  br label %8904

8887:                                             ; preds = %8865, %8858
  %8888 = load i32, ptr %188, align 4, !tbaa !5
  %8889 = call ptr @__errno_location() #12
  store i32 %8888, ptr %8889, align 4, !tbaa !5
  %8890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8891 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %8893, ptr noundef @.str.4)
  %8895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8896 = load i32, ptr %8895, align 4, !tbaa !5
  %8897 = call ptr @s2n_strerror_debug(i32 noundef %8896, ptr noundef @.str.4)
  %8898 = call ptr @__errno_location() #12
  %8899 = load i32, ptr %8898, align 4, !tbaa !5
  %8900 = call ptr @strerror(i32 noundef %8899) #11
  %8901 = call ptr @__errno_location() #12
  %8902 = load i32, ptr %8901, align 4, !tbaa !5
  %8903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8890, ptr noundef @.str.5, i32 noundef %8891, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 462, ptr noundef %8894, ptr noundef %8897, ptr noundef %8900, i32 noundef %8902) #11
  br label %8904

8904:                                             ; preds = %8887, %8870
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %8905

8905:                                             ; preds = %8904
  br label %8906

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

8907:                                             ; No predecessors!
  br label %8908

8908:                                             ; preds = %8907
  br label %8909

8909:                                             ; preds = %8908, %8850, %8842
  br label %8910

8910:                                             ; preds = %8909
  br label %8911

8911:                                             ; preds = %8910
  br label %8912

8912:                                             ; preds = %8911
  %8913 = load i64, ptr %187, align 8, !tbaa !44
  %8914 = add i64 %8913, 1
  store i64 %8914, ptr %187, align 8, !tbaa !44
  br label %8827, !llvm.loop !60

8915:                                             ; preds = %8834
  br label %8916

8916:                                             ; preds = %8915
  %8917 = load i32, ptr %183, align 4, !tbaa !5
  %8918 = add i32 %8917, 1
  store i32 %8918, ptr %183, align 4, !tbaa !5
  br label %8699, !llvm.loop !61

8919:                                             ; preds = %8702
  call void @llvm.lifetime.end.p0(i64 8, ptr %182) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %181) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %189) #11
  store ptr null, ptr %189, align 8, !tbaa !9
  br label %8920

8920:                                             ; preds = %8919
  %8921 = load i32, ptr @test_count, align 4, !tbaa !5
  %8922 = add nsw i32 %8921, 1
  store i32 %8922, ptr @test_count, align 4, !tbaa !5
  %8923 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef %189, ptr noundef @.str.86, ptr noundef @.str.87)
  %8924 = icmp eq i32 %8923, -1
  br i1 %8924, label %8925, label %8978

8925:                                             ; preds = %8920
  br label %8926

8926:                                             ; preds = %8925
  br label %8927

8927:                                             ; preds = %8926
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %8928 = call ptr @__errno_location() #12
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  store i32 %8929, ptr %190, align 4, !tbaa !5
  %8930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8931 = call i32 @s2n_print_stacktrace(ptr noundef %8930)
  %8932 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8933 = trunc i8 %8932 to i1
  br i1 %8933, label %8934, label %8956

8934:                                             ; preds = %8927
  %8935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8936 = call i32 @fileno(ptr noundef %8935) #11
  %8937 = call i32 @isatty(i32 noundef %8936) #11
  %8938 = icmp ne i32 %8937, 0
  br i1 %8938, label %8939, label %8956

8939:                                             ; preds = %8934
  %8940 = load i32, ptr %190, align 4, !tbaa !5
  %8941 = call ptr @__errno_location() #12
  store i32 %8940, ptr %8941, align 4, !tbaa !5
  %8942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8943 = load i32, ptr @test_count, align 4, !tbaa !5
  %8944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8945 = load i32, ptr %8944, align 4, !tbaa !5
  %8946 = call ptr @s2n_strerror(i32 noundef %8945, ptr noundef @.str.4)
  %8947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8948 = load i32, ptr %8947, align 4, !tbaa !5
  %8949 = call ptr @s2n_strerror_debug(i32 noundef %8948, ptr noundef @.str.4)
  %8950 = call ptr @__errno_location() #12
  %8951 = load i32, ptr %8950, align 4, !tbaa !5
  %8952 = call ptr @strerror(i32 noundef %8951) #11
  %8953 = call ptr @__errno_location() #12
  %8954 = load i32, ptr %8953, align 4, !tbaa !5
  %8955 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8942, ptr noundef @.str.2, i32 noundef %8943, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 471, ptr noundef %8946, ptr noundef %8949, ptr noundef %8952, i32 noundef %8954) #11
  br label %8973

8956:                                             ; preds = %8934, %8927
  %8957 = load i32, ptr %190, align 4, !tbaa !5
  %8958 = call ptr @__errno_location() #12
  store i32 %8957, ptr %8958, align 4, !tbaa !5
  %8959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8960 = load i32, ptr @test_count, align 4, !tbaa !5
  %8961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8962 = load i32, ptr %8961, align 4, !tbaa !5
  %8963 = call ptr @s2n_strerror(i32 noundef %8962, ptr noundef @.str.4)
  %8964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8965 = load i32, ptr %8964, align 4, !tbaa !5
  %8966 = call ptr @s2n_strerror_debug(i32 noundef %8965, ptr noundef @.str.4)
  %8967 = call ptr @__errno_location() #12
  %8968 = load i32, ptr %8967, align 4, !tbaa !5
  %8969 = call ptr @strerror(i32 noundef %8968) #11
  %8970 = call ptr @__errno_location() #12
  %8971 = load i32, ptr %8970, align 4, !tbaa !5
  %8972 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8959, ptr noundef @.str.5, i32 noundef %8960, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 471, ptr noundef %8963, ptr noundef %8966, ptr noundef %8969, i32 noundef %8971) #11
  br label %8973

8973:                                             ; preds = %8956, %8939
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %8974

8974:                                             ; preds = %8973
  br label %8975

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

8976:                                             ; No predecessors!
  br label %8977

8977:                                             ; preds = %8976
  br label %8978

8978:                                             ; preds = %8977, %8920
  br label %8979

8979:                                             ; preds = %8978
  br label %8980

8980:                                             ; preds = %8979
  call void @llvm.lifetime.start.p0(i64 8, ptr %191) #11
  %8981 = call ptr @s2n_config_new()
  store ptr %8981, ptr %191, align 8, !tbaa !9
  br label %8982

8982:                                             ; preds = %8980
  %8983 = load i32, ptr @test_count, align 4, !tbaa !5
  %8984 = add nsw i32 %8983, 1
  store i32 %8984, ptr @test_count, align 4, !tbaa !5
  %8985 = load ptr, ptr %191, align 8, !tbaa !9
  %8986 = load ptr, ptr %189, align 8, !tbaa !9
  %8987 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %8985, ptr noundef %8986)
  %8988 = icmp eq i32 %8987, -1
  br i1 %8988, label %8989, label %9042

8989:                                             ; preds = %8982
  br label %8990

8990:                                             ; preds = %8989
  br label %8991

8991:                                             ; preds = %8990
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %8992 = call ptr @__errno_location() #12
  %8993 = load i32, ptr %8992, align 4, !tbaa !5
  store i32 %8993, ptr %192, align 4, !tbaa !5
  %8994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8995 = call i32 @s2n_print_stacktrace(ptr noundef %8994)
  %8996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8997 = trunc i8 %8996 to i1
  br i1 %8997, label %8998, label %9020

8998:                                             ; preds = %8991
  %8999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9000 = call i32 @fileno(ptr noundef %8999) #11
  %9001 = call i32 @isatty(i32 noundef %9000) #11
  %9002 = icmp ne i32 %9001, 0
  br i1 %9002, label %9003, label %9020

9003:                                             ; preds = %8998
  %9004 = load i32, ptr %192, align 4, !tbaa !5
  %9005 = call ptr @__errno_location() #12
  store i32 %9004, ptr %9005, align 4, !tbaa !5
  %9006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9007 = load i32, ptr @test_count, align 4, !tbaa !5
  %9008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9009 = load i32, ptr %9008, align 4, !tbaa !5
  %9010 = call ptr @s2n_strerror(i32 noundef %9009, ptr noundef @.str.4)
  %9011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9012 = load i32, ptr %9011, align 4, !tbaa !5
  %9013 = call ptr @s2n_strerror_debug(i32 noundef %9012, ptr noundef @.str.4)
  %9014 = call ptr @__errno_location() #12
  %9015 = load i32, ptr %9014, align 4, !tbaa !5
  %9016 = call ptr @strerror(i32 noundef %9015) #11
  %9017 = call ptr @__errno_location() #12
  %9018 = load i32, ptr %9017, align 4, !tbaa !5
  %9019 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9006, ptr noundef @.str.2, i32 noundef %9007, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 474, ptr noundef %9010, ptr noundef %9013, ptr noundef %9016, i32 noundef %9018) #11
  br label %9037

9020:                                             ; preds = %8998, %8991
  %9021 = load i32, ptr %192, align 4, !tbaa !5
  %9022 = call ptr @__errno_location() #12
  store i32 %9021, ptr %9022, align 4, !tbaa !5
  %9023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9024 = load i32, ptr @test_count, align 4, !tbaa !5
  %9025 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9026 = load i32, ptr %9025, align 4, !tbaa !5
  %9027 = call ptr @s2n_strerror(i32 noundef %9026, ptr noundef @.str.4)
  %9028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9029 = load i32, ptr %9028, align 4, !tbaa !5
  %9030 = call ptr @s2n_strerror_debug(i32 noundef %9029, ptr noundef @.str.4)
  %9031 = call ptr @__errno_location() #12
  %9032 = load i32, ptr %9031, align 4, !tbaa !5
  %9033 = call ptr @strerror(i32 noundef %9032) #11
  %9034 = call ptr @__errno_location() #12
  %9035 = load i32, ptr %9034, align 4, !tbaa !5
  %9036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9023, ptr noundef @.str.5, i32 noundef %9024, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 474, ptr noundef %9027, ptr noundef %9030, ptr noundef %9033, i32 noundef %9035) #11
  br label %9037

9037:                                             ; preds = %9020, %9003
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %9038

9038:                                             ; preds = %9037
  br label %9039

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

9040:                                             ; No predecessors!
  br label %9041

9041:                                             ; preds = %9040
  br label %9042

9042:                                             ; preds = %9041, %8982
  br label %9043

9043:                                             ; preds = %9042
  br label %9044

9044:                                             ; preds = %9043
  br label %9045

9045:                                             ; preds = %9044
  %9046 = load i32, ptr @test_count, align 4, !tbaa !5
  %9047 = add nsw i32 %9046, 1
  store i32 %9047, ptr @test_count, align 4, !tbaa !5
  %9048 = load ptr, ptr %191, align 8, !tbaa !9
  %9049 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %9048)
  %9050 = icmp eq i32 %9049, -1
  br i1 %9050, label %9051, label %9104

9051:                                             ; preds = %9045
  br label %9052

9052:                                             ; preds = %9051
  br label %9053

9053:                                             ; preds = %9052
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %9054 = call ptr @__errno_location() #12
  %9055 = load i32, ptr %9054, align 4, !tbaa !5
  store i32 %9055, ptr %193, align 4, !tbaa !5
  %9056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9057 = call i32 @s2n_print_stacktrace(ptr noundef %9056)
  %9058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9059 = trunc i8 %9058 to i1
  br i1 %9059, label %9060, label %9082

9060:                                             ; preds = %9053
  %9061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9062 = call i32 @fileno(ptr noundef %9061) #11
  %9063 = call i32 @isatty(i32 noundef %9062) #11
  %9064 = icmp ne i32 %9063, 0
  br i1 %9064, label %9065, label %9082

9065:                                             ; preds = %9060
  %9066 = load i32, ptr %193, align 4, !tbaa !5
  %9067 = call ptr @__errno_location() #12
  store i32 %9066, ptr %9067, align 4, !tbaa !5
  %9068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9069 = load i32, ptr @test_count, align 4, !tbaa !5
  %9070 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9071 = load i32, ptr %9070, align 4, !tbaa !5
  %9072 = call ptr @s2n_strerror(i32 noundef %9071, ptr noundef @.str.4)
  %9073 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9074 = load i32, ptr %9073, align 4, !tbaa !5
  %9075 = call ptr @s2n_strerror_debug(i32 noundef %9074, ptr noundef @.str.4)
  %9076 = call ptr @__errno_location() #12
  %9077 = load i32, ptr %9076, align 4, !tbaa !5
  %9078 = call ptr @strerror(i32 noundef %9077) #11
  %9079 = call ptr @__errno_location() #12
  %9080 = load i32, ptr %9079, align 4, !tbaa !5
  %9081 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9068, ptr noundef @.str.2, i32 noundef %9069, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 475, ptr noundef %9072, ptr noundef %9075, ptr noundef %9078, i32 noundef %9080) #11
  br label %9099

9082:                                             ; preds = %9060, %9053
  %9083 = load i32, ptr %193, align 4, !tbaa !5
  %9084 = call ptr @__errno_location() #12
  store i32 %9083, ptr %9084, align 4, !tbaa !5
  %9085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9086 = load i32, ptr @test_count, align 4, !tbaa !5
  %9087 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9088 = load i32, ptr %9087, align 4, !tbaa !5
  %9089 = call ptr @s2n_strerror(i32 noundef %9088, ptr noundef @.str.4)
  %9090 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9091 = load i32, ptr %9090, align 4, !tbaa !5
  %9092 = call ptr @s2n_strerror_debug(i32 noundef %9091, ptr noundef @.str.4)
  %9093 = call ptr @__errno_location() #12
  %9094 = load i32, ptr %9093, align 4, !tbaa !5
  %9095 = call ptr @strerror(i32 noundef %9094) #11
  %9096 = call ptr @__errno_location() #12
  %9097 = load i32, ptr %9096, align 4, !tbaa !5
  %9098 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9085, ptr noundef @.str.5, i32 noundef %9086, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 475, ptr noundef %9089, ptr noundef %9092, ptr noundef %9095, i32 noundef %9097) #11
  br label %9099

9099:                                             ; preds = %9082, %9065
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %9100

9100:                                             ; preds = %9099
  br label %9101

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

9102:                                             ; No predecessors!
  br label %9103

9103:                                             ; preds = %9102
  br label %9104

9104:                                             ; preds = %9103, %9045
  br label %9105

9105:                                             ; preds = %9104
  br label %9106

9106:                                             ; preds = %9105
  br label %9107

9107:                                             ; preds = %9106
  %9108 = load i32, ptr @test_count, align 4, !tbaa !5
  %9109 = add nsw i32 %9108, 1
  store i32 %9109, ptr @test_count, align 4, !tbaa !5
  %9110 = load ptr, ptr %191, align 8, !tbaa !9
  %9111 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %9110, ptr noundef @.str.91)
  %9112 = icmp eq i32 %9111, -1
  br i1 %9112, label %9113, label %9166

9113:                                             ; preds = %9107
  br label %9114

9114:                                             ; preds = %9113
  br label %9115

9115:                                             ; preds = %9114
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %9116 = call ptr @__errno_location() #12
  %9117 = load i32, ptr %9116, align 4, !tbaa !5
  store i32 %9117, ptr %194, align 4, !tbaa !5
  %9118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9119 = call i32 @s2n_print_stacktrace(ptr noundef %9118)
  %9120 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9121 = trunc i8 %9120 to i1
  br i1 %9121, label %9122, label %9144

9122:                                             ; preds = %9115
  %9123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9124 = call i32 @fileno(ptr noundef %9123) #11
  %9125 = call i32 @isatty(i32 noundef %9124) #11
  %9126 = icmp ne i32 %9125, 0
  br i1 %9126, label %9127, label %9144

9127:                                             ; preds = %9122
  %9128 = load i32, ptr %194, align 4, !tbaa !5
  %9129 = call ptr @__errno_location() #12
  store i32 %9128, ptr %9129, align 4, !tbaa !5
  %9130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9131 = load i32, ptr @test_count, align 4, !tbaa !5
  %9132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9133 = load i32, ptr %9132, align 4, !tbaa !5
  %9134 = call ptr @s2n_strerror(i32 noundef %9133, ptr noundef @.str.4)
  %9135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9136 = load i32, ptr %9135, align 4, !tbaa !5
  %9137 = call ptr @s2n_strerror_debug(i32 noundef %9136, ptr noundef @.str.4)
  %9138 = call ptr @__errno_location() #12
  %9139 = load i32, ptr %9138, align 4, !tbaa !5
  %9140 = call ptr @strerror(i32 noundef %9139) #11
  %9141 = call ptr @__errno_location() #12
  %9142 = load i32, ptr %9141, align 4, !tbaa !5
  %9143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9130, ptr noundef @.str.2, i32 noundef %9131, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 476, ptr noundef %9134, ptr noundef %9137, ptr noundef %9140, i32 noundef %9142) #11
  br label %9161

9144:                                             ; preds = %9122, %9115
  %9145 = load i32, ptr %194, align 4, !tbaa !5
  %9146 = call ptr @__errno_location() #12
  store i32 %9145, ptr %9146, align 4, !tbaa !5
  %9147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9148 = load i32, ptr @test_count, align 4, !tbaa !5
  %9149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9150 = load i32, ptr %9149, align 4, !tbaa !5
  %9151 = call ptr @s2n_strerror(i32 noundef %9150, ptr noundef @.str.4)
  %9152 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9153 = load i32, ptr %9152, align 4, !tbaa !5
  %9154 = call ptr @s2n_strerror_debug(i32 noundef %9153, ptr noundef @.str.4)
  %9155 = call ptr @__errno_location() #12
  %9156 = load i32, ptr %9155, align 4, !tbaa !5
  %9157 = call ptr @strerror(i32 noundef %9156) #11
  %9158 = call ptr @__errno_location() #12
  %9159 = load i32, ptr %9158, align 4, !tbaa !5
  %9160 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9147, ptr noundef @.str.5, i32 noundef %9148, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 476, ptr noundef %9151, ptr noundef %9154, ptr noundef %9157, i32 noundef %9159) #11
  br label %9161

9161:                                             ; preds = %9144, %9127
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %9162

9162:                                             ; preds = %9161
  br label %9163

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

9164:                                             ; No predecessors!
  br label %9165

9165:                                             ; preds = %9164
  br label %9166

9166:                                             ; preds = %9165, %9107
  br label %9167

9167:                                             ; preds = %9166
  br label %9168

9168:                                             ; preds = %9167
  call void @llvm.lifetime.start.p0(i64 2, ptr %195) #11
  %9169 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext 51)
  %9170 = zext i8 %9169 to i16
  store i16 %9170, ptr %195, align 2, !tbaa !42
  %9171 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %9171, label %9172, label %10026

9172:                                             ; preds = %9168
  call void @llvm.lifetime.start.p0(i64 8, ptr %196) #11
  %9173 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %9173, ptr %196, align 8, !tbaa !9
  br label %9174

9174:                                             ; preds = %9172
  %9175 = load i32, ptr @test_count, align 4, !tbaa !5
  %9176 = add nsw i32 %9175, 1
  store i32 %9176, ptr @test_count, align 4, !tbaa !5
  %9177 = load ptr, ptr %196, align 8, !tbaa !9
  %9178 = icmp eq ptr %9177, null
  br i1 %9178, label %9179, label %9232

9179:                                             ; preds = %9174
  br label %9180

9180:                                             ; preds = %9179
  br label %9181

9181:                                             ; preds = %9180
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %9182 = call ptr @__errno_location() #12
  %9183 = load i32, ptr %9182, align 4, !tbaa !5
  store i32 %9183, ptr %197, align 4, !tbaa !5
  %9184 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9185 = call i32 @s2n_print_stacktrace(ptr noundef %9184)
  %9186 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9187 = trunc i8 %9186 to i1
  br i1 %9187, label %9188, label %9210

9188:                                             ; preds = %9181
  %9189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9190 = call i32 @fileno(ptr noundef %9189) #11
  %9191 = call i32 @isatty(i32 noundef %9190) #11
  %9192 = icmp ne i32 %9191, 0
  br i1 %9192, label %9193, label %9210

9193:                                             ; preds = %9188
  %9194 = load i32, ptr %197, align 4, !tbaa !5
  %9195 = call ptr @__errno_location() #12
  store i32 %9194, ptr %9195, align 4, !tbaa !5
  %9196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9197 = load i32, ptr @test_count, align 4, !tbaa !5
  %9198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9199 = load i32, ptr %9198, align 4, !tbaa !5
  %9200 = call ptr @s2n_strerror(i32 noundef %9199, ptr noundef @.str.4)
  %9201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9202 = load i32, ptr %9201, align 4, !tbaa !5
  %9203 = call ptr @s2n_strerror_debug(i32 noundef %9202, ptr noundef @.str.4)
  %9204 = call ptr @__errno_location() #12
  %9205 = load i32, ptr %9204, align 4, !tbaa !5
  %9206 = call ptr @strerror(i32 noundef %9205) #11
  %9207 = call ptr @__errno_location() #12
  %9208 = load i32, ptr %9207, align 4, !tbaa !5
  %9209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9196, ptr noundef @.str.2, i32 noundef %9197, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 483, ptr noundef %9200, ptr noundef %9203, ptr noundef %9206, i32 noundef %9208) #11
  br label %9227

9210:                                             ; preds = %9188, %9181
  %9211 = load i32, ptr %197, align 4, !tbaa !5
  %9212 = call ptr @__errno_location() #12
  store i32 %9211, ptr %9212, align 4, !tbaa !5
  %9213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9214 = load i32, ptr @test_count, align 4, !tbaa !5
  %9215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9216 = load i32, ptr %9215, align 4, !tbaa !5
  %9217 = call ptr @s2n_strerror(i32 noundef %9216, ptr noundef @.str.4)
  %9218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9219 = load i32, ptr %9218, align 4, !tbaa !5
  %9220 = call ptr @s2n_strerror_debug(i32 noundef %9219, ptr noundef @.str.4)
  %9221 = call ptr @__errno_location() #12
  %9222 = load i32, ptr %9221, align 4, !tbaa !5
  %9223 = call ptr @strerror(i32 noundef %9222) #11
  %9224 = call ptr @__errno_location() #12
  %9225 = load i32, ptr %9224, align 4, !tbaa !5
  %9226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9213, ptr noundef @.str.5, i32 noundef %9214, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 483, ptr noundef %9217, ptr noundef %9220, ptr noundef %9223, i32 noundef %9225) #11
  br label %9227

9227:                                             ; preds = %9210, %9193
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %9228

9228:                                             ; preds = %9227
  br label %9229

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

9230:                                             ; No predecessors!
  br label %9231

9231:                                             ; preds = %9230
  br label %9232

9232:                                             ; preds = %9231, %9174
  br label %9233

9233:                                             ; preds = %9232
  br label %9234

9234:                                             ; preds = %9233
  br label %9235

9235:                                             ; preds = %9234
  %9236 = load i32, ptr @test_count, align 4, !tbaa !5
  %9237 = add nsw i32 %9236, 1
  store i32 %9237, ptr @test_count, align 4, !tbaa !5
  %9238 = load ptr, ptr %196, align 8, !tbaa !9
  %9239 = load ptr, ptr %191, align 8, !tbaa !9
  %9240 = call i32 @s2n_connection_set_config(ptr noundef %9238, ptr noundef %9239)
  %9241 = icmp eq i32 %9240, -1
  br i1 %9241, label %9242, label %9295

9242:                                             ; preds = %9235
  br label %9243

9243:                                             ; preds = %9242
  br label %9244

9244:                                             ; preds = %9243
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %9245 = call ptr @__errno_location() #12
  %9246 = load i32, ptr %9245, align 4, !tbaa !5
  store i32 %9246, ptr %198, align 4, !tbaa !5
  %9247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9248 = call i32 @s2n_print_stacktrace(ptr noundef %9247)
  %9249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9250 = trunc i8 %9249 to i1
  br i1 %9250, label %9251, label %9273

9251:                                             ; preds = %9244
  %9252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9253 = call i32 @fileno(ptr noundef %9252) #11
  %9254 = call i32 @isatty(i32 noundef %9253) #11
  %9255 = icmp ne i32 %9254, 0
  br i1 %9255, label %9256, label %9273

9256:                                             ; preds = %9251
  %9257 = load i32, ptr %198, align 4, !tbaa !5
  %9258 = call ptr @__errno_location() #12
  store i32 %9257, ptr %9258, align 4, !tbaa !5
  %9259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9260 = load i32, ptr @test_count, align 4, !tbaa !5
  %9261 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9262 = load i32, ptr %9261, align 4, !tbaa !5
  %9263 = call ptr @s2n_strerror(i32 noundef %9262, ptr noundef @.str.4)
  %9264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9265 = load i32, ptr %9264, align 4, !tbaa !5
  %9266 = call ptr @s2n_strerror_debug(i32 noundef %9265, ptr noundef @.str.4)
  %9267 = call ptr @__errno_location() #12
  %9268 = load i32, ptr %9267, align 4, !tbaa !5
  %9269 = call ptr @strerror(i32 noundef %9268) #11
  %9270 = call ptr @__errno_location() #12
  %9271 = load i32, ptr %9270, align 4, !tbaa !5
  %9272 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9259, ptr noundef @.str.2, i32 noundef %9260, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 484, ptr noundef %9263, ptr noundef %9266, ptr noundef %9269, i32 noundef %9271) #11
  br label %9290

9273:                                             ; preds = %9251, %9244
  %9274 = load i32, ptr %198, align 4, !tbaa !5
  %9275 = call ptr @__errno_location() #12
  store i32 %9274, ptr %9275, align 4, !tbaa !5
  %9276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9277 = load i32, ptr @test_count, align 4, !tbaa !5
  %9278 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9279 = load i32, ptr %9278, align 4, !tbaa !5
  %9280 = call ptr @s2n_strerror(i32 noundef %9279, ptr noundef @.str.4)
  %9281 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9282 = load i32, ptr %9281, align 4, !tbaa !5
  %9283 = call ptr @s2n_strerror_debug(i32 noundef %9282, ptr noundef @.str.4)
  %9284 = call ptr @__errno_location() #12
  %9285 = load i32, ptr %9284, align 4, !tbaa !5
  %9286 = call ptr @strerror(i32 noundef %9285) #11
  %9287 = call ptr @__errno_location() #12
  %9288 = load i32, ptr %9287, align 4, !tbaa !5
  %9289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9276, ptr noundef @.str.5, i32 noundef %9277, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 484, ptr noundef %9280, ptr noundef %9283, ptr noundef %9286, i32 noundef %9288) #11
  br label %9290

9290:                                             ; preds = %9273, %9256
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %9291

9291:                                             ; preds = %9290
  br label %9292

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

9293:                                             ; No predecessors!
  br label %9294

9294:                                             ; preds = %9293
  br label %9295

9295:                                             ; preds = %9294, %9235
  br label %9296

9296:                                             ; preds = %9295
  br label %9297

9297:                                             ; preds = %9296
  call void @llvm.lifetime.start.p0(i64 8, ptr %199) #11
  %9298 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %9298, ptr %199, align 8, !tbaa !9
  br label %9299

9299:                                             ; preds = %9297
  %9300 = load i32, ptr @test_count, align 4, !tbaa !5
  %9301 = add nsw i32 %9300, 1
  store i32 %9301, ptr @test_count, align 4, !tbaa !5
  %9302 = load ptr, ptr %199, align 8, !tbaa !9
  %9303 = icmp eq ptr %9302, null
  br i1 %9303, label %9304, label %9357

9304:                                             ; preds = %9299
  br label %9305

9305:                                             ; preds = %9304
  br label %9306

9306:                                             ; preds = %9305
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %9307 = call ptr @__errno_location() #12
  %9308 = load i32, ptr %9307, align 4, !tbaa !5
  store i32 %9308, ptr %200, align 4, !tbaa !5
  %9309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9310 = call i32 @s2n_print_stacktrace(ptr noundef %9309)
  %9311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9312 = trunc i8 %9311 to i1
  br i1 %9312, label %9313, label %9335

9313:                                             ; preds = %9306
  %9314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9315 = call i32 @fileno(ptr noundef %9314) #11
  %9316 = call i32 @isatty(i32 noundef %9315) #11
  %9317 = icmp ne i32 %9316, 0
  br i1 %9317, label %9318, label %9335

9318:                                             ; preds = %9313
  %9319 = load i32, ptr %200, align 4, !tbaa !5
  %9320 = call ptr @__errno_location() #12
  store i32 %9319, ptr %9320, align 4, !tbaa !5
  %9321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9322 = load i32, ptr @test_count, align 4, !tbaa !5
  %9323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9324 = load i32, ptr %9323, align 4, !tbaa !5
  %9325 = call ptr @s2n_strerror(i32 noundef %9324, ptr noundef @.str.4)
  %9326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9327 = load i32, ptr %9326, align 4, !tbaa !5
  %9328 = call ptr @s2n_strerror_debug(i32 noundef %9327, ptr noundef @.str.4)
  %9329 = call ptr @__errno_location() #12
  %9330 = load i32, ptr %9329, align 4, !tbaa !5
  %9331 = call ptr @strerror(i32 noundef %9330) #11
  %9332 = call ptr @__errno_location() #12
  %9333 = load i32, ptr %9332, align 4, !tbaa !5
  %9334 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9321, ptr noundef @.str.2, i32 noundef %9322, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 487, ptr noundef %9325, ptr noundef %9328, ptr noundef %9331, i32 noundef %9333) #11
  br label %9352

9335:                                             ; preds = %9313, %9306
  %9336 = load i32, ptr %200, align 4, !tbaa !5
  %9337 = call ptr @__errno_location() #12
  store i32 %9336, ptr %9337, align 4, !tbaa !5
  %9338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9339 = load i32, ptr @test_count, align 4, !tbaa !5
  %9340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9341 = load i32, ptr %9340, align 4, !tbaa !5
  %9342 = call ptr @s2n_strerror(i32 noundef %9341, ptr noundef @.str.4)
  %9343 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9344 = load i32, ptr %9343, align 4, !tbaa !5
  %9345 = call ptr @s2n_strerror_debug(i32 noundef %9344, ptr noundef @.str.4)
  %9346 = call ptr @__errno_location() #12
  %9347 = load i32, ptr %9346, align 4, !tbaa !5
  %9348 = call ptr @strerror(i32 noundef %9347) #11
  %9349 = call ptr @__errno_location() #12
  %9350 = load i32, ptr %9349, align 4, !tbaa !5
  %9351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9338, ptr noundef @.str.5, i32 noundef %9339, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 487, ptr noundef %9342, ptr noundef %9345, ptr noundef %9348, i32 noundef %9350) #11
  br label %9352

9352:                                             ; preds = %9335, %9318
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %9353

9353:                                             ; preds = %9352
  br label %9354

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

9355:                                             ; No predecessors!
  br label %9356

9356:                                             ; preds = %9355
  br label %9357

9357:                                             ; preds = %9356, %9299
  br label %9358

9358:                                             ; preds = %9357
  br label %9359

9359:                                             ; preds = %9358
  br label %9360

9360:                                             ; preds = %9359
  %9361 = load i32, ptr @test_count, align 4, !tbaa !5
  %9362 = add nsw i32 %9361, 1
  store i32 %9362, ptr @test_count, align 4, !tbaa !5
  %9363 = load ptr, ptr %199, align 8, !tbaa !9
  %9364 = load ptr, ptr %191, align 8, !tbaa !9
  %9365 = call i32 @s2n_connection_set_config(ptr noundef %9363, ptr noundef %9364)
  %9366 = icmp eq i32 %9365, -1
  br i1 %9366, label %9367, label %9420

9367:                                             ; preds = %9360
  br label %9368

9368:                                             ; preds = %9367
  br label %9369

9369:                                             ; preds = %9368
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %9370 = call ptr @__errno_location() #12
  %9371 = load i32, ptr %9370, align 4, !tbaa !5
  store i32 %9371, ptr %201, align 4, !tbaa !5
  %9372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9373 = call i32 @s2n_print_stacktrace(ptr noundef %9372)
  %9374 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9375 = trunc i8 %9374 to i1
  br i1 %9375, label %9376, label %9398

9376:                                             ; preds = %9369
  %9377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9378 = call i32 @fileno(ptr noundef %9377) #11
  %9379 = call i32 @isatty(i32 noundef %9378) #11
  %9380 = icmp ne i32 %9379, 0
  br i1 %9380, label %9381, label %9398

9381:                                             ; preds = %9376
  %9382 = load i32, ptr %201, align 4, !tbaa !5
  %9383 = call ptr @__errno_location() #12
  store i32 %9382, ptr %9383, align 4, !tbaa !5
  %9384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9385 = load i32, ptr @test_count, align 4, !tbaa !5
  %9386 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call ptr @s2n_strerror(i32 noundef %9387, ptr noundef @.str.4)
  %9389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9390 = load i32, ptr %9389, align 4, !tbaa !5
  %9391 = call ptr @s2n_strerror_debug(i32 noundef %9390, ptr noundef @.str.4)
  %9392 = call ptr @__errno_location() #12
  %9393 = load i32, ptr %9392, align 4, !tbaa !5
  %9394 = call ptr @strerror(i32 noundef %9393) #11
  %9395 = call ptr @__errno_location() #12
  %9396 = load i32, ptr %9395, align 4, !tbaa !5
  %9397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9384, ptr noundef @.str.2, i32 noundef %9385, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 488, ptr noundef %9388, ptr noundef %9391, ptr noundef %9394, i32 noundef %9396) #11
  br label %9415

9398:                                             ; preds = %9376, %9369
  %9399 = load i32, ptr %201, align 4, !tbaa !5
  %9400 = call ptr @__errno_location() #12
  store i32 %9399, ptr %9400, align 4, !tbaa !5
  %9401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9402 = load i32, ptr @test_count, align 4, !tbaa !5
  %9403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9404 = load i32, ptr %9403, align 4, !tbaa !5
  %9405 = call ptr @s2n_strerror(i32 noundef %9404, ptr noundef @.str.4)
  %9406 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9407 = load i32, ptr %9406, align 4, !tbaa !5
  %9408 = call ptr @s2n_strerror_debug(i32 noundef %9407, ptr noundef @.str.4)
  %9409 = call ptr @__errno_location() #12
  %9410 = load i32, ptr %9409, align 4, !tbaa !5
  %9411 = call ptr @strerror(i32 noundef %9410) #11
  %9412 = call ptr @__errno_location() #12
  %9413 = load i32, ptr %9412, align 4, !tbaa !5
  %9414 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9401, ptr noundef @.str.5, i32 noundef %9402, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 488, ptr noundef %9405, ptr noundef %9408, ptr noundef %9411, i32 noundef %9413) #11
  br label %9415

9415:                                             ; preds = %9398, %9381
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %9416

9416:                                             ; preds = %9415
  br label %9417

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

9418:                                             ; No predecessors!
  br label %9419

9419:                                             ; preds = %9418
  br label %9420

9420:                                             ; preds = %9419, %9360
  br label %9421

9421:                                             ; preds = %9420
  br label %9422

9422:                                             ; preds = %9421
  call void @llvm.lifetime.start.p0(i64 8, ptr %202) #11
  call void @llvm.memset.p0.i64(ptr align 4 %202, i8 0, i64 8, i1 false)
  br label %9423

9423:                                             ; preds = %9422
  %9424 = load i32, ptr @test_count, align 4, !tbaa !5
  %9425 = add nsw i32 %9424, 1
  store i32 %9425, ptr @test_count, align 4, !tbaa !5
  %9426 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %202)
  %9427 = icmp eq i32 %9426, -1
  br i1 %9427, label %9428, label %9481

9428:                                             ; preds = %9423
  br label %9429

9429:                                             ; preds = %9428
  br label %9430

9430:                                             ; preds = %9429
  call void @llvm.lifetime.start.p0(i64 4, ptr %203) #11
  %9431 = call ptr @__errno_location() #12
  %9432 = load i32, ptr %9431, align 4, !tbaa !5
  store i32 %9432, ptr %203, align 4, !tbaa !5
  %9433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9434 = call i32 @s2n_print_stacktrace(ptr noundef %9433)
  %9435 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9436 = trunc i8 %9435 to i1
  br i1 %9436, label %9437, label %9459

9437:                                             ; preds = %9430
  %9438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9439 = call i32 @fileno(ptr noundef %9438) #11
  %9440 = call i32 @isatty(i32 noundef %9439) #11
  %9441 = icmp ne i32 %9440, 0
  br i1 %9441, label %9442, label %9459

9442:                                             ; preds = %9437
  %9443 = load i32, ptr %203, align 4, !tbaa !5
  %9444 = call ptr @__errno_location() #12
  store i32 %9443, ptr %9444, align 4, !tbaa !5
  %9445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9446 = load i32, ptr @test_count, align 4, !tbaa !5
  %9447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9448 = load i32, ptr %9447, align 4, !tbaa !5
  %9449 = call ptr @s2n_strerror(i32 noundef %9448, ptr noundef @.str.4)
  %9450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9451 = load i32, ptr %9450, align 4, !tbaa !5
  %9452 = call ptr @s2n_strerror_debug(i32 noundef %9451, ptr noundef @.str.4)
  %9453 = call ptr @__errno_location() #12
  %9454 = load i32, ptr %9453, align 4, !tbaa !5
  %9455 = call ptr @strerror(i32 noundef %9454) #11
  %9456 = call ptr @__errno_location() #12
  %9457 = load i32, ptr %9456, align 4, !tbaa !5
  %9458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9445, ptr noundef @.str.2, i32 noundef %9446, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 491, ptr noundef %9449, ptr noundef %9452, ptr noundef %9455, i32 noundef %9457) #11
  br label %9476

9459:                                             ; preds = %9437, %9430
  %9460 = load i32, ptr %203, align 4, !tbaa !5
  %9461 = call ptr @__errno_location() #12
  store i32 %9460, ptr %9461, align 4, !tbaa !5
  %9462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9463 = load i32, ptr @test_count, align 4, !tbaa !5
  %9464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9465 = load i32, ptr %9464, align 4, !tbaa !5
  %9466 = call ptr @s2n_strerror(i32 noundef %9465, ptr noundef @.str.4)
  %9467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9468 = load i32, ptr %9467, align 4, !tbaa !5
  %9469 = call ptr @s2n_strerror_debug(i32 noundef %9468, ptr noundef @.str.4)
  %9470 = call ptr @__errno_location() #12
  %9471 = load i32, ptr %9470, align 4, !tbaa !5
  %9472 = call ptr @strerror(i32 noundef %9471) #11
  %9473 = call ptr @__errno_location() #12
  %9474 = load i32, ptr %9473, align 4, !tbaa !5
  %9475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9462, ptr noundef @.str.5, i32 noundef %9463, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 491, ptr noundef %9466, ptr noundef %9469, ptr noundef %9472, i32 noundef %9474) #11
  br label %9476

9476:                                             ; preds = %9459, %9442
  call void @llvm.lifetime.end.p0(i64 4, ptr %203) #11
  br label %9477

9477:                                             ; preds = %9476
  br label %9478

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

9479:                                             ; No predecessors!
  br label %9480

9480:                                             ; preds = %9479
  br label %9481

9481:                                             ; preds = %9480, %9423
  br label %9482

9482:                                             ; preds = %9481
  br label %9483

9483:                                             ; preds = %9482
  br label %9484

9484:                                             ; preds = %9483
  %9485 = load i32, ptr @test_count, align 4, !tbaa !5
  %9486 = add nsw i32 %9485, 1
  store i32 %9486, ptr @test_count, align 4, !tbaa !5
  %9487 = load ptr, ptr %196, align 8, !tbaa !9
  %9488 = load ptr, ptr %199, align 8, !tbaa !9
  %9489 = call i32 @s2n_connections_set_io_pair(ptr noundef %9487, ptr noundef %9488, ptr noundef %202)
  %9490 = icmp eq i32 %9489, -1
  br i1 %9490, label %9491, label %9544

9491:                                             ; preds = %9484
  br label %9492

9492:                                             ; preds = %9491
  br label %9493

9493:                                             ; preds = %9492
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %9494 = call ptr @__errno_location() #12
  %9495 = load i32, ptr %9494, align 4, !tbaa !5
  store i32 %9495, ptr %204, align 4, !tbaa !5
  %9496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9497 = call i32 @s2n_print_stacktrace(ptr noundef %9496)
  %9498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9499 = trunc i8 %9498 to i1
  br i1 %9499, label %9500, label %9522

9500:                                             ; preds = %9493
  %9501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9502 = call i32 @fileno(ptr noundef %9501) #11
  %9503 = call i32 @isatty(i32 noundef %9502) #11
  %9504 = icmp ne i32 %9503, 0
  br i1 %9504, label %9505, label %9522

9505:                                             ; preds = %9500
  %9506 = load i32, ptr %204, align 4, !tbaa !5
  %9507 = call ptr @__errno_location() #12
  store i32 %9506, ptr %9507, align 4, !tbaa !5
  %9508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9509 = load i32, ptr @test_count, align 4, !tbaa !5
  %9510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9511 = load i32, ptr %9510, align 4, !tbaa !5
  %9512 = call ptr @s2n_strerror(i32 noundef %9511, ptr noundef @.str.4)
  %9513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9514 = load i32, ptr %9513, align 4, !tbaa !5
  %9515 = call ptr @s2n_strerror_debug(i32 noundef %9514, ptr noundef @.str.4)
  %9516 = call ptr @__errno_location() #12
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call ptr @strerror(i32 noundef %9517) #11
  %9519 = call ptr @__errno_location() #12
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9508, ptr noundef @.str.2, i32 noundef %9509, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9512, ptr noundef %9515, ptr noundef %9518, i32 noundef %9520) #11
  br label %9539

9522:                                             ; preds = %9500, %9493
  %9523 = load i32, ptr %204, align 4, !tbaa !5
  %9524 = call ptr @__errno_location() #12
  store i32 %9523, ptr %9524, align 4, !tbaa !5
  %9525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9526 = load i32, ptr @test_count, align 4, !tbaa !5
  %9527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9528 = load i32, ptr %9527, align 4, !tbaa !5
  %9529 = call ptr @s2n_strerror(i32 noundef %9528, ptr noundef @.str.4)
  %9530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9531 = load i32, ptr %9530, align 4, !tbaa !5
  %9532 = call ptr @s2n_strerror_debug(i32 noundef %9531, ptr noundef @.str.4)
  %9533 = call ptr @__errno_location() #12
  %9534 = load i32, ptr %9533, align 4, !tbaa !5
  %9535 = call ptr @strerror(i32 noundef %9534) #11
  %9536 = call ptr @__errno_location() #12
  %9537 = load i32, ptr %9536, align 4, !tbaa !5
  %9538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9525, ptr noundef @.str.5, i32 noundef %9526, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 492, ptr noundef %9529, ptr noundef %9532, ptr noundef %9535, i32 noundef %9537) #11
  br label %9539

9539:                                             ; preds = %9522, %9505
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %9540

9540:                                             ; preds = %9539
  br label %9541

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

9542:                                             ; No predecessors!
  br label %9543

9543:                                             ; preds = %9542
  br label %9544

9544:                                             ; preds = %9543, %9484
  br label %9545

9545:                                             ; preds = %9544
  br label %9546

9546:                                             ; preds = %9545
  br label %9547

9547:                                             ; preds = %9546
  %9548 = load i32, ptr @test_count, align 4, !tbaa !5
  %9549 = add nsw i32 %9548, 1
  store i32 %9549, ptr @test_count, align 4, !tbaa !5
  %9550 = load ptr, ptr %199, align 8, !tbaa !9
  %9551 = load ptr, ptr %196, align 8, !tbaa !9
  %9552 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %9550, ptr noundef %9551, i32 noundef 1)
  %9553 = getelementptr inbounds %struct.s2n_result, ptr %205, i32 0, i32 0
  store i32 %9552, ptr %9553, align 4
  %9554 = getelementptr inbounds %struct.s2n_result, ptr %205, i32 0, i32 0
  %9555 = load i32, ptr %9554, align 4
  %9556 = call zeroext i1 @s2n_result_is_ok(i32 %9555)
  br i1 %9556, label %9610, label %9557

9557:                                             ; preds = %9547
  br label %9558

9558:                                             ; preds = %9557
  br label %9559

9559:                                             ; preds = %9558
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %9560 = call ptr @__errno_location() #12
  %9561 = load i32, ptr %9560, align 4, !tbaa !5
  store i32 %9561, ptr %206, align 4, !tbaa !5
  %9562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9563 = call i32 @s2n_print_stacktrace(ptr noundef %9562)
  %9564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9565 = trunc i8 %9564 to i1
  br i1 %9565, label %9566, label %9588

9566:                                             ; preds = %9559
  %9567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9568 = call i32 @fileno(ptr noundef %9567) #11
  %9569 = call i32 @isatty(i32 noundef %9568) #11
  %9570 = icmp ne i32 %9569, 0
  br i1 %9570, label %9571, label %9588

9571:                                             ; preds = %9566
  %9572 = load i32, ptr %206, 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.2, i32 noundef %9575, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 495, ptr noundef %9578, ptr noundef %9581, ptr noundef %9584, i32 noundef %9586) #11
  br label %9605

9588:                                             ; preds = %9566, %9559
  %9589 = load i32, ptr %206, align 4, !tbaa !5
  %9590 = call ptr @__errno_location() #12
  store i32 %9589, ptr %9590, align 4, !tbaa !5
  %9591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9592 = load i32, ptr @test_count, align 4, !tbaa !5
  %9593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9594 = load i32, ptr %9593, align 4, !tbaa !5
  %9595 = call ptr @s2n_strerror(i32 noundef %9594, ptr noundef @.str.4)
  %9596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9597 = load i32, ptr %9596, align 4, !tbaa !5
  %9598 = call ptr @s2n_strerror_debug(i32 noundef %9597, ptr noundef @.str.4)
  %9599 = call ptr @__errno_location() #12
  %9600 = load i32, ptr %9599, align 4, !tbaa !5
  %9601 = call ptr @strerror(i32 noundef %9600) #11
  %9602 = call ptr @__errno_location() #12
  %9603 = load i32, ptr %9602, align 4, !tbaa !5
  %9604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9591, ptr noundef @.str.5, i32 noundef %9592, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 495, ptr noundef %9595, ptr noundef %9598, ptr noundef %9601, i32 noundef %9603) #11
  br label %9605

9605:                                             ; preds = %9588, %9571
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %9606

9606:                                             ; preds = %9605
  br label %9607

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

9608:                                             ; No predecessors!
  br label %9609

9609:                                             ; preds = %9608
  br label %9610

9610:                                             ; preds = %9609, %9547
  br label %9611

9611:                                             ; preds = %9610
  br label %9612

9612:                                             ; preds = %9611
  br label %9613

9613:                                             ; preds = %9612
  %9614 = load i32, ptr @test_count, align 4, !tbaa !5
  %9615 = add nsw i32 %9614, 1
  store i32 %9615, ptr @test_count, align 4, !tbaa !5
  %9616 = load ptr, ptr %196, align 8, !tbaa !9
  %9617 = getelementptr inbounds %struct.s2n_connection, ptr %9616, i32 0, i32 10
  %9618 = load i16, ptr %195, align 2, !tbaa !42
  %9619 = zext i16 %9618 to i32
  %9620 = ashr i32 %9619, 3
  %9621 = sext i32 %9620 to i64
  %9622 = getelementptr inbounds [22 x i8], ptr %9617, i64 0, i64 %9621
  %9623 = load i8, ptr %9622, align 1, !tbaa !43
  %9624 = sext i8 %9623 to i32
  %9625 = load i16, ptr %195, align 2, !tbaa !42
  %9626 = zext i16 %9625 to i32
  %9627 = srem i32 %9626, 8
  %9628 = shl i32 1, %9627
  %9629 = and i32 %9624, %9628
  %9630 = icmp ne i32 %9629, 0
  br i1 %9630, label %9684, label %9631

9631:                                             ; preds = %9613
  br label %9632

9632:                                             ; preds = %9631
  br label %9633

9633:                                             ; preds = %9632
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %9634 = call ptr @__errno_location() #12
  %9635 = load i32, ptr %9634, align 4, !tbaa !5
  store i32 %9635, ptr %207, align 4, !tbaa !5
  %9636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9637 = call i32 @s2n_print_stacktrace(ptr noundef %9636)
  %9638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9639 = trunc i8 %9638 to i1
  br i1 %9639, label %9640, label %9662

9640:                                             ; preds = %9633
  %9641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9642 = call i32 @fileno(ptr noundef %9641) #11
  %9643 = call i32 @isatty(i32 noundef %9642) #11
  %9644 = icmp ne i32 %9643, 0
  br i1 %9644, label %9645, label %9662

9645:                                             ; preds = %9640
  %9646 = load i32, ptr %207, align 4, !tbaa !5
  %9647 = call ptr @__errno_location() #12
  store i32 %9646, ptr %9647, align 4, !tbaa !5
  %9648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9649 = load i32, ptr @test_count, align 4, !tbaa !5
  %9650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9651 = load i32, ptr %9650, align 4, !tbaa !5
  %9652 = call ptr @s2n_strerror(i32 noundef %9651, ptr noundef @.str.4)
  %9653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9654 = load i32, ptr %9653, align 4, !tbaa !5
  %9655 = call ptr @s2n_strerror_debug(i32 noundef %9654, ptr noundef @.str.4)
  %9656 = call ptr @__errno_location() #12
  %9657 = load i32, ptr %9656, align 4, !tbaa !5
  %9658 = call ptr @strerror(i32 noundef %9657) #11
  %9659 = call ptr @__errno_location() #12
  %9660 = load i32, ptr %9659, align 4, !tbaa !5
  %9661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9648, ptr noundef @.str.2, i32 noundef %9649, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9652, ptr noundef %9655, ptr noundef %9658, i32 noundef %9660) #11
  br label %9679

9662:                                             ; preds = %9640, %9633
  %9663 = load i32, ptr %207, align 4, !tbaa !5
  %9664 = call ptr @__errno_location() #12
  store i32 %9663, ptr %9664, align 4, !tbaa !5
  %9665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9666 = load i32, ptr @test_count, align 4, !tbaa !5
  %9667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9668 = load i32, ptr %9667, align 4, !tbaa !5
  %9669 = call ptr @s2n_strerror(i32 noundef %9668, ptr noundef @.str.4)
  %9670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9671 = load i32, ptr %9670, align 4, !tbaa !5
  %9672 = call ptr @s2n_strerror_debug(i32 noundef %9671, ptr noundef @.str.4)
  %9673 = call ptr @__errno_location() #12
  %9674 = load i32, ptr %9673, align 4, !tbaa !5
  %9675 = call ptr @strerror(i32 noundef %9674) #11
  %9676 = call ptr @__errno_location() #12
  %9677 = load i32, ptr %9676, align 4, !tbaa !5
  %9678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9665, ptr noundef @.str.5, i32 noundef %9666, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 496, ptr noundef %9669, ptr noundef %9672, ptr noundef %9675, i32 noundef %9677) #11
  br label %9679

9679:                                             ; preds = %9662, %9645
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %9680

9680:                                             ; preds = %9679
  br label %9681

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

9682:                                             ; No predecessors!
  br label %9683

9683:                                             ; preds = %9682
  br label %9684

9684:                                             ; preds = %9683, %9613
  br label %9685

9685:                                             ; preds = %9684
  br label %9686

9686:                                             ; preds = %9685
  br label %9687

9687:                                             ; preds = %9686
  %9688 = load i32, ptr @test_count, align 4, !tbaa !5
  %9689 = add nsw i32 %9688, 1
  store i32 %9689, ptr @test_count, align 4, !tbaa !5
  %9690 = load ptr, ptr %199, align 8, !tbaa !9
  %9691 = getelementptr inbounds %struct.s2n_connection, ptr %9690, i32 0, i32 11
  %9692 = load i16, ptr %195, align 2, !tbaa !42
  %9693 = zext i16 %9692 to i32
  %9694 = ashr i32 %9693, 3
  %9695 = sext i32 %9694 to i64
  %9696 = getelementptr inbounds [22 x i8], ptr %9691, i64 0, i64 %9695
  %9697 = load i8, ptr %9696, align 1, !tbaa !43
  %9698 = sext i8 %9697 to i32
  %9699 = load i16, ptr %195, align 2, !tbaa !42
  %9700 = zext i16 %9699 to i32
  %9701 = srem i32 %9700, 8
  %9702 = shl i32 1, %9701
  %9703 = and i32 %9698, %9702
  %9704 = icmp ne i32 %9703, 0
  br i1 %9704, label %9758, label %9705

9705:                                             ; preds = %9687
  br label %9706

9706:                                             ; preds = %9705
  br label %9707

9707:                                             ; preds = %9706
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %9708 = call ptr @__errno_location() #12
  %9709 = load i32, ptr %9708, align 4, !tbaa !5
  store i32 %9709, ptr %208, align 4, !tbaa !5
  %9710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9711 = call i32 @s2n_print_stacktrace(ptr noundef %9710)
  %9712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9713 = trunc i8 %9712 to i1
  br i1 %9713, label %9714, label %9736

9714:                                             ; preds = %9707
  %9715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9716 = call i32 @fileno(ptr noundef %9715) #11
  %9717 = call i32 @isatty(i32 noundef %9716) #11
  %9718 = icmp ne i32 %9717, 0
  br i1 %9718, label %9719, label %9736

9719:                                             ; preds = %9714
  %9720 = load i32, ptr %208, align 4, !tbaa !5
  %9721 = call ptr @__errno_location() #12
  store i32 %9720, ptr %9721, align 4, !tbaa !5
  %9722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9723 = load i32, ptr @test_count, align 4, !tbaa !5
  %9724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9725 = load i32, ptr %9724, align 4, !tbaa !5
  %9726 = call ptr @s2n_strerror(i32 noundef %9725, ptr noundef @.str.4)
  %9727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9728 = load i32, ptr %9727, align 4, !tbaa !5
  %9729 = call ptr @s2n_strerror_debug(i32 noundef %9728, ptr noundef @.str.4)
  %9730 = call ptr @__errno_location() #12
  %9731 = load i32, ptr %9730, align 4, !tbaa !5
  %9732 = call ptr @strerror(i32 noundef %9731) #11
  %9733 = call ptr @__errno_location() #12
  %9734 = load i32, ptr %9733, align 4, !tbaa !5
  %9735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9722, ptr noundef @.str.2, i32 noundef %9723, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 497, ptr noundef %9726, ptr noundef %9729, ptr noundef %9732, i32 noundef %9734) #11
  br label %9753

9736:                                             ; preds = %9714, %9707
  %9737 = load i32, ptr %208, align 4, !tbaa !5
  %9738 = call ptr @__errno_location() #12
  store i32 %9737, ptr %9738, align 4, !tbaa !5
  %9739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9740 = load i32, ptr @test_count, align 4, !tbaa !5
  %9741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9742 = load i32, ptr %9741, align 4, !tbaa !5
  %9743 = call ptr @s2n_strerror(i32 noundef %9742, ptr noundef @.str.4)
  %9744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9745 = load i32, ptr %9744, align 4, !tbaa !5
  %9746 = call ptr @s2n_strerror_debug(i32 noundef %9745, ptr noundef @.str.4)
  %9747 = call ptr @__errno_location() #12
  %9748 = load i32, ptr %9747, align 4, !tbaa !5
  %9749 = call ptr @strerror(i32 noundef %9748) #11
  %9750 = call ptr @__errno_location() #12
  %9751 = load i32, ptr %9750, align 4, !tbaa !5
  %9752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9739, ptr noundef @.str.5, i32 noundef %9740, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 497, ptr noundef %9743, ptr noundef %9746, ptr noundef %9749, i32 noundef %9751) #11
  br label %9753

9753:                                             ; preds = %9736, %9719
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %9754

9754:                                             ; preds = %9753
  br label %9755

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

9756:                                             ; No predecessors!
  br label %9757

9757:                                             ; preds = %9756
  br label %9758

9758:                                             ; preds = %9757, %9687
  br label %9759

9759:                                             ; preds = %9758
  br label %9760

9760:                                             ; preds = %9759
  br label %9761

9761:                                             ; preds = %9760
  %9762 = load i32, ptr @test_count, align 4, !tbaa !5
  %9763 = add nsw i32 %9762, 1
  store i32 %9763, ptr @test_count, align 4, !tbaa !5
  %9764 = load ptr, ptr %199, align 8, !tbaa !9
  %9765 = load ptr, ptr %196, align 8, !tbaa !9
  %9766 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %9764, ptr noundef %9765, i32 noundef 16)
  %9767 = getelementptr inbounds %struct.s2n_result, ptr %209, i32 0, i32 0
  store i32 %9766, ptr %9767, align 4
  %9768 = getelementptr inbounds %struct.s2n_result, ptr %209, i32 0, i32 0
  %9769 = load i32, ptr %9768, align 4
  %9770 = call zeroext i1 @s2n_result_is_ok(i32 %9769)
  br i1 %9770, label %9824, label %9771

9771:                                             ; preds = %9761
  br label %9772

9772:                                             ; preds = %9771
  br label %9773

9773:                                             ; preds = %9772
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %9774 = call ptr @__errno_location() #12
  %9775 = load i32, ptr %9774, align 4, !tbaa !5
  store i32 %9775, ptr %210, align 4, !tbaa !5
  %9776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9777 = call i32 @s2n_print_stacktrace(ptr noundef %9776)
  %9778 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9779 = trunc i8 %9778 to i1
  br i1 %9779, label %9780, label %9802

9780:                                             ; preds = %9773
  %9781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9782 = call i32 @fileno(ptr noundef %9781) #11
  %9783 = call i32 @isatty(i32 noundef %9782) #11
  %9784 = icmp ne i32 %9783, 0
  br i1 %9784, label %9785, label %9802

9785:                                             ; preds = %9780
  %9786 = load i32, ptr %210, align 4, !tbaa !5
  %9787 = call ptr @__errno_location() #12
  store i32 %9786, ptr %9787, align 4, !tbaa !5
  %9788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9789 = load i32, ptr @test_count, align 4, !tbaa !5
  %9790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9791 = load i32, ptr %9790, align 4, !tbaa !5
  %9792 = call ptr @s2n_strerror(i32 noundef %9791, ptr noundef @.str.4)
  %9793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9794 = load i32, ptr %9793, align 4, !tbaa !5
  %9795 = call ptr @s2n_strerror_debug(i32 noundef %9794, ptr noundef @.str.4)
  %9796 = call ptr @__errno_location() #12
  %9797 = load i32, ptr %9796, align 4, !tbaa !5
  %9798 = call ptr @strerror(i32 noundef %9797) #11
  %9799 = call ptr @__errno_location() #12
  %9800 = load i32, ptr %9799, align 4, !tbaa !5
  %9801 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9788, ptr noundef @.str.2, i32 noundef %9789, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 500, ptr noundef %9792, ptr noundef %9795, ptr noundef %9798, i32 noundef %9800) #11
  br label %9819

9802:                                             ; preds = %9780, %9773
  %9803 = load i32, ptr %210, align 4, !tbaa !5
  %9804 = call ptr @__errno_location() #12
  store i32 %9803, ptr %9804, align 4, !tbaa !5
  %9805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9806 = load i32, ptr @test_count, align 4, !tbaa !5
  %9807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9808 = load i32, ptr %9807, align 4, !tbaa !5
  %9809 = call ptr @s2n_strerror(i32 noundef %9808, ptr noundef @.str.4)
  %9810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9811 = load i32, ptr %9810, align 4, !tbaa !5
  %9812 = call ptr @s2n_strerror_debug(i32 noundef %9811, ptr noundef @.str.4)
  %9813 = call ptr @__errno_location() #12
  %9814 = load i32, ptr %9813, align 4, !tbaa !5
  %9815 = call ptr @strerror(i32 noundef %9814) #11
  %9816 = call ptr @__errno_location() #12
  %9817 = load i32, ptr %9816, align 4, !tbaa !5
  %9818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9805, ptr noundef @.str.5, i32 noundef %9806, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 500, ptr noundef %9809, ptr noundef %9812, ptr noundef %9815, i32 noundef %9817) #11
  br label %9819

9819:                                             ; preds = %9802, %9785
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %9820

9820:                                             ; preds = %9819
  br label %9821

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

9822:                                             ; No predecessors!
  br label %9823

9823:                                             ; preds = %9822
  br label %9824

9824:                                             ; preds = %9823, %9761
  br label %9825

9825:                                             ; preds = %9824
  br label %9826

9826:                                             ; preds = %9825
  br label %9827

9827:                                             ; preds = %9826
  %9828 = load i32, ptr @test_count, align 4, !tbaa !5
  %9829 = add nsw i32 %9828, 1
  store i32 %9829, ptr @test_count, align 4, !tbaa !5
  %9830 = load ptr, ptr %196, align 8, !tbaa !9
  %9831 = getelementptr inbounds %struct.s2n_connection, ptr %9830, i32 0, i32 12
  %9832 = load i16, ptr %195, align 2, !tbaa !42
  %9833 = zext i16 %9832 to i32
  %9834 = ashr i32 %9833, 3
  %9835 = sext i32 %9834 to i64
  %9836 = getelementptr inbounds [22 x i8], ptr %9831, i64 0, i64 %9835
  %9837 = load i8, ptr %9836, align 1, !tbaa !43
  %9838 = sext i8 %9837 to i32
  %9839 = load i16, ptr %195, align 2, !tbaa !42
  %9840 = zext i16 %9839 to i32
  %9841 = srem i32 %9840, 8
  %9842 = shl i32 1, %9841
  %9843 = and i32 %9838, %9842
  %9844 = icmp ne i32 %9843, 0
  br i1 %9844, label %9898, label %9845

9845:                                             ; preds = %9827
  br label %9846

9846:                                             ; preds = %9845
  br label %9847

9847:                                             ; preds = %9846
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %9848 = call ptr @__errno_location() #12
  %9849 = load i32, ptr %9848, align 4, !tbaa !5
  store i32 %9849, ptr %211, align 4, !tbaa !5
  %9850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9851 = call i32 @s2n_print_stacktrace(ptr noundef %9850)
  %9852 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9853 = trunc i8 %9852 to i1
  br i1 %9853, label %9854, label %9876

9854:                                             ; preds = %9847
  %9855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9856 = call i32 @fileno(ptr noundef %9855) #11
  %9857 = call i32 @isatty(i32 noundef %9856) #11
  %9858 = icmp ne i32 %9857, 0
  br i1 %9858, label %9859, label %9876

9859:                                             ; preds = %9854
  %9860 = load i32, ptr %211, align 4, !tbaa !5
  %9861 = call ptr @__errno_location() #12
  store i32 %9860, ptr %9861, align 4, !tbaa !5
  %9862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9863 = load i32, ptr @test_count, align 4, !tbaa !5
  %9864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9865 = load i32, ptr %9864, align 4, !tbaa !5
  %9866 = call ptr @s2n_strerror(i32 noundef %9865, ptr noundef @.str.4)
  %9867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9868 = load i32, ptr %9867, align 4, !tbaa !5
  %9869 = call ptr @s2n_strerror_debug(i32 noundef %9868, ptr noundef @.str.4)
  %9870 = call ptr @__errno_location() #12
  %9871 = load i32, ptr %9870, align 4, !tbaa !5
  %9872 = call ptr @strerror(i32 noundef %9871) #11
  %9873 = call ptr @__errno_location() #12
  %9874 = load i32, ptr %9873, align 4, !tbaa !5
  %9875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9862, ptr noundef @.str.2, i32 noundef %9863, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 501, ptr noundef %9866, ptr noundef %9869, ptr noundef %9872, i32 noundef %9874) #11
  br label %9893

9876:                                             ; preds = %9854, %9847
  %9877 = load i32, ptr %211, align 4, !tbaa !5
  %9878 = call ptr @__errno_location() #12
  store i32 %9877, ptr %9878, align 4, !tbaa !5
  %9879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9880 = load i32, ptr @test_count, align 4, !tbaa !5
  %9881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9882 = load i32, ptr %9881, align 4, !tbaa !5
  %9883 = call ptr @s2n_strerror(i32 noundef %9882, ptr noundef @.str.4)
  %9884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9885 = load i32, ptr %9884, align 4, !tbaa !5
  %9886 = call ptr @s2n_strerror_debug(i32 noundef %9885, ptr noundef @.str.4)
  %9887 = call ptr @__errno_location() #12
  %9888 = load i32, ptr %9887, align 4, !tbaa !5
  %9889 = call ptr @strerror(i32 noundef %9888) #11
  %9890 = call ptr @__errno_location() #12
  %9891 = load i32, ptr %9890, align 4, !tbaa !5
  %9892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9879, ptr noundef @.str.5, i32 noundef %9880, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 501, ptr noundef %9883, ptr noundef %9886, ptr noundef %9889, i32 noundef %9891) #11
  br label %9893

9893:                                             ; preds = %9876, %9859
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %9894

9894:                                             ; preds = %9893
  br label %9895

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

9896:                                             ; No predecessors!
  br label %9897

9897:                                             ; preds = %9896
  br label %9898

9898:                                             ; preds = %9897, %9827
  br label %9899

9899:                                             ; preds = %9898
  br label %9900

9900:                                             ; preds = %9899
  br label %9901

9901:                                             ; preds = %9900
  %9902 = load i32, ptr @test_count, align 4, !tbaa !5
  %9903 = add nsw i32 %9902, 1
  store i32 %9903, ptr @test_count, align 4, !tbaa !5
  %9904 = load ptr, ptr %196, align 8, !tbaa !9
  %9905 = call i32 @s2n_connection_free(ptr noundef %9904)
  %9906 = icmp eq i32 %9905, -1
  br i1 %9906, label %9907, label %9960

9907:                                             ; preds = %9901
  br label %9908

9908:                                             ; preds = %9907
  br label %9909

9909:                                             ; preds = %9908
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %9910 = call ptr @__errno_location() #12
  %9911 = load i32, ptr %9910, align 4, !tbaa !5
  store i32 %9911, ptr %212, align 4, !tbaa !5
  %9912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9913 = call i32 @s2n_print_stacktrace(ptr noundef %9912)
  %9914 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9915 = trunc i8 %9914 to i1
  br i1 %9915, label %9916, label %9938

9916:                                             ; preds = %9909
  %9917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9918 = call i32 @fileno(ptr noundef %9917) #11
  %9919 = call i32 @isatty(i32 noundef %9918) #11
  %9920 = icmp ne i32 %9919, 0
  br i1 %9920, label %9921, label %9938

9921:                                             ; preds = %9916
  %9922 = load i32, ptr %212, align 4, !tbaa !5
  %9923 = call ptr @__errno_location() #12
  store i32 %9922, ptr %9923, align 4, !tbaa !5
  %9924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9925 = load i32, ptr @test_count, align 4, !tbaa !5
  %9926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9927 = load i32, ptr %9926, align 4, !tbaa !5
  %9928 = call ptr @s2n_strerror(i32 noundef %9927, ptr noundef @.str.4)
  %9929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9930 = load i32, ptr %9929, align 4, !tbaa !5
  %9931 = call ptr @s2n_strerror_debug(i32 noundef %9930, ptr noundef @.str.4)
  %9932 = call ptr @__errno_location() #12
  %9933 = load i32, ptr %9932, align 4, !tbaa !5
  %9934 = call ptr @strerror(i32 noundef %9933) #11
  %9935 = call ptr @__errno_location() #12
  %9936 = load i32, ptr %9935, align 4, !tbaa !5
  %9937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9924, ptr noundef @.str.2, i32 noundef %9925, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 503, ptr noundef %9928, ptr noundef %9931, ptr noundef %9934, i32 noundef %9936) #11
  br label %9955

9938:                                             ; preds = %9916, %9909
  %9939 = load i32, ptr %212, align 4, !tbaa !5
  %9940 = call ptr @__errno_location() #12
  store i32 %9939, ptr %9940, align 4, !tbaa !5
  %9941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9942 = load i32, ptr @test_count, align 4, !tbaa !5
  %9943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9944 = load i32, ptr %9943, align 4, !tbaa !5
  %9945 = call ptr @s2n_strerror(i32 noundef %9944, ptr noundef @.str.4)
  %9946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9947 = load i32, ptr %9946, align 4, !tbaa !5
  %9948 = call ptr @s2n_strerror_debug(i32 noundef %9947, ptr noundef @.str.4)
  %9949 = call ptr @__errno_location() #12
  %9950 = load i32, ptr %9949, align 4, !tbaa !5
  %9951 = call ptr @strerror(i32 noundef %9950) #11
  %9952 = call ptr @__errno_location() #12
  %9953 = load i32, ptr %9952, align 4, !tbaa !5
  %9954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9941, ptr noundef @.str.5, i32 noundef %9942, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 503, ptr noundef %9945, ptr noundef %9948, ptr noundef %9951, i32 noundef %9953) #11
  br label %9955

9955:                                             ; preds = %9938, %9921
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %9956

9956:                                             ; preds = %9955
  br label %9957

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

9958:                                             ; No predecessors!
  br label %9959

9959:                                             ; preds = %9958
  br label %9960

9960:                                             ; preds = %9959, %9901
  br label %9961

9961:                                             ; preds = %9960
  br label %9962

9962:                                             ; preds = %9961
  br label %9963

9963:                                             ; preds = %9962
  %9964 = load i32, ptr @test_count, align 4, !tbaa !5
  %9965 = add nsw i32 %9964, 1
  store i32 %9965, ptr @test_count, align 4, !tbaa !5
  %9966 = load ptr, ptr %199, align 8, !tbaa !9
  %9967 = call i32 @s2n_connection_free(ptr noundef %9966)
  %9968 = icmp eq i32 %9967, -1
  br i1 %9968, label %9969, label %10022

9969:                                             ; preds = %9963
  br label %9970

9970:                                             ; preds = %9969
  br label %9971

9971:                                             ; preds = %9970
  call void @llvm.lifetime.start.p0(i64 4, ptr %213) #11
  %9972 = call ptr @__errno_location() #12
  %9973 = load i32, ptr %9972, align 4, !tbaa !5
  store i32 %9973, ptr %213, align 4, !tbaa !5
  %9974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9975 = call i32 @s2n_print_stacktrace(ptr noundef %9974)
  %9976 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9977 = trunc i8 %9976 to i1
  br i1 %9977, label %9978, label %10000

9978:                                             ; preds = %9971
  %9979 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9980 = call i32 @fileno(ptr noundef %9979) #11
  %9981 = call i32 @isatty(i32 noundef %9980) #11
  %9982 = icmp ne i32 %9981, 0
  br i1 %9982, label %9983, label %10000

9983:                                             ; preds = %9978
  %9984 = load i32, ptr %213, align 4, !tbaa !5
  %9985 = call ptr @__errno_location() #12
  store i32 %9984, ptr %9985, align 4, !tbaa !5
  %9986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9987 = load i32, ptr @test_count, align 4, !tbaa !5
  %9988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9989 = load i32, ptr %9988, align 4, !tbaa !5
  %9990 = call ptr @s2n_strerror(i32 noundef %9989, ptr noundef @.str.4)
  %9991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9992 = load i32, ptr %9991, align 4, !tbaa !5
  %9993 = call ptr @s2n_strerror_debug(i32 noundef %9992, ptr noundef @.str.4)
  %9994 = call ptr @__errno_location() #12
  %9995 = load i32, ptr %9994, align 4, !tbaa !5
  %9996 = call ptr @strerror(i32 noundef %9995) #11
  %9997 = call ptr @__errno_location() #12
  %9998 = load i32, ptr %9997, align 4, !tbaa !5
  %9999 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9986, ptr noundef @.str.2, i32 noundef %9987, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 504, ptr noundef %9990, ptr noundef %9993, ptr noundef %9996, i32 noundef %9998) #11
  br label %10017

10000:                                            ; preds = %9978, %9971
  %10001 = load i32, ptr %213, align 4, !tbaa !5
  %10002 = call ptr @__errno_location() #12
  store i32 %10001, ptr %10002, align 4, !tbaa !5
  %10003 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10004 = load i32, ptr @test_count, align 4, !tbaa !5
  %10005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10006 = load i32, ptr %10005, align 4, !tbaa !5
  %10007 = call ptr @s2n_strerror(i32 noundef %10006, ptr noundef @.str.4)
  %10008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10009 = load i32, ptr %10008, align 4, !tbaa !5
  %10010 = call ptr @s2n_strerror_debug(i32 noundef %10009, ptr noundef @.str.4)
  %10011 = call ptr @__errno_location() #12
  %10012 = load i32, ptr %10011, align 4, !tbaa !5
  %10013 = call ptr @strerror(i32 noundef %10012) #11
  %10014 = call ptr @__errno_location() #12
  %10015 = load i32, ptr %10014, align 4, !tbaa !5
  %10016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10003, ptr noundef @.str.5, i32 noundef %10004, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 504, ptr noundef %10007, ptr noundef %10010, ptr noundef %10013, i32 noundef %10015) #11
  br label %10017

10017:                                            ; preds = %10000, %9983
  call void @llvm.lifetime.end.p0(i64 4, ptr %213) #11
  br label %10018

10018:                                            ; preds = %10017
  br label %10019

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

10020:                                            ; No predecessors!
  br label %10021

10021:                                            ; preds = %10020
  br label %10022

10022:                                            ; preds = %10021, %9963
  br label %10023

10023:                                            ; preds = %10022
  br label %10024

10024:                                            ; preds = %10023
  %10025 = call i32 @s2n_io_pair_close(ptr noundef %202)
  call void @llvm.lifetime.end.p0(i64 8, ptr %202) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %199) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %196) #11
  br label %10026

10026:                                            ; preds = %10024, %9168
  call void @llvm.lifetime.start.p0(i64 8, ptr %214) #11
  %10027 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %10027, ptr %214, align 8, !tbaa !9
  br label %10028

10028:                                            ; preds = %10026
  %10029 = load i32, ptr @test_count, align 4, !tbaa !5
  %10030 = add nsw i32 %10029, 1
  store i32 %10030, ptr @test_count, align 4, !tbaa !5
  %10031 = load ptr, ptr %214, align 8, !tbaa !9
  %10032 = icmp eq ptr %10031, null
  br i1 %10032, label %10033, label %10086

10033:                                            ; preds = %10028
  br label %10034

10034:                                            ; preds = %10033
  br label %10035

10035:                                            ; preds = %10034
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %10036 = call ptr @__errno_location() #12
  %10037 = load i32, ptr %10036, align 4, !tbaa !5
  store i32 %10037, ptr %215, align 4, !tbaa !5
  %10038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10039 = call i32 @s2n_print_stacktrace(ptr noundef %10038)
  %10040 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10041 = trunc i8 %10040 to i1
  br i1 %10041, label %10042, label %10064

10042:                                            ; preds = %10035
  %10043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10044 = call i32 @fileno(ptr noundef %10043) #11
  %10045 = call i32 @isatty(i32 noundef %10044) #11
  %10046 = icmp ne i32 %10045, 0
  br i1 %10046, label %10047, label %10064

10047:                                            ; preds = %10042
  %10048 = load i32, ptr %215, align 4, !tbaa !5
  %10049 = call ptr @__errno_location() #12
  store i32 %10048, ptr %10049, align 4, !tbaa !5
  %10050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10051 = load i32, ptr @test_count, align 4, !tbaa !5
  %10052 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10053 = load i32, ptr %10052, align 4, !tbaa !5
  %10054 = call ptr @s2n_strerror(i32 noundef %10053, ptr noundef @.str.4)
  %10055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10056 = load i32, ptr %10055, align 4, !tbaa !5
  %10057 = call ptr @s2n_strerror_debug(i32 noundef %10056, ptr noundef @.str.4)
  %10058 = call ptr @__errno_location() #12
  %10059 = load i32, ptr %10058, align 4, !tbaa !5
  %10060 = call ptr @strerror(i32 noundef %10059) #11
  %10061 = call ptr @__errno_location() #12
  %10062 = load i32, ptr %10061, align 4, !tbaa !5
  %10063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10050, ptr noundef @.str.2, i32 noundef %10051, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 510, ptr noundef %10054, ptr noundef %10057, ptr noundef %10060, i32 noundef %10062) #11
  br label %10081

10064:                                            ; preds = %10042, %10035
  %10065 = load i32, ptr %215, align 4, !tbaa !5
  %10066 = call ptr @__errno_location() #12
  store i32 %10065, ptr %10066, align 4, !tbaa !5
  %10067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10068 = load i32, ptr @test_count, align 4, !tbaa !5
  %10069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10070 = load i32, ptr %10069, align 4, !tbaa !5
  %10071 = call ptr @s2n_strerror(i32 noundef %10070, ptr noundef @.str.4)
  %10072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10073 = load i32, ptr %10072, align 4, !tbaa !5
  %10074 = call ptr @s2n_strerror_debug(i32 noundef %10073, ptr noundef @.str.4)
  %10075 = call ptr @__errno_location() #12
  %10076 = load i32, ptr %10075, align 4, !tbaa !5
  %10077 = call ptr @strerror(i32 noundef %10076) #11
  %10078 = call ptr @__errno_location() #12
  %10079 = load i32, ptr %10078, align 4, !tbaa !5
  %10080 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10067, ptr noundef @.str.5, i32 noundef %10068, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 510, ptr noundef %10071, ptr noundef %10074, ptr noundef %10077, i32 noundef %10079) #11
  br label %10081

10081:                                            ; preds = %10064, %10047
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %10082

10082:                                            ; preds = %10081
  br label %10083

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

10084:                                            ; No predecessors!
  br label %10085

10085:                                            ; preds = %10084
  br label %10086

10086:                                            ; preds = %10085, %10028
  br label %10087

10087:                                            ; preds = %10086
  br label %10088

10088:                                            ; preds = %10087
  br label %10089

10089:                                            ; preds = %10088
  %10090 = load i32, ptr @test_count, align 4, !tbaa !5
  %10091 = add nsw i32 %10090, 1
  store i32 %10091, ptr @test_count, align 4, !tbaa !5
  %10092 = load ptr, ptr %214, align 8, !tbaa !9
  %10093 = load ptr, ptr %191, align 8, !tbaa !9
  %10094 = call i32 @s2n_connection_set_config(ptr noundef %10092, ptr noundef %10093)
  %10095 = icmp eq i32 %10094, -1
  br i1 %10095, label %10096, label %10149

10096:                                            ; preds = %10089
  br label %10097

10097:                                            ; preds = %10096
  br label %10098

10098:                                            ; preds = %10097
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %10099 = call ptr @__errno_location() #12
  %10100 = load i32, ptr %10099, align 4, !tbaa !5
  store i32 %10100, ptr %216, align 4, !tbaa !5
  %10101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10102 = call i32 @s2n_print_stacktrace(ptr noundef %10101)
  %10103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10104 = trunc i8 %10103 to i1
  br i1 %10104, label %10105, label %10127

10105:                                            ; preds = %10098
  %10106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10107 = call i32 @fileno(ptr noundef %10106) #11
  %10108 = call i32 @isatty(i32 noundef %10107) #11
  %10109 = icmp ne i32 %10108, 0
  br i1 %10109, label %10110, label %10127

10110:                                            ; preds = %10105
  %10111 = load i32, ptr %216, align 4, !tbaa !5
  %10112 = call ptr @__errno_location() #12
  store i32 %10111, ptr %10112, align 4, !tbaa !5
  %10113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10114 = load i32, ptr @test_count, align 4, !tbaa !5
  %10115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10116 = load i32, ptr %10115, align 4, !tbaa !5
  %10117 = call ptr @s2n_strerror(i32 noundef %10116, ptr noundef @.str.4)
  %10118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10119 = load i32, ptr %10118, align 4, !tbaa !5
  %10120 = call ptr @s2n_strerror_debug(i32 noundef %10119, ptr noundef @.str.4)
  %10121 = call ptr @__errno_location() #12
  %10122 = load i32, ptr %10121, align 4, !tbaa !5
  %10123 = call ptr @strerror(i32 noundef %10122) #11
  %10124 = call ptr @__errno_location() #12
  %10125 = load i32, ptr %10124, align 4, !tbaa !5
  %10126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10113, ptr noundef @.str.2, i32 noundef %10114, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 511, ptr noundef %10117, ptr noundef %10120, ptr noundef %10123, i32 noundef %10125) #11
  br label %10144

10127:                                            ; preds = %10105, %10098
  %10128 = load i32, ptr %216, align 4, !tbaa !5
  %10129 = call ptr @__errno_location() #12
  store i32 %10128, ptr %10129, align 4, !tbaa !5
  %10130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10131 = load i32, ptr @test_count, align 4, !tbaa !5
  %10132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10133 = load i32, ptr %10132, align 4, !tbaa !5
  %10134 = call ptr @s2n_strerror(i32 noundef %10133, ptr noundef @.str.4)
  %10135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10136 = load i32, ptr %10135, align 4, !tbaa !5
  %10137 = call ptr @s2n_strerror_debug(i32 noundef %10136, ptr noundef @.str.4)
  %10138 = call ptr @__errno_location() #12
  %10139 = load i32, ptr %10138, align 4, !tbaa !5
  %10140 = call ptr @strerror(i32 noundef %10139) #11
  %10141 = call ptr @__errno_location() #12
  %10142 = load i32, ptr %10141, align 4, !tbaa !5
  %10143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10130, ptr noundef @.str.5, i32 noundef %10131, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 511, ptr noundef %10134, ptr noundef %10137, ptr noundef %10140, i32 noundef %10142) #11
  br label %10144

10144:                                            ; preds = %10127, %10110
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %10145

10145:                                            ; preds = %10144
  br label %10146

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

10147:                                            ; No predecessors!
  br label %10148

10148:                                            ; preds = %10147
  br label %10149

10149:                                            ; preds = %10148, %10089
  br label %10150

10150:                                            ; preds = %10149
  br label %10151

10151:                                            ; preds = %10150
  br label %10152

10152:                                            ; preds = %10151
  %10153 = load i32, ptr @test_count, align 4, !tbaa !5
  %10154 = add nsw i32 %10153, 1
  store i32 %10154, ptr @test_count, align 4, !tbaa !5
  %10155 = load ptr, ptr %214, align 8, !tbaa !9
  %10156 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %10155, ptr noundef @.str.106)
  %10157 = icmp eq i32 %10156, -1
  br i1 %10157, label %10158, label %10211

10158:                                            ; preds = %10152
  br label %10159

10159:                                            ; preds = %10158
  br label %10160

10160:                                            ; preds = %10159
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %10161 = call ptr @__errno_location() #12
  %10162 = load i32, ptr %10161, align 4, !tbaa !5
  store i32 %10162, ptr %217, align 4, !tbaa !5
  %10163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10164 = call i32 @s2n_print_stacktrace(ptr noundef %10163)
  %10165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10166 = trunc i8 %10165 to i1
  br i1 %10166, label %10167, label %10189

10167:                                            ; preds = %10160
  %10168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10169 = call i32 @fileno(ptr noundef %10168) #11
  %10170 = call i32 @isatty(i32 noundef %10169) #11
  %10171 = icmp ne i32 %10170, 0
  br i1 %10171, label %10172, label %10189

10172:                                            ; preds = %10167
  %10173 = load i32, ptr %217, align 4, !tbaa !5
  %10174 = call ptr @__errno_location() #12
  store i32 %10173, ptr %10174, align 4, !tbaa !5
  %10175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10176 = load i32, ptr @test_count, align 4, !tbaa !5
  %10177 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10178 = load i32, ptr %10177, align 4, !tbaa !5
  %10179 = call ptr @s2n_strerror(i32 noundef %10178, ptr noundef @.str.4)
  %10180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10181 = load i32, ptr %10180, align 4, !tbaa !5
  %10182 = call ptr @s2n_strerror_debug(i32 noundef %10181, ptr noundef @.str.4)
  %10183 = call ptr @__errno_location() #12
  %10184 = load i32, ptr %10183, align 4, !tbaa !5
  %10185 = call ptr @strerror(i32 noundef %10184) #11
  %10186 = call ptr @__errno_location() #12
  %10187 = load i32, ptr %10186, align 4, !tbaa !5
  %10188 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10175, ptr noundef @.str.2, i32 noundef %10176, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 512, ptr noundef %10179, ptr noundef %10182, ptr noundef %10185, i32 noundef %10187) #11
  br label %10206

10189:                                            ; preds = %10167, %10160
  %10190 = load i32, ptr %217, align 4, !tbaa !5
  %10191 = call ptr @__errno_location() #12
  store i32 %10190, ptr %10191, align 4, !tbaa !5
  %10192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10193 = load i32, ptr @test_count, align 4, !tbaa !5
  %10194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10195 = load i32, ptr %10194, align 4, !tbaa !5
  %10196 = call ptr @s2n_strerror(i32 noundef %10195, ptr noundef @.str.4)
  %10197 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10198 = load i32, ptr %10197, align 4, !tbaa !5
  %10199 = call ptr @s2n_strerror_debug(i32 noundef %10198, ptr noundef @.str.4)
  %10200 = call ptr @__errno_location() #12
  %10201 = load i32, ptr %10200, align 4, !tbaa !5
  %10202 = call ptr @strerror(i32 noundef %10201) #11
  %10203 = call ptr @__errno_location() #12
  %10204 = load i32, ptr %10203, align 4, !tbaa !5
  %10205 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10192, ptr noundef @.str.5, i32 noundef %10193, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 512, ptr noundef %10196, ptr noundef %10199, ptr noundef %10202, i32 noundef %10204) #11
  br label %10206

10206:                                            ; preds = %10189, %10172
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %10207

10207:                                            ; preds = %10206
  br label %10208

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

10209:                                            ; No predecessors!
  br label %10210

10210:                                            ; preds = %10209
  br label %10211

10211:                                            ; preds = %10210, %10152
  br label %10212

10212:                                            ; preds = %10211
  br label %10213

10213:                                            ; preds = %10212
  call void @llvm.lifetime.start.p0(i64 8, ptr %218) #11
  %10214 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %10214, ptr %218, align 8, !tbaa !9
  br label %10215

10215:                                            ; preds = %10213
  %10216 = load i32, ptr @test_count, align 4, !tbaa !5
  %10217 = add nsw i32 %10216, 1
  store i32 %10217, ptr @test_count, align 4, !tbaa !5
  %10218 = load ptr, ptr %218, align 8, !tbaa !9
  %10219 = icmp eq ptr %10218, null
  br i1 %10219, label %10220, label %10273

10220:                                            ; preds = %10215
  br label %10221

10221:                                            ; preds = %10220
  br label %10222

10222:                                            ; preds = %10221
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %10223 = call ptr @__errno_location() #12
  %10224 = load i32, ptr %10223, align 4, !tbaa !5
  store i32 %10224, ptr %219, align 4, !tbaa !5
  %10225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10226 = call i32 @s2n_print_stacktrace(ptr noundef %10225)
  %10227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10228 = trunc i8 %10227 to i1
  br i1 %10228, label %10229, label %10251

10229:                                            ; preds = %10222
  %10230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10231 = call i32 @fileno(ptr noundef %10230) #11
  %10232 = call i32 @isatty(i32 noundef %10231) #11
  %10233 = icmp ne i32 %10232, 0
  br i1 %10233, label %10234, label %10251

10234:                                            ; preds = %10229
  %10235 = load i32, ptr %219, align 4, !tbaa !5
  %10236 = call ptr @__errno_location() #12
  store i32 %10235, ptr %10236, align 4, !tbaa !5
  %10237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10238 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %10240, ptr noundef @.str.4)
  %10242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10243 = load i32, ptr %10242, align 4, !tbaa !5
  %10244 = call ptr @s2n_strerror_debug(i32 noundef %10243, ptr noundef @.str.4)
  %10245 = call ptr @__errno_location() #12
  %10246 = load i32, ptr %10245, align 4, !tbaa !5
  %10247 = call ptr @strerror(i32 noundef %10246) #11
  %10248 = call ptr @__errno_location() #12
  %10249 = load i32, ptr %10248, align 4, !tbaa !5
  %10250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10237, ptr noundef @.str.2, i32 noundef %10238, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 515, ptr noundef %10241, ptr noundef %10244, ptr noundef %10247, i32 noundef %10249) #11
  br label %10268

10251:                                            ; preds = %10229, %10222
  %10252 = load i32, ptr %219, align 4, !tbaa !5
  %10253 = call ptr @__errno_location() #12
  store i32 %10252, ptr %10253, align 4, !tbaa !5
  %10254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10255 = load i32, ptr @test_count, align 4, !tbaa !5
  %10256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10257 = load i32, ptr %10256, align 4, !tbaa !5
  %10258 = call ptr @s2n_strerror(i32 noundef %10257, ptr noundef @.str.4)
  %10259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10260 = load i32, ptr %10259, align 4, !tbaa !5
  %10261 = call ptr @s2n_strerror_debug(i32 noundef %10260, ptr noundef @.str.4)
  %10262 = call ptr @__errno_location() #12
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = call ptr @strerror(i32 noundef %10263) #11
  %10265 = call ptr @__errno_location() #12
  %10266 = load i32, ptr %10265, align 4, !tbaa !5
  %10267 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10254, ptr noundef @.str.5, i32 noundef %10255, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 515, ptr noundef %10258, ptr noundef %10261, ptr noundef %10264, i32 noundef %10266) #11
  br label %10268

10268:                                            ; preds = %10251, %10234
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %10269

10269:                                            ; preds = %10268
  br label %10270

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

10271:                                            ; No predecessors!
  br label %10272

10272:                                            ; preds = %10271
  br label %10273

10273:                                            ; preds = %10272, %10215
  br label %10274

10274:                                            ; preds = %10273
  br label %10275

10275:                                            ; preds = %10274
  br label %10276

10276:                                            ; preds = %10275
  %10277 = load i32, ptr @test_count, align 4, !tbaa !5
  %10278 = add nsw i32 %10277, 1
  store i32 %10278, ptr @test_count, align 4, !tbaa !5
  %10279 = load ptr, ptr %218, align 8, !tbaa !9
  %10280 = load ptr, ptr %191, align 8, !tbaa !9
  %10281 = call i32 @s2n_connection_set_config(ptr noundef %10279, ptr noundef %10280)
  %10282 = icmp eq i32 %10281, -1
  br i1 %10282, label %10283, label %10336

10283:                                            ; preds = %10276
  br label %10284

10284:                                            ; preds = %10283
  br label %10285

10285:                                            ; preds = %10284
  call void @llvm.lifetime.start.p0(i64 4, ptr %220) #11
  %10286 = call ptr @__errno_location() #12
  %10287 = load i32, ptr %10286, align 4, !tbaa !5
  store i32 %10287, ptr %220, align 4, !tbaa !5
  %10288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10289 = call i32 @s2n_print_stacktrace(ptr noundef %10288)
  %10290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10291 = trunc i8 %10290 to i1
  br i1 %10291, label %10292, label %10314

10292:                                            ; preds = %10285
  %10293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10294 = call i32 @fileno(ptr noundef %10293) #11
  %10295 = call i32 @isatty(i32 noundef %10294) #11
  %10296 = icmp ne i32 %10295, 0
  br i1 %10296, label %10297, label %10314

10297:                                            ; preds = %10292
  %10298 = load i32, ptr %220, align 4, !tbaa !5
  %10299 = call ptr @__errno_location() #12
  store i32 %10298, ptr %10299, align 4, !tbaa !5
  %10300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10301 = load i32, ptr @test_count, align 4, !tbaa !5
  %10302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10303 = load i32, ptr %10302, align 4, !tbaa !5
  %10304 = call ptr @s2n_strerror(i32 noundef %10303, ptr noundef @.str.4)
  %10305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10306 = load i32, ptr %10305, align 4, !tbaa !5
  %10307 = call ptr @s2n_strerror_debug(i32 noundef %10306, ptr noundef @.str.4)
  %10308 = call ptr @__errno_location() #12
  %10309 = load i32, ptr %10308, align 4, !tbaa !5
  %10310 = call ptr @strerror(i32 noundef %10309) #11
  %10311 = call ptr @__errno_location() #12
  %10312 = load i32, ptr %10311, align 4, !tbaa !5
  %10313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10300, ptr noundef @.str.2, i32 noundef %10301, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 516, ptr noundef %10304, ptr noundef %10307, ptr noundef %10310, i32 noundef %10312) #11
  br label %10331

10314:                                            ; preds = %10292, %10285
  %10315 = load i32, ptr %220, align 4, !tbaa !5
  %10316 = call ptr @__errno_location() #12
  store i32 %10315, ptr %10316, align 4, !tbaa !5
  %10317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10318 = load i32, ptr @test_count, align 4, !tbaa !5
  %10319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10320 = load i32, ptr %10319, align 4, !tbaa !5
  %10321 = call ptr @s2n_strerror(i32 noundef %10320, ptr noundef @.str.4)
  %10322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10323 = load i32, ptr %10322, align 4, !tbaa !5
  %10324 = call ptr @s2n_strerror_debug(i32 noundef %10323, ptr noundef @.str.4)
  %10325 = call ptr @__errno_location() #12
  %10326 = load i32, ptr %10325, align 4, !tbaa !5
  %10327 = call ptr @strerror(i32 noundef %10326) #11
  %10328 = call ptr @__errno_location() #12
  %10329 = load i32, ptr %10328, align 4, !tbaa !5
  %10330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10317, ptr noundef @.str.5, i32 noundef %10318, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 516, ptr noundef %10321, ptr noundef %10324, ptr noundef %10327, i32 noundef %10329) #11
  br label %10331

10331:                                            ; preds = %10314, %10297
  call void @llvm.lifetime.end.p0(i64 4, ptr %220) #11
  br label %10332

10332:                                            ; preds = %10331
  br label %10333

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

10334:                                            ; No predecessors!
  br label %10335

10335:                                            ; preds = %10334
  br label %10336

10336:                                            ; preds = %10335, %10276
  br label %10337

10337:                                            ; preds = %10336
  br label %10338

10338:                                            ; preds = %10337
  call void @llvm.lifetime.start.p0(i64 8, ptr %221) #11
  call void @llvm.memset.p0.i64(ptr align 4 %221, i8 0, i64 8, i1 false)
  br label %10339

10339:                                            ; preds = %10338
  %10340 = load i32, ptr @test_count, align 4, !tbaa !5
  %10341 = add nsw i32 %10340, 1
  store i32 %10341, ptr @test_count, align 4, !tbaa !5
  %10342 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %221)
  %10343 = icmp eq i32 %10342, -1
  br i1 %10343, label %10344, label %10397

10344:                                            ; preds = %10339
  br label %10345

10345:                                            ; preds = %10344
  br label %10346

10346:                                            ; preds = %10345
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %10347 = call ptr @__errno_location() #12
  %10348 = load i32, ptr %10347, align 4, !tbaa !5
  store i32 %10348, ptr %222, align 4, !tbaa !5
  %10349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10350 = call i32 @s2n_print_stacktrace(ptr noundef %10349)
  %10351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10352 = trunc i8 %10351 to i1
  br i1 %10352, label %10353, label %10375

10353:                                            ; preds = %10346
  %10354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10355 = call i32 @fileno(ptr noundef %10354) #11
  %10356 = call i32 @isatty(i32 noundef %10355) #11
  %10357 = icmp ne i32 %10356, 0
  br i1 %10357, label %10358, label %10375

10358:                                            ; preds = %10353
  %10359 = load i32, ptr %222, align 4, !tbaa !5
  %10360 = call ptr @__errno_location() #12
  store i32 %10359, ptr %10360, align 4, !tbaa !5
  %10361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10362 = load i32, ptr @test_count, align 4, !tbaa !5
  %10363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10364 = load i32, ptr %10363, align 4, !tbaa !5
  %10365 = call ptr @s2n_strerror(i32 noundef %10364, ptr noundef @.str.4)
  %10366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10367 = load i32, ptr %10366, align 4, !tbaa !5
  %10368 = call ptr @s2n_strerror_debug(i32 noundef %10367, ptr noundef @.str.4)
  %10369 = call ptr @__errno_location() #12
  %10370 = load i32, ptr %10369, align 4, !tbaa !5
  %10371 = call ptr @strerror(i32 noundef %10370) #11
  %10372 = call ptr @__errno_location() #12
  %10373 = load i32, ptr %10372, align 4, !tbaa !5
  %10374 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10361, ptr noundef @.str.2, i32 noundef %10362, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10365, ptr noundef %10368, ptr noundef %10371, i32 noundef %10373) #11
  br label %10392

10375:                                            ; preds = %10353, %10346
  %10376 = load i32, ptr %222, align 4, !tbaa !5
  %10377 = call ptr @__errno_location() #12
  store i32 %10376, ptr %10377, align 4, !tbaa !5
  %10378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10379 = load i32, ptr @test_count, align 4, !tbaa !5
  %10380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10381 = load i32, ptr %10380, align 4, !tbaa !5
  %10382 = call ptr @s2n_strerror(i32 noundef %10381, ptr noundef @.str.4)
  %10383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10384 = load i32, ptr %10383, align 4, !tbaa !5
  %10385 = call ptr @s2n_strerror_debug(i32 noundef %10384, ptr noundef @.str.4)
  %10386 = call ptr @__errno_location() #12
  %10387 = load i32, ptr %10386, align 4, !tbaa !5
  %10388 = call ptr @strerror(i32 noundef %10387) #11
  %10389 = call ptr @__errno_location() #12
  %10390 = load i32, ptr %10389, align 4, !tbaa !5
  %10391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10378, ptr noundef @.str.5, i32 noundef %10379, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 519, ptr noundef %10382, ptr noundef %10385, ptr noundef %10388, i32 noundef %10390) #11
  br label %10392

10392:                                            ; preds = %10375, %10358
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %10393

10393:                                            ; preds = %10392
  br label %10394

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

10395:                                            ; No predecessors!
  br label %10396

10396:                                            ; preds = %10395
  br label %10397

10397:                                            ; preds = %10396, %10339
  br label %10398

10398:                                            ; preds = %10397
  br label %10399

10399:                                            ; preds = %10398
  br label %10400

10400:                                            ; preds = %10399
  %10401 = load i32, ptr @test_count, align 4, !tbaa !5
  %10402 = add nsw i32 %10401, 1
  store i32 %10402, ptr @test_count, align 4, !tbaa !5
  %10403 = load ptr, ptr %214, align 8, !tbaa !9
  %10404 = load ptr, ptr %218, align 8, !tbaa !9
  %10405 = call i32 @s2n_connections_set_io_pair(ptr noundef %10403, ptr noundef %10404, ptr noundef %221)
  %10406 = icmp eq i32 %10405, -1
  br i1 %10406, label %10407, label %10460

10407:                                            ; preds = %10400
  br label %10408

10408:                                            ; preds = %10407
  br label %10409

10409:                                            ; preds = %10408
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %10410 = call ptr @__errno_location() #12
  %10411 = load i32, ptr %10410, align 4, !tbaa !5
  store i32 %10411, ptr %223, align 4, !tbaa !5
  %10412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10413 = call i32 @s2n_print_stacktrace(ptr noundef %10412)
  %10414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10415 = trunc i8 %10414 to i1
  br i1 %10415, label %10416, label %10438

10416:                                            ; preds = %10409
  %10417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10418 = call i32 @fileno(ptr noundef %10417) #11
  %10419 = call i32 @isatty(i32 noundef %10418) #11
  %10420 = icmp ne i32 %10419, 0
  br i1 %10420, label %10421, label %10438

10421:                                            ; preds = %10416
  %10422 = load i32, ptr %223, align 4, !tbaa !5
  %10423 = call ptr @__errno_location() #12
  store i32 %10422, ptr %10423, align 4, !tbaa !5
  %10424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10425 = load i32, ptr @test_count, align 4, !tbaa !5
  %10426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10427 = load i32, ptr %10426, align 4, !tbaa !5
  %10428 = call ptr @s2n_strerror(i32 noundef %10427, ptr noundef @.str.4)
  %10429 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10430 = load i32, ptr %10429, align 4, !tbaa !5
  %10431 = call ptr @s2n_strerror_debug(i32 noundef %10430, ptr noundef @.str.4)
  %10432 = call ptr @__errno_location() #12
  %10433 = load i32, ptr %10432, align 4, !tbaa !5
  %10434 = call ptr @strerror(i32 noundef %10433) #11
  %10435 = call ptr @__errno_location() #12
  %10436 = load i32, ptr %10435, align 4, !tbaa !5
  %10437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10424, ptr noundef @.str.2, i32 noundef %10425, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 520, ptr noundef %10428, ptr noundef %10431, ptr noundef %10434, i32 noundef %10436) #11
  br label %10455

10438:                                            ; preds = %10416, %10409
  %10439 = load i32, ptr %223, align 4, !tbaa !5
  %10440 = call ptr @__errno_location() #12
  store i32 %10439, ptr %10440, align 4, !tbaa !5
  %10441 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10442 = load i32, ptr @test_count, align 4, !tbaa !5
  %10443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10444 = load i32, ptr %10443, align 4, !tbaa !5
  %10445 = call ptr @s2n_strerror(i32 noundef %10444, ptr noundef @.str.4)
  %10446 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10447 = load i32, ptr %10446, align 4, !tbaa !5
  %10448 = call ptr @s2n_strerror_debug(i32 noundef %10447, ptr noundef @.str.4)
  %10449 = call ptr @__errno_location() #12
  %10450 = load i32, ptr %10449, align 4, !tbaa !5
  %10451 = call ptr @strerror(i32 noundef %10450) #11
  %10452 = call ptr @__errno_location() #12
  %10453 = load i32, ptr %10452, align 4, !tbaa !5
  %10454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10441, ptr noundef @.str.5, i32 noundef %10442, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 520, ptr noundef %10445, ptr noundef %10448, ptr noundef %10451, i32 noundef %10453) #11
  br label %10455

10455:                                            ; preds = %10438, %10421
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %10456

10456:                                            ; preds = %10455
  br label %10457

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

10458:                                            ; No predecessors!
  br label %10459

10459:                                            ; preds = %10458
  br label %10460

10460:                                            ; preds = %10459, %10400
  br label %10461

10461:                                            ; preds = %10460
  br label %10462

10462:                                            ; preds = %10461
  br label %10463

10463:                                            ; preds = %10462
  %10464 = load i32, ptr @test_count, align 4, !tbaa !5
  %10465 = add nsw i32 %10464, 1
  store i32 %10465, ptr @test_count, align 4, !tbaa !5
  %10466 = load ptr, ptr %218, align 8, !tbaa !9
  %10467 = load ptr, ptr %214, align 8, !tbaa !9
  %10468 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %10466, ptr noundef %10467, i32 noundef 1)
  %10469 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  store i32 %10468, ptr %10469, align 4
  %10470 = getelementptr inbounds %struct.s2n_result, ptr %224, i32 0, i32 0
  %10471 = load i32, ptr %10470, align 4
  %10472 = call zeroext i1 @s2n_result_is_ok(i32 %10471)
  br i1 %10472, label %10526, label %10473

10473:                                            ; preds = %10463
  br label %10474

10474:                                            ; preds = %10473
  br label %10475

10475:                                            ; preds = %10474
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %10476 = call ptr @__errno_location() #12
  %10477 = load i32, ptr %10476, align 4, !tbaa !5
  store i32 %10477, ptr %225, align 4, !tbaa !5
  %10478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10479 = call i32 @s2n_print_stacktrace(ptr noundef %10478)
  %10480 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10481 = trunc i8 %10480 to i1
  br i1 %10481, label %10482, label %10504

10482:                                            ; preds = %10475
  %10483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10484 = call i32 @fileno(ptr noundef %10483) #11
  %10485 = call i32 @isatty(i32 noundef %10484) #11
  %10486 = icmp ne i32 %10485, 0
  br i1 %10486, label %10487, label %10504

10487:                                            ; preds = %10482
  %10488 = load i32, ptr %225, align 4, !tbaa !5
  %10489 = call ptr @__errno_location() #12
  store i32 %10488, ptr %10489, align 4, !tbaa !5
  %10490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10491 = load i32, ptr @test_count, align 4, !tbaa !5
  %10492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10493 = load i32, ptr %10492, align 4, !tbaa !5
  %10494 = call ptr @s2n_strerror(i32 noundef %10493, ptr noundef @.str.4)
  %10495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10496 = load i32, ptr %10495, align 4, !tbaa !5
  %10497 = call ptr @s2n_strerror_debug(i32 noundef %10496, ptr noundef @.str.4)
  %10498 = call ptr @__errno_location() #12
  %10499 = load i32, ptr %10498, align 4, !tbaa !5
  %10500 = call ptr @strerror(i32 noundef %10499) #11
  %10501 = call ptr @__errno_location() #12
  %10502 = load i32, ptr %10501, align 4, !tbaa !5
  %10503 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10490, ptr noundef @.str.2, i32 noundef %10491, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10494, ptr noundef %10497, ptr noundef %10500, i32 noundef %10502) #11
  br label %10521

10504:                                            ; preds = %10482, %10475
  %10505 = load i32, ptr %225, align 4, !tbaa !5
  %10506 = call ptr @__errno_location() #12
  store i32 %10505, ptr %10506, align 4, !tbaa !5
  %10507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10508 = load i32, ptr @test_count, align 4, !tbaa !5
  %10509 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10510 = load i32, ptr %10509, align 4, !tbaa !5
  %10511 = call ptr @s2n_strerror(i32 noundef %10510, ptr noundef @.str.4)
  %10512 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10513 = load i32, ptr %10512, align 4, !tbaa !5
  %10514 = call ptr @s2n_strerror_debug(i32 noundef %10513, ptr noundef @.str.4)
  %10515 = call ptr @__errno_location() #12
  %10516 = load i32, ptr %10515, align 4, !tbaa !5
  %10517 = call ptr @strerror(i32 noundef %10516) #11
  %10518 = call ptr @__errno_location() #12
  %10519 = load i32, ptr %10518, align 4, !tbaa !5
  %10520 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10507, ptr noundef @.str.5, i32 noundef %10508, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 523, ptr noundef %10511, ptr noundef %10514, ptr noundef %10517, i32 noundef %10519) #11
  br label %10521

10521:                                            ; preds = %10504, %10487
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %10522

10522:                                            ; preds = %10521
  br label %10523

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

10524:                                            ; No predecessors!
  br label %10525

10525:                                            ; preds = %10524
  br label %10526

10526:                                            ; preds = %10525, %10463
  br label %10527

10527:                                            ; preds = %10526
  br label %10528

10528:                                            ; preds = %10527
  br label %10529

10529:                                            ; preds = %10528
  %10530 = load i32, ptr @test_count, align 4, !tbaa !5
  %10531 = add nsw i32 %10530, 1
  store i32 %10531, ptr @test_count, align 4, !tbaa !5
  %10532 = load ptr, ptr %214, align 8, !tbaa !9
  %10533 = getelementptr inbounds %struct.s2n_connection, ptr %10532, i32 0, i32 10
  %10534 = load i16, ptr %195, align 2, !tbaa !42
  %10535 = zext i16 %10534 to i32
  %10536 = ashr i32 %10535, 3
  %10537 = sext i32 %10536 to i64
  %10538 = getelementptr inbounds [22 x i8], ptr %10533, i64 0, i64 %10537
  %10539 = load i8, ptr %10538, align 1, !tbaa !43
  %10540 = sext i8 %10539 to i32
  %10541 = load i16, ptr %195, align 2, !tbaa !42
  %10542 = zext i16 %10541 to i32
  %10543 = srem i32 %10542, 8
  %10544 = shl i32 1, %10543
  %10545 = and i32 %10540, %10544
  %10546 = icmp ne i32 %10545, 0
  br i1 %10546, label %10547, label %10600

10547:                                            ; preds = %10529
  br label %10548

10548:                                            ; preds = %10547
  br label %10549

10549:                                            ; preds = %10548
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  %10550 = call ptr @__errno_location() #12
  %10551 = load i32, ptr %10550, align 4, !tbaa !5
  store i32 %10551, ptr %226, align 4, !tbaa !5
  %10552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10553 = call i32 @s2n_print_stacktrace(ptr noundef %10552)
  %10554 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10555 = trunc i8 %10554 to i1
  br i1 %10555, label %10556, label %10578

10556:                                            ; preds = %10549
  %10557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10558 = call i32 @fileno(ptr noundef %10557) #11
  %10559 = call i32 @isatty(i32 noundef %10558) #11
  %10560 = icmp ne i32 %10559, 0
  br i1 %10560, label %10561, label %10578

10561:                                            ; preds = %10556
  %10562 = load i32, ptr %226, align 4, !tbaa !5
  %10563 = call ptr @__errno_location() #12
  store i32 %10562, ptr %10563, align 4, !tbaa !5
  %10564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10565 = load i32, ptr @test_count, align 4, !tbaa !5
  %10566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10567 = load i32, ptr %10566, align 4, !tbaa !5
  %10568 = call ptr @s2n_strerror(i32 noundef %10567, ptr noundef @.str.4)
  %10569 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10570 = load i32, ptr %10569, align 4, !tbaa !5
  %10571 = call ptr @s2n_strerror_debug(i32 noundef %10570, ptr noundef @.str.4)
  %10572 = call ptr @__errno_location() #12
  %10573 = load i32, ptr %10572, align 4, !tbaa !5
  %10574 = call ptr @strerror(i32 noundef %10573) #11
  %10575 = call ptr @__errno_location() #12
  %10576 = load i32, ptr %10575, align 4, !tbaa !5
  %10577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10564, ptr noundef @.str.2, i32 noundef %10565, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 524, ptr noundef %10568, ptr noundef %10571, ptr noundef %10574, i32 noundef %10576) #11
  br label %10595

10578:                                            ; preds = %10556, %10549
  %10579 = load i32, ptr %226, align 4, !tbaa !5
  %10580 = call ptr @__errno_location() #12
  store i32 %10579, ptr %10580, align 4, !tbaa !5
  %10581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10582 = load i32, ptr @test_count, align 4, !tbaa !5
  %10583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10584 = load i32, ptr %10583, align 4, !tbaa !5
  %10585 = call ptr @s2n_strerror(i32 noundef %10584, ptr noundef @.str.4)
  %10586 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10587 = load i32, ptr %10586, align 4, !tbaa !5
  %10588 = call ptr @s2n_strerror_debug(i32 noundef %10587, ptr noundef @.str.4)
  %10589 = call ptr @__errno_location() #12
  %10590 = load i32, ptr %10589, align 4, !tbaa !5
  %10591 = call ptr @strerror(i32 noundef %10590) #11
  %10592 = call ptr @__errno_location() #12
  %10593 = load i32, ptr %10592, align 4, !tbaa !5
  %10594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10581, ptr noundef @.str.5, i32 noundef %10582, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 524, ptr noundef %10585, ptr noundef %10588, ptr noundef %10591, i32 noundef %10593) #11
  br label %10595

10595:                                            ; preds = %10578, %10561
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  br label %10596

10596:                                            ; preds = %10595
  br label %10597

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

10598:                                            ; No predecessors!
  br label %10599

10599:                                            ; preds = %10598
  br label %10600

10600:                                            ; preds = %10599, %10529
  br label %10601

10601:                                            ; preds = %10600
  br label %10602

10602:                                            ; preds = %10601
  br label %10603

10603:                                            ; preds = %10602
  %10604 = load i32, ptr @test_count, align 4, !tbaa !5
  %10605 = add nsw i32 %10604, 1
  store i32 %10605, ptr @test_count, align 4, !tbaa !5
  %10606 = load ptr, ptr %218, align 8, !tbaa !9
  %10607 = getelementptr inbounds %struct.s2n_connection, ptr %10606, i32 0, i32 11
  %10608 = load i16, ptr %195, align 2, !tbaa !42
  %10609 = zext i16 %10608 to i32
  %10610 = ashr i32 %10609, 3
  %10611 = sext i32 %10610 to i64
  %10612 = getelementptr inbounds [22 x i8], ptr %10607, i64 0, i64 %10611
  %10613 = load i8, ptr %10612, align 1, !tbaa !43
  %10614 = sext i8 %10613 to i32
  %10615 = load i16, ptr %195, align 2, !tbaa !42
  %10616 = zext i16 %10615 to i32
  %10617 = srem i32 %10616, 8
  %10618 = shl i32 1, %10617
  %10619 = and i32 %10614, %10618
  %10620 = icmp ne i32 %10619, 0
  br i1 %10620, label %10621, label %10674

10621:                                            ; preds = %10603
  br label %10622

10622:                                            ; preds = %10621
  br label %10623

10623:                                            ; preds = %10622
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %10624 = call ptr @__errno_location() #12
  %10625 = load i32, ptr %10624, align 4, !tbaa !5
  store i32 %10625, ptr %227, align 4, !tbaa !5
  %10626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10627 = call i32 @s2n_print_stacktrace(ptr noundef %10626)
  %10628 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10629 = trunc i8 %10628 to i1
  br i1 %10629, label %10630, label %10652

10630:                                            ; preds = %10623
  %10631 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10632 = call i32 @fileno(ptr noundef %10631) #11
  %10633 = call i32 @isatty(i32 noundef %10632) #11
  %10634 = icmp ne i32 %10633, 0
  br i1 %10634, label %10635, label %10652

10635:                                            ; preds = %10630
  %10636 = load i32, ptr %227, align 4, !tbaa !5
  %10637 = call ptr @__errno_location() #12
  store i32 %10636, ptr %10637, align 4, !tbaa !5
  %10638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10639 = load i32, ptr @test_count, align 4, !tbaa !5
  %10640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10641 = load i32, ptr %10640, align 4, !tbaa !5
  %10642 = call ptr @s2n_strerror(i32 noundef %10641, ptr noundef @.str.4)
  %10643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10644 = load i32, ptr %10643, align 4, !tbaa !5
  %10645 = call ptr @s2n_strerror_debug(i32 noundef %10644, ptr noundef @.str.4)
  %10646 = call ptr @__errno_location() #12
  %10647 = load i32, ptr %10646, align 4, !tbaa !5
  %10648 = call ptr @strerror(i32 noundef %10647) #11
  %10649 = call ptr @__errno_location() #12
  %10650 = load i32, ptr %10649, align 4, !tbaa !5
  %10651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10638, ptr noundef @.str.2, i32 noundef %10639, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10642, ptr noundef %10645, ptr noundef %10648, i32 noundef %10650) #11
  br label %10669

10652:                                            ; preds = %10630, %10623
  %10653 = load i32, ptr %227, align 4, !tbaa !5
  %10654 = call ptr @__errno_location() #12
  store i32 %10653, ptr %10654, align 4, !tbaa !5
  %10655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10656 = load i32, ptr @test_count, align 4, !tbaa !5
  %10657 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10658 = load i32, ptr %10657, align 4, !tbaa !5
  %10659 = call ptr @s2n_strerror(i32 noundef %10658, ptr noundef @.str.4)
  %10660 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10661 = load i32, ptr %10660, align 4, !tbaa !5
  %10662 = call ptr @s2n_strerror_debug(i32 noundef %10661, ptr noundef @.str.4)
  %10663 = call ptr @__errno_location() #12
  %10664 = load i32, ptr %10663, align 4, !tbaa !5
  %10665 = call ptr @strerror(i32 noundef %10664) #11
  %10666 = call ptr @__errno_location() #12
  %10667 = load i32, ptr %10666, align 4, !tbaa !5
  %10668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10655, ptr noundef @.str.5, i32 noundef %10656, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 525, ptr noundef %10659, ptr noundef %10662, ptr noundef %10665, i32 noundef %10667) #11
  br label %10669

10669:                                            ; preds = %10652, %10635
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %10670

10670:                                            ; preds = %10669
  br label %10671

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

10672:                                            ; No predecessors!
  br label %10673

10673:                                            ; preds = %10672
  br label %10674

10674:                                            ; preds = %10673, %10603
  br label %10675

10675:                                            ; preds = %10674
  br label %10676

10676:                                            ; preds = %10675
  br label %10677

10677:                                            ; preds = %10676
  %10678 = load i32, ptr @test_count, align 4, !tbaa !5
  %10679 = add nsw i32 %10678, 1
  store i32 %10679, ptr @test_count, align 4, !tbaa !5
  %10680 = load ptr, ptr %218, align 8, !tbaa !9
  %10681 = load ptr, ptr %214, align 8, !tbaa !9
  %10682 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %10680, ptr noundef %10681, i32 noundef 16)
  %10683 = getelementptr inbounds %struct.s2n_result, ptr %228, i32 0, i32 0
  store i32 %10682, ptr %10683, align 4
  %10684 = getelementptr inbounds %struct.s2n_result, ptr %228, i32 0, i32 0
  %10685 = load i32, ptr %10684, align 4
  %10686 = call zeroext i1 @s2n_result_is_ok(i32 %10685)
  br i1 %10686, label %10740, label %10687

10687:                                            ; preds = %10677
  br label %10688

10688:                                            ; preds = %10687
  br label %10689

10689:                                            ; preds = %10688
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  %10690 = call ptr @__errno_location() #12
  %10691 = load i32, ptr %10690, align 4, !tbaa !5
  store i32 %10691, ptr %229, align 4, !tbaa !5
  %10692 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10693 = call i32 @s2n_print_stacktrace(ptr noundef %10692)
  %10694 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10695 = trunc i8 %10694 to i1
  br i1 %10695, label %10696, label %10718

10696:                                            ; preds = %10689
  %10697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10698 = call i32 @fileno(ptr noundef %10697) #11
  %10699 = call i32 @isatty(i32 noundef %10698) #11
  %10700 = icmp ne i32 %10699, 0
  br i1 %10700, label %10701, label %10718

10701:                                            ; preds = %10696
  %10702 = load i32, ptr %229, align 4, !tbaa !5
  %10703 = call ptr @__errno_location() #12
  store i32 %10702, ptr %10703, align 4, !tbaa !5
  %10704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10705 = load i32, ptr @test_count, align 4, !tbaa !5
  %10706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10707 = load i32, ptr %10706, align 4, !tbaa !5
  %10708 = call ptr @s2n_strerror(i32 noundef %10707, ptr noundef @.str.4)
  %10709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10710 = load i32, ptr %10709, align 4, !tbaa !5
  %10711 = call ptr @s2n_strerror_debug(i32 noundef %10710, ptr noundef @.str.4)
  %10712 = call ptr @__errno_location() #12
  %10713 = load i32, ptr %10712, align 4, !tbaa !5
  %10714 = call ptr @strerror(i32 noundef %10713) #11
  %10715 = call ptr @__errno_location() #12
  %10716 = load i32, ptr %10715, align 4, !tbaa !5
  %10717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10704, ptr noundef @.str.2, i32 noundef %10705, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 528, ptr noundef %10708, ptr noundef %10711, ptr noundef %10714, i32 noundef %10716) #11
  br label %10735

10718:                                            ; preds = %10696, %10689
  %10719 = load i32, ptr %229, align 4, !tbaa !5
  %10720 = call ptr @__errno_location() #12
  store i32 %10719, ptr %10720, align 4, !tbaa !5
  %10721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10722 = load i32, ptr @test_count, align 4, !tbaa !5
  %10723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10724 = load i32, ptr %10723, align 4, !tbaa !5
  %10725 = call ptr @s2n_strerror(i32 noundef %10724, ptr noundef @.str.4)
  %10726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10727 = load i32, ptr %10726, align 4, !tbaa !5
  %10728 = call ptr @s2n_strerror_debug(i32 noundef %10727, ptr noundef @.str.4)
  %10729 = call ptr @__errno_location() #12
  %10730 = load i32, ptr %10729, align 4, !tbaa !5
  %10731 = call ptr @strerror(i32 noundef %10730) #11
  %10732 = call ptr @__errno_location() #12
  %10733 = load i32, ptr %10732, align 4, !tbaa !5
  %10734 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10721, ptr noundef @.str.5, i32 noundef %10722, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 528, ptr noundef %10725, ptr noundef %10728, ptr noundef %10731, i32 noundef %10733) #11
  br label %10735

10735:                                            ; preds = %10718, %10701
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  br label %10736

10736:                                            ; preds = %10735
  br label %10737

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

10738:                                            ; No predecessors!
  br label %10739

10739:                                            ; preds = %10738
  br label %10740

10740:                                            ; preds = %10739, %10677
  br label %10741

10741:                                            ; preds = %10740
  br label %10742

10742:                                            ; preds = %10741
  br label %10743

10743:                                            ; preds = %10742
  %10744 = load i32, ptr @test_count, align 4, !tbaa !5
  %10745 = add nsw i32 %10744, 1
  store i32 %10745, ptr @test_count, align 4, !tbaa !5
  %10746 = load ptr, ptr %214, align 8, !tbaa !9
  %10747 = getelementptr inbounds %struct.s2n_connection, ptr %10746, i32 0, i32 11
  %10748 = load i16, ptr %195, align 2, !tbaa !42
  %10749 = zext i16 %10748 to i32
  %10750 = ashr i32 %10749, 3
  %10751 = sext i32 %10750 to i64
  %10752 = getelementptr inbounds [22 x i8], ptr %10747, i64 0, i64 %10751
  %10753 = load i8, ptr %10752, align 1, !tbaa !43
  %10754 = sext i8 %10753 to i32
  %10755 = load i16, ptr %195, align 2, !tbaa !42
  %10756 = zext i16 %10755 to i32
  %10757 = srem i32 %10756, 8
  %10758 = shl i32 1, %10757
  %10759 = and i32 %10754, %10758
  %10760 = icmp ne i32 %10759, 0
  br i1 %10760, label %10761, label %10814

10761:                                            ; preds = %10743
  br label %10762

10762:                                            ; preds = %10761
  br label %10763

10763:                                            ; preds = %10762
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %10764 = call ptr @__errno_location() #12
  %10765 = load i32, ptr %10764, align 4, !tbaa !5
  store i32 %10765, ptr %230, align 4, !tbaa !5
  %10766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10767 = call i32 @s2n_print_stacktrace(ptr noundef %10766)
  %10768 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10769 = trunc i8 %10768 to i1
  br i1 %10769, label %10770, label %10792

10770:                                            ; preds = %10763
  %10771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10772 = call i32 @fileno(ptr noundef %10771) #11
  %10773 = call i32 @isatty(i32 noundef %10772) #11
  %10774 = icmp ne i32 %10773, 0
  br i1 %10774, label %10775, label %10792

10775:                                            ; preds = %10770
  %10776 = load i32, ptr %230, align 4, !tbaa !5
  %10777 = call ptr @__errno_location() #12
  store i32 %10776, ptr %10777, align 4, !tbaa !5
  %10778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10779 = load i32, ptr @test_count, align 4, !tbaa !5
  %10780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10781 = load i32, ptr %10780, align 4, !tbaa !5
  %10782 = call ptr @s2n_strerror(i32 noundef %10781, ptr noundef @.str.4)
  %10783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10784 = load i32, ptr %10783, align 4, !tbaa !5
  %10785 = call ptr @s2n_strerror_debug(i32 noundef %10784, ptr noundef @.str.4)
  %10786 = call ptr @__errno_location() #12
  %10787 = load i32, ptr %10786, align 4, !tbaa !5
  %10788 = call ptr @strerror(i32 noundef %10787) #11
  %10789 = call ptr @__errno_location() #12
  %10790 = load i32, ptr %10789, align 4, !tbaa !5
  %10791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10778, ptr noundef @.str.2, i32 noundef %10779, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 529, ptr noundef %10782, ptr noundef %10785, ptr noundef %10788, i32 noundef %10790) #11
  br label %10809

10792:                                            ; preds = %10770, %10763
  %10793 = load i32, ptr %230, align 4, !tbaa !5
  %10794 = call ptr @__errno_location() #12
  store i32 %10793, ptr %10794, align 4, !tbaa !5
  %10795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10796 = load i32, ptr @test_count, align 4, !tbaa !5
  %10797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10798 = load i32, ptr %10797, align 4, !tbaa !5
  %10799 = call ptr @s2n_strerror(i32 noundef %10798, ptr noundef @.str.4)
  %10800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10801 = load i32, ptr %10800, align 4, !tbaa !5
  %10802 = call ptr @s2n_strerror_debug(i32 noundef %10801, ptr noundef @.str.4)
  %10803 = call ptr @__errno_location() #12
  %10804 = load i32, ptr %10803, align 4, !tbaa !5
  %10805 = call ptr @strerror(i32 noundef %10804) #11
  %10806 = call ptr @__errno_location() #12
  %10807 = load i32, ptr %10806, align 4, !tbaa !5
  %10808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10795, ptr noundef @.str.5, i32 noundef %10796, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 529, ptr noundef %10799, ptr noundef %10802, ptr noundef %10805, i32 noundef %10807) #11
  br label %10809

10809:                                            ; preds = %10792, %10775
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %10810

10810:                                            ; preds = %10809
  br label %10811

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

10812:                                            ; No predecessors!
  br label %10813

10813:                                            ; preds = %10812
  br label %10814

10814:                                            ; preds = %10813, %10743
  br label %10815

10815:                                            ; preds = %10814
  br label %10816

10816:                                            ; preds = %10815
  br label %10817

10817:                                            ; preds = %10816
  %10818 = load i32, ptr @test_count, align 4, !tbaa !5
  %10819 = add nsw i32 %10818, 1
  store i32 %10819, ptr @test_count, align 4, !tbaa !5
  %10820 = load ptr, ptr %218, align 8, !tbaa !9
  %10821 = getelementptr inbounds %struct.s2n_connection, ptr %10820, i32 0, i32 10
  %10822 = load i16, ptr %195, align 2, !tbaa !42
  %10823 = zext i16 %10822 to i32
  %10824 = ashr i32 %10823, 3
  %10825 = sext i32 %10824 to i64
  %10826 = getelementptr inbounds [22 x i8], ptr %10821, i64 0, i64 %10825
  %10827 = load i8, ptr %10826, align 1, !tbaa !43
  %10828 = sext i8 %10827 to i32
  %10829 = load i16, ptr %195, align 2, !tbaa !42
  %10830 = zext i16 %10829 to i32
  %10831 = srem i32 %10830, 8
  %10832 = shl i32 1, %10831
  %10833 = and i32 %10828, %10832
  %10834 = icmp ne i32 %10833, 0
  br i1 %10834, label %10835, label %10888

10835:                                            ; preds = %10817
  br label %10836

10836:                                            ; preds = %10835
  br label %10837

10837:                                            ; preds = %10836
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %10838 = call ptr @__errno_location() #12
  %10839 = load i32, ptr %10838, align 4, !tbaa !5
  store i32 %10839, ptr %231, align 4, !tbaa !5
  %10840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10841 = call i32 @s2n_print_stacktrace(ptr noundef %10840)
  %10842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10843 = trunc i8 %10842 to i1
  br i1 %10843, label %10844, label %10866

10844:                                            ; preds = %10837
  %10845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10846 = call i32 @fileno(ptr noundef %10845) #11
  %10847 = call i32 @isatty(i32 noundef %10846) #11
  %10848 = icmp ne i32 %10847, 0
  br i1 %10848, label %10849, label %10866

10849:                                            ; preds = %10844
  %10850 = load i32, ptr %231, align 4, !tbaa !5
  %10851 = call ptr @__errno_location() #12
  store i32 %10850, ptr %10851, align 4, !tbaa !5
  %10852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10853 = load i32, ptr @test_count, align 4, !tbaa !5
  %10854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10855 = load i32, ptr %10854, align 4, !tbaa !5
  %10856 = call ptr @s2n_strerror(i32 noundef %10855, ptr noundef @.str.4)
  %10857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10858 = load i32, ptr %10857, align 4, !tbaa !5
  %10859 = call ptr @s2n_strerror_debug(i32 noundef %10858, ptr noundef @.str.4)
  %10860 = call ptr @__errno_location() #12
  %10861 = load i32, ptr %10860, align 4, !tbaa !5
  %10862 = call ptr @strerror(i32 noundef %10861) #11
  %10863 = call ptr @__errno_location() #12
  %10864 = load i32, ptr %10863, align 4, !tbaa !5
  %10865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10852, ptr noundef @.str.2, i32 noundef %10853, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 530, ptr noundef %10856, ptr noundef %10859, ptr noundef %10862, i32 noundef %10864) #11
  br label %10883

10866:                                            ; preds = %10844, %10837
  %10867 = load i32, ptr %231, align 4, !tbaa !5
  %10868 = call ptr @__errno_location() #12
  store i32 %10867, ptr %10868, align 4, !tbaa !5
  %10869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10870 = load i32, ptr @test_count, align 4, !tbaa !5
  %10871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10872 = load i32, ptr %10871, align 4, !tbaa !5
  %10873 = call ptr @s2n_strerror(i32 noundef %10872, ptr noundef @.str.4)
  %10874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10875 = load i32, ptr %10874, align 4, !tbaa !5
  %10876 = call ptr @s2n_strerror_debug(i32 noundef %10875, ptr noundef @.str.4)
  %10877 = call ptr @__errno_location() #12
  %10878 = load i32, ptr %10877, align 4, !tbaa !5
  %10879 = call ptr @strerror(i32 noundef %10878) #11
  %10880 = call ptr @__errno_location() #12
  %10881 = load i32, ptr %10880, align 4, !tbaa !5
  %10882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10869, ptr noundef @.str.5, i32 noundef %10870, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 530, ptr noundef %10873, ptr noundef %10876, ptr noundef %10879, i32 noundef %10881) #11
  br label %10883

10883:                                            ; preds = %10866, %10849
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %10884

10884:                                            ; preds = %10883
  br label %10885

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

10886:                                            ; No predecessors!
  br label %10887

10887:                                            ; preds = %10886
  br label %10888

10888:                                            ; preds = %10887, %10817
  br label %10889

10889:                                            ; preds = %10888
  br label %10890

10890:                                            ; preds = %10889
  br label %10891

10891:                                            ; preds = %10890
  %10892 = load i32, ptr @test_count, align 4, !tbaa !5
  %10893 = add nsw i32 %10892, 1
  store i32 %10893, ptr @test_count, align 4, !tbaa !5
  %10894 = load ptr, ptr %214, align 8, !tbaa !9
  %10895 = call i32 @s2n_connection_free(ptr noundef %10894)
  %10896 = icmp eq i32 %10895, -1
  br i1 %10896, label %10897, label %10950

10897:                                            ; preds = %10891
  br label %10898

10898:                                            ; preds = %10897
  br label %10899

10899:                                            ; preds = %10898
  call void @llvm.lifetime.start.p0(i64 4, ptr %232) #11
  %10900 = call ptr @__errno_location() #12
  %10901 = load i32, ptr %10900, align 4, !tbaa !5
  store i32 %10901, ptr %232, align 4, !tbaa !5
  %10902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10903 = call i32 @s2n_print_stacktrace(ptr noundef %10902)
  %10904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10905 = trunc i8 %10904 to i1
  br i1 %10905, label %10906, label %10928

10906:                                            ; preds = %10899
  %10907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10908 = call i32 @fileno(ptr noundef %10907) #11
  %10909 = call i32 @isatty(i32 noundef %10908) #11
  %10910 = icmp ne i32 %10909, 0
  br i1 %10910, label %10911, label %10928

10911:                                            ; preds = %10906
  %10912 = load i32, ptr %232, align 4, !tbaa !5
  %10913 = call ptr @__errno_location() #12
  store i32 %10912, ptr %10913, align 4, !tbaa !5
  %10914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10915 = load i32, ptr @test_count, align 4, !tbaa !5
  %10916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10917 = load i32, ptr %10916, align 4, !tbaa !5
  %10918 = call ptr @s2n_strerror(i32 noundef %10917, ptr noundef @.str.4)
  %10919 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10920 = load i32, ptr %10919, align 4, !tbaa !5
  %10921 = call ptr @s2n_strerror_debug(i32 noundef %10920, ptr noundef @.str.4)
  %10922 = call ptr @__errno_location() #12
  %10923 = load i32, ptr %10922, align 4, !tbaa !5
  %10924 = call ptr @strerror(i32 noundef %10923) #11
  %10925 = call ptr @__errno_location() #12
  %10926 = load i32, ptr %10925, align 4, !tbaa !5
  %10927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10914, ptr noundef @.str.2, i32 noundef %10915, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10918, ptr noundef %10921, ptr noundef %10924, i32 noundef %10926) #11
  br label %10945

10928:                                            ; preds = %10906, %10899
  %10929 = load i32, ptr %232, align 4, !tbaa !5
  %10930 = call ptr @__errno_location() #12
  store i32 %10929, ptr %10930, align 4, !tbaa !5
  %10931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10932 = load i32, ptr @test_count, align 4, !tbaa !5
  %10933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10934 = load i32, ptr %10933, align 4, !tbaa !5
  %10935 = call ptr @s2n_strerror(i32 noundef %10934, ptr noundef @.str.4)
  %10936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10937 = load i32, ptr %10936, align 4, !tbaa !5
  %10938 = call ptr @s2n_strerror_debug(i32 noundef %10937, ptr noundef @.str.4)
  %10939 = call ptr @__errno_location() #12
  %10940 = load i32, ptr %10939, align 4, !tbaa !5
  %10941 = call ptr @strerror(i32 noundef %10940) #11
  %10942 = call ptr @__errno_location() #12
  %10943 = load i32, ptr %10942, align 4, !tbaa !5
  %10944 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10931, ptr noundef @.str.5, i32 noundef %10932, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 532, ptr noundef %10935, ptr noundef %10938, ptr noundef %10941, i32 noundef %10943) #11
  br label %10945

10945:                                            ; preds = %10928, %10911
  call void @llvm.lifetime.end.p0(i64 4, ptr %232) #11
  br label %10946

10946:                                            ; preds = %10945
  br label %10947

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

10948:                                            ; No predecessors!
  br label %10949

10949:                                            ; preds = %10948
  br label %10950

10950:                                            ; preds = %10949, %10891
  br label %10951

10951:                                            ; preds = %10950
  br label %10952

10952:                                            ; preds = %10951
  br label %10953

10953:                                            ; preds = %10952
  %10954 = load i32, ptr @test_count, align 4, !tbaa !5
  %10955 = add nsw i32 %10954, 1
  store i32 %10955, ptr @test_count, align 4, !tbaa !5
  %10956 = load ptr, ptr %218, align 8, !tbaa !9
  %10957 = call i32 @s2n_connection_free(ptr noundef %10956)
  %10958 = icmp eq i32 %10957, -1
  br i1 %10958, label %10959, label %11012

10959:                                            ; preds = %10953
  br label %10960

10960:                                            ; preds = %10959
  br label %10961

10961:                                            ; preds = %10960
  call void @llvm.lifetime.start.p0(i64 4, ptr %233) #11
  %10962 = call ptr @__errno_location() #12
  %10963 = load i32, ptr %10962, align 4, !tbaa !5
  store i32 %10963, ptr %233, align 4, !tbaa !5
  %10964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10965 = call i32 @s2n_print_stacktrace(ptr noundef %10964)
  %10966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10967 = trunc i8 %10966 to i1
  br i1 %10967, label %10968, label %10990

10968:                                            ; preds = %10961
  %10969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10970 = call i32 @fileno(ptr noundef %10969) #11
  %10971 = call i32 @isatty(i32 noundef %10970) #11
  %10972 = icmp ne i32 %10971, 0
  br i1 %10972, label %10973, label %10990

10973:                                            ; preds = %10968
  %10974 = load i32, ptr %233, align 4, !tbaa !5
  %10975 = call ptr @__errno_location() #12
  store i32 %10974, ptr %10975, align 4, !tbaa !5
  %10976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10977 = load i32, ptr @test_count, align 4, !tbaa !5
  %10978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10979 = load i32, ptr %10978, align 4, !tbaa !5
  %10980 = call ptr @s2n_strerror(i32 noundef %10979, ptr noundef @.str.4)
  %10981 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10982 = load i32, ptr %10981, align 4, !tbaa !5
  %10983 = call ptr @s2n_strerror_debug(i32 noundef %10982, ptr noundef @.str.4)
  %10984 = call ptr @__errno_location() #12
  %10985 = load i32, ptr %10984, align 4, !tbaa !5
  %10986 = call ptr @strerror(i32 noundef %10985) #11
  %10987 = call ptr @__errno_location() #12
  %10988 = load i32, ptr %10987, align 4, !tbaa !5
  %10989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10976, ptr noundef @.str.2, i32 noundef %10977, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 533, ptr noundef %10980, ptr noundef %10983, ptr noundef %10986, i32 noundef %10988) #11
  br label %11007

10990:                                            ; preds = %10968, %10961
  %10991 = load i32, ptr %233, align 4, !tbaa !5
  %10992 = call ptr @__errno_location() #12
  store i32 %10991, ptr %10992, align 4, !tbaa !5
  %10993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10994 = load i32, ptr @test_count, align 4, !tbaa !5
  %10995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10996 = load i32, ptr %10995, align 4, !tbaa !5
  %10997 = call ptr @s2n_strerror(i32 noundef %10996, ptr noundef @.str.4)
  %10998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10999 = load i32, ptr %10998, align 4, !tbaa !5
  %11000 = call ptr @s2n_strerror_debug(i32 noundef %10999, ptr noundef @.str.4)
  %11001 = call ptr @__errno_location() #12
  %11002 = load i32, ptr %11001, align 4, !tbaa !5
  %11003 = call ptr @strerror(i32 noundef %11002) #11
  %11004 = call ptr @__errno_location() #12
  %11005 = load i32, ptr %11004, align 4, !tbaa !5
  %11006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10993, ptr noundef @.str.5, i32 noundef %10994, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 533, ptr noundef %10997, ptr noundef %11000, ptr noundef %11003, i32 noundef %11005) #11
  br label %11007

11007:                                            ; preds = %10990, %10973
  call void @llvm.lifetime.end.p0(i64 4, ptr %233) #11
  br label %11008

11008:                                            ; preds = %11007
  br label %11009

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

11010:                                            ; No predecessors!
  br label %11011

11011:                                            ; preds = %11010
  br label %11012

11012:                                            ; preds = %11011, %10953
  br label %11013

11013:                                            ; preds = %11012
  br label %11014

11014:                                            ; preds = %11013
  %11015 = call i32 @s2n_io_pair_close(ptr noundef %221)
  call void @llvm.lifetime.end.p0(i64 8, ptr %221) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %218) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %214) #11
  %11016 = call zeroext i1 (...) @s2n_is_tls13_fully_supported()
  br i1 %11016, label %11017, label %12007

11017:                                            ; preds = %11014
  call void @llvm.lifetime.start.p0(i64 8, ptr %234) #11
  %11018 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %11018, ptr %234, align 8, !tbaa !9
  br label %11019

11019:                                            ; preds = %11017
  %11020 = load i32, ptr @test_count, align 4, !tbaa !5
  %11021 = add nsw i32 %11020, 1
  store i32 %11021, ptr @test_count, align 4, !tbaa !5
  %11022 = load ptr, ptr %234, align 8, !tbaa !9
  %11023 = icmp eq ptr %11022, null
  br i1 %11023, label %11024, label %11077

11024:                                            ; preds = %11019
  br label %11025

11025:                                            ; preds = %11024
  br label %11026

11026:                                            ; preds = %11025
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %11027 = call ptr @__errno_location() #12
  %11028 = load i32, ptr %11027, align 4, !tbaa !5
  store i32 %11028, ptr %235, align 4, !tbaa !5
  %11029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11030 = call i32 @s2n_print_stacktrace(ptr noundef %11029)
  %11031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11032 = trunc i8 %11031 to i1
  br i1 %11032, label %11033, label %11055

11033:                                            ; preds = %11026
  %11034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11035 = call i32 @fileno(ptr noundef %11034) #11
  %11036 = call i32 @isatty(i32 noundef %11035) #11
  %11037 = icmp ne i32 %11036, 0
  br i1 %11037, label %11038, label %11055

11038:                                            ; preds = %11033
  %11039 = load i32, ptr %235, align 4, !tbaa !5
  %11040 = call ptr @__errno_location() #12
  store i32 %11039, ptr %11040, align 4, !tbaa !5
  %11041 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11042 = load i32, ptr @test_count, align 4, !tbaa !5
  %11043 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11044 = load i32, ptr %11043, align 4, !tbaa !5
  %11045 = call ptr @s2n_strerror(i32 noundef %11044, ptr noundef @.str.4)
  %11046 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11047 = load i32, ptr %11046, align 4, !tbaa !5
  %11048 = call ptr @s2n_strerror_debug(i32 noundef %11047, ptr noundef @.str.4)
  %11049 = call ptr @__errno_location() #12
  %11050 = load i32, ptr %11049, align 4, !tbaa !5
  %11051 = call ptr @strerror(i32 noundef %11050) #11
  %11052 = call ptr @__errno_location() #12
  %11053 = load i32, ptr %11052, align 4, !tbaa !5
  %11054 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11041, ptr noundef @.str.2, i32 noundef %11042, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 539, ptr noundef %11045, ptr noundef %11048, ptr noundef %11051, i32 noundef %11053) #11
  br label %11072

11055:                                            ; preds = %11033, %11026
  %11056 = load i32, ptr %235, align 4, !tbaa !5
  %11057 = call ptr @__errno_location() #12
  store i32 %11056, ptr %11057, align 4, !tbaa !5
  %11058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11059 = load i32, ptr @test_count, align 4, !tbaa !5
  %11060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11061 = load i32, ptr %11060, align 4, !tbaa !5
  %11062 = call ptr @s2n_strerror(i32 noundef %11061, ptr noundef @.str.4)
  %11063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11064 = load i32, ptr %11063, align 4, !tbaa !5
  %11065 = call ptr @s2n_strerror_debug(i32 noundef %11064, ptr noundef @.str.4)
  %11066 = call ptr @__errno_location() #12
  %11067 = load i32, ptr %11066, align 4, !tbaa !5
  %11068 = call ptr @strerror(i32 noundef %11067) #11
  %11069 = call ptr @__errno_location() #12
  %11070 = load i32, ptr %11069, align 4, !tbaa !5
  %11071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11058, ptr noundef @.str.5, i32 noundef %11059, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 539, ptr noundef %11062, ptr noundef %11065, ptr noundef %11068, i32 noundef %11070) #11
  br label %11072

11072:                                            ; preds = %11055, %11038
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %11073

11073:                                            ; preds = %11072
  br label %11074

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

11075:                                            ; No predecessors!
  br label %11076

11076:                                            ; preds = %11075
  br label %11077

11077:                                            ; preds = %11076, %11019
  br label %11078

11078:                                            ; preds = %11077
  br label %11079

11079:                                            ; preds = %11078
  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 = load ptr, ptr %234, align 8, !tbaa !9
  %11084 = load ptr, ptr %191, align 8, !tbaa !9
  %11085 = call i32 @s2n_connection_set_config(ptr noundef %11083, ptr noundef %11084)
  %11086 = icmp eq i32 %11085, -1
  br i1 %11086, label %11087, label %11140

11087:                                            ; preds = %11080
  br label %11088

11088:                                            ; preds = %11087
  br label %11089

11089:                                            ; preds = %11088
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %11090 = call ptr @__errno_location() #12
  %11091 = load i32, ptr %11090, align 4, !tbaa !5
  store i32 %11091, ptr %236, align 4, !tbaa !5
  %11092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11093 = call i32 @s2n_print_stacktrace(ptr noundef %11092)
  %11094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11095 = trunc i8 %11094 to i1
  br i1 %11095, label %11096, label %11118

11096:                                            ; preds = %11089
  %11097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11098 = call i32 @fileno(ptr noundef %11097) #11
  %11099 = call i32 @isatty(i32 noundef %11098) #11
  %11100 = icmp ne i32 %11099, 0
  br i1 %11100, label %11101, label %11118

11101:                                            ; preds = %11096
  %11102 = load i32, ptr %236, align 4, !tbaa !5
  %11103 = call ptr @__errno_location() #12
  store i32 %11102, ptr %11103, align 4, !tbaa !5
  %11104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11105 = load i32, ptr @test_count, align 4, !tbaa !5
  %11106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11107 = load i32, ptr %11106, align 4, !tbaa !5
  %11108 = call ptr @s2n_strerror(i32 noundef %11107, ptr noundef @.str.4)
  %11109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11110 = load i32, ptr %11109, align 4, !tbaa !5
  %11111 = call ptr @s2n_strerror_debug(i32 noundef %11110, ptr noundef @.str.4)
  %11112 = call ptr @__errno_location() #12
  %11113 = load i32, ptr %11112, align 4, !tbaa !5
  %11114 = call ptr @strerror(i32 noundef %11113) #11
  %11115 = call ptr @__errno_location() #12
  %11116 = load i32, ptr %11115, align 4, !tbaa !5
  %11117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11104, ptr noundef @.str.2, i32 noundef %11105, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 540, ptr noundef %11108, ptr noundef %11111, ptr noundef %11114, i32 noundef %11116) #11
  br label %11135

11118:                                            ; preds = %11096, %11089
  %11119 = load i32, ptr %236, align 4, !tbaa !5
  %11120 = call ptr @__errno_location() #12
  store i32 %11119, ptr %11120, align 4, !tbaa !5
  %11121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11122 = load i32, ptr @test_count, align 4, !tbaa !5
  %11123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11124 = load i32, ptr %11123, align 4, !tbaa !5
  %11125 = call ptr @s2n_strerror(i32 noundef %11124, ptr noundef @.str.4)
  %11126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11127 = load i32, ptr %11126, align 4, !tbaa !5
  %11128 = call ptr @s2n_strerror_debug(i32 noundef %11127, ptr noundef @.str.4)
  %11129 = call ptr @__errno_location() #12
  %11130 = load i32, ptr %11129, align 4, !tbaa !5
  %11131 = call ptr @strerror(i32 noundef %11130) #11
  %11132 = call ptr @__errno_location() #12
  %11133 = load i32, ptr %11132, align 4, !tbaa !5
  %11134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11121, ptr noundef @.str.5, i32 noundef %11122, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 540, ptr noundef %11125, ptr noundef %11128, ptr noundef %11131, i32 noundef %11133) #11
  br label %11135

11135:                                            ; preds = %11118, %11101
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %11136

11136:                                            ; preds = %11135
  br label %11137

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

11138:                                            ; No predecessors!
  br label %11139

11139:                                            ; preds = %11138
  br label %11140

11140:                                            ; preds = %11139, %11080
  br label %11141

11141:                                            ; preds = %11140
  br label %11142

11142:                                            ; preds = %11141
  call void @llvm.lifetime.start.p0(i64 8, ptr %237) #11
  %11143 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %11143, ptr %237, align 8, !tbaa !9
  br label %11144

11144:                                            ; preds = %11142
  %11145 = load i32, ptr @test_count, align 4, !tbaa !5
  %11146 = add nsw i32 %11145, 1
  store i32 %11146, ptr @test_count, align 4, !tbaa !5
  %11147 = load ptr, ptr %237, align 8, !tbaa !9
  %11148 = icmp eq ptr %11147, null
  br i1 %11148, label %11149, label %11202

11149:                                            ; preds = %11144
  br label %11150

11150:                                            ; preds = %11149
  br label %11151

11151:                                            ; preds = %11150
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %11152 = call ptr @__errno_location() #12
  %11153 = load i32, ptr %11152, align 4, !tbaa !5
  store i32 %11153, ptr %238, align 4, !tbaa !5
  %11154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11155 = call i32 @s2n_print_stacktrace(ptr noundef %11154)
  %11156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11157 = trunc i8 %11156 to i1
  br i1 %11157, label %11158, label %11180

11158:                                            ; preds = %11151
  %11159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11160 = call i32 @fileno(ptr noundef %11159) #11
  %11161 = call i32 @isatty(i32 noundef %11160) #11
  %11162 = icmp ne i32 %11161, 0
  br i1 %11162, label %11163, label %11180

11163:                                            ; preds = %11158
  %11164 = load i32, ptr %238, align 4, !tbaa !5
  %11165 = call ptr @__errno_location() #12
  store i32 %11164, ptr %11165, align 4, !tbaa !5
  %11166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11167 = load i32, ptr @test_count, align 4, !tbaa !5
  %11168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11169 = load i32, ptr %11168, align 4, !tbaa !5
  %11170 = call ptr @s2n_strerror(i32 noundef %11169, ptr noundef @.str.4)
  %11171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11172 = load i32, ptr %11171, align 4, !tbaa !5
  %11173 = call ptr @s2n_strerror_debug(i32 noundef %11172, ptr noundef @.str.4)
  %11174 = call ptr @__errno_location() #12
  %11175 = load i32, ptr %11174, align 4, !tbaa !5
  %11176 = call ptr @strerror(i32 noundef %11175) #11
  %11177 = call ptr @__errno_location() #12
  %11178 = load i32, ptr %11177, align 4, !tbaa !5
  %11179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11166, ptr noundef @.str.2, i32 noundef %11167, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 543, ptr noundef %11170, ptr noundef %11173, ptr noundef %11176, i32 noundef %11178) #11
  br label %11197

11180:                                            ; preds = %11158, %11151
  %11181 = load i32, ptr %238, align 4, !tbaa !5
  %11182 = call ptr @__errno_location() #12
  store i32 %11181, ptr %11182, align 4, !tbaa !5
  %11183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11184 = load i32, ptr @test_count, align 4, !tbaa !5
  %11185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11186 = load i32, ptr %11185, align 4, !tbaa !5
  %11187 = call ptr @s2n_strerror(i32 noundef %11186, ptr noundef @.str.4)
  %11188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11189 = load i32, ptr %11188, align 4, !tbaa !5
  %11190 = call ptr @s2n_strerror_debug(i32 noundef %11189, ptr noundef @.str.4)
  %11191 = call ptr @__errno_location() #12
  %11192 = load i32, ptr %11191, align 4, !tbaa !5
  %11193 = call ptr @strerror(i32 noundef %11192) #11
  %11194 = call ptr @__errno_location() #12
  %11195 = load i32, ptr %11194, align 4, !tbaa !5
  %11196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11183, ptr noundef @.str.5, i32 noundef %11184, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 543, ptr noundef %11187, ptr noundef %11190, ptr noundef %11193, i32 noundef %11195) #11
  br label %11197

11197:                                            ; preds = %11180, %11163
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %11198

11198:                                            ; preds = %11197
  br label %11199

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

11200:                                            ; No predecessors!
  br label %11201

11201:                                            ; preds = %11200
  br label %11202

11202:                                            ; preds = %11201, %11144
  br label %11203

11203:                                            ; preds = %11202
  br label %11204

11204:                                            ; preds = %11203
  br label %11205

11205:                                            ; preds = %11204
  %11206 = load i32, ptr @test_count, align 4, !tbaa !5
  %11207 = add nsw i32 %11206, 1
  store i32 %11207, ptr @test_count, align 4, !tbaa !5
  %11208 = load ptr, ptr %237, align 8, !tbaa !9
  %11209 = load ptr, ptr %191, align 8, !tbaa !9
  %11210 = call i32 @s2n_connection_set_config(ptr noundef %11208, ptr noundef %11209)
  %11211 = icmp eq i32 %11210, -1
  br i1 %11211, label %11212, label %11265

11212:                                            ; preds = %11205
  br label %11213

11213:                                            ; preds = %11212
  br label %11214

11214:                                            ; preds = %11213
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #11
  %11215 = call ptr @__errno_location() #12
  %11216 = load i32, ptr %11215, align 4, !tbaa !5
  store i32 %11216, ptr %239, align 4, !tbaa !5
  %11217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11218 = call i32 @s2n_print_stacktrace(ptr noundef %11217)
  %11219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11220 = trunc i8 %11219 to i1
  br i1 %11220, label %11221, label %11243

11221:                                            ; preds = %11214
  %11222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11223 = call i32 @fileno(ptr noundef %11222) #11
  %11224 = call i32 @isatty(i32 noundef %11223) #11
  %11225 = icmp ne i32 %11224, 0
  br i1 %11225, label %11226, label %11243

11226:                                            ; preds = %11221
  %11227 = load i32, ptr %239, align 4, !tbaa !5
  %11228 = call ptr @__errno_location() #12
  store i32 %11227, ptr %11228, align 4, !tbaa !5
  %11229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11230 = load i32, ptr @test_count, align 4, !tbaa !5
  %11231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11232 = load i32, ptr %11231, align 4, !tbaa !5
  %11233 = call ptr @s2n_strerror(i32 noundef %11232, ptr noundef @.str.4)
  %11234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11235 = load i32, ptr %11234, align 4, !tbaa !5
  %11236 = call ptr @s2n_strerror_debug(i32 noundef %11235, ptr noundef @.str.4)
  %11237 = call ptr @__errno_location() #12
  %11238 = load i32, ptr %11237, align 4, !tbaa !5
  %11239 = call ptr @strerror(i32 noundef %11238) #11
  %11240 = call ptr @__errno_location() #12
  %11241 = load i32, ptr %11240, align 4, !tbaa !5
  %11242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11229, ptr noundef @.str.2, i32 noundef %11230, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 544, ptr noundef %11233, ptr noundef %11236, ptr noundef %11239, i32 noundef %11241) #11
  br label %11260

11243:                                            ; preds = %11221, %11214
  %11244 = load i32, ptr %239, align 4, !tbaa !5
  %11245 = call ptr @__errno_location() #12
  store i32 %11244, ptr %11245, align 4, !tbaa !5
  %11246 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11247 = load i32, ptr @test_count, align 4, !tbaa !5
  %11248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11249 = load i32, ptr %11248, align 4, !tbaa !5
  %11250 = call ptr @s2n_strerror(i32 noundef %11249, ptr noundef @.str.4)
  %11251 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11252 = load i32, ptr %11251, align 4, !tbaa !5
  %11253 = call ptr @s2n_strerror_debug(i32 noundef %11252, ptr noundef @.str.4)
  %11254 = call ptr @__errno_location() #12
  %11255 = load i32, ptr %11254, align 4, !tbaa !5
  %11256 = call ptr @strerror(i32 noundef %11255) #11
  %11257 = call ptr @__errno_location() #12
  %11258 = load i32, ptr %11257, align 4, !tbaa !5
  %11259 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11246, ptr noundef @.str.5, i32 noundef %11247, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 544, ptr noundef %11250, ptr noundef %11253, ptr noundef %11256, i32 noundef %11258) #11
  br label %11260

11260:                                            ; preds = %11243, %11226
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #11
  br label %11261

11261:                                            ; preds = %11260
  br label %11262

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

11263:                                            ; No predecessors!
  br label %11264

11264:                                            ; preds = %11263
  br label %11265

11265:                                            ; preds = %11264, %11205
  br label %11266

11266:                                            ; preds = %11265
  br label %11267

11267:                                            ; preds = %11266
  br label %11268

11268:                                            ; preds = %11267
  %11269 = load i32, ptr @test_count, align 4, !tbaa !5
  %11270 = add nsw i32 %11269, 1
  store i32 %11270, ptr @test_count, align 4, !tbaa !5
  %11271 = load ptr, ptr %237, align 8, !tbaa !9
  %11272 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef %11271, ptr noundef @.str.106)
  %11273 = icmp eq i32 %11272, -1
  br i1 %11273, label %11274, label %11327

11274:                                            ; preds = %11268
  br label %11275

11275:                                            ; preds = %11274
  br label %11276

11276:                                            ; preds = %11275
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %11277 = call ptr @__errno_location() #12
  %11278 = load i32, ptr %11277, align 4, !tbaa !5
  store i32 %11278, ptr %240, align 4, !tbaa !5
  %11279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11280 = call i32 @s2n_print_stacktrace(ptr noundef %11279)
  %11281 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11282 = trunc i8 %11281 to i1
  br i1 %11282, label %11283, label %11305

11283:                                            ; preds = %11276
  %11284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11285 = call i32 @fileno(ptr noundef %11284) #11
  %11286 = call i32 @isatty(i32 noundef %11285) #11
  %11287 = icmp ne i32 %11286, 0
  br i1 %11287, label %11288, label %11305

11288:                                            ; preds = %11283
  %11289 = load i32, ptr %240, align 4, !tbaa !5
  %11290 = call ptr @__errno_location() #12
  store i32 %11289, ptr %11290, align 4, !tbaa !5
  %11291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11292 = load i32, ptr @test_count, align 4, !tbaa !5
  %11293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11294 = load i32, ptr %11293, align 4, !tbaa !5
  %11295 = call ptr @s2n_strerror(i32 noundef %11294, ptr noundef @.str.4)
  %11296 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11297 = load i32, ptr %11296, align 4, !tbaa !5
  %11298 = call ptr @s2n_strerror_debug(i32 noundef %11297, ptr noundef @.str.4)
  %11299 = call ptr @__errno_location() #12
  %11300 = load i32, ptr %11299, align 4, !tbaa !5
  %11301 = call ptr @strerror(i32 noundef %11300) #11
  %11302 = call ptr @__errno_location() #12
  %11303 = load i32, ptr %11302, align 4, !tbaa !5
  %11304 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11291, ptr noundef @.str.2, i32 noundef %11292, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 545, ptr noundef %11295, ptr noundef %11298, ptr noundef %11301, i32 noundef %11303) #11
  br label %11322

11305:                                            ; preds = %11283, %11276
  %11306 = load i32, ptr %240, align 4, !tbaa !5
  %11307 = call ptr @__errno_location() #12
  store i32 %11306, ptr %11307, align 4, !tbaa !5
  %11308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11309 = load i32, ptr @test_count, align 4, !tbaa !5
  %11310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11311 = load i32, ptr %11310, align 4, !tbaa !5
  %11312 = call ptr @s2n_strerror(i32 noundef %11311, ptr noundef @.str.4)
  %11313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11314 = load i32, ptr %11313, align 4, !tbaa !5
  %11315 = call ptr @s2n_strerror_debug(i32 noundef %11314, ptr noundef @.str.4)
  %11316 = call ptr @__errno_location() #12
  %11317 = load i32, ptr %11316, align 4, !tbaa !5
  %11318 = call ptr @strerror(i32 noundef %11317) #11
  %11319 = call ptr @__errno_location() #12
  %11320 = load i32, ptr %11319, align 4, !tbaa !5
  %11321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11308, ptr noundef @.str.5, i32 noundef %11309, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 545, ptr noundef %11312, ptr noundef %11315, ptr noundef %11318, i32 noundef %11320) #11
  br label %11322

11322:                                            ; preds = %11305, %11288
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %11323

11323:                                            ; preds = %11322
  br label %11324

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

11325:                                            ; No predecessors!
  br label %11326

11326:                                            ; preds = %11325
  br label %11327

11327:                                            ; preds = %11326, %11268
  br label %11328

11328:                                            ; preds = %11327
  br label %11329

11329:                                            ; preds = %11328
  call void @llvm.lifetime.start.p0(i64 8, ptr %241) #11
  call void @llvm.memset.p0.i64(ptr align 4 %241, i8 0, i64 8, i1 false)
  br label %11330

11330:                                            ; preds = %11329
  %11331 = load i32, ptr @test_count, align 4, !tbaa !5
  %11332 = add nsw i32 %11331, 1
  store i32 %11332, ptr @test_count, align 4, !tbaa !5
  %11333 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef %241)
  %11334 = icmp eq i32 %11333, -1
  br i1 %11334, label %11335, label %11388

11335:                                            ; preds = %11330
  br label %11336

11336:                                            ; preds = %11335
  br label %11337

11337:                                            ; preds = %11336
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %11338 = call ptr @__errno_location() #12
  %11339 = load i32, ptr %11338, align 4, !tbaa !5
  store i32 %11339, ptr %242, align 4, !tbaa !5
  %11340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11341 = call i32 @s2n_print_stacktrace(ptr noundef %11340)
  %11342 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11343 = trunc i8 %11342 to i1
  br i1 %11343, label %11344, label %11366

11344:                                            ; preds = %11337
  %11345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11346 = call i32 @fileno(ptr noundef %11345) #11
  %11347 = call i32 @isatty(i32 noundef %11346) #11
  %11348 = icmp ne i32 %11347, 0
  br i1 %11348, label %11349, label %11366

11349:                                            ; preds = %11344
  %11350 = load i32, ptr %242, align 4, !tbaa !5
  %11351 = call ptr @__errno_location() #12
  store i32 %11350, ptr %11351, align 4, !tbaa !5
  %11352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11353 = load i32, ptr @test_count, align 4, !tbaa !5
  %11354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11355 = load i32, ptr %11354, align 4, !tbaa !5
  %11356 = call ptr @s2n_strerror(i32 noundef %11355, ptr noundef @.str.4)
  %11357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11358 = load i32, ptr %11357, align 4, !tbaa !5
  %11359 = call ptr @s2n_strerror_debug(i32 noundef %11358, ptr noundef @.str.4)
  %11360 = call ptr @__errno_location() #12
  %11361 = load i32, ptr %11360, align 4, !tbaa !5
  %11362 = call ptr @strerror(i32 noundef %11361) #11
  %11363 = call ptr @__errno_location() #12
  %11364 = load i32, ptr %11363, align 4, !tbaa !5
  %11365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11352, ptr noundef @.str.2, i32 noundef %11353, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 548, ptr noundef %11356, ptr noundef %11359, ptr noundef %11362, i32 noundef %11364) #11
  br label %11383

11366:                                            ; preds = %11344, %11337
  %11367 = load i32, ptr %242, align 4, !tbaa !5
  %11368 = call ptr @__errno_location() #12
  store i32 %11367, ptr %11368, align 4, !tbaa !5
  %11369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11370 = load i32, ptr @test_count, align 4, !tbaa !5
  %11371 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11372 = load i32, ptr %11371, align 4, !tbaa !5
  %11373 = call ptr @s2n_strerror(i32 noundef %11372, ptr noundef @.str.4)
  %11374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11375 = load i32, ptr %11374, align 4, !tbaa !5
  %11376 = call ptr @s2n_strerror_debug(i32 noundef %11375, ptr noundef @.str.4)
  %11377 = call ptr @__errno_location() #12
  %11378 = load i32, ptr %11377, align 4, !tbaa !5
  %11379 = call ptr @strerror(i32 noundef %11378) #11
  %11380 = call ptr @__errno_location() #12
  %11381 = load i32, ptr %11380, align 4, !tbaa !5
  %11382 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11369, ptr noundef @.str.5, i32 noundef %11370, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 548, ptr noundef %11373, ptr noundef %11376, ptr noundef %11379, i32 noundef %11381) #11
  br label %11383

11383:                                            ; preds = %11366, %11349
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %11384

11384:                                            ; preds = %11383
  br label %11385

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

11386:                                            ; No predecessors!
  br label %11387

11387:                                            ; preds = %11386
  br label %11388

11388:                                            ; preds = %11387, %11330
  br label %11389

11389:                                            ; preds = %11388
  br label %11390

11390:                                            ; preds = %11389
  br label %11391

11391:                                            ; preds = %11390
  %11392 = load i32, ptr @test_count, align 4, !tbaa !5
  %11393 = add nsw i32 %11392, 1
  store i32 %11393, ptr @test_count, align 4, !tbaa !5
  %11394 = load ptr, ptr %234, align 8, !tbaa !9
  %11395 = load ptr, ptr %237, align 8, !tbaa !9
  %11396 = call i32 @s2n_connections_set_io_pair(ptr noundef %11394, ptr noundef %11395, ptr noundef %241)
  %11397 = icmp eq i32 %11396, -1
  br i1 %11397, label %11398, label %11451

11398:                                            ; preds = %11391
  br label %11399

11399:                                            ; preds = %11398
  br label %11400

11400:                                            ; preds = %11399
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %11401 = call ptr @__errno_location() #12
  %11402 = load i32, ptr %11401, align 4, !tbaa !5
  store i32 %11402, ptr %243, align 4, !tbaa !5
  %11403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11404 = call i32 @s2n_print_stacktrace(ptr noundef %11403)
  %11405 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11406 = trunc i8 %11405 to i1
  br i1 %11406, label %11407, label %11429

11407:                                            ; preds = %11400
  %11408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11409 = call i32 @fileno(ptr noundef %11408) #11
  %11410 = call i32 @isatty(i32 noundef %11409) #11
  %11411 = icmp ne i32 %11410, 0
  br i1 %11411, label %11412, label %11429

11412:                                            ; preds = %11407
  %11413 = load i32, ptr %243, align 4, !tbaa !5
  %11414 = call ptr @__errno_location() #12
  store i32 %11413, ptr %11414, align 4, !tbaa !5
  %11415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11416 = load i32, ptr @test_count, align 4, !tbaa !5
  %11417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11418 = load i32, ptr %11417, align 4, !tbaa !5
  %11419 = call ptr @s2n_strerror(i32 noundef %11418, ptr noundef @.str.4)
  %11420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11421 = load i32, ptr %11420, align 4, !tbaa !5
  %11422 = call ptr @s2n_strerror_debug(i32 noundef %11421, ptr noundef @.str.4)
  %11423 = call ptr @__errno_location() #12
  %11424 = load i32, ptr %11423, align 4, !tbaa !5
  %11425 = call ptr @strerror(i32 noundef %11424) #11
  %11426 = call ptr @__errno_location() #12
  %11427 = load i32, ptr %11426, align 4, !tbaa !5
  %11428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11415, ptr noundef @.str.2, i32 noundef %11416, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 549, ptr noundef %11419, ptr noundef %11422, ptr noundef %11425, i32 noundef %11427) #11
  br label %11446

11429:                                            ; preds = %11407, %11400
  %11430 = load i32, ptr %243, align 4, !tbaa !5
  %11431 = call ptr @__errno_location() #12
  store i32 %11430, ptr %11431, align 4, !tbaa !5
  %11432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11433 = load i32, ptr @test_count, align 4, !tbaa !5
  %11434 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11435 = load i32, ptr %11434, align 4, !tbaa !5
  %11436 = call ptr @s2n_strerror(i32 noundef %11435, ptr noundef @.str.4)
  %11437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11438 = load i32, ptr %11437, align 4, !tbaa !5
  %11439 = call ptr @s2n_strerror_debug(i32 noundef %11438, ptr noundef @.str.4)
  %11440 = call ptr @__errno_location() #12
  %11441 = load i32, ptr %11440, align 4, !tbaa !5
  %11442 = call ptr @strerror(i32 noundef %11441) #11
  %11443 = call ptr @__errno_location() #12
  %11444 = load i32, ptr %11443, align 4, !tbaa !5
  %11445 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11432, ptr noundef @.str.5, i32 noundef %11433, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 549, ptr noundef %11436, ptr noundef %11439, ptr noundef %11442, i32 noundef %11444) #11
  br label %11446

11446:                                            ; preds = %11429, %11412
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %11447

11447:                                            ; preds = %11446
  br label %11448

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

11449:                                            ; No predecessors!
  br label %11450

11450:                                            ; preds = %11449
  br label %11451

11451:                                            ; preds = %11450, %11391
  br label %11452

11452:                                            ; preds = %11451
  br label %11453

11453:                                            ; preds = %11452
  br label %11454

11454:                                            ; preds = %11453
  %11455 = load i32, ptr @test_count, align 4, !tbaa !5
  %11456 = add nsw i32 %11455, 1
  store i32 %11456, ptr @test_count, align 4, !tbaa !5
  %11457 = load ptr, ptr %237, align 8, !tbaa !9
  %11458 = load ptr, ptr %234, align 8, !tbaa !9
  %11459 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %11457, ptr noundef %11458, i32 noundef 1)
  %11460 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  store i32 %11459, ptr %11460, align 4
  %11461 = getelementptr inbounds %struct.s2n_result, ptr %244, i32 0, i32 0
  %11462 = load i32, ptr %11461, align 4
  %11463 = call zeroext i1 @s2n_result_is_ok(i32 %11462)
  br i1 %11463, label %11517, label %11464

11464:                                            ; preds = %11454
  br label %11465

11465:                                            ; preds = %11464
  br label %11466

11466:                                            ; preds = %11465
  call void @llvm.lifetime.start.p0(i64 4, ptr %245) #11
  %11467 = call ptr @__errno_location() #12
  %11468 = load i32, ptr %11467, align 4, !tbaa !5
  store i32 %11468, ptr %245, align 4, !tbaa !5
  %11469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11470 = call i32 @s2n_print_stacktrace(ptr noundef %11469)
  %11471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11472 = trunc i8 %11471 to i1
  br i1 %11472, label %11473, label %11495

11473:                                            ; preds = %11466
  %11474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11475 = call i32 @fileno(ptr noundef %11474) #11
  %11476 = call i32 @isatty(i32 noundef %11475) #11
  %11477 = icmp ne i32 %11476, 0
  br i1 %11477, label %11478, label %11495

11478:                                            ; preds = %11473
  %11479 = load i32, ptr %245, align 4, !tbaa !5
  %11480 = call ptr @__errno_location() #12
  store i32 %11479, ptr %11480, align 4, !tbaa !5
  %11481 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11482 = load i32, ptr @test_count, align 4, !tbaa !5
  %11483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11484 = load i32, ptr %11483, align 4, !tbaa !5
  %11485 = call ptr @s2n_strerror(i32 noundef %11484, ptr noundef @.str.4)
  %11486 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11487 = load i32, ptr %11486, align 4, !tbaa !5
  %11488 = call ptr @s2n_strerror_debug(i32 noundef %11487, ptr noundef @.str.4)
  %11489 = call ptr @__errno_location() #12
  %11490 = load i32, ptr %11489, align 4, !tbaa !5
  %11491 = call ptr @strerror(i32 noundef %11490) #11
  %11492 = call ptr @__errno_location() #12
  %11493 = load i32, ptr %11492, align 4, !tbaa !5
  %11494 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11481, ptr noundef @.str.2, i32 noundef %11482, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 552, ptr noundef %11485, ptr noundef %11488, ptr noundef %11491, i32 noundef %11493) #11
  br label %11512

11495:                                            ; preds = %11473, %11466
  %11496 = load i32, ptr %245, align 4, !tbaa !5
  %11497 = call ptr @__errno_location() #12
  store i32 %11496, ptr %11497, align 4, !tbaa !5
  %11498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11499 = load i32, ptr @test_count, align 4, !tbaa !5
  %11500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11501 = load i32, ptr %11500, align 4, !tbaa !5
  %11502 = call ptr @s2n_strerror(i32 noundef %11501, ptr noundef @.str.4)
  %11503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11504 = load i32, ptr %11503, align 4, !tbaa !5
  %11505 = call ptr @s2n_strerror_debug(i32 noundef %11504, ptr noundef @.str.4)
  %11506 = call ptr @__errno_location() #12
  %11507 = load i32, ptr %11506, align 4, !tbaa !5
  %11508 = call ptr @strerror(i32 noundef %11507) #11
  %11509 = call ptr @__errno_location() #12
  %11510 = load i32, ptr %11509, align 4, !tbaa !5
  %11511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11498, ptr noundef @.str.5, i32 noundef %11499, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 552, ptr noundef %11502, ptr noundef %11505, ptr noundef %11508, i32 noundef %11510) #11
  br label %11512

11512:                                            ; preds = %11495, %11478
  call void @llvm.lifetime.end.p0(i64 4, ptr %245) #11
  br label %11513

11513:                                            ; preds = %11512
  br label %11514

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

11515:                                            ; No predecessors!
  br label %11516

11516:                                            ; preds = %11515
  br label %11517

11517:                                            ; preds = %11516, %11454
  br label %11518

11518:                                            ; preds = %11517
  br label %11519

11519:                                            ; preds = %11518
  br label %11520

11520:                                            ; preds = %11519
  %11521 = load i32, ptr @test_count, align 4, !tbaa !5
  %11522 = add nsw i32 %11521, 1
  store i32 %11522, ptr @test_count, align 4, !tbaa !5
  %11523 = load ptr, ptr %234, align 8, !tbaa !9
  %11524 = getelementptr inbounds %struct.s2n_connection, ptr %11523, i32 0, i32 10
  %11525 = load i16, ptr %195, align 2, !tbaa !42
  %11526 = zext i16 %11525 to i32
  %11527 = ashr i32 %11526, 3
  %11528 = sext i32 %11527 to i64
  %11529 = getelementptr inbounds [22 x i8], ptr %11524, i64 0, i64 %11528
  %11530 = load i8, ptr %11529, align 1, !tbaa !43
  %11531 = sext i8 %11530 to i32
  %11532 = load i16, ptr %195, align 2, !tbaa !42
  %11533 = zext i16 %11532 to i32
  %11534 = srem i32 %11533, 8
  %11535 = shl i32 1, %11534
  %11536 = and i32 %11531, %11535
  %11537 = icmp ne i32 %11536, 0
  br i1 %11537, label %11591, label %11538

11538:                                            ; preds = %11520
  br label %11539

11539:                                            ; preds = %11538
  br label %11540

11540:                                            ; preds = %11539
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  %11541 = call ptr @__errno_location() #12
  %11542 = load i32, ptr %11541, align 4, !tbaa !5
  store i32 %11542, ptr %246, align 4, !tbaa !5
  %11543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11544 = call i32 @s2n_print_stacktrace(ptr noundef %11543)
  %11545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11546 = trunc i8 %11545 to i1
  br i1 %11546, label %11547, label %11569

11547:                                            ; preds = %11540
  %11548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11549 = call i32 @fileno(ptr noundef %11548) #11
  %11550 = call i32 @isatty(i32 noundef %11549) #11
  %11551 = icmp ne i32 %11550, 0
  br i1 %11551, label %11552, label %11569

11552:                                            ; preds = %11547
  %11553 = load i32, ptr %246, align 4, !tbaa !5
  %11554 = call ptr @__errno_location() #12
  store i32 %11553, ptr %11554, align 4, !tbaa !5
  %11555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11556 = load i32, ptr @test_count, align 4, !tbaa !5
  %11557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11558 = load i32, ptr %11557, align 4, !tbaa !5
  %11559 = call ptr @s2n_strerror(i32 noundef %11558, ptr noundef @.str.4)
  %11560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11561 = load i32, ptr %11560, align 4, !tbaa !5
  %11562 = call ptr @s2n_strerror_debug(i32 noundef %11561, ptr noundef @.str.4)
  %11563 = call ptr @__errno_location() #12
  %11564 = load i32, ptr %11563, align 4, !tbaa !5
  %11565 = call ptr @strerror(i32 noundef %11564) #11
  %11566 = call ptr @__errno_location() #12
  %11567 = load i32, ptr %11566, align 4, !tbaa !5
  %11568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11555, ptr noundef @.str.2, i32 noundef %11556, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 553, ptr noundef %11559, ptr noundef %11562, ptr noundef %11565, i32 noundef %11567) #11
  br label %11586

11569:                                            ; preds = %11547, %11540
  %11570 = load i32, ptr %246, align 4, !tbaa !5
  %11571 = call ptr @__errno_location() #12
  store i32 %11570, ptr %11571, align 4, !tbaa !5
  %11572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11573 = load i32, ptr @test_count, align 4, !tbaa !5
  %11574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11575 = load i32, ptr %11574, align 4, !tbaa !5
  %11576 = call ptr @s2n_strerror(i32 noundef %11575, ptr noundef @.str.4)
  %11577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11578 = load i32, ptr %11577, align 4, !tbaa !5
  %11579 = call ptr @s2n_strerror_debug(i32 noundef %11578, ptr noundef @.str.4)
  %11580 = call ptr @__errno_location() #12
  %11581 = load i32, ptr %11580, align 4, !tbaa !5
  %11582 = call ptr @strerror(i32 noundef %11581) #11
  %11583 = call ptr @__errno_location() #12
  %11584 = load i32, ptr %11583, align 4, !tbaa !5
  %11585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11572, ptr noundef @.str.5, i32 noundef %11573, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 553, ptr noundef %11576, ptr noundef %11579, ptr noundef %11582, i32 noundef %11584) #11
  br label %11586

11586:                                            ; preds = %11569, %11552
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  br label %11587

11587:                                            ; preds = %11586
  br label %11588

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

11589:                                            ; No predecessors!
  br label %11590

11590:                                            ; preds = %11589
  br label %11591

11591:                                            ; preds = %11590, %11520
  br label %11592

11592:                                            ; preds = %11591
  br label %11593

11593:                                            ; preds = %11592
  br label %11594

11594:                                            ; preds = %11593
  %11595 = load i32, ptr @test_count, align 4, !tbaa !5
  %11596 = add nsw i32 %11595, 1
  store i32 %11596, ptr @test_count, align 4, !tbaa !5
  %11597 = load ptr, ptr %237, align 8, !tbaa !9
  %11598 = getelementptr inbounds %struct.s2n_connection, ptr %11597, i32 0, i32 11
  %11599 = load i16, ptr %195, align 2, !tbaa !42
  %11600 = zext i16 %11599 to i32
  %11601 = ashr i32 %11600, 3
  %11602 = sext i32 %11601 to i64
  %11603 = getelementptr inbounds [22 x i8], ptr %11598, i64 0, i64 %11602
  %11604 = load i8, ptr %11603, align 1, !tbaa !43
  %11605 = sext i8 %11604 to i32
  %11606 = load i16, ptr %195, align 2, !tbaa !42
  %11607 = zext i16 %11606 to i32
  %11608 = srem i32 %11607, 8
  %11609 = shl i32 1, %11608
  %11610 = and i32 %11605, %11609
  %11611 = icmp ne i32 %11610, 0
  br i1 %11611, label %11612, label %11665

11612:                                            ; preds = %11594
  br label %11613

11613:                                            ; preds = %11612
  br label %11614

11614:                                            ; preds = %11613
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %11615 = call ptr @__errno_location() #12
  %11616 = load i32, ptr %11615, align 4, !tbaa !5
  store i32 %11616, ptr %247, align 4, !tbaa !5
  %11617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11618 = call i32 @s2n_print_stacktrace(ptr noundef %11617)
  %11619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11620 = trunc i8 %11619 to i1
  br i1 %11620, label %11621, label %11643

11621:                                            ; preds = %11614
  %11622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11623 = call i32 @fileno(ptr noundef %11622) #11
  %11624 = call i32 @isatty(i32 noundef %11623) #11
  %11625 = icmp ne i32 %11624, 0
  br i1 %11625, label %11626, label %11643

11626:                                            ; preds = %11621
  %11627 = load i32, ptr %247, align 4, !tbaa !5
  %11628 = call ptr @__errno_location() #12
  store i32 %11627, ptr %11628, align 4, !tbaa !5
  %11629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11630 = load i32, ptr @test_count, align 4, !tbaa !5
  %11631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11632 = load i32, ptr %11631, align 4, !tbaa !5
  %11633 = call ptr @s2n_strerror(i32 noundef %11632, ptr noundef @.str.4)
  %11634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11635 = load i32, ptr %11634, align 4, !tbaa !5
  %11636 = call ptr @s2n_strerror_debug(i32 noundef %11635, ptr noundef @.str.4)
  %11637 = call ptr @__errno_location() #12
  %11638 = load i32, ptr %11637, align 4, !tbaa !5
  %11639 = call ptr @strerror(i32 noundef %11638) #11
  %11640 = call ptr @__errno_location() #12
  %11641 = load i32, ptr %11640, align 4, !tbaa !5
  %11642 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11629, ptr noundef @.str.2, i32 noundef %11630, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11633, ptr noundef %11636, ptr noundef %11639, i32 noundef %11641) #11
  br label %11660

11643:                                            ; preds = %11621, %11614
  %11644 = load i32, ptr %247, 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.5, i32 noundef %11647, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 554, ptr noundef %11650, ptr noundef %11653, ptr noundef %11656, i32 noundef %11658) #11
  br label %11660

11660:                                            ; preds = %11643, %11626
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %11661

11661:                                            ; preds = %11660
  br label %11662

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

11663:                                            ; No predecessors!
  br label %11664

11664:                                            ; preds = %11663
  br label %11665

11665:                                            ; preds = %11664, %11594
  br label %11666

11666:                                            ; preds = %11665
  br label %11667

11667:                                            ; preds = %11666
  br label %11668

11668:                                            ; preds = %11667
  %11669 = load i32, ptr @test_count, align 4, !tbaa !5
  %11670 = add nsw i32 %11669, 1
  store i32 %11670, ptr @test_count, align 4, !tbaa !5
  %11671 = load ptr, ptr %237, align 8, !tbaa !9
  %11672 = load ptr, ptr %234, align 8, !tbaa !9
  %11673 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef %11671, ptr noundef %11672, i32 noundef 16)
  %11674 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  store i32 %11673, ptr %11674, align 4
  %11675 = getelementptr inbounds %struct.s2n_result, ptr %248, i32 0, i32 0
  %11676 = load i32, ptr %11675, align 4
  %11677 = call zeroext i1 @s2n_result_is_ok(i32 %11676)
  br i1 %11677, label %11731, label %11678

11678:                                            ; preds = %11668
  br label %11679

11679:                                            ; preds = %11678
  br label %11680

11680:                                            ; preds = %11679
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %11681 = call ptr @__errno_location() #12
  %11682 = load i32, ptr %11681, align 4, !tbaa !5
  store i32 %11682, ptr %249, align 4, !tbaa !5
  %11683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11684 = call i32 @s2n_print_stacktrace(ptr noundef %11683)
  %11685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11686 = trunc i8 %11685 to i1
  br i1 %11686, label %11687, label %11709

11687:                                            ; preds = %11680
  %11688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11689 = call i32 @fileno(ptr noundef %11688) #11
  %11690 = call i32 @isatty(i32 noundef %11689) #11
  %11691 = icmp ne i32 %11690, 0
  br i1 %11691, label %11692, label %11709

11692:                                            ; preds = %11687
  %11693 = load i32, ptr %249, align 4, !tbaa !5
  %11694 = call ptr @__errno_location() #12
  store i32 %11693, ptr %11694, align 4, !tbaa !5
  %11695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11696 = load i32, ptr @test_count, align 4, !tbaa !5
  %11697 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11698 = load i32, ptr %11697, align 4, !tbaa !5
  %11699 = call ptr @s2n_strerror(i32 noundef %11698, ptr noundef @.str.4)
  %11700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11701 = load i32, ptr %11700, align 4, !tbaa !5
  %11702 = call ptr @s2n_strerror_debug(i32 noundef %11701, ptr noundef @.str.4)
  %11703 = call ptr @__errno_location() #12
  %11704 = load i32, ptr %11703, align 4, !tbaa !5
  %11705 = call ptr @strerror(i32 noundef %11704) #11
  %11706 = call ptr @__errno_location() #12
  %11707 = load i32, ptr %11706, align 4, !tbaa !5
  %11708 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11695, ptr noundef @.str.2, i32 noundef %11696, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 557, ptr noundef %11699, ptr noundef %11702, ptr noundef %11705, i32 noundef %11707) #11
  br label %11726

11709:                                            ; preds = %11687, %11680
  %11710 = load i32, ptr %249, 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.5, i32 noundef %11713, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 557, ptr noundef %11716, ptr noundef %11719, ptr noundef %11722, i32 noundef %11724) #11
  br label %11726

11726:                                            ; preds = %11709, %11692
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %11727

11727:                                            ; preds = %11726
  br label %11728

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

11729:                                            ; No predecessors!
  br label %11730

11730:                                            ; preds = %11729
  br label %11731

11731:                                            ; preds = %11730, %11668
  br label %11732

11732:                                            ; preds = %11731
  br label %11733

11733:                                            ; preds = %11732
  br label %11734

11734:                                            ; preds = %11733
  %11735 = load i32, ptr @test_count, align 4, !tbaa !5
  %11736 = add nsw i32 %11735, 1
  store i32 %11736, ptr @test_count, align 4, !tbaa !5
  %11737 = load ptr, ptr %234, align 8, !tbaa !9
  %11738 = getelementptr inbounds %struct.s2n_connection, ptr %11737, i32 0, i32 11
  %11739 = load i16, ptr %195, align 2, !tbaa !42
  %11740 = zext i16 %11739 to i32
  %11741 = ashr i32 %11740, 3
  %11742 = sext i32 %11741 to i64
  %11743 = getelementptr inbounds [22 x i8], ptr %11738, i64 0, i64 %11742
  %11744 = load i8, ptr %11743, align 1, !tbaa !43
  %11745 = sext i8 %11744 to i32
  %11746 = load i16, ptr %195, align 2, !tbaa !42
  %11747 = zext i16 %11746 to i32
  %11748 = srem i32 %11747, 8
  %11749 = shl i32 1, %11748
  %11750 = and i32 %11745, %11749
  %11751 = icmp ne i32 %11750, 0
  br i1 %11751, label %11752, label %11805

11752:                                            ; preds = %11734
  br label %11753

11753:                                            ; preds = %11752
  br label %11754

11754:                                            ; preds = %11753
  call void @llvm.lifetime.start.p0(i64 4, ptr %250) #11
  %11755 = call ptr @__errno_location() #12
  %11756 = load i32, ptr %11755, align 4, !tbaa !5
  store i32 %11756, ptr %250, align 4, !tbaa !5
  %11757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11758 = call i32 @s2n_print_stacktrace(ptr noundef %11757)
  %11759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11760 = trunc i8 %11759 to i1
  br i1 %11760, label %11761, label %11783

11761:                                            ; preds = %11754
  %11762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11763 = call i32 @fileno(ptr noundef %11762) #11
  %11764 = call i32 @isatty(i32 noundef %11763) #11
  %11765 = icmp ne i32 %11764, 0
  br i1 %11765, label %11766, label %11783

11766:                                            ; preds = %11761
  %11767 = load i32, ptr %250, align 4, !tbaa !5
  %11768 = call ptr @__errno_location() #12
  store i32 %11767, ptr %11768, align 4, !tbaa !5
  %11769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11770 = load i32, ptr @test_count, align 4, !tbaa !5
  %11771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11772 = load i32, ptr %11771, align 4, !tbaa !5
  %11773 = call ptr @s2n_strerror(i32 noundef %11772, ptr noundef @.str.4)
  %11774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11775 = load i32, ptr %11774, align 4, !tbaa !5
  %11776 = call ptr @s2n_strerror_debug(i32 noundef %11775, ptr noundef @.str.4)
  %11777 = call ptr @__errno_location() #12
  %11778 = load i32, ptr %11777, align 4, !tbaa !5
  %11779 = call ptr @strerror(i32 noundef %11778) #11
  %11780 = call ptr @__errno_location() #12
  %11781 = load i32, ptr %11780, align 4, !tbaa !5
  %11782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11769, ptr noundef @.str.2, i32 noundef %11770, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 558, ptr noundef %11773, ptr noundef %11776, ptr noundef %11779, i32 noundef %11781) #11
  br label %11800

11783:                                            ; preds = %11761, %11754
  %11784 = load i32, ptr %250, align 4, !tbaa !5
  %11785 = call ptr @__errno_location() #12
  store i32 %11784, ptr %11785, align 4, !tbaa !5
  %11786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11787 = load i32, ptr @test_count, align 4, !tbaa !5
  %11788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11789 = load i32, ptr %11788, align 4, !tbaa !5
  %11790 = call ptr @s2n_strerror(i32 noundef %11789, ptr noundef @.str.4)
  %11791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11792 = load i32, ptr %11791, align 4, !tbaa !5
  %11793 = call ptr @s2n_strerror_debug(i32 noundef %11792, ptr noundef @.str.4)
  %11794 = call ptr @__errno_location() #12
  %11795 = load i32, ptr %11794, align 4, !tbaa !5
  %11796 = call ptr @strerror(i32 noundef %11795) #11
  %11797 = call ptr @__errno_location() #12
  %11798 = load i32, ptr %11797, align 4, !tbaa !5
  %11799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11786, ptr noundef @.str.5, i32 noundef %11787, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 558, ptr noundef %11790, ptr noundef %11793, ptr noundef %11796, i32 noundef %11798) #11
  br label %11800

11800:                                            ; preds = %11783, %11766
  call void @llvm.lifetime.end.p0(i64 4, ptr %250) #11
  br label %11801

11801:                                            ; preds = %11800
  br label %11802

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

11803:                                            ; No predecessors!
  br label %11804

11804:                                            ; preds = %11803
  br label %11805

11805:                                            ; preds = %11804, %11734
  br label %11806

11806:                                            ; preds = %11805
  br label %11807

11807:                                            ; preds = %11806
  br label %11808

11808:                                            ; preds = %11807
  %11809 = load i32, ptr @test_count, align 4, !tbaa !5
  %11810 = add nsw i32 %11809, 1
  store i32 %11810, ptr @test_count, align 4, !tbaa !5
  %11811 = load ptr, ptr %237, align 8, !tbaa !9
  %11812 = getelementptr inbounds %struct.s2n_connection, ptr %11811, i32 0, i32 10
  %11813 = load i16, ptr %195, align 2, !tbaa !42
  %11814 = zext i16 %11813 to i32
  %11815 = ashr i32 %11814, 3
  %11816 = sext i32 %11815 to i64
  %11817 = getelementptr inbounds [22 x i8], ptr %11812, i64 0, i64 %11816
  %11818 = load i8, ptr %11817, align 1, !tbaa !43
  %11819 = sext i8 %11818 to i32
  %11820 = load i16, ptr %195, align 2, !tbaa !42
  %11821 = zext i16 %11820 to i32
  %11822 = srem i32 %11821, 8
  %11823 = shl i32 1, %11822
  %11824 = and i32 %11819, %11823
  %11825 = icmp ne i32 %11824, 0
  br i1 %11825, label %11826, label %11879

11826:                                            ; preds = %11808
  br label %11827

11827:                                            ; preds = %11826
  br label %11828

11828:                                            ; preds = %11827
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %11829 = call ptr @__errno_location() #12
  %11830 = load i32, ptr %11829, align 4, !tbaa !5
  store i32 %11830, ptr %251, align 4, !tbaa !5
  %11831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11832 = call i32 @s2n_print_stacktrace(ptr noundef %11831)
  %11833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11834 = trunc i8 %11833 to i1
  br i1 %11834, label %11835, label %11857

11835:                                            ; preds = %11828
  %11836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11837 = call i32 @fileno(ptr noundef %11836) #11
  %11838 = call i32 @isatty(i32 noundef %11837) #11
  %11839 = icmp ne i32 %11838, 0
  br i1 %11839, label %11840, label %11857

11840:                                            ; preds = %11835
  %11841 = load i32, ptr %251, align 4, !tbaa !5
  %11842 = call ptr @__errno_location() #12
  store i32 %11841, ptr %11842, align 4, !tbaa !5
  %11843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11844 = load i32, ptr @test_count, align 4, !tbaa !5
  %11845 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11846 = load i32, ptr %11845, align 4, !tbaa !5
  %11847 = call ptr @s2n_strerror(i32 noundef %11846, ptr noundef @.str.4)
  %11848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11849 = load i32, ptr %11848, align 4, !tbaa !5
  %11850 = call ptr @s2n_strerror_debug(i32 noundef %11849, ptr noundef @.str.4)
  %11851 = call ptr @__errno_location() #12
  %11852 = load i32, ptr %11851, align 4, !tbaa !5
  %11853 = call ptr @strerror(i32 noundef %11852) #11
  %11854 = call ptr @__errno_location() #12
  %11855 = load i32, ptr %11854, align 4, !tbaa !5
  %11856 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11843, ptr noundef @.str.2, i32 noundef %11844, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 559, ptr noundef %11847, ptr noundef %11850, ptr noundef %11853, i32 noundef %11855) #11
  br label %11874

11857:                                            ; preds = %11835, %11828
  %11858 = load i32, ptr %251, align 4, !tbaa !5
  %11859 = call ptr @__errno_location() #12
  store i32 %11858, ptr %11859, align 4, !tbaa !5
  %11860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11861 = load i32, ptr @test_count, align 4, !tbaa !5
  %11862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11863 = load i32, ptr %11862, align 4, !tbaa !5
  %11864 = call ptr @s2n_strerror(i32 noundef %11863, ptr noundef @.str.4)
  %11865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11866 = load i32, ptr %11865, align 4, !tbaa !5
  %11867 = call ptr @s2n_strerror_debug(i32 noundef %11866, ptr noundef @.str.4)
  %11868 = call ptr @__errno_location() #12
  %11869 = load i32, ptr %11868, align 4, !tbaa !5
  %11870 = call ptr @strerror(i32 noundef %11869) #11
  %11871 = call ptr @__errno_location() #12
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  %11873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11860, ptr noundef @.str.5, i32 noundef %11861, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 559, ptr noundef %11864, ptr noundef %11867, ptr noundef %11870, i32 noundef %11872) #11
  br label %11874

11874:                                            ; preds = %11857, %11840
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %11875

11875:                                            ; preds = %11874
  br label %11876

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

11877:                                            ; No predecessors!
  br label %11878

11878:                                            ; preds = %11877
  br label %11879

11879:                                            ; preds = %11878, %11808
  br label %11880

11880:                                            ; preds = %11879
  br label %11881

11881:                                            ; preds = %11880
  br label %11882

11882:                                            ; preds = %11881
  %11883 = load i32, ptr @test_count, align 4, !tbaa !5
  %11884 = add nsw i32 %11883, 1
  store i32 %11884, ptr @test_count, align 4, !tbaa !5
  %11885 = load ptr, ptr %234, align 8, !tbaa !9
  %11886 = call i32 @s2n_connection_free(ptr noundef %11885)
  %11887 = icmp eq i32 %11886, -1
  br i1 %11887, label %11888, label %11941

11888:                                            ; preds = %11882
  br label %11889

11889:                                            ; preds = %11888
  br label %11890

11890:                                            ; preds = %11889
  call void @llvm.lifetime.start.p0(i64 4, ptr %252) #11
  %11891 = call ptr @__errno_location() #12
  %11892 = load i32, ptr %11891, align 4, !tbaa !5
  store i32 %11892, ptr %252, align 4, !tbaa !5
  %11893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11894 = call i32 @s2n_print_stacktrace(ptr noundef %11893)
  %11895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11896 = trunc i8 %11895 to i1
  br i1 %11896, label %11897, label %11919

11897:                                            ; preds = %11890
  %11898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11899 = call i32 @fileno(ptr noundef %11898) #11
  %11900 = call i32 @isatty(i32 noundef %11899) #11
  %11901 = icmp ne i32 %11900, 0
  br i1 %11901, label %11902, label %11919

11902:                                            ; preds = %11897
  %11903 = load i32, ptr %252, align 4, !tbaa !5
  %11904 = call ptr @__errno_location() #12
  store i32 %11903, ptr %11904, align 4, !tbaa !5
  %11905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11906 = load i32, ptr @test_count, align 4, !tbaa !5
  %11907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11908 = load i32, ptr %11907, align 4, !tbaa !5
  %11909 = call ptr @s2n_strerror(i32 noundef %11908, ptr noundef @.str.4)
  %11910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11911 = load i32, ptr %11910, align 4, !tbaa !5
  %11912 = call ptr @s2n_strerror_debug(i32 noundef %11911, ptr noundef @.str.4)
  %11913 = call ptr @__errno_location() #12
  %11914 = load i32, ptr %11913, align 4, !tbaa !5
  %11915 = call ptr @strerror(i32 noundef %11914) #11
  %11916 = call ptr @__errno_location() #12
  %11917 = load i32, ptr %11916, align 4, !tbaa !5
  %11918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11905, ptr noundef @.str.2, i32 noundef %11906, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 561, ptr noundef %11909, ptr noundef %11912, ptr noundef %11915, i32 noundef %11917) #11
  br label %11936

11919:                                            ; preds = %11897, %11890
  %11920 = load i32, ptr %252, align 4, !tbaa !5
  %11921 = call ptr @__errno_location() #12
  store i32 %11920, ptr %11921, align 4, !tbaa !5
  %11922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11923 = load i32, ptr @test_count, align 4, !tbaa !5
  %11924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11925 = load i32, ptr %11924, align 4, !tbaa !5
  %11926 = call ptr @s2n_strerror(i32 noundef %11925, ptr noundef @.str.4)
  %11927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11928 = load i32, ptr %11927, align 4, !tbaa !5
  %11929 = call ptr @s2n_strerror_debug(i32 noundef %11928, ptr noundef @.str.4)
  %11930 = call ptr @__errno_location() #12
  %11931 = load i32, ptr %11930, align 4, !tbaa !5
  %11932 = call ptr @strerror(i32 noundef %11931) #11
  %11933 = call ptr @__errno_location() #12
  %11934 = load i32, ptr %11933, align 4, !tbaa !5
  %11935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11922, ptr noundef @.str.5, i32 noundef %11923, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 561, ptr noundef %11926, ptr noundef %11929, ptr noundef %11932, i32 noundef %11934) #11
  br label %11936

11936:                                            ; preds = %11919, %11902
  call void @llvm.lifetime.end.p0(i64 4, ptr %252) #11
  br label %11937

11937:                                            ; preds = %11936
  br label %11938

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

11939:                                            ; No predecessors!
  br label %11940

11940:                                            ; preds = %11939
  br label %11941

11941:                                            ; preds = %11940, %11882
  br label %11942

11942:                                            ; preds = %11941
  br label %11943

11943:                                            ; preds = %11942
  br label %11944

11944:                                            ; preds = %11943
  %11945 = load i32, ptr @test_count, align 4, !tbaa !5
  %11946 = add nsw i32 %11945, 1
  store i32 %11946, ptr @test_count, align 4, !tbaa !5
  %11947 = load ptr, ptr %237, align 8, !tbaa !9
  %11948 = call i32 @s2n_connection_free(ptr noundef %11947)
  %11949 = icmp eq i32 %11948, -1
  br i1 %11949, label %11950, label %12003

11950:                                            ; preds = %11944
  br label %11951

11951:                                            ; preds = %11950
  br label %11952

11952:                                            ; preds = %11951
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  %11953 = call ptr @__errno_location() #12
  %11954 = load i32, ptr %11953, align 4, !tbaa !5
  store i32 %11954, ptr %253, align 4, !tbaa !5
  %11955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11956 = call i32 @s2n_print_stacktrace(ptr noundef %11955)
  %11957 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11958 = trunc i8 %11957 to i1
  br i1 %11958, label %11959, label %11981

11959:                                            ; preds = %11952
  %11960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11961 = call i32 @fileno(ptr noundef %11960) #11
  %11962 = call i32 @isatty(i32 noundef %11961) #11
  %11963 = icmp ne i32 %11962, 0
  br i1 %11963, label %11964, label %11981

11964:                                            ; preds = %11959
  %11965 = load i32, ptr %253, align 4, !tbaa !5
  %11966 = call ptr @__errno_location() #12
  store i32 %11965, ptr %11966, align 4, !tbaa !5
  %11967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11968 = load i32, ptr @test_count, align 4, !tbaa !5
  %11969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11970 = load i32, ptr %11969, align 4, !tbaa !5
  %11971 = call ptr @s2n_strerror(i32 noundef %11970, ptr noundef @.str.4)
  %11972 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11973 = load i32, ptr %11972, align 4, !tbaa !5
  %11974 = call ptr @s2n_strerror_debug(i32 noundef %11973, ptr noundef @.str.4)
  %11975 = call ptr @__errno_location() #12
  %11976 = load i32, ptr %11975, align 4, !tbaa !5
  %11977 = call ptr @strerror(i32 noundef %11976) #11
  %11978 = call ptr @__errno_location() #12
  %11979 = load i32, ptr %11978, align 4, !tbaa !5
  %11980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11967, ptr noundef @.str.2, i32 noundef %11968, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 562, ptr noundef %11971, ptr noundef %11974, ptr noundef %11977, i32 noundef %11979) #11
  br label %11998

11981:                                            ; preds = %11959, %11952
  %11982 = load i32, ptr %253, align 4, !tbaa !5
  %11983 = call ptr @__errno_location() #12
  store i32 %11982, ptr %11983, align 4, !tbaa !5
  %11984 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11985 = load i32, ptr @test_count, align 4, !tbaa !5
  %11986 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11987 = load i32, ptr %11986, align 4, !tbaa !5
  %11988 = call ptr @s2n_strerror(i32 noundef %11987, ptr noundef @.str.4)
  %11989 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11990 = load i32, ptr %11989, align 4, !tbaa !5
  %11991 = call ptr @s2n_strerror_debug(i32 noundef %11990, ptr noundef @.str.4)
  %11992 = call ptr @__errno_location() #12
  %11993 = load i32, ptr %11992, align 4, !tbaa !5
  %11994 = call ptr @strerror(i32 noundef %11993) #11
  %11995 = call ptr @__errno_location() #12
  %11996 = load i32, ptr %11995, align 4, !tbaa !5
  %11997 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11984, ptr noundef @.str.5, i32 noundef %11985, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 562, ptr noundef %11988, ptr noundef %11991, ptr noundef %11994, i32 noundef %11996) #11
  br label %11998

11998:                                            ; preds = %11981, %11964
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  br label %11999

11999:                                            ; preds = %11998
  br label %12000

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

12001:                                            ; No predecessors!
  br label %12002

12002:                                            ; preds = %12001
  br label %12003

12003:                                            ; preds = %12002, %11944
  br label %12004

12004:                                            ; preds = %12003
  br label %12005

12005:                                            ; preds = %12004
  %12006 = call i32 @s2n_io_pair_close(ptr noundef %241)
  call void @llvm.lifetime.end.p0(i64 8, ptr %241) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %237) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %234) #11
  br label %12007

12007:                                            ; preds = %12005, %11014
  br label %12008

12008:                                            ; preds = %12007
  %12009 = load i32, ptr @test_count, align 4, !tbaa !5
  %12010 = add nsw i32 %12009, 1
  store i32 %12010, ptr @test_count, align 4, !tbaa !5
  %12011 = load ptr, ptr %191, align 8, !tbaa !9
  %12012 = call i32 @s2n_config_free(ptr noundef %12011)
  %12013 = icmp eq i32 %12012, -1
  br i1 %12013, label %12014, label %12067

12014:                                            ; preds = %12008
  br label %12015

12015:                                            ; preds = %12014
  br label %12016

12016:                                            ; preds = %12015
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %12017 = call ptr @__errno_location() #12
  %12018 = load i32, ptr %12017, align 4, !tbaa !5
  store i32 %12018, ptr %254, align 4, !tbaa !5
  %12019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12020 = call i32 @s2n_print_stacktrace(ptr noundef %12019)
  %12021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12022 = trunc i8 %12021 to i1
  br i1 %12022, label %12023, label %12045

12023:                                            ; preds = %12016
  %12024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12025 = call i32 @fileno(ptr noundef %12024) #11
  %12026 = call i32 @isatty(i32 noundef %12025) #11
  %12027 = icmp ne i32 %12026, 0
  br i1 %12027, label %12028, label %12045

12028:                                            ; preds = %12023
  %12029 = load i32, ptr %254, align 4, !tbaa !5
  %12030 = call ptr @__errno_location() #12
  store i32 %12029, ptr %12030, align 4, !tbaa !5
  %12031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12032 = load i32, ptr @test_count, align 4, !tbaa !5
  %12033 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12034 = load i32, ptr %12033, align 4, !tbaa !5
  %12035 = call ptr @s2n_strerror(i32 noundef %12034, ptr noundef @.str.4)
  %12036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12037 = load i32, ptr %12036, align 4, !tbaa !5
  %12038 = call ptr @s2n_strerror_debug(i32 noundef %12037, ptr noundef @.str.4)
  %12039 = call ptr @__errno_location() #12
  %12040 = load i32, ptr %12039, align 4, !tbaa !5
  %12041 = call ptr @strerror(i32 noundef %12040) #11
  %12042 = call ptr @__errno_location() #12
  %12043 = load i32, ptr %12042, align 4, !tbaa !5
  %12044 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12031, ptr noundef @.str.2, i32 noundef %12032, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 565, ptr noundef %12035, ptr noundef %12038, ptr noundef %12041, i32 noundef %12043) #11
  br label %12062

12045:                                            ; preds = %12023, %12016
  %12046 = load i32, ptr %254, align 4, !tbaa !5
  %12047 = call ptr @__errno_location() #12
  store i32 %12046, ptr %12047, align 4, !tbaa !5
  %12048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12049 = load i32, ptr @test_count, align 4, !tbaa !5
  %12050 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12051 = load i32, ptr %12050, align 4, !tbaa !5
  %12052 = call ptr @s2n_strerror(i32 noundef %12051, ptr noundef @.str.4)
  %12053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12054 = load i32, ptr %12053, align 4, !tbaa !5
  %12055 = call ptr @s2n_strerror_debug(i32 noundef %12054, ptr noundef @.str.4)
  %12056 = call ptr @__errno_location() #12
  %12057 = load i32, ptr %12056, align 4, !tbaa !5
  %12058 = call ptr @strerror(i32 noundef %12057) #11
  %12059 = call ptr @__errno_location() #12
  %12060 = load i32, ptr %12059, align 4, !tbaa !5
  %12061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12048, ptr noundef @.str.5, i32 noundef %12049, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 565, ptr noundef %12052, ptr noundef %12055, ptr noundef %12058, i32 noundef %12060) #11
  br label %12062

12062:                                            ; preds = %12045, %12028
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %12063

12063:                                            ; preds = %12062
  br label %12064

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

12065:                                            ; No predecessors!
  br label %12066

12066:                                            ; preds = %12065
  br label %12067

12067:                                            ; preds = %12066, %12008
  br label %12068

12068:                                            ; preds = %12067
  br label %12069

12069:                                            ; preds = %12068
  br label %12070

12070:                                            ; preds = %12069
  %12071 = load i32, ptr @test_count, align 4, !tbaa !5
  %12072 = add nsw i32 %12071, 1
  store i32 %12072, ptr @test_count, align 4, !tbaa !5
  %12073 = load ptr, ptr %189, align 8, !tbaa !9
  %12074 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %12073)
  %12075 = icmp eq i32 %12074, -1
  br i1 %12075, label %12076, label %12129

12076:                                            ; preds = %12070
  br label %12077

12077:                                            ; preds = %12076
  br label %12078

12078:                                            ; preds = %12077
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %12079 = call ptr @__errno_location() #12
  %12080 = load i32, ptr %12079, align 4, !tbaa !5
  store i32 %12080, ptr %255, align 4, !tbaa !5
  %12081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12082 = call i32 @s2n_print_stacktrace(ptr noundef %12081)
  %12083 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12084 = trunc i8 %12083 to i1
  br i1 %12084, label %12085, label %12107

12085:                                            ; preds = %12078
  %12086 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12087 = call i32 @fileno(ptr noundef %12086) #11
  %12088 = call i32 @isatty(i32 noundef %12087) #11
  %12089 = icmp ne i32 %12088, 0
  br i1 %12089, label %12090, label %12107

12090:                                            ; preds = %12085
  %12091 = load i32, ptr %255, align 4, !tbaa !5
  %12092 = call ptr @__errno_location() #12
  store i32 %12091, ptr %12092, align 4, !tbaa !5
  %12093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12094 = load i32, ptr @test_count, align 4, !tbaa !5
  %12095 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12096 = load i32, ptr %12095, align 4, !tbaa !5
  %12097 = call ptr @s2n_strerror(i32 noundef %12096, ptr noundef @.str.4)
  %12098 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12099 = load i32, ptr %12098, align 4, !tbaa !5
  %12100 = call ptr @s2n_strerror_debug(i32 noundef %12099, ptr noundef @.str.4)
  %12101 = call ptr @__errno_location() #12
  %12102 = load i32, ptr %12101, align 4, !tbaa !5
  %12103 = call ptr @strerror(i32 noundef %12102) #11
  %12104 = call ptr @__errno_location() #12
  %12105 = load i32, ptr %12104, align 4, !tbaa !5
  %12106 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12093, ptr noundef @.str.2, i32 noundef %12094, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 566, ptr noundef %12097, ptr noundef %12100, ptr noundef %12103, i32 noundef %12105) #11
  br label %12124

12107:                                            ; preds = %12085, %12078
  %12108 = load i32, ptr %255, align 4, !tbaa !5
  %12109 = call ptr @__errno_location() #12
  store i32 %12108, ptr %12109, align 4, !tbaa !5
  %12110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12111 = load i32, ptr @test_count, align 4, !tbaa !5
  %12112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12113 = load i32, ptr %12112, align 4, !tbaa !5
  %12114 = call ptr @s2n_strerror(i32 noundef %12113, ptr noundef @.str.4)
  %12115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12116 = load i32, ptr %12115, align 4, !tbaa !5
  %12117 = call ptr @s2n_strerror_debug(i32 noundef %12116, ptr noundef @.str.4)
  %12118 = call ptr @__errno_location() #12
  %12119 = load i32, ptr %12118, align 4, !tbaa !5
  %12120 = call ptr @strerror(i32 noundef %12119) #11
  %12121 = call ptr @__errno_location() #12
  %12122 = load i32, ptr %12121, align 4, !tbaa !5
  %12123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12110, ptr noundef @.str.5, i32 noundef %12111, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 566, ptr noundef %12114, ptr noundef %12117, ptr noundef %12120, i32 noundef %12122) #11
  br label %12124

12124:                                            ; preds = %12107, %12090
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %12125

12125:                                            ; preds = %12124
  br label %12126

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

12127:                                            ; No predecessors!
  br label %12128

12128:                                            ; preds = %12127
  br label %12129

12129:                                            ; preds = %12128, %12070
  br label %12130

12130:                                            ; preds = %12129
  br label %12131

12131:                                            ; preds = %12130
  call void @llvm.lifetime.end.p0(i64 2, ptr %195) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %191) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %189) #11
  call void @llvm.lifetime.end.p0(i64 4184, ptr %168) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %167) #11
  br label %12132

12132:                                            ; preds = %12131
  br label %12133

12133:                                            ; preds = %12132
  %12134 = call i32 @s2n_cleanup()
  %12135 = icmp eq i32 %12134, -1
  br i1 %12135, label %12136, label %12189

12136:                                            ; preds = %12133
  br label %12137

12137:                                            ; preds = %12136
  br label %12138

12138:                                            ; preds = %12137
  call void @llvm.lifetime.start.p0(i64 4, ptr %256) #11
  %12139 = call ptr @__errno_location() #12
  %12140 = load i32, ptr %12139, align 4, !tbaa !5
  store i32 %12140, ptr %256, align 4, !tbaa !5
  %12141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12142 = call i32 @s2n_print_stacktrace(ptr noundef %12141)
  %12143 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12144 = trunc i8 %12143 to i1
  br i1 %12144, label %12145, label %12167

12145:                                            ; preds = %12138
  %12146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12147 = call i32 @fileno(ptr noundef %12146) #11
  %12148 = call i32 @isatty(i32 noundef %12147) #11
  %12149 = icmp ne i32 %12148, 0
  br i1 %12149, label %12150, label %12167

12150:                                            ; preds = %12145
  %12151 = load i32, ptr %256, align 4, !tbaa !5
  %12152 = call ptr @__errno_location() #12
  store i32 %12151, ptr %12152, align 4, !tbaa !5
  %12153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12154 = load i32, ptr @test_count, align 4, !tbaa !5
  %12155 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12156 = load i32, ptr %12155, align 4, !tbaa !5
  %12157 = call ptr @s2n_strerror(i32 noundef %12156, ptr noundef @.str.4)
  %12158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12159 = load i32, ptr %12158, align 4, !tbaa !5
  %12160 = call ptr @s2n_strerror_debug(i32 noundef %12159, ptr noundef @.str.4)
  %12161 = call ptr @__errno_location() #12
  %12162 = load i32, ptr %12161, align 4, !tbaa !5
  %12163 = call ptr @strerror(i32 noundef %12162) #11
  %12164 = call ptr @__errno_location() #12
  %12165 = load i32, ptr %12164, align 4, !tbaa !5
  %12166 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12153, ptr noundef @.str.2, i32 noundef %12154, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 570, ptr noundef %12157, ptr noundef %12160, ptr noundef %12163, i32 noundef %12165) #11
  br label %12184

12167:                                            ; preds = %12145, %12138
  %12168 = load i32, ptr %256, align 4, !tbaa !5
  %12169 = call ptr @__errno_location() #12
  store i32 %12168, ptr %12169, align 4, !tbaa !5
  %12170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12171 = load i32, ptr @test_count, align 4, !tbaa !5
  %12172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12173 = load i32, ptr %12172, align 4, !tbaa !5
  %12174 = call ptr @s2n_strerror(i32 noundef %12173, ptr noundef @.str.4)
  %12175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12176 = load i32, ptr %12175, align 4, !tbaa !5
  %12177 = call ptr @s2n_strerror_debug(i32 noundef %12176, ptr noundef @.str.4)
  %12178 = call ptr @__errno_location() #12
  %12179 = load i32, ptr %12178, align 4, !tbaa !5
  %12180 = call ptr @strerror(i32 noundef %12179) #11
  %12181 = call ptr @__errno_location() #12
  %12182 = load i32, ptr %12181, align 4, !tbaa !5
  %12183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12170, ptr noundef @.str.5, i32 noundef %12171, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 570, ptr noundef %12174, ptr noundef %12177, ptr noundef %12180, i32 noundef %12182) #11
  br label %12184

12184:                                            ; preds = %12167, %12150
  call void @llvm.lifetime.end.p0(i64 4, ptr %256) #11
  br label %12185

12185:                                            ; preds = %12184
  br label %12186

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

12187:                                            ; No predecessors!
  br label %12188

12188:                                            ; preds = %12187
  br label %12189

12189:                                            ; preds = %12188, %12133
  br label %12190

12190:                                            ; preds = %12189
  br label %12191

12191:                                            ; preds = %12190
  br label %12192

12192:                                            ; preds = %12191
  br label %12193

12193:                                            ; preds = %12192
  %12194 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %12195 = icmp eq i32 %12194, -1
  br i1 %12195, label %12196, label %12249

12196:                                            ; preds = %12193
  br label %12197

12197:                                            ; preds = %12196
  br label %12198

12198:                                            ; preds = %12197
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %12199 = call ptr @__errno_location() #12
  %12200 = load i32, ptr %12199, align 4, !tbaa !5
  store i32 %12200, ptr %257, align 4, !tbaa !5
  %12201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12202 = call i32 @s2n_print_stacktrace(ptr noundef %12201)
  %12203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12204 = trunc i8 %12203 to i1
  br i1 %12204, label %12205, label %12227

12205:                                            ; preds = %12198
  %12206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12207 = call i32 @fileno(ptr noundef %12206) #11
  %12208 = call i32 @isatty(i32 noundef %12207) #11
  %12209 = icmp ne i32 %12208, 0
  br i1 %12209, label %12210, label %12227

12210:                                            ; preds = %12205
  %12211 = load i32, ptr %257, align 4, !tbaa !5
  %12212 = call ptr @__errno_location() #12
  store i32 %12211, ptr %12212, align 4, !tbaa !5
  %12213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12214 = load i32, ptr @test_count, align 4, !tbaa !5
  %12215 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12216 = load i32, ptr %12215, align 4, !tbaa !5
  %12217 = call ptr @s2n_strerror(i32 noundef %12216, ptr noundef @.str.4)
  %12218 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12219 = load i32, ptr %12218, align 4, !tbaa !5
  %12220 = call ptr @s2n_strerror_debug(i32 noundef %12219, ptr noundef @.str.4)
  %12221 = call ptr @__errno_location() #12
  %12222 = load i32, ptr %12221, align 4, !tbaa !5
  %12223 = call ptr @strerror(i32 noundef %12222) #11
  %12224 = call ptr @__errno_location() #12
  %12225 = load i32, ptr %12224, align 4, !tbaa !5
  %12226 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12213, ptr noundef @.str.2, i32 noundef %12214, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 570, ptr noundef %12217, ptr noundef %12220, ptr noundef %12223, i32 noundef %12225) #11
  br label %12244

12227:                                            ; preds = %12205, %12198
  %12228 = load i32, ptr %257, align 4, !tbaa !5
  %12229 = call ptr @__errno_location() #12
  store i32 %12228, ptr %12229, align 4, !tbaa !5
  %12230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12231 = load i32, ptr @test_count, align 4, !tbaa !5
  %12232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12233 = load i32, ptr %12232, align 4, !tbaa !5
  %12234 = call ptr @s2n_strerror(i32 noundef %12233, ptr noundef @.str.4)
  %12235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12236 = load i32, ptr %12235, align 4, !tbaa !5
  %12237 = call ptr @s2n_strerror_debug(i32 noundef %12236, ptr noundef @.str.4)
  %12238 = call ptr @__errno_location() #12
  %12239 = load i32, ptr %12238, align 4, !tbaa !5
  %12240 = call ptr @strerror(i32 noundef %12239) #11
  %12241 = call ptr @__errno_location() #12
  %12242 = load i32, ptr %12241, align 4, !tbaa !5
  %12243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12230, ptr noundef @.str.5, i32 noundef %12231, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 570, ptr noundef %12234, ptr noundef %12237, ptr noundef %12240, i32 noundef %12242) #11
  br label %12244

12244:                                            ; preds = %12227, %12210
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %12245

12245:                                            ; preds = %12244
  br label %12246

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

12247:                                            ; No predecessors!
  br label %12248

12248:                                            ; preds = %12247
  br label %12249

12249:                                            ; preds = %12248, %12193
  br label %12250

12250:                                            ; preds = %12249
  br label %12251

12251:                                            ; preds = %12250
  %12252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12253 = trunc i8 %12252 to i1
  br i1 %12253, label %12254, label %12270

12254:                                            ; preds = %12251
  %12255 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12256 = call i32 @fileno(ptr noundef %12255) #11
  %12257 = call i32 @isatty(i32 noundef %12256) #11
  %12258 = icmp ne i32 %12257, 0
  br i1 %12258, label %12259, label %12270

12259:                                            ; preds = %12254
  %12260 = load i32, ptr @test_count, align 4, !tbaa !5
  %12261 = icmp ne i32 %12260, 0
  br i1 %12261, label %12262, label %12266

12262:                                            ; preds = %12259
  %12263 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12264 = load i32, ptr @test_count, align 4, !tbaa !5
  %12265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12263, ptr noundef @.str.117, i32 noundef %12264) #11
  br label %12269

12266:                                            ; preds = %12259
  %12267 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12268 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12267, ptr noundef @.str.118) #11
  br label %12269

12269:                                            ; preds = %12266, %12262
  br label %12281

12270:                                            ; preds = %12254, %12251
  %12271 = load i32, ptr @test_count, align 4, !tbaa !5
  %12272 = icmp ne i32 %12271, 0
  br i1 %12272, label %12273, label %12277

12273:                                            ; preds = %12270
  %12274 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12275 = load i32, ptr @test_count, align 4, !tbaa !5
  %12276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12274, ptr noundef @.str.119, i32 noundef %12275) #11
  br label %12280

12277:                                            ; preds = %12270
  %12278 = load ptr, ptr @stdout, align 8, !tbaa !9
  %12279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12278, ptr noundef @.str.120) #11
  br label %12280

12280:                                            ; preds = %12277, %12273
  br label %12281

12281:                                            ; preds = %12280, %12269
  store i32 0, ptr %1, align 4
  store i32 1, ptr %184, align 4
  br label %12286

12282:                                            ; No predecessors!
  br label %12283

12283:                                            ; preds = %12282
  br label %12284

12284:                                            ; preds = %12283
  br label %12285

12285:                                            ; preds = %12284
  store i32 0, ptr %184, align 4
  br label %12286

12286:                                            ; preds = %12285, %12281
  call void @llvm.lifetime.end.p0(i64 1, ptr %43) #11
  %12287 = load i32, ptr %184, align 4
  switch i32 %12287, label %12290 [
    i32 0, label %12288
    i32 1, label %12288
  ]

12288:                                            ; preds = %12286, %12286
  %12289 = load i32, ptr %1, align 4
  ret i32 %12289

12290:                                            ; preds = %12286
  unreachable
}

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

declare i32 @fflush(ptr noundef) #0

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #0

; 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) #0

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

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

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

; 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) #0

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

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

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

declare i32 @s2n_enable_atexit() #0

declare i32 @s2n_init() #0

declare i32 @s2n_disable_tls13_in_test(...) #0

declare i32 @s2n_extension_send_unimplemented(ptr noundef, ptr noundef) #0

declare void @s2n_debug_info_reset() #0

declare i32 @s2n_extension_send_noop(ptr noundef, ptr noundef) #0

declare i32 @s2n_extension_recv_unimplemented(ptr noundef, ptr noundef) #0

declare i32 @s2n_extension_recv_noop(ptr noundef, ptr noundef) #0

declare zeroext i1 @s2n_extension_never_send(ptr noundef) #0

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

declare zeroext i1 @s2n_extension_send_if_tls13_connection(ptr noundef) #0

declare i32 @s2n_extension_error_if_missing(ptr noundef) #0

declare zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext) #0

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) #0

declare i32 @s2n_extension_recv(ptr noundef, ptr noundef, ptr noundef) #0

; 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

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

declare i32 @s2n_extension_send(ptr noundef, ptr noundef, ptr noundef) #0

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #0

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) #0

declare i32 @s2n_stuffer_free(ptr noundef) #0

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @test_send_too_much_data(ptr noundef, ptr noundef) #1

declare i32 @s2n_extension_is_missing(ptr noundef, ptr noundef) #0

declare i32 @s2n_reset_tls13_in_test(...) #0

declare i32 @s2n_extension_type_list_get(i32 noundef, ptr noundef) #0

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) #0

declare ptr @s2n_config_new() #0

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) #0

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) #0

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

declare zeroext i1 @s2n_is_tls13_fully_supported(...) #0

declare ptr @s2n_connection_new(i32 noundef) #0

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

declare i32 @s2n_io_pair_close(ptr noundef) #0

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) #0

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #10

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) #0

declare i32 @s2n_connection_free(ptr noundef) #0

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) #0

declare i32 @s2n_config_free(ptr noundef) #0

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) #0

declare i32 @s2n_cleanup() #0

attributes #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 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 #2 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { 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 #10 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind 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, !7, i64 220}
!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 = !{!31, !31, i64 0}
!43 = !{!7, !7, i64 0}
!44 = !{!18, !18, i64 0}
!45 = distinct !{!45, !46}
!46 = !{!"llvm.loop.mustprogress"}
!47 = distinct !{!47, !46}
!48 = !{!49, !10, i64 16}
!49 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!50 = !{!49, !10, i64 8}
!51 = !{!49, !10, i64 24}
!52 = !{!49, !31, i64 0}
!53 = !{!32, !6, i64 28}
!54 = !{!32, !6, i64 24}
!55 = !{!49, !10, i64 32}
!56 = !{!49, !31, i64 4}
!57 = !{!58, !7, i64 8}
!58 = !{!"", !10, i64 0, !7, i64 8}
!59 = !{!58, !10, i64 0}
!60 = distinct !{!60, !46}
!61 = distinct !{!61, !46}


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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@empty_bitfield = external dso_local constant [22 x i8], align 16
@test_extension_type = external dso_local constant %struct.s2n_extension_type, align 8
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [82 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.8 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_supported_extensions = external hidden local_unnamed_addr constant [21 x i16], align 16
@.str.22 = external hidden unnamed_addr constant [82 x i8], align 1
@s2n_unsupported_extension = external local_unnamed_addr constant i8, align 1
@.str.23 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [124 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [35 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [88 x i8], align 1
@__const.main.extension_type_with_null_recv = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.37 = external hidden unnamed_addr constant [93 x i8], align 1
@__const.main.request_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.38 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [80 x i8], align 1
@__const.main.response_extension_type = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.40 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [187 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [90 x i8], align 1
@__const.main.extension_type_with_failure = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.44 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [88 x i8], align 1
@__const.main.extension_type_with_null_send = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.47 = external hidden unnamed_addr constant [93 x i8], align 1
@__const.main.extension_type_with_null_should_send = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.48 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [64 x i8], align 1
@__const.main.request_extension_type.50 = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.51 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [65 x i8], align 1
@.str.55 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [30 x i8], align 1
@__const.main.response_extension_type.58 = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.59 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [183 x i8], align 1
@.str.62 = external hidden unnamed_addr constant [66 x i8], align 1
@__const.main.extension_type_with_never_send = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.63 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [60 x i8], align 1
@__const.main.extension_type_with_failure.65 = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.66 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [68 x i8], align 1
@__const.main.extension_type_with_too_much_data = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.68 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [84 x i8], align 1
@__const.main.extension_type_with_null_if_missing = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.72 = external hidden unnamed_addr constant [95 x i8], align 1
@__const.main.extension_type_with_noop_if_missing = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.73 = external hidden unnamed_addr constant [98 x i8], align 1
@__const.main.extension_type_with_error_if_missing = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.74 = external hidden unnamed_addr constant [96 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [54 x i8], align 1
@__const.main.test_extension_type_with_min = external hidden unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.77 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [34 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [33 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [146 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [9 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [122 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [130 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [15 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [121 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [117 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [25 x i8], align 1

declare zeroext i1 @s2n_extension_always_send(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_extension_noop_if_missing(ptr noundef) #0

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main() local_unnamed_addr #1 {
  %1 = alloca %struct.s2n_connection, align 8
  %2 = alloca i8, align 1
  %3 = alloca [22 x i8], align 16
  %4 = alloca %struct.s2n_stuffer, align 8
  %5 = alloca %struct.s2n_connection, align 8
  %6 = alloca %struct.s2n_extension_type, align 8
  %7 = alloca %struct.s2n_connection, align 8
  %8 = alloca %struct.s2n_extension_type, align 8
  %9 = alloca %struct.s2n_connection, align 8
  %10 = alloca %struct.s2n_extension_type, align 8
  %11 = alloca %struct.s2n_connection, align 8
  %12 = alloca %struct.s2n_extension_type, align 8
  %13 = alloca %struct.s2n_connection, align 8
  %14 = alloca %struct.s2n_stuffer, align 8
  %15 = alloca %struct.s2n_extension_type, align 8
  %16 = alloca %struct.s2n_extension_type, align 8
  %17 = alloca %struct.s2n_connection, align 8
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca %struct.s2n_extension_type, align 8
  %20 = alloca i16, align 2
  %21 = alloca i16, align 2
  %22 = alloca %struct.s2n_connection, align 8
  %23 = alloca %struct.s2n_stuffer, align 8
  %24 = alloca %struct.s2n_extension_type, align 8
  %25 = alloca i16, align 2
  %26 = alloca i16, align 2
  %27 = alloca %struct.s2n_connection, align 8
  %28 = alloca %struct.s2n_stuffer, align 8
  %29 = alloca %struct.s2n_extension_type, align 8
  %30 = alloca %struct.s2n_connection, align 8
  %31 = alloca %struct.s2n_stuffer, align 8
  %32 = alloca %struct.s2n_extension_type, align 8
  %33 = alloca %struct.s2n_connection, align 8
  %34 = alloca %struct.s2n_stuffer, align 8
  %35 = alloca %struct.s2n_extension_type, align 8
  %36 = alloca %struct.s2n_connection, align 8
  %37 = alloca %struct.s2n_extension_type, align 8
  %38 = alloca %struct.s2n_connection, align 8
  %39 = alloca %struct.s2n_extension_type, align 8
  %40 = alloca %struct.s2n_connection, align 8
  %41 = alloca %struct.s2n_extension_type, align 8
  %42 = alloca %struct.s2n_extension_type, align 8
  %43 = alloca %struct.s2n_connection, align 8
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca %struct.s2n_test_io_pair, align 8
  %47 = alloca %struct.s2n_test_io_pair, align 8
  %48 = alloca %struct.s2n_test_io_pair, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %49 = load ptr, ptr @stdout, align 8, !tbaa !9
  %50 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %49, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %51 = load ptr, ptr @stdout, align 8, !tbaa !9
  %52 = tail call i32 @fflush(ptr noundef %51)
  %53 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %54 = icmp eq i32 %53, -1
  br i1 %54, label %55, label %79

55:                                               ; preds = %0
  %56 = tail call ptr @__errno_location() #13
  %57 = load i32, ptr %56, align 4, !tbaa !5
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = tail call i32 @s2n_print_stacktrace(ptr noundef %58) #12
  %60 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %61 = trunc nuw i8 %60 to i1
  br i1 %61, label %62, label %66

62:                                               ; preds = %55
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = tail call i32 @fileno(ptr noundef %63) #12
  %65 = tail call i32 @isatty(i32 noundef %64) #12
  %.not713 = icmp eq i32 %65, 0
  br i1 %.not713, label %66, label %67

66:                                               ; preds = %62, %55
  br label %67

67:                                               ; preds = %62, %66
  %.str.5.sink = phi ptr [ @.str.5, %66 ], [ @.str.2, %62 ]
  store i32 %57, ptr %56, align 4, !tbaa !5
  %68 = load ptr, ptr @stderr, align 8, !tbaa !9
  %69 = load i32, ptr @test_count, align 4, !tbaa !5
  %70 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %71 = load i32, ptr %70, align 4, !tbaa !5
  %72 = tail call ptr @s2n_strerror(i32 noundef %71, ptr noundef nonnull @.str.4) #12
  %73 = load i32, ptr %70, align 4, !tbaa !5
  %74 = tail call ptr @s2n_strerror_debug(i32 noundef %73, ptr noundef nonnull @.str.4) #12
  %75 = load i32, ptr %56, align 4, !tbaa !5
  %76 = tail call ptr @strerror(i32 noundef %75) #12
  %77 = load i32, ptr %56, align 4, !tbaa !5
  %78 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %68, ptr noundef nonnull %.str.5.sink, i32 noundef %69, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %72, ptr noundef %74, ptr noundef %76, i32 noundef %77) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

79:                                               ; preds = %0
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = add nsw i32 %80, 1
  store i32 %81, ptr @test_count, align 4, !tbaa !5
  %82 = tail call i32 @s2n_enable_atexit() #12
  %83 = icmp eq i32 %82, -1
  br i1 %83, label %84, label %108

84:                                               ; preds = %79
  %85 = tail call ptr @__errno_location() #13
  %86 = load i32, ptr %85, align 4, !tbaa !5
  %87 = load ptr, ptr @stderr, align 8, !tbaa !9
  %88 = tail call i32 @s2n_print_stacktrace(ptr noundef %87) #12
  %89 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %90 = trunc nuw i8 %89 to i1
  br i1 %90, label %91, label %95

91:                                               ; preds = %84
  %92 = load ptr, ptr @stderr, align 8, !tbaa !9
  %93 = tail call i32 @fileno(ptr noundef %92) #12
  %94 = tail call i32 @isatty(i32 noundef %93) #12
  %.not712 = icmp eq i32 %94, 0
  br i1 %.not712, label %95, label %96

95:                                               ; preds = %91, %84
  br label %96

96:                                               ; preds = %91, %95
  %.str.5.sink736 = phi ptr [ @.str.5, %95 ], [ @.str.2, %91 ]
  store i32 %86, ptr %85, align 4, !tbaa !5
  %97 = load ptr, ptr @stderr, align 8, !tbaa !9
  %98 = load i32, ptr @test_count, align 4, !tbaa !5
  %99 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %100 = load i32, ptr %99, align 4, !tbaa !5
  %101 = tail call ptr @s2n_strerror(i32 noundef %100, ptr noundef nonnull @.str.4) #12
  %102 = load i32, ptr %99, align 4, !tbaa !5
  %103 = tail call ptr @s2n_strerror_debug(i32 noundef %102, ptr noundef nonnull @.str.4) #12
  %104 = load i32, ptr %85, align 4, !tbaa !5
  %105 = tail call ptr @strerror(i32 noundef %104) #12
  %106 = load i32, ptr %85, align 4, !tbaa !5
  %107 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %97, ptr noundef nonnull %.str.5.sink736, i32 noundef %98, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %101, ptr noundef %103, ptr noundef %105, i32 noundef %106) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

108:                                              ; preds = %79
  %109 = tail call i32 @s2n_init() #12
  %110 = icmp eq i32 %109, -1
  br i1 %110, label %111, label %135

111:                                              ; preds = %108
  %112 = tail call ptr @__errno_location() #13
  %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) #12
  %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) #12
  %121 = tail call i32 @isatty(i32 noundef %120) #12
  %.not711 = icmp eq i32 %121, 0
  br i1 %.not711, label %122, label %123

122:                                              ; preds = %118, %111
  br label %123

123:                                              ; preds = %118, %122
  %.str.5.sink747 = 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) #12
  %129 = load i32, ptr %126, align 4, !tbaa !5
  %130 = tail call ptr @s2n_strerror_debug(i32 noundef %129, ptr noundef nonnull @.str.4) #12
  %131 = load i32, ptr %112, align 4, !tbaa !5
  %132 = tail call ptr @strerror(i32 noundef %131) #12
  %133 = load i32, ptr %112, align 4, !tbaa !5
  %134 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %124, ptr noundef nonnull %.str.5.sink747, i32 noundef %125, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %128, ptr noundef %130, ptr noundef %132, i32 noundef %133) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

135:                                              ; preds = %108
  %136 = load i32, ptr @test_count, align 4, !tbaa !5
  %137 = add nsw i32 %136, 1
  store i32 %137, ptr @test_count, align 4, !tbaa !5
  %138 = tail call i32 (...) @s2n_disable_tls13_in_test() #12
  %139 = icmp eq i32 %138, -1
  br i1 %139, label %140, label %164

140:                                              ; preds = %135
  %141 = tail call ptr @__errno_location() #13
  %142 = load i32, ptr %141, align 4, !tbaa !5
  %143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %144 = tail call i32 @s2n_print_stacktrace(ptr noundef %143) #12
  %145 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %146 = trunc nuw i8 %145 to i1
  br i1 %146, label %147, label %151

147:                                              ; preds = %140
  %148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %149 = tail call i32 @fileno(ptr noundef %148) #12
  %150 = tail call i32 @isatty(i32 noundef %149) #12
  %.not710 = icmp eq i32 %150, 0
  br i1 %.not710, label %151, label %152

151:                                              ; preds = %147, %140
  br label %152

152:                                              ; preds = %147, %151
  %.str.5.sink758 = phi ptr [ @.str.5, %151 ], [ @.str.2, %147 ]
  store i32 %142, ptr %141, align 4, !tbaa !5
  %153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %154 = load i32, ptr @test_count, align 4, !tbaa !5
  %155 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %156 = load i32, ptr %155, align 4, !tbaa !5
  %157 = tail call ptr @s2n_strerror(i32 noundef %156, ptr noundef nonnull @.str.4) #12
  %158 = load i32, ptr %155, align 4, !tbaa !5
  %159 = tail call ptr @s2n_strerror_debug(i32 noundef %158, ptr noundef nonnull @.str.4) #12
  %160 = load i32, ptr %141, align 4, !tbaa !5
  %161 = tail call ptr @strerror(i32 noundef %160) #12
  %162 = load i32, ptr %141, align 4, !tbaa !5
  %163 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %153, ptr noundef nonnull %.str.5.sink758, i32 noundef %154, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %157, ptr noundef %159, ptr noundef %161, i32 noundef %162) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

164:                                              ; preds = %135
  %165 = load i32, ptr @test_count, align 4, !tbaa !5
  %166 = add nsw i32 %165, 1
  store i32 %166, ptr @test_count, align 4, !tbaa !5
  %167 = tail call i32 @s2n_extension_send_unimplemented(ptr noundef null, ptr noundef null) #12
  %168 = icmp eq i32 %167, -1
  br i1 %168, label %193, label %169

169:                                              ; preds = %164
  %170 = tail call ptr @__errno_location() #13
  %171 = load i32, ptr %170, align 4, !tbaa !5
  %172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %173 = tail call i32 @s2n_print_stacktrace(ptr noundef %172) #12
  %174 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %175 = trunc nuw i8 %174 to i1
  br i1 %175, label %176, label %180

176:                                              ; preds = %169
  %177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %178 = tail call i32 @fileno(ptr noundef %177) #12
  %179 = tail call i32 @isatty(i32 noundef %178) #12
  %.not = icmp eq i32 %179, 0
  br i1 %.not, label %180, label %181

180:                                              ; preds = %176, %169
  br label %181

181:                                              ; preds = %176, %180
  %.str.5.sink769 = phi ptr [ @.str.5, %180 ], [ @.str.2, %176 ]
  store i32 %171, ptr %170, align 4, !tbaa !5
  %182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %183 = load i32, ptr @test_count, align 4, !tbaa !5
  %184 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = tail call ptr @s2n_strerror(i32 noundef %185, ptr noundef nonnull @.str.4) #12
  %187 = load i32, ptr %184, align 4, !tbaa !5
  %188 = tail call ptr @s2n_strerror_debug(i32 noundef %187, ptr noundef nonnull @.str.4) #12
  %189 = load i32, ptr %170, align 4, !tbaa !5
  %190 = tail call ptr @strerror(i32 noundef %189) #12
  %191 = load i32, ptr %170, align 4, !tbaa !5
  %192 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %182, ptr noundef nonnull %.str.5.sink769, i32 noundef %183, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %186, ptr noundef %188, ptr noundef %190, i32 noundef %191) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

193:                                              ; preds = %164
  %194 = load i32, ptr @test_count, align 4, !tbaa !5
  %195 = add nsw i32 %194, 1
  store i32 %195, ptr @test_count, align 4, !tbaa !5
  %196 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = icmp eq i32 %197, 402653231
  br i1 %198, label %222, label %199

199:                                              ; preds = %193
  %200 = tail call ptr @__errno_location() #13
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = tail call i32 @s2n_print_stacktrace(ptr noundef %202) #12
  %204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %205 = trunc nuw i8 %204 to i1
  br i1 %205, label %206, label %210

206:                                              ; preds = %199
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = tail call i32 @fileno(ptr noundef %207) #12
  %209 = tail call i32 @isatty(i32 noundef %208) #12
  %.not506 = icmp eq i32 %209, 0
  br i1 %.not506, label %210, label %211

210:                                              ; preds = %206, %199
  br label %211

211:                                              ; preds = %206, %210
  %.str.5.sink780 = phi ptr [ @.str.5, %210 ], [ @.str.2, %206 ]
  store i32 %201, ptr %200, align 4, !tbaa !5
  %212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %213 = load i32, ptr @test_count, align 4, !tbaa !5
  %214 = load i32, ptr %196, align 4, !tbaa !5
  %215 = tail call ptr @s2n_strerror(i32 noundef %214, ptr noundef nonnull @.str.4) #12
  %216 = load i32, ptr %196, align 4, !tbaa !5
  %217 = tail call ptr @s2n_strerror_debug(i32 noundef %216, ptr noundef nonnull @.str.4) #12
  %218 = load i32, ptr %200, align 4, !tbaa !5
  %219 = tail call ptr @strerror(i32 noundef %218) #12
  %220 = load i32, ptr %200, align 4, !tbaa !5
  %221 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %212, ptr noundef nonnull %.str.5.sink780, i32 noundef %213, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %215, ptr noundef %217, ptr noundef %219, i32 noundef %220) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

222:                                              ; preds = %193
  %223 = add nsw i32 %194, 2
  store i32 %223, ptr @test_count, align 4, !tbaa !5
  %224 = tail call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %225 = icmp eq ptr %224, null
  br i1 %225, label %226, label %249

226:                                              ; preds = %222
  %227 = tail call ptr @__errno_location() #13
  %228 = load i32, ptr %227, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = tail call i32 @s2n_print_stacktrace(ptr noundef %229) #12
  %231 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %232 = trunc nuw i8 %231 to i1
  br i1 %232, label %233, label %237

233:                                              ; preds = %226
  %234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %235 = tail call i32 @fileno(ptr noundef %234) #12
  %236 = tail call i32 @isatty(i32 noundef %235) #12
  %.not709 = icmp eq i32 %236, 0
  br i1 %.not709, label %237, label %238

237:                                              ; preds = %233, %226
  br label %238

238:                                              ; preds = %233, %237
  %.str.5.sink789 = phi ptr [ @.str.5, %237 ], [ @.str.2, %233 ]
  store i32 %228, ptr %227, align 4, !tbaa !5
  %239 = load ptr, ptr @stderr, align 8, !tbaa !9
  %240 = load i32, ptr @test_count, align 4, !tbaa !5
  %241 = load i32, ptr %196, align 4, !tbaa !5
  %242 = tail call ptr @s2n_strerror(i32 noundef %241, ptr noundef nonnull @.str.4) #12
  %243 = load i32, ptr %196, align 4, !tbaa !5
  %244 = tail call ptr @s2n_strerror_debug(i32 noundef %243, ptr noundef nonnull @.str.4) #12
  %245 = load i32, ptr %227, align 4, !tbaa !5
  %246 = tail call ptr @strerror(i32 noundef %245) #12
  %247 = load i32, ptr %227, align 4, !tbaa !5
  %248 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %239, ptr noundef nonnull %.str.5.sink789, i32 noundef %240, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %242, ptr noundef %244, ptr noundef %246, i32 noundef %247) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

249:                                              ; preds = %222
  store i32 0, ptr %196, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #12
  %250 = tail call ptr @__errno_location() #13
  store i32 0, ptr %250, align 4, !tbaa !5
  %251 = load i32, ptr @test_count, align 4, !tbaa !5
  %252 = add nsw i32 %251, 1
  store i32 %252, ptr @test_count, align 4, !tbaa !5
  %253 = tail call i32 @s2n_extension_send_noop(ptr noundef null, ptr noundef null) #12
  %254 = icmp eq i32 %253, -1
  br i1 %254, label %255, label %277

255:                                              ; preds = %249
  %256 = load i32, ptr %250, align 4, !tbaa !5
  %257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %258 = tail call i32 @s2n_print_stacktrace(ptr noundef %257) #12
  %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 = %255
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = tail call i32 @fileno(ptr noundef %262) #12
  %264 = tail call i32 @isatty(i32 noundef %263) #12
  %.not708 = icmp eq i32 %264, 0
  br i1 %.not708, label %265, label %266

265:                                              ; preds = %261, %255
  br label %266

266:                                              ; preds = %261, %265
  %.str.5.sink798 = phi ptr [ @.str.5, %265 ], [ @.str.2, %261 ]
  store i32 %256, ptr %250, align 4, !tbaa !5
  %267 = load ptr, ptr @stderr, align 8, !tbaa !9
  %268 = load i32, ptr @test_count, align 4, !tbaa !5
  %269 = load i32, ptr %196, align 4, !tbaa !5
  %270 = tail call ptr @s2n_strerror(i32 noundef %269, ptr noundef nonnull @.str.4) #12
  %271 = load i32, ptr %196, align 4, !tbaa !5
  %272 = tail call ptr @s2n_strerror_debug(i32 noundef %271, ptr noundef nonnull @.str.4) #12
  %273 = load i32, ptr %250, align 4, !tbaa !5
  %274 = tail call ptr @strerror(i32 noundef %273) #12
  %275 = load i32, ptr %250, align 4, !tbaa !5
  %276 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %267, ptr noundef nonnull %.str.5.sink798, i32 noundef %268, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %270, ptr noundef %272, ptr noundef %274, i32 noundef %275) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

277:                                              ; preds = %249
  %278 = load i32, ptr @test_count, align 4, !tbaa !5
  %279 = add nsw i32 %278, 1
  store i32 %279, ptr @test_count, align 4, !tbaa !5
  %280 = tail call i32 @s2n_extension_recv_unimplemented(ptr noundef null, ptr noundef null) #12
  %281 = icmp eq i32 %280, -1
  br i1 %281, label %304, label %282

282:                                              ; preds = %277
  %283 = load i32, ptr %250, align 4, !tbaa !5
  %284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %285 = tail call i32 @s2n_print_stacktrace(ptr noundef %284) #12
  %286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %287 = trunc nuw i8 %286 to i1
  br i1 %287, label %288, label %292

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

292:                                              ; preds = %288, %282
  br label %293

293:                                              ; preds = %288, %292
  %.str.5.sink807 = phi ptr [ @.str.5, %292 ], [ @.str.2, %288 ]
  store i32 %283, ptr %250, align 4, !tbaa !5
  %294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %295 = load i32, ptr @test_count, align 4, !tbaa !5
  %296 = load i32, ptr %196, align 4, !tbaa !5
  %297 = tail call ptr @s2n_strerror(i32 noundef %296, ptr noundef nonnull @.str.4) #12
  %298 = load i32, ptr %196, align 4, !tbaa !5
  %299 = tail call ptr @s2n_strerror_debug(i32 noundef %298, ptr noundef nonnull @.str.4) #12
  %300 = load i32, ptr %250, align 4, !tbaa !5
  %301 = tail call ptr @strerror(i32 noundef %300) #12
  %302 = load i32, ptr %250, align 4, !tbaa !5
  %303 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %294, ptr noundef nonnull %.str.5.sink807, i32 noundef %295, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %297, ptr noundef %299, ptr noundef %301, i32 noundef %302) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

304:                                              ; preds = %277
  %305 = load i32, ptr @test_count, align 4, !tbaa !5
  %306 = add nsw i32 %305, 1
  store i32 %306, ptr @test_count, align 4, !tbaa !5
  %307 = load i32, ptr %196, align 4, !tbaa !5
  %308 = icmp eq i32 %307, 402653231
  br i1 %308, label %331, label %309

309:                                              ; preds = %304
  %310 = load i32, ptr %250, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = tail call i32 @s2n_print_stacktrace(ptr noundef %311) #12
  %313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %314 = trunc nuw i8 %313 to i1
  br i1 %314, label %315, label %319

315:                                              ; preds = %309
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = tail call i32 @fileno(ptr noundef %316) #12
  %318 = tail call i32 @isatty(i32 noundef %317) #12
  %.not508 = icmp eq i32 %318, 0
  br i1 %.not508, label %319, label %320

319:                                              ; preds = %315, %309
  br label %320

320:                                              ; preds = %315, %319
  %.str.5.sink816 = phi ptr [ @.str.5, %319 ], [ @.str.2, %315 ]
  store i32 %310, ptr %250, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = load i32, ptr %196, align 4, !tbaa !5
  %324 = tail call ptr @s2n_strerror(i32 noundef %323, ptr noundef nonnull @.str.4) #12
  %325 = load i32, ptr %196, align 4, !tbaa !5
  %326 = tail call ptr @s2n_strerror_debug(i32 noundef %325, ptr noundef nonnull @.str.4) #12
  %327 = load i32, ptr %250, align 4, !tbaa !5
  %328 = tail call ptr @strerror(i32 noundef %327) #12
  %329 = load i32, ptr %250, align 4, !tbaa !5
  %330 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef nonnull %.str.5.sink816, i32 noundef %322, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %324, ptr noundef %326, ptr noundef %328, i32 noundef %329) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

331:                                              ; preds = %304
  %332 = add nsw i32 %305, 2
  store i32 %332, ptr @test_count, align 4, !tbaa !5
  %333 = tail call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %334 = icmp eq ptr %333, null
  br i1 %334, label %335, label %357

335:                                              ; preds = %331
  %336 = load i32, ptr %250, align 4, !tbaa !5
  %337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %338 = tail call i32 @s2n_print_stacktrace(ptr noundef %337) #12
  %339 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %340 = trunc nuw i8 %339 to i1
  br i1 %340, label %341, label %345

341:                                              ; preds = %335
  %342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %343 = tail call i32 @fileno(ptr noundef %342) #12
  %344 = tail call i32 @isatty(i32 noundef %343) #12
  %.not707 = icmp eq i32 %344, 0
  br i1 %.not707, label %345, label %346

345:                                              ; preds = %341, %335
  br label %346

346:                                              ; preds = %341, %345
  %.str.5.sink825 = phi ptr [ @.str.5, %345 ], [ @.str.2, %341 ]
  store i32 %336, ptr %250, align 4, !tbaa !5
  %347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %348 = load i32, ptr @test_count, align 4, !tbaa !5
  %349 = load i32, ptr %196, align 4, !tbaa !5
  %350 = tail call ptr @s2n_strerror(i32 noundef %349, ptr noundef nonnull @.str.4) #12
  %351 = load i32, ptr %196, align 4, !tbaa !5
  %352 = tail call ptr @s2n_strerror_debug(i32 noundef %351, ptr noundef nonnull @.str.4) #12
  %353 = load i32, ptr %250, align 4, !tbaa !5
  %354 = tail call ptr @strerror(i32 noundef %353) #12
  %355 = load i32, ptr %250, align 4, !tbaa !5
  %356 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %347, ptr noundef nonnull %.str.5.sink825, i32 noundef %348, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 69, ptr noundef %350, ptr noundef %352, ptr noundef %354, i32 noundef %355) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

357:                                              ; preds = %331
  store i32 0, ptr %196, align 4, !tbaa !5
  tail call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = add nsw i32 %358, 1
  store i32 %359, ptr @test_count, align 4, !tbaa !5
  %360 = tail call i32 @s2n_extension_recv_noop(ptr noundef null, ptr noundef null) #12
  %361 = icmp eq i32 %360, -1
  br i1 %361, label %362, label %384

362:                                              ; preds = %357
  %363 = load i32, ptr %250, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = tail call i32 @s2n_print_stacktrace(ptr noundef %364) #12
  %366 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %367 = trunc nuw i8 %366 to i1
  br i1 %367, label %368, label %372

368:                                              ; preds = %362
  %369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %370 = tail call i32 @fileno(ptr noundef %369) #12
  %371 = tail call i32 @isatty(i32 noundef %370) #12
  %.not706 = icmp eq i32 %371, 0
  br i1 %.not706, label %372, label %373

372:                                              ; preds = %368, %362
  br label %373

373:                                              ; preds = %368, %372
  %.str.5.sink834 = phi ptr [ @.str.5, %372 ], [ @.str.2, %368 ]
  store i32 %363, ptr %250, align 4, !tbaa !5
  %374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %375 = load i32, ptr @test_count, align 4, !tbaa !5
  %376 = load i32, ptr %196, align 4, !tbaa !5
  %377 = tail call ptr @s2n_strerror(i32 noundef %376, ptr noundef nonnull @.str.4) #12
  %378 = load i32, ptr %196, align 4, !tbaa !5
  %379 = tail call ptr @s2n_strerror_debug(i32 noundef %378, ptr noundef nonnull @.str.4) #12
  %380 = load i32, ptr %250, align 4, !tbaa !5
  %381 = tail call ptr @strerror(i32 noundef %380) #12
  %382 = load i32, ptr %250, align 4, !tbaa !5
  %383 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %374, ptr noundef nonnull %.str.5.sink834, i32 noundef %375, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %377, ptr noundef %379, ptr noundef %381, i32 noundef %382) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

384:                                              ; preds = %357
  %385 = load i32, ptr @test_count, align 4, !tbaa !5
  %386 = add nsw i32 %385, 1
  store i32 %386, ptr @test_count, align 4, !tbaa !5
  %387 = tail call zeroext i1 @s2n_extension_always_send(ptr noundef null) #12
  br i1 %387, label %410, label %388

388:                                              ; preds = %384
  %389 = load i32, ptr %250, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = tail call i32 @s2n_print_stacktrace(ptr noundef %390) #12
  %392 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %393 = trunc nuw i8 %392 to i1
  br i1 %393, label %394, label %398

394:                                              ; preds = %388
  %395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %396 = tail call i32 @fileno(ptr noundef %395) #12
  %397 = tail call i32 @isatty(i32 noundef %396) #12
  %.not509 = icmp eq i32 %397, 0
  br i1 %.not509, label %398, label %399

398:                                              ; preds = %394, %388
  br label %399

399:                                              ; preds = %394, %398
  %.str.5.sink843 = phi ptr [ @.str.5, %398 ], [ @.str.2, %394 ]
  store i32 %389, ptr %250, align 4, !tbaa !5
  %400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %401 = load i32, ptr @test_count, align 4, !tbaa !5
  %402 = load i32, ptr %196, align 4, !tbaa !5
  %403 = tail call ptr @s2n_strerror(i32 noundef %402, ptr noundef nonnull @.str.4) #12
  %404 = load i32, ptr %196, align 4, !tbaa !5
  %405 = tail call ptr @s2n_strerror_debug(i32 noundef %404, ptr noundef nonnull @.str.4) #12
  %406 = load i32, ptr %250, align 4, !tbaa !5
  %407 = tail call ptr @strerror(i32 noundef %406) #12
  %408 = load i32, ptr %250, align 4, !tbaa !5
  %409 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %400, ptr noundef nonnull %.str.5.sink843, i32 noundef %401, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 74, ptr noundef %403, ptr noundef %405, ptr noundef %407, i32 noundef %408) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

410:                                              ; preds = %384
  %411 = load i32, ptr @test_count, align 4, !tbaa !5
  %412 = add nsw i32 %411, 1
  store i32 %412, ptr @test_count, align 4, !tbaa !5
  %413 = tail call zeroext i1 @s2n_extension_never_send(ptr noundef null) #12
  br i1 %413, label %414, label %436

414:                                              ; preds = %410
  %415 = load i32, ptr %250, align 4, !tbaa !5
  %416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %417 = tail call i32 @s2n_print_stacktrace(ptr noundef %416) #12
  %418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %419 = trunc nuw i8 %418 to i1
  br i1 %419, label %420, label %424

420:                                              ; preds = %414
  %421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %422 = tail call i32 @fileno(ptr noundef %421) #12
  %423 = tail call i32 @isatty(i32 noundef %422) #12
  %.not705 = icmp eq i32 %423, 0
  br i1 %.not705, label %424, label %425

424:                                              ; preds = %420, %414
  br label %425

425:                                              ; preds = %420, %424
  %.str.5.sink852 = phi ptr [ @.str.5, %424 ], [ @.str.2, %420 ]
  store i32 %415, ptr %250, align 4, !tbaa !5
  %426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %427 = load i32, ptr @test_count, align 4, !tbaa !5
  %428 = load i32, ptr %196, align 4, !tbaa !5
  %429 = tail call ptr @s2n_strerror(i32 noundef %428, ptr noundef nonnull @.str.4) #12
  %430 = load i32, ptr %196, align 4, !tbaa !5
  %431 = tail call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef nonnull @.str.4) #12
  %432 = load i32, ptr %250, align 4, !tbaa !5
  %433 = tail call ptr @strerror(i32 noundef %432) #12
  %434 = load i32, ptr %250, align 4, !tbaa !5
  %435 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %426, ptr noundef nonnull %.str.5.sink852, i32 noundef %427, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 75, ptr noundef %429, ptr noundef %431, ptr noundef %433, i32 noundef %434) #14
  tail call void @exit(i32 noundef 1) #15
  unreachable

436:                                              ; preds = %410
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %1) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %1, i8 0, i64 4184, i1 false)
  %437 = getelementptr inbounds i8, ptr %1, i64 220
  store i8 33, ptr %437, align 4, !tbaa !15
  %438 = load i32, ptr @test_count, align 4, !tbaa !5
  %439 = add nsw i32 %438, 1
  store i32 %439, ptr @test_count, align 4, !tbaa !5
  %440 = call zeroext i1 @s2n_extension_send_if_tls13_connection(ptr noundef nonnull %1) #12
  br i1 %440, label %441, label %463

441:                                              ; preds = %436
  %442 = load i32, ptr %250, align 4, !tbaa !5
  %443 = load ptr, ptr @stderr, align 8, !tbaa !9
  %444 = call i32 @s2n_print_stacktrace(ptr noundef %443) #12
  %445 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %446 = trunc nuw i8 %445 to i1
  br i1 %446, label %447, label %451

447:                                              ; preds = %441
  %448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %449 = call i32 @fileno(ptr noundef %448) #12
  %450 = call i32 @isatty(i32 noundef %449) #12
  %.not704 = icmp eq i32 %450, 0
  br i1 %.not704, label %451, label %452

451:                                              ; preds = %447, %441
  br label %452

452:                                              ; preds = %447, %451
  %.str.5.sink861 = phi ptr [ @.str.5, %451 ], [ @.str.2, %447 ]
  store i32 %442, ptr %250, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = load i32, ptr @test_count, align 4, !tbaa !5
  %455 = load i32, ptr %196, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror(i32 noundef %455, ptr noundef nonnull @.str.4) #12
  %457 = load i32, ptr %196, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror_debug(i32 noundef %457, ptr noundef nonnull @.str.4) #12
  %459 = load i32, ptr %250, align 4, !tbaa !5
  %460 = call ptr @strerror(i32 noundef %459) #12
  %461 = load i32, ptr %250, align 4, !tbaa !5
  %462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %453, ptr noundef nonnull %.str.5.sink861, i32 noundef %454, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %456, ptr noundef %458, ptr noundef %460, i32 noundef %461) #14
  call void @exit(i32 noundef 1) #15
  unreachable

463:                                              ; preds = %436
  store i8 34, ptr %437, align 4, !tbaa !15
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = add nsw i32 %464, 1
  store i32 %465, ptr @test_count, align 4, !tbaa !5
  %466 = call zeroext i1 @s2n_extension_send_if_tls13_connection(ptr noundef nonnull %1) #12
  br i1 %466, label %489, label %467

467:                                              ; preds = %463
  %468 = load i32, ptr %250, align 4, !tbaa !5
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @s2n_print_stacktrace(ptr noundef %469) #12
  %471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %472 = trunc nuw i8 %471 to i1
  br i1 %472, label %473, label %477

473:                                              ; preds = %467
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = call i32 @fileno(ptr noundef %474) #12
  %476 = call i32 @isatty(i32 noundef %475) #12
  %.not510 = icmp eq i32 %476, 0
  br i1 %.not510, label %477, label %478

477:                                              ; preds = %473, %467
  br label %478

478:                                              ; preds = %473, %477
  %.str.5.sink870 = phi ptr [ @.str.5, %477 ], [ @.str.2, %473 ]
  store i32 %468, ptr %250, align 4, !tbaa !5
  %479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %480 = load i32, ptr @test_count, align 4, !tbaa !5
  %481 = load i32, ptr %196, align 4, !tbaa !5
  %482 = call ptr @s2n_strerror(i32 noundef %481, ptr noundef nonnull @.str.4) #12
  %483 = load i32, ptr %196, align 4, !tbaa !5
  %484 = call ptr @s2n_strerror_debug(i32 noundef %483, ptr noundef nonnull @.str.4) #12
  %485 = load i32, ptr %250, align 4, !tbaa !5
  %486 = call ptr @strerror(i32 noundef %485) #12
  %487 = load i32, ptr %250, align 4, !tbaa !5
  %488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %479, ptr noundef nonnull %.str.5.sink870, i32 noundef %480, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %482, ptr noundef %484, ptr noundef %486, i32 noundef %487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

489:                                              ; preds = %463
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %1) #12
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = add nsw i32 %490, 1
  store i32 %491, ptr @test_count, align 4, !tbaa !5
  %492 = call i32 @s2n_extension_error_if_missing(ptr noundef null) #12
  %493 = icmp eq i32 %492, -1
  br i1 %493, label %516, label %494

494:                                              ; preds = %489
  %495 = load i32, ptr %250, align 4, !tbaa !5
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @s2n_print_stacktrace(ptr noundef %496) #12
  %498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %499 = trunc nuw i8 %498 to i1
  br i1 %499, label %500, label %504

500:                                              ; preds = %494
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @fileno(ptr noundef %501) #12
  %503 = call i32 @isatty(i32 noundef %502) #12
  %.not511 = icmp eq i32 %503, 0
  br i1 %.not511, label %504, label %505

504:                                              ; preds = %500, %494
  br label %505

505:                                              ; preds = %500, %504
  %.str.5.sink879 = phi ptr [ @.str.5, %504 ], [ @.str.2, %500 ]
  store i32 %495, ptr %250, align 4, !tbaa !5
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = load i32, ptr %196, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror(i32 noundef %508, ptr noundef nonnull @.str.4) #12
  %510 = load i32, ptr %196, align 4, !tbaa !5
  %511 = call ptr @s2n_strerror_debug(i32 noundef %510, ptr noundef nonnull @.str.4) #12
  %512 = load i32, ptr %250, align 4, !tbaa !5
  %513 = call ptr @strerror(i32 noundef %512) #12
  %514 = load i32, ptr %250, align 4, !tbaa !5
  %515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %506, ptr noundef nonnull %.str.5.sink879, i32 noundef %507, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %509, ptr noundef %511, ptr noundef %513, i32 noundef %514) #14
  call void @exit(i32 noundef 1) #15
  unreachable

516:                                              ; preds = %489
  %517 = load i32, ptr @test_count, align 4, !tbaa !5
  %518 = add nsw i32 %517, 1
  store i32 %518, ptr @test_count, align 4, !tbaa !5
  %519 = load i32, ptr %196, align 4, !tbaa !5
  %520 = icmp eq i32 %519, 335544393
  br i1 %520, label %543, label %521

521:                                              ; preds = %516
  %522 = load i32, ptr %250, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @s2n_print_stacktrace(ptr noundef %523) #12
  %525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %526 = trunc nuw i8 %525 to i1
  br i1 %526, label %527, label %531

527:                                              ; preds = %521
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @fileno(ptr noundef %528) #12
  %530 = call i32 @isatty(i32 noundef %529) #12
  %.not512 = icmp eq i32 %530, 0
  br i1 %.not512, label %531, label %532

531:                                              ; preds = %527, %521
  br label %532

532:                                              ; preds = %527, %531
  %.str.5.sink888 = phi ptr [ @.str.5, %531 ], [ @.str.2, %527 ]
  store i32 %522, ptr %250, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = load i32, ptr %196, align 4, !tbaa !5
  %536 = call ptr @s2n_strerror(i32 noundef %535, ptr noundef nonnull @.str.4) #12
  %537 = load i32, ptr %196, align 4, !tbaa !5
  %538 = call ptr @s2n_strerror_debug(i32 noundef %537, ptr noundef nonnull @.str.4) #12
  %539 = load i32, ptr %250, align 4, !tbaa !5
  %540 = call ptr @strerror(i32 noundef %539) #12
  %541 = load i32, ptr %250, align 4, !tbaa !5
  %542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef nonnull %.str.5.sink888, i32 noundef %534, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %536, ptr noundef %538, ptr noundef %540, i32 noundef %541) #14
  call void @exit(i32 noundef 1) #15
  unreachable

543:                                              ; preds = %516
  %544 = add nsw i32 %517, 2
  store i32 %544, ptr @test_count, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #12
  %546 = icmp eq ptr %545, null
  br i1 %546, label %547, label %569

547:                                              ; preds = %543
  %548 = load i32, ptr %250, align 4, !tbaa !5
  %549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %550 = call i32 @s2n_print_stacktrace(ptr noundef %549) #12
  %551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %552 = trunc nuw i8 %551 to i1
  br i1 %552, label %553, label %557

553:                                              ; preds = %547
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = call i32 @fileno(ptr noundef %554) #12
  %556 = call i32 @isatty(i32 noundef %555) #12
  %.not703 = icmp eq i32 %556, 0
  br i1 %.not703, label %557, label %558

557:                                              ; preds = %553, %547
  br label %558

558:                                              ; preds = %553, %557
  %.str.5.sink897 = phi ptr [ @.str.5, %557 ], [ @.str.2, %553 ]
  store i32 %548, ptr %250, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = load i32, ptr %196, align 4, !tbaa !5
  %562 = call ptr @s2n_strerror(i32 noundef %561, ptr noundef nonnull @.str.4) #12
  %563 = load i32, ptr %196, align 4, !tbaa !5
  %564 = call ptr @s2n_strerror_debug(i32 noundef %563, ptr noundef nonnull @.str.4) #12
  %565 = load i32, ptr %250, align 4, !tbaa !5
  %566 = call ptr @strerror(i32 noundef %565) #12
  %567 = load i32, ptr %250, align 4, !tbaa !5
  %568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %559, ptr noundef nonnull %.str.5.sink897, i32 noundef %560, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %562, ptr noundef %564, ptr noundef %566, i32 noundef %567) #14
  call void @exit(i32 noundef 1) #15
  unreachable

569:                                              ; preds = %543
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = add nsw i32 %570, 1
  store i32 %571, ptr @test_count, align 4, !tbaa !5
  %572 = call i32 @s2n_extension_noop_if_missing(ptr noundef null) #12
  %573 = icmp eq i32 %572, -1
  br i1 %573, label %574, label %596

574:                                              ; preds = %569
  %575 = load i32, ptr %250, align 4, !tbaa !5
  %576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %577 = call i32 @s2n_print_stacktrace(ptr noundef %576) #12
  %578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %579 = trunc nuw i8 %578 to i1
  br i1 %579, label %580, label %584

580:                                              ; preds = %574
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @fileno(ptr noundef %581) #12
  %583 = call i32 @isatty(i32 noundef %582) #12
  %.not702 = icmp eq i32 %583, 0
  br i1 %.not702, label %584, label %585

584:                                              ; preds = %580, %574
  br label %585

585:                                              ; preds = %580, %584
  %.str.5.sink906 = phi ptr [ @.str.5, %584 ], [ @.str.2, %580 ]
  store i32 %575, ptr %250, align 4, !tbaa !5
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = load i32, ptr @test_count, align 4, !tbaa !5
  %588 = load i32, ptr %196, align 4, !tbaa !5
  %589 = call ptr @s2n_strerror(i32 noundef %588, ptr noundef nonnull @.str.4) #12
  %590 = load i32, ptr %196, align 4, !tbaa !5
  %591 = call ptr @s2n_strerror_debug(i32 noundef %590, ptr noundef nonnull @.str.4) #12
  %592 = load i32, ptr %250, align 4, !tbaa !5
  %593 = call ptr @strerror(i32 noundef %592) #12
  %594 = load i32, ptr %250, align 4, !tbaa !5
  %595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %586, ptr noundef nonnull %.str.5.sink906, i32 noundef %587, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %589, ptr noundef %591, ptr noundef %593, i32 noundef %594) #14
  call void @exit(i32 noundef 1) #15
  unreachable

596:                                              ; preds = %569
  %597 = load i32, ptr @test_count, align 4, !tbaa !5
  %598 = add nsw i32 %597, 1
  store i32 %598, ptr @test_count, align 4, !tbaa !5
  %599 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 10), align 2, !tbaa !42
  %600 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %599) #12
  %601 = icmp eq i8 %600, 5
  br i1 %601, label %624, label %602

602:                                              ; preds = %596
  %603 = load i32, ptr %250, align 4, !tbaa !5
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @s2n_print_stacktrace(ptr noundef %604) #12
  %606 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %607 = trunc nuw i8 %606 to i1
  br i1 %607, label %608, label %612

608:                                              ; preds = %602
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = call i32 @fileno(ptr noundef %609) #12
  %611 = call i32 @isatty(i32 noundef %610) #12
  %.not513 = icmp eq i32 %611, 0
  br i1 %.not513, label %612, label %613

612:                                              ; preds = %608, %602
  br label %613

613:                                              ; preds = %608, %612
  %.str.5.sink915 = phi ptr [ @.str.5, %612 ], [ @.str.2, %608 ]
  store i32 %603, ptr %250, align 4, !tbaa !5
  %614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %615 = load i32, ptr @test_count, align 4, !tbaa !5
  %616 = load i32, ptr %196, align 4, !tbaa !5
  %617 = call ptr @s2n_strerror(i32 noundef %616, ptr noundef nonnull @.str.4) #12
  %618 = load i32, ptr %196, align 4, !tbaa !5
  %619 = call ptr @s2n_strerror_debug(i32 noundef %618, ptr noundef nonnull @.str.4) #12
  %620 = load i32, ptr %250, align 4, !tbaa !5
  %621 = call ptr @strerror(i32 noundef %620) #12
  %622 = load i32, ptr %250, align 4, !tbaa !5
  %623 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %614, ptr noundef nonnull %.str.5.sink915, i32 noundef %615, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %617, ptr noundef %619, ptr noundef %621, i32 noundef %622) #14
  call void @exit(i32 noundef 1) #15
  unreachable

624:                                              ; preds = %596
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = add nsw i32 %625, 1
  store i32 %626, ptr @test_count, align 4, !tbaa !5
  %627 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext 15) #12
  %628 = load i8, ptr @s2n_unsupported_extension, align 1, !tbaa !43
  %629 = icmp eq i8 %627, %628
  br i1 %629, label %652, label %630

630:                                              ; preds = %624
  %631 = load i32, ptr %250, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = call i32 @s2n_print_stacktrace(ptr noundef %632) #12
  %634 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %635 = trunc nuw i8 %634 to i1
  br i1 %635, label %636, label %640

636:                                              ; preds = %630
  %637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %638 = call i32 @fileno(ptr noundef %637) #12
  %639 = call i32 @isatty(i32 noundef %638) #12
  %.not514 = icmp eq i32 %639, 0
  br i1 %.not514, label %640, label %641

640:                                              ; preds = %636, %630
  br label %641

641:                                              ; preds = %636, %640
  %.str.5.sink924 = phi ptr [ @.str.5, %640 ], [ @.str.2, %636 ]
  store i32 %631, ptr %250, align 4, !tbaa !5
  %642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %643 = load i32, ptr @test_count, align 4, !tbaa !5
  %644 = load i32, ptr %196, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror(i32 noundef %644, ptr noundef nonnull @.str.4) #12
  %646 = load i32, ptr %196, align 4, !tbaa !5
  %647 = call ptr @s2n_strerror_debug(i32 noundef %646, ptr noundef nonnull @.str.4) #12
  %648 = load i32, ptr %250, align 4, !tbaa !5
  %649 = call ptr @strerror(i32 noundef %648) #12
  %650 = load i32, ptr %250, align 4, !tbaa !5
  %651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %642, ptr noundef nonnull %.str.5.sink924, i32 noundef %643, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %645, ptr noundef %647, ptr noundef %649, i32 noundef %650) #14
  call void @exit(i32 noundef 1) #15
  unreachable

652:                                              ; preds = %624
  %653 = load i32, ptr @test_count, align 4, !tbaa !5
  %654 = add nsw i32 %653, 1
  store i32 %654, ptr @test_count, align 4, !tbaa !5
  %655 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext -255) #12
  %656 = icmp eq i8 %655, 0
  br i1 %656, label %679, label %657

657:                                              ; preds = %652
  %658 = load i32, ptr %250, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = call i32 @s2n_print_stacktrace(ptr noundef %659) #12
  %661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %662 = trunc nuw i8 %661 to i1
  br i1 %662, label %663, label %667

663:                                              ; preds = %657
  %664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %665 = call i32 @fileno(ptr noundef %664) #12
  %666 = call i32 @isatty(i32 noundef %665) #12
  %.not515 = icmp eq i32 %666, 0
  br i1 %.not515, label %667, label %668

667:                                              ; preds = %663, %657
  br label %668

668:                                              ; preds = %663, %667
  %.str.5.sink933 = phi ptr [ @.str.5, %667 ], [ @.str.2, %663 ]
  store i32 %658, ptr %250, align 4, !tbaa !5
  %669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %670 = load i32, ptr @test_count, align 4, !tbaa !5
  %671 = load i32, ptr %196, align 4, !tbaa !5
  %672 = call ptr @s2n_strerror(i32 noundef %671, ptr noundef nonnull @.str.4) #12
  %673 = load i32, ptr %196, align 4, !tbaa !5
  %674 = call ptr @s2n_strerror_debug(i32 noundef %673, ptr noundef nonnull @.str.4) #12
  %675 = load i32, ptr %250, align 4, !tbaa !5
  %676 = call ptr @strerror(i32 noundef %675) #12
  %677 = load i32, ptr %250, align 4, !tbaa !5
  %678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %669, ptr noundef nonnull %.str.5.sink933, i32 noundef %670, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %672, ptr noundef %674, ptr noundef %676, i32 noundef %677) #14
  call void @exit(i32 noundef 1) #15
  unreachable

679:                                              ; preds = %652
  %680 = load i32, ptr @test_count, align 4, !tbaa !5
  %681 = add nsw i32 %680, 1
  store i32 %681, ptr @test_count, align 4, !tbaa !5
  %682 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext -256) #12
  %683 = icmp eq i8 %682, %627
  br i1 %683, label %.preheader714.preheader, label %689

.preheader714.preheader:                          ; preds = %679
  %684 = load i32, ptr @test_count, align 4, !tbaa !5
  %685 = add nsw i32 %684, 1
  store i32 %685, ptr @test_count, align 4, !tbaa !5
  %686 = load i16, ptr @s2n_supported_extensions, align 16, !tbaa !42
  %687 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %686) #12
  %688 = icmp eq i8 %687, 0
  br i1 %688, label %.preheader714.1, label %815

689:                                              ; preds = %679
  %690 = load i32, ptr %250, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = call i32 @s2n_print_stacktrace(ptr noundef %691) #12
  %693 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %694 = trunc nuw i8 %693 to i1
  br i1 %694, label %695, label %699

695:                                              ; preds = %689
  %696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %697 = call i32 @fileno(ptr noundef %696) #12
  %698 = call i32 @isatty(i32 noundef %697) #12
  %.not516 = icmp eq i32 %698, 0
  br i1 %.not516, label %699, label %700

699:                                              ; preds = %695, %689
  br label %700

700:                                              ; preds = %695, %699
  %.str.5.sink942 = phi ptr [ @.str.5, %699 ], [ @.str.2, %695 ]
  store i32 %690, ptr %250, align 4, !tbaa !5
  %701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %702 = load i32, ptr @test_count, align 4, !tbaa !5
  %703 = load i32, ptr %196, align 4, !tbaa !5
  %704 = call ptr @s2n_strerror(i32 noundef %703, ptr noundef nonnull @.str.4) #12
  %705 = load i32, ptr %196, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror_debug(i32 noundef %705, ptr noundef nonnull @.str.4) #12
  %707 = load i32, ptr %250, align 4, !tbaa !5
  %708 = call ptr @strerror(i32 noundef %707) #12
  %709 = load i32, ptr %250, align 4, !tbaa !5
  %710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %701, ptr noundef nonnull %.str.5.sink942, i32 noundef %702, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %704, ptr noundef %706, ptr noundef %708, i32 noundef %709) #14
  call void @exit(i32 noundef 1) #15
  unreachable

.preheader714.1:                                  ; preds = %.preheader714.preheader
  %711 = load i32, ptr @test_count, align 4, !tbaa !5
  %712 = add nsw i32 %711, 1
  store i32 %712, ptr @test_count, align 4, !tbaa !5
  %713 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 2), align 2, !tbaa !42
  %714 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %713) #12
  %715 = icmp eq i8 %714, 1
  br i1 %715, label %.preheader714.2, label %815

.preheader714.2:                                  ; preds = %.preheader714.1
  %716 = load i32, ptr @test_count, align 4, !tbaa !5
  %717 = add nsw i32 %716, 1
  store i32 %717, ptr @test_count, align 4, !tbaa !5
  %718 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 4), align 4, !tbaa !42
  %719 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %718) #12
  %720 = icmp eq i8 %719, 2
  br i1 %720, label %.preheader714.3, label %815

.preheader714.3:                                  ; preds = %.preheader714.2
  %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 i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 6), align 2, !tbaa !42
  %724 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %723) #12
  %725 = icmp eq i8 %724, 3
  br i1 %725, label %.preheader714.4, label %815

.preheader714.4:                                  ; preds = %.preheader714.3
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr @test_count, align 4, !tbaa !5
  %728 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 8), align 8, !tbaa !42
  %729 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %728) #12
  %730 = icmp eq i8 %729, 4
  br i1 %730, label %.preheader714.5, label %815

.preheader714.5:                                  ; preds = %.preheader714.4
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = add nsw i32 %731, 1
  store i32 %732, ptr @test_count, align 4, !tbaa !5
  %733 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %599) #12
  %734 = icmp eq i8 %733, 5
  br i1 %734, label %.preheader714.6, label %815

.preheader714.6:                                  ; preds = %.preheader714.5
  %735 = load i32, ptr @test_count, align 4, !tbaa !5
  %736 = add nsw i32 %735, 1
  store i32 %736, ptr @test_count, align 4, !tbaa !5
  %737 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 12), align 4, !tbaa !42
  %738 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %737) #12
  %739 = icmp eq i8 %738, 6
  br i1 %739, label %.preheader714.7, label %815

.preheader714.7:                                  ; preds = %.preheader714.6
  %740 = load i32, ptr @test_count, align 4, !tbaa !5
  %741 = add nsw i32 %740, 1
  store i32 %741, ptr @test_count, align 4, !tbaa !5
  %742 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 14), align 2, !tbaa !42
  %743 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %742) #12
  %744 = icmp eq i8 %743, 7
  br i1 %744, label %.preheader714.8, label %815

.preheader714.8:                                  ; preds = %.preheader714.7
  %745 = load i32, ptr @test_count, align 4, !tbaa !5
  %746 = add nsw i32 %745, 1
  store i32 %746, ptr @test_count, align 4, !tbaa !5
  %747 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 16), align 16, !tbaa !42
  %748 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %747) #12
  %749 = icmp eq i8 %748, 8
  br i1 %749, label %.preheader714.9, label %815

.preheader714.9:                                  ; preds = %.preheader714.8
  %750 = load i32, ptr @test_count, align 4, !tbaa !5
  %751 = add nsw i32 %750, 1
  store i32 %751, ptr @test_count, align 4, !tbaa !5
  %752 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 18), align 2, !tbaa !42
  %753 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %752) #12
  %754 = icmp eq i8 %753, 9
  br i1 %754, label %.preheader714.10, label %815

.preheader714.10:                                 ; preds = %.preheader714.9
  %755 = load i32, ptr @test_count, align 4, !tbaa !5
  %756 = add nsw i32 %755, 1
  store i32 %756, ptr @test_count, align 4, !tbaa !5
  %757 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 20), align 4, !tbaa !42
  %758 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %757) #12
  %759 = icmp eq i8 %758, 10
  br i1 %759, label %.preheader714.11, label %815

.preheader714.11:                                 ; preds = %.preheader714.10
  %760 = load i32, ptr @test_count, align 4, !tbaa !5
  %761 = add nsw i32 %760, 1
  store i32 %761, ptr @test_count, align 4, !tbaa !5
  %762 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 22), align 2, !tbaa !42
  %763 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %762) #12
  %764 = icmp eq i8 %763, 11
  br i1 %764, label %.preheader714.12, label %815

.preheader714.12:                                 ; preds = %.preheader714.11
  %765 = load i32, ptr @test_count, align 4, !tbaa !5
  %766 = add nsw i32 %765, 1
  store i32 %766, ptr @test_count, align 4, !tbaa !5
  %767 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 24), align 8, !tbaa !42
  %768 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %767) #12
  %769 = icmp eq i8 %768, 12
  br i1 %769, label %.preheader714.13, label %815

.preheader714.13:                                 ; preds = %.preheader714.12
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = add nsw i32 %770, 1
  store i32 %771, ptr @test_count, align 4, !tbaa !5
  %772 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 26), align 2, !tbaa !42
  %773 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %772) #12
  %774 = icmp eq i8 %773, 13
  br i1 %774, label %.preheader714.14, label %815

.preheader714.14:                                 ; preds = %.preheader714.13
  %775 = load i32, ptr @test_count, align 4, !tbaa !5
  %776 = add nsw i32 %775, 1
  store i32 %776, ptr @test_count, align 4, !tbaa !5
  %777 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 28), align 4, !tbaa !42
  %778 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %777) #12
  %779 = icmp eq i8 %778, 14
  br i1 %779, label %.preheader714.15, label %815

.preheader714.15:                                 ; preds = %.preheader714.14
  %780 = load i32, ptr @test_count, align 4, !tbaa !5
  %781 = add nsw i32 %780, 1
  store i32 %781, ptr @test_count, align 4, !tbaa !5
  %782 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 30), align 2, !tbaa !42
  %783 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %782) #12
  %784 = icmp eq i8 %783, 15
  br i1 %784, label %.preheader714.16, label %815

.preheader714.16:                                 ; preds = %.preheader714.15
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = add nsw i32 %785, 1
  store i32 %786, ptr @test_count, align 4, !tbaa !5
  %787 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 32), align 16, !tbaa !42
  %788 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %787) #12
  %789 = icmp eq i8 %788, 16
  br i1 %789, label %.preheader714.17, label %815

.preheader714.17:                                 ; preds = %.preheader714.16
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 34), align 2, !tbaa !42
  %793 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %792) #12
  %794 = icmp eq i8 %793, 17
  br i1 %794, label %.preheader714.18, label %815

.preheader714.18:                                 ; preds = %.preheader714.17
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 36), align 4, !tbaa !42
  %798 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %797) #12
  %799 = icmp eq i8 %798, 18
  br i1 %799, label %.preheader714.19, label %815

.preheader714.19:                                 ; preds = %.preheader714.18
  %800 = load i32, ptr @test_count, align 4, !tbaa !5
  %801 = add nsw i32 %800, 1
  store i32 %801, ptr @test_count, align 4, !tbaa !5
  %802 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 38), align 2, !tbaa !42
  %803 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %802) #12
  %804 = icmp eq i8 %803, 19
  br i1 %804, label %.preheader714.20, label %815

.preheader714.20:                                 ; preds = %.preheader714.19
  %805 = load i32, ptr @test_count, align 4, !tbaa !5
  %806 = add nsw i32 %805, 1
  store i32 %806, ptr @test_count, align 4, !tbaa !5
  %807 = load i16, ptr getelementptr inbounds (i8, ptr @s2n_supported_extensions, i64 40), align 8, !tbaa !42
  %808 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %807) #12
  %809 = icmp eq i8 %808, 20
  br i1 %809, label %810, label %815

810:                                              ; preds = %.preheader714.20
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %2) #12
  store i8 %627, ptr %2, align 1, !tbaa !43
  %811 = load i32, ptr @test_count, align 4, !tbaa !5
  %812 = add nsw i32 %811, 1
  store i32 %812, ptr @test_count, align 4, !tbaa !5
  %813 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext %599, ptr noundef nonnull %2) #12
  %814 = icmp eq i32 %813, -1
  br i1 %814, label %837, label %859

815:                                              ; preds = %.preheader714.20, %.preheader714.19, %.preheader714.18, %.preheader714.17, %.preheader714.16, %.preheader714.15, %.preheader714.14, %.preheader714.13, %.preheader714.12, %.preheader714.11, %.preheader714.10, %.preheader714.9, %.preheader714.8, %.preheader714.7, %.preheader714.6, %.preheader714.5, %.preheader714.4, %.preheader714.3, %.preheader714.2, %.preheader714.1, %.preheader714.preheader
  %816 = load i32, ptr %250, align 4, !tbaa !5
  %817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %818 = call i32 @s2n_print_stacktrace(ptr noundef %817) #12
  %819 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %820 = trunc nuw i8 %819 to i1
  br i1 %820, label %821, label %825

821:                                              ; preds = %815
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = call i32 @fileno(ptr noundef %822) #12
  %824 = call i32 @isatty(i32 noundef %823) #12
  %.not701 = icmp eq i32 %824, 0
  br i1 %.not701, label %825, label %826

825:                                              ; preds = %821, %815
  br label %826

826:                                              ; preds = %821, %825
  %.str.5.sink951 = phi ptr [ @.str.5, %825 ], [ @.str.2, %821 ]
  store i32 %816, ptr %250, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = load i32, ptr @test_count, align 4, !tbaa !5
  %829 = load i32, ptr %196, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror(i32 noundef %829, ptr noundef nonnull @.str.4) #12
  %831 = load i32, ptr %196, align 4, !tbaa !5
  %832 = call ptr @s2n_strerror_debug(i32 noundef %831, ptr noundef nonnull @.str.4) #12
  %833 = load i32, ptr %250, align 4, !tbaa !5
  %834 = call ptr @strerror(i32 noundef %833) #12
  %835 = load i32, ptr %250, align 4, !tbaa !5
  %836 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %827, ptr noundef nonnull %.str.5.sink951, i32 noundef %828, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %830, ptr noundef %832, ptr noundef %834, i32 noundef %835) #14
  call void @exit(i32 noundef 1) #15
  unreachable

837:                                              ; preds = %810
  %838 = load i32, ptr %250, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839) #12
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc nuw i8 %841 to i1
  br i1 %842, label %843, label %847

843:                                              ; preds = %837
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #12
  %846 = call i32 @isatty(i32 noundef %845) #12
  %.not700 = icmp eq i32 %846, 0
  br i1 %.not700, label %847, label %848

847:                                              ; preds = %843, %837
  br label %848

848:                                              ; preds = %843, %847
  %.str.5.sink960 = phi ptr [ @.str.5, %847 ], [ @.str.2, %843 ]
  store i32 %838, ptr %250, align 4, !tbaa !5
  %849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %850 = load i32, ptr @test_count, align 4, !tbaa !5
  %851 = load i32, ptr %196, align 4, !tbaa !5
  %852 = call ptr @s2n_strerror(i32 noundef %851, ptr noundef nonnull @.str.4) #12
  %853 = load i32, ptr %196, align 4, !tbaa !5
  %854 = call ptr @s2n_strerror_debug(i32 noundef %853, ptr noundef nonnull @.str.4) #12
  %855 = load i32, ptr %250, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #12
  %857 = load i32, ptr %250, align 4, !tbaa !5
  %858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %849, ptr noundef nonnull %.str.5.sink960, i32 noundef %850, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 117, ptr noundef %852, ptr noundef %854, ptr noundef %856, i32 noundef %857) #14
  call void @exit(i32 noundef 1) #15
  unreachable

859:                                              ; preds = %810
  %860 = load i32, ptr @test_count, align 4, !tbaa !5
  %861 = add nsw i32 %860, 1
  store i32 %861, ptr @test_count, align 4, !tbaa !5
  %862 = load i8, ptr %2, align 1, !tbaa !43
  %863 = icmp eq i8 %862, 5
  br i1 %863, label %886, label %864

864:                                              ; preds = %859
  %865 = load i32, ptr %250, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = call i32 @s2n_print_stacktrace(ptr noundef %866) #12
  %868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %869 = trunc nuw i8 %868 to i1
  br i1 %869, label %870, label %874

870:                                              ; preds = %864
  %871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %872 = call i32 @fileno(ptr noundef %871) #12
  %873 = call i32 @isatty(i32 noundef %872) #12
  %.not517 = icmp eq i32 %873, 0
  br i1 %.not517, label %874, label %875

874:                                              ; preds = %870, %864
  br label %875

875:                                              ; preds = %870, %874
  %.str.5.sink969 = phi ptr [ @.str.5, %874 ], [ @.str.2, %870 ]
  store i32 %865, ptr %250, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = load i32, ptr %196, align 4, !tbaa !5
  %879 = call ptr @s2n_strerror(i32 noundef %878, ptr noundef nonnull @.str.4) #12
  %880 = load i32, ptr %196, align 4, !tbaa !5
  %881 = call ptr @s2n_strerror_debug(i32 noundef %880, ptr noundef nonnull @.str.4) #12
  %882 = load i32, ptr %250, align 4, !tbaa !5
  %883 = call ptr @strerror(i32 noundef %882) #12
  %884 = load i32, ptr %250, align 4, !tbaa !5
  %885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %876, ptr noundef nonnull %.str.5.sink969, i32 noundef %877, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %879, ptr noundef %881, ptr noundef %883, i32 noundef %884) #14
  call void @exit(i32 noundef 1) #15
  unreachable

886:                                              ; preds = %859
  %887 = add nsw i32 %860, 2
  store i32 %887, ptr @test_count, align 4, !tbaa !5
  %888 = call i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext 15, ptr noundef nonnull %2) #12
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %912, label %890

890:                                              ; preds = %886
  %891 = load i32, ptr %250, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @s2n_print_stacktrace(ptr noundef %892) #12
  %894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %895 = trunc nuw i8 %894 to i1
  br i1 %895, label %896, label %900

896:                                              ; preds = %890
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = call i32 @fileno(ptr noundef %897) #12
  %899 = call i32 @isatty(i32 noundef %898) #12
  %.not518 = icmp eq i32 %899, 0
  br i1 %.not518, label %900, label %901

900:                                              ; preds = %896, %890
  br label %901

901:                                              ; preds = %896, %900
  %.str.5.sink978 = phi ptr [ @.str.5, %900 ], [ @.str.2, %896 ]
  store i32 %891, ptr %250, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = load i32, ptr %196, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef nonnull @.str.4) #12
  %906 = load i32, ptr %196, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef nonnull @.str.4) #12
  %908 = load i32, ptr %250, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #12
  %910 = load i32, ptr %250, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef nonnull %.str.5.sink978, i32 noundef %903, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %905, ptr noundef %907, ptr noundef %909, i32 noundef %910) #14
  call void @exit(i32 noundef 1) #15
  unreachable

912:                                              ; preds = %886
  %913 = load i32, ptr @test_count, align 4, !tbaa !5
  %914 = add nsw i32 %913, 1
  store i32 %914, ptr @test_count, align 4, !tbaa !5
  %915 = load i32, ptr %196, align 4, !tbaa !5
  %916 = icmp eq i32 %915, 469762071
  br i1 %916, label %939, label %917

917:                                              ; preds = %912
  %918 = load i32, ptr %250, align 4, !tbaa !5
  %919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %920 = call i32 @s2n_print_stacktrace(ptr noundef %919) #12
  %921 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %922 = trunc nuw i8 %921 to i1
  br i1 %922, label %923, label %927

923:                                              ; preds = %917
  %924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %925 = call i32 @fileno(ptr noundef %924) #12
  %926 = call i32 @isatty(i32 noundef %925) #12
  %.not519 = icmp eq i32 %926, 0
  br i1 %.not519, label %927, label %928

927:                                              ; preds = %923, %917
  br label %928

928:                                              ; preds = %923, %927
  %.str.5.sink987 = phi ptr [ @.str.5, %927 ], [ @.str.2, %923 ]
  store i32 %918, ptr %250, align 4, !tbaa !5
  %929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %930 = load i32, ptr @test_count, align 4, !tbaa !5
  %931 = load i32, ptr %196, align 4, !tbaa !5
  %932 = call ptr @s2n_strerror(i32 noundef %931, ptr noundef nonnull @.str.4) #12
  %933 = load i32, ptr %196, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef nonnull @.str.4) #12
  %935 = load i32, ptr %250, align 4, !tbaa !5
  %936 = call ptr @strerror(i32 noundef %935) #12
  %937 = load i32, ptr %250, align 4, !tbaa !5
  %938 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %929, ptr noundef nonnull %.str.5.sink987, i32 noundef %930, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %932, ptr noundef %934, ptr noundef %936, i32 noundef %937) #14
  call void @exit(i32 noundef 1) #15
  unreachable

939:                                              ; preds = %912
  %940 = add nsw i32 %913, 2
  store i32 %940, ptr @test_count, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror_debug(i32 noundef 469762071, ptr noundef nonnull @.str.4) #12
  %942 = icmp eq ptr %941, null
  br i1 %942, label %943, label %965

943:                                              ; preds = %939
  %944 = load i32, ptr %250, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = call i32 @s2n_print_stacktrace(ptr noundef %945) #12
  %947 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %948 = trunc nuw i8 %947 to i1
  br i1 %948, label %949, label %953

949:                                              ; preds = %943
  %950 = load ptr, ptr @stderr, align 8, !tbaa !9
  %951 = call i32 @fileno(ptr noundef %950) #12
  %952 = call i32 @isatty(i32 noundef %951) #12
  %.not699 = icmp eq i32 %952, 0
  br i1 %.not699, label %953, label %954

953:                                              ; preds = %949, %943
  br label %954

954:                                              ; preds = %949, %953
  %.str.5.sink996 = phi ptr [ @.str.5, %953 ], [ @.str.2, %949 ]
  store i32 %944, ptr %250, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = load i32, ptr %196, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror(i32 noundef %957, ptr noundef nonnull @.str.4) #12
  %959 = load i32, ptr %196, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror_debug(i32 noundef %959, ptr noundef nonnull @.str.4) #12
  %961 = load i32, ptr %250, align 4, !tbaa !5
  %962 = call ptr @strerror(i32 noundef %961) #12
  %963 = load i32, ptr %250, align 4, !tbaa !5
  %964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef nonnull %.str.5.sink996, i32 noundef %956, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %958, ptr noundef %960, ptr noundef %962, i32 noundef %963) #14
  call void @exit(i32 noundef 1) #15
  unreachable

965:                                              ; preds = %939
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %2) #12
  call void @llvm.lifetime.start.p0(i64 22, ptr nonnull %3) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(22) %3, i8 0, i64 22, i1 false)
  br label %974

966:                                              ; preds = %1039
  %967 = add nuw nsw i64 %.0493716, 1
  %exitcond.not = icmp eq i64 %967, 21
  br i1 %exitcond.not, label %968, label %974, !llvm.loop !44

968:                                              ; preds = %966
  call void @llvm.lifetime.end.p0(i64 22, ptr nonnull %3) #12
  %969 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext 43) #12
  %970 = load i32, ptr @test_count, align 4, !tbaa !5
  %971 = add nsw i32 %970, 1
  store i32 %971, ptr @test_count, align 4, !tbaa !5
  %972 = zext i8 %969 to i32
  %973 = icmp eq i8 %969, %627
  br i1 %973, label %1067, label %1089

974:                                              ; preds = %965, %966
  %.0493716 = phi i64 [ 0, %965 ], [ %967, %966 ]
  %975 = getelementptr inbounds [21 x i16], ptr @s2n_supported_extensions, i64 0, i64 %.0493716
  %976 = load i16, ptr %975, align 2, !tbaa !42
  %977 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext %976) #12
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = zext i8 %977 to i32
  %981 = lshr i32 %980, 3
  %982 = zext nneg i32 %981 to i64
  %983 = getelementptr inbounds [22 x i8], ptr %3, i64 0, i64 %982
  %984 = load i8, ptr %983, align 1, !tbaa !43
  %985 = zext i8 %984 to i32
  %986 = and i32 %980, 7
  %987 = shl nuw nsw i32 1, %986
  %988 = and i32 %987, %985
  %.not693 = icmp eq i32 %988, 0
  br i1 %.not693, label %1011, label %989

989:                                              ; preds = %974
  %990 = load i32, ptr %250, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @s2n_print_stacktrace(ptr noundef %991) #12
  %993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %994 = trunc nuw i8 %993 to i1
  br i1 %994, label %995, label %999

995:                                              ; preds = %989
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = call i32 @fileno(ptr noundef %996) #12
  %998 = call i32 @isatty(i32 noundef %997) #12
  %.not698 = icmp eq i32 %998, 0
  br i1 %.not698, label %999, label %1000

999:                                              ; preds = %995, %989
  br label %1000

1000:                                             ; preds = %995, %999
  %.str.5.sink1005 = phi ptr [ @.str.5, %999 ], [ @.str.2, %995 ]
  store i32 %990, ptr %250, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = load i32, ptr %196, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef nonnull @.str.4) #12
  %1005 = load i32, ptr %196, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef nonnull @.str.4) #12
  %1007 = load i32, ptr %250, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #12
  %1009 = load i32, ptr %250, align 4, !tbaa !5
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef nonnull %.str.5.sink1005, i32 noundef %1002, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %1004, ptr noundef %1006, ptr noundef %1008, i32 noundef %1009) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1011:                                             ; preds = %974
  %1012 = trunc nuw i32 %987 to i8
  %1013 = or i8 %984, %1012
  %1014 = add nsw i32 %978, 2
  store i32 %1014, ptr @test_count, align 4, !tbaa !5
  %1015 = zext i8 %1013 to i32
  %1016 = and i32 %987, %1015
  %.not694 = icmp eq i32 %1016, 0
  br i1 %.not694, label %1017, label %1039

1017:                                             ; preds = %1011
  %1018 = load i32, ptr %250, align 4, !tbaa !5
  %1019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1020 = call i32 @s2n_print_stacktrace(ptr noundef %1019) #12
  %1021 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1022 = trunc nuw i8 %1021 to i1
  br i1 %1022, label %1023, label %1027

1023:                                             ; preds = %1017
  %1024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1025 = call i32 @fileno(ptr noundef %1024) #12
  %1026 = call i32 @isatty(i32 noundef %1025) #12
  %.not695 = icmp eq i32 %1026, 0
  br i1 %.not695, label %1027, label %1028

1027:                                             ; preds = %1023, %1017
  br label %1028

1028:                                             ; preds = %1023, %1027
  %.str.5.sink1014 = phi ptr [ @.str.5, %1027 ], [ @.str.2, %1023 ]
  store i32 %1018, ptr %250, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = load i32, ptr %196, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror(i32 noundef %1031, ptr noundef nonnull @.str.4) #12
  %1033 = load i32, ptr %196, align 4, !tbaa !5
  %1034 = call ptr @s2n_strerror_debug(i32 noundef %1033, ptr noundef nonnull @.str.4) #12
  %1035 = load i32, ptr %250, align 4, !tbaa !5
  %1036 = call ptr @strerror(i32 noundef %1035) #12
  %1037 = load i32, ptr %250, align 4, !tbaa !5
  %1038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1029, ptr noundef nonnull %.str.5.sink1014, i32 noundef %1030, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %1032, ptr noundef %1034, ptr noundef %1036, i32 noundef %1037) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1039:                                             ; preds = %1011
  %1040 = xor i8 %1012, -1
  %1041 = and i8 %984, %1040
  store i8 %1041, ptr %983, align 1, !tbaa !43
  %1042 = add nsw i32 %978, 3
  store i32 %1042, ptr @test_count, align 4, !tbaa !5
  %1043 = zext i8 %1041 to i32
  %1044 = and i32 %987, %1043
  %.not696 = icmp eq i32 %1044, 0
  br i1 %.not696, label %966, label %1045

1045:                                             ; preds = %1039
  %1046 = load i32, ptr %250, align 4, !tbaa !5
  %1047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1048 = call i32 @s2n_print_stacktrace(ptr noundef %1047) #12
  %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) #12
  %1054 = call i32 @isatty(i32 noundef %1053) #12
  %.not697 = icmp eq i32 %1054, 0
  br i1 %.not697, label %1055, label %1056

1055:                                             ; preds = %1051, %1045
  br label %1056

1056:                                             ; preds = %1051, %1055
  %.str.5.sink1023 = phi ptr [ @.str.5, %1055 ], [ @.str.2, %1051 ]
  store i32 %1046, ptr %250, 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 %196, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror(i32 noundef %1059, ptr noundef nonnull @.str.4) #12
  %1061 = load i32, ptr %196, align 4, !tbaa !5
  %1062 = call ptr @s2n_strerror_debug(i32 noundef %1061, ptr noundef nonnull @.str.4) #12
  %1063 = load i32, ptr %250, align 4, !tbaa !5
  %1064 = call ptr @strerror(i32 noundef %1063) #12
  %1065 = load i32, ptr %250, align 4, !tbaa !5
  %1066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1057, ptr noundef nonnull %.str.5.sink1023, i32 noundef %1058, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1060, ptr noundef %1062, ptr noundef %1064, i32 noundef %1065) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1067:                                             ; preds = %968
  %1068 = load i32, ptr %250, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @s2n_print_stacktrace(ptr noundef %1069) #12
  %1071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1072 = trunc nuw i8 %1071 to i1
  br i1 %1072, label %1073, label %1077

1073:                                             ; preds = %1067
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = call i32 @fileno(ptr noundef %1074) #12
  %1076 = call i32 @isatty(i32 noundef %1075) #12
  %.not692 = icmp eq i32 %1076, 0
  br i1 %.not692, label %1077, label %1078

1077:                                             ; preds = %1073, %1067
  br label %1078

1078:                                             ; preds = %1073, %1077
  %.str.5.sink1032 = phi ptr [ @.str.5, %1077 ], [ @.str.2, %1073 ]
  store i32 %1068, ptr %250, align 4, !tbaa !5
  %1079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1080 = load i32, ptr @test_count, align 4, !tbaa !5
  %1081 = load i32, ptr %196, align 4, !tbaa !5
  %1082 = call ptr @s2n_strerror(i32 noundef %1081, ptr noundef nonnull @.str.4) #12
  %1083 = load i32, ptr %196, align 4, !tbaa !5
  %1084 = call ptr @s2n_strerror_debug(i32 noundef %1083, ptr noundef nonnull @.str.4) #12
  %1085 = load i32, ptr %250, align 4, !tbaa !5
  %1086 = call ptr @strerror(i32 noundef %1085) #12
  %1087 = load i32, ptr %250, align 4, !tbaa !5
  %1088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1079, ptr noundef nonnull %.str.5.sink1032, i32 noundef %1080, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1082, ptr noundef %1084, ptr noundef %1086, i32 noundef %1087) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1089:                                             ; preds = %968
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %4, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %5) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %5, i8 0, i64 4184, i1 false)
  %1090 = add nsw i32 %970, 2
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = call i32 @s2n_extension_recv(ptr noundef null, ptr noundef nonnull %5, ptr noundef nonnull %4) #12
  %1092 = icmp eq i32 %1091, -1
  br i1 %1092, label %1115, label %1093

1093:                                             ; preds = %1089
  %1094 = load i32, ptr %250, align 4, !tbaa !5
  %1095 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1096 = call i32 @s2n_print_stacktrace(ptr noundef %1095) #12
  %1097 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1098 = trunc nuw i8 %1097 to i1
  br i1 %1098, label %1099, label %1103

1099:                                             ; preds = %1093
  %1100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1101 = call i32 @fileno(ptr noundef %1100) #12
  %1102 = call i32 @isatty(i32 noundef %1101) #12
  %.not520 = icmp eq i32 %1102, 0
  br i1 %.not520, label %1103, label %1104

1103:                                             ; preds = %1099, %1093
  br label %1104

1104:                                             ; preds = %1099, %1103
  %.str.5.sink1041 = phi ptr [ @.str.5, %1103 ], [ @.str.2, %1099 ]
  store i32 %1094, ptr %250, align 4, !tbaa !5
  %1105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1106 = load i32, ptr @test_count, align 4, !tbaa !5
  %1107 = load i32, ptr %196, align 4, !tbaa !5
  %1108 = call ptr @s2n_strerror(i32 noundef %1107, ptr noundef nonnull @.str.4) #12
  %1109 = load i32, ptr %196, align 4, !tbaa !5
  %1110 = call ptr @s2n_strerror_debug(i32 noundef %1109, ptr noundef nonnull @.str.4) #12
  %1111 = load i32, ptr %250, align 4, !tbaa !5
  %1112 = call ptr @strerror(i32 noundef %1111) #12
  %1113 = load i32, ptr %250, align 4, !tbaa !5
  %1114 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1105, ptr noundef nonnull %.str.5.sink1041, i32 noundef %1106, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1108, ptr noundef %1110, ptr noundef %1112, i32 noundef %1113) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1115:                                             ; preds = %1089
  %1116 = load i32, ptr @test_count, align 4, !tbaa !5
  %1117 = add nsw i32 %1116, 1
  store i32 %1117, ptr @test_count, align 4, !tbaa !5
  %1118 = load i32, ptr %196, align 4, !tbaa !5
  %1119 = icmp eq i32 %1118, 0
  br i1 %1119, label %1120, label %1142

1120:                                             ; preds = %1115
  %1121 = load i32, ptr %250, align 4, !tbaa !5
  %1122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1123 = call i32 @s2n_print_stacktrace(ptr noundef %1122) #12
  %1124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1125 = trunc nuw i8 %1124 to i1
  br i1 %1125, label %1126, label %1130

1126:                                             ; preds = %1120
  %1127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1128 = call i32 @fileno(ptr noundef %1127) #12
  %1129 = call i32 @isatty(i32 noundef %1128) #12
  %.not691 = icmp eq i32 %1129, 0
  br i1 %.not691, label %1130, label %1131

1130:                                             ; preds = %1126, %1120
  br label %1131

1131:                                             ; preds = %1126, %1130
  %.str.5.sink1050 = phi ptr [ @.str.5, %1130 ], [ @.str.2, %1126 ]
  store i32 %1121, ptr %250, align 4, !tbaa !5
  %1132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1133 = load i32, ptr @test_count, align 4, !tbaa !5
  %1134 = load i32, ptr %196, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror(i32 noundef %1134, ptr noundef nonnull @.str.4) #12
  %1136 = load i32, ptr %196, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror_debug(i32 noundef %1136, ptr noundef nonnull @.str.4) #12
  %1138 = load i32, ptr %250, align 4, !tbaa !5
  %1139 = call ptr @strerror(i32 noundef %1138) #12
  %1140 = load i32, ptr %250, align 4, !tbaa !5
  %1141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1132, ptr noundef nonnull %.str.5.sink1050, i32 noundef %1133, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1135, ptr noundef %1137, ptr noundef %1139, i32 noundef %1140) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1142:                                             ; preds = %1115
  %1143 = add nsw i32 %1116, 2
  store i32 %1143, ptr @test_count, align 4, !tbaa !5
  %1144 = call ptr @s2n_strerror_debug(i32 noundef %1118, ptr noundef nonnull @.str.4) #12
  %1145 = icmp eq ptr %1144, null
  br i1 %1145, label %1146, label %1168

1146:                                             ; preds = %1142
  %1147 = load i32, ptr %250, align 4, !tbaa !5
  %1148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1149 = call i32 @s2n_print_stacktrace(ptr noundef %1148) #12
  %1150 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1151 = trunc nuw i8 %1150 to i1
  br i1 %1151, label %1152, label %1156

1152:                                             ; preds = %1146
  %1153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1154 = call i32 @fileno(ptr noundef %1153) #12
  %1155 = call i32 @isatty(i32 noundef %1154) #12
  %.not690 = icmp eq i32 %1155, 0
  br i1 %.not690, label %1156, label %1157

1156:                                             ; preds = %1152, %1146
  br label %1157

1157:                                             ; preds = %1152, %1156
  %.str.5.sink1059 = phi ptr [ @.str.5, %1156 ], [ @.str.2, %1152 ]
  store i32 %1147, ptr %250, align 4, !tbaa !5
  %1158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1159 = load i32, ptr @test_count, align 4, !tbaa !5
  %1160 = load i32, ptr %196, align 4, !tbaa !5
  %1161 = call ptr @s2n_strerror(i32 noundef %1160, ptr noundef nonnull @.str.4) #12
  %1162 = load i32, ptr %196, align 4, !tbaa !5
  %1163 = call ptr @s2n_strerror_debug(i32 noundef %1162, ptr noundef nonnull @.str.4) #12
  %1164 = load i32, ptr %250, align 4, !tbaa !5
  %1165 = call ptr @strerror(i32 noundef %1164) #12
  %1166 = load i32, ptr %250, align 4, !tbaa !5
  %1167 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1158, ptr noundef nonnull %.str.5.sink1059, i32 noundef %1159, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1161, ptr noundef %1163, ptr noundef %1165, i32 noundef %1166) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1168:                                             ; preds = %1142
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %1169 = load i32, ptr @test_count, align 4, !tbaa !5
  %1170 = add nsw i32 %1169, 1
  store i32 %1170, ptr @test_count, align 4, !tbaa !5
  %1171 = call i32 @s2n_extension_recv(ptr noundef nonnull @test_extension_type, ptr noundef null, ptr noundef nonnull %4) #12
  %1172 = icmp eq i32 %1171, -1
  br i1 %1172, label %1195, label %1173

1173:                                             ; preds = %1168
  %1174 = load i32, ptr %250, align 4, !tbaa !5
  %1175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1176 = call i32 @s2n_print_stacktrace(ptr noundef %1175) #12
  %1177 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1178 = trunc nuw i8 %1177 to i1
  br i1 %1178, label %1179, label %1183

1179:                                             ; preds = %1173
  %1180 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1181 = call i32 @fileno(ptr noundef %1180) #12
  %1182 = call i32 @isatty(i32 noundef %1181) #12
  %.not521 = icmp eq i32 %1182, 0
  br i1 %.not521, label %1183, label %1184

1183:                                             ; preds = %1179, %1173
  br label %1184

1184:                                             ; preds = %1179, %1183
  %.str.5.sink1068 = phi ptr [ @.str.5, %1183 ], [ @.str.2, %1179 ]
  store i32 %1174, ptr %250, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = load i32, ptr %196, align 4, !tbaa !5
  %1188 = call ptr @s2n_strerror(i32 noundef %1187, ptr noundef nonnull @.str.4) #12
  %1189 = load i32, ptr %196, align 4, !tbaa !5
  %1190 = call ptr @s2n_strerror_debug(i32 noundef %1189, ptr noundef nonnull @.str.4) #12
  %1191 = load i32, ptr %250, align 4, !tbaa !5
  %1192 = call ptr @strerror(i32 noundef %1191) #12
  %1193 = load i32, ptr %250, align 4, !tbaa !5
  %1194 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef nonnull %.str.5.sink1068, i32 noundef %1186, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1188, ptr noundef %1190, ptr noundef %1192, i32 noundef %1193) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1195:                                             ; preds = %1168
  %1196 = load i32, ptr @test_count, align 4, !tbaa !5
  %1197 = add nsw i32 %1196, 1
  store i32 %1197, ptr @test_count, align 4, !tbaa !5
  %1198 = load i32, ptr %196, align 4, !tbaa !5
  %1199 = icmp eq i32 %1198, 0
  br i1 %1199, label %1200, label %1222

1200:                                             ; preds = %1195
  %1201 = load i32, ptr %250, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = call i32 @s2n_print_stacktrace(ptr noundef %1202) #12
  %1204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1205 = trunc nuw i8 %1204 to i1
  br i1 %1205, label %1206, label %1210

1206:                                             ; preds = %1200
  %1207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1208 = call i32 @fileno(ptr noundef %1207) #12
  %1209 = call i32 @isatty(i32 noundef %1208) #12
  %.not689 = icmp eq i32 %1209, 0
  br i1 %.not689, label %1210, label %1211

1210:                                             ; preds = %1206, %1200
  br label %1211

1211:                                             ; preds = %1206, %1210
  %.str.5.sink1077 = phi ptr [ @.str.5, %1210 ], [ @.str.2, %1206 ]
  store i32 %1201, ptr %250, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = load i32, ptr @test_count, align 4, !tbaa !5
  %1214 = load i32, ptr %196, align 4, !tbaa !5
  %1215 = call ptr @s2n_strerror(i32 noundef %1214, ptr noundef nonnull @.str.4) #12
  %1216 = load i32, ptr %196, align 4, !tbaa !5
  %1217 = call ptr @s2n_strerror_debug(i32 noundef %1216, ptr noundef nonnull @.str.4) #12
  %1218 = load i32, ptr %250, align 4, !tbaa !5
  %1219 = call ptr @strerror(i32 noundef %1218) #12
  %1220 = load i32, ptr %250, align 4, !tbaa !5
  %1221 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1212, ptr noundef nonnull %.str.5.sink1077, i32 noundef %1213, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1215, ptr noundef %1217, ptr noundef %1219, i32 noundef %1220) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1222:                                             ; preds = %1195
  %1223 = add nsw i32 %1196, 2
  store i32 %1223, ptr @test_count, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1198, ptr noundef nonnull @.str.4) #12
  %1225 = icmp eq ptr %1224, null
  br i1 %1225, label %1226, label %1248

1226:                                             ; preds = %1222
  %1227 = load i32, ptr %250, align 4, !tbaa !5
  %1228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1229 = call i32 @s2n_print_stacktrace(ptr noundef %1228) #12
  %1230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1231 = trunc nuw i8 %1230 to i1
  br i1 %1231, label %1232, label %1236

1232:                                             ; preds = %1226
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @fileno(ptr noundef %1233) #12
  %1235 = call i32 @isatty(i32 noundef %1234) #12
  %.not688 = icmp eq i32 %1235, 0
  br i1 %.not688, label %1236, label %1237

1236:                                             ; preds = %1232, %1226
  br label %1237

1237:                                             ; preds = %1232, %1236
  %.str.5.sink1086 = phi ptr [ @.str.5, %1236 ], [ @.str.2, %1232 ]
  store i32 %1227, ptr %250, align 4, !tbaa !5
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = load i32, ptr @test_count, align 4, !tbaa !5
  %1240 = load i32, ptr %196, align 4, !tbaa !5
  %1241 = call ptr @s2n_strerror(i32 noundef %1240, ptr noundef nonnull @.str.4) #12
  %1242 = load i32, ptr %196, align 4, !tbaa !5
  %1243 = call ptr @s2n_strerror_debug(i32 noundef %1242, ptr noundef nonnull @.str.4) #12
  %1244 = load i32, ptr %250, align 4, !tbaa !5
  %1245 = call ptr @strerror(i32 noundef %1244) #12
  %1246 = load i32, ptr %250, align 4, !tbaa !5
  %1247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1238, ptr noundef nonnull %.str.5.sink1086, i32 noundef %1239, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %1241, ptr noundef %1243, ptr noundef %1245, i32 noundef %1246) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1248:                                             ; preds = %1222
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_null_recv, i64 40, i1 false)
  %1249 = getelementptr inbounds i8, ptr %6, i64 16
  store ptr null, ptr %1249, align 8, !tbaa !46
  %1250 = load i32, ptr @test_count, align 4, !tbaa !5
  %1251 = add nsw i32 %1250, 1
  store i32 %1251, ptr @test_count, align 4, !tbaa !5
  %1252 = call i32 @s2n_extension_recv(ptr noundef nonnull %6, ptr noundef nonnull %5, ptr noundef nonnull %4) #12
  %1253 = icmp eq i32 %1252, -1
  br i1 %1253, label %1276, label %1254

1254:                                             ; preds = %1248
  %1255 = load i32, ptr %250, align 4, !tbaa !5
  %1256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1257 = call i32 @s2n_print_stacktrace(ptr noundef %1256) #12
  %1258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1259 = trunc nuw i8 %1258 to i1
  br i1 %1259, label %1260, label %1264

1260:                                             ; preds = %1254
  %1261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1262 = call i32 @fileno(ptr noundef %1261) #12
  %1263 = call i32 @isatty(i32 noundef %1262) #12
  %.not522 = icmp eq i32 %1263, 0
  br i1 %.not522, label %1264, label %1265

1264:                                             ; preds = %1260, %1254
  br label %1265

1265:                                             ; preds = %1260, %1264
  %.str.5.sink1095 = phi ptr [ @.str.5, %1264 ], [ @.str.2, %1260 ]
  store i32 %1255, ptr %250, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = load i32, ptr %196, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror(i32 noundef %1268, ptr noundef nonnull @.str.4) #12
  %1270 = load i32, ptr %196, align 4, !tbaa !5
  %1271 = call ptr @s2n_strerror_debug(i32 noundef %1270, ptr noundef nonnull @.str.4) #12
  %1272 = load i32, ptr %250, align 4, !tbaa !5
  %1273 = call ptr @strerror(i32 noundef %1272) #12
  %1274 = load i32, ptr %250, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef nonnull %.str.5.sink1095, i32 noundef %1267, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1269, ptr noundef %1271, ptr noundef %1273, i32 noundef %1274) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1276:                                             ; preds = %1248
  %1277 = load i32, ptr @test_count, align 4, !tbaa !5
  %1278 = add nsw i32 %1277, 1
  store i32 %1278, ptr @test_count, align 4, !tbaa !5
  %1279 = load i32, ptr %196, align 4, !tbaa !5
  %1280 = icmp eq i32 %1279, 0
  br i1 %1280, label %1281, label %1303

1281:                                             ; preds = %1276
  %1282 = load i32, ptr %250, align 4, !tbaa !5
  %1283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1284 = call i32 @s2n_print_stacktrace(ptr noundef %1283) #12
  %1285 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1286 = trunc nuw i8 %1285 to i1
  br i1 %1286, label %1287, label %1291

1287:                                             ; preds = %1281
  %1288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1289 = call i32 @fileno(ptr noundef %1288) #12
  %1290 = call i32 @isatty(i32 noundef %1289) #12
  %.not687 = icmp eq i32 %1290, 0
  br i1 %.not687, label %1291, label %1292

1291:                                             ; preds = %1287, %1281
  br label %1292

1292:                                             ; preds = %1287, %1291
  %.str.5.sink1104 = phi ptr [ @.str.5, %1291 ], [ @.str.2, %1287 ]
  store i32 %1282, ptr %250, align 4, !tbaa !5
  %1293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = load i32, ptr %196, align 4, !tbaa !5
  %1296 = call ptr @s2n_strerror(i32 noundef %1295, ptr noundef nonnull @.str.4) #12
  %1297 = load i32, ptr %196, align 4, !tbaa !5
  %1298 = call ptr @s2n_strerror_debug(i32 noundef %1297, ptr noundef nonnull @.str.4) #12
  %1299 = load i32, ptr %250, align 4, !tbaa !5
  %1300 = call ptr @strerror(i32 noundef %1299) #12
  %1301 = load i32, ptr %250, align 4, !tbaa !5
  %1302 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1293, ptr noundef nonnull %.str.5.sink1104, i32 noundef %1294, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1296, ptr noundef %1298, ptr noundef %1300, i32 noundef %1301) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1303:                                             ; preds = %1276
  %1304 = add nsw i32 %1277, 2
  store i32 %1304, ptr @test_count, align 4, !tbaa !5
  %1305 = call ptr @s2n_strerror_debug(i32 noundef %1279, ptr noundef nonnull @.str.4) #12
  %1306 = icmp eq ptr %1305, null
  br i1 %1306, label %1307, label %1329

1307:                                             ; preds = %1303
  %1308 = load i32, ptr %250, align 4, !tbaa !5
  %1309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1310 = call i32 @s2n_print_stacktrace(ptr noundef %1309) #12
  %1311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1312 = trunc nuw i8 %1311 to i1
  br i1 %1312, label %1313, label %1317

1313:                                             ; preds = %1307
  %1314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1315 = call i32 @fileno(ptr noundef %1314) #12
  %1316 = call i32 @isatty(i32 noundef %1315) #12
  %.not686 = icmp eq i32 %1316, 0
  br i1 %.not686, label %1317, label %1318

1317:                                             ; preds = %1313, %1307
  br label %1318

1318:                                             ; preds = %1313, %1317
  %.str.5.sink1113 = phi ptr [ @.str.5, %1317 ], [ @.str.2, %1313 ]
  store i32 %1308, ptr %250, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = load i32, ptr %196, align 4, !tbaa !5
  %1322 = call ptr @s2n_strerror(i32 noundef %1321, ptr noundef nonnull @.str.4) #12
  %1323 = load i32, ptr %196, align 4, !tbaa !5
  %1324 = call ptr @s2n_strerror_debug(i32 noundef %1323, ptr noundef nonnull @.str.4) #12
  %1325 = load i32, ptr %250, align 4, !tbaa !5
  %1326 = call ptr @strerror(i32 noundef %1325) #12
  %1327 = load i32, ptr %250, align 4, !tbaa !5
  %1328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef nonnull %.str.5.sink1113, i32 noundef %1320, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 157, ptr noundef %1322, ptr noundef %1324, ptr noundef %1326, i32 noundef %1327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1329:                                             ; preds = %1303
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %5) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %7) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %7, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %8, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.request_extension_type, i64 40, i1 false)
  %1330 = getelementptr inbounds i8, ptr %8, i64 2
  %1331 = load i8, ptr %1330, align 2
  %1332 = and i8 %1331, -2
  store i8 %1332, ptr %1330, align 2
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = add nsw i32 %1333, 1
  store i32 %1334, ptr @test_count, align 4, !tbaa !5
  %1335 = call i32 @s2n_extension_recv(ptr noundef nonnull %8, ptr noundef nonnull %7, ptr noundef nonnull %4) #12
  %1336 = icmp eq i32 %1335, -1
  br i1 %1336, label %1337, label %1359

1337:                                             ; preds = %1329
  %1338 = load i32, ptr %250, align 4, !tbaa !5
  %1339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1340 = call i32 @s2n_print_stacktrace(ptr noundef %1339) #12
  %1341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1342 = trunc nuw i8 %1341 to i1
  br i1 %1342, label %1343, label %1347

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

1347:                                             ; preds = %1343, %1337
  br label %1348

1348:                                             ; preds = %1343, %1347
  %.str.5.sink1122 = phi ptr [ @.str.5, %1347 ], [ @.str.2, %1343 ]
  store i32 %1338, ptr %250, align 4, !tbaa !5
  %1349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1350 = load i32, ptr @test_count, align 4, !tbaa !5
  %1351 = load i32, ptr %196, align 4, !tbaa !5
  %1352 = call ptr @s2n_strerror(i32 noundef %1351, ptr noundef nonnull @.str.4) #12
  %1353 = load i32, ptr %196, align 4, !tbaa !5
  %1354 = call ptr @s2n_strerror_debug(i32 noundef %1353, ptr noundef nonnull @.str.4) #12
  %1355 = load i32, ptr %250, align 4, !tbaa !5
  %1356 = call ptr @strerror(i32 noundef %1355) #12
  %1357 = load i32, ptr %250, align 4, !tbaa !5
  %1358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1349, ptr noundef nonnull %.str.5.sink1122, i32 noundef %1350, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1352, ptr noundef %1354, ptr noundef %1356, i32 noundef %1357) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1359:                                             ; preds = %1329
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = add nsw i32 %1360, 1
  store i32 %1361, ptr @test_count, align 4, !tbaa !5
  %1362 = getelementptr inbounds i8, ptr %7, i64 102
  %1363 = lshr i32 %972, 3
  %1364 = zext nneg i32 %1363 to i64
  %1365 = getelementptr inbounds [22 x i8], ptr %1362, i64 0, i64 %1364
  %1366 = load i8, ptr %1365, align 1, !tbaa !43
  %1367 = zext i8 %1366 to i32
  %1368 = and i32 %972, 7
  %1369 = shl nuw nsw i32 1, %1368
  %1370 = and i32 %1369, %1367
  %.not523 = icmp eq i32 %1370, 0
  br i1 %.not523, label %1371, label %1393

1371:                                             ; preds = %1359
  %1372 = load i32, ptr %250, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @s2n_print_stacktrace(ptr noundef %1373) #12
  %1375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1376 = trunc nuw i8 %1375 to i1
  br i1 %1376, label %1377, label %1381

1377:                                             ; preds = %1371
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @fileno(ptr noundef %1378) #12
  %1380 = call i32 @isatty(i32 noundef %1379) #12
  %.not524 = icmp eq i32 %1380, 0
  br i1 %.not524, label %1381, label %1382

1381:                                             ; preds = %1377, %1371
  br label %1382

1382:                                             ; preds = %1377, %1381
  %.str.5.sink1131 = phi ptr [ @.str.5, %1381 ], [ @.str.2, %1377 ]
  store i32 %1372, ptr %250, align 4, !tbaa !5
  %1383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = load i32, ptr %196, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror(i32 noundef %1385, ptr noundef nonnull @.str.4) #12
  %1387 = load i32, ptr %196, align 4, !tbaa !5
  %1388 = call ptr @s2n_strerror_debug(i32 noundef %1387, ptr noundef nonnull @.str.4) #12
  %1389 = load i32, ptr %250, align 4, !tbaa !5
  %1390 = call ptr @strerror(i32 noundef %1389) #12
  %1391 = load i32, ptr %250, align 4, !tbaa !5
  %1392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1383, ptr noundef nonnull %.str.5.sink1131, i32 noundef %1384, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1386, ptr noundef %1388, ptr noundef %1390, i32 noundef %1391) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1393:                                             ; preds = %1359
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %7) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %9, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %10) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %10, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.response_extension_type, i64 40, i1 false)
  %1394 = getelementptr inbounds i8, ptr %10, i64 2
  %1395 = load i8, ptr %1394, align 2
  %1396 = or i8 %1395, 1
  store i8 %1396, ptr %1394, align 2
  %1397 = add nsw i32 %1360, 2
  store i32 %1397, ptr @test_count, align 4, !tbaa !5
  %1398 = call i32 @s2n_extension_recv(ptr noundef nonnull %10, ptr noundef nonnull %9, ptr noundef nonnull %4) #12
  %1399 = icmp eq i32 %1398, -1
  br i1 %1399, label %1422, label %1400

1400:                                             ; preds = %1393
  %1401 = load i32, ptr %250, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = call i32 @s2n_print_stacktrace(ptr noundef %1402) #12
  %1404 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1405 = trunc nuw i8 %1404 to i1
  br i1 %1405, label %1406, label %1410

1406:                                             ; preds = %1400
  %1407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1408 = call i32 @fileno(ptr noundef %1407) #12
  %1409 = call i32 @isatty(i32 noundef %1408) #12
  %.not525 = icmp eq i32 %1409, 0
  br i1 %.not525, label %1410, label %1411

1410:                                             ; preds = %1406, %1400
  br label %1411

1411:                                             ; preds = %1406, %1410
  %.str.5.sink1140 = phi ptr [ @.str.5, %1410 ], [ @.str.2, %1406 ]
  store i32 %1401, ptr %250, align 4, !tbaa !5
  %1412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1413 = load i32, ptr @test_count, align 4, !tbaa !5
  %1414 = load i32, ptr %196, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror(i32 noundef %1414, ptr noundef nonnull @.str.4) #12
  %1416 = load i32, ptr %196, align 4, !tbaa !5
  %1417 = call ptr @s2n_strerror_debug(i32 noundef %1416, ptr noundef nonnull @.str.4) #12
  %1418 = load i32, ptr %250, align 4, !tbaa !5
  %1419 = call ptr @strerror(i32 noundef %1418) #12
  %1420 = load i32, ptr %250, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1412, ptr noundef nonnull %.str.5.sink1140, i32 noundef %1413, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1415, ptr noundef %1417, ptr noundef %1419, i32 noundef %1420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1422:                                             ; preds = %1393
  %1423 = load i32, ptr @test_count, align 4, !tbaa !5
  %1424 = add nsw i32 %1423, 1
  store i32 %1424, ptr @test_count, align 4, !tbaa !5
  %1425 = load i32, ptr %196, align 4, !tbaa !5
  %1426 = icmp eq i32 %1425, 335544394
  br i1 %1426, label %1449, label %1427

1427:                                             ; preds = %1422
  %1428 = load i32, ptr %250, align 4, !tbaa !5
  %1429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1430 = call i32 @s2n_print_stacktrace(ptr noundef %1429) #12
  %1431 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1432 = trunc nuw i8 %1431 to i1
  br i1 %1432, label %1433, label %1437

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

1437:                                             ; preds = %1433, %1427
  br label %1438

1438:                                             ; preds = %1433, %1437
  %.str.5.sink1149 = phi ptr [ @.str.5, %1437 ], [ @.str.2, %1433 ]
  store i32 %1428, ptr %250, align 4, !tbaa !5
  %1439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1440 = load i32, ptr @test_count, align 4, !tbaa !5
  %1441 = load i32, ptr %196, align 4, !tbaa !5
  %1442 = call ptr @s2n_strerror(i32 noundef %1441, ptr noundef nonnull @.str.4) #12
  %1443 = load i32, ptr %196, align 4, !tbaa !5
  %1444 = call ptr @s2n_strerror_debug(i32 noundef %1443, ptr noundef nonnull @.str.4) #12
  %1445 = load i32, ptr %250, align 4, !tbaa !5
  %1446 = call ptr @strerror(i32 noundef %1445) #12
  %1447 = load i32, ptr %250, align 4, !tbaa !5
  %1448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1439, ptr noundef nonnull %.str.5.sink1149, i32 noundef %1440, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1442, ptr noundef %1444, ptr noundef %1446, i32 noundef %1447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1449:                                             ; preds = %1422
  %1450 = add nsw i32 %1423, 2
  store i32 %1450, ptr @test_count, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror_debug(i32 noundef 335544394, ptr noundef nonnull @.str.4) #12
  %1452 = icmp eq ptr %1451, null
  br i1 %1452, label %1453, label %1475

1453:                                             ; preds = %1449
  %1454 = load i32, ptr %250, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = call i32 @s2n_print_stacktrace(ptr noundef %1455) #12
  %1457 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1458 = trunc nuw i8 %1457 to i1
  br i1 %1458, label %1459, label %1463

1459:                                             ; preds = %1453
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = call i32 @fileno(ptr noundef %1460) #12
  %1462 = call i32 @isatty(i32 noundef %1461) #12
  %.not684 = icmp eq i32 %1462, 0
  br i1 %.not684, label %1463, label %1464

1463:                                             ; preds = %1459, %1453
  br label %1464

1464:                                             ; preds = %1459, %1463
  %.str.5.sink1158 = phi ptr [ @.str.5, %1463 ], [ @.str.2, %1459 ]
  store i32 %1454, ptr %250, align 4, !tbaa !5
  %1465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1466 = load i32, ptr @test_count, align 4, !tbaa !5
  %1467 = load i32, ptr %196, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror(i32 noundef %1467, ptr noundef nonnull @.str.4) #12
  %1469 = load i32, ptr %196, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror_debug(i32 noundef %1469, ptr noundef nonnull @.str.4) #12
  %1471 = load i32, ptr %250, align 4, !tbaa !5
  %1472 = call ptr @strerror(i32 noundef %1471) #12
  %1473 = load i32, ptr %250, align 4, !tbaa !5
  %1474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef nonnull %.str.5.sink1158, i32 noundef %1466, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1468, ptr noundef %1470, ptr noundef %1472, i32 noundef %1473) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1475:                                             ; preds = %1449
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %1476 = load i32, ptr @test_count, align 4, !tbaa !5
  %1477 = add nsw i32 %1476, 1
  store i32 %1477, ptr @test_count, align 4, !tbaa !5
  %1478 = getelementptr inbounds i8, ptr %9, i64 102
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %1478, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %1479 = icmp eq i32 %bcmp, 0
  br i1 %1479, label %1502, label %1480

1480:                                             ; preds = %1475
  %1481 = load i32, ptr %250, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @s2n_print_stacktrace(ptr noundef %1482) #12
  %1484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1485 = trunc nuw i8 %1484 to i1
  br i1 %1485, label %1486, label %1490

1486:                                             ; preds = %1480
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = call i32 @fileno(ptr noundef %1487) #12
  %1489 = call i32 @isatty(i32 noundef %1488) #12
  %.not527 = icmp eq i32 %1489, 0
  br i1 %.not527, label %1490, label %1491

1490:                                             ; preds = %1486, %1480
  br label %1491

1491:                                             ; preds = %1486, %1490
  %.str.5.sink1167 = phi ptr [ @.str.5, %1490 ], [ @.str.2, %1486 ]
  store i32 %1481, ptr %250, align 4, !tbaa !5
  %1492 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1493 = load i32, ptr @test_count, align 4, !tbaa !5
  %1494 = load i32, ptr %196, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef nonnull @.str.4) #12
  %1496 = load i32, ptr %196, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef nonnull @.str.4) #12
  %1498 = load i32, ptr %250, align 4, !tbaa !5
  %1499 = call ptr @strerror(i32 noundef %1498) #12
  %1500 = load i32, ptr %250, align 4, !tbaa !5
  %1501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1492, ptr noundef nonnull %.str.5.sink1167, i32 noundef %1493, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 200, ptr noundef %1495, ptr noundef %1497, ptr noundef %1499, i32 noundef %1500) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1502:                                             ; preds = %1475
  %1503 = getelementptr inbounds i8, ptr %9, i64 80
  %1504 = getelementptr inbounds [22 x i8], ptr %1503, i64 0, i64 %1364
  %1505 = load i8, ptr %1504, align 1, !tbaa !43
  %1506 = trunc nuw i32 %1369 to i8
  %1507 = or i8 %1505, %1506
  store i8 %1507, ptr %1504, align 1, !tbaa !43
  %1508 = add nsw i32 %1476, 2
  store i32 %1508, ptr @test_count, align 4, !tbaa !5
  %1509 = call i32 @s2n_extension_recv(ptr noundef nonnull %10, ptr noundef nonnull %9, ptr noundef nonnull %4) #12
  %1510 = icmp eq i32 %1509, -1
  br i1 %1510, label %1511, label %1533

1511:                                             ; preds = %1502
  %1512 = load i32, ptr %250, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = call i32 @s2n_print_stacktrace(ptr noundef %1513) #12
  %1515 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1516 = trunc nuw i8 %1515 to i1
  br i1 %1516, label %1517, label %1521

1517:                                             ; preds = %1511
  %1518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1519 = call i32 @fileno(ptr noundef %1518) #12
  %1520 = call i32 @isatty(i32 noundef %1519) #12
  %.not683 = icmp eq i32 %1520, 0
  br i1 %.not683, label %1521, label %1522

1521:                                             ; preds = %1517, %1511
  br label %1522

1522:                                             ; preds = %1517, %1521
  %.str.5.sink1176 = phi ptr [ @.str.5, %1521 ], [ @.str.2, %1517 ]
  store i32 %1512, ptr %250, align 4, !tbaa !5
  %1523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1524 = load i32, ptr @test_count, align 4, !tbaa !5
  %1525 = load i32, ptr %196, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror(i32 noundef %1525, ptr noundef nonnull @.str.4) #12
  %1527 = load i32, ptr %196, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror_debug(i32 noundef %1527, ptr noundef nonnull @.str.4) #12
  %1529 = load i32, ptr %250, align 4, !tbaa !5
  %1530 = call ptr @strerror(i32 noundef %1529) #12
  %1531 = load i32, ptr %250, align 4, !tbaa !5
  %1532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1523, ptr noundef nonnull %.str.5.sink1176, i32 noundef %1524, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1526, ptr noundef %1528, ptr noundef %1530, i32 noundef %1531) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1533:                                             ; preds = %1502
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = add nsw i32 %1534, 1
  store i32 %1535, ptr @test_count, align 4, !tbaa !5
  %bcmp528 = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %1478, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %1536 = icmp eq i32 %bcmp528, 0
  br i1 %1536, label %1559, label %1537

1537:                                             ; preds = %1533
  %1538 = load i32, ptr %250, align 4, !tbaa !5
  %1539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1540 = call i32 @s2n_print_stacktrace(ptr noundef %1539) #12
  %1541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1542 = trunc nuw i8 %1541 to i1
  br i1 %1542, label %1543, label %1547

1543:                                             ; preds = %1537
  %1544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1545 = call i32 @fileno(ptr noundef %1544) #12
  %1546 = call i32 @isatty(i32 noundef %1545) #12
  %.not529 = icmp eq i32 %1546, 0
  br i1 %.not529, label %1547, label %1548

1547:                                             ; preds = %1543, %1537
  br label %1548

1548:                                             ; preds = %1543, %1547
  %.str.5.sink1185 = phi ptr [ @.str.5, %1547 ], [ @.str.2, %1543 ]
  store i32 %1538, ptr %250, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = load i32, ptr %196, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef nonnull @.str.4) #12
  %1553 = load i32, ptr %196, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror_debug(i32 noundef %1553, ptr noundef nonnull @.str.4) #12
  %1555 = load i32, ptr %250, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #12
  %1557 = load i32, ptr %250, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef nonnull %.str.5.sink1185, i32 noundef %1550, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, i32 noundef %1557) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1559:                                             ; preds = %1533
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %11, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %12) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %12, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_failure, i64 40, i1 false)
  %1560 = getelementptr inbounds i8, ptr %12, i64 16
  store ptr @s2n_extension_recv_unimplemented, ptr %1560, align 8, !tbaa !46
  %1561 = add nsw i32 %1534, 2
  store i32 %1561, ptr @test_count, align 4, !tbaa !5
  %1562 = call i32 @s2n_extension_recv(ptr noundef nonnull %12, ptr noundef nonnull %11, ptr noundef nonnull %4) #12
  %1563 = icmp eq i32 %1562, -1
  br i1 %1563, label %1586, label %1564

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %250, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @s2n_print_stacktrace(ptr noundef %1566) #12
  %1568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1569 = trunc nuw i8 %1568 to i1
  br i1 %1569, label %1570, label %1574

1570:                                             ; preds = %1564
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @fileno(ptr noundef %1571) #12
  %1573 = call i32 @isatty(i32 noundef %1572) #12
  %.not530 = icmp eq i32 %1573, 0
  br i1 %.not530, label %1574, label %1575

1574:                                             ; preds = %1570, %1564
  br label %1575

1575:                                             ; preds = %1570, %1574
  %.str.5.sink1194 = phi ptr [ @.str.5, %1574 ], [ @.str.2, %1570 ]
  store i32 %1565, ptr %250, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = load i32, ptr %196, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror(i32 noundef %1578, ptr noundef nonnull @.str.4) #12
  %1580 = load i32, ptr %196, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef nonnull @.str.4) #12
  %1582 = load i32, ptr %250, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #12
  %1584 = load i32, ptr %250, align 4, !tbaa !5
  %1585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef nonnull %.str.5.sink1194, i32 noundef %1577, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1579, ptr noundef %1581, ptr noundef %1583, i32 noundef %1584) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1586:                                             ; preds = %1559
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %1588 = add nsw i32 %1587, 1
  store i32 %1588, ptr @test_count, align 4, !tbaa !5
  %1589 = load i32, ptr %196, align 4, !tbaa !5
  %1590 = icmp eq i32 %1589, 402653231
  br i1 %1590, label %1613, label %1591

1591:                                             ; preds = %1586
  %1592 = load i32, ptr %250, align 4, !tbaa !5
  %1593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1594 = call i32 @s2n_print_stacktrace(ptr noundef %1593) #12
  %1595 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1596 = trunc nuw i8 %1595 to i1
  br i1 %1596, label %1597, label %1601

1597:                                             ; preds = %1591
  %1598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1599 = call i32 @fileno(ptr noundef %1598) #12
  %1600 = call i32 @isatty(i32 noundef %1599) #12
  %.not531 = icmp eq i32 %1600, 0
  br i1 %.not531, label %1601, label %1602

1601:                                             ; preds = %1597, %1591
  br label %1602

1602:                                             ; preds = %1597, %1601
  %.str.5.sink1203 = phi ptr [ @.str.5, %1601 ], [ @.str.2, %1597 ]
  store i32 %1592, ptr %250, align 4, !tbaa !5
  %1603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1604 = load i32, ptr @test_count, align 4, !tbaa !5
  %1605 = load i32, ptr %196, align 4, !tbaa !5
  %1606 = call ptr @s2n_strerror(i32 noundef %1605, ptr noundef nonnull @.str.4) #12
  %1607 = load i32, ptr %196, align 4, !tbaa !5
  %1608 = call ptr @s2n_strerror_debug(i32 noundef %1607, ptr noundef nonnull @.str.4) #12
  %1609 = load i32, ptr %250, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #12
  %1611 = load i32, ptr %250, align 4, !tbaa !5
  %1612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1603, ptr noundef nonnull %.str.5.sink1203, i32 noundef %1604, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1606, ptr noundef %1608, ptr noundef %1610, i32 noundef %1611) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1613:                                             ; preds = %1586
  %1614 = add nsw i32 %1587, 2
  store i32 %1614, ptr @test_count, align 4, !tbaa !5
  %1615 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %1616 = icmp eq ptr %1615, null
  br i1 %1616, label %1617, label %1639

1617:                                             ; preds = %1613
  %1618 = load i32, ptr %250, align 4, !tbaa !5
  %1619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1620 = call i32 @s2n_print_stacktrace(ptr noundef %1619) #12
  %1621 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1622 = trunc nuw i8 %1621 to i1
  br i1 %1622, label %1623, label %1627

1623:                                             ; preds = %1617
  %1624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1625 = call i32 @fileno(ptr noundef %1624) #12
  %1626 = call i32 @isatty(i32 noundef %1625) #12
  %.not682 = icmp eq i32 %1626, 0
  br i1 %.not682, label %1627, label %1628

1627:                                             ; preds = %1623, %1617
  br label %1628

1628:                                             ; preds = %1623, %1627
  %.str.5.sink1212 = phi ptr [ @.str.5, %1627 ], [ @.str.2, %1623 ]
  store i32 %1618, ptr %250, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = load i32, ptr %196, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef nonnull @.str.4) #12
  %1633 = load i32, ptr %196, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror_debug(i32 noundef %1633, ptr noundef nonnull @.str.4) #12
  %1635 = load i32, ptr %250, align 4, !tbaa !5
  %1636 = call ptr @strerror(i32 noundef %1635) #12
  %1637 = load i32, ptr %250, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull %.str.5.sink1212, i32 noundef %1630, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 215, ptr noundef %1632, ptr noundef %1634, ptr noundef %1636, i32 noundef %1637) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1639:                                             ; preds = %1613
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = getelementptr inbounds i8, ptr %11, i64 102
  %bcmp532 = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %1642, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %1643 = icmp eq i32 %bcmp532, 0
  br i1 %1643, label %1666, label %1644

1644:                                             ; preds = %1639
  %1645 = load i32, ptr %250, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = call i32 @s2n_print_stacktrace(ptr noundef %1646) #12
  %1648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1649 = trunc nuw i8 %1648 to i1
  br i1 %1649, label %1650, label %1654

1650:                                             ; preds = %1644
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @fileno(ptr noundef %1651) #12
  %1653 = call i32 @isatty(i32 noundef %1652) #12
  %.not533 = icmp eq i32 %1653, 0
  br i1 %.not533, label %1654, label %1655

1654:                                             ; preds = %1650, %1644
  br label %1655

1655:                                             ; preds = %1650, %1654
  %.str.5.sink1221 = phi ptr [ @.str.5, %1654 ], [ @.str.2, %1650 ]
  store i32 %1645, ptr %250, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = load i32, ptr %196, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef nonnull @.str.4) #12
  %1660 = load i32, ptr %196, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef nonnull @.str.4) #12
  %1662 = load i32, ptr %250, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #12
  %1664 = load i32, ptr %250, align 4, !tbaa !5
  %1665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef nonnull %.str.5.sink1221, i32 noundef %1657, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 217, ptr noundef %1659, ptr noundef %1661, ptr noundef %1663, i32 noundef %1664) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1666:                                             ; preds = %1639
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %13, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %14) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %14, i8 0, i64 40, i1 false)
  %1667 = add nsw i32 %1640, 2
  store i32 %1667, ptr @test_count, align 4, !tbaa !5
  %1668 = call i32 @s2n_extension_send(ptr noundef null, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1669 = icmp eq i32 %1668, -1
  br i1 %1669, label %1692, label %1670

1670:                                             ; preds = %1666
  %1671 = load i32, ptr %250, align 4, !tbaa !5
  %1672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1673 = call i32 @s2n_print_stacktrace(ptr noundef %1672) #12
  %1674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1675 = trunc nuw i8 %1674 to i1
  br i1 %1675, label %1676, label %1680

1676:                                             ; preds = %1670
  %1677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1678 = call i32 @fileno(ptr noundef %1677) #12
  %1679 = call i32 @isatty(i32 noundef %1678) #12
  %.not534 = icmp eq i32 %1679, 0
  br i1 %.not534, label %1680, label %1681

1680:                                             ; preds = %1676, %1670
  br label %1681

1681:                                             ; preds = %1676, %1680
  %.str.5.sink1230 = phi ptr [ @.str.5, %1680 ], [ @.str.2, %1676 ]
  store i32 %1671, ptr %250, align 4, !tbaa !5
  %1682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1683 = load i32, ptr @test_count, align 4, !tbaa !5
  %1684 = load i32, ptr %196, align 4, !tbaa !5
  %1685 = call ptr @s2n_strerror(i32 noundef %1684, ptr noundef nonnull @.str.4) #12
  %1686 = load i32, ptr %196, align 4, !tbaa !5
  %1687 = call ptr @s2n_strerror_debug(i32 noundef %1686, ptr noundef nonnull @.str.4) #12
  %1688 = load i32, ptr %250, align 4, !tbaa !5
  %1689 = call ptr @strerror(i32 noundef %1688) #12
  %1690 = load i32, ptr %250, align 4, !tbaa !5
  %1691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1682, ptr noundef nonnull %.str.5.sink1230, i32 noundef %1683, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1685, ptr noundef %1687, ptr noundef %1689, i32 noundef %1690) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1692:                                             ; preds = %1666
  %1693 = load i32, ptr @test_count, align 4, !tbaa !5
  %1694 = add nsw i32 %1693, 1
  store i32 %1694, ptr @test_count, align 4, !tbaa !5
  %1695 = load i32, ptr %196, align 4, !tbaa !5
  %1696 = icmp eq i32 %1695, 0
  br i1 %1696, label %1697, label %1719

1697:                                             ; preds = %1692
  %1698 = load i32, ptr %250, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @s2n_print_stacktrace(ptr noundef %1699) #12
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc nuw i8 %1701 to i1
  br i1 %1702, label %1703, label %1707

1703:                                             ; preds = %1697
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @fileno(ptr noundef %1704) #12
  %1706 = call i32 @isatty(i32 noundef %1705) #12
  %.not681 = icmp eq i32 %1706, 0
  br i1 %.not681, label %1707, label %1708

1707:                                             ; preds = %1703, %1697
  br label %1708

1708:                                             ; preds = %1703, %1707
  %.str.5.sink1239 = phi ptr [ @.str.5, %1707 ], [ @.str.2, %1703 ]
  store i32 %1698, ptr %250, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = load i32, ptr %196, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef nonnull @.str.4) #12
  %1713 = load i32, ptr %196, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef nonnull @.str.4) #12
  %1715 = load i32, ptr %250, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #12
  %1717 = load i32, ptr %250, align 4, !tbaa !5
  %1718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef nonnull %.str.5.sink1239, i32 noundef %1710, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1712, ptr noundef %1714, ptr noundef %1716, i32 noundef %1717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1719:                                             ; preds = %1692
  %1720 = add nsw i32 %1693, 2
  store i32 %1720, ptr @test_count, align 4, !tbaa !5
  %1721 = call ptr @s2n_strerror_debug(i32 noundef %1695, ptr noundef nonnull @.str.4) #12
  %1722 = icmp eq ptr %1721, null
  br i1 %1722, label %1723, label %1745

1723:                                             ; preds = %1719
  %1724 = load i32, ptr %250, align 4, !tbaa !5
  %1725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1726 = call i32 @s2n_print_stacktrace(ptr noundef %1725) #12
  %1727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1728 = trunc nuw i8 %1727 to i1
  br i1 %1728, label %1729, label %1733

1729:                                             ; preds = %1723
  %1730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1731 = call i32 @fileno(ptr noundef %1730) #12
  %1732 = call i32 @isatty(i32 noundef %1731) #12
  %.not680 = icmp eq i32 %1732, 0
  br i1 %.not680, label %1733, label %1734

1733:                                             ; preds = %1729, %1723
  br label %1734

1734:                                             ; preds = %1729, %1733
  %.str.5.sink1248 = phi ptr [ @.str.5, %1733 ], [ @.str.2, %1729 ]
  store i32 %1724, ptr %250, align 4, !tbaa !5
  %1735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1736 = load i32, ptr @test_count, align 4, !tbaa !5
  %1737 = load i32, ptr %196, align 4, !tbaa !5
  %1738 = call ptr @s2n_strerror(i32 noundef %1737, ptr noundef nonnull @.str.4) #12
  %1739 = load i32, ptr %196, align 4, !tbaa !5
  %1740 = call ptr @s2n_strerror_debug(i32 noundef %1739, ptr noundef nonnull @.str.4) #12
  %1741 = load i32, ptr %250, align 4, !tbaa !5
  %1742 = call ptr @strerror(i32 noundef %1741) #12
  %1743 = load i32, ptr %250, align 4, !tbaa !5
  %1744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1735, ptr noundef nonnull %.str.5.sink1248, i32 noundef %1736, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1738, ptr noundef %1740, ptr noundef %1742, i32 noundef %1743) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1745:                                             ; preds = %1719
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %1746 = load i32, ptr @test_count, align 4, !tbaa !5
  %1747 = add nsw i32 %1746, 1
  store i32 %1747, ptr @test_count, align 4, !tbaa !5
  %1748 = call i32 @s2n_extension_send(ptr noundef nonnull @test_extension_type, ptr noundef null, ptr noundef nonnull %14) #12
  %1749 = icmp eq i32 %1748, -1
  br i1 %1749, label %1772, label %1750

1750:                                             ; preds = %1745
  %1751 = load i32, ptr %250, align 4, !tbaa !5
  %1752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1753 = call i32 @s2n_print_stacktrace(ptr noundef %1752) #12
  %1754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1755 = trunc nuw i8 %1754 to i1
  br i1 %1755, label %1756, label %1760

1756:                                             ; preds = %1750
  %1757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1758 = call i32 @fileno(ptr noundef %1757) #12
  %1759 = call i32 @isatty(i32 noundef %1758) #12
  %.not535 = icmp eq i32 %1759, 0
  br i1 %.not535, label %1760, label %1761

1760:                                             ; preds = %1756, %1750
  br label %1761

1761:                                             ; preds = %1756, %1760
  %.str.5.sink1257 = phi ptr [ @.str.5, %1760 ], [ @.str.2, %1756 ]
  store i32 %1751, ptr %250, align 4, !tbaa !5
  %1762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1763 = load i32, ptr @test_count, align 4, !tbaa !5
  %1764 = load i32, ptr %196, align 4, !tbaa !5
  %1765 = call ptr @s2n_strerror(i32 noundef %1764, ptr noundef nonnull @.str.4) #12
  %1766 = load i32, ptr %196, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror_debug(i32 noundef %1766, ptr noundef nonnull @.str.4) #12
  %1768 = load i32, ptr %250, align 4, !tbaa !5
  %1769 = call ptr @strerror(i32 noundef %1768) #12
  %1770 = load i32, ptr %250, align 4, !tbaa !5
  %1771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1762, ptr noundef nonnull %.str.5.sink1257, i32 noundef %1763, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1765, ptr noundef %1767, ptr noundef %1769, i32 noundef %1770) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1772:                                             ; preds = %1745
  %1773 = load i32, ptr @test_count, align 4, !tbaa !5
  %1774 = add nsw i32 %1773, 1
  store i32 %1774, ptr @test_count, align 4, !tbaa !5
  %1775 = load i32, ptr %196, align 4, !tbaa !5
  %1776 = icmp eq i32 %1775, 0
  br i1 %1776, label %1777, label %1799

1777:                                             ; preds = %1772
  %1778 = load i32, ptr %250, align 4, !tbaa !5
  %1779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1780 = call i32 @s2n_print_stacktrace(ptr noundef %1779) #12
  %1781 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1782 = trunc nuw i8 %1781 to i1
  br i1 %1782, label %1783, label %1787

1783:                                             ; preds = %1777
  %1784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1785 = call i32 @fileno(ptr noundef %1784) #12
  %1786 = call i32 @isatty(i32 noundef %1785) #12
  %.not679 = icmp eq i32 %1786, 0
  br i1 %.not679, label %1787, label %1788

1787:                                             ; preds = %1783, %1777
  br label %1788

1788:                                             ; preds = %1783, %1787
  %.str.5.sink1266 = phi ptr [ @.str.5, %1787 ], [ @.str.2, %1783 ]
  store i32 %1778, ptr %250, align 4, !tbaa !5
  %1789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1790 = load i32, ptr @test_count, align 4, !tbaa !5
  %1791 = load i32, ptr %196, align 4, !tbaa !5
  %1792 = call ptr @s2n_strerror(i32 noundef %1791, ptr noundef nonnull @.str.4) #12
  %1793 = load i32, ptr %196, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror_debug(i32 noundef %1793, ptr noundef nonnull @.str.4) #12
  %1795 = load i32, ptr %250, align 4, !tbaa !5
  %1796 = call ptr @strerror(i32 noundef %1795) #12
  %1797 = load i32, ptr %250, align 4, !tbaa !5
  %1798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1789, ptr noundef nonnull %.str.5.sink1266, i32 noundef %1790, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1792, ptr noundef %1794, ptr noundef %1796, i32 noundef %1797) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1799:                                             ; preds = %1772
  %1800 = add nsw i32 %1773, 2
  store i32 %1800, ptr @test_count, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror_debug(i32 noundef %1775, ptr noundef nonnull @.str.4) #12
  %1802 = icmp eq ptr %1801, null
  br i1 %1802, label %1803, label %1825

1803:                                             ; preds = %1799
  %1804 = load i32, ptr %250, align 4, !tbaa !5
  %1805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1806 = call i32 @s2n_print_stacktrace(ptr noundef %1805) #12
  %1807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1808 = trunc nuw i8 %1807 to i1
  br i1 %1808, label %1809, label %1813

1809:                                             ; preds = %1803
  %1810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1811 = call i32 @fileno(ptr noundef %1810) #12
  %1812 = call i32 @isatty(i32 noundef %1811) #12
  %.not678 = icmp eq i32 %1812, 0
  br i1 %.not678, label %1813, label %1814

1813:                                             ; preds = %1809, %1803
  br label %1814

1814:                                             ; preds = %1809, %1813
  %.str.5.sink1275 = phi ptr [ @.str.5, %1813 ], [ @.str.2, %1809 ]
  store i32 %1804, ptr %250, align 4, !tbaa !5
  %1815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1816 = load i32, ptr @test_count, align 4, !tbaa !5
  %1817 = load i32, ptr %196, align 4, !tbaa !5
  %1818 = call ptr @s2n_strerror(i32 noundef %1817, ptr noundef nonnull @.str.4) #12
  %1819 = load i32, ptr %196, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror_debug(i32 noundef %1819, ptr noundef nonnull @.str.4) #12
  %1821 = load i32, ptr %250, align 4, !tbaa !5
  %1822 = call ptr @strerror(i32 noundef %1821) #12
  %1823 = load i32, ptr %250, align 4, !tbaa !5
  %1824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1815, ptr noundef nonnull %.str.5.sink1275, i32 noundef %1816, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1818, ptr noundef %1820, ptr noundef %1822, i32 noundef %1823) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1825:                                             ; preds = %1799
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %15, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_null_send, i64 40, i1 false)
  %1826 = getelementptr inbounds i8, ptr %15, i64 8
  store ptr null, ptr %1826, align 8, !tbaa !48
  %1827 = load i32, ptr @test_count, align 4, !tbaa !5
  %1828 = add nsw i32 %1827, 1
  store i32 %1828, ptr @test_count, align 4, !tbaa !5
  %1829 = call i32 @s2n_extension_send(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1830 = icmp eq i32 %1829, -1
  br i1 %1830, label %1853, label %1831

1831:                                             ; preds = %1825
  %1832 = load i32, ptr %250, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = call i32 @s2n_print_stacktrace(ptr noundef %1833) #12
  %1835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1836 = trunc nuw i8 %1835 to i1
  br i1 %1836, label %1837, label %1841

1837:                                             ; preds = %1831
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #12
  %1840 = call i32 @isatty(i32 noundef %1839) #12
  %.not536 = icmp eq i32 %1840, 0
  br i1 %.not536, label %1841, label %1842

1841:                                             ; preds = %1837, %1831
  br label %1842

1842:                                             ; preds = %1837, %1841
  %.str.5.sink1284 = phi ptr [ @.str.5, %1841 ], [ @.str.2, %1837 ]
  store i32 %1832, ptr %250, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = load i32, ptr %196, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.4) #12
  %1847 = load i32, ptr %196, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.4) #12
  %1849 = load i32, ptr %250, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #12
  %1851 = load i32, ptr %250, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef nonnull %.str.5.sink1284, i32 noundef %1844, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1853:                                             ; preds = %1825
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = load i32, ptr %196, align 4, !tbaa !5
  %1857 = icmp eq i32 %1856, 0
  br i1 %1857, label %1858, label %1880

1858:                                             ; preds = %1853
  %1859 = load i32, ptr %250, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @s2n_print_stacktrace(ptr noundef %1860) #12
  %1862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1863 = trunc nuw i8 %1862 to i1
  br i1 %1863, label %1864, label %1868

1864:                                             ; preds = %1858
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #12
  %1867 = call i32 @isatty(i32 noundef %1866) #12
  %.not677 = icmp eq i32 %1867, 0
  br i1 %.not677, label %1868, label %1869

1868:                                             ; preds = %1864, %1858
  br label %1869

1869:                                             ; preds = %1864, %1868
  %.str.5.sink1293 = phi ptr [ @.str.5, %1868 ], [ @.str.2, %1864 ]
  store i32 %1859, ptr %250, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = load i32, ptr %196, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror(i32 noundef %1872, ptr noundef nonnull @.str.4) #12
  %1874 = load i32, ptr %196, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef nonnull @.str.4) #12
  %1876 = load i32, ptr %250, align 4, !tbaa !5
  %1877 = call ptr @strerror(i32 noundef %1876) #12
  %1878 = load i32, ptr %250, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1870, ptr noundef nonnull %.str.5.sink1293, i32 noundef %1871, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1873, ptr noundef %1875, ptr noundef %1877, i32 noundef %1878) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1880:                                             ; preds = %1853
  %1881 = add nsw i32 %1854, 2
  store i32 %1881, ptr @test_count, align 4, !tbaa !5
  %1882 = call ptr @s2n_strerror_debug(i32 noundef %1856, ptr noundef nonnull @.str.4) #12
  %1883 = icmp eq ptr %1882, null
  br i1 %1883, label %1884, label %1906

1884:                                             ; preds = %1880
  %1885 = load i32, ptr %250, align 4, !tbaa !5
  %1886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1887 = call i32 @s2n_print_stacktrace(ptr noundef %1886) #12
  %1888 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1889 = trunc nuw i8 %1888 to i1
  br i1 %1889, label %1890, label %1894

1890:                                             ; preds = %1884
  %1891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1892 = call i32 @fileno(ptr noundef %1891) #12
  %1893 = call i32 @isatty(i32 noundef %1892) #12
  %.not676 = icmp eq i32 %1893, 0
  br i1 %.not676, label %1894, label %1895

1894:                                             ; preds = %1890, %1884
  br label %1895

1895:                                             ; preds = %1890, %1894
  %.str.5.sink1302 = phi ptr [ @.str.5, %1894 ], [ @.str.2, %1890 ]
  store i32 %1885, ptr %250, align 4, !tbaa !5
  %1896 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1897 = load i32, ptr @test_count, align 4, !tbaa !5
  %1898 = load i32, ptr %196, align 4, !tbaa !5
  %1899 = call ptr @s2n_strerror(i32 noundef %1898, ptr noundef nonnull @.str.4) #12
  %1900 = load i32, ptr %196, align 4, !tbaa !5
  %1901 = call ptr @s2n_strerror_debug(i32 noundef %1900, ptr noundef nonnull @.str.4) #12
  %1902 = load i32, ptr %250, align 4, !tbaa !5
  %1903 = call ptr @strerror(i32 noundef %1902) #12
  %1904 = load i32, ptr %250, align 4, !tbaa !5
  %1905 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1896, ptr noundef nonnull %.str.5.sink1302, i32 noundef %1897, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 233, ptr noundef %1899, ptr noundef %1901, ptr noundef %1903, i32 noundef %1904) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1906:                                             ; preds = %1880
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %16, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_null_should_send, i64 40, i1 false)
  %1907 = getelementptr inbounds i8, ptr %16, i64 24
  store ptr null, ptr %1907, align 8, !tbaa !49
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = add nsw i32 %1908, 1
  store i32 %1909, ptr @test_count, align 4, !tbaa !5
  %1910 = call i32 @s2n_extension_send(ptr noundef nonnull %16, ptr noundef nonnull %13, ptr noundef nonnull %14) #12
  %1911 = icmp eq i32 %1910, -1
  br i1 %1911, label %1934, label %1912

1912:                                             ; preds = %1906
  %1913 = load i32, ptr %250, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = call i32 @s2n_print_stacktrace(ptr noundef %1914) #12
  %1916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1917 = trunc nuw i8 %1916 to i1
  br i1 %1917, label %1918, label %1922

1918:                                             ; preds = %1912
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = call i32 @fileno(ptr noundef %1919) #12
  %1921 = call i32 @isatty(i32 noundef %1920) #12
  %.not537 = icmp eq i32 %1921, 0
  br i1 %.not537, label %1922, label %1923

1922:                                             ; preds = %1918, %1912
  br label %1923

1923:                                             ; preds = %1918, %1922
  %.str.5.sink1311 = phi ptr [ @.str.5, %1922 ], [ @.str.2, %1918 ]
  store i32 %1913, ptr %250, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = load i32, ptr %196, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror(i32 noundef %1926, ptr noundef nonnull @.str.4) #12
  %1928 = load i32, ptr %196, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef nonnull @.str.4) #12
  %1930 = load i32, ptr %250, align 4, !tbaa !5
  %1931 = call ptr @strerror(i32 noundef %1930) #12
  %1932 = load i32, ptr %250, align 4, !tbaa !5
  %1933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef nonnull %.str.5.sink1311, i32 noundef %1925, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1927, ptr noundef %1929, ptr noundef %1931, i32 noundef %1932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1934:                                             ; preds = %1906
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = add nsw i32 %1935, 1
  store i32 %1936, ptr @test_count, align 4, !tbaa !5
  %1937 = load i32, ptr %196, align 4, !tbaa !5
  %1938 = icmp eq i32 %1937, 0
  br i1 %1938, label %1939, label %1961

1939:                                             ; preds = %1934
  %1940 = load i32, ptr %250, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @s2n_print_stacktrace(ptr noundef %1941) #12
  %1943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1944 = trunc nuw i8 %1943 to i1
  br i1 %1944, label %1945, label %1949

1945:                                             ; preds = %1939
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @fileno(ptr noundef %1946) #12
  %1948 = call i32 @isatty(i32 noundef %1947) #12
  %.not675 = icmp eq i32 %1948, 0
  br i1 %.not675, label %1949, label %1950

1949:                                             ; preds = %1945, %1939
  br label %1950

1950:                                             ; preds = %1945, %1949
  %.str.5.sink1320 = phi ptr [ @.str.5, %1949 ], [ @.str.2, %1945 ]
  store i32 %1940, ptr %250, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = load i32, ptr %196, align 4, !tbaa !5
  %1954 = call ptr @s2n_strerror(i32 noundef %1953, ptr noundef nonnull @.str.4) #12
  %1955 = load i32, ptr %196, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror_debug(i32 noundef %1955, ptr noundef nonnull @.str.4) #12
  %1957 = load i32, ptr %250, align 4, !tbaa !5
  %1958 = call ptr @strerror(i32 noundef %1957) #12
  %1959 = load i32, ptr %250, align 4, !tbaa !5
  %1960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1951, ptr noundef nonnull %.str.5.sink1320, i32 noundef %1952, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1954, ptr noundef %1956, ptr noundef %1958, i32 noundef %1959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1961:                                             ; preds = %1934
  %1962 = add nsw i32 %1935, 2
  store i32 %1962, ptr @test_count, align 4, !tbaa !5
  %1963 = call ptr @s2n_strerror_debug(i32 noundef %1937, ptr noundef nonnull @.str.4) #12
  %1964 = icmp eq ptr %1963, null
  br i1 %1964, label %1965, label %1987

1965:                                             ; preds = %1961
  %1966 = load i32, ptr %250, align 4, !tbaa !5
  %1967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1968 = call i32 @s2n_print_stacktrace(ptr noundef %1967) #12
  %1969 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1970 = trunc nuw i8 %1969 to i1
  br i1 %1970, label %1971, label %1975

1971:                                             ; preds = %1965
  %1972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1973 = call i32 @fileno(ptr noundef %1972) #12
  %1974 = call i32 @isatty(i32 noundef %1973) #12
  %.not674 = icmp eq i32 %1974, 0
  br i1 %.not674, label %1975, label %1976

1975:                                             ; preds = %1971, %1965
  br label %1976

1976:                                             ; preds = %1971, %1975
  %.str.5.sink1329 = phi ptr [ @.str.5, %1975 ], [ @.str.2, %1971 ]
  store i32 %1966, ptr %250, align 4, !tbaa !5
  %1977 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1978 = load i32, ptr @test_count, align 4, !tbaa !5
  %1979 = load i32, ptr %196, align 4, !tbaa !5
  %1980 = call ptr @s2n_strerror(i32 noundef %1979, ptr noundef nonnull @.str.4) #12
  %1981 = load i32, ptr %196, align 4, !tbaa !5
  %1982 = call ptr @s2n_strerror_debug(i32 noundef %1981, ptr noundef nonnull @.str.4) #12
  %1983 = load i32, ptr %250, align 4, !tbaa !5
  %1984 = call ptr @strerror(i32 noundef %1983) #12
  %1985 = load i32, ptr %250, align 4, !tbaa !5
  %1986 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1977, ptr noundef nonnull %.str.5.sink1329, i32 noundef %1978, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %1980, ptr noundef %1982, ptr noundef %1984, i32 noundef %1985) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1987:                                             ; preds = %1961
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %16) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %14) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %17, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %18) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %18, i8 0, i64 40, i1 false)
  %1988 = load i32, ptr @test_count, align 4, !tbaa !5
  %1989 = add nsw i32 %1988, 1
  store i32 %1989, ptr @test_count, align 4, !tbaa !5
  %1990 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %18, i32 noundef 40) #12
  %1991 = icmp eq i32 %1990, -1
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1987
  %1993 = load i32, ptr %250, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @s2n_print_stacktrace(ptr noundef %1994) #12
  %1996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1997 = trunc nuw i8 %1996 to i1
  br i1 %1997, label %1998, label %2002

1998:                                             ; preds = %1992
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @fileno(ptr noundef %1999) #12
  %2001 = call i32 @isatty(i32 noundef %2000) #12
  %.not673 = icmp eq i32 %2001, 0
  br i1 %.not673, label %2002, label %2003

2002:                                             ; preds = %1998, %1992
  br label %2003

2003:                                             ; preds = %1998, %2002
  %.str.5.sink1338 = phi ptr [ @.str.5, %2002 ], [ @.str.2, %1998 ]
  store i32 %1993, ptr %250, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = load i32, ptr %196, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror(i32 noundef %2006, ptr noundef nonnull @.str.4) #12
  %2008 = load i32, ptr %196, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror_debug(i32 noundef %2008, ptr noundef nonnull @.str.4) #12
  %2010 = load i32, ptr %250, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #12
  %2012 = load i32, ptr %250, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef nonnull %.str.5.sink1338, i32 noundef %2005, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2007, ptr noundef %2009, ptr noundef %2011, i32 noundef %2012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2014:                                             ; preds = %1987
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %19, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.request_extension_type.50, i64 40, i1 false)
  %2015 = getelementptr inbounds i8, ptr %19, i64 2
  %2016 = load i8, ptr %2015, align 2
  %2017 = and i8 %2016, -2
  store i8 %2017, ptr %2015, align 2
  %2018 = load i32, ptr @test_count, align 4, !tbaa !5
  %2019 = add nsw i32 %2018, 1
  store i32 %2019, ptr @test_count, align 4, !tbaa !5
  %2020 = call i32 @s2n_extension_send(ptr noundef nonnull %19, ptr noundef nonnull %17, ptr noundef nonnull %18) #12
  %2021 = icmp eq i32 %2020, -1
  br i1 %2021, label %2022, label %2044

2022:                                             ; preds = %2014
  %2023 = load i32, ptr %250, align 4, !tbaa !5
  %2024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2025 = call i32 @s2n_print_stacktrace(ptr noundef %2024) #12
  %2026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2027 = trunc nuw i8 %2026 to i1
  br i1 %2027, label %2028, label %2032

2028:                                             ; preds = %2022
  %2029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2030 = call i32 @fileno(ptr noundef %2029) #12
  %2031 = call i32 @isatty(i32 noundef %2030) #12
  %.not672 = icmp eq i32 %2031, 0
  br i1 %.not672, label %2032, label %2033

2032:                                             ; preds = %2028, %2022
  br label %2033

2033:                                             ; preds = %2028, %2032
  %.str.5.sink1347 = phi ptr [ @.str.5, %2032 ], [ @.str.2, %2028 ]
  store i32 %2023, ptr %250, align 4, !tbaa !5
  %2034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2035 = load i32, ptr @test_count, align 4, !tbaa !5
  %2036 = load i32, ptr %196, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror(i32 noundef %2036, ptr noundef nonnull @.str.4) #12
  %2038 = load i32, ptr %196, align 4, !tbaa !5
  %2039 = call ptr @s2n_strerror_debug(i32 noundef %2038, ptr noundef nonnull @.str.4) #12
  %2040 = load i32, ptr %250, align 4, !tbaa !5
  %2041 = call ptr @strerror(i32 noundef %2040) #12
  %2042 = load i32, ptr %250, align 4, !tbaa !5
  %2043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2034, ptr noundef nonnull %.str.5.sink1347, i32 noundef %2035, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 250, ptr noundef %2037, ptr noundef %2039, ptr noundef %2041, i32 noundef %2042) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2044:                                             ; preds = %2014
  %2045 = load i32, ptr @test_count, align 4, !tbaa !5
  %2046 = add nsw i32 %2045, 1
  store i32 %2046, ptr @test_count, align 4, !tbaa !5
  %2047 = getelementptr inbounds i8, ptr %17, i64 80
  %2048 = getelementptr inbounds [22 x i8], ptr %2047, i64 0, i64 %1364
  %2049 = load i8, ptr %2048, align 1, !tbaa !43
  %2050 = zext i8 %2049 to i32
  %2051 = and i32 %1369, %2050
  %.not538 = icmp eq i32 %2051, 0
  br i1 %.not538, label %2052, label %2074

2052:                                             ; preds = %2044
  %2053 = load i32, ptr %250, align 4, !tbaa !5
  %2054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2055 = call i32 @s2n_print_stacktrace(ptr noundef %2054) #12
  %2056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2057 = trunc nuw i8 %2056 to i1
  br i1 %2057, label %2058, label %2062

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

2062:                                             ; preds = %2058, %2052
  br label %2063

2063:                                             ; preds = %2058, %2062
  %.str.5.sink1356 = phi ptr [ @.str.5, %2062 ], [ @.str.2, %2058 ]
  store i32 %2053, ptr %250, align 4, !tbaa !5
  %2064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2065 = load i32, ptr @test_count, align 4, !tbaa !5
  %2066 = load i32, ptr %196, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror(i32 noundef %2066, ptr noundef nonnull @.str.4) #12
  %2068 = load i32, ptr %196, align 4, !tbaa !5
  %2069 = call ptr @s2n_strerror_debug(i32 noundef %2068, ptr noundef nonnull @.str.4) #12
  %2070 = load i32, ptr %250, align 4, !tbaa !5
  %2071 = call ptr @strerror(i32 noundef %2070) #12
  %2072 = load i32, ptr %250, align 4, !tbaa !5
  %2073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2064, ptr noundef nonnull %.str.5.sink1356, i32 noundef %2065, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %2067, ptr noundef %2069, ptr noundef %2071, i32 noundef %2072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2074:                                             ; preds = %2044
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %20) #12
  store i16 0, ptr %20, align 2, !tbaa !42
  %2075 = add nsw i32 %2045, 2
  store i32 %2075, ptr @test_count, align 4, !tbaa !5
  %2076 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %20) #12
  %2077 = icmp eq i32 %2076, -1
  br i1 %2077, label %2078, label %2100

2078:                                             ; preds = %2074
  %2079 = load i32, ptr %250, align 4, !tbaa !5
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @s2n_print_stacktrace(ptr noundef %2080) #12
  %2082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2083 = trunc nuw i8 %2082 to i1
  br i1 %2083, label %2084, label %2088

2084:                                             ; preds = %2078
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = call i32 @fileno(ptr noundef %2085) #12
  %2087 = call i32 @isatty(i32 noundef %2086) #12
  %.not671 = icmp eq i32 %2087, 0
  br i1 %.not671, label %2088, label %2089

2088:                                             ; preds = %2084, %2078
  br label %2089

2089:                                             ; preds = %2084, %2088
  %.str.5.sink1365 = phi ptr [ @.str.5, %2088 ], [ @.str.2, %2084 ]
  store i32 %2079, ptr %250, align 4, !tbaa !5
  %2090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2091 = load i32, ptr @test_count, align 4, !tbaa !5
  %2092 = load i32, ptr %196, align 4, !tbaa !5
  %2093 = call ptr @s2n_strerror(i32 noundef %2092, ptr noundef nonnull @.str.4) #12
  %2094 = load i32, ptr %196, align 4, !tbaa !5
  %2095 = call ptr @s2n_strerror_debug(i32 noundef %2094, ptr noundef nonnull @.str.4) #12
  %2096 = load i32, ptr %250, align 4, !tbaa !5
  %2097 = call ptr @strerror(i32 noundef %2096) #12
  %2098 = load i32, ptr %250, align 4, !tbaa !5
  %2099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2090, ptr noundef nonnull %.str.5.sink1365, i32 noundef %2091, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 255, ptr noundef %2093, ptr noundef %2095, ptr noundef %2097, i32 noundef %2098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2100:                                             ; preds = %2074
  %2101 = load i32, ptr @test_count, align 4, !tbaa !5
  %2102 = add nsw i32 %2101, 1
  store i32 %2102, ptr @test_count, align 4, !tbaa !5
  %2103 = load i16, ptr %20, align 2, !tbaa !42
  %2104 = load i16, ptr %19, align 8, !tbaa !50
  %2105 = icmp eq i16 %2103, %2104
  br i1 %2105, label %2128, label %2106

2106:                                             ; preds = %2100
  %2107 = load i32, ptr %250, align 4, !tbaa !5
  %2108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2109 = call i32 @s2n_print_stacktrace(ptr noundef %2108) #12
  %2110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2111 = trunc nuw i8 %2110 to i1
  br i1 %2111, label %2112, label %2116

2112:                                             ; preds = %2106
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = call i32 @fileno(ptr noundef %2113) #12
  %2115 = call i32 @isatty(i32 noundef %2114) #12
  %.not540 = icmp eq i32 %2115, 0
  br i1 %.not540, label %2116, label %2117

2116:                                             ; preds = %2112, %2106
  br label %2117

2117:                                             ; preds = %2112, %2116
  %.str.5.sink1374 = phi ptr [ @.str.5, %2116 ], [ @.str.2, %2112 ]
  store i32 %2107, ptr %250, align 4, !tbaa !5
  %2118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2119 = load i32, ptr @test_count, align 4, !tbaa !5
  %2120 = load i32, ptr %196, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror(i32 noundef %2120, ptr noundef nonnull @.str.4) #12
  %2122 = load i32, ptr %196, align 4, !tbaa !5
  %2123 = call ptr @s2n_strerror_debug(i32 noundef %2122, ptr noundef nonnull @.str.4) #12
  %2124 = load i32, ptr %250, align 4, !tbaa !5
  %2125 = call ptr @strerror(i32 noundef %2124) #12
  %2126 = load i32, ptr %250, align 4, !tbaa !5
  %2127 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2118, ptr noundef nonnull %.str.5.sink1374, i32 noundef %2119, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2121, ptr noundef %2123, ptr noundef %2125, i32 noundef %2126) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2128:                                             ; preds = %2100
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %21) #12
  store i16 0, ptr %21, align 2, !tbaa !42
  %2129 = add nsw i32 %2101, 2
  store i32 %2129, ptr @test_count, align 4, !tbaa !5
  %2130 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %18, ptr noundef nonnull %21) #12
  %2131 = icmp eq i32 %2130, -1
  br i1 %2131, label %2132, label %2154

2132:                                             ; preds = %2128
  %2133 = load i32, ptr %250, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = call i32 @s2n_print_stacktrace(ptr noundef %2134) #12
  %2136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2137 = trunc nuw i8 %2136 to i1
  br i1 %2137, label %2138, label %2142

2138:                                             ; preds = %2132
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = call i32 @fileno(ptr noundef %2139) #12
  %2141 = call i32 @isatty(i32 noundef %2140) #12
  %.not670 = icmp eq i32 %2141, 0
  br i1 %.not670, label %2142, label %2143

2142:                                             ; preds = %2138, %2132
  br label %2143

2143:                                             ; preds = %2138, %2142
  %.str.5.sink1383 = phi ptr [ @.str.5, %2142 ], [ @.str.2, %2138 ]
  store i32 %2133, ptr %250, align 4, !tbaa !5
  %2144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2145 = load i32, ptr @test_count, align 4, !tbaa !5
  %2146 = load i32, ptr %196, align 4, !tbaa !5
  %2147 = call ptr @s2n_strerror(i32 noundef %2146, ptr noundef nonnull @.str.4) #12
  %2148 = load i32, ptr %196, align 4, !tbaa !5
  %2149 = call ptr @s2n_strerror_debug(i32 noundef %2148, ptr noundef nonnull @.str.4) #12
  %2150 = load i32, ptr %250, align 4, !tbaa !5
  %2151 = call ptr @strerror(i32 noundef %2150) #12
  %2152 = load i32, ptr %250, align 4, !tbaa !5
  %2153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2144, ptr noundef nonnull %.str.5.sink1383, i32 noundef %2145, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 260, ptr noundef %2147, ptr noundef %2149, ptr noundef %2151, i32 noundef %2152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2154:                                             ; preds = %2128
  %2155 = load i32, ptr @test_count, align 4, !tbaa !5
  %2156 = add nsw i32 %2155, 1
  store i32 %2156, ptr @test_count, align 4, !tbaa !5
  %2157 = load i16, ptr %21, align 2, !tbaa !42
  %2158 = zext i16 %2157 to i32
  %2159 = getelementptr inbounds i8, ptr %18, i64 28
  %2160 = load i32, ptr %2159, align 4, !tbaa !51
  %2161 = getelementptr inbounds i8, ptr %18, i64 24
  %2162 = load i32, ptr %2161, align 8, !tbaa !52
  %2163 = sub i32 %2160, %2162
  %2164 = icmp eq i32 %2163, %2158
  br i1 %2164, label %2187, label %2165

2165:                                             ; preds = %2154
  %2166 = load i32, ptr %250, align 4, !tbaa !5
  %2167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2168 = call i32 @s2n_print_stacktrace(ptr noundef %2167) #12
  %2169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2170 = trunc nuw i8 %2169 to i1
  br i1 %2170, label %2171, label %2175

2171:                                             ; preds = %2165
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = call i32 @fileno(ptr noundef %2172) #12
  %2174 = call i32 @isatty(i32 noundef %2173) #12
  %.not541 = icmp eq i32 %2174, 0
  br i1 %.not541, label %2175, label %2176

2175:                                             ; preds = %2171, %2165
  br label %2176

2176:                                             ; preds = %2171, %2175
  %.str.5.sink1392 = phi ptr [ @.str.5, %2175 ], [ @.str.2, %2171 ]
  store i32 %2166, ptr %250, align 4, !tbaa !5
  %2177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2178 = load i32, ptr @test_count, align 4, !tbaa !5
  %2179 = load i32, ptr %196, align 4, !tbaa !5
  %2180 = call ptr @s2n_strerror(i32 noundef %2179, ptr noundef nonnull @.str.4) #12
  %2181 = load i32, ptr %196, align 4, !tbaa !5
  %2182 = call ptr @s2n_strerror_debug(i32 noundef %2181, ptr noundef nonnull @.str.4) #12
  %2183 = load i32, ptr %250, align 4, !tbaa !5
  %2184 = call ptr @strerror(i32 noundef %2183) #12
  %2185 = load i32, ptr %250, align 4, !tbaa !5
  %2186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2177, ptr noundef nonnull %.str.5.sink1392, i32 noundef %2178, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 261, ptr noundef %2180, ptr noundef %2182, ptr noundef %2184, i32 noundef %2185) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2187:                                             ; preds = %2154
  %2188 = add nsw i32 %2155, 2
  store i32 %2188, ptr @test_count, align 4, !tbaa !5
  %2189 = icmp eq i16 %2157, 20
  br i1 %2189, label %2212, label %2190

2190:                                             ; preds = %2187
  %2191 = load i32, ptr %250, align 4, !tbaa !5
  %2192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2193 = call i32 @s2n_print_stacktrace(ptr noundef %2192) #12
  %2194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2195 = trunc nuw i8 %2194 to i1
  br i1 %2195, label %2196, label %2200

2196:                                             ; preds = %2190
  %2197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2198 = call i32 @fileno(ptr noundef %2197) #12
  %2199 = call i32 @isatty(i32 noundef %2198) #12
  %.not542 = icmp eq i32 %2199, 0
  br i1 %.not542, label %2200, label %2201

2200:                                             ; preds = %2196, %2190
  br label %2201

2201:                                             ; preds = %2196, %2200
  %.str.5.sink1401 = phi ptr [ @.str.5, %2200 ], [ @.str.2, %2196 ]
  store i32 %2191, ptr %250, align 4, !tbaa !5
  %2202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2203 = load i32, ptr @test_count, align 4, !tbaa !5
  %2204 = load i32, ptr %196, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror(i32 noundef %2204, ptr noundef nonnull @.str.4) #12
  %2206 = load i32, ptr %196, align 4, !tbaa !5
  %2207 = call ptr @s2n_strerror_debug(i32 noundef %2206, ptr noundef nonnull @.str.4) #12
  %2208 = load i32, ptr %250, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #12
  %2210 = load i32, ptr %250, align 4, !tbaa !5
  %2211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2202, ptr noundef nonnull %.str.5.sink1401, i32 noundef %2203, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 262, ptr noundef %2205, ptr noundef %2207, ptr noundef %2209, i32 noundef %2210) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2212:                                             ; preds = %2187
  %2213 = call i32 @s2n_stuffer_free(ptr noundef nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %21) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %19) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %18) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %22, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %23) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %23, i8 0, i64 40, i1 false)
  %2214 = load i32, ptr @test_count, align 4, !tbaa !5
  %2215 = add nsw i32 %2214, 1
  store i32 %2215, ptr @test_count, align 4, !tbaa !5
  %2216 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %23, i32 noundef 40) #12
  %2217 = icmp eq i32 %2216, -1
  br i1 %2217, label %2218, label %2240

2218:                                             ; preds = %2212
  %2219 = load i32, ptr %250, align 4, !tbaa !5
  %2220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2221 = call i32 @s2n_print_stacktrace(ptr noundef %2220) #12
  %2222 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2223 = trunc nuw i8 %2222 to i1
  br i1 %2223, label %2224, label %2228

2224:                                             ; preds = %2218
  %2225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2226 = call i32 @fileno(ptr noundef %2225) #12
  %2227 = call i32 @isatty(i32 noundef %2226) #12
  %.not669 = icmp eq i32 %2227, 0
  br i1 %.not669, label %2228, label %2229

2228:                                             ; preds = %2224, %2218
  br label %2229

2229:                                             ; preds = %2224, %2228
  %.str.5.sink1410 = phi ptr [ @.str.5, %2228 ], [ @.str.2, %2224 ]
  store i32 %2219, ptr %250, align 4, !tbaa !5
  %2230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = load i32, ptr %196, align 4, !tbaa !5
  %2233 = call ptr @s2n_strerror(i32 noundef %2232, ptr noundef nonnull @.str.4) #12
  %2234 = load i32, ptr %196, align 4, !tbaa !5
  %2235 = call ptr @s2n_strerror_debug(i32 noundef %2234, ptr noundef nonnull @.str.4) #12
  %2236 = load i32, ptr %250, align 4, !tbaa !5
  %2237 = call ptr @strerror(i32 noundef %2236) #12
  %2238 = load i32, ptr %250, align 4, !tbaa !5
  %2239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2230, ptr noundef nonnull %.str.5.sink1410, i32 noundef %2231, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 286, ptr noundef %2233, ptr noundef %2235, ptr noundef %2237, i32 noundef %2238) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2240:                                             ; preds = %2212
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %24) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.response_extension_type.58, i64 40, i1 false)
  %2241 = getelementptr inbounds i8, ptr %24, i64 2
  %2242 = load i8, ptr %2241, align 2
  %2243 = or i8 %2242, 1
  store i8 %2243, ptr %2241, align 2
  %2244 = load i32, ptr @test_count, align 4, !tbaa !5
  %2245 = add nsw i32 %2244, 1
  store i32 %2245, ptr @test_count, align 4, !tbaa !5
  %2246 = call i32 @s2n_extension_send(ptr noundef nonnull %24, ptr noundef nonnull %22, ptr noundef nonnull %23) #12
  %2247 = icmp eq i32 %2246, -1
  br i1 %2247, label %2248, label %2270

2248:                                             ; preds = %2240
  %2249 = load i32, ptr %250, align 4, !tbaa !5
  %2250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2251 = call i32 @s2n_print_stacktrace(ptr noundef %2250) #12
  %2252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2253 = trunc nuw i8 %2252 to i1
  br i1 %2253, label %2254, label %2258

2254:                                             ; preds = %2248
  %2255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2256 = call i32 @fileno(ptr noundef %2255) #12
  %2257 = call i32 @isatty(i32 noundef %2256) #12
  %.not668 = icmp eq i32 %2257, 0
  br i1 %.not668, label %2258, label %2259

2258:                                             ; preds = %2254, %2248
  br label %2259

2259:                                             ; preds = %2254, %2258
  %.str.5.sink1419 = phi ptr [ @.str.5, %2258 ], [ @.str.2, %2254 ]
  store i32 %2249, ptr %250, align 4, !tbaa !5
  %2260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2261 = load i32, ptr @test_count, align 4, !tbaa !5
  %2262 = load i32, ptr %196, align 4, !tbaa !5
  %2263 = call ptr @s2n_strerror(i32 noundef %2262, ptr noundef nonnull @.str.4) #12
  %2264 = load i32, ptr %196, align 4, !tbaa !5
  %2265 = call ptr @s2n_strerror_debug(i32 noundef %2264, ptr noundef nonnull @.str.4) #12
  %2266 = load i32, ptr %250, align 4, !tbaa !5
  %2267 = call ptr @strerror(i32 noundef %2266) #12
  %2268 = load i32, ptr %250, align 4, !tbaa !5
  %2269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2260, ptr noundef nonnull %.str.5.sink1419, i32 noundef %2261, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 292, ptr noundef %2263, ptr noundef %2265, ptr noundef %2267, i32 noundef %2268) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2270:                                             ; preds = %2240
  %2271 = load i32, ptr @test_count, align 4, !tbaa !5
  %2272 = add nsw i32 %2271, 1
  store i32 %2272, ptr @test_count, align 4, !tbaa !5
  %2273 = getelementptr inbounds i8, ptr %23, i64 28
  %2274 = load i32, ptr %2273, align 4, !tbaa !51
  %2275 = getelementptr inbounds i8, ptr %23, i64 24
  %2276 = load i32, ptr %2275, align 8, !tbaa !52
  %2277 = icmp eq i32 %2274, %2276
  br i1 %2277, label %2300, label %2278

2278:                                             ; preds = %2270
  %2279 = load i32, ptr %250, align 4, !tbaa !5
  %2280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2281 = call i32 @s2n_print_stacktrace(ptr noundef %2280) #12
  %2282 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2283 = trunc nuw i8 %2282 to i1
  br i1 %2283, label %2284, label %2288

2284:                                             ; preds = %2278
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = call i32 @fileno(ptr noundef %2285) #12
  %2287 = call i32 @isatty(i32 noundef %2286) #12
  %.not543 = icmp eq i32 %2287, 0
  br i1 %.not543, label %2288, label %2289

2288:                                             ; preds = %2284, %2278
  br label %2289

2289:                                             ; preds = %2284, %2288
  %.str.5.sink1428 = phi ptr [ @.str.5, %2288 ], [ @.str.2, %2284 ]
  store i32 %2279, ptr %250, align 4, !tbaa !5
  %2290 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2291 = load i32, ptr @test_count, align 4, !tbaa !5
  %2292 = load i32, ptr %196, align 4, !tbaa !5
  %2293 = call ptr @s2n_strerror(i32 noundef %2292, ptr noundef nonnull @.str.4) #12
  %2294 = load i32, ptr %196, align 4, !tbaa !5
  %2295 = call ptr @s2n_strerror_debug(i32 noundef %2294, ptr noundef nonnull @.str.4) #12
  %2296 = load i32, ptr %250, align 4, !tbaa !5
  %2297 = call ptr @strerror(i32 noundef %2296) #12
  %2298 = load i32, ptr %250, align 4, !tbaa !5
  %2299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2290, ptr noundef nonnull %.str.5.sink1428, i32 noundef %2291, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2293, ptr noundef %2295, ptr noundef %2297, i32 noundef %2298) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2300:                                             ; preds = %2270
  %2301 = add nsw i32 %2271, 2
  store i32 %2301, ptr @test_count, align 4, !tbaa !5
  %2302 = getelementptr inbounds i8, ptr %22, i64 80
  %bcmp544 = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %2302, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %2303 = icmp eq i32 %bcmp544, 0
  br i1 %2303, label %2326, label %2304

2304:                                             ; preds = %2300
  %2305 = load i32, ptr %250, align 4, !tbaa !5
  %2306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2307 = call i32 @s2n_print_stacktrace(ptr noundef %2306) #12
  %2308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2309 = trunc nuw i8 %2308 to i1
  br i1 %2309, label %2310, label %2314

2310:                                             ; preds = %2304
  %2311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2312 = call i32 @fileno(ptr noundef %2311) #12
  %2313 = call i32 @isatty(i32 noundef %2312) #12
  %.not545 = icmp eq i32 %2313, 0
  br i1 %.not545, label %2314, label %2315

2314:                                             ; preds = %2310, %2304
  br label %2315

2315:                                             ; preds = %2310, %2314
  %.str.5.sink1437 = phi ptr [ @.str.5, %2314 ], [ @.str.2, %2310 ]
  store i32 %2305, ptr %250, align 4, !tbaa !5
  %2316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2317 = load i32, ptr @test_count, align 4, !tbaa !5
  %2318 = load i32, ptr %196, align 4, !tbaa !5
  %2319 = call ptr @s2n_strerror(i32 noundef %2318, ptr noundef nonnull @.str.4) #12
  %2320 = load i32, ptr %196, align 4, !tbaa !5
  %2321 = call ptr @s2n_strerror_debug(i32 noundef %2320, ptr noundef nonnull @.str.4) #12
  %2322 = load i32, ptr %250, align 4, !tbaa !5
  %2323 = call ptr @strerror(i32 noundef %2322) #12
  %2324 = load i32, ptr %250, align 4, !tbaa !5
  %2325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2316, ptr noundef nonnull %.str.5.sink1437, i32 noundef %2317, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 295, ptr noundef %2319, ptr noundef %2321, ptr noundef %2323, i32 noundef %2324) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2326:                                             ; preds = %2300
  %2327 = getelementptr inbounds i8, ptr %22, i64 102
  %2328 = getelementptr inbounds [22 x i8], ptr %2327, i64 0, i64 %1364
  %2329 = load i8, ptr %2328, align 1, !tbaa !43
  %2330 = or i8 %2329, %1506
  store i8 %2330, ptr %2328, align 1, !tbaa !43
  %2331 = add nsw i32 %2271, 3
  store i32 %2331, ptr @test_count, align 4, !tbaa !5
  %2332 = call i32 @s2n_extension_send(ptr noundef nonnull %24, ptr noundef nonnull %22, ptr noundef nonnull %23) #12
  %2333 = icmp eq i32 %2332, -1
  br i1 %2333, label %2334, label %2356

2334:                                             ; preds = %2326
  %2335 = load i32, ptr %250, align 4, !tbaa !5
  %2336 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2337 = call i32 @s2n_print_stacktrace(ptr noundef %2336) #12
  %2338 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2339 = trunc nuw i8 %2338 to i1
  br i1 %2339, label %2340, label %2344

2340:                                             ; preds = %2334
  %2341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2342 = call i32 @fileno(ptr noundef %2341) #12
  %2343 = call i32 @isatty(i32 noundef %2342) #12
  %.not667 = icmp eq i32 %2343, 0
  br i1 %.not667, label %2344, label %2345

2344:                                             ; preds = %2340, %2334
  br label %2345

2345:                                             ; preds = %2340, %2344
  %.str.5.sink1446 = phi ptr [ @.str.5, %2344 ], [ @.str.2, %2340 ]
  store i32 %2335, ptr %250, align 4, !tbaa !5
  %2346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2347 = load i32, ptr @test_count, align 4, !tbaa !5
  %2348 = load i32, ptr %196, align 4, !tbaa !5
  %2349 = call ptr @s2n_strerror(i32 noundef %2348, ptr noundef nonnull @.str.4) #12
  %2350 = load i32, ptr %196, align 4, !tbaa !5
  %2351 = call ptr @s2n_strerror_debug(i32 noundef %2350, ptr noundef nonnull @.str.4) #12
  %2352 = load i32, ptr %250, align 4, !tbaa !5
  %2353 = call ptr @strerror(i32 noundef %2352) #12
  %2354 = load i32, ptr %250, align 4, !tbaa !5
  %2355 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2346, ptr noundef nonnull %.str.5.sink1446, i32 noundef %2347, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2349, ptr noundef %2351, ptr noundef %2353, i32 noundef %2354) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2356:                                             ; preds = %2326
  %2357 = load i32, ptr @test_count, align 4, !tbaa !5
  %2358 = add nsw i32 %2357, 1
  store i32 %2358, ptr @test_count, align 4, !tbaa !5
  %bcmp546 = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %2302, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %2359 = icmp eq i32 %bcmp546, 0
  br i1 %2359, label %2382, label %2360

2360:                                             ; preds = %2356
  %2361 = load i32, ptr %250, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = call i32 @s2n_print_stacktrace(ptr noundef %2362) #12
  %2364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2365 = trunc nuw i8 %2364 to i1
  br i1 %2365, label %2366, label %2370

2366:                                             ; preds = %2360
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = call i32 @fileno(ptr noundef %2367) #12
  %2369 = call i32 @isatty(i32 noundef %2368) #12
  %.not547 = icmp eq i32 %2369, 0
  br i1 %.not547, label %2370, label %2371

2370:                                             ; preds = %2366, %2360
  br label %2371

2371:                                             ; preds = %2366, %2370
  %.str.5.sink1455 = phi ptr [ @.str.5, %2370 ], [ @.str.2, %2366 ]
  store i32 %2361, ptr %250, align 4, !tbaa !5
  %2372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2373 = load i32, ptr @test_count, align 4, !tbaa !5
  %2374 = load i32, ptr %196, align 4, !tbaa !5
  %2375 = call ptr @s2n_strerror(i32 noundef %2374, ptr noundef nonnull @.str.4) #12
  %2376 = load i32, ptr %196, align 4, !tbaa !5
  %2377 = call ptr @s2n_strerror_debug(i32 noundef %2376, ptr noundef nonnull @.str.4) #12
  %2378 = load i32, ptr %250, align 4, !tbaa !5
  %2379 = call ptr @strerror(i32 noundef %2378) #12
  %2380 = load i32, ptr %250, align 4, !tbaa !5
  %2381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2372, ptr noundef nonnull %.str.5.sink1455, i32 noundef %2373, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %2375, ptr noundef %2377, ptr noundef %2379, i32 noundef %2380) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2382:                                             ; preds = %2356
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %25) #12
  store i16 0, ptr %25, align 2, !tbaa !42
  %2383 = add nsw i32 %2357, 2
  store i32 %2383, ptr @test_count, align 4, !tbaa !5
  %2384 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %23, ptr noundef nonnull %25) #12
  %2385 = icmp eq i32 %2384, -1
  br i1 %2385, label %2386, label %2408

2386:                                             ; preds = %2382
  %2387 = load i32, ptr %250, align 4, !tbaa !5
  %2388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2389 = call i32 @s2n_print_stacktrace(ptr noundef %2388) #12
  %2390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2391 = trunc nuw i8 %2390 to i1
  br i1 %2391, label %2392, label %2396

2392:                                             ; preds = %2386
  %2393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2394 = call i32 @fileno(ptr noundef %2393) #12
  %2395 = call i32 @isatty(i32 noundef %2394) #12
  %.not666 = icmp eq i32 %2395, 0
  br i1 %.not666, label %2396, label %2397

2396:                                             ; preds = %2392, %2386
  br label %2397

2397:                                             ; preds = %2392, %2396
  %.str.5.sink1464 = phi ptr [ @.str.5, %2396 ], [ @.str.2, %2392 ]
  store i32 %2387, ptr %250, align 4, !tbaa !5
  %2398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2399 = load i32, ptr @test_count, align 4, !tbaa !5
  %2400 = load i32, ptr %196, align 4, !tbaa !5
  %2401 = call ptr @s2n_strerror(i32 noundef %2400, ptr noundef nonnull @.str.4) #12
  %2402 = load i32, ptr %196, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror_debug(i32 noundef %2402, ptr noundef nonnull @.str.4) #12
  %2404 = load i32, ptr %250, align 4, !tbaa !5
  %2405 = call ptr @strerror(i32 noundef %2404) #12
  %2406 = load i32, ptr %250, align 4, !tbaa !5
  %2407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2398, ptr noundef nonnull %.str.5.sink1464, i32 noundef %2399, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %2401, ptr noundef %2403, ptr noundef %2405, i32 noundef %2406) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2408:                                             ; preds = %2382
  %2409 = load i32, ptr @test_count, align 4, !tbaa !5
  %2410 = add nsw i32 %2409, 1
  store i32 %2410, ptr @test_count, align 4, !tbaa !5
  %2411 = load i16, ptr %25, align 2, !tbaa !42
  %2412 = load i16, ptr %24, align 8, !tbaa !50
  %2413 = icmp eq i16 %2411, %2412
  br i1 %2413, label %2436, label %2414

2414:                                             ; preds = %2408
  %2415 = load i32, ptr %250, align 4, !tbaa !5
  %2416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2417 = call i32 @s2n_print_stacktrace(ptr noundef %2416) #12
  %2418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2419 = trunc nuw i8 %2418 to i1
  br i1 %2419, label %2420, label %2424

2420:                                             ; preds = %2414
  %2421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2422 = call i32 @fileno(ptr noundef %2421) #12
  %2423 = call i32 @isatty(i32 noundef %2422) #12
  %.not548 = icmp eq i32 %2423, 0
  br i1 %.not548, label %2424, label %2425

2424:                                             ; preds = %2420, %2414
  br label %2425

2425:                                             ; preds = %2420, %2424
  %.str.5.sink1473 = phi ptr [ @.str.5, %2424 ], [ @.str.2, %2420 ]
  store i32 %2415, ptr %250, align 4, !tbaa !5
  %2426 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2427 = load i32, ptr @test_count, align 4, !tbaa !5
  %2428 = load i32, ptr %196, align 4, !tbaa !5
  %2429 = call ptr @s2n_strerror(i32 noundef %2428, ptr noundef nonnull @.str.4) #12
  %2430 = load i32, ptr %196, align 4, !tbaa !5
  %2431 = call ptr @s2n_strerror_debug(i32 noundef %2430, ptr noundef nonnull @.str.4) #12
  %2432 = load i32, ptr %250, align 4, !tbaa !5
  %2433 = call ptr @strerror(i32 noundef %2432) #12
  %2434 = load i32, ptr %250, align 4, !tbaa !5
  %2435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2426, ptr noundef nonnull %.str.5.sink1473, i32 noundef %2427, ptr noundef nonnull @.str.62, ptr noundef nonnull @.str.1, i32 noundef 306, ptr noundef %2429, ptr noundef %2431, ptr noundef %2433, i32 noundef %2434) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2436:                                             ; preds = %2408
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %26) #12
  store i16 0, ptr %26, align 2, !tbaa !42
  %2437 = add nsw i32 %2409, 2
  store i32 %2437, ptr @test_count, align 4, !tbaa !5
  %2438 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %23, ptr noundef nonnull %26) #12
  %2439 = icmp eq i32 %2438, -1
  br i1 %2439, label %2440, label %2462

2440:                                             ; preds = %2436
  %2441 = load i32, ptr %250, align 4, !tbaa !5
  %2442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2443 = call i32 @s2n_print_stacktrace(ptr noundef %2442) #12
  %2444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2445 = trunc nuw i8 %2444 to i1
  br i1 %2445, label %2446, label %2450

2446:                                             ; preds = %2440
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @fileno(ptr noundef %2447) #12
  %2449 = call i32 @isatty(i32 noundef %2448) #12
  %.not665 = icmp eq i32 %2449, 0
  br i1 %.not665, label %2450, label %2451

2450:                                             ; preds = %2446, %2440
  br label %2451

2451:                                             ; preds = %2446, %2450
  %.str.5.sink1482 = phi ptr [ @.str.5, %2450 ], [ @.str.2, %2446 ]
  store i32 %2441, ptr %250, align 4, !tbaa !5
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = load i32, ptr @test_count, align 4, !tbaa !5
  %2454 = load i32, ptr %196, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror(i32 noundef %2454, ptr noundef nonnull @.str.4) #12
  %2456 = load i32, ptr %196, align 4, !tbaa !5
  %2457 = call ptr @s2n_strerror_debug(i32 noundef %2456, ptr noundef nonnull @.str.4) #12
  %2458 = load i32, ptr %250, align 4, !tbaa !5
  %2459 = call ptr @strerror(i32 noundef %2458) #12
  %2460 = load i32, ptr %250, align 4, !tbaa !5
  %2461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2452, ptr noundef nonnull %.str.5.sink1482, i32 noundef %2453, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 310, ptr noundef %2455, ptr noundef %2457, ptr noundef %2459, i32 noundef %2460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2462:                                             ; preds = %2436
  %2463 = load i32, ptr @test_count, align 4, !tbaa !5
  %2464 = add nsw i32 %2463, 1
  store i32 %2464, ptr @test_count, align 4, !tbaa !5
  %2465 = load i16, ptr %26, align 2, !tbaa !42
  %2466 = zext i16 %2465 to i32
  %2467 = load i32, ptr %2273, align 4, !tbaa !51
  %2468 = load i32, ptr %2275, align 8, !tbaa !52
  %2469 = sub i32 %2467, %2468
  %2470 = icmp eq i32 %2469, %2466
  br i1 %2470, label %2493, label %2471

2471:                                             ; preds = %2462
  %2472 = load i32, ptr %250, align 4, !tbaa !5
  %2473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2474 = call i32 @s2n_print_stacktrace(ptr noundef %2473) #12
  %2475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2476 = trunc nuw i8 %2475 to i1
  br i1 %2476, label %2477, label %2481

2477:                                             ; preds = %2471
  %2478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2479 = call i32 @fileno(ptr noundef %2478) #12
  %2480 = call i32 @isatty(i32 noundef %2479) #12
  %.not549 = icmp eq i32 %2480, 0
  br i1 %.not549, label %2481, label %2482

2481:                                             ; preds = %2477, %2471
  br label %2482

2482:                                             ; preds = %2477, %2481
  %.str.5.sink1491 = phi ptr [ @.str.5, %2481 ], [ @.str.2, %2477 ]
  store i32 %2472, ptr %250, align 4, !tbaa !5
  %2483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2484 = load i32, ptr @test_count, align 4, !tbaa !5
  %2485 = load i32, ptr %196, align 4, !tbaa !5
  %2486 = call ptr @s2n_strerror(i32 noundef %2485, ptr noundef nonnull @.str.4) #12
  %2487 = load i32, ptr %196, align 4, !tbaa !5
  %2488 = call ptr @s2n_strerror_debug(i32 noundef %2487, ptr noundef nonnull @.str.4) #12
  %2489 = load i32, ptr %250, align 4, !tbaa !5
  %2490 = call ptr @strerror(i32 noundef %2489) #12
  %2491 = load i32, ptr %250, align 4, !tbaa !5
  %2492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2483, ptr noundef nonnull %.str.5.sink1491, i32 noundef %2484, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 311, ptr noundef %2486, ptr noundef %2488, ptr noundef %2490, i32 noundef %2491) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2493:                                             ; preds = %2462
  %2494 = add nsw i32 %2463, 2
  store i32 %2494, ptr @test_count, align 4, !tbaa !5
  %2495 = icmp eq i16 %2465, 20
  br i1 %2495, label %2518, label %2496

2496:                                             ; preds = %2493
  %2497 = load i32, ptr %250, align 4, !tbaa !5
  %2498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2499 = call i32 @s2n_print_stacktrace(ptr noundef %2498) #12
  %2500 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2501 = trunc nuw i8 %2500 to i1
  br i1 %2501, label %2502, label %2506

2502:                                             ; preds = %2496
  %2503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2504 = call i32 @fileno(ptr noundef %2503) #12
  %2505 = call i32 @isatty(i32 noundef %2504) #12
  %.not550 = icmp eq i32 %2505, 0
  br i1 %.not550, label %2506, label %2507

2506:                                             ; preds = %2502, %2496
  br label %2507

2507:                                             ; preds = %2502, %2506
  %.str.5.sink1500 = phi ptr [ @.str.5, %2506 ], [ @.str.2, %2502 ]
  store i32 %2497, ptr %250, align 4, !tbaa !5
  %2508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2509 = load i32, ptr @test_count, align 4, !tbaa !5
  %2510 = load i32, ptr %196, align 4, !tbaa !5
  %2511 = call ptr @s2n_strerror(i32 noundef %2510, ptr noundef nonnull @.str.4) #12
  %2512 = load i32, ptr %196, align 4, !tbaa !5
  %2513 = call ptr @s2n_strerror_debug(i32 noundef %2512, ptr noundef nonnull @.str.4) #12
  %2514 = load i32, ptr %250, align 4, !tbaa !5
  %2515 = call ptr @strerror(i32 noundef %2514) #12
  %2516 = load i32, ptr %250, align 4, !tbaa !5
  %2517 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2508, ptr noundef nonnull %.str.5.sink1500, i32 noundef %2509, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 312, ptr noundef %2511, ptr noundef %2513, ptr noundef %2515, i32 noundef %2516) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2518:                                             ; preds = %2493
  %2519 = call i32 @s2n_stuffer_free(ptr noundef nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %24) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %22) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %27) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %27, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %28, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %29) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %29, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_never_send, i64 40, i1 false)
  %2520 = getelementptr inbounds i8, ptr %29, i64 24
  store ptr @s2n_extension_never_send, ptr %2520, align 8, !tbaa !49
  %2521 = load i32, ptr @test_count, align 4, !tbaa !5
  %2522 = add nsw i32 %2521, 1
  store i32 %2522, ptr @test_count, align 4, !tbaa !5
  %2523 = call i32 @s2n_extension_send(ptr noundef nonnull %29, ptr noundef nonnull %27, ptr noundef nonnull %28) #12
  %2524 = icmp eq i32 %2523, -1
  br i1 %2524, label %2525, label %2547

2525:                                             ; preds = %2518
  %2526 = load i32, ptr %250, align 4, !tbaa !5
  %2527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2528 = call i32 @s2n_print_stacktrace(ptr noundef %2527) #12
  %2529 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2530 = trunc nuw i8 %2529 to i1
  br i1 %2530, label %2531, label %2535

2531:                                             ; preds = %2525
  %2532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2533 = call i32 @fileno(ptr noundef %2532) #12
  %2534 = call i32 @isatty(i32 noundef %2533) #12
  %.not664 = icmp eq i32 %2534, 0
  br i1 %.not664, label %2535, label %2536

2535:                                             ; preds = %2531, %2525
  br label %2536

2536:                                             ; preds = %2531, %2535
  %.str.5.sink1509 = phi ptr [ @.str.5, %2535 ], [ @.str.2, %2531 ]
  store i32 %2526, ptr %250, align 4, !tbaa !5
  %2537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2538 = load i32, ptr @test_count, align 4, !tbaa !5
  %2539 = load i32, ptr %196, align 4, !tbaa !5
  %2540 = call ptr @s2n_strerror(i32 noundef %2539, ptr noundef nonnull @.str.4) #12
  %2541 = load i32, ptr %196, align 4, !tbaa !5
  %2542 = call ptr @s2n_strerror_debug(i32 noundef %2541, ptr noundef nonnull @.str.4) #12
  %2543 = load i32, ptr %250, align 4, !tbaa !5
  %2544 = call ptr @strerror(i32 noundef %2543) #12
  %2545 = load i32, ptr %250, align 4, !tbaa !5
  %2546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2537, ptr noundef nonnull %.str.5.sink1509, i32 noundef %2538, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %2540, ptr noundef %2542, ptr noundef %2544, i32 noundef %2545) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2547:                                             ; preds = %2518
  %2548 = load i32, ptr @test_count, align 4, !tbaa !5
  %2549 = add nsw i32 %2548, 1
  store i32 %2549, ptr @test_count, align 4, !tbaa !5
  %2550 = getelementptr inbounds i8, ptr %28, i64 28
  %2551 = load i32, ptr %2550, align 4, !tbaa !51
  %2552 = getelementptr inbounds i8, ptr %28, i64 24
  %2553 = load i32, ptr %2552, align 8, !tbaa !52
  %2554 = icmp eq i32 %2551, %2553
  br i1 %2554, label %2577, label %2555

2555:                                             ; preds = %2547
  %2556 = load i32, ptr %250, align 4, !tbaa !5
  %2557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2558 = call i32 @s2n_print_stacktrace(ptr noundef %2557) #12
  %2559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2560 = trunc nuw i8 %2559 to i1
  br i1 %2560, label %2561, label %2565

2561:                                             ; preds = %2555
  %2562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2563 = call i32 @fileno(ptr noundef %2562) #12
  %2564 = call i32 @isatty(i32 noundef %2563) #12
  %.not551 = icmp eq i32 %2564, 0
  br i1 %.not551, label %2565, label %2566

2565:                                             ; preds = %2561, %2555
  br label %2566

2566:                                             ; preds = %2561, %2565
  %.str.5.sink1518 = phi ptr [ @.str.5, %2565 ], [ @.str.2, %2561 ]
  store i32 %2556, ptr %250, align 4, !tbaa !5
  %2567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2568 = load i32, ptr @test_count, align 4, !tbaa !5
  %2569 = load i32, ptr %196, align 4, !tbaa !5
  %2570 = call ptr @s2n_strerror(i32 noundef %2569, ptr noundef nonnull @.str.4) #12
  %2571 = load i32, ptr %196, align 4, !tbaa !5
  %2572 = call ptr @s2n_strerror_debug(i32 noundef %2571, ptr noundef nonnull @.str.4) #12
  %2573 = load i32, ptr %250, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #12
  %2575 = load i32, ptr %250, align 4, !tbaa !5
  %2576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2567, ptr noundef nonnull %.str.5.sink1518, i32 noundef %2568, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %2570, ptr noundef %2572, ptr noundef %2574, i32 noundef %2575) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2577:                                             ; preds = %2547
  %2578 = add nsw i32 %2548, 2
  store i32 %2578, ptr @test_count, align 4, !tbaa !5
  %2579 = getelementptr inbounds i8, ptr %27, i64 80
  %bcmp552 = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %2579, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %2580 = icmp eq i32 %bcmp552, 0
  br i1 %2580, label %2603, label %2581

2581:                                             ; preds = %2577
  %2582 = load i32, ptr %250, align 4, !tbaa !5
  %2583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2584 = call i32 @s2n_print_stacktrace(ptr noundef %2583) #12
  %2585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2586 = trunc nuw i8 %2585 to i1
  br i1 %2586, label %2587, label %2591

2587:                                             ; preds = %2581
  %2588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2589 = call i32 @fileno(ptr noundef %2588) #12
  %2590 = call i32 @isatty(i32 noundef %2589) #12
  %.not553 = icmp eq i32 %2590, 0
  br i1 %.not553, label %2591, label %2592

2591:                                             ; preds = %2587, %2581
  br label %2592

2592:                                             ; preds = %2587, %2591
  %.str.5.sink1527 = phi ptr [ @.str.5, %2591 ], [ @.str.2, %2587 ]
  store i32 %2582, ptr %250, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = load i32, ptr %196, align 4, !tbaa !5
  %2596 = call ptr @s2n_strerror(i32 noundef %2595, ptr noundef nonnull @.str.4) #12
  %2597 = load i32, ptr %196, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef nonnull @.str.4) #12
  %2599 = load i32, ptr %250, align 4, !tbaa !5
  %2600 = call ptr @strerror(i32 noundef %2599) #12
  %2601 = load i32, ptr %250, align 4, !tbaa !5
  %2602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef nonnull %.str.5.sink1527, i32 noundef %2594, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %2596, ptr noundef %2598, ptr noundef %2600, i32 noundef %2601) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2603:                                             ; preds = %2577
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %27) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %30, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %31) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %31, i8 0, i64 40, i1 false)
  %2604 = add nsw i32 %2548, 3
  store i32 %2604, ptr @test_count, align 4, !tbaa !5
  %2605 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %31, i32 noundef 20) #12
  %2606 = icmp eq i32 %2605, -1
  br i1 %2606, label %2607, label %2629

2607:                                             ; preds = %2603
  %2608 = load i32, ptr %250, align 4, !tbaa !5
  %2609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2610 = call i32 @s2n_print_stacktrace(ptr noundef %2609) #12
  %2611 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2612 = trunc nuw i8 %2611 to i1
  br i1 %2612, label %2613, label %2617

2613:                                             ; preds = %2607
  %2614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2615 = call i32 @fileno(ptr noundef %2614) #12
  %2616 = call i32 @isatty(i32 noundef %2615) #12
  %.not663 = icmp eq i32 %2616, 0
  br i1 %.not663, label %2617, label %2618

2617:                                             ; preds = %2613, %2607
  br label %2618

2618:                                             ; preds = %2613, %2617
  %.str.5.sink1536 = phi ptr [ @.str.5, %2617 ], [ @.str.2, %2613 ]
  store i32 %2608, ptr %250, align 4, !tbaa !5
  %2619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2620 = load i32, ptr @test_count, align 4, !tbaa !5
  %2621 = load i32, ptr %196, align 4, !tbaa !5
  %2622 = call ptr @s2n_strerror(i32 noundef %2621, ptr noundef nonnull @.str.4) #12
  %2623 = load i32, ptr %196, align 4, !tbaa !5
  %2624 = call ptr @s2n_strerror_debug(i32 noundef %2623, ptr noundef nonnull @.str.4) #12
  %2625 = load i32, ptr %250, align 4, !tbaa !5
  %2626 = call ptr @strerror(i32 noundef %2625) #12
  %2627 = load i32, ptr %250, align 4, !tbaa !5
  %2628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2619, ptr noundef nonnull %.str.5.sink1536, i32 noundef %2620, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 335, ptr noundef %2622, ptr noundef %2624, ptr noundef %2626, i32 noundef %2627) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2629:                                             ; preds = %2603
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %32) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %32, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_failure.65, i64 40, i1 false)
  %2630 = getelementptr inbounds i8, ptr %32, i64 8
  store ptr @s2n_extension_send_unimplemented, ptr %2630, align 8, !tbaa !48
  %2631 = load i32, ptr @test_count, align 4, !tbaa !5
  %2632 = add nsw i32 %2631, 1
  store i32 %2632, ptr @test_count, align 4, !tbaa !5
  %2633 = call i32 @s2n_extension_send(ptr noundef nonnull %32, ptr noundef nonnull %30, ptr noundef nonnull %31) #12
  %2634 = icmp eq i32 %2633, -1
  br i1 %2634, label %2657, label %2635

2635:                                             ; preds = %2629
  %2636 = load i32, ptr %250, align 4, !tbaa !5
  %2637 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2638 = call i32 @s2n_print_stacktrace(ptr noundef %2637) #12
  %2639 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2640 = trunc nuw i8 %2639 to i1
  br i1 %2640, label %2641, label %2645

2641:                                             ; preds = %2635
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @fileno(ptr noundef %2642) #12
  %2644 = call i32 @isatty(i32 noundef %2643) #12
  %.not554 = icmp eq i32 %2644, 0
  br i1 %.not554, label %2645, label %2646

2645:                                             ; preds = %2641, %2635
  br label %2646

2646:                                             ; preds = %2641, %2645
  %.str.5.sink1545 = phi ptr [ @.str.5, %2645 ], [ @.str.2, %2641 ]
  store i32 %2636, ptr %250, align 4, !tbaa !5
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = load i32, ptr @test_count, align 4, !tbaa !5
  %2649 = load i32, ptr %196, align 4, !tbaa !5
  %2650 = call ptr @s2n_strerror(i32 noundef %2649, ptr noundef nonnull @.str.4) #12
  %2651 = load i32, ptr %196, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror_debug(i32 noundef %2651, ptr noundef nonnull @.str.4) #12
  %2653 = load i32, ptr %250, align 4, !tbaa !5
  %2654 = call ptr @strerror(i32 noundef %2653) #12
  %2655 = load i32, ptr %250, align 4, !tbaa !5
  %2656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2647, ptr noundef nonnull %.str.5.sink1545, i32 noundef %2648, ptr noundef nonnull @.str.66, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %2650, ptr noundef %2652, ptr noundef %2654, i32 noundef %2655) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2657:                                             ; preds = %2629
  %2658 = load i32, ptr @test_count, align 4, !tbaa !5
  %2659 = add nsw i32 %2658, 1
  store i32 %2659, ptr @test_count, align 4, !tbaa !5
  %2660 = load i32, ptr %196, align 4, !tbaa !5
  %2661 = icmp eq i32 %2660, 402653231
  br i1 %2661, label %2684, label %2662

2662:                                             ; preds = %2657
  %2663 = load i32, ptr %250, align 4, !tbaa !5
  %2664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2665 = call i32 @s2n_print_stacktrace(ptr noundef %2664) #12
  %2666 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2667 = trunc nuw i8 %2666 to i1
  br i1 %2667, label %2668, label %2672

2668:                                             ; preds = %2662
  %2669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2670 = call i32 @fileno(ptr noundef %2669) #12
  %2671 = call i32 @isatty(i32 noundef %2670) #12
  %.not555 = icmp eq i32 %2671, 0
  br i1 %.not555, label %2672, label %2673

2672:                                             ; preds = %2668, %2662
  br label %2673

2673:                                             ; preds = %2668, %2672
  %.str.5.sink1554 = phi ptr [ @.str.5, %2672 ], [ @.str.2, %2668 ]
  store i32 %2663, ptr %250, align 4, !tbaa !5
  %2674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2675 = load i32, ptr @test_count, align 4, !tbaa !5
  %2676 = load i32, ptr %196, align 4, !tbaa !5
  %2677 = call ptr @s2n_strerror(i32 noundef %2676, ptr noundef nonnull @.str.4) #12
  %2678 = load i32, ptr %196, align 4, !tbaa !5
  %2679 = call ptr @s2n_strerror_debug(i32 noundef %2678, ptr noundef nonnull @.str.4) #12
  %2680 = load i32, ptr %250, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #12
  %2682 = load i32, ptr %250, align 4, !tbaa !5
  %2683 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2674, ptr noundef nonnull %.str.5.sink1554, i32 noundef %2675, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %2677, ptr noundef %2679, ptr noundef %2681, i32 noundef %2682) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2684:                                             ; preds = %2657
  %2685 = add nsw i32 %2658, 2
  store i32 %2685, ptr @test_count, align 4, !tbaa !5
  %2686 = call ptr @s2n_strerror_debug(i32 noundef 402653231, ptr noundef nonnull @.str.4) #12
  %2687 = icmp eq ptr %2686, null
  br i1 %2687, label %2688, label %2710

2688:                                             ; preds = %2684
  %2689 = load i32, ptr %250, align 4, !tbaa !5
  %2690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2691 = call i32 @s2n_print_stacktrace(ptr noundef %2690) #12
  %2692 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2693 = trunc nuw i8 %2692 to i1
  br i1 %2693, label %2694, label %2698

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

2698:                                             ; preds = %2694, %2688
  br label %2699

2699:                                             ; preds = %2694, %2698
  %.str.5.sink1563 = phi ptr [ @.str.5, %2698 ], [ @.str.2, %2694 ]
  store i32 %2689, ptr %250, align 4, !tbaa !5
  %2700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2701 = load i32, ptr @test_count, align 4, !tbaa !5
  %2702 = load i32, ptr %196, align 4, !tbaa !5
  %2703 = call ptr @s2n_strerror(i32 noundef %2702, ptr noundef nonnull @.str.4) #12
  %2704 = load i32, ptr %196, align 4, !tbaa !5
  %2705 = call ptr @s2n_strerror_debug(i32 noundef %2704, ptr noundef nonnull @.str.4) #12
  %2706 = load i32, ptr %250, align 4, !tbaa !5
  %2707 = call ptr @strerror(i32 noundef %2706) #12
  %2708 = load i32, ptr %250, align 4, !tbaa !5
  %2709 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2700, ptr noundef nonnull %.str.5.sink1563, i32 noundef %2701, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 340, ptr noundef %2703, ptr noundef %2705, ptr noundef %2707, i32 noundef %2708) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2710:                                             ; preds = %2684
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %2711 = load i32, ptr @test_count, align 4, !tbaa !5
  %2712 = add nsw i32 %2711, 1
  store i32 %2712, ptr @test_count, align 4, !tbaa !5
  %2713 = getelementptr inbounds i8, ptr %30, i64 80
  %bcmp556 = call i32 @bcmp(ptr noundef nonnull dereferenceable(22) %2713, ptr noundef nonnull dereferenceable(22) @empty_bitfield, i64 22)
  %2714 = icmp eq i32 %bcmp556, 0
  br i1 %2714, label %2737, label %2715

2715:                                             ; preds = %2710
  %2716 = load i32, ptr %250, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = call i32 @s2n_print_stacktrace(ptr noundef %2717) #12
  %2719 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2720 = trunc nuw i8 %2719 to i1
  br i1 %2720, label %2721, label %2725

2721:                                             ; preds = %2715
  %2722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2723 = call i32 @fileno(ptr noundef %2722) #12
  %2724 = call i32 @isatty(i32 noundef %2723) #12
  %.not557 = icmp eq i32 %2724, 0
  br i1 %.not557, label %2725, label %2726

2725:                                             ; preds = %2721, %2715
  br label %2726

2726:                                             ; preds = %2721, %2725
  %.str.5.sink1572 = phi ptr [ @.str.5, %2725 ], [ @.str.2, %2721 ]
  store i32 %2716, ptr %250, align 4, !tbaa !5
  %2727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = load i32, ptr %196, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror(i32 noundef %2729, ptr noundef nonnull @.str.4) #12
  %2731 = load i32, ptr %196, align 4, !tbaa !5
  %2732 = call ptr @s2n_strerror_debug(i32 noundef %2731, ptr noundef nonnull @.str.4) #12
  %2733 = load i32, ptr %250, align 4, !tbaa !5
  %2734 = call ptr @strerror(i32 noundef %2733) #12
  %2735 = load i32, ptr %250, align 4, !tbaa !5
  %2736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2727, ptr noundef nonnull %.str.5.sink1572, i32 noundef %2728, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %2730, ptr noundef %2732, ptr noundef %2734, i32 noundef %2735) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2737:                                             ; preds = %2710
  %2738 = call i32 @s2n_stuffer_free(ptr noundef nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %32) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %31) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %30) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %33) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %33, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %34, i8 0, i64 40, i1 false)
  %2739 = load i32, ptr @test_count, align 4, !tbaa !5
  %2740 = add nsw i32 %2739, 1
  store i32 %2740, ptr @test_count, align 4, !tbaa !5
  %2741 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %34, i32 noundef 0) #12
  %2742 = icmp eq i32 %2741, -1
  br i1 %2742, label %2743, label %2765

2743:                                             ; preds = %2737
  %2744 = load i32, ptr %250, align 4, !tbaa !5
  %2745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2746 = call i32 @s2n_print_stacktrace(ptr noundef %2745) #12
  %2747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2748 = trunc nuw i8 %2747 to i1
  br i1 %2748, label %2749, label %2753

2749:                                             ; preds = %2743
  %2750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2751 = call i32 @fileno(ptr noundef %2750) #12
  %2752 = call i32 @isatty(i32 noundef %2751) #12
  %.not661 = icmp eq i32 %2752, 0
  br i1 %.not661, label %2753, label %2754

2753:                                             ; preds = %2749, %2743
  br label %2754

2754:                                             ; preds = %2749, %2753
  %.str.5.sink1581 = phi ptr [ @.str.5, %2753 ], [ @.str.2, %2749 ]
  store i32 %2744, ptr %250, align 4, !tbaa !5
  %2755 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2756 = load i32, ptr @test_count, align 4, !tbaa !5
  %2757 = load i32, ptr %196, align 4, !tbaa !5
  %2758 = call ptr @s2n_strerror(i32 noundef %2757, ptr noundef nonnull @.str.4) #12
  %2759 = load i32, ptr %196, align 4, !tbaa !5
  %2760 = call ptr @s2n_strerror_debug(i32 noundef %2759, ptr noundef nonnull @.str.4) #12
  %2761 = load i32, ptr %250, align 4, !tbaa !5
  %2762 = call ptr @strerror(i32 noundef %2761) #12
  %2763 = load i32, ptr %250, align 4, !tbaa !5
  %2764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2755, ptr noundef nonnull %.str.5.sink1581, i32 noundef %2756, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 351, ptr noundef %2758, ptr noundef %2760, ptr noundef %2762, i32 noundef %2763) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2765:                                             ; preds = %2737
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %35, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_too_much_data, i64 40, i1 false)
  %2766 = getelementptr inbounds i8, ptr %35, i64 8
  store ptr @test_send_too_much_data, ptr %2766, align 8, !tbaa !48
  %2767 = load i32, ptr @test_count, align 4, !tbaa !5
  %2768 = add nsw i32 %2767, 1
  store i32 %2768, ptr @test_count, align 4, !tbaa !5
  %2769 = call i32 @s2n_extension_send(ptr noundef nonnull %35, ptr noundef nonnull %33, ptr noundef nonnull %34) #12
  %2770 = icmp eq i32 %2769, -1
  br i1 %2770, label %2793, label %2771

2771:                                             ; preds = %2765
  %2772 = load i32, ptr %250, align 4, !tbaa !5
  %2773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2774 = call i32 @s2n_print_stacktrace(ptr noundef %2773) #12
  %2775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2776 = trunc nuw i8 %2775 to i1
  br i1 %2776, label %2777, label %2781

2777:                                             ; preds = %2771
  %2778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2779 = call i32 @fileno(ptr noundef %2778) #12
  %2780 = call i32 @isatty(i32 noundef %2779) #12
  %.not558 = icmp eq i32 %2780, 0
  br i1 %.not558, label %2781, label %2782

2781:                                             ; preds = %2777, %2771
  br label %2782

2782:                                             ; preds = %2777, %2781
  %.str.5.sink1590 = phi ptr [ @.str.5, %2781 ], [ @.str.2, %2777 ]
  store i32 %2772, ptr %250, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = load i32, ptr %196, align 4, !tbaa !5
  %2786 = call ptr @s2n_strerror(i32 noundef %2785, ptr noundef nonnull @.str.4) #12
  %2787 = load i32, ptr %196, align 4, !tbaa !5
  %2788 = call ptr @s2n_strerror_debug(i32 noundef %2787, ptr noundef nonnull @.str.4) #12
  %2789 = load i32, ptr %250, align 4, !tbaa !5
  %2790 = call ptr @strerror(i32 noundef %2789) #12
  %2791 = load i32, ptr %250, align 4, !tbaa !5
  %2792 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef nonnull %.str.5.sink1590, i32 noundef %2784, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2786, ptr noundef %2788, ptr noundef %2790, i32 noundef %2791) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2793:                                             ; preds = %2765
  %2794 = load i32, ptr @test_count, align 4, !tbaa !5
  %2795 = add nsw i32 %2794, 1
  store i32 %2795, ptr @test_count, align 4, !tbaa !5
  %2796 = load i32, ptr %196, align 4, !tbaa !5
  %2797 = icmp eq i32 %2796, 402653220
  br i1 %2797, label %2820, label %2798

2798:                                             ; preds = %2793
  %2799 = load i32, ptr %250, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = call i32 @s2n_print_stacktrace(ptr noundef %2800) #12
  %2802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2803 = trunc nuw i8 %2802 to i1
  br i1 %2803, label %2804, label %2808

2804:                                             ; preds = %2798
  %2805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2806 = call i32 @fileno(ptr noundef %2805) #12
  %2807 = call i32 @isatty(i32 noundef %2806) #12
  %.not559 = icmp eq i32 %2807, 0
  br i1 %.not559, label %2808, label %2809

2808:                                             ; preds = %2804, %2798
  br label %2809

2809:                                             ; preds = %2804, %2808
  %.str.5.sink1599 = phi ptr [ @.str.5, %2808 ], [ @.str.2, %2804 ]
  store i32 %2799, ptr %250, align 4, !tbaa !5
  %2810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2811 = load i32, ptr @test_count, align 4, !tbaa !5
  %2812 = load i32, ptr %196, align 4, !tbaa !5
  %2813 = call ptr @s2n_strerror(i32 noundef %2812, ptr noundef nonnull @.str.4) #12
  %2814 = load i32, ptr %196, align 4, !tbaa !5
  %2815 = call ptr @s2n_strerror_debug(i32 noundef %2814, ptr noundef nonnull @.str.4) #12
  %2816 = load i32, ptr %250, align 4, !tbaa !5
  %2817 = call ptr @strerror(i32 noundef %2816) #12
  %2818 = load i32, ptr %250, align 4, !tbaa !5
  %2819 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2810, ptr noundef nonnull %.str.5.sink1599, i32 noundef %2811, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2813, ptr noundef %2815, ptr noundef %2817, i32 noundef %2818) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2820:                                             ; preds = %2793
  %2821 = add nsw i32 %2794, 2
  store i32 %2821, ptr @test_count, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef 402653220, ptr noundef nonnull @.str.4) #12
  %2823 = icmp eq ptr %2822, null
  br i1 %2823, label %2824, label %2846

2824:                                             ; preds = %2820
  %2825 = load i32, ptr %250, align 4, !tbaa !5
  %2826 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2827 = call i32 @s2n_print_stacktrace(ptr noundef %2826) #12
  %2828 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2829 = trunc nuw i8 %2828 to i1
  br i1 %2829, label %2830, label %2834

2830:                                             ; preds = %2824
  %2831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2832 = call i32 @fileno(ptr noundef %2831) #12
  %2833 = call i32 @isatty(i32 noundef %2832) #12
  %.not660 = icmp eq i32 %2833, 0
  br i1 %.not660, label %2834, label %2835

2834:                                             ; preds = %2830, %2824
  br label %2835

2835:                                             ; preds = %2830, %2834
  %.str.5.sink1608 = phi ptr [ @.str.5, %2834 ], [ @.str.2, %2830 ]
  store i32 %2825, ptr %250, align 4, !tbaa !5
  %2836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2837 = load i32, ptr @test_count, align 4, !tbaa !5
  %2838 = load i32, ptr %196, align 4, !tbaa !5
  %2839 = call ptr @s2n_strerror(i32 noundef %2838, ptr noundef nonnull @.str.4) #12
  %2840 = load i32, ptr %196, align 4, !tbaa !5
  %2841 = call ptr @s2n_strerror_debug(i32 noundef %2840, ptr noundef nonnull @.str.4) #12
  %2842 = load i32, ptr %250, align 4, !tbaa !5
  %2843 = call ptr @strerror(i32 noundef %2842) #12
  %2844 = load i32, ptr %250, align 4, !tbaa !5
  %2845 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2836, ptr noundef nonnull %.str.5.sink1608, i32 noundef %2837, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 357, ptr noundef %2839, ptr noundef %2841, ptr noundef %2843, i32 noundef %2844) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2846:                                             ; preds = %2820
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %2847 = call i32 @s2n_stuffer_free(ptr noundef nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %34) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %33) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %36) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %36, i8 0, i64 4184, i1 false)
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = add nsw i32 %2848, 1
  store i32 %2849, ptr @test_count, align 4, !tbaa !5
  %2850 = call i32 @s2n_extension_is_missing(ptr noundef null, ptr noundef nonnull %36) #12
  %2851 = icmp eq i32 %2850, -1
  br i1 %2851, label %2874, label %2852

2852:                                             ; preds = %2846
  %2853 = load i32, ptr %250, align 4, !tbaa !5
  %2854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2855 = call i32 @s2n_print_stacktrace(ptr noundef %2854) #12
  %2856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2857 = trunc nuw i8 %2856 to i1
  br i1 %2857, label %2858, label %2862

2858:                                             ; preds = %2852
  %2859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2860 = call i32 @fileno(ptr noundef %2859) #12
  %2861 = call i32 @isatty(i32 noundef %2860) #12
  %.not560 = icmp eq i32 %2861, 0
  br i1 %.not560, label %2862, label %2863

2862:                                             ; preds = %2858, %2852
  br label %2863

2863:                                             ; preds = %2858, %2862
  %.str.5.sink1617 = phi ptr [ @.str.5, %2862 ], [ @.str.2, %2858 ]
  store i32 %2853, ptr %250, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = load i32, ptr %196, align 4, !tbaa !5
  %2867 = call ptr @s2n_strerror(i32 noundef %2866, ptr noundef nonnull @.str.4) #12
  %2868 = load i32, ptr %196, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror_debug(i32 noundef %2868, ptr noundef nonnull @.str.4) #12
  %2870 = load i32, ptr %250, align 4, !tbaa !5
  %2871 = call ptr @strerror(i32 noundef %2870) #12
  %2872 = load i32, ptr %250, align 4, !tbaa !5
  %2873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2864, ptr noundef nonnull %.str.5.sink1617, i32 noundef %2865, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2867, ptr noundef %2869, ptr noundef %2871, i32 noundef %2872) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2874:                                             ; preds = %2846
  %2875 = load i32, ptr @test_count, align 4, !tbaa !5
  %2876 = add nsw i32 %2875, 1
  store i32 %2876, ptr @test_count, align 4, !tbaa !5
  %2877 = load i32, ptr %196, align 4, !tbaa !5
  %2878 = icmp eq i32 %2877, 0
  br i1 %2878, label %2879, label %2901

2879:                                             ; preds = %2874
  %2880 = load i32, ptr %250, align 4, !tbaa !5
  %2881 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2882 = call i32 @s2n_print_stacktrace(ptr noundef %2881) #12
  %2883 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2884 = trunc nuw i8 %2883 to i1
  br i1 %2884, label %2885, label %2889

2885:                                             ; preds = %2879
  %2886 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2887 = call i32 @fileno(ptr noundef %2886) #12
  %2888 = call i32 @isatty(i32 noundef %2887) #12
  %.not659 = icmp eq i32 %2888, 0
  br i1 %.not659, label %2889, label %2890

2889:                                             ; preds = %2885, %2879
  br label %2890

2890:                                             ; preds = %2885, %2889
  %.str.5.sink1626 = phi ptr [ @.str.5, %2889 ], [ @.str.2, %2885 ]
  store i32 %2880, ptr %250, align 4, !tbaa !5
  %2891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2892 = load i32, ptr @test_count, align 4, !tbaa !5
  %2893 = load i32, ptr %196, align 4, !tbaa !5
  %2894 = call ptr @s2n_strerror(i32 noundef %2893, ptr noundef nonnull @.str.4) #12
  %2895 = load i32, ptr %196, align 4, !tbaa !5
  %2896 = call ptr @s2n_strerror_debug(i32 noundef %2895, ptr noundef nonnull @.str.4) #12
  %2897 = load i32, ptr %250, align 4, !tbaa !5
  %2898 = call ptr @strerror(i32 noundef %2897) #12
  %2899 = load i32, ptr %250, align 4, !tbaa !5
  %2900 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2891, ptr noundef nonnull %.str.5.sink1626, i32 noundef %2892, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2894, ptr noundef %2896, ptr noundef %2898, i32 noundef %2899) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2901:                                             ; preds = %2874
  %2902 = add nsw i32 %2875, 2
  store i32 %2902, ptr @test_count, align 4, !tbaa !5
  %2903 = call ptr @s2n_strerror_debug(i32 noundef %2877, ptr noundef nonnull @.str.4) #12
  %2904 = icmp eq ptr %2903, null
  br i1 %2904, label %2905, label %2927

2905:                                             ; preds = %2901
  %2906 = load i32, ptr %250, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = call i32 @s2n_print_stacktrace(ptr noundef %2907) #12
  %2909 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2910 = trunc nuw i8 %2909 to i1
  br i1 %2910, label %2911, label %2915

2911:                                             ; preds = %2905
  %2912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2913 = call i32 @fileno(ptr noundef %2912) #12
  %2914 = call i32 @isatty(i32 noundef %2913) #12
  %.not658 = icmp eq i32 %2914, 0
  br i1 %.not658, label %2915, label %2916

2915:                                             ; preds = %2911, %2905
  br label %2916

2916:                                             ; preds = %2911, %2915
  %.str.5.sink1635 = phi ptr [ @.str.5, %2915 ], [ @.str.2, %2911 ]
  store i32 %2906, ptr %250, align 4, !tbaa !5
  %2917 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2918 = load i32, ptr @test_count, align 4, !tbaa !5
  %2919 = load i32, ptr %196, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror(i32 noundef %2919, ptr noundef nonnull @.str.4) #12
  %2921 = load i32, ptr %196, align 4, !tbaa !5
  %2922 = call ptr @s2n_strerror_debug(i32 noundef %2921, ptr noundef nonnull @.str.4) #12
  %2923 = load i32, ptr %250, align 4, !tbaa !5
  %2924 = call ptr @strerror(i32 noundef %2923) #12
  %2925 = load i32, ptr %250, align 4, !tbaa !5
  %2926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2917, ptr noundef nonnull %.str.5.sink1635, i32 noundef %2918, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 369, ptr noundef %2920, ptr noundef %2922, ptr noundef %2924, i32 noundef %2925) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2927:                                             ; preds = %2901
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %2928 = load i32, ptr @test_count, align 4, !tbaa !5
  %2929 = add nsw i32 %2928, 1
  store i32 %2929, ptr @test_count, align 4, !tbaa !5
  %2930 = call i32 @s2n_extension_is_missing(ptr noundef nonnull @test_extension_type, ptr noundef null) #12
  %2931 = icmp eq i32 %2930, -1
  br i1 %2931, label %2954, label %2932

2932:                                             ; preds = %2927
  %2933 = load i32, ptr %250, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = call i32 @s2n_print_stacktrace(ptr noundef %2934) #12
  %2936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2937 = trunc nuw i8 %2936 to i1
  br i1 %2937, label %2938, label %2942

2938:                                             ; preds = %2932
  %2939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2940 = call i32 @fileno(ptr noundef %2939) #12
  %2941 = call i32 @isatty(i32 noundef %2940) #12
  %.not561 = icmp eq i32 %2941, 0
  br i1 %.not561, label %2942, label %2943

2942:                                             ; preds = %2938, %2932
  br label %2943

2943:                                             ; preds = %2938, %2942
  %.str.5.sink1644 = phi ptr [ @.str.5, %2942 ], [ @.str.2, %2938 ]
  store i32 %2933, ptr %250, align 4, !tbaa !5
  %2944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2945 = load i32, ptr @test_count, align 4, !tbaa !5
  %2946 = load i32, ptr %196, align 4, !tbaa !5
  %2947 = call ptr @s2n_strerror(i32 noundef %2946, ptr noundef nonnull @.str.4) #12
  %2948 = load i32, ptr %196, align 4, !tbaa !5
  %2949 = call ptr @s2n_strerror_debug(i32 noundef %2948, ptr noundef nonnull @.str.4) #12
  %2950 = load i32, ptr %250, align 4, !tbaa !5
  %2951 = call ptr @strerror(i32 noundef %2950) #12
  %2952 = load i32, ptr %250, align 4, !tbaa !5
  %2953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2944, ptr noundef nonnull %.str.5.sink1644, i32 noundef %2945, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %2947, ptr noundef %2949, ptr noundef %2951, i32 noundef %2952) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2954:                                             ; preds = %2927
  %2955 = load i32, ptr @test_count, align 4, !tbaa !5
  %2956 = add nsw i32 %2955, 1
  store i32 %2956, ptr @test_count, align 4, !tbaa !5
  %2957 = load i32, ptr %196, align 4, !tbaa !5
  %2958 = icmp eq i32 %2957, 0
  br i1 %2958, label %2959, label %2981

2959:                                             ; preds = %2954
  %2960 = load i32, ptr %250, align 4, !tbaa !5
  %2961 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2962 = call i32 @s2n_print_stacktrace(ptr noundef %2961) #12
  %2963 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2964 = trunc nuw i8 %2963 to i1
  br i1 %2964, label %2965, label %2969

2965:                                             ; preds = %2959
  %2966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2967 = call i32 @fileno(ptr noundef %2966) #12
  %2968 = call i32 @isatty(i32 noundef %2967) #12
  %.not657 = icmp eq i32 %2968, 0
  br i1 %.not657, label %2969, label %2970

2969:                                             ; preds = %2965, %2959
  br label %2970

2970:                                             ; preds = %2965, %2969
  %.str.5.sink1653 = phi ptr [ @.str.5, %2969 ], [ @.str.2, %2965 ]
  store i32 %2960, ptr %250, align 4, !tbaa !5
  %2971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2972 = load i32, ptr @test_count, align 4, !tbaa !5
  %2973 = load i32, ptr %196, align 4, !tbaa !5
  %2974 = call ptr @s2n_strerror(i32 noundef %2973, ptr noundef nonnull @.str.4) #12
  %2975 = load i32, ptr %196, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror_debug(i32 noundef %2975, ptr noundef nonnull @.str.4) #12
  %2977 = load i32, ptr %250, align 4, !tbaa !5
  %2978 = call ptr @strerror(i32 noundef %2977) #12
  %2979 = load i32, ptr %250, align 4, !tbaa !5
  %2980 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2971, ptr noundef nonnull %.str.5.sink1653, i32 noundef %2972, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %2974, ptr noundef %2976, ptr noundef %2978, i32 noundef %2979) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2981:                                             ; preds = %2954
  %2982 = add nsw i32 %2955, 2
  store i32 %2982, ptr @test_count, align 4, !tbaa !5
  %2983 = call ptr @s2n_strerror_debug(i32 noundef %2957, ptr noundef nonnull @.str.4) #12
  %2984 = icmp eq ptr %2983, null
  br i1 %2984, label %2985, label %3007

2985:                                             ; preds = %2981
  %2986 = load i32, ptr %250, align 4, !tbaa !5
  %2987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2988 = call i32 @s2n_print_stacktrace(ptr noundef %2987) #12
  %2989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2990 = trunc nuw i8 %2989 to i1
  br i1 %2990, label %2991, label %2995

2991:                                             ; preds = %2985
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @fileno(ptr noundef %2992) #12
  %2994 = call i32 @isatty(i32 noundef %2993) #12
  %.not656 = icmp eq i32 %2994, 0
  br i1 %.not656, label %2995, label %2996

2995:                                             ; preds = %2991, %2985
  br label %2996

2996:                                             ; preds = %2991, %2995
  %.str.5.sink1662 = phi ptr [ @.str.5, %2995 ], [ @.str.2, %2991 ]
  store i32 %2986, ptr %250, align 4, !tbaa !5
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = load i32, ptr @test_count, align 4, !tbaa !5
  %2999 = load i32, ptr %196, align 4, !tbaa !5
  %3000 = call ptr @s2n_strerror(i32 noundef %2999, ptr noundef nonnull @.str.4) #12
  %3001 = load i32, ptr %196, align 4, !tbaa !5
  %3002 = call ptr @s2n_strerror_debug(i32 noundef %3001, ptr noundef nonnull @.str.4) #12
  %3003 = load i32, ptr %250, align 4, !tbaa !5
  %3004 = call ptr @strerror(i32 noundef %3003) #12
  %3005 = load i32, ptr %250, align 4, !tbaa !5
  %3006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2997, ptr noundef nonnull %.str.5.sink1662, i32 noundef %2998, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 370, ptr noundef %3000, ptr noundef %3002, ptr noundef %3004, i32 noundef %3005) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3007:                                             ; preds = %2981
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %37) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %37, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_null_if_missing, i64 32, i1 false)
  %3008 = getelementptr inbounds i8, ptr %37, i64 32
  store ptr null, ptr %3008, align 8, !tbaa !53
  %3009 = load i32, ptr @test_count, align 4, !tbaa !5
  %3010 = add nsw i32 %3009, 1
  store i32 %3010, ptr @test_count, align 4, !tbaa !5
  %3011 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %37, ptr noundef nonnull %36) #12
  %3012 = icmp eq i32 %3011, -1
  br i1 %3012, label %3035, label %3013

3013:                                             ; preds = %3007
  %3014 = load i32, ptr %250, align 4, !tbaa !5
  %3015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3016 = call i32 @s2n_print_stacktrace(ptr noundef %3015) #12
  %3017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3018 = trunc nuw i8 %3017 to i1
  br i1 %3018, label %3019, label %3023

3019:                                             ; preds = %3013
  %3020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3021 = call i32 @fileno(ptr noundef %3020) #12
  %3022 = call i32 @isatty(i32 noundef %3021) #12
  %.not562 = icmp eq i32 %3022, 0
  br i1 %.not562, label %3023, label %3024

3023:                                             ; preds = %3019, %3013
  br label %3024

3024:                                             ; preds = %3019, %3023
  %.str.5.sink1671 = phi ptr [ @.str.5, %3023 ], [ @.str.2, %3019 ]
  store i32 %3014, ptr %250, align 4, !tbaa !5
  %3025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3026 = load i32, ptr @test_count, align 4, !tbaa !5
  %3027 = load i32, ptr %196, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror(i32 noundef %3027, ptr noundef nonnull @.str.4) #12
  %3029 = load i32, ptr %196, align 4, !tbaa !5
  %3030 = call ptr @s2n_strerror_debug(i32 noundef %3029, ptr noundef nonnull @.str.4) #12
  %3031 = load i32, ptr %250, align 4, !tbaa !5
  %3032 = call ptr @strerror(i32 noundef %3031) #12
  %3033 = load i32, ptr %250, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3025, ptr noundef nonnull %.str.5.sink1671, i32 noundef %3026, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3028, ptr noundef %3030, ptr noundef %3032, i32 noundef %3033) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3035:                                             ; preds = %3007
  %3036 = load i32, ptr @test_count, align 4, !tbaa !5
  %3037 = add nsw i32 %3036, 1
  store i32 %3037, ptr @test_count, align 4, !tbaa !5
  %3038 = load i32, ptr %196, align 4, !tbaa !5
  %3039 = icmp eq i32 %3038, 0
  br i1 %3039, label %3040, label %3062

3040:                                             ; preds = %3035
  %3041 = load i32, ptr %250, align 4, !tbaa !5
  %3042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3043 = call i32 @s2n_print_stacktrace(ptr noundef %3042) #12
  %3044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3045 = trunc nuw i8 %3044 to i1
  br i1 %3045, label %3046, label %3050

3046:                                             ; preds = %3040
  %3047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3048 = call i32 @fileno(ptr noundef %3047) #12
  %3049 = call i32 @isatty(i32 noundef %3048) #12
  %.not655 = icmp eq i32 %3049, 0
  br i1 %.not655, label %3050, label %3051

3050:                                             ; preds = %3046, %3040
  br label %3051

3051:                                             ; preds = %3046, %3050
  %.str.5.sink1680 = phi ptr [ @.str.5, %3050 ], [ @.str.2, %3046 ]
  store i32 %3041, ptr %250, align 4, !tbaa !5
  %3052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3053 = load i32, ptr @test_count, align 4, !tbaa !5
  %3054 = load i32, ptr %196, align 4, !tbaa !5
  %3055 = call ptr @s2n_strerror(i32 noundef %3054, ptr noundef nonnull @.str.4) #12
  %3056 = load i32, ptr %196, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror_debug(i32 noundef %3056, ptr noundef nonnull @.str.4) #12
  %3058 = load i32, ptr %250, align 4, !tbaa !5
  %3059 = call ptr @strerror(i32 noundef %3058) #12
  %3060 = load i32, ptr %250, align 4, !tbaa !5
  %3061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3052, ptr noundef nonnull %.str.5.sink1680, i32 noundef %3053, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3055, ptr noundef %3057, ptr noundef %3059, i32 noundef %3060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3062:                                             ; preds = %3035
  %3063 = add nsw i32 %3036, 2
  store i32 %3063, ptr @test_count, align 4, !tbaa !5
  %3064 = call ptr @s2n_strerror_debug(i32 noundef %3038, ptr noundef nonnull @.str.4) #12
  %3065 = icmp eq ptr %3064, null
  br i1 %3065, label %3066, label %3088

3066:                                             ; preds = %3062
  %3067 = load i32, ptr %250, align 4, !tbaa !5
  %3068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3069 = call i32 @s2n_print_stacktrace(ptr noundef %3068) #12
  %3070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3071 = trunc nuw i8 %3070 to i1
  br i1 %3071, label %3072, label %3076

3072:                                             ; preds = %3066
  %3073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3074 = call i32 @fileno(ptr noundef %3073) #12
  %3075 = call i32 @isatty(i32 noundef %3074) #12
  %.not654 = icmp eq i32 %3075, 0
  br i1 %.not654, label %3076, label %3077

3076:                                             ; preds = %3072, %3066
  br label %3077

3077:                                             ; preds = %3072, %3076
  %.str.5.sink1689 = phi ptr [ @.str.5, %3076 ], [ @.str.2, %3072 ]
  store i32 %3067, ptr %250, align 4, !tbaa !5
  %3078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3079 = load i32, ptr @test_count, align 4, !tbaa !5
  %3080 = load i32, ptr %196, align 4, !tbaa !5
  %3081 = call ptr @s2n_strerror(i32 noundef %3080, ptr noundef nonnull @.str.4) #12
  %3082 = load i32, ptr %196, align 4, !tbaa !5
  %3083 = call ptr @s2n_strerror_debug(i32 noundef %3082, ptr noundef nonnull @.str.4) #12
  %3084 = load i32, ptr %250, align 4, !tbaa !5
  %3085 = call ptr @strerror(i32 noundef %3084) #12
  %3086 = load i32, ptr %250, align 4, !tbaa !5
  %3087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3078, ptr noundef nonnull %.str.5.sink1689, i32 noundef %3079, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3081, ptr noundef %3083, ptr noundef %3085, i32 noundef %3086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3088:                                             ; preds = %3062
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %37) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %36) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %38) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %38, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %39) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %39, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_noop_if_missing, i64 32, i1 false)
  %3089 = getelementptr inbounds i8, ptr %39, i64 32
  store ptr @s2n_extension_noop_if_missing, ptr %3089, align 8, !tbaa !53
  %3090 = getelementptr inbounds i8, ptr %39, i64 2
  %3091 = load i8, ptr %3090, align 2
  %3092 = and i8 %3091, -2
  store i8 %3092, ptr %3090, align 2
  %3093 = load i32, ptr @test_count, align 4, !tbaa !5
  %3094 = add nsw i32 %3093, 1
  store i32 %3094, ptr @test_count, align 4, !tbaa !5
  %3095 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %39, ptr noundef nonnull %38) #12
  %3096 = icmp eq i32 %3095, -1
  br i1 %3096, label %3097, label %3119

3097:                                             ; preds = %3088
  %3098 = load i32, ptr %250, align 4, !tbaa !5
  %3099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3100 = call i32 @s2n_print_stacktrace(ptr noundef %3099) #12
  %3101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3102 = trunc nuw i8 %3101 to i1
  br i1 %3102, label %3103, label %3107

3103:                                             ; preds = %3097
  %3104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3105 = call i32 @fileno(ptr noundef %3104) #12
  %3106 = call i32 @isatty(i32 noundef %3105) #12
  %.not653 = icmp eq i32 %3106, 0
  br i1 %.not653, label %3107, label %3108

3107:                                             ; preds = %3103, %3097
  br label %3108

3108:                                             ; preds = %3103, %3107
  %.str.5.sink1698 = phi ptr [ @.str.5, %3107 ], [ @.str.2, %3103 ]
  store i32 %3098, ptr %250, align 4, !tbaa !5
  %3109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = load i32, ptr %196, align 4, !tbaa !5
  %3112 = call ptr @s2n_strerror(i32 noundef %3111, ptr noundef nonnull @.str.4) #12
  %3113 = load i32, ptr %196, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror_debug(i32 noundef %3113, ptr noundef nonnull @.str.4) #12
  %3115 = load i32, ptr %250, align 4, !tbaa !5
  %3116 = call ptr @strerror(i32 noundef %3115) #12
  %3117 = load i32, ptr %250, align 4, !tbaa !5
  %3118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3109, ptr noundef nonnull %.str.5.sink1698, i32 noundef %3110, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 385, ptr noundef %3112, ptr noundef %3114, ptr noundef %3116, i32 noundef %3117) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3119:                                             ; preds = %3088
  %3120 = load i8, ptr %3090, align 2
  %3121 = or i8 %3120, 1
  store i8 %3121, ptr %3090, align 2
  %3122 = load i32, ptr @test_count, align 4, !tbaa !5
  %3123 = add nsw i32 %3122, 1
  store i32 %3123, ptr @test_count, align 4, !tbaa !5
  %3124 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %39, ptr noundef nonnull %38) #12
  %3125 = icmp eq i32 %3124, -1
  br i1 %3125, label %3126, label %3148

3126:                                             ; preds = %3119
  %3127 = load i32, ptr %250, align 4, !tbaa !5
  %3128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3129 = call i32 @s2n_print_stacktrace(ptr noundef %3128) #12
  %3130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3131 = trunc nuw i8 %3130 to i1
  br i1 %3131, label %3132, label %3136

3132:                                             ; preds = %3126
  %3133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3134 = call i32 @fileno(ptr noundef %3133) #12
  %3135 = call i32 @isatty(i32 noundef %3134) #12
  %.not652 = icmp eq i32 %3135, 0
  br i1 %.not652, label %3136, label %3137

3136:                                             ; preds = %3132, %3126
  br label %3137

3137:                                             ; preds = %3132, %3136
  %.str.5.sink1707 = phi ptr [ @.str.5, %3136 ], [ @.str.2, %3132 ]
  store i32 %3127, ptr %250, align 4, !tbaa !5
  %3138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3139 = load i32, ptr @test_count, align 4, !tbaa !5
  %3140 = load i32, ptr %196, align 4, !tbaa !5
  %3141 = call ptr @s2n_strerror(i32 noundef %3140, ptr noundef nonnull @.str.4) #12
  %3142 = load i32, ptr %196, align 4, !tbaa !5
  %3143 = call ptr @s2n_strerror_debug(i32 noundef %3142, ptr noundef nonnull @.str.4) #12
  %3144 = load i32, ptr %250, align 4, !tbaa !5
  %3145 = call ptr @strerror(i32 noundef %3144) #12
  %3146 = load i32, ptr %250, align 4, !tbaa !5
  %3147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3138, ptr noundef nonnull %.str.5.sink1707, i32 noundef %3139, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 388, ptr noundef %3141, ptr noundef %3143, ptr noundef %3145, i32 noundef %3146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3148:                                             ; preds = %3119
  %3149 = getelementptr inbounds i8, ptr %38, i64 80
  %3150 = getelementptr inbounds [22 x i8], ptr %3149, i64 0, i64 %1364
  %3151 = load i8, ptr %3150, align 1, !tbaa !43
  %3152 = or i8 %3151, %1506
  store i8 %3152, ptr %3150, align 1, !tbaa !43
  %3153 = load i32, ptr @test_count, align 4, !tbaa !5
  %3154 = add nsw i32 %3153, 1
  store i32 %3154, ptr @test_count, align 4, !tbaa !5
  %3155 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %39, ptr noundef nonnull %38) #12
  %3156 = icmp eq i32 %3155, -1
  br i1 %3156, label %3157, label %3179

3157:                                             ; preds = %3148
  %3158 = load i32, ptr %250, align 4, !tbaa !5
  %3159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3160 = call i32 @s2n_print_stacktrace(ptr noundef %3159) #12
  %3161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3162 = trunc nuw i8 %3161 to i1
  br i1 %3162, label %3163, label %3167

3163:                                             ; preds = %3157
  %3164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3165 = call i32 @fileno(ptr noundef %3164) #12
  %3166 = call i32 @isatty(i32 noundef %3165) #12
  %.not651 = icmp eq i32 %3166, 0
  br i1 %.not651, label %3167, label %3168

3167:                                             ; preds = %3163, %3157
  br label %3168

3168:                                             ; preds = %3163, %3167
  %.str.5.sink1716 = phi ptr [ @.str.5, %3167 ], [ @.str.2, %3163 ]
  store i32 %3158, ptr %250, align 4, !tbaa !5
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = load i32, ptr @test_count, align 4, !tbaa !5
  %3171 = load i32, ptr %196, align 4, !tbaa !5
  %3172 = call ptr @s2n_strerror(i32 noundef %3171, ptr noundef nonnull @.str.4) #12
  %3173 = load i32, ptr %196, align 4, !tbaa !5
  %3174 = call ptr @s2n_strerror_debug(i32 noundef %3173, ptr noundef nonnull @.str.4) #12
  %3175 = load i32, ptr %250, align 4, !tbaa !5
  %3176 = call ptr @strerror(i32 noundef %3175) #12
  %3177 = load i32, ptr %250, align 4, !tbaa !5
  %3178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3169, ptr noundef nonnull %.str.5.sink1716, i32 noundef %3170, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 391, ptr noundef %3172, ptr noundef %3174, ptr noundef %3176, i32 noundef %3177) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3179:                                             ; preds = %3148
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %39) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %38) #12
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %40) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %40, i8 0, i64 4184, i1 false)
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %41) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %41, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.extension_type_with_error_if_missing, i64 32, i1 false)
  %3180 = getelementptr inbounds i8, ptr %41, i64 32
  store ptr @s2n_extension_error_if_missing, ptr %3180, align 8, !tbaa !53
  %3181 = getelementptr inbounds i8, ptr %41, i64 2
  %3182 = load i8, ptr %3181, align 2
  %3183 = and i8 %3182, -2
  store i8 %3183, ptr %3181, align 2
  %3184 = load i32, ptr @test_count, align 4, !tbaa !5
  %3185 = add nsw i32 %3184, 1
  store i32 %3185, ptr @test_count, align 4, !tbaa !5
  %3186 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %41, ptr noundef nonnull %40) #12
  %3187 = icmp eq i32 %3186, -1
  br i1 %3187, label %3210, label %3188

3188:                                             ; preds = %3179
  %3189 = load i32, ptr %250, align 4, !tbaa !5
  %3190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3191 = call i32 @s2n_print_stacktrace(ptr noundef %3190) #12
  %3192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3193 = trunc nuw i8 %3192 to i1
  br i1 %3193, label %3194, label %3198

3194:                                             ; preds = %3188
  %3195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3196 = call i32 @fileno(ptr noundef %3195) #12
  %3197 = call i32 @isatty(i32 noundef %3196) #12
  %.not563 = icmp eq i32 %3197, 0
  br i1 %.not563, label %3198, label %3199

3198:                                             ; preds = %3194, %3188
  br label %3199

3199:                                             ; preds = %3194, %3198
  %.str.5.sink1725 = phi ptr [ @.str.5, %3198 ], [ @.str.2, %3194 ]
  store i32 %3189, ptr %250, align 4, !tbaa !5
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = load i32, ptr @test_count, align 4, !tbaa !5
  %3202 = load i32, ptr %196, align 4, !tbaa !5
  %3203 = call ptr @s2n_strerror(i32 noundef %3202, ptr noundef nonnull @.str.4) #12
  %3204 = load i32, ptr %196, align 4, !tbaa !5
  %3205 = call ptr @s2n_strerror_debug(i32 noundef %3204, ptr noundef nonnull @.str.4) #12
  %3206 = load i32, ptr %250, align 4, !tbaa !5
  %3207 = call ptr @strerror(i32 noundef %3206) #12
  %3208 = load i32, ptr %250, align 4, !tbaa !5
  %3209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3200, ptr noundef nonnull %.str.5.sink1725, i32 noundef %3201, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %3203, ptr noundef %3205, ptr noundef %3207, i32 noundef %3208) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3210:                                             ; preds = %3179
  %3211 = load i32, ptr @test_count, align 4, !tbaa !5
  %3212 = add nsw i32 %3211, 1
  store i32 %3212, ptr @test_count, align 4, !tbaa !5
  %3213 = load i32, ptr %196, align 4, !tbaa !5
  %3214 = icmp eq i32 %3213, 335544393
  br i1 %3214, label %3237, label %3215

3215:                                             ; preds = %3210
  %3216 = load i32, ptr %250, align 4, !tbaa !5
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = call i32 @s2n_print_stacktrace(ptr noundef %3217) #12
  %3219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3220 = trunc nuw i8 %3219 to i1
  br i1 %3220, label %3221, label %3225

3221:                                             ; preds = %3215
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = call i32 @fileno(ptr noundef %3222) #12
  %3224 = call i32 @isatty(i32 noundef %3223) #12
  %.not564 = icmp eq i32 %3224, 0
  br i1 %.not564, label %3225, label %3226

3225:                                             ; preds = %3221, %3215
  br label %3226

3226:                                             ; preds = %3221, %3225
  %.str.5.sink1734 = phi ptr [ @.str.5, %3225 ], [ @.str.2, %3221 ]
  store i32 %3216, ptr %250, align 4, !tbaa !5
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = load i32, ptr @test_count, align 4, !tbaa !5
  %3229 = load i32, ptr %196, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror(i32 noundef %3229, ptr noundef nonnull @.str.4) #12
  %3231 = load i32, ptr %196, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror_debug(i32 noundef %3231, ptr noundef nonnull @.str.4) #12
  %3233 = load i32, ptr %250, align 4, !tbaa !5
  %3234 = call ptr @strerror(i32 noundef %3233) #12
  %3235 = load i32, ptr %250, align 4, !tbaa !5
  %3236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3227, ptr noundef nonnull %.str.5.sink1734, i32 noundef %3228, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %3230, ptr noundef %3232, ptr noundef %3234, i32 noundef %3235) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3237:                                             ; preds = %3210
  %3238 = add nsw i32 %3211, 2
  store i32 %3238, ptr @test_count, align 4, !tbaa !5
  %3239 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #12
  %3240 = icmp eq ptr %3239, null
  br i1 %3240, label %3241, label %3263

3241:                                             ; preds = %3237
  %3242 = load i32, ptr %250, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = call i32 @s2n_print_stacktrace(ptr noundef %3243) #12
  %3245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3246 = trunc nuw i8 %3245 to i1
  br i1 %3246, label %3247, label %3251

3247:                                             ; preds = %3241
  %3248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3249 = call i32 @fileno(ptr noundef %3248) #12
  %3250 = call i32 @isatty(i32 noundef %3249) #12
  %.not650 = icmp eq i32 %3250, 0
  br i1 %.not650, label %3251, label %3252

3251:                                             ; preds = %3247, %3241
  br label %3252

3252:                                             ; preds = %3247, %3251
  %.str.5.sink1743 = phi ptr [ @.str.5, %3251 ], [ @.str.2, %3247 ]
  store i32 %3242, ptr %250, align 4, !tbaa !5
  %3253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3254 = load i32, ptr @test_count, align 4, !tbaa !5
  %3255 = load i32, ptr %196, align 4, !tbaa !5
  %3256 = call ptr @s2n_strerror(i32 noundef %3255, ptr noundef nonnull @.str.4) #12
  %3257 = load i32, ptr %196, align 4, !tbaa !5
  %3258 = call ptr @s2n_strerror_debug(i32 noundef %3257, ptr noundef nonnull @.str.4) #12
  %3259 = load i32, ptr %250, align 4, !tbaa !5
  %3260 = call ptr @strerror(i32 noundef %3259) #12
  %3261 = load i32, ptr %250, align 4, !tbaa !5
  %3262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3253, ptr noundef nonnull %.str.5.sink1743, i32 noundef %3254, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 404, ptr noundef %3256, ptr noundef %3258, ptr noundef %3260, i32 noundef %3261) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3263:                                             ; preds = %3237
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %3264 = load i8, ptr %3181, align 2
  %3265 = or i8 %3264, 1
  store i8 %3265, ptr %3181, align 2
  %3266 = load i32, ptr @test_count, align 4, !tbaa !5
  %3267 = add nsw i32 %3266, 1
  store i32 %3267, ptr @test_count, align 4, !tbaa !5
  %3268 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %41, ptr noundef nonnull %40) #12
  %3269 = icmp eq i32 %3268, -1
  br i1 %3269, label %3270, label %3292

3270:                                             ; preds = %3263
  %3271 = load i32, ptr %250, align 4, !tbaa !5
  %3272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3273 = call i32 @s2n_print_stacktrace(ptr noundef %3272) #12
  %3274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3275 = trunc nuw i8 %3274 to i1
  br i1 %3275, label %3276, label %3280

3276:                                             ; preds = %3270
  %3277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3278 = call i32 @fileno(ptr noundef %3277) #12
  %3279 = call i32 @isatty(i32 noundef %3278) #12
  %.not649 = icmp eq i32 %3279, 0
  br i1 %.not649, label %3280, label %3281

3280:                                             ; preds = %3276, %3270
  br label %3281

3281:                                             ; preds = %3276, %3280
  %.str.5.sink1752 = phi ptr [ @.str.5, %3280 ], [ @.str.2, %3276 ]
  store i32 %3271, ptr %250, align 4, !tbaa !5
  %3282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3283 = load i32, ptr @test_count, align 4, !tbaa !5
  %3284 = load i32, ptr %196, align 4, !tbaa !5
  %3285 = call ptr @s2n_strerror(i32 noundef %3284, ptr noundef nonnull @.str.4) #12
  %3286 = load i32, ptr %196, align 4, !tbaa !5
  %3287 = call ptr @s2n_strerror_debug(i32 noundef %3286, ptr noundef nonnull @.str.4) #12
  %3288 = load i32, ptr %250, align 4, !tbaa !5
  %3289 = call ptr @strerror(i32 noundef %3288) #12
  %3290 = load i32, ptr %250, align 4, !tbaa !5
  %3291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3282, ptr noundef nonnull %.str.5.sink1752, i32 noundef %3283, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 409, ptr noundef %3285, ptr noundef %3287, ptr noundef %3289, i32 noundef %3290) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3292:                                             ; preds = %3263
  %3293 = getelementptr inbounds i8, ptr %40, i64 80
  %3294 = getelementptr inbounds [22 x i8], ptr %3293, i64 0, i64 %1364
  %3295 = load i8, ptr %3294, align 1, !tbaa !43
  %3296 = or i8 %3295, %1506
  store i8 %3296, ptr %3294, align 1, !tbaa !43
  %3297 = load i32, ptr @test_count, align 4, !tbaa !5
  %3298 = add nsw i32 %3297, 1
  store i32 %3298, ptr @test_count, align 4, !tbaa !5
  %3299 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %41, ptr noundef nonnull %40) #12
  %3300 = icmp eq i32 %3299, -1
  br i1 %3300, label %3323, label %3301

3301:                                             ; preds = %3292
  %3302 = load i32, ptr %250, align 4, !tbaa !5
  %3303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3304 = call i32 @s2n_print_stacktrace(ptr noundef %3303) #12
  %3305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3306 = trunc nuw i8 %3305 to i1
  br i1 %3306, label %3307, label %3311

3307:                                             ; preds = %3301
  %3308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3309 = call i32 @fileno(ptr noundef %3308) #12
  %3310 = call i32 @isatty(i32 noundef %3309) #12
  %.not565 = icmp eq i32 %3310, 0
  br i1 %.not565, label %3311, label %3312

3311:                                             ; preds = %3307, %3301
  br label %3312

3312:                                             ; preds = %3307, %3311
  %.str.5.sink1761 = phi ptr [ @.str.5, %3311 ], [ @.str.2, %3307 ]
  store i32 %3302, ptr %250, align 4, !tbaa !5
  %3313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3314 = load i32, ptr @test_count, align 4, !tbaa !5
  %3315 = load i32, ptr %196, align 4, !tbaa !5
  %3316 = call ptr @s2n_strerror(i32 noundef %3315, ptr noundef nonnull @.str.4) #12
  %3317 = load i32, ptr %196, align 4, !tbaa !5
  %3318 = call ptr @s2n_strerror_debug(i32 noundef %3317, ptr noundef nonnull @.str.4) #12
  %3319 = load i32, ptr %250, align 4, !tbaa !5
  %3320 = call ptr @strerror(i32 noundef %3319) #12
  %3321 = load i32, ptr %250, align 4, !tbaa !5
  %3322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3313, ptr noundef nonnull %.str.5.sink1761, i32 noundef %3314, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3316, ptr noundef %3318, ptr noundef %3320, i32 noundef %3321) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3323:                                             ; preds = %3292
  %3324 = load i32, ptr @test_count, align 4, !tbaa !5
  %3325 = add nsw i32 %3324, 1
  store i32 %3325, ptr @test_count, align 4, !tbaa !5
  %3326 = load i32, ptr %196, align 4, !tbaa !5
  %3327 = icmp eq i32 %3326, 335544393
  br i1 %3327, label %3350, label %3328

3328:                                             ; preds = %3323
  %3329 = load i32, ptr %250, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = call i32 @s2n_print_stacktrace(ptr noundef %3330) #12
  %3332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3333 = trunc nuw i8 %3332 to i1
  br i1 %3333, label %3334, label %3338

3334:                                             ; preds = %3328
  %3335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3336 = call i32 @fileno(ptr noundef %3335) #12
  %3337 = call i32 @isatty(i32 noundef %3336) #12
  %.not566 = icmp eq i32 %3337, 0
  br i1 %.not566, label %3338, label %3339

3338:                                             ; preds = %3334, %3328
  br label %3339

3339:                                             ; preds = %3334, %3338
  %.str.5.sink1770 = phi ptr [ @.str.5, %3338 ], [ @.str.2, %3334 ]
  store i32 %3329, ptr %250, align 4, !tbaa !5
  %3340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = load i32, ptr %196, align 4, !tbaa !5
  %3343 = call ptr @s2n_strerror(i32 noundef %3342, ptr noundef nonnull @.str.4) #12
  %3344 = load i32, ptr %196, align 4, !tbaa !5
  %3345 = call ptr @s2n_strerror_debug(i32 noundef %3344, ptr noundef nonnull @.str.4) #12
  %3346 = load i32, ptr %250, align 4, !tbaa !5
  %3347 = call ptr @strerror(i32 noundef %3346) #12
  %3348 = load i32, ptr %250, align 4, !tbaa !5
  %3349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3340, ptr noundef nonnull %.str.5.sink1770, i32 noundef %3341, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3343, ptr noundef %3345, ptr noundef %3347, i32 noundef %3348) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3350:                                             ; preds = %3323
  %3351 = add nsw i32 %3324, 2
  store i32 %3351, ptr @test_count, align 4, !tbaa !5
  %3352 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #12
  %3353 = icmp eq ptr %3352, null
  br i1 %3353, label %3354, label %3376

3354:                                             ; preds = %3350
  %3355 = load i32, ptr %250, align 4, !tbaa !5
  %3356 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3357 = call i32 @s2n_print_stacktrace(ptr noundef %3356) #12
  %3358 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3359 = trunc nuw i8 %3358 to i1
  br i1 %3359, label %3360, label %3364

3360:                                             ; preds = %3354
  %3361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3362 = call i32 @fileno(ptr noundef %3361) #12
  %3363 = call i32 @isatty(i32 noundef %3362) #12
  %.not648 = icmp eq i32 %3363, 0
  br i1 %.not648, label %3364, label %3365

3364:                                             ; preds = %3360, %3354
  br label %3365

3365:                                             ; preds = %3360, %3364
  %.str.5.sink1779 = phi ptr [ @.str.5, %3364 ], [ @.str.2, %3360 ]
  store i32 %3355, ptr %250, align 4, !tbaa !5
  %3366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3367 = load i32, ptr @test_count, align 4, !tbaa !5
  %3368 = load i32, ptr %196, align 4, !tbaa !5
  %3369 = call ptr @s2n_strerror(i32 noundef %3368, ptr noundef nonnull @.str.4) #12
  %3370 = load i32, ptr %196, align 4, !tbaa !5
  %3371 = call ptr @s2n_strerror_debug(i32 noundef %3370, ptr noundef nonnull @.str.4) #12
  %3372 = load i32, ptr %250, align 4, !tbaa !5
  %3373 = call ptr @strerror(i32 noundef %3372) #12
  %3374 = load i32, ptr %250, align 4, !tbaa !5
  %3375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3366, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3367, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 414, ptr noundef %3369, ptr noundef %3371, ptr noundef %3373, i32 noundef %3374) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3376:                                             ; preds = %3350
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %41) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %40) #12
  %3377 = load i32, ptr @test_count, align 4, !tbaa !5
  %3378 = add nsw i32 %3377, 1
  store i32 %3378, ptr @test_count, align 4, !tbaa !5
  %3379 = call i32 (...) @s2n_reset_tls13_in_test() #12
  %3380 = icmp eq i32 %3379, -1
  br i1 %3380, label %3381, label %3403

3381:                                             ; preds = %3376
  %3382 = load i32, ptr %250, align 4, !tbaa !5
  %3383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3384 = call i32 @s2n_print_stacktrace(ptr noundef %3383) #12
  %3385 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3386 = trunc nuw i8 %3385 to i1
  br i1 %3386, label %3387, label %3391

3387:                                             ; preds = %3381
  %3388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3389 = call i32 @fileno(ptr noundef %3388) #12
  %3390 = call i32 @isatty(i32 noundef %3389) #12
  %.not647 = icmp eq i32 %3390, 0
  br i1 %.not647, label %3391, label %3392

3391:                                             ; preds = %3387, %3381
  br label %3392

3392:                                             ; preds = %3387, %3391
  %.str.5.sink1788 = phi ptr [ @.str.5, %3391 ], [ @.str.2, %3387 ]
  store i32 %3382, ptr %250, align 4, !tbaa !5
  %3393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = load i32, ptr %196, align 4, !tbaa !5
  %3396 = call ptr @s2n_strerror(i32 noundef %3395, ptr noundef nonnull @.str.4) #12
  %3397 = load i32, ptr %196, align 4, !tbaa !5
  %3398 = call ptr @s2n_strerror_debug(i32 noundef %3397, ptr noundef nonnull @.str.4) #12
  %3399 = load i32, ptr %250, align 4, !tbaa !5
  %3400 = call ptr @strerror(i32 noundef %3399) #12
  %3401 = load i32, ptr %250, align 4, !tbaa !5
  %3402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3393, ptr noundef nonnull %.str.5.sink1788, i32 noundef %3394, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 420, ptr noundef %3396, ptr noundef %3398, ptr noundef %3400, i32 noundef %3401) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3403:                                             ; preds = %3376
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %42) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %42, ptr noundef nonnull align 8 dereferenceable(40) @__const.main.test_extension_type_with_min, i64 32, i1 false)
  %3404 = getelementptr inbounds i8, ptr %42, i64 4
  store i16 34, ptr %3404, align 4, !tbaa !54
  %3405 = getelementptr inbounds i8, ptr %42, i64 32
  store ptr @s2n_extension_error_if_missing, ptr %3405, align 8, !tbaa !53
  %3406 = getelementptr inbounds i8, ptr %42, i64 8
  store ptr @s2n_extension_send_unimplemented, ptr %3406, align 8, !tbaa !48
  %3407 = getelementptr inbounds i8, ptr %42, i64 16
  store ptr @s2n_extension_recv_unimplemented, ptr %3407, align 8, !tbaa !46
  call void @llvm.lifetime.start.p0(i64 4184, ptr nonnull %43) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(4184) %43, i8 0, i64 4184, i1 false)
  %3408 = getelementptr inbounds i8, ptr %43, i64 220
  store i8 33, ptr %3408, align 4, !tbaa !15
  %3409 = load i32, ptr @test_count, align 4, !tbaa !5
  %3410 = add nsw i32 %3409, 1
  store i32 %3410, ptr @test_count, align 4, !tbaa !5
  %3411 = call i32 @s2n_extension_recv(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef null) #12
  %3412 = icmp eq i32 %3411, -1
  br i1 %3412, label %3413, label %3435

3413:                                             ; preds = %3403
  %3414 = load i32, ptr %250, align 4, !tbaa !5
  %3415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3416 = call i32 @s2n_print_stacktrace(ptr noundef %3415) #12
  %3417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3418 = trunc nuw i8 %3417 to i1
  br i1 %3418, label %3419, label %3423

3419:                                             ; preds = %3413
  %3420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3421 = call i32 @fileno(ptr noundef %3420) #12
  %3422 = call i32 @isatty(i32 noundef %3421) #12
  %.not646 = icmp eq i32 %3422, 0
  br i1 %.not646, label %3423, label %3424

3423:                                             ; preds = %3419, %3413
  br label %3424

3424:                                             ; preds = %3419, %3423
  %.str.5.sink1797 = phi ptr [ @.str.5, %3423 ], [ @.str.2, %3419 ]
  store i32 %3414, ptr %250, align 4, !tbaa !5
  %3425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = load i32, ptr %196, align 4, !tbaa !5
  %3428 = call ptr @s2n_strerror(i32 noundef %3427, ptr noundef nonnull @.str.4) #12
  %3429 = load i32, ptr %196, align 4, !tbaa !5
  %3430 = call ptr @s2n_strerror_debug(i32 noundef %3429, ptr noundef nonnull @.str.4) #12
  %3431 = load i32, ptr %250, align 4, !tbaa !5
  %3432 = call ptr @strerror(i32 noundef %3431) #12
  %3433 = load i32, ptr %250, align 4, !tbaa !5
  %3434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3425, ptr noundef nonnull %.str.5.sink1797, i32 noundef %3426, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 436, ptr noundef %3428, ptr noundef %3430, ptr noundef %3432, i32 noundef %3433) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3435:                                             ; preds = %3403
  %3436 = load i32, ptr @test_count, align 4, !tbaa !5
  %3437 = add nsw i32 %3436, 1
  store i32 %3437, ptr @test_count, align 4, !tbaa !5
  %3438 = call i32 @s2n_extension_send(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef null) #12
  %3439 = icmp eq i32 %3438, -1
  br i1 %3439, label %3440, label %3462

3440:                                             ; preds = %3435
  %3441 = load i32, ptr %250, align 4, !tbaa !5
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = call i32 @s2n_print_stacktrace(ptr noundef %3442) #12
  %3444 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3445 = trunc nuw i8 %3444 to i1
  br i1 %3445, label %3446, label %3450

3446:                                             ; preds = %3440
  %3447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3448 = call i32 @fileno(ptr noundef %3447) #12
  %3449 = call i32 @isatty(i32 noundef %3448) #12
  %.not645 = icmp eq i32 %3449, 0
  br i1 %.not645, label %3450, label %3451

3450:                                             ; preds = %3446, %3440
  br label %3451

3451:                                             ; preds = %3446, %3450
  %.str.5.sink1806 = phi ptr [ @.str.5, %3450 ], [ @.str.2, %3446 ]
  store i32 %3441, ptr %250, align 4, !tbaa !5
  %3452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3453 = load i32, ptr @test_count, align 4, !tbaa !5
  %3454 = load i32, ptr %196, align 4, !tbaa !5
  %3455 = call ptr @s2n_strerror(i32 noundef %3454, ptr noundef nonnull @.str.4) #12
  %3456 = load i32, ptr %196, align 4, !tbaa !5
  %3457 = call ptr @s2n_strerror_debug(i32 noundef %3456, ptr noundef nonnull @.str.4) #12
  %3458 = load i32, ptr %250, align 4, !tbaa !5
  %3459 = call ptr @strerror(i32 noundef %3458) #12
  %3460 = load i32, ptr %250, align 4, !tbaa !5
  %3461 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3452, ptr noundef nonnull %.str.5.sink1806, i32 noundef %3453, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 437, ptr noundef %3455, ptr noundef %3457, ptr noundef %3459, i32 noundef %3460) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3462:                                             ; preds = %3435
  %3463 = load i32, ptr @test_count, align 4, !tbaa !5
  %3464 = add nsw i32 %3463, 1
  store i32 %3464, ptr @test_count, align 4, !tbaa !5
  %3465 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %42, ptr noundef nonnull %43) #12
  %3466 = icmp eq i32 %3465, -1
  br i1 %3466, label %3467, label %3489

3467:                                             ; preds = %3462
  %3468 = load i32, ptr %250, align 4, !tbaa !5
  %3469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3470 = call i32 @s2n_print_stacktrace(ptr noundef %3469) #12
  %3471 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3472 = trunc nuw i8 %3471 to i1
  br i1 %3472, label %3473, label %3477

3473:                                             ; preds = %3467
  %3474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3475 = call i32 @fileno(ptr noundef %3474) #12
  %3476 = call i32 @isatty(i32 noundef %3475) #12
  %.not644 = icmp eq i32 %3476, 0
  br i1 %.not644, label %3477, label %3478

3477:                                             ; preds = %3473, %3467
  br label %3478

3478:                                             ; preds = %3473, %3477
  %.str.5.sink1815 = phi ptr [ @.str.5, %3477 ], [ @.str.2, %3473 ]
  store i32 %3468, ptr %250, align 4, !tbaa !5
  %3479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3480 = load i32, ptr @test_count, align 4, !tbaa !5
  %3481 = load i32, ptr %196, align 4, !tbaa !5
  %3482 = call ptr @s2n_strerror(i32 noundef %3481, ptr noundef nonnull @.str.4) #12
  %3483 = load i32, ptr %196, align 4, !tbaa !5
  %3484 = call ptr @s2n_strerror_debug(i32 noundef %3483, ptr noundef nonnull @.str.4) #12
  %3485 = load i32, ptr %250, align 4, !tbaa !5
  %3486 = call ptr @strerror(i32 noundef %3485) #12
  %3487 = load i32, ptr %250, align 4, !tbaa !5
  %3488 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3479, ptr noundef nonnull %.str.5.sink1815, i32 noundef %3480, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 438, ptr noundef %3482, ptr noundef %3484, ptr noundef %3486, i32 noundef %3487) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3489:                                             ; preds = %3462
  store i8 34, ptr %3408, align 4, !tbaa !15
  %3490 = load i32, ptr @test_count, align 4, !tbaa !5
  %3491 = add nsw i32 %3490, 1
  store i32 %3491, ptr @test_count, align 4, !tbaa !5
  %3492 = call i32 @s2n_extension_recv(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef null) #12
  %3493 = icmp eq i32 %3492, -1
  br i1 %3493, label %3516, label %3494

3494:                                             ; preds = %3489
  %3495 = load i32, ptr %250, align 4, !tbaa !5
  %3496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3497 = call i32 @s2n_print_stacktrace(ptr noundef %3496) #12
  %3498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3499 = trunc nuw i8 %3498 to i1
  br i1 %3499, label %3500, label %3504

3500:                                             ; preds = %3494
  %3501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3502 = call i32 @fileno(ptr noundef %3501) #12
  %3503 = call i32 @isatty(i32 noundef %3502) #12
  %.not567 = icmp eq i32 %3503, 0
  br i1 %.not567, label %3504, label %3505

3504:                                             ; preds = %3500, %3494
  br label %3505

3505:                                             ; preds = %3500, %3504
  %.str.5.sink1824 = phi ptr [ @.str.5, %3504 ], [ @.str.2, %3500 ]
  store i32 %3495, ptr %250, align 4, !tbaa !5
  %3506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3507 = load i32, ptr @test_count, align 4, !tbaa !5
  %3508 = load i32, ptr %196, align 4, !tbaa !5
  %3509 = call ptr @s2n_strerror(i32 noundef %3508, ptr noundef nonnull @.str.4) #12
  %3510 = load i32, ptr %196, align 4, !tbaa !5
  %3511 = call ptr @s2n_strerror_debug(i32 noundef %3510, ptr noundef nonnull @.str.4) #12
  %3512 = load i32, ptr %250, align 4, !tbaa !5
  %3513 = call ptr @strerror(i32 noundef %3512) #12
  %3514 = load i32, ptr %250, align 4, !tbaa !5
  %3515 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3506, ptr noundef nonnull %.str.5.sink1824, i32 noundef %3507, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %3509, ptr noundef %3511, ptr noundef %3513, i32 noundef %3514) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3516:                                             ; preds = %3489
  %3517 = load i32, ptr @test_count, align 4, !tbaa !5
  %3518 = add nsw i32 %3517, 1
  store i32 %3518, ptr @test_count, align 4, !tbaa !5
  %3519 = load i32, ptr %196, align 4, !tbaa !5
  %3520 = icmp eq i32 %3519, 0
  br i1 %3520, label %3521, label %3543

3521:                                             ; preds = %3516
  %3522 = load i32, ptr %250, align 4, !tbaa !5
  %3523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3524 = call i32 @s2n_print_stacktrace(ptr noundef %3523) #12
  %3525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3526 = trunc nuw i8 %3525 to i1
  br i1 %3526, label %3527, label %3531

3527:                                             ; preds = %3521
  %3528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3529 = call i32 @fileno(ptr noundef %3528) #12
  %3530 = call i32 @isatty(i32 noundef %3529) #12
  %.not643 = icmp eq i32 %3530, 0
  br i1 %.not643, label %3531, label %3532

3531:                                             ; preds = %3527, %3521
  br label %3532

3532:                                             ; preds = %3527, %3531
  %.str.5.sink1833 = phi ptr [ @.str.5, %3531 ], [ @.str.2, %3527 ]
  store i32 %3522, ptr %250, align 4, !tbaa !5
  %3533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3534 = load i32, ptr @test_count, align 4, !tbaa !5
  %3535 = load i32, ptr %196, align 4, !tbaa !5
  %3536 = call ptr @s2n_strerror(i32 noundef %3535, ptr noundef nonnull @.str.4) #12
  %3537 = load i32, ptr %196, align 4, !tbaa !5
  %3538 = call ptr @s2n_strerror_debug(i32 noundef %3537, ptr noundef nonnull @.str.4) #12
  %3539 = load i32, ptr %250, align 4, !tbaa !5
  %3540 = call ptr @strerror(i32 noundef %3539) #12
  %3541 = load i32, ptr %250, align 4, !tbaa !5
  %3542 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3533, ptr noundef nonnull %.str.5.sink1833, i32 noundef %3534, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %3536, ptr noundef %3538, ptr noundef %3540, i32 noundef %3541) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3543:                                             ; preds = %3516
  %3544 = add nsw i32 %3517, 2
  store i32 %3544, ptr @test_count, align 4, !tbaa !5
  %3545 = call ptr @s2n_strerror_debug(i32 noundef %3519, ptr noundef nonnull @.str.4) #12
  %3546 = icmp eq ptr %3545, null
  br i1 %3546, label %3547, label %3569

3547:                                             ; preds = %3543
  %3548 = load i32, ptr %250, align 4, !tbaa !5
  %3549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3550 = call i32 @s2n_print_stacktrace(ptr noundef %3549) #12
  %3551 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3552 = trunc nuw i8 %3551 to i1
  br i1 %3552, label %3553, label %3557

3553:                                             ; preds = %3547
  %3554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3555 = call i32 @fileno(ptr noundef %3554) #12
  %3556 = call i32 @isatty(i32 noundef %3555) #12
  %.not642 = icmp eq i32 %3556, 0
  br i1 %.not642, label %3557, label %3558

3557:                                             ; preds = %3553, %3547
  br label %3558

3558:                                             ; preds = %3553, %3557
  %.str.5.sink1842 = phi ptr [ @.str.5, %3557 ], [ @.str.2, %3553 ]
  store i32 %3548, ptr %250, align 4, !tbaa !5
  %3559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3560 = load i32, ptr @test_count, align 4, !tbaa !5
  %3561 = load i32, ptr %196, align 4, !tbaa !5
  %3562 = call ptr @s2n_strerror(i32 noundef %3561, ptr noundef nonnull @.str.4) #12
  %3563 = load i32, ptr %196, align 4, !tbaa !5
  %3564 = call ptr @s2n_strerror_debug(i32 noundef %3563, ptr noundef nonnull @.str.4) #12
  %3565 = load i32, ptr %250, align 4, !tbaa !5
  %3566 = call ptr @strerror(i32 noundef %3565) #12
  %3567 = load i32, ptr %250, align 4, !tbaa !5
  %3568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3559, ptr noundef nonnull %.str.5.sink1842, i32 noundef %3560, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 445, ptr noundef %3562, ptr noundef %3564, ptr noundef %3566, i32 noundef %3567) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3569:                                             ; preds = %3543
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %3570 = load i32, ptr @test_count, align 4, !tbaa !5
  %3571 = add nsw i32 %3570, 1
  store i32 %3571, ptr @test_count, align 4, !tbaa !5
  %3572 = call i32 @s2n_extension_send(ptr noundef nonnull %42, ptr noundef nonnull %43, ptr noundef null) #12
  %3573 = icmp eq i32 %3572, -1
  br i1 %3573, label %3596, label %3574

3574:                                             ; preds = %3569
  %3575 = load i32, ptr %250, align 4, !tbaa !5
  %3576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3577 = call i32 @s2n_print_stacktrace(ptr noundef %3576) #12
  %3578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3579 = trunc nuw i8 %3578 to i1
  br i1 %3579, label %3580, label %3584

3580:                                             ; preds = %3574
  %3581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3582 = call i32 @fileno(ptr noundef %3581) #12
  %3583 = call i32 @isatty(i32 noundef %3582) #12
  %.not568 = icmp eq i32 %3583, 0
  br i1 %.not568, label %3584, label %3585

3584:                                             ; preds = %3580, %3574
  br label %3585

3585:                                             ; preds = %3580, %3584
  %.str.5.sink1851 = phi ptr [ @.str.5, %3584 ], [ @.str.2, %3580 ]
  store i32 %3575, ptr %250, align 4, !tbaa !5
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = load i32, ptr @test_count, align 4, !tbaa !5
  %3588 = load i32, ptr %196, align 4, !tbaa !5
  %3589 = call ptr @s2n_strerror(i32 noundef %3588, ptr noundef nonnull @.str.4) #12
  %3590 = load i32, ptr %196, align 4, !tbaa !5
  %3591 = call ptr @s2n_strerror_debug(i32 noundef %3590, ptr noundef nonnull @.str.4) #12
  %3592 = load i32, ptr %250, align 4, !tbaa !5
  %3593 = call ptr @strerror(i32 noundef %3592) #12
  %3594 = load i32, ptr %250, align 4, !tbaa !5
  %3595 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3586, ptr noundef nonnull %.str.5.sink1851, i32 noundef %3587, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %3589, ptr noundef %3591, ptr noundef %3593, i32 noundef %3594) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3596:                                             ; preds = %3569
  %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 = load i32, ptr %196, align 4, !tbaa !5
  %3600 = icmp eq i32 %3599, 0
  br i1 %3600, label %3601, label %3623

3601:                                             ; preds = %3596
  %3602 = load i32, ptr %250, align 4, !tbaa !5
  %3603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3604 = call i32 @s2n_print_stacktrace(ptr noundef %3603) #12
  %3605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3606 = trunc nuw i8 %3605 to i1
  br i1 %3606, label %3607, label %3611

3607:                                             ; preds = %3601
  %3608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3609 = call i32 @fileno(ptr noundef %3608) #12
  %3610 = call i32 @isatty(i32 noundef %3609) #12
  %.not641 = icmp eq i32 %3610, 0
  br i1 %.not641, label %3611, label %3612

3611:                                             ; preds = %3607, %3601
  br label %3612

3612:                                             ; preds = %3607, %3611
  %.str.5.sink1860 = phi ptr [ @.str.5, %3611 ], [ @.str.2, %3607 ]
  store i32 %3602, ptr %250, align 4, !tbaa !5
  %3613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3614 = load i32, ptr @test_count, align 4, !tbaa !5
  %3615 = load i32, ptr %196, align 4, !tbaa !5
  %3616 = call ptr @s2n_strerror(i32 noundef %3615, ptr noundef nonnull @.str.4) #12
  %3617 = load i32, ptr %196, align 4, !tbaa !5
  %3618 = call ptr @s2n_strerror_debug(i32 noundef %3617, ptr noundef nonnull @.str.4) #12
  %3619 = load i32, ptr %250, align 4, !tbaa !5
  %3620 = call ptr @strerror(i32 noundef %3619) #12
  %3621 = load i32, ptr %250, align 4, !tbaa !5
  %3622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3613, ptr noundef nonnull %.str.5.sink1860, i32 noundef %3614, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %3616, ptr noundef %3618, ptr noundef %3620, i32 noundef %3621) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3623:                                             ; preds = %3596
  %3624 = add nsw i32 %3597, 2
  store i32 %3624, ptr @test_count, align 4, !tbaa !5
  %3625 = call ptr @s2n_strerror_debug(i32 noundef %3599, ptr noundef nonnull @.str.4) #12
  %3626 = icmp eq ptr %3625, null
  br i1 %3626, label %3627, label %3649

3627:                                             ; preds = %3623
  %3628 = load i32, ptr %250, align 4, !tbaa !5
  %3629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3630 = call i32 @s2n_print_stacktrace(ptr noundef %3629) #12
  %3631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3632 = trunc nuw i8 %3631 to i1
  br i1 %3632, label %3633, label %3637

3633:                                             ; preds = %3627
  %3634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3635 = call i32 @fileno(ptr noundef %3634) #12
  %3636 = call i32 @isatty(i32 noundef %3635) #12
  %.not640 = icmp eq i32 %3636, 0
  br i1 %.not640, label %3637, label %3638

3637:                                             ; preds = %3633, %3627
  br label %3638

3638:                                             ; preds = %3633, %3637
  %.str.5.sink1869 = phi ptr [ @.str.5, %3637 ], [ @.str.2, %3633 ]
  store i32 %3628, ptr %250, align 4, !tbaa !5
  %3639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3640 = load i32, ptr @test_count, align 4, !tbaa !5
  %3641 = load i32, ptr %196, align 4, !tbaa !5
  %3642 = call ptr @s2n_strerror(i32 noundef %3641, ptr noundef nonnull @.str.4) #12
  %3643 = load i32, ptr %196, align 4, !tbaa !5
  %3644 = call ptr @s2n_strerror_debug(i32 noundef %3643, ptr noundef nonnull @.str.4) #12
  %3645 = load i32, ptr %250, align 4, !tbaa !5
  %3646 = call ptr @strerror(i32 noundef %3645) #12
  %3647 = load i32, ptr %250, align 4, !tbaa !5
  %3648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3639, ptr noundef nonnull %.str.5.sink1869, i32 noundef %3640, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 446, ptr noundef %3642, ptr noundef %3644, ptr noundef %3646, i32 noundef %3647) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3649:                                             ; preds = %3623
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  %3650 = load i32, ptr @test_count, align 4, !tbaa !5
  %3651 = add nsw i32 %3650, 1
  store i32 %3651, ptr @test_count, align 4, !tbaa !5
  %3652 = call i32 @s2n_extension_is_missing(ptr noundef nonnull %42, ptr noundef nonnull %43) #12
  %3653 = icmp eq i32 %3652, -1
  br i1 %3653, label %3676, label %3654

3654:                                             ; preds = %3649
  %3655 = load i32, ptr %250, align 4, !tbaa !5
  %3656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3657 = call i32 @s2n_print_stacktrace(ptr noundef %3656) #12
  %3658 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3659 = trunc nuw i8 %3658 to i1
  br i1 %3659, label %3660, label %3664

3660:                                             ; preds = %3654
  %3661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3662 = call i32 @fileno(ptr noundef %3661) #12
  %3663 = call i32 @isatty(i32 noundef %3662) #12
  %.not569 = icmp eq i32 %3663, 0
  br i1 %.not569, label %3664, label %3665

3664:                                             ; preds = %3660, %3654
  br label %3665

3665:                                             ; preds = %3660, %3664
  %.str.5.sink1878 = phi ptr [ @.str.5, %3664 ], [ @.str.2, %3660 ]
  store i32 %3655, ptr %250, align 4, !tbaa !5
  %3666 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3667 = load i32, ptr @test_count, align 4, !tbaa !5
  %3668 = load i32, ptr %196, align 4, !tbaa !5
  %3669 = call ptr @s2n_strerror(i32 noundef %3668, ptr noundef nonnull @.str.4) #12
  %3670 = load i32, ptr %196, align 4, !tbaa !5
  %3671 = call ptr @s2n_strerror_debug(i32 noundef %3670, ptr noundef nonnull @.str.4) #12
  %3672 = load i32, ptr %250, align 4, !tbaa !5
  %3673 = call ptr @strerror(i32 noundef %3672) #12
  %3674 = load i32, ptr %250, align 4, !tbaa !5
  %3675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3666, ptr noundef nonnull %.str.5.sink1878, i32 noundef %3667, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %3669, ptr noundef %3671, ptr noundef %3673, i32 noundef %3674) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3676:                                             ; preds = %3649
  %3677 = load i32, ptr @test_count, align 4, !tbaa !5
  %3678 = add nsw i32 %3677, 1
  store i32 %3678, ptr @test_count, align 4, !tbaa !5
  %3679 = load i32, ptr %196, align 4, !tbaa !5
  %3680 = icmp eq i32 %3679, 0
  br i1 %3680, label %3681, label %3703

3681:                                             ; preds = %3676
  %3682 = load i32, ptr %250, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = call i32 @s2n_print_stacktrace(ptr noundef %3683) #12
  %3685 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3686 = trunc nuw i8 %3685 to i1
  br i1 %3686, label %3687, label %3691

3687:                                             ; preds = %3681
  %3688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3689 = call i32 @fileno(ptr noundef %3688) #12
  %3690 = call i32 @isatty(i32 noundef %3689) #12
  %.not639 = icmp eq i32 %3690, 0
  br i1 %.not639, label %3691, label %3692

3691:                                             ; preds = %3687, %3681
  br label %3692

3692:                                             ; preds = %3687, %3691
  %.str.5.sink1887 = phi ptr [ @.str.5, %3691 ], [ @.str.2, %3687 ]
  store i32 %3682, ptr %250, align 4, !tbaa !5
  %3693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3694 = load i32, ptr @test_count, align 4, !tbaa !5
  %3695 = load i32, ptr %196, align 4, !tbaa !5
  %3696 = call ptr @s2n_strerror(i32 noundef %3695, ptr noundef nonnull @.str.4) #12
  %3697 = load i32, ptr %196, align 4, !tbaa !5
  %3698 = call ptr @s2n_strerror_debug(i32 noundef %3697, ptr noundef nonnull @.str.4) #12
  %3699 = load i32, ptr %250, align 4, !tbaa !5
  %3700 = call ptr @strerror(i32 noundef %3699) #12
  %3701 = load i32, ptr %250, align 4, !tbaa !5
  %3702 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3693, ptr noundef nonnull %.str.5.sink1887, i32 noundef %3694, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %3696, ptr noundef %3698, ptr noundef %3700, i32 noundef %3701) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3703:                                             ; preds = %3676
  %3704 = add nsw i32 %3677, 2
  store i32 %3704, ptr @test_count, align 4, !tbaa !5
  %3705 = call ptr @s2n_strerror_debug(i32 noundef %3679, ptr noundef nonnull @.str.4) #12
  %3706 = icmp eq ptr %3705, null
  br i1 %3706, label %3707, label %3729

3707:                                             ; preds = %3703
  %3708 = load i32, ptr %250, align 4, !tbaa !5
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = call i32 @s2n_print_stacktrace(ptr noundef %3709) #12
  %3711 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3712 = trunc nuw i8 %3711 to i1
  br i1 %3712, label %3713, label %3717

3713:                                             ; preds = %3707
  %3714 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3715 = call i32 @fileno(ptr noundef %3714) #12
  %3716 = call i32 @isatty(i32 noundef %3715) #12
  %.not638 = icmp eq i32 %3716, 0
  br i1 %.not638, label %3717, label %3718

3717:                                             ; preds = %3713, %3707
  br label %3718

3718:                                             ; preds = %3713, %3717
  %.str.5.sink1896 = phi ptr [ @.str.5, %3717 ], [ @.str.2, %3713 ]
  store i32 %3708, ptr %250, align 4, !tbaa !5
  %3719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = load i32, ptr %196, align 4, !tbaa !5
  %3722 = call ptr @s2n_strerror(i32 noundef %3721, ptr noundef nonnull @.str.4) #12
  %3723 = load i32, ptr %196, align 4, !tbaa !5
  %3724 = call ptr @s2n_strerror_debug(i32 noundef %3723, ptr noundef nonnull @.str.4) #12
  %3725 = load i32, ptr %250, align 4, !tbaa !5
  %3726 = call ptr @strerror(i32 noundef %3725) #12
  %3727 = load i32, ptr %250, align 4, !tbaa !5
  %3728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3719, ptr noundef nonnull %.str.5.sink1896, i32 noundef %3720, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %3722, ptr noundef %3724, ptr noundef %3726, i32 noundef %3727) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3729:                                             ; preds = %3703
  store i32 0, ptr %196, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %250, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  store ptr null, ptr %44, align 8, !tbaa !9
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %3734

3730:                                             ; preds = %3796
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %45) #12
  store ptr null, ptr %45, align 8, !tbaa !9
  %3731 = add nsw i32 %3797, 1
  store i32 %3731, ptr @test_count, align 4, !tbaa !5
  %3732 = call i32 @s2n_test_cert_chain_and_key_new(ptr noundef nonnull %45, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.87) #12
  %3733 = icmp eq i32 %3732, -1
  br i1 %3733, label %3829, label %3851

3734:                                             ; preds = %3729, %3796
  %3735 = phi i32 [ %.pre, %3729 ], [ %3797, %3796 ]
  %.0494719 = phi i32 [ 0, %3729 ], [ %3798, %3796 ]
  %3736 = add nsw i32 %3735, 1
  store i32 %3736, ptr @test_count, align 4, !tbaa !5
  %3737 = call i32 @s2n_extension_type_list_get(i32 noundef %.0494719, ptr noundef nonnull %44) #12
  %3738 = icmp eq i32 %3737, -1
  br i1 %3738, label %3739, label %3761

3739:                                             ; preds = %3734
  %3740 = load i32, ptr %250, align 4, !tbaa !5
  %3741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3742 = call i32 @s2n_print_stacktrace(ptr noundef %3741) #12
  %3743 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3744 = trunc nuw i8 %3743 to i1
  br i1 %3744, label %3745, label %3749

3745:                                             ; preds = %3739
  %3746 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3747 = call i32 @fileno(ptr noundef %3746) #12
  %3748 = call i32 @isatty(i32 noundef %3747) #12
  %.not637 = icmp eq i32 %3748, 0
  br i1 %.not637, label %3749, label %3750

3749:                                             ; preds = %3745, %3739
  br label %3750

3750:                                             ; preds = %3745, %3749
  %.str.5.sink1905 = phi ptr [ @.str.5, %3749 ], [ @.str.2, %3745 ]
  store i32 %3740, ptr %250, align 4, !tbaa !5
  %3751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3752 = load i32, ptr @test_count, align 4, !tbaa !5
  %3753 = load i32, ptr %196, align 4, !tbaa !5
  %3754 = call ptr @s2n_strerror(i32 noundef %3753, ptr noundef nonnull @.str.4) #12
  %3755 = load i32, ptr %196, align 4, !tbaa !5
  %3756 = call ptr @s2n_strerror_debug(i32 noundef %3755, ptr noundef nonnull @.str.4) #12
  %3757 = load i32, ptr %250, align 4, !tbaa !5
  %3758 = call ptr @strerror(i32 noundef %3757) #12
  %3759 = load i32, ptr %250, align 4, !tbaa !5
  %3760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3751, ptr noundef nonnull %.str.5.sink1905, i32 noundef %3752, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 458, ptr noundef %3754, ptr noundef %3756, ptr noundef %3758, i32 noundef %3759) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3761:                                             ; preds = %3734
  %3762 = load i32, ptr @test_count, align 4, !tbaa !5
  %3763 = add nsw i32 %3762, 1
  store i32 %3763, ptr @test_count, align 4, !tbaa !5
  %3764 = load ptr, ptr %44, align 8, !tbaa !9
  %3765 = icmp eq ptr %3764, null
  br i1 %3765, label %3772, label %.preheader

.preheader:                                       ; preds = %3761
  %3766 = getelementptr inbounds i8, ptr %3764, i64 8
  %3767 = load i8, ptr %3766, align 8, !tbaa !55
  %3768 = zext i8 %3767 to i64
  %.not720 = icmp eq i8 %3767, 0
  br i1 %.not720, label %3796, label %.lr.ph

.lr.ph:                                           ; preds = %.preheader
  %3769 = load ptr, ptr %3764, align 8, !tbaa !57
  %3770 = zext i8 %3767 to i32
  %3771 = add i32 %3763, %3770
  br label %3799

3772:                                             ; preds = %3761
  %3773 = load i32, ptr %250, align 4, !tbaa !5
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = call i32 @s2n_print_stacktrace(ptr noundef %3774) #12
  %3776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3777 = trunc nuw i8 %3776 to i1
  br i1 %3777, label %3778, label %3782

3778:                                             ; preds = %3772
  %3779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3780 = call i32 @fileno(ptr noundef %3779) #12
  %3781 = call i32 @isatty(i32 noundef %3780) #12
  %.not636 = icmp eq i32 %3781, 0
  br i1 %.not636, label %3782, label %3783

3782:                                             ; preds = %3778, %3772
  br label %3783

3783:                                             ; preds = %3778, %3782
  %.str.5.sink1914 = phi ptr [ @.str.5, %3782 ], [ @.str.2, %3778 ]
  store i32 %3773, ptr %250, align 4, !tbaa !5
  %3784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3785 = load i32, ptr @test_count, align 4, !tbaa !5
  %3786 = load i32, ptr %196, align 4, !tbaa !5
  %3787 = call ptr @s2n_strerror(i32 noundef %3786, ptr noundef nonnull @.str.4) #12
  %3788 = load i32, ptr %196, align 4, !tbaa !5
  %3789 = call ptr @s2n_strerror_debug(i32 noundef %3788, ptr noundef nonnull @.str.4) #12
  %3790 = load i32, ptr %250, align 4, !tbaa !5
  %3791 = call ptr @strerror(i32 noundef %3790) #12
  %3792 = load i32, ptr %250, align 4, !tbaa !5
  %3793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3784, ptr noundef nonnull %.str.5.sink1914, i32 noundef %3785, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 459, ptr noundef %3787, ptr noundef %3789, ptr noundef %3791, i32 noundef %3792) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3794:                                             ; preds = %3799
  %3795 = add nuw nsw i64 %.0495717, 1
  %exitcond722.not = icmp eq i64 %3795, %3768
  br i1 %exitcond722.not, label %._crit_edge, label %3799, !llvm.loop !58

._crit_edge:                                      ; preds = %3794
  store i32 %3771, ptr @test_count, align 4, !tbaa !5
  br label %3796

3796:                                             ; preds = %._crit_edge, %.preheader
  %3797 = phi i32 [ %3771, %._crit_edge ], [ %3763, %.preheader ]
  %3798 = add nuw nsw i32 %.0494719, 1
  %exitcond723.not = icmp eq i32 %3798, 10
  br i1 %exitcond723.not, label %3730, label %3734, !llvm.loop !59

3799:                                             ; preds = %.lr.ph, %3794
  %.0495717 = phi i64 [ 0, %.lr.ph ], [ %3795, %3794 ]
  %3800 = phi i32 [ %3763, %.lr.ph ], [ %3803, %3794 ]
  %3801 = getelementptr inbounds ptr, ptr %3769, i64 %.0495717
  %3802 = load ptr, ptr %3801, align 8, !tbaa !9
  %3803 = add nsw i32 %3800, 1
  %3804 = getelementptr inbounds i8, ptr %3802, i64 4
  %3805 = load i16, ptr %3804, align 4, !tbaa !54
  %3806 = add i16 %3805, -34
  %or.cond = icmp ult i16 %3806, -33
  br i1 %or.cond, label %3794, label %3807

3807:                                             ; preds = %3799
  store i32 %3803, ptr @test_count, align 4, !tbaa !5
  %3808 = load i32, ptr %250, align 4, !tbaa !5
  %3809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3810 = call i32 @s2n_print_stacktrace(ptr noundef %3809) #12
  %3811 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3812 = trunc nuw i8 %3811 to i1
  br i1 %3812, label %3813, label %3817

3813:                                             ; preds = %3807
  %3814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3815 = call i32 @fileno(ptr noundef %3814) #12
  %3816 = call i32 @isatty(i32 noundef %3815) #12
  %.not635 = icmp eq i32 %3816, 0
  br i1 %.not635, label %3817, label %3818

3817:                                             ; preds = %3813, %3807
  br label %3818

3818:                                             ; preds = %3813, %3817
  %.str.5.sink1923 = phi ptr [ @.str.5, %3817 ], [ @.str.2, %3813 ]
  store i32 %3808, ptr %250, align 4, !tbaa !5
  %3819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3820 = load i32, ptr @test_count, align 4, !tbaa !5
  %3821 = load i32, ptr %196, align 4, !tbaa !5
  %3822 = call ptr @s2n_strerror(i32 noundef %3821, ptr noundef nonnull @.str.4) #12
  %3823 = load i32, ptr %196, align 4, !tbaa !5
  %3824 = call ptr @s2n_strerror_debug(i32 noundef %3823, ptr noundef nonnull @.str.4) #12
  %3825 = load i32, ptr %250, align 4, !tbaa !5
  %3826 = call ptr @strerror(i32 noundef %3825) #12
  %3827 = load i32, ptr %250, align 4, !tbaa !5
  %3828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3819, ptr noundef nonnull %.str.5.sink1923, i32 noundef %3820, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 462, ptr noundef %3822, ptr noundef %3824, ptr noundef %3826, i32 noundef %3827) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3829:                                             ; preds = %3730
  %3830 = load i32, ptr %250, align 4, !tbaa !5
  %3831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3832 = call i32 @s2n_print_stacktrace(ptr noundef %3831) #12
  %3833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3834 = trunc nuw i8 %3833 to i1
  br i1 %3834, label %3835, label %3839

3835:                                             ; preds = %3829
  %3836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3837 = call i32 @fileno(ptr noundef %3836) #12
  %3838 = call i32 @isatty(i32 noundef %3837) #12
  %.not634 = icmp eq i32 %3838, 0
  br i1 %.not634, label %3839, label %3840

3839:                                             ; preds = %3835, %3829
  br label %3840

3840:                                             ; preds = %3835, %3839
  %.str.5.sink1932 = phi ptr [ @.str.5, %3839 ], [ @.str.2, %3835 ]
  store i32 %3830, ptr %250, align 4, !tbaa !5
  %3841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3842 = load i32, ptr @test_count, align 4, !tbaa !5
  %3843 = load i32, ptr %196, align 4, !tbaa !5
  %3844 = call ptr @s2n_strerror(i32 noundef %3843, ptr noundef nonnull @.str.4) #12
  %3845 = load i32, ptr %196, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror_debug(i32 noundef %3845, ptr noundef nonnull @.str.4) #12
  %3847 = load i32, ptr %250, align 4, !tbaa !5
  %3848 = call ptr @strerror(i32 noundef %3847) #12
  %3849 = load i32, ptr %250, align 4, !tbaa !5
  %3850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3841, ptr noundef nonnull %.str.5.sink1932, i32 noundef %3842, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 471, ptr noundef %3844, ptr noundef %3846, ptr noundef %3848, i32 noundef %3849) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3851:                                             ; preds = %3730
  %3852 = call ptr @s2n_config_new() #12
  %3853 = load i32, ptr @test_count, align 4, !tbaa !5
  %3854 = add nsw i32 %3853, 1
  store i32 %3854, ptr @test_count, align 4, !tbaa !5
  %3855 = load ptr, ptr %45, align 8, !tbaa !9
  %3856 = call i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef %3852, ptr noundef %3855) #12
  %3857 = icmp eq i32 %3856, -1
  br i1 %3857, label %3858, label %3880

3858:                                             ; preds = %3851
  %3859 = load i32, ptr %250, align 4, !tbaa !5
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3861 = call i32 @s2n_print_stacktrace(ptr noundef %3860) #12
  %3862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3863 = trunc nuw i8 %3862 to i1
  br i1 %3863, label %3864, label %3868

3864:                                             ; preds = %3858
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = call i32 @fileno(ptr noundef %3865) #12
  %3867 = call i32 @isatty(i32 noundef %3866) #12
  %.not633 = icmp eq i32 %3867, 0
  br i1 %.not633, label %3868, label %3869

3868:                                             ; preds = %3864, %3858
  br label %3869

3869:                                             ; preds = %3864, %3868
  %.str.5.sink1941 = phi ptr [ @.str.5, %3868 ], [ @.str.2, %3864 ]
  store i32 %3859, ptr %250, align 4, !tbaa !5
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = load i32, ptr %196, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror(i32 noundef %3872, ptr noundef nonnull @.str.4) #12
  %3874 = load i32, ptr %196, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror_debug(i32 noundef %3874, ptr noundef nonnull @.str.4) #12
  %3876 = load i32, ptr %250, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #12
  %3878 = load i32, ptr %250, align 4, !tbaa !5
  %3879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3870, ptr noundef nonnull %.str.5.sink1941, i32 noundef %3871, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %3873, ptr noundef %3875, ptr noundef %3877, i32 noundef %3878) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3880:                                             ; preds = %3851
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = add nsw i32 %3881, 1
  store i32 %3882, ptr @test_count, align 4, !tbaa !5
  %3883 = call i32 @s2n_config_set_unsafe_for_testing(ptr noundef %3852) #12
  %3884 = icmp eq i32 %3883, -1
  br i1 %3884, label %3885, label %3907

3885:                                             ; preds = %3880
  %3886 = load i32, ptr %250, align 4, !tbaa !5
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = call i32 @s2n_print_stacktrace(ptr noundef %3887) #12
  %3889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3890 = trunc nuw i8 %3889 to i1
  br i1 %3890, label %3891, label %3895

3891:                                             ; preds = %3885
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = call i32 @fileno(ptr noundef %3892) #12
  %3894 = call i32 @isatty(i32 noundef %3893) #12
  %.not632 = icmp eq i32 %3894, 0
  br i1 %.not632, label %3895, label %3896

3895:                                             ; preds = %3891, %3885
  br label %3896

3896:                                             ; preds = %3891, %3895
  %.str.5.sink1950 = phi ptr [ @.str.5, %3895 ], [ @.str.2, %3891 ]
  store i32 %3886, ptr %250, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = load i32, ptr %196, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef nonnull @.str.4) #12
  %3901 = load i32, ptr %196, align 4, !tbaa !5
  %3902 = call ptr @s2n_strerror_debug(i32 noundef %3901, ptr noundef nonnull @.str.4) #12
  %3903 = load i32, ptr %250, align 4, !tbaa !5
  %3904 = call ptr @strerror(i32 noundef %3903) #12
  %3905 = load i32, ptr %250, align 4, !tbaa !5
  %3906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3897, ptr noundef nonnull %.str.5.sink1950, i32 noundef %3898, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 475, ptr noundef %3900, ptr noundef %3902, ptr noundef %3904, i32 noundef %3905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3907:                                             ; preds = %3880
  %3908 = load i32, ptr @test_count, align 4, !tbaa !5
  %3909 = add nsw i32 %3908, 1
  store i32 %3909, ptr @test_count, align 4, !tbaa !5
  %3910 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %3852, ptr noundef nonnull @.str.91) #12
  %3911 = icmp eq i32 %3910, -1
  br i1 %3911, label %3912, label %3934

3912:                                             ; preds = %3907
  %3913 = load i32, ptr %250, align 4, !tbaa !5
  %3914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3915 = call i32 @s2n_print_stacktrace(ptr noundef %3914) #12
  %3916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3917 = trunc nuw i8 %3916 to i1
  br i1 %3917, label %3918, label %3922

3918:                                             ; preds = %3912
  %3919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3920 = call i32 @fileno(ptr noundef %3919) #12
  %3921 = call i32 @isatty(i32 noundef %3920) #12
  %.not631 = icmp eq i32 %3921, 0
  br i1 %.not631, label %3922, label %3923

3922:                                             ; preds = %3918, %3912
  br label %3923

3923:                                             ; preds = %3918, %3922
  %.str.5.sink1959 = phi ptr [ @.str.5, %3922 ], [ @.str.2, %3918 ]
  store i32 %3913, ptr %250, align 4, !tbaa !5
  %3924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3925 = load i32, ptr @test_count, align 4, !tbaa !5
  %3926 = load i32, ptr %196, align 4, !tbaa !5
  %3927 = call ptr @s2n_strerror(i32 noundef %3926, ptr noundef nonnull @.str.4) #12
  %3928 = load i32, ptr %196, align 4, !tbaa !5
  %3929 = call ptr @s2n_strerror_debug(i32 noundef %3928, ptr noundef nonnull @.str.4) #12
  %3930 = load i32, ptr %250, align 4, !tbaa !5
  %3931 = call ptr @strerror(i32 noundef %3930) #12
  %3932 = load i32, ptr %250, align 4, !tbaa !5
  %3933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3924, ptr noundef nonnull %.str.5.sink1959, i32 noundef %3925, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 476, ptr noundef %3927, ptr noundef %3929, ptr noundef %3931, i32 noundef %3932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3934:                                             ; preds = %3907
  %3935 = call zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext 51) #12
  %3936 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %3936, label %3937, label %4299

3937:                                             ; preds = %3934
  %3938 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %3939 = load i32, ptr @test_count, align 4, !tbaa !5
  %3940 = add nsw i32 %3939, 1
  store i32 %3940, ptr @test_count, align 4, !tbaa !5
  %3941 = icmp eq ptr %3938, null
  br i1 %3941, label %3942, label %3964

3942:                                             ; preds = %3937
  %3943 = load i32, ptr %250, align 4, !tbaa !5
  %3944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3945 = call i32 @s2n_print_stacktrace(ptr noundef %3944) #12
  %3946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3947 = trunc nuw i8 %3946 to i1
  br i1 %3947, label %3948, label %3952

3948:                                             ; preds = %3942
  %3949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3950 = call i32 @fileno(ptr noundef %3949) #12
  %3951 = call i32 @isatty(i32 noundef %3950) #12
  %.not630 = icmp eq i32 %3951, 0
  br i1 %.not630, label %3952, label %3953

3952:                                             ; preds = %3948, %3942
  br label %3953

3953:                                             ; preds = %3948, %3952
  %.str.5.sink1968 = phi ptr [ @.str.5, %3952 ], [ @.str.2, %3948 ]
  store i32 %3943, ptr %250, align 4, !tbaa !5
  %3954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3955 = load i32, ptr @test_count, align 4, !tbaa !5
  %3956 = load i32, ptr %196, align 4, !tbaa !5
  %3957 = call ptr @s2n_strerror(i32 noundef %3956, ptr noundef nonnull @.str.4) #12
  %3958 = load i32, ptr %196, align 4, !tbaa !5
  %3959 = call ptr @s2n_strerror_debug(i32 noundef %3958, ptr noundef nonnull @.str.4) #12
  %3960 = load i32, ptr %250, align 4, !tbaa !5
  %3961 = call ptr @strerror(i32 noundef %3960) #12
  %3962 = load i32, ptr %250, align 4, !tbaa !5
  %3963 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3954, ptr noundef nonnull %.str.5.sink1968, i32 noundef %3955, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 483, ptr noundef %3957, ptr noundef %3959, ptr noundef %3961, i32 noundef %3962) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3964:                                             ; preds = %3937
  %3965 = add nsw i32 %3939, 2
  store i32 %3965, ptr @test_count, align 4, !tbaa !5
  %3966 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3938, ptr noundef %3852) #12
  %3967 = icmp eq i32 %3966, -1
  br i1 %3967, label %3968, label %3990

3968:                                             ; preds = %3964
  %3969 = load i32, ptr %250, align 4, !tbaa !5
  %3970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3971 = call i32 @s2n_print_stacktrace(ptr noundef %3970) #12
  %3972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3973 = trunc nuw i8 %3972 to i1
  br i1 %3973, label %3974, label %3978

3974:                                             ; preds = %3968
  %3975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3976 = call i32 @fileno(ptr noundef %3975) #12
  %3977 = call i32 @isatty(i32 noundef %3976) #12
  %.not629 = icmp eq i32 %3977, 0
  br i1 %.not629, label %3978, label %3979

3978:                                             ; preds = %3974, %3968
  br label %3979

3979:                                             ; preds = %3974, %3978
  %.str.5.sink1977 = phi ptr [ @.str.5, %3978 ], [ @.str.2, %3974 ]
  store i32 %3969, ptr %250, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = load i32, ptr %196, align 4, !tbaa !5
  %3983 = call ptr @s2n_strerror(i32 noundef %3982, ptr noundef nonnull @.str.4) #12
  %3984 = load i32, ptr %196, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror_debug(i32 noundef %3984, ptr noundef nonnull @.str.4) #12
  %3986 = load i32, ptr %250, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #12
  %3988 = load i32, ptr %250, align 4, !tbaa !5
  %3989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3980, ptr noundef nonnull %.str.5.sink1977, i32 noundef %3981, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 484, ptr noundef %3983, ptr noundef %3985, ptr noundef %3987, i32 noundef %3988) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3990:                                             ; preds = %3964
  %3991 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %3992 = load i32, ptr @test_count, align 4, !tbaa !5
  %3993 = add nsw i32 %3992, 1
  store i32 %3993, ptr @test_count, align 4, !tbaa !5
  %3994 = icmp eq ptr %3991, null
  br i1 %3994, label %3995, label %4017

3995:                                             ; preds = %3990
  %3996 = load i32, ptr %250, align 4, !tbaa !5
  %3997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3998 = call i32 @s2n_print_stacktrace(ptr noundef %3997) #12
  %3999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4000 = trunc nuw i8 %3999 to i1
  br i1 %4000, label %4001, label %4005

4001:                                             ; preds = %3995
  %4002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4003 = call i32 @fileno(ptr noundef %4002) #12
  %4004 = call i32 @isatty(i32 noundef %4003) #12
  %.not628 = icmp eq i32 %4004, 0
  br i1 %.not628, label %4005, label %4006

4005:                                             ; preds = %4001, %3995
  br label %4006

4006:                                             ; preds = %4001, %4005
  %.str.5.sink1986 = phi ptr [ @.str.5, %4005 ], [ @.str.2, %4001 ]
  store i32 %3996, ptr %250, align 4, !tbaa !5
  %4007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4008 = load i32, ptr @test_count, align 4, !tbaa !5
  %4009 = load i32, ptr %196, align 4, !tbaa !5
  %4010 = call ptr @s2n_strerror(i32 noundef %4009, ptr noundef nonnull @.str.4) #12
  %4011 = load i32, ptr %196, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror_debug(i32 noundef %4011, ptr noundef nonnull @.str.4) #12
  %4013 = load i32, ptr %250, align 4, !tbaa !5
  %4014 = call ptr @strerror(i32 noundef %4013) #12
  %4015 = load i32, ptr %250, align 4, !tbaa !5
  %4016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4007, ptr noundef nonnull %.str.5.sink1986, i32 noundef %4008, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %4010, ptr noundef %4012, ptr noundef %4014, i32 noundef %4015) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4017:                                             ; preds = %3990
  %4018 = add nsw i32 %3992, 2
  store i32 %4018, ptr @test_count, align 4, !tbaa !5
  %4019 = call i32 @s2n_connection_set_config(ptr noundef nonnull %3991, ptr noundef %3852) #12
  %4020 = icmp eq i32 %4019, -1
  br i1 %4020, label %4021, label %4043

4021:                                             ; preds = %4017
  %4022 = load i32, ptr %250, align 4, !tbaa !5
  %4023 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4024 = call i32 @s2n_print_stacktrace(ptr noundef %4023) #12
  %4025 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4026 = trunc nuw i8 %4025 to i1
  br i1 %4026, label %4027, label %4031

4027:                                             ; preds = %4021
  %4028 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4029 = call i32 @fileno(ptr noundef %4028) #12
  %4030 = call i32 @isatty(i32 noundef %4029) #12
  %.not627 = icmp eq i32 %4030, 0
  br i1 %.not627, label %4031, label %4032

4031:                                             ; preds = %4027, %4021
  br label %4032

4032:                                             ; preds = %4027, %4031
  %.str.5.sink1995 = phi ptr [ @.str.5, %4031 ], [ @.str.2, %4027 ]
  store i32 %4022, ptr %250, align 4, !tbaa !5
  %4033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4034 = load i32, ptr @test_count, align 4, !tbaa !5
  %4035 = load i32, ptr %196, align 4, !tbaa !5
  %4036 = call ptr @s2n_strerror(i32 noundef %4035, ptr noundef nonnull @.str.4) #12
  %4037 = load i32, ptr %196, align 4, !tbaa !5
  %4038 = call ptr @s2n_strerror_debug(i32 noundef %4037, ptr noundef nonnull @.str.4) #12
  %4039 = load i32, ptr %250, align 4, !tbaa !5
  %4040 = call ptr @strerror(i32 noundef %4039) #12
  %4041 = load i32, ptr %250, align 4, !tbaa !5
  %4042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4033, ptr noundef nonnull %.str.5.sink1995, i32 noundef %4034, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 488, ptr noundef %4036, ptr noundef %4038, ptr noundef %4040, i32 noundef %4041) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4043:                                             ; preds = %4017
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #12
  store i64 0, ptr %46, align 8
  %4044 = load i32, ptr @test_count, align 4, !tbaa !5
  %4045 = add nsw i32 %4044, 1
  store i32 %4045, ptr @test_count, align 4, !tbaa !5
  %4046 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %46) #12
  %4047 = icmp eq i32 %4046, -1
  br i1 %4047, label %4048, label %4070

4048:                                             ; preds = %4043
  %4049 = load i32, ptr %250, align 4, !tbaa !5
  %4050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4051 = call i32 @s2n_print_stacktrace(ptr noundef %4050) #12
  %4052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4053 = trunc nuw i8 %4052 to i1
  br i1 %4053, label %4054, label %4058

4054:                                             ; preds = %4048
  %4055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4056 = call i32 @fileno(ptr noundef %4055) #12
  %4057 = call i32 @isatty(i32 noundef %4056) #12
  %.not626 = icmp eq i32 %4057, 0
  br i1 %.not626, label %4058, label %4059

4058:                                             ; preds = %4054, %4048
  br label %4059

4059:                                             ; preds = %4054, %4058
  %.str.5.sink2004 = phi ptr [ @.str.5, %4058 ], [ @.str.2, %4054 ]
  store i32 %4049, ptr %250, align 4, !tbaa !5
  %4060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4061 = load i32, ptr @test_count, align 4, !tbaa !5
  %4062 = load i32, ptr %196, align 4, !tbaa !5
  %4063 = call ptr @s2n_strerror(i32 noundef %4062, ptr noundef nonnull @.str.4) #12
  %4064 = load i32, ptr %196, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror_debug(i32 noundef %4064, ptr noundef nonnull @.str.4) #12
  %4066 = load i32, ptr %250, align 4, !tbaa !5
  %4067 = call ptr @strerror(i32 noundef %4066) #12
  %4068 = load i32, ptr %250, align 4, !tbaa !5
  %4069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4060, ptr noundef nonnull %.str.5.sink2004, i32 noundef %4061, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 491, ptr noundef %4063, ptr noundef %4065, ptr noundef %4067, i32 noundef %4068) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4070:                                             ; preds = %4043
  %4071 = load i32, ptr @test_count, align 4, !tbaa !5
  %4072 = add nsw i32 %4071, 1
  store i32 %4072, ptr @test_count, align 4, !tbaa !5
  %4073 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %3938, ptr noundef nonnull %3991, ptr noundef nonnull %46) #12
  %4074 = icmp eq i32 %4073, -1
  br i1 %4074, label %4075, label %4097

4075:                                             ; preds = %4070
  %4076 = load i32, ptr %250, align 4, !tbaa !5
  %4077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4078 = call i32 @s2n_print_stacktrace(ptr noundef %4077) #12
  %4079 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4080 = trunc nuw i8 %4079 to i1
  br i1 %4080, label %4081, label %4085

4081:                                             ; preds = %4075
  %4082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4083 = call i32 @fileno(ptr noundef %4082) #12
  %4084 = call i32 @isatty(i32 noundef %4083) #12
  %.not625 = icmp eq i32 %4084, 0
  br i1 %.not625, label %4085, label %4086

4085:                                             ; preds = %4081, %4075
  br label %4086

4086:                                             ; preds = %4081, %4085
  %.str.5.sink2013 = phi ptr [ @.str.5, %4085 ], [ @.str.2, %4081 ]
  store i32 %4076, ptr %250, align 4, !tbaa !5
  %4087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4088 = load i32, ptr @test_count, align 4, !tbaa !5
  %4089 = load i32, ptr %196, align 4, !tbaa !5
  %4090 = call ptr @s2n_strerror(i32 noundef %4089, ptr noundef nonnull @.str.4) #12
  %4091 = load i32, ptr %196, align 4, !tbaa !5
  %4092 = call ptr @s2n_strerror_debug(i32 noundef %4091, ptr noundef nonnull @.str.4) #12
  %4093 = load i32, ptr %250, align 4, !tbaa !5
  %4094 = call ptr @strerror(i32 noundef %4093) #12
  %4095 = load i32, ptr %250, align 4, !tbaa !5
  %4096 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4087, ptr noundef nonnull %.str.5.sink2013, i32 noundef %4088, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4090, ptr noundef %4092, ptr noundef %4094, i32 noundef %4095) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4097:                                             ; preds = %4070
  %4098 = load i32, ptr @test_count, align 4, !tbaa !5
  %4099 = add nsw i32 %4098, 1
  store i32 %4099, ptr @test_count, align 4, !tbaa !5
  %4100 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %3991, ptr noundef nonnull %3938, i32 noundef 1) #12
  %4101 = call zeroext i1 @s2n_result_is_ok(i32 %4100)
  br i1 %4101, label %4124, label %4102

4102:                                             ; preds = %4097
  %4103 = load i32, ptr %250, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = call i32 @s2n_print_stacktrace(ptr noundef %4104) #12
  %4106 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4107 = trunc nuw i8 %4106 to i1
  br i1 %4107, label %4108, label %4112

4108:                                             ; preds = %4102
  %4109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4110 = call i32 @fileno(ptr noundef %4109) #12
  %4111 = call i32 @isatty(i32 noundef %4110) #12
  %.not570 = icmp eq i32 %4111, 0
  br i1 %.not570, label %4112, label %4113

4112:                                             ; preds = %4108, %4102
  br label %4113

4113:                                             ; preds = %4108, %4112
  %.str.5.sink2022 = phi ptr [ @.str.5, %4112 ], [ @.str.2, %4108 ]
  store i32 %4103, ptr %250, align 4, !tbaa !5
  %4114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4115 = load i32, ptr @test_count, align 4, !tbaa !5
  %4116 = load i32, ptr %196, align 4, !tbaa !5
  %4117 = call ptr @s2n_strerror(i32 noundef %4116, ptr noundef nonnull @.str.4) #12
  %4118 = load i32, ptr %196, align 4, !tbaa !5
  %4119 = call ptr @s2n_strerror_debug(i32 noundef %4118, ptr noundef nonnull @.str.4) #12
  %4120 = load i32, ptr %250, align 4, !tbaa !5
  %4121 = call ptr @strerror(i32 noundef %4120) #12
  %4122 = load i32, ptr %250, align 4, !tbaa !5
  %4123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4114, ptr noundef nonnull %.str.5.sink2022, i32 noundef %4115, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 495, ptr noundef %4117, ptr noundef %4119, ptr noundef %4121, i32 noundef %4122) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4124:                                             ; preds = %4097
  %4125 = load i32, ptr @test_count, align 4, !tbaa !5
  %4126 = add nsw i32 %4125, 1
  store i32 %4126, ptr @test_count, align 4, !tbaa !5
  %4127 = getelementptr inbounds i8, ptr %3938, i64 80
  %4128 = zext i8 %3935 to i32
  %4129 = lshr i32 %4128, 3
  %4130 = zext nneg i32 %4129 to i64
  %4131 = getelementptr inbounds [22 x i8], ptr %4127, i64 0, i64 %4130
  %4132 = load i8, ptr %4131, align 1, !tbaa !43
  %4133 = zext i8 %4132 to i32
  %4134 = and i32 %4128, 7
  %4135 = shl nuw nsw i32 1, %4134
  %4136 = and i32 %4135, %4133
  %.not571 = icmp eq i32 %4136, 0
  br i1 %.not571, label %4137, label %4159

4137:                                             ; preds = %4124
  %4138 = load i32, ptr %250, align 4, !tbaa !5
  %4139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4140 = call i32 @s2n_print_stacktrace(ptr noundef %4139) #12
  %4141 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4142 = trunc nuw i8 %4141 to i1
  br i1 %4142, label %4143, label %4147

4143:                                             ; preds = %4137
  %4144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4145 = call i32 @fileno(ptr noundef %4144) #12
  %4146 = call i32 @isatty(i32 noundef %4145) #12
  %.not572 = icmp eq i32 %4146, 0
  br i1 %.not572, label %4147, label %4148

4147:                                             ; preds = %4143, %4137
  br label %4148

4148:                                             ; preds = %4143, %4147
  %.str.5.sink2031 = phi ptr [ @.str.5, %4147 ], [ @.str.2, %4143 ]
  store i32 %4138, ptr %250, align 4, !tbaa !5
  %4149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4150 = load i32, ptr @test_count, align 4, !tbaa !5
  %4151 = load i32, ptr %196, align 4, !tbaa !5
  %4152 = call ptr @s2n_strerror(i32 noundef %4151, ptr noundef nonnull @.str.4) #12
  %4153 = load i32, ptr %196, align 4, !tbaa !5
  %4154 = call ptr @s2n_strerror_debug(i32 noundef %4153, ptr noundef nonnull @.str.4) #12
  %4155 = load i32, ptr %250, align 4, !tbaa !5
  %4156 = call ptr @strerror(i32 noundef %4155) #12
  %4157 = load i32, ptr %250, align 4, !tbaa !5
  %4158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4149, ptr noundef nonnull %.str.5.sink2031, i32 noundef %4150, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 496, ptr noundef %4152, ptr noundef %4154, ptr noundef %4156, i32 noundef %4157) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4159:                                             ; preds = %4124
  %4160 = add nsw i32 %4125, 2
  store i32 %4160, ptr @test_count, align 4, !tbaa !5
  %4161 = getelementptr inbounds i8, ptr %3991, i64 102
  %4162 = getelementptr inbounds [22 x i8], ptr %4161, i64 0, i64 %4130
  %4163 = load i8, ptr %4162, align 1, !tbaa !43
  %4164 = zext i8 %4163 to i32
  %4165 = and i32 %4135, %4164
  %.not573 = icmp eq i32 %4165, 0
  br i1 %.not573, label %4166, label %4188

4166:                                             ; preds = %4159
  %4167 = load i32, ptr %250, align 4, !tbaa !5
  %4168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4169 = call i32 @s2n_print_stacktrace(ptr noundef %4168) #12
  %4170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4171 = trunc nuw i8 %4170 to i1
  br i1 %4171, label %4172, label %4176

4172:                                             ; preds = %4166
  %4173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4174 = call i32 @fileno(ptr noundef %4173) #12
  %4175 = call i32 @isatty(i32 noundef %4174) #12
  %.not574 = icmp eq i32 %4175, 0
  br i1 %.not574, label %4176, label %4177

4176:                                             ; preds = %4172, %4166
  br label %4177

4177:                                             ; preds = %4172, %4176
  %.str.5.sink2040 = phi ptr [ @.str.5, %4176 ], [ @.str.2, %4172 ]
  store i32 %4167, ptr %250, align 4, !tbaa !5
  %4178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4179 = load i32, ptr @test_count, align 4, !tbaa !5
  %4180 = load i32, ptr %196, align 4, !tbaa !5
  %4181 = call ptr @s2n_strerror(i32 noundef %4180, ptr noundef nonnull @.str.4) #12
  %4182 = load i32, ptr %196, align 4, !tbaa !5
  %4183 = call ptr @s2n_strerror_debug(i32 noundef %4182, ptr noundef nonnull @.str.4) #12
  %4184 = load i32, ptr %250, align 4, !tbaa !5
  %4185 = call ptr @strerror(i32 noundef %4184) #12
  %4186 = load i32, ptr %250, align 4, !tbaa !5
  %4187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4178, ptr noundef nonnull %.str.5.sink2040, i32 noundef %4179, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 497, ptr noundef %4181, ptr noundef %4183, ptr noundef %4185, i32 noundef %4186) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4188:                                             ; preds = %4159
  %4189 = add nsw i32 %4125, 3
  store i32 %4189, ptr @test_count, align 4, !tbaa !5
  %4190 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %3991, ptr noundef nonnull %3938, i32 noundef 16) #12
  %4191 = call zeroext i1 @s2n_result_is_ok(i32 %4190)
  br i1 %4191, label %4214, label %4192

4192:                                             ; preds = %4188
  %4193 = load i32, ptr %250, align 4, !tbaa !5
  %4194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4195 = call i32 @s2n_print_stacktrace(ptr noundef %4194) #12
  %4196 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4197 = trunc nuw i8 %4196 to i1
  br i1 %4197, label %4198, label %4202

4198:                                             ; preds = %4192
  %4199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4200 = call i32 @fileno(ptr noundef %4199) #12
  %4201 = call i32 @isatty(i32 noundef %4200) #12
  %.not575 = icmp eq i32 %4201, 0
  br i1 %.not575, label %4202, label %4203

4202:                                             ; preds = %4198, %4192
  br label %4203

4203:                                             ; preds = %4198, %4202
  %.str.5.sink2049 = phi ptr [ @.str.5, %4202 ], [ @.str.2, %4198 ]
  store i32 %4193, ptr %250, align 4, !tbaa !5
  %4204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = load i32, ptr %196, align 4, !tbaa !5
  %4207 = call ptr @s2n_strerror(i32 noundef %4206, ptr noundef nonnull @.str.4) #12
  %4208 = load i32, ptr %196, align 4, !tbaa !5
  %4209 = call ptr @s2n_strerror_debug(i32 noundef %4208, ptr noundef nonnull @.str.4) #12
  %4210 = load i32, ptr %250, align 4, !tbaa !5
  %4211 = call ptr @strerror(i32 noundef %4210) #12
  %4212 = load i32, ptr %250, align 4, !tbaa !5
  %4213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4204, ptr noundef nonnull %.str.5.sink2049, i32 noundef %4205, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 500, ptr noundef %4207, ptr noundef %4209, ptr noundef %4211, i32 noundef %4212) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4214:                                             ; preds = %4188
  %4215 = load i32, ptr @test_count, align 4, !tbaa !5
  %4216 = add nsw i32 %4215, 1
  store i32 %4216, ptr @test_count, align 4, !tbaa !5
  %4217 = getelementptr inbounds i8, ptr %3938, i64 124
  %4218 = getelementptr inbounds [22 x i8], ptr %4217, i64 0, i64 %4130
  %4219 = load i8, ptr %4218, align 1, !tbaa !43
  %4220 = zext i8 %4219 to i32
  %4221 = and i32 %4135, %4220
  %.not576 = icmp eq i32 %4221, 0
  br i1 %.not576, label %4222, label %4244

4222:                                             ; preds = %4214
  %4223 = load i32, ptr %250, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = call i32 @s2n_print_stacktrace(ptr noundef %4224) #12
  %4226 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4227 = trunc nuw i8 %4226 to i1
  br i1 %4227, label %4228, label %4232

4228:                                             ; preds = %4222
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = call i32 @fileno(ptr noundef %4229) #12
  %4231 = call i32 @isatty(i32 noundef %4230) #12
  %.not577 = icmp eq i32 %4231, 0
  br i1 %.not577, label %4232, label %4233

4232:                                             ; preds = %4228, %4222
  br label %4233

4233:                                             ; preds = %4228, %4232
  %.str.5.sink2058 = phi ptr [ @.str.5, %4232 ], [ @.str.2, %4228 ]
  store i32 %4223, ptr %250, align 4, !tbaa !5
  %4234 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4235 = load i32, ptr @test_count, align 4, !tbaa !5
  %4236 = load i32, ptr %196, align 4, !tbaa !5
  %4237 = call ptr @s2n_strerror(i32 noundef %4236, ptr noundef nonnull @.str.4) #12
  %4238 = load i32, ptr %196, align 4, !tbaa !5
  %4239 = call ptr @s2n_strerror_debug(i32 noundef %4238, ptr noundef nonnull @.str.4) #12
  %4240 = load i32, ptr %250, align 4, !tbaa !5
  %4241 = call ptr @strerror(i32 noundef %4240) #12
  %4242 = load i32, ptr %250, align 4, !tbaa !5
  %4243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4234, ptr noundef nonnull %.str.5.sink2058, i32 noundef %4235, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 501, ptr noundef %4237, ptr noundef %4239, ptr noundef %4241, i32 noundef %4242) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4244:                                             ; preds = %4214
  %4245 = add nsw i32 %4215, 2
  store i32 %4245, ptr @test_count, align 4, !tbaa !5
  %4246 = call i32 @s2n_connection_free(ptr noundef nonnull %3938) #12
  %4247 = icmp eq i32 %4246, -1
  br i1 %4247, label %4248, label %4270

4248:                                             ; preds = %4244
  %4249 = load i32, ptr %250, align 4, !tbaa !5
  %4250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4251 = call i32 @s2n_print_stacktrace(ptr noundef %4250) #12
  %4252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4253 = trunc nuw i8 %4252 to i1
  br i1 %4253, label %4254, label %4258

4254:                                             ; preds = %4248
  %4255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4256 = call i32 @fileno(ptr noundef %4255) #12
  %4257 = call i32 @isatty(i32 noundef %4256) #12
  %.not624 = icmp eq i32 %4257, 0
  br i1 %.not624, label %4258, label %4259

4258:                                             ; preds = %4254, %4248
  br label %4259

4259:                                             ; preds = %4254, %4258
  %.str.5.sink2067 = phi ptr [ @.str.5, %4258 ], [ @.str.2, %4254 ]
  store i32 %4249, ptr %250, align 4, !tbaa !5
  %4260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4261 = load i32, ptr @test_count, align 4, !tbaa !5
  %4262 = load i32, ptr %196, align 4, !tbaa !5
  %4263 = call ptr @s2n_strerror(i32 noundef %4262, ptr noundef nonnull @.str.4) #12
  %4264 = load i32, ptr %196, align 4, !tbaa !5
  %4265 = call ptr @s2n_strerror_debug(i32 noundef %4264, ptr noundef nonnull @.str.4) #12
  %4266 = load i32, ptr %250, align 4, !tbaa !5
  %4267 = call ptr @strerror(i32 noundef %4266) #12
  %4268 = load i32, ptr %250, align 4, !tbaa !5
  %4269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4260, ptr noundef nonnull %.str.5.sink2067, i32 noundef %4261, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 503, ptr noundef %4263, ptr noundef %4265, ptr noundef %4267, i32 noundef %4268) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4270:                                             ; preds = %4244
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = add nsw i32 %4271, 1
  store i32 %4272, ptr @test_count, align 4, !tbaa !5
  %4273 = call i32 @s2n_connection_free(ptr noundef nonnull %3991) #12
  %4274 = icmp eq i32 %4273, -1
  br i1 %4274, label %4275, label %4297

4275:                                             ; preds = %4270
  %4276 = load i32, ptr %250, align 4, !tbaa !5
  %4277 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4278 = call i32 @s2n_print_stacktrace(ptr noundef %4277) #12
  %4279 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4280 = trunc nuw i8 %4279 to i1
  br i1 %4280, label %4281, label %4285

4281:                                             ; preds = %4275
  %4282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4283 = call i32 @fileno(ptr noundef %4282) #12
  %4284 = call i32 @isatty(i32 noundef %4283) #12
  %.not623 = icmp eq i32 %4284, 0
  br i1 %.not623, label %4285, label %4286

4285:                                             ; preds = %4281, %4275
  br label %4286

4286:                                             ; preds = %4281, %4285
  %.str.5.sink2076 = phi ptr [ @.str.5, %4285 ], [ @.str.2, %4281 ]
  store i32 %4276, ptr %250, align 4, !tbaa !5
  %4287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4288 = load i32, ptr @test_count, align 4, !tbaa !5
  %4289 = load i32, ptr %196, align 4, !tbaa !5
  %4290 = call ptr @s2n_strerror(i32 noundef %4289, ptr noundef nonnull @.str.4) #12
  %4291 = load i32, ptr %196, align 4, !tbaa !5
  %4292 = call ptr @s2n_strerror_debug(i32 noundef %4291, ptr noundef nonnull @.str.4) #12
  %4293 = load i32, ptr %250, align 4, !tbaa !5
  %4294 = call ptr @strerror(i32 noundef %4293) #12
  %4295 = load i32, ptr %250, align 4, !tbaa !5
  %4296 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4287, ptr noundef nonnull %.str.5.sink2076, i32 noundef %4288, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 504, ptr noundef %4290, ptr noundef %4292, ptr noundef %4294, i32 noundef %4295) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4297:                                             ; preds = %4270
  %4298 = call i32 @s2n_io_pair_close(ptr noundef nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  br label %4299

4299:                                             ; preds = %4297, %3934
  %4300 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %4301 = load i32, ptr @test_count, align 4, !tbaa !5
  %4302 = add nsw i32 %4301, 1
  store i32 %4302, ptr @test_count, align 4, !tbaa !5
  %4303 = icmp eq ptr %4300, null
  br i1 %4303, label %4304, label %4326

4304:                                             ; preds = %4299
  %4305 = load i32, ptr %250, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = call i32 @s2n_print_stacktrace(ptr noundef %4306) #12
  %4308 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4309 = trunc nuw i8 %4308 to i1
  br i1 %4309, label %4310, label %4314

4310:                                             ; preds = %4304
  %4311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4312 = call i32 @fileno(ptr noundef %4311) #12
  %4313 = call i32 @isatty(i32 noundef %4312) #12
  %.not622 = icmp eq i32 %4313, 0
  br i1 %.not622, label %4314, label %4315

4314:                                             ; preds = %4310, %4304
  br label %4315

4315:                                             ; preds = %4310, %4314
  %.str.5.sink2085 = phi ptr [ @.str.5, %4314 ], [ @.str.2, %4310 ]
  store i32 %4305, ptr %250, align 4, !tbaa !5
  %4316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4317 = load i32, ptr @test_count, align 4, !tbaa !5
  %4318 = load i32, ptr %196, align 4, !tbaa !5
  %4319 = call ptr @s2n_strerror(i32 noundef %4318, ptr noundef nonnull @.str.4) #12
  %4320 = load i32, ptr %196, align 4, !tbaa !5
  %4321 = call ptr @s2n_strerror_debug(i32 noundef %4320, ptr noundef nonnull @.str.4) #12
  %4322 = load i32, ptr %250, align 4, !tbaa !5
  %4323 = call ptr @strerror(i32 noundef %4322) #12
  %4324 = load i32, ptr %250, align 4, !tbaa !5
  %4325 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4316, ptr noundef nonnull %.str.5.sink2085, i32 noundef %4317, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 510, ptr noundef %4319, ptr noundef %4321, ptr noundef %4323, i32 noundef %4324) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4326:                                             ; preds = %4299
  %4327 = add nsw i32 %4301, 2
  store i32 %4327, ptr @test_count, align 4, !tbaa !5
  %4328 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4300, ptr noundef %3852) #12
  %4329 = icmp eq i32 %4328, -1
  br i1 %4329, label %4330, label %4352

4330:                                             ; preds = %4326
  %4331 = load i32, ptr %250, align 4, !tbaa !5
  %4332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4333 = call i32 @s2n_print_stacktrace(ptr noundef %4332) #12
  %4334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4335 = trunc nuw i8 %4334 to i1
  br i1 %4335, label %4336, label %4340

4336:                                             ; preds = %4330
  %4337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4338 = call i32 @fileno(ptr noundef %4337) #12
  %4339 = call i32 @isatty(i32 noundef %4338) #12
  %.not621 = icmp eq i32 %4339, 0
  br i1 %.not621, label %4340, label %4341

4340:                                             ; preds = %4336, %4330
  br label %4341

4341:                                             ; preds = %4336, %4340
  %.str.5.sink2094 = phi ptr [ @.str.5, %4340 ], [ @.str.2, %4336 ]
  store i32 %4331, ptr %250, align 4, !tbaa !5
  %4342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4343 = load i32, ptr @test_count, align 4, !tbaa !5
  %4344 = load i32, ptr %196, align 4, !tbaa !5
  %4345 = call ptr @s2n_strerror(i32 noundef %4344, ptr noundef nonnull @.str.4) #12
  %4346 = load i32, ptr %196, align 4, !tbaa !5
  %4347 = call ptr @s2n_strerror_debug(i32 noundef %4346, ptr noundef nonnull @.str.4) #12
  %4348 = load i32, ptr %250, align 4, !tbaa !5
  %4349 = call ptr @strerror(i32 noundef %4348) #12
  %4350 = load i32, ptr %250, align 4, !tbaa !5
  %4351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4342, ptr noundef nonnull %.str.5.sink2094, i32 noundef %4343, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 511, ptr noundef %4345, ptr noundef %4347, ptr noundef %4349, i32 noundef %4350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4352:                                             ; preds = %4326
  %4353 = load i32, ptr @test_count, align 4, !tbaa !5
  %4354 = add nsw i32 %4353, 1
  store i32 %4354, ptr @test_count, align 4, !tbaa !5
  %4355 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4300, ptr noundef nonnull @.str.106) #12
  %4356 = icmp eq i32 %4355, -1
  br i1 %4356, label %4357, label %4379

4357:                                             ; preds = %4352
  %4358 = load i32, ptr %250, align 4, !tbaa !5
  %4359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4360 = call i32 @s2n_print_stacktrace(ptr noundef %4359) #12
  %4361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4362 = trunc nuw i8 %4361 to i1
  br i1 %4362, label %4363, label %4367

4363:                                             ; preds = %4357
  %4364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4365 = call i32 @fileno(ptr noundef %4364) #12
  %4366 = call i32 @isatty(i32 noundef %4365) #12
  %.not620 = icmp eq i32 %4366, 0
  br i1 %.not620, label %4367, label %4368

4367:                                             ; preds = %4363, %4357
  br label %4368

4368:                                             ; preds = %4363, %4367
  %.str.5.sink2103 = phi ptr [ @.str.5, %4367 ], [ @.str.2, %4363 ]
  store i32 %4358, ptr %250, align 4, !tbaa !5
  %4369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4370 = load i32, ptr @test_count, align 4, !tbaa !5
  %4371 = load i32, ptr %196, align 4, !tbaa !5
  %4372 = call ptr @s2n_strerror(i32 noundef %4371, ptr noundef nonnull @.str.4) #12
  %4373 = load i32, ptr %196, align 4, !tbaa !5
  %4374 = call ptr @s2n_strerror_debug(i32 noundef %4373, ptr noundef nonnull @.str.4) #12
  %4375 = load i32, ptr %250, align 4, !tbaa !5
  %4376 = call ptr @strerror(i32 noundef %4375) #12
  %4377 = load i32, ptr %250, align 4, !tbaa !5
  %4378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4369, ptr noundef nonnull %.str.5.sink2103, i32 noundef %4370, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 512, ptr noundef %4372, ptr noundef %4374, ptr noundef %4376, i32 noundef %4377) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4379:                                             ; preds = %4352
  %4380 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4381 = load i32, ptr @test_count, align 4, !tbaa !5
  %4382 = add nsw i32 %4381, 1
  store i32 %4382, ptr @test_count, align 4, !tbaa !5
  %4383 = icmp eq ptr %4380, null
  br i1 %4383, label %4384, label %4406

4384:                                             ; preds = %4379
  %4385 = load i32, ptr %250, align 4, !tbaa !5
  %4386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4387 = call i32 @s2n_print_stacktrace(ptr noundef %4386) #12
  %4388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4389 = trunc nuw i8 %4388 to i1
  br i1 %4389, label %4390, label %4394

4390:                                             ; preds = %4384
  %4391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4392 = call i32 @fileno(ptr noundef %4391) #12
  %4393 = call i32 @isatty(i32 noundef %4392) #12
  %.not619 = icmp eq i32 %4393, 0
  br i1 %.not619, label %4394, label %4395

4394:                                             ; preds = %4390, %4384
  br label %4395

4395:                                             ; preds = %4390, %4394
  %.str.5.sink2112 = phi ptr [ @.str.5, %4394 ], [ @.str.2, %4390 ]
  store i32 %4385, ptr %250, align 4, !tbaa !5
  %4396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4397 = load i32, ptr @test_count, align 4, !tbaa !5
  %4398 = load i32, ptr %196, align 4, !tbaa !5
  %4399 = call ptr @s2n_strerror(i32 noundef %4398, ptr noundef nonnull @.str.4) #12
  %4400 = load i32, ptr %196, align 4, !tbaa !5
  %4401 = call ptr @s2n_strerror_debug(i32 noundef %4400, ptr noundef nonnull @.str.4) #12
  %4402 = load i32, ptr %250, align 4, !tbaa !5
  %4403 = call ptr @strerror(i32 noundef %4402) #12
  %4404 = load i32, ptr %250, align 4, !tbaa !5
  %4405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4396, ptr noundef nonnull %.str.5.sink2112, i32 noundef %4397, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 515, ptr noundef %4399, ptr noundef %4401, ptr noundef %4403, i32 noundef %4404) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4406:                                             ; preds = %4379
  %4407 = add nsw i32 %4381, 2
  store i32 %4407, ptr @test_count, align 4, !tbaa !5
  %4408 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4380, ptr noundef %3852) #12
  %4409 = icmp eq i32 %4408, -1
  br i1 %4409, label %4410, label %4432

4410:                                             ; preds = %4406
  %4411 = load i32, ptr %250, align 4, !tbaa !5
  %4412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4413 = call i32 @s2n_print_stacktrace(ptr noundef %4412) #12
  %4414 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4415 = trunc nuw i8 %4414 to i1
  br i1 %4415, label %4416, label %4420

4416:                                             ; preds = %4410
  %4417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4418 = call i32 @fileno(ptr noundef %4417) #12
  %4419 = call i32 @isatty(i32 noundef %4418) #12
  %.not618 = icmp eq i32 %4419, 0
  br i1 %.not618, label %4420, label %4421

4420:                                             ; preds = %4416, %4410
  br label %4421

4421:                                             ; preds = %4416, %4420
  %.str.5.sink2121 = phi ptr [ @.str.5, %4420 ], [ @.str.2, %4416 ]
  store i32 %4411, ptr %250, align 4, !tbaa !5
  %4422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4423 = load i32, ptr @test_count, align 4, !tbaa !5
  %4424 = load i32, ptr %196, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror(i32 noundef %4424, ptr noundef nonnull @.str.4) #12
  %4426 = load i32, ptr %196, align 4, !tbaa !5
  %4427 = call ptr @s2n_strerror_debug(i32 noundef %4426, ptr noundef nonnull @.str.4) #12
  %4428 = load i32, ptr %250, align 4, !tbaa !5
  %4429 = call ptr @strerror(i32 noundef %4428) #12
  %4430 = load i32, ptr %250, align 4, !tbaa !5
  %4431 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4422, ptr noundef nonnull %.str.5.sink2121, i32 noundef %4423, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 516, ptr noundef %4425, ptr noundef %4427, ptr noundef %4429, i32 noundef %4430) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4432:                                             ; preds = %4406
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %47) #12
  store i64 0, ptr %47, align 8
  %4433 = load i32, ptr @test_count, align 4, !tbaa !5
  %4434 = add nsw i32 %4433, 1
  store i32 %4434, ptr @test_count, align 4, !tbaa !5
  %4435 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %47) #12
  %4436 = icmp eq i32 %4435, -1
  br i1 %4436, label %4437, label %4459

4437:                                             ; preds = %4432
  %4438 = load i32, ptr %250, align 4, !tbaa !5
  %4439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4440 = call i32 @s2n_print_stacktrace(ptr noundef %4439) #12
  %4441 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4442 = trunc nuw i8 %4441 to i1
  br i1 %4442, label %4443, label %4447

4443:                                             ; preds = %4437
  %4444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4445 = call i32 @fileno(ptr noundef %4444) #12
  %4446 = call i32 @isatty(i32 noundef %4445) #12
  %.not617 = icmp eq i32 %4446, 0
  br i1 %.not617, label %4447, label %4448

4447:                                             ; preds = %4443, %4437
  br label %4448

4448:                                             ; preds = %4443, %4447
  %.str.5.sink2130 = phi ptr [ @.str.5, %4447 ], [ @.str.2, %4443 ]
  store i32 %4438, ptr %250, align 4, !tbaa !5
  %4449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4450 = load i32, ptr @test_count, align 4, !tbaa !5
  %4451 = load i32, ptr %196, align 4, !tbaa !5
  %4452 = call ptr @s2n_strerror(i32 noundef %4451, ptr noundef nonnull @.str.4) #12
  %4453 = load i32, ptr %196, align 4, !tbaa !5
  %4454 = call ptr @s2n_strerror_debug(i32 noundef %4453, ptr noundef nonnull @.str.4) #12
  %4455 = load i32, ptr %250, align 4, !tbaa !5
  %4456 = call ptr @strerror(i32 noundef %4455) #12
  %4457 = load i32, ptr %250, align 4, !tbaa !5
  %4458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4449, ptr noundef nonnull %.str.5.sink2130, i32 noundef %4450, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 519, ptr noundef %4452, ptr noundef %4454, ptr noundef %4456, i32 noundef %4457) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4459:                                             ; preds = %4432
  %4460 = load i32, ptr @test_count, align 4, !tbaa !5
  %4461 = add nsw i32 %4460, 1
  store i32 %4461, ptr @test_count, align 4, !tbaa !5
  %4462 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %4300, ptr noundef nonnull %4380, ptr noundef nonnull %47) #12
  %4463 = icmp eq i32 %4462, -1
  br i1 %4463, label %4464, label %4486

4464:                                             ; preds = %4459
  %4465 = load i32, ptr %250, align 4, !tbaa !5
  %4466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4467 = call i32 @s2n_print_stacktrace(ptr noundef %4466) #12
  %4468 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4469 = trunc nuw i8 %4468 to i1
  br i1 %4469, label %4470, label %4474

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

4474:                                             ; preds = %4470, %4464
  br label %4475

4475:                                             ; preds = %4470, %4474
  %.str.5.sink2139 = phi ptr [ @.str.5, %4474 ], [ @.str.2, %4470 ]
  store i32 %4465, ptr %250, align 4, !tbaa !5
  %4476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4477 = load i32, ptr @test_count, align 4, !tbaa !5
  %4478 = load i32, ptr %196, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror(i32 noundef %4478, ptr noundef nonnull @.str.4) #12
  %4480 = load i32, ptr %196, align 4, !tbaa !5
  %4481 = call ptr @s2n_strerror_debug(i32 noundef %4480, ptr noundef nonnull @.str.4) #12
  %4482 = load i32, ptr %250, align 4, !tbaa !5
  %4483 = call ptr @strerror(i32 noundef %4482) #12
  %4484 = load i32, ptr %250, align 4, !tbaa !5
  %4485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4476, ptr noundef nonnull %.str.5.sink2139, i32 noundef %4477, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 520, ptr noundef %4479, ptr noundef %4481, ptr noundef %4483, i32 noundef %4484) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4486:                                             ; preds = %4459
  %4487 = load i32, ptr @test_count, align 4, !tbaa !5
  %4488 = add nsw i32 %4487, 1
  store i32 %4488, ptr @test_count, align 4, !tbaa !5
  %4489 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %4380, ptr noundef nonnull %4300, i32 noundef 1) #12
  %4490 = call zeroext i1 @s2n_result_is_ok(i32 %4489)
  br i1 %4490, label %4513, label %4491

4491:                                             ; preds = %4486
  %4492 = load i32, ptr %250, align 4, !tbaa !5
  %4493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4494 = call i32 @s2n_print_stacktrace(ptr noundef %4493) #12
  %4495 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4496 = trunc nuw i8 %4495 to i1
  br i1 %4496, label %4497, label %4501

4497:                                             ; preds = %4491
  %4498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4499 = call i32 @fileno(ptr noundef %4498) #12
  %4500 = call i32 @isatty(i32 noundef %4499) #12
  %.not578 = icmp eq i32 %4500, 0
  br i1 %.not578, label %4501, label %4502

4501:                                             ; preds = %4497, %4491
  br label %4502

4502:                                             ; preds = %4497, %4501
  %.str.5.sink2148 = phi ptr [ @.str.5, %4501 ], [ @.str.2, %4497 ]
  store i32 %4492, ptr %250, align 4, !tbaa !5
  %4503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4504 = load i32, ptr @test_count, align 4, !tbaa !5
  %4505 = load i32, ptr %196, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror(i32 noundef %4505, ptr noundef nonnull @.str.4) #12
  %4507 = load i32, ptr %196, align 4, !tbaa !5
  %4508 = call ptr @s2n_strerror_debug(i32 noundef %4507, ptr noundef nonnull @.str.4) #12
  %4509 = load i32, ptr %250, align 4, !tbaa !5
  %4510 = call ptr @strerror(i32 noundef %4509) #12
  %4511 = load i32, ptr %250, align 4, !tbaa !5
  %4512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4503, ptr noundef nonnull %.str.5.sink2148, i32 noundef %4504, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 523, ptr noundef %4506, ptr noundef %4508, ptr noundef %4510, i32 noundef %4511) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4513:                                             ; preds = %4486
  %4514 = load i32, ptr @test_count, align 4, !tbaa !5
  %4515 = add nsw i32 %4514, 1
  store i32 %4515, ptr @test_count, align 4, !tbaa !5
  %4516 = getelementptr inbounds i8, ptr %4300, i64 80
  %4517 = zext i8 %3935 to i32
  %4518 = lshr i32 %4517, 3
  %4519 = zext nneg i32 %4518 to i64
  %4520 = getelementptr inbounds [22 x i8], ptr %4516, i64 0, i64 %4519
  %4521 = load i8, ptr %4520, align 1, !tbaa !43
  %4522 = zext i8 %4521 to i32
  %4523 = and i32 %4517, 7
  %4524 = shl nuw nsw i32 1, %4523
  %4525 = and i32 %4524, %4522
  %.not579 = icmp eq i32 %4525, 0
  br i1 %.not579, label %4548, label %4526

4526:                                             ; preds = %4513
  %4527 = load i32, ptr %250, align 4, !tbaa !5
  %4528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4529 = call i32 @s2n_print_stacktrace(ptr noundef %4528) #12
  %4530 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4531 = trunc nuw i8 %4530 to i1
  br i1 %4531, label %4532, label %4536

4532:                                             ; preds = %4526
  %4533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4534 = call i32 @fileno(ptr noundef %4533) #12
  %4535 = call i32 @isatty(i32 noundef %4534) #12
  %.not615 = icmp eq i32 %4535, 0
  br i1 %.not615, label %4536, label %4537

4536:                                             ; preds = %4532, %4526
  br label %4537

4537:                                             ; preds = %4532, %4536
  %.str.5.sink2157 = phi ptr [ @.str.5, %4536 ], [ @.str.2, %4532 ]
  store i32 %4527, ptr %250, align 4, !tbaa !5
  %4538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4539 = load i32, ptr @test_count, align 4, !tbaa !5
  %4540 = load i32, ptr %196, align 4, !tbaa !5
  %4541 = call ptr @s2n_strerror(i32 noundef %4540, ptr noundef nonnull @.str.4) #12
  %4542 = load i32, ptr %196, align 4, !tbaa !5
  %4543 = call ptr @s2n_strerror_debug(i32 noundef %4542, ptr noundef nonnull @.str.4) #12
  %4544 = load i32, ptr %250, align 4, !tbaa !5
  %4545 = call ptr @strerror(i32 noundef %4544) #12
  %4546 = load i32, ptr %250, align 4, !tbaa !5
  %4547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4538, ptr noundef nonnull %.str.5.sink2157, i32 noundef %4539, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 524, ptr noundef %4541, ptr noundef %4543, ptr noundef %4545, i32 noundef %4546) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4548:                                             ; preds = %4513
  %4549 = add nsw i32 %4514, 2
  store i32 %4549, ptr @test_count, align 4, !tbaa !5
  %4550 = getelementptr inbounds i8, ptr %4380, i64 102
  %4551 = getelementptr inbounds [22 x i8], ptr %4550, i64 0, i64 %4519
  %4552 = load i8, ptr %4551, align 1, !tbaa !43
  %4553 = zext i8 %4552 to i32
  %4554 = and i32 %4524, %4553
  %.not580 = icmp eq i32 %4554, 0
  br i1 %.not580, label %4577, label %4555

4555:                                             ; preds = %4548
  %4556 = load i32, ptr %250, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = call i32 @s2n_print_stacktrace(ptr noundef %4557) #12
  %4559 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4560 = trunc nuw i8 %4559 to i1
  br i1 %4560, label %4561, label %4565

4561:                                             ; preds = %4555
  %4562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4563 = call i32 @fileno(ptr noundef %4562) #12
  %4564 = call i32 @isatty(i32 noundef %4563) #12
  %.not614 = icmp eq i32 %4564, 0
  br i1 %.not614, label %4565, label %4566

4565:                                             ; preds = %4561, %4555
  br label %4566

4566:                                             ; preds = %4561, %4565
  %.str.5.sink2166 = phi ptr [ @.str.5, %4565 ], [ @.str.2, %4561 ]
  store i32 %4556, ptr %250, align 4, !tbaa !5
  %4567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4568 = load i32, ptr @test_count, align 4, !tbaa !5
  %4569 = load i32, ptr %196, align 4, !tbaa !5
  %4570 = call ptr @s2n_strerror(i32 noundef %4569, ptr noundef nonnull @.str.4) #12
  %4571 = load i32, ptr %196, align 4, !tbaa !5
  %4572 = call ptr @s2n_strerror_debug(i32 noundef %4571, ptr noundef nonnull @.str.4) #12
  %4573 = load i32, ptr %250, align 4, !tbaa !5
  %4574 = call ptr @strerror(i32 noundef %4573) #12
  %4575 = load i32, ptr %250, align 4, !tbaa !5
  %4576 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4567, ptr noundef nonnull %.str.5.sink2166, i32 noundef %4568, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 525, ptr noundef %4570, ptr noundef %4572, ptr noundef %4574, i32 noundef %4575) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4577:                                             ; preds = %4548
  %4578 = add nsw i32 %4514, 3
  store i32 %4578, ptr @test_count, align 4, !tbaa !5
  %4579 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %4380, ptr noundef nonnull %4300, i32 noundef 16) #12
  %4580 = call zeroext i1 @s2n_result_is_ok(i32 %4579)
  br i1 %4580, label %4603, label %4581

4581:                                             ; preds = %4577
  %4582 = load i32, ptr %250, align 4, !tbaa !5
  %4583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4584 = call i32 @s2n_print_stacktrace(ptr noundef %4583) #12
  %4585 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4586 = trunc nuw i8 %4585 to i1
  br i1 %4586, label %4587, label %4591

4587:                                             ; preds = %4581
  %4588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4589 = call i32 @fileno(ptr noundef %4588) #12
  %4590 = call i32 @isatty(i32 noundef %4589) #12
  %.not581 = icmp eq i32 %4590, 0
  br i1 %.not581, label %4591, label %4592

4591:                                             ; preds = %4587, %4581
  br label %4592

4592:                                             ; preds = %4587, %4591
  %.str.5.sink2175 = phi ptr [ @.str.5, %4591 ], [ @.str.2, %4587 ]
  store i32 %4582, ptr %250, align 4, !tbaa !5
  %4593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4594 = load i32, ptr @test_count, align 4, !tbaa !5
  %4595 = load i32, ptr %196, align 4, !tbaa !5
  %4596 = call ptr @s2n_strerror(i32 noundef %4595, ptr noundef nonnull @.str.4) #12
  %4597 = load i32, ptr %196, align 4, !tbaa !5
  %4598 = call ptr @s2n_strerror_debug(i32 noundef %4597, ptr noundef nonnull @.str.4) #12
  %4599 = load i32, ptr %250, align 4, !tbaa !5
  %4600 = call ptr @strerror(i32 noundef %4599) #12
  %4601 = load i32, ptr %250, align 4, !tbaa !5
  %4602 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4593, ptr noundef nonnull %.str.5.sink2175, i32 noundef %4594, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 528, ptr noundef %4596, ptr noundef %4598, ptr noundef %4600, i32 noundef %4601) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4603:                                             ; preds = %4577
  %4604 = load i32, ptr @test_count, align 4, !tbaa !5
  %4605 = add nsw i32 %4604, 1
  store i32 %4605, ptr @test_count, align 4, !tbaa !5
  %4606 = getelementptr inbounds i8, ptr %4300, i64 102
  %4607 = getelementptr inbounds [22 x i8], ptr %4606, i64 0, i64 %4519
  %4608 = load i8, ptr %4607, align 1, !tbaa !43
  %4609 = zext i8 %4608 to i32
  %4610 = and i32 %4524, %4609
  %.not582 = icmp eq i32 %4610, 0
  br i1 %.not582, label %4633, label %4611

4611:                                             ; preds = %4603
  %4612 = load i32, ptr %250, align 4, !tbaa !5
  %4613 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4614 = call i32 @s2n_print_stacktrace(ptr noundef %4613) #12
  %4615 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4616 = trunc nuw i8 %4615 to i1
  br i1 %4616, label %4617, label %4621

4617:                                             ; preds = %4611
  %4618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4619 = call i32 @fileno(ptr noundef %4618) #12
  %4620 = call i32 @isatty(i32 noundef %4619) #12
  %.not613 = icmp eq i32 %4620, 0
  br i1 %.not613, label %4621, label %4622

4621:                                             ; preds = %4617, %4611
  br label %4622

4622:                                             ; preds = %4617, %4621
  %.str.5.sink2184 = phi ptr [ @.str.5, %4621 ], [ @.str.2, %4617 ]
  store i32 %4612, ptr %250, align 4, !tbaa !5
  %4623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4624 = load i32, ptr @test_count, align 4, !tbaa !5
  %4625 = load i32, ptr %196, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror(i32 noundef %4625, ptr noundef nonnull @.str.4) #12
  %4627 = load i32, ptr %196, align 4, !tbaa !5
  %4628 = call ptr @s2n_strerror_debug(i32 noundef %4627, ptr noundef nonnull @.str.4) #12
  %4629 = load i32, ptr %250, align 4, !tbaa !5
  %4630 = call ptr @strerror(i32 noundef %4629) #12
  %4631 = load i32, ptr %250, align 4, !tbaa !5
  %4632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4623, ptr noundef nonnull %.str.5.sink2184, i32 noundef %4624, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 529, ptr noundef %4626, ptr noundef %4628, ptr noundef %4630, i32 noundef %4631) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4633:                                             ; preds = %4603
  %4634 = add nsw i32 %4604, 2
  store i32 %4634, ptr @test_count, align 4, !tbaa !5
  %4635 = getelementptr inbounds i8, ptr %4380, i64 80
  %4636 = getelementptr inbounds [22 x i8], ptr %4635, i64 0, i64 %4519
  %4637 = load i8, ptr %4636, align 1, !tbaa !43
  %4638 = zext i8 %4637 to i32
  %4639 = and i32 %4524, %4638
  %.not583 = icmp eq i32 %4639, 0
  br i1 %.not583, label %4662, label %4640

4640:                                             ; preds = %4633
  %4641 = load i32, ptr %250, align 4, !tbaa !5
  %4642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4643 = call i32 @s2n_print_stacktrace(ptr noundef %4642) #12
  %4644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4645 = trunc nuw i8 %4644 to i1
  br i1 %4645, label %4646, label %4650

4646:                                             ; preds = %4640
  %4647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4648 = call i32 @fileno(ptr noundef %4647) #12
  %4649 = call i32 @isatty(i32 noundef %4648) #12
  %.not612 = icmp eq i32 %4649, 0
  br i1 %.not612, label %4650, label %4651

4650:                                             ; preds = %4646, %4640
  br label %4651

4651:                                             ; preds = %4646, %4650
  %.str.5.sink2193 = phi ptr [ @.str.5, %4650 ], [ @.str.2, %4646 ]
  store i32 %4641, ptr %250, align 4, !tbaa !5
  %4652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4653 = load i32, ptr @test_count, align 4, !tbaa !5
  %4654 = load i32, ptr %196, align 4, !tbaa !5
  %4655 = call ptr @s2n_strerror(i32 noundef %4654, ptr noundef nonnull @.str.4) #12
  %4656 = load i32, ptr %196, align 4, !tbaa !5
  %4657 = call ptr @s2n_strerror_debug(i32 noundef %4656, ptr noundef nonnull @.str.4) #12
  %4658 = load i32, ptr %250, align 4, !tbaa !5
  %4659 = call ptr @strerror(i32 noundef %4658) #12
  %4660 = load i32, ptr %250, align 4, !tbaa !5
  %4661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4652, ptr noundef nonnull %.str.5.sink2193, i32 noundef %4653, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 530, ptr noundef %4655, ptr noundef %4657, ptr noundef %4659, i32 noundef %4660) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4662:                                             ; preds = %4633
  %4663 = add nsw i32 %4604, 3
  store i32 %4663, ptr @test_count, align 4, !tbaa !5
  %4664 = call i32 @s2n_connection_free(ptr noundef nonnull %4300) #12
  %4665 = icmp eq i32 %4664, -1
  br i1 %4665, label %4666, label %4688

4666:                                             ; preds = %4662
  %4667 = load i32, ptr %250, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = call i32 @s2n_print_stacktrace(ptr noundef %4668) #12
  %4670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4671 = trunc nuw i8 %4670 to i1
  br i1 %4671, label %4672, label %4676

4672:                                             ; preds = %4666
  %4673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4674 = call i32 @fileno(ptr noundef %4673) #12
  %4675 = call i32 @isatty(i32 noundef %4674) #12
  %.not611 = icmp eq i32 %4675, 0
  br i1 %.not611, label %4676, label %4677

4676:                                             ; preds = %4672, %4666
  br label %4677

4677:                                             ; preds = %4672, %4676
  %.str.5.sink2202 = phi ptr [ @.str.5, %4676 ], [ @.str.2, %4672 ]
  store i32 %4667, ptr %250, align 4, !tbaa !5
  %4678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4679 = load i32, ptr @test_count, align 4, !tbaa !5
  %4680 = load i32, ptr %196, align 4, !tbaa !5
  %4681 = call ptr @s2n_strerror(i32 noundef %4680, ptr noundef nonnull @.str.4) #12
  %4682 = load i32, ptr %196, align 4, !tbaa !5
  %4683 = call ptr @s2n_strerror_debug(i32 noundef %4682, ptr noundef nonnull @.str.4) #12
  %4684 = load i32, ptr %250, align 4, !tbaa !5
  %4685 = call ptr @strerror(i32 noundef %4684) #12
  %4686 = load i32, ptr %250, align 4, !tbaa !5
  %4687 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4678, ptr noundef nonnull %.str.5.sink2202, i32 noundef %4679, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 532, ptr noundef %4681, ptr noundef %4683, ptr noundef %4685, i32 noundef %4686) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4688:                                             ; preds = %4662
  %4689 = load i32, ptr @test_count, align 4, !tbaa !5
  %4690 = add nsw i32 %4689, 1
  store i32 %4690, ptr @test_count, align 4, !tbaa !5
  %4691 = call i32 @s2n_connection_free(ptr noundef nonnull %4380) #12
  %4692 = icmp eq i32 %4691, -1
  br i1 %4692, label %4693, label %4715

4693:                                             ; preds = %4688
  %4694 = load i32, ptr %250, align 4, !tbaa !5
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = call i32 @s2n_print_stacktrace(ptr noundef %4695) #12
  %4697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4698 = trunc nuw i8 %4697 to i1
  br i1 %4698, label %4699, label %4703

4699:                                             ; preds = %4693
  %4700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4701 = call i32 @fileno(ptr noundef %4700) #12
  %4702 = call i32 @isatty(i32 noundef %4701) #12
  %.not610 = icmp eq i32 %4702, 0
  br i1 %.not610, label %4703, label %4704

4703:                                             ; preds = %4699, %4693
  br label %4704

4704:                                             ; preds = %4699, %4703
  %.str.5.sink2211 = phi ptr [ @.str.5, %4703 ], [ @.str.2, %4699 ]
  store i32 %4694, ptr %250, align 4, !tbaa !5
  %4705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4706 = load i32, ptr @test_count, align 4, !tbaa !5
  %4707 = load i32, ptr %196, align 4, !tbaa !5
  %4708 = call ptr @s2n_strerror(i32 noundef %4707, ptr noundef nonnull @.str.4) #12
  %4709 = load i32, ptr %196, align 4, !tbaa !5
  %4710 = call ptr @s2n_strerror_debug(i32 noundef %4709, ptr noundef nonnull @.str.4) #12
  %4711 = load i32, ptr %250, align 4, !tbaa !5
  %4712 = call ptr @strerror(i32 noundef %4711) #12
  %4713 = load i32, ptr %250, align 4, !tbaa !5
  %4714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4705, ptr noundef nonnull %.str.5.sink2211, i32 noundef %4706, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %4708, ptr noundef %4710, ptr noundef %4712, i32 noundef %4713) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4715:                                             ; preds = %4688
  %4716 = call i32 @s2n_io_pair_close(ptr noundef nonnull %47) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %47) #12
  %4717 = call zeroext i1 (...) @s2n_is_tls13_fully_supported() #12
  br i1 %4717, label %4718, label %5131

4718:                                             ; preds = %4715
  %4719 = call ptr @s2n_connection_new(i32 noundef 1) #12
  %4720 = load i32, ptr @test_count, align 4, !tbaa !5
  %4721 = add nsw i32 %4720, 1
  store i32 %4721, ptr @test_count, align 4, !tbaa !5
  %4722 = icmp eq ptr %4719, null
  br i1 %4722, label %4723, label %4745

4723:                                             ; preds = %4718
  %4724 = load i32, ptr %250, align 4, !tbaa !5
  %4725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4726 = call i32 @s2n_print_stacktrace(ptr noundef %4725) #12
  %4727 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4728 = trunc nuw i8 %4727 to i1
  br i1 %4728, label %4729, label %4733

4729:                                             ; preds = %4723
  %4730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4731 = call i32 @fileno(ptr noundef %4730) #12
  %4732 = call i32 @isatty(i32 noundef %4731) #12
  %.not609 = icmp eq i32 %4732, 0
  br i1 %.not609, label %4733, label %4734

4733:                                             ; preds = %4729, %4723
  br label %4734

4734:                                             ; preds = %4729, %4733
  %.str.5.sink2220 = phi ptr [ @.str.5, %4733 ], [ @.str.2, %4729 ]
  store i32 %4724, ptr %250, align 4, !tbaa !5
  %4735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4736 = load i32, ptr @test_count, align 4, !tbaa !5
  %4737 = load i32, ptr %196, align 4, !tbaa !5
  %4738 = call ptr @s2n_strerror(i32 noundef %4737, ptr noundef nonnull @.str.4) #12
  %4739 = load i32, ptr %196, align 4, !tbaa !5
  %4740 = call ptr @s2n_strerror_debug(i32 noundef %4739, ptr noundef nonnull @.str.4) #12
  %4741 = load i32, ptr %250, align 4, !tbaa !5
  %4742 = call ptr @strerror(i32 noundef %4741) #12
  %4743 = load i32, ptr %250, align 4, !tbaa !5
  %4744 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4735, ptr noundef nonnull %.str.5.sink2220, i32 noundef %4736, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %4738, ptr noundef %4740, ptr noundef %4742, i32 noundef %4743) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4745:                                             ; preds = %4718
  %4746 = add nsw i32 %4720, 2
  store i32 %4746, ptr @test_count, align 4, !tbaa !5
  %4747 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4719, ptr noundef %3852) #12
  %4748 = icmp eq i32 %4747, -1
  br i1 %4748, label %4749, label %4771

4749:                                             ; preds = %4745
  %4750 = load i32, ptr %250, align 4, !tbaa !5
  %4751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4752 = call i32 @s2n_print_stacktrace(ptr noundef %4751) #12
  %4753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4754 = trunc nuw i8 %4753 to i1
  br i1 %4754, label %4755, label %4759

4755:                                             ; preds = %4749
  %4756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4757 = call i32 @fileno(ptr noundef %4756) #12
  %4758 = call i32 @isatty(i32 noundef %4757) #12
  %.not608 = icmp eq i32 %4758, 0
  br i1 %.not608, label %4759, label %4760

4759:                                             ; preds = %4755, %4749
  br label %4760

4760:                                             ; preds = %4755, %4759
  %.str.5.sink2229 = phi ptr [ @.str.5, %4759 ], [ @.str.2, %4755 ]
  store i32 %4750, ptr %250, align 4, !tbaa !5
  %4761 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4762 = load i32, ptr @test_count, align 4, !tbaa !5
  %4763 = load i32, ptr %196, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror(i32 noundef %4763, ptr noundef nonnull @.str.4) #12
  %4765 = load i32, ptr %196, align 4, !tbaa !5
  %4766 = call ptr @s2n_strerror_debug(i32 noundef %4765, ptr noundef nonnull @.str.4) #12
  %4767 = load i32, ptr %250, align 4, !tbaa !5
  %4768 = call ptr @strerror(i32 noundef %4767) #12
  %4769 = load i32, ptr %250, align 4, !tbaa !5
  %4770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4761, ptr noundef nonnull %.str.5.sink2229, i32 noundef %4762, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 540, ptr noundef %4764, ptr noundef %4766, ptr noundef %4768, i32 noundef %4769) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4771:                                             ; preds = %4745
  %4772 = call ptr @s2n_connection_new(i32 noundef 0) #12
  %4773 = load i32, ptr @test_count, align 4, !tbaa !5
  %4774 = add nsw i32 %4773, 1
  store i32 %4774, ptr @test_count, align 4, !tbaa !5
  %4775 = icmp eq ptr %4772, null
  br i1 %4775, label %4776, label %4798

4776:                                             ; preds = %4771
  %4777 = load i32, ptr %250, align 4, !tbaa !5
  %4778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4779 = call i32 @s2n_print_stacktrace(ptr noundef %4778) #12
  %4780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4781 = trunc nuw i8 %4780 to i1
  br i1 %4781, label %4782, label %4786

4782:                                             ; preds = %4776
  %4783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4784 = call i32 @fileno(ptr noundef %4783) #12
  %4785 = call i32 @isatty(i32 noundef %4784) #12
  %.not607 = icmp eq i32 %4785, 0
  br i1 %.not607, label %4786, label %4787

4786:                                             ; preds = %4782, %4776
  br label %4787

4787:                                             ; preds = %4782, %4786
  %.str.5.sink2238 = phi ptr [ @.str.5, %4786 ], [ @.str.2, %4782 ]
  store i32 %4777, ptr %250, align 4, !tbaa !5
  %4788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4789 = load i32, ptr @test_count, align 4, !tbaa !5
  %4790 = load i32, ptr %196, align 4, !tbaa !5
  %4791 = call ptr @s2n_strerror(i32 noundef %4790, ptr noundef nonnull @.str.4) #12
  %4792 = load i32, ptr %196, align 4, !tbaa !5
  %4793 = call ptr @s2n_strerror_debug(i32 noundef %4792, ptr noundef nonnull @.str.4) #12
  %4794 = load i32, ptr %250, align 4, !tbaa !5
  %4795 = call ptr @strerror(i32 noundef %4794) #12
  %4796 = load i32, ptr %250, align 4, !tbaa !5
  %4797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4788, ptr noundef nonnull %.str.5.sink2238, i32 noundef %4789, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 543, ptr noundef %4791, ptr noundef %4793, ptr noundef %4795, i32 noundef %4796) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4798:                                             ; preds = %4771
  %4799 = add nsw i32 %4773, 2
  store i32 %4799, ptr @test_count, align 4, !tbaa !5
  %4800 = call i32 @s2n_connection_set_config(ptr noundef nonnull %4772, ptr noundef %3852) #12
  %4801 = icmp eq i32 %4800, -1
  br i1 %4801, label %4802, label %4824

4802:                                             ; preds = %4798
  %4803 = load i32, ptr %250, align 4, !tbaa !5
  %4804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4805 = call i32 @s2n_print_stacktrace(ptr noundef %4804) #12
  %4806 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4807 = trunc nuw i8 %4806 to i1
  br i1 %4807, label %4808, label %4812

4808:                                             ; preds = %4802
  %4809 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4810 = call i32 @fileno(ptr noundef %4809) #12
  %4811 = call i32 @isatty(i32 noundef %4810) #12
  %.not606 = icmp eq i32 %4811, 0
  br i1 %.not606, label %4812, label %4813

4812:                                             ; preds = %4808, %4802
  br label %4813

4813:                                             ; preds = %4808, %4812
  %.str.5.sink2247 = phi ptr [ @.str.5, %4812 ], [ @.str.2, %4808 ]
  store i32 %4803, ptr %250, align 4, !tbaa !5
  %4814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4815 = load i32, ptr @test_count, align 4, !tbaa !5
  %4816 = load i32, ptr %196, align 4, !tbaa !5
  %4817 = call ptr @s2n_strerror(i32 noundef %4816, ptr noundef nonnull @.str.4) #12
  %4818 = load i32, ptr %196, align 4, !tbaa !5
  %4819 = call ptr @s2n_strerror_debug(i32 noundef %4818, ptr noundef nonnull @.str.4) #12
  %4820 = load i32, ptr %250, align 4, !tbaa !5
  %4821 = call ptr @strerror(i32 noundef %4820) #12
  %4822 = load i32, ptr %250, align 4, !tbaa !5
  %4823 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4814, ptr noundef nonnull %.str.5.sink2247, i32 noundef %4815, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 544, ptr noundef %4817, ptr noundef %4819, ptr noundef %4821, i32 noundef %4822) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4824:                                             ; preds = %4798
  %4825 = load i32, ptr @test_count, align 4, !tbaa !5
  %4826 = add nsw i32 %4825, 1
  store i32 %4826, ptr @test_count, align 4, !tbaa !5
  %4827 = call i32 @s2n_connection_set_cipher_preferences(ptr noundef nonnull %4772, ptr noundef nonnull @.str.106) #12
  %4828 = icmp eq i32 %4827, -1
  br i1 %4828, label %4829, label %4851

4829:                                             ; preds = %4824
  %4830 = load i32, ptr %250, align 4, !tbaa !5
  %4831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4832 = call i32 @s2n_print_stacktrace(ptr noundef %4831) #12
  %4833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4834 = trunc nuw i8 %4833 to i1
  br i1 %4834, label %4835, label %4839

4835:                                             ; preds = %4829
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = call i32 @fileno(ptr noundef %4836) #12
  %4838 = call i32 @isatty(i32 noundef %4837) #12
  %.not605 = icmp eq i32 %4838, 0
  br i1 %.not605, label %4839, label %4840

4839:                                             ; preds = %4835, %4829
  br label %4840

4840:                                             ; preds = %4835, %4839
  %.str.5.sink2256 = phi ptr [ @.str.5, %4839 ], [ @.str.2, %4835 ]
  store i32 %4830, ptr %250, align 4, !tbaa !5
  %4841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4842 = load i32, ptr @test_count, align 4, !tbaa !5
  %4843 = load i32, ptr %196, align 4, !tbaa !5
  %4844 = call ptr @s2n_strerror(i32 noundef %4843, ptr noundef nonnull @.str.4) #12
  %4845 = load i32, ptr %196, align 4, !tbaa !5
  %4846 = call ptr @s2n_strerror_debug(i32 noundef %4845, ptr noundef nonnull @.str.4) #12
  %4847 = load i32, ptr %250, align 4, !tbaa !5
  %4848 = call ptr @strerror(i32 noundef %4847) #12
  %4849 = load i32, ptr %250, align 4, !tbaa !5
  %4850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4841, ptr noundef nonnull %.str.5.sink2256, i32 noundef %4842, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 545, ptr noundef %4844, ptr noundef %4846, ptr noundef %4848, i32 noundef %4849) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4851:                                             ; preds = %4824
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  store i64 0, ptr %48, align 8
  %4852 = load i32, ptr @test_count, align 4, !tbaa !5
  %4853 = add nsw i32 %4852, 1
  store i32 %4853, ptr @test_count, align 4, !tbaa !5
  %4854 = call i32 @s2n_io_pair_init_non_blocking(ptr noundef nonnull %48) #12
  %4855 = icmp eq i32 %4854, -1
  br i1 %4855, label %4856, label %4878

4856:                                             ; preds = %4851
  %4857 = load i32, ptr %250, align 4, !tbaa !5
  %4858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4859 = call i32 @s2n_print_stacktrace(ptr noundef %4858) #12
  %4860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4861 = trunc nuw i8 %4860 to i1
  br i1 %4861, label %4862, label %4866

4862:                                             ; preds = %4856
  %4863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4864 = call i32 @fileno(ptr noundef %4863) #12
  %4865 = call i32 @isatty(i32 noundef %4864) #12
  %.not604 = icmp eq i32 %4865, 0
  br i1 %.not604, label %4866, label %4867

4866:                                             ; preds = %4862, %4856
  br label %4867

4867:                                             ; preds = %4862, %4866
  %.str.5.sink2265 = phi ptr [ @.str.5, %4866 ], [ @.str.2, %4862 ]
  store i32 %4857, ptr %250, align 4, !tbaa !5
  %4868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4869 = load i32, ptr @test_count, align 4, !tbaa !5
  %4870 = load i32, ptr %196, align 4, !tbaa !5
  %4871 = call ptr @s2n_strerror(i32 noundef %4870, ptr noundef nonnull @.str.4) #12
  %4872 = load i32, ptr %196, align 4, !tbaa !5
  %4873 = call ptr @s2n_strerror_debug(i32 noundef %4872, ptr noundef nonnull @.str.4) #12
  %4874 = load i32, ptr %250, align 4, !tbaa !5
  %4875 = call ptr @strerror(i32 noundef %4874) #12
  %4876 = load i32, ptr %250, align 4, !tbaa !5
  %4877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4868, ptr noundef nonnull %.str.5.sink2265, i32 noundef %4869, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 548, ptr noundef %4871, ptr noundef %4873, ptr noundef %4875, i32 noundef %4876) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4878:                                             ; preds = %4851
  %4879 = load i32, ptr @test_count, align 4, !tbaa !5
  %4880 = add nsw i32 %4879, 1
  store i32 %4880, ptr @test_count, align 4, !tbaa !5
  %4881 = call i32 @s2n_connections_set_io_pair(ptr noundef nonnull %4719, ptr noundef nonnull %4772, ptr noundef nonnull %48) #12
  %4882 = icmp eq i32 %4881, -1
  br i1 %4882, label %4883, label %4905

4883:                                             ; preds = %4878
  %4884 = load i32, ptr %250, align 4, !tbaa !5
  %4885 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4886 = call i32 @s2n_print_stacktrace(ptr noundef %4885) #12
  %4887 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4888 = trunc nuw i8 %4887 to i1
  br i1 %4888, label %4889, label %4893

4889:                                             ; preds = %4883
  %4890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4891 = call i32 @fileno(ptr noundef %4890) #12
  %4892 = call i32 @isatty(i32 noundef %4891) #12
  %.not603 = icmp eq i32 %4892, 0
  br i1 %.not603, label %4893, label %4894

4893:                                             ; preds = %4889, %4883
  br label %4894

4894:                                             ; preds = %4889, %4893
  %.str.5.sink2274 = phi ptr [ @.str.5, %4893 ], [ @.str.2, %4889 ]
  store i32 %4884, ptr %250, align 4, !tbaa !5
  %4895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = load i32, ptr %196, align 4, !tbaa !5
  %4898 = call ptr @s2n_strerror(i32 noundef %4897, ptr noundef nonnull @.str.4) #12
  %4899 = load i32, ptr %196, align 4, !tbaa !5
  %4900 = call ptr @s2n_strerror_debug(i32 noundef %4899, ptr noundef nonnull @.str.4) #12
  %4901 = load i32, ptr %250, align 4, !tbaa !5
  %4902 = call ptr @strerror(i32 noundef %4901) #12
  %4903 = load i32, ptr %250, align 4, !tbaa !5
  %4904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4895, ptr noundef nonnull %.str.5.sink2274, i32 noundef %4896, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 549, ptr noundef %4898, ptr noundef %4900, ptr noundef %4902, i32 noundef %4903) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4905:                                             ; preds = %4878
  %4906 = load i32, ptr @test_count, align 4, !tbaa !5
  %4907 = add nsw i32 %4906, 1
  store i32 %4907, ptr @test_count, align 4, !tbaa !5
  %4908 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %4772, ptr noundef nonnull %4719, i32 noundef 1) #12
  %4909 = call zeroext i1 @s2n_result_is_ok(i32 %4908)
  br i1 %4909, label %4932, label %4910

4910:                                             ; preds = %4905
  %4911 = load i32, ptr %250, align 4, !tbaa !5
  %4912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4913 = call i32 @s2n_print_stacktrace(ptr noundef %4912) #12
  %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) #12
  %4919 = call i32 @isatty(i32 noundef %4918) #12
  %.not584 = icmp eq i32 %4919, 0
  br i1 %.not584, label %4920, label %4921

4920:                                             ; preds = %4916, %4910
  br label %4921

4921:                                             ; preds = %4916, %4920
  %.str.5.sink2283 = phi ptr [ @.str.5, %4920 ], [ @.str.2, %4916 ]
  store i32 %4911, ptr %250, 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 %196, align 4, !tbaa !5
  %4925 = call ptr @s2n_strerror(i32 noundef %4924, ptr noundef nonnull @.str.4) #12
  %4926 = load i32, ptr %196, align 4, !tbaa !5
  %4927 = call ptr @s2n_strerror_debug(i32 noundef %4926, ptr noundef nonnull @.str.4) #12
  %4928 = load i32, ptr %250, align 4, !tbaa !5
  %4929 = call ptr @strerror(i32 noundef %4928) #12
  %4930 = load i32, ptr %250, align 4, !tbaa !5
  %4931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4922, ptr noundef nonnull %.str.5.sink2283, i32 noundef %4923, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 552, ptr noundef %4925, ptr noundef %4927, ptr noundef %4929, i32 noundef %4930) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4932:                                             ; preds = %4905
  %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 = getelementptr inbounds i8, ptr %4719, i64 80
  %4936 = getelementptr inbounds [22 x i8], ptr %4935, i64 0, i64 %4519
  %4937 = load i8, ptr %4936, align 1, !tbaa !43
  %4938 = zext i8 %4937 to i32
  %4939 = and i32 %4524, %4938
  %.not585 = icmp eq i32 %4939, 0
  br i1 %.not585, label %4940, label %4962

4940:                                             ; preds = %4932
  %4941 = load i32, ptr %250, align 4, !tbaa !5
  %4942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4943 = call i32 @s2n_print_stacktrace(ptr noundef %4942) #12
  %4944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4945 = trunc nuw i8 %4944 to i1
  br i1 %4945, label %4946, label %4950

4946:                                             ; preds = %4940
  %4947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4948 = call i32 @fileno(ptr noundef %4947) #12
  %4949 = call i32 @isatty(i32 noundef %4948) #12
  %.not586 = icmp eq i32 %4949, 0
  br i1 %.not586, label %4950, label %4951

4950:                                             ; preds = %4946, %4940
  br label %4951

4951:                                             ; preds = %4946, %4950
  %.str.5.sink2292 = phi ptr [ @.str.5, %4950 ], [ @.str.2, %4946 ]
  store i32 %4941, ptr %250, align 4, !tbaa !5
  %4952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4953 = load i32, ptr @test_count, align 4, !tbaa !5
  %4954 = load i32, ptr %196, align 4, !tbaa !5
  %4955 = call ptr @s2n_strerror(i32 noundef %4954, ptr noundef nonnull @.str.4) #12
  %4956 = load i32, ptr %196, align 4, !tbaa !5
  %4957 = call ptr @s2n_strerror_debug(i32 noundef %4956, ptr noundef nonnull @.str.4) #12
  %4958 = load i32, ptr %250, align 4, !tbaa !5
  %4959 = call ptr @strerror(i32 noundef %4958) #12
  %4960 = load i32, ptr %250, align 4, !tbaa !5
  %4961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4952, ptr noundef nonnull %.str.5.sink2292, i32 noundef %4953, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 553, ptr noundef %4955, ptr noundef %4957, ptr noundef %4959, i32 noundef %4960) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4962:                                             ; preds = %4932
  %4963 = add nsw i32 %4933, 2
  store i32 %4963, ptr @test_count, align 4, !tbaa !5
  %4964 = getelementptr inbounds i8, ptr %4772, i64 102
  %4965 = getelementptr inbounds [22 x i8], ptr %4964, i64 0, i64 %4519
  %4966 = load i8, ptr %4965, align 1, !tbaa !43
  %4967 = zext i8 %4966 to i32
  %4968 = and i32 %4524, %4967
  %.not587 = icmp eq i32 %4968, 0
  br i1 %.not587, label %4991, label %4969

4969:                                             ; preds = %4962
  %4970 = load i32, ptr %250, align 4, !tbaa !5
  %4971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4972 = call i32 @s2n_print_stacktrace(ptr noundef %4971) #12
  %4973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4974 = trunc nuw i8 %4973 to i1
  br i1 %4974, label %4975, label %4979

4975:                                             ; preds = %4969
  %4976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4977 = call i32 @fileno(ptr noundef %4976) #12
  %4978 = call i32 @isatty(i32 noundef %4977) #12
  %.not602 = icmp eq i32 %4978, 0
  br i1 %.not602, label %4979, label %4980

4979:                                             ; preds = %4975, %4969
  br label %4980

4980:                                             ; preds = %4975, %4979
  %.str.5.sink2301 = phi ptr [ @.str.5, %4979 ], [ @.str.2, %4975 ]
  store i32 %4970, ptr %250, align 4, !tbaa !5
  %4981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4982 = load i32, ptr @test_count, align 4, !tbaa !5
  %4983 = load i32, ptr %196, align 4, !tbaa !5
  %4984 = call ptr @s2n_strerror(i32 noundef %4983, ptr noundef nonnull @.str.4) #12
  %4985 = load i32, ptr %196, align 4, !tbaa !5
  %4986 = call ptr @s2n_strerror_debug(i32 noundef %4985, ptr noundef nonnull @.str.4) #12
  %4987 = load i32, ptr %250, align 4, !tbaa !5
  %4988 = call ptr @strerror(i32 noundef %4987) #12
  %4989 = load i32, ptr %250, align 4, !tbaa !5
  %4990 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4981, ptr noundef nonnull %.str.5.sink2301, i32 noundef %4982, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 554, ptr noundef %4984, ptr noundef %4986, ptr noundef %4988, i32 noundef %4989) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4991:                                             ; preds = %4962
  %4992 = add nsw i32 %4933, 3
  store i32 %4992, ptr @test_count, align 4, !tbaa !5
  %4993 = call i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef nonnull %4772, ptr noundef nonnull %4719, i32 noundef 16) #12
  %4994 = call zeroext i1 @s2n_result_is_ok(i32 %4993)
  br i1 %4994, label %5017, label %4995

4995:                                             ; preds = %4991
  %4996 = load i32, ptr %250, align 4, !tbaa !5
  %4997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4998 = call i32 @s2n_print_stacktrace(ptr noundef %4997) #12
  %4999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5000 = trunc nuw i8 %4999 to i1
  br i1 %5000, label %5001, label %5005

5001:                                             ; preds = %4995
  %5002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5003 = call i32 @fileno(ptr noundef %5002) #12
  %5004 = call i32 @isatty(i32 noundef %5003) #12
  %.not588 = icmp eq i32 %5004, 0
  br i1 %.not588, label %5005, label %5006

5005:                                             ; preds = %5001, %4995
  br label %5006

5006:                                             ; preds = %5001, %5005
  %.str.5.sink2310 = phi ptr [ @.str.5, %5005 ], [ @.str.2, %5001 ]
  store i32 %4996, ptr %250, align 4, !tbaa !5
  %5007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5008 = load i32, ptr @test_count, align 4, !tbaa !5
  %5009 = load i32, ptr %196, align 4, !tbaa !5
  %5010 = call ptr @s2n_strerror(i32 noundef %5009, ptr noundef nonnull @.str.4) #12
  %5011 = load i32, ptr %196, align 4, !tbaa !5
  %5012 = call ptr @s2n_strerror_debug(i32 noundef %5011, ptr noundef nonnull @.str.4) #12
  %5013 = load i32, ptr %250, align 4, !tbaa !5
  %5014 = call ptr @strerror(i32 noundef %5013) #12
  %5015 = load i32, ptr %250, align 4, !tbaa !5
  %5016 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5007, ptr noundef nonnull %.str.5.sink2310, i32 noundef %5008, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 557, ptr noundef %5010, ptr noundef %5012, ptr noundef %5014, i32 noundef %5015) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5017:                                             ; preds = %4991
  %5018 = load i32, ptr @test_count, align 4, !tbaa !5
  %5019 = add nsw i32 %5018, 1
  store i32 %5019, ptr @test_count, align 4, !tbaa !5
  %5020 = getelementptr inbounds i8, ptr %4719, i64 102
  %5021 = getelementptr inbounds [22 x i8], ptr %5020, i64 0, i64 %4519
  %5022 = load i8, ptr %5021, align 1, !tbaa !43
  %5023 = zext i8 %5022 to i32
  %5024 = and i32 %4524, %5023
  %.not589 = icmp eq i32 %5024, 0
  br i1 %.not589, label %5047, label %5025

5025:                                             ; preds = %5017
  %5026 = load i32, ptr %250, align 4, !tbaa !5
  %5027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5028 = call i32 @s2n_print_stacktrace(ptr noundef %5027) #12
  %5029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5030 = trunc nuw i8 %5029 to i1
  br i1 %5030, label %5031, label %5035

5031:                                             ; preds = %5025
  %5032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5033 = call i32 @fileno(ptr noundef %5032) #12
  %5034 = call i32 @isatty(i32 noundef %5033) #12
  %.not601 = icmp eq i32 %5034, 0
  br i1 %.not601, label %5035, label %5036

5035:                                             ; preds = %5031, %5025
  br label %5036

5036:                                             ; preds = %5031, %5035
  %.str.5.sink2319 = phi ptr [ @.str.5, %5035 ], [ @.str.2, %5031 ]
  store i32 %5026, ptr %250, align 4, !tbaa !5
  %5037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5038 = load i32, ptr @test_count, align 4, !tbaa !5
  %5039 = load i32, ptr %196, align 4, !tbaa !5
  %5040 = call ptr @s2n_strerror(i32 noundef %5039, ptr noundef nonnull @.str.4) #12
  %5041 = load i32, ptr %196, align 4, !tbaa !5
  %5042 = call ptr @s2n_strerror_debug(i32 noundef %5041, ptr noundef nonnull @.str.4) #12
  %5043 = load i32, ptr %250, align 4, !tbaa !5
  %5044 = call ptr @strerror(i32 noundef %5043) #12
  %5045 = load i32, ptr %250, align 4, !tbaa !5
  %5046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5037, ptr noundef nonnull %.str.5.sink2319, i32 noundef %5038, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 558, ptr noundef %5040, ptr noundef %5042, ptr noundef %5044, i32 noundef %5045) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5047:                                             ; preds = %5017
  %5048 = add nsw i32 %5018, 2
  store i32 %5048, ptr @test_count, align 4, !tbaa !5
  %5049 = getelementptr inbounds i8, ptr %4772, i64 80
  %5050 = getelementptr inbounds [22 x i8], ptr %5049, i64 0, i64 %4519
  %5051 = load i8, ptr %5050, align 1, !tbaa !43
  %5052 = zext i8 %5051 to i32
  %5053 = and i32 %4524, %5052
  %.not590 = icmp eq i32 %5053, 0
  br i1 %.not590, label %5076, label %5054

5054:                                             ; preds = %5047
  %5055 = load i32, ptr %250, align 4, !tbaa !5
  %5056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5057 = call i32 @s2n_print_stacktrace(ptr noundef %5056) #12
  %5058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5059 = trunc nuw i8 %5058 to i1
  br i1 %5059, label %5060, label %5064

5060:                                             ; preds = %5054
  %5061 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5062 = call i32 @fileno(ptr noundef %5061) #12
  %5063 = call i32 @isatty(i32 noundef %5062) #12
  %.not600 = icmp eq i32 %5063, 0
  br i1 %.not600, label %5064, label %5065

5064:                                             ; preds = %5060, %5054
  br label %5065

5065:                                             ; preds = %5060, %5064
  %.str.5.sink2328 = phi ptr [ @.str.5, %5064 ], [ @.str.2, %5060 ]
  store i32 %5055, ptr %250, align 4, !tbaa !5
  %5066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5067 = load i32, ptr @test_count, align 4, !tbaa !5
  %5068 = load i32, ptr %196, align 4, !tbaa !5
  %5069 = call ptr @s2n_strerror(i32 noundef %5068, ptr noundef nonnull @.str.4) #12
  %5070 = load i32, ptr %196, align 4, !tbaa !5
  %5071 = call ptr @s2n_strerror_debug(i32 noundef %5070, ptr noundef nonnull @.str.4) #12
  %5072 = load i32, ptr %250, align 4, !tbaa !5
  %5073 = call ptr @strerror(i32 noundef %5072) #12
  %5074 = load i32, ptr %250, align 4, !tbaa !5
  %5075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5066, ptr noundef nonnull %.str.5.sink2328, i32 noundef %5067, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 559, ptr noundef %5069, ptr noundef %5071, ptr noundef %5073, i32 noundef %5074) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5076:                                             ; preds = %5047
  %5077 = add nsw i32 %5018, 3
  store i32 %5077, ptr @test_count, align 4, !tbaa !5
  %5078 = call i32 @s2n_connection_free(ptr noundef nonnull %4719) #12
  %5079 = icmp eq i32 %5078, -1
  br i1 %5079, label %5080, label %5102

5080:                                             ; preds = %5076
  %5081 = load i32, ptr %250, align 4, !tbaa !5
  %5082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5083 = call i32 @s2n_print_stacktrace(ptr noundef %5082) #12
  %5084 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5085 = trunc nuw i8 %5084 to i1
  br i1 %5085, label %5086, label %5090

5086:                                             ; preds = %5080
  %5087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5088 = call i32 @fileno(ptr noundef %5087) #12
  %5089 = call i32 @isatty(i32 noundef %5088) #12
  %.not599 = icmp eq i32 %5089, 0
  br i1 %.not599, label %5090, label %5091

5090:                                             ; preds = %5086, %5080
  br label %5091

5091:                                             ; preds = %5086, %5090
  %.str.5.sink2337 = phi ptr [ @.str.5, %5090 ], [ @.str.2, %5086 ]
  store i32 %5081, ptr %250, align 4, !tbaa !5
  %5092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5093 = load i32, ptr @test_count, align 4, !tbaa !5
  %5094 = load i32, ptr %196, align 4, !tbaa !5
  %5095 = call ptr @s2n_strerror(i32 noundef %5094, ptr noundef nonnull @.str.4) #12
  %5096 = load i32, ptr %196, align 4, !tbaa !5
  %5097 = call ptr @s2n_strerror_debug(i32 noundef %5096, ptr noundef nonnull @.str.4) #12
  %5098 = load i32, ptr %250, align 4, !tbaa !5
  %5099 = call ptr @strerror(i32 noundef %5098) #12
  %5100 = load i32, ptr %250, align 4, !tbaa !5
  %5101 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5092, ptr noundef nonnull %.str.5.sink2337, i32 noundef %5093, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 561, ptr noundef %5095, ptr noundef %5097, ptr noundef %5099, i32 noundef %5100) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5102:                                             ; preds = %5076
  %5103 = load i32, ptr @test_count, align 4, !tbaa !5
  %5104 = add nsw i32 %5103, 1
  store i32 %5104, ptr @test_count, align 4, !tbaa !5
  %5105 = call i32 @s2n_connection_free(ptr noundef nonnull %4772) #12
  %5106 = icmp eq i32 %5105, -1
  br i1 %5106, label %5107, label %5129

5107:                                             ; preds = %5102
  %5108 = load i32, ptr %250, align 4, !tbaa !5
  %5109 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5110 = call i32 @s2n_print_stacktrace(ptr noundef %5109) #12
  %5111 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5112 = trunc nuw i8 %5111 to i1
  br i1 %5112, label %5113, label %5117

5113:                                             ; preds = %5107
  %5114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5115 = call i32 @fileno(ptr noundef %5114) #12
  %5116 = call i32 @isatty(i32 noundef %5115) #12
  %.not598 = icmp eq i32 %5116, 0
  br i1 %.not598, label %5117, label %5118

5117:                                             ; preds = %5113, %5107
  br label %5118

5118:                                             ; preds = %5113, %5117
  %.str.5.sink2346 = phi ptr [ @.str.5, %5117 ], [ @.str.2, %5113 ]
  store i32 %5108, ptr %250, align 4, !tbaa !5
  %5119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5120 = load i32, ptr @test_count, align 4, !tbaa !5
  %5121 = load i32, ptr %196, align 4, !tbaa !5
  %5122 = call ptr @s2n_strerror(i32 noundef %5121, ptr noundef nonnull @.str.4) #12
  %5123 = load i32, ptr %196, align 4, !tbaa !5
  %5124 = call ptr @s2n_strerror_debug(i32 noundef %5123, ptr noundef nonnull @.str.4) #12
  %5125 = load i32, ptr %250, align 4, !tbaa !5
  %5126 = call ptr @strerror(i32 noundef %5125) #12
  %5127 = load i32, ptr %250, align 4, !tbaa !5
  %5128 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5119, ptr noundef nonnull %.str.5.sink2346, i32 noundef %5120, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 562, ptr noundef %5122, ptr noundef %5124, ptr noundef %5126, i32 noundef %5127) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5129:                                             ; preds = %5102
  %5130 = call i32 @s2n_io_pair_close(ptr noundef nonnull %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  br label %5131

5131:                                             ; preds = %4715, %5129
  %5132 = load i32, ptr @test_count, align 4, !tbaa !5
  %5133 = add nsw i32 %5132, 1
  store i32 %5133, ptr @test_count, align 4, !tbaa !5
  %5134 = call i32 @s2n_config_free(ptr noundef %3852) #12
  %5135 = icmp eq i32 %5134, -1
  br i1 %5135, label %5136, label %5158

5136:                                             ; preds = %5131
  %5137 = load i32, ptr %250, align 4, !tbaa !5
  %5138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5139 = call i32 @s2n_print_stacktrace(ptr noundef %5138) #12
  %5140 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5141 = trunc nuw i8 %5140 to i1
  br i1 %5141, label %5142, label %5146

5142:                                             ; preds = %5136
  %5143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5144 = call i32 @fileno(ptr noundef %5143) #12
  %5145 = call i32 @isatty(i32 noundef %5144) #12
  %.not597 = icmp eq i32 %5145, 0
  br i1 %.not597, label %5146, label %5147

5146:                                             ; preds = %5142, %5136
  br label %5147

5147:                                             ; preds = %5142, %5146
  %.str.5.sink2355 = phi ptr [ @.str.5, %5146 ], [ @.str.2, %5142 ]
  store i32 %5137, ptr %250, align 4, !tbaa !5
  %5148 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5149 = load i32, ptr @test_count, align 4, !tbaa !5
  %5150 = load i32, ptr %196, align 4, !tbaa !5
  %5151 = call ptr @s2n_strerror(i32 noundef %5150, ptr noundef nonnull @.str.4) #12
  %5152 = load i32, ptr %196, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror_debug(i32 noundef %5152, ptr noundef nonnull @.str.4) #12
  %5154 = load i32, ptr %250, align 4, !tbaa !5
  %5155 = call ptr @strerror(i32 noundef %5154) #12
  %5156 = load i32, ptr %250, align 4, !tbaa !5
  %5157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5148, ptr noundef nonnull %.str.5.sink2355, i32 noundef %5149, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 565, ptr noundef %5151, ptr noundef %5153, ptr noundef %5155, i32 noundef %5156) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5158:                                             ; preds = %5131
  %5159 = load i32, ptr @test_count, align 4, !tbaa !5
  %5160 = add nsw i32 %5159, 1
  store i32 %5160, ptr @test_count, align 4, !tbaa !5
  %5161 = load ptr, ptr %45, align 8, !tbaa !9
  %5162 = call i32 @s2n_cert_chain_and_key_free(ptr noundef %5161) #12
  %5163 = icmp eq i32 %5162, -1
  br i1 %5163, label %5164, label %5186

5164:                                             ; preds = %5158
  %5165 = load i32, ptr %250, align 4, !tbaa !5
  %5166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5167 = call i32 @s2n_print_stacktrace(ptr noundef %5166) #12
  %5168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5169 = trunc nuw i8 %5168 to i1
  br i1 %5169, label %5170, label %5174

5170:                                             ; preds = %5164
  %5171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5172 = call i32 @fileno(ptr noundef %5171) #12
  %5173 = call i32 @isatty(i32 noundef %5172) #12
  %.not596 = icmp eq i32 %5173, 0
  br i1 %.not596, label %5174, label %5175

5174:                                             ; preds = %5170, %5164
  br label %5175

5175:                                             ; preds = %5170, %5174
  %.str.5.sink2364 = phi ptr [ @.str.5, %5174 ], [ @.str.2, %5170 ]
  store i32 %5165, ptr %250, align 4, !tbaa !5
  %5176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5177 = load i32, ptr @test_count, align 4, !tbaa !5
  %5178 = load i32, ptr %196, align 4, !tbaa !5
  %5179 = call ptr @s2n_strerror(i32 noundef %5178, ptr noundef nonnull @.str.4) #12
  %5180 = load i32, ptr %196, align 4, !tbaa !5
  %5181 = call ptr @s2n_strerror_debug(i32 noundef %5180, ptr noundef nonnull @.str.4) #12
  %5182 = load i32, ptr %250, align 4, !tbaa !5
  %5183 = call ptr @strerror(i32 noundef %5182) #12
  %5184 = load i32, ptr %250, align 4, !tbaa !5
  %5185 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5176, ptr noundef nonnull %.str.5.sink2364, i32 noundef %5177, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 566, ptr noundef %5179, ptr noundef %5181, ptr noundef %5183, i32 noundef %5184) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5186:                                             ; preds = %5158
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %45) #12
  call void @llvm.lifetime.end.p0(i64 4184, ptr nonnull %43) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %42) #12
  %5187 = call i32 @s2n_cleanup() #12
  %5188 = icmp eq i32 %5187, -1
  br i1 %5188, label %5189, label %5211

5189:                                             ; preds = %5186
  %5190 = load i32, ptr %250, align 4, !tbaa !5
  %5191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5192 = call i32 @s2n_print_stacktrace(ptr noundef %5191) #12
  %5193 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5194 = trunc nuw i8 %5193 to i1
  br i1 %5194, label %5195, label %5199

5195:                                             ; preds = %5189
  %5196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5197 = call i32 @fileno(ptr noundef %5196) #12
  %5198 = call i32 @isatty(i32 noundef %5197) #12
  %.not595 = icmp eq i32 %5198, 0
  br i1 %.not595, label %5199, label %5200

5199:                                             ; preds = %5195, %5189
  br label %5200

5200:                                             ; preds = %5195, %5199
  %.str.5.sink2373 = phi ptr [ @.str.5, %5199 ], [ @.str.2, %5195 ]
  store i32 %5190, ptr %250, align 4, !tbaa !5
  %5201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5202 = load i32, ptr @test_count, align 4, !tbaa !5
  %5203 = load i32, ptr %196, align 4, !tbaa !5
  %5204 = call ptr @s2n_strerror(i32 noundef %5203, ptr noundef nonnull @.str.4) #12
  %5205 = load i32, ptr %196, align 4, !tbaa !5
  %5206 = call ptr @s2n_strerror_debug(i32 noundef %5205, ptr noundef nonnull @.str.4) #12
  %5207 = load i32, ptr %250, align 4, !tbaa !5
  %5208 = call ptr @strerror(i32 noundef %5207) #12
  %5209 = load i32, ptr %250, align 4, !tbaa !5
  %5210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5201, ptr noundef nonnull %.str.5.sink2373, i32 noundef %5202, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 570, ptr noundef %5204, ptr noundef %5206, ptr noundef %5208, i32 noundef %5209) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5211:                                             ; preds = %5186
  %5212 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %5213 = icmp eq i32 %5212, -1
  br i1 %5213, label %5214, label %5236

5214:                                             ; preds = %5211
  %5215 = load i32, ptr %250, align 4, !tbaa !5
  %5216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5217 = call i32 @s2n_print_stacktrace(ptr noundef %5216) #12
  %5218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5219 = trunc nuw i8 %5218 to i1
  br i1 %5219, label %5220, label %5224

5220:                                             ; preds = %5214
  %5221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5222 = call i32 @fileno(ptr noundef %5221) #12
  %5223 = call i32 @isatty(i32 noundef %5222) #12
  %.not594 = icmp eq i32 %5223, 0
  br i1 %.not594, label %5224, label %5225

5224:                                             ; preds = %5220, %5214
  br label %5225

5225:                                             ; preds = %5220, %5224
  %.str.5.sink2382 = phi ptr [ @.str.5, %5224 ], [ @.str.2, %5220 ]
  store i32 %5215, ptr %250, align 4, !tbaa !5
  %5226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5227 = load i32, ptr @test_count, align 4, !tbaa !5
  %5228 = load i32, ptr %196, align 4, !tbaa !5
  %5229 = call ptr @s2n_strerror(i32 noundef %5228, ptr noundef nonnull @.str.4) #12
  %5230 = load i32, ptr %196, align 4, !tbaa !5
  %5231 = call ptr @s2n_strerror_debug(i32 noundef %5230, ptr noundef nonnull @.str.4) #12
  %5232 = load i32, ptr %250, align 4, !tbaa !5
  %5233 = call ptr @strerror(i32 noundef %5232) #12
  %5234 = load i32, ptr %250, align 4, !tbaa !5
  %5235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5226, ptr noundef nonnull %.str.5.sink2382, i32 noundef %5227, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 570, ptr noundef %5229, ptr noundef %5231, ptr noundef %5233, i32 noundef %5234) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5236:                                             ; preds = %5211
  %5237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5238 = trunc nuw i8 %5237 to i1
  br i1 %5238, label %5239, label %5250

5239:                                             ; preds = %5236
  %5240 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5241 = call i32 @fileno(ptr noundef %5240) #12
  %5242 = call i32 @isatty(i32 noundef %5241) #12
  %.not591 = icmp eq i32 %5242, 0
  br i1 %.not591, label %5250, label %5243

5243:                                             ; preds = %5239
  %5244 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not593 = icmp eq i32 %5244, 0
  %5245 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not593, label %5248, label %5246

5246:                                             ; preds = %5243
  %5247 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5245, ptr noundef nonnull @.str.117, i32 noundef %5244) #12
  br label %5257

5248:                                             ; preds = %5243
  %5249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5245, ptr noundef nonnull @.str.118) #12
  br label %5257

5250:                                             ; preds = %5239, %5236
  %5251 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not592 = icmp eq i32 %5251, 0
  %5252 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not592, label %5255, label %5253

5253:                                             ; preds = %5250
  %5254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5252, ptr noundef nonnull @.str.119, i32 noundef %5251) #12
  br label %5257

5255:                                             ; preds = %5250
  %5256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5252, ptr noundef nonnull @.str.120) #12
  br label %5257

5257:                                             ; preds = %5253, %5255, %5246, %5248
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #2

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #0

; 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 #0

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #2

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #0

; 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 #0

; 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 #0

declare i32 @s2n_init() local_unnamed_addr #0

declare i32 @s2n_disable_tls13_in_test(...) local_unnamed_addr #0

declare i32 @s2n_extension_send_unimplemented(ptr noundef, ptr noundef) #0

declare void @s2n_debug_info_reset() local_unnamed_addr #0

declare i32 @s2n_extension_send_noop(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_extension_recv_unimplemented(ptr noundef, ptr noundef) #0

declare i32 @s2n_extension_recv_noop(ptr noundef, ptr noundef) local_unnamed_addr #0

declare zeroext i1 @s2n_extension_never_send(ptr noundef) #0

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

declare zeroext i1 @s2n_extension_send_if_tls13_connection(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_extension_error_if_missing(ptr noundef) #0

declare zeroext i8 @s2n_extension_iana_value_to_id(i16 noundef zeroext) local_unnamed_addr #0

declare i32 @s2n_extension_supported_iana_value_to_id(i16 noundef zeroext, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_extension_recv(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9

declare i32 @s2n_extension_send(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_read_uint16(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_stuffer_growable_alloc(ptr noundef, i32 noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @test_send_too_much_data(ptr noundef, ptr noundef) #1

declare i32 @s2n_extension_is_missing(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_reset_tls13_in_test(...) local_unnamed_addr #0

declare i32 @s2n_extension_type_list_get(i32 noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_test_cert_chain_and_key_new(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

declare ptr @s2n_config_new() local_unnamed_addr #0

declare i32 @s2n_config_add_cert_chain_and_key_to_store(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_config_set_unsafe_for_testing(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #0

declare zeroext i1 @s2n_is_tls13_fully_supported(...) local_unnamed_addr #0

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #0

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_io_pair_close(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_io_pair_init_non_blocking(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_connections_set_io_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #10

declare i32 @s2n_negotiate_test_server_and_client_until_message(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #0

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_connection_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_cert_chain_and_key_free(ptr noundef) local_unnamed_addr #0

declare i32 @s2n_cleanup() local_unnamed_addr #0

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #11

attributes #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 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 #2 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 = { nofree nounwind willreturn memory(argmem: read) }
attributes #12 = { nounwind }
attributes #13 = { nounwind willreturn memory(none) }
attributes #14 = { cold nounwind }
attributes #15 = { noreturn nounwind }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!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 = !{!31, !31, i64 0}
!43 = !{!7, !7, i64 0}
!44 = distinct !{!44, !45}
!45 = !{!"llvm.loop.mustprogress"}
!46 = !{!47, !10, i64 16}
!47 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!48 = !{!47, !10, i64 8}
!49 = !{!47, !10, i64 24}
!50 = !{!47, !31, i64 0}
!51 = !{!32, !6, i64 28}
!52 = !{!32, !6, i64 24}
!53 = !{!47, !10, i64 32}
!54 = !{!47, !31, i64 4}
!55 = !{!56, !7, i64 8}
!56 = !{!"", !10, i64 0, !7, i64 8}
!57 = !{!56, !10, i64 0}
!58 = distinct !{!58, !45}
!59 = distinct !{!59, !45}


; Effective O3 passes: BDCEPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,LCSSAPass,LICMPass,LoopInstSimplifyPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass