; LLVM IR from aws/s2n-tls :: tests/unit (s2n_post_handshake_send_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_result = type { i32 }
%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_config = type { i32, ptr, ptr, %struct.certs_by_type, %struct.s2n_blob, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, ptr, i64, ptr, i64, i64, ptr, ptr, ptr, ptr, ptr, ptr, i32, i8, i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i8, i8, %struct.s2n_x509_trust_store, i16, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, i32, i32, i32, ptr, i32, i32, ptr, ptr, i32, %struct.s2n_blob }
%struct.certs_by_type = type { [4 x ptr] }
%struct.s2n_x509_trust_store = type { ptr, i8 }
%struct.s2n_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_post_handshake = type { %struct.s2n_stuffer, [4 x i8] }
%struct.s2n_atomic_flag = type { i32 }
%struct.s2n_crypto_parameters = type { ptr, %struct.s2n_session_key, %struct.s2n_session_key, %struct.s2n_hmac_state, %struct.s2n_hmac_state, [16 x i8], [16 x i8], [8 x i8], [8 x i8] }
%struct.s2n_session_key = type { ptr }
%struct.s2n_hmac_state = type { i32, i16, i32, i16, i8, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, %struct.s2n_hash_state, [128 x i8], [64 x i8] }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon.0 }
%union.anon.0 = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }

@s2n_use_color_in_output = external dso_local global i8, align 1
@test_count = external dso_local global i32, align 4
@stdout = external global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [87 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 [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [87 x i8], align 1
@__const.main.ticket_key_name = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.ticket_key = external hidden unnamed_addr constant [9 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [170 x i8], align 1
@__const.main.fragment_sizes = external hidden unnamed_addr constant [7 x i32], align 16
@__const.main.send_data = external hidden unnamed_addr constant [1 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca [16 x i8], align 16
  %12 = alloca [9 x i8], align 1
  %13 = alloca i64, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca [7 x i32], align 16
  %18 = alloca i32, align 4
  %19 = alloca [1 x i8], align 1
  %20 = alloca i8, align 1
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca %struct.s2n_result, align 4
  %25 = alloca i32, align 4
  %26 = alloca ptr, align 8
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca %struct.s2n_result, align 4
  %30 = alloca i32, align 4
  %31 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %32 = alloca %struct.s2n_result, align 4
  %33 = alloca i32, align 4
  %34 = alloca %struct.s2n_result, align 4
  %35 = alloca i32, align 4
  %36 = alloca i32, align 4
  %37 = alloca %struct.s2n_result, align 4
  %38 = alloca i32, align 4
  %39 = alloca i64, align 8
  %40 = alloca i64, align 8
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i64, align 8
  %46 = alloca i64, align 8
  %47 = alloca ptr, align 8
  %48 = alloca %struct.s2n_result, align 4
  %49 = alloca i32, align 4
  %50 = alloca %struct.s2n_result, align 4
  %51 = alloca i32, align 4
  %52 = alloca i32, align 4
  %53 = alloca i64, align 8
  %54 = alloca i64, align 8
  %55 = alloca i32, align 4
  %56 = alloca [1 x i8], align 1
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i64, align 8
  %60 = alloca i64, align 8
  %61 = alloca ptr, align 8
  %62 = alloca %struct.s2n_result, align 4
  %63 = alloca i32, align 4
  %64 = alloca %struct.s2n_result, align 4
  %65 = alloca i32, align 4
  %66 = alloca i32, align 4
  %67 = alloca %struct.s2n_result, align 4
  %68 = alloca %struct.s2n_result, align 4
  %69 = alloca %struct.s2n_result, align 4
  %70 = alloca ptr, align 8
  %71 = alloca i32, align 4
  %72 = alloca i32, align 4
  %73 = alloca %struct.s2n_result, align 4
  %74 = alloca i32, align 4
  %75 = alloca ptr, align 8
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca %struct.s2n_result, align 4
  %79 = alloca i32, align 4
  %80 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %81 = alloca %struct.s2n_result, align 4
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_result, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  %86 = alloca %struct.s2n_result, align 4
  %87 = alloca i32, align 4
  %88 = alloca ptr, align 8
  %89 = alloca i32, align 4
  %90 = alloca i32, align 4
  %91 = alloca i64, align 8
  %92 = alloca i64, align 8
  %93 = alloca i32, align 4
  %94 = alloca i32, align 4
  %95 = alloca i32, align 4
  %96 = alloca i64, align 8
  %97 = alloca i64, align 8
  %98 = alloca i32, align 4
  %99 = alloca i32, align 4
  %100 = alloca i32, align 4
  %101 = alloca i64, align 8
  %102 = alloca i64, align 8
  %103 = alloca ptr, align 8
  %104 = alloca %struct.s2n_result, align 4
  %105 = alloca i32, align 4
  %106 = alloca %struct.s2n_result, align 4
  %107 = alloca i32, align 4
  %108 = alloca i32, align 4
  %109 = alloca i64, align 8
  %110 = alloca i64, align 8
  %111 = alloca i32, align 4
  %112 = alloca [1 x i8], align 1
  %113 = alloca i32, align 4
  %114 = alloca i32, align 4
  %115 = alloca i64, align 8
  %116 = alloca i64, align 8
  %117 = alloca ptr, align 8
  %118 = alloca %struct.s2n_result, align 4
  %119 = alloca i32, align 4
  %120 = alloca %struct.s2n_result, align 4
  %121 = alloca i32, align 4
  %122 = alloca i32, align 4
  %123 = alloca %struct.s2n_result, align 4
  %124 = alloca %struct.s2n_result, align 4
  %125 = alloca %struct.s2n_result, align 4
  %126 = alloca i32, align 4
  %127 = alloca i32, align 4
  %128 = alloca i32, align 4
  %129 = alloca %struct.s2n_result, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %130

130:                                              ; preds = %2
  br label %131

131:                                              ; preds = %130
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %132 = load ptr, ptr @stdout, align 8, !tbaa !9
  %133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %132, ptr noundef @.str, ptr noundef @.str.1) #11
  %134 = load ptr, ptr @stdout, align 8, !tbaa !9
  %135 = call i32 @fflush(ptr noundef %134)
  br label %136

136:                                              ; preds = %131
  %137 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %138 = icmp eq i32 %137, -1
  br i1 %138, label %139, label %190

139:                                              ; preds = %136
  br label %140

140:                                              ; preds = %139
  br label %141

141:                                              ; preds = %140
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #11
  %142 = call ptr @__errno_location() #12
  %143 = load i32, ptr %142, align 4, !tbaa !5
  store i32 %143, ptr %6, align 4, !tbaa !5
  %144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %145 = call i32 @s2n_print_stacktrace(ptr noundef %144)
  %146 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %147 = trunc i8 %146 to i1
  br i1 %147, label %148, label %170

148:                                              ; preds = %141
  %149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %150 = call i32 @fileno(ptr noundef %149) #11
  %151 = call i32 @isatty(i32 noundef %150) #11
  %152 = icmp ne i32 %151, 0
  br i1 %152, label %153, label %170

153:                                              ; preds = %148
  %154 = load i32, ptr %6, align 4, !tbaa !5
  %155 = call ptr @__errno_location() #12
  store i32 %154, ptr %155, align 4, !tbaa !5
  %156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %157 = load i32, ptr @test_count, align 4, !tbaa !5
  %158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %159 = load i32, ptr %158, align 4, !tbaa !5
  %160 = call ptr @s2n_strerror(i32 noundef %159, ptr noundef @.str.4)
  %161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %162 = load i32, ptr %161, align 4, !tbaa !5
  %163 = call ptr @s2n_strerror_debug(i32 noundef %162, ptr noundef @.str.4)
  %164 = call ptr @__errno_location() #12
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = call ptr @strerror(i32 noundef %165) #11
  %167 = call ptr @__errno_location() #12
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %156, ptr noundef @.str.2, i32 noundef %157, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 67, ptr noundef %160, ptr noundef %163, ptr noundef %166, i32 noundef %168) #11
  br label %187

170:                                              ; preds = %148, %141
  %171 = load i32, ptr %6, align 4, !tbaa !5
  %172 = call ptr @__errno_location() #12
  store i32 %171, ptr %172, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = load i32, ptr @test_count, align 4, !tbaa !5
  %175 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %176 = load i32, ptr %175, align 4, !tbaa !5
  %177 = call ptr @s2n_strerror(i32 noundef %176, ptr noundef @.str.4)
  %178 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @s2n_strerror_debug(i32 noundef %179, ptr noundef @.str.4)
  %181 = call ptr @__errno_location() #12
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call ptr @strerror(i32 noundef %182) #11
  %184 = call ptr @__errno_location() #12
  %185 = load i32, ptr %184, align 4, !tbaa !5
  %186 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %173, ptr noundef @.str.5, i32 noundef %174, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 67, ptr noundef %177, ptr noundef %180, ptr noundef %183, i32 noundef %185) #11
  br label %187

187:                                              ; preds = %170, %153
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #11
  br label %188

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

189:                                              ; No predecessors!
  br label %190

190:                                              ; preds = %189, %136
  br label %191

191:                                              ; preds = %190
  br label %192

192:                                              ; preds = %191
  %193 = load i32, ptr @test_count, align 4, !tbaa !5
  %194 = add nsw i32 %193, 1
  store i32 %194, ptr @test_count, align 4, !tbaa !5
  %195 = call i32 @s2n_enable_atexit()
  %196 = icmp eq i32 %195, -1
  br i1 %196, label %197, label %248

197:                                              ; preds = %192
  br label %198

198:                                              ; preds = %197
  br label %199

199:                                              ; preds = %198
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #11
  %200 = call ptr @__errno_location() #12
  %201 = load i32, ptr %200, align 4, !tbaa !5
  store i32 %201, ptr %7, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = call i32 @s2n_print_stacktrace(ptr noundef %202)
  %204 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %205 = trunc i8 %204 to i1
  br i1 %205, label %206, label %228

206:                                              ; preds = %199
  %207 = load ptr, ptr @stderr, align 8, !tbaa !9
  %208 = call i32 @fileno(ptr noundef %207) #11
  %209 = call i32 @isatty(i32 noundef %208) #11
  %210 = icmp ne i32 %209, 0
  br i1 %210, label %211, label %228

211:                                              ; preds = %206
  %212 = load i32, ptr %7, align 4, !tbaa !5
  %213 = call ptr @__errno_location() #12
  store i32 %212, ptr %213, align 4, !tbaa !5
  %214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %215 = load i32, ptr @test_count, align 4, !tbaa !5
  %216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %217 = load i32, ptr %216, align 4, !tbaa !5
  %218 = call ptr @s2n_strerror(i32 noundef %217, ptr noundef @.str.4)
  %219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %220 = load i32, ptr %219, align 4, !tbaa !5
  %221 = call ptr @s2n_strerror_debug(i32 noundef %220, ptr noundef @.str.4)
  %222 = call ptr @__errno_location() #12
  %223 = load i32, ptr %222, align 4, !tbaa !5
  %224 = call ptr @strerror(i32 noundef %223) #11
  %225 = call ptr @__errno_location() #12
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %214, ptr noundef @.str.2, i32 noundef %215, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 67, ptr noundef %218, ptr noundef %221, ptr noundef %224, i32 noundef %226) #11
  br label %245

228:                                              ; preds = %206, %199
  %229 = load i32, ptr %7, align 4, !tbaa !5
  %230 = call ptr @__errno_location() #12
  store i32 %229, ptr %230, align 4, !tbaa !5
  %231 = load ptr, ptr @stderr, align 8, !tbaa !9
  %232 = load i32, ptr @test_count, align 4, !tbaa !5
  %233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %234 = load i32, ptr %233, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror(i32 noundef %234, ptr noundef @.str.4)
  %236 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %237 = load i32, ptr %236, align 4, !tbaa !5
  %238 = call ptr @s2n_strerror_debug(i32 noundef %237, ptr noundef @.str.4)
  %239 = call ptr @__errno_location() #12
  %240 = load i32, ptr %239, align 4, !tbaa !5
  %241 = call ptr @strerror(i32 noundef %240) #11
  %242 = call ptr @__errno_location() #12
  %243 = load i32, ptr %242, align 4, !tbaa !5
  %244 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %231, ptr noundef @.str.5, i32 noundef %232, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 67, ptr noundef %235, ptr noundef %238, ptr noundef %241, i32 noundef %243) #11
  br label %245

245:                                              ; preds = %228, %211
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %246

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

247:                                              ; No predecessors!
  br label %248

248:                                              ; preds = %247, %192
  br label %249

249:                                              ; preds = %248
  br label %250

250:                                              ; preds = %249
  br label %251

251:                                              ; preds = %250
  %252 = call i32 @s2n_init()
  %253 = icmp eq i32 %252, -1
  br i1 %253, label %254, label %305

254:                                              ; preds = %251
  br label %255

255:                                              ; preds = %254
  br label %256

256:                                              ; preds = %255
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #11
  %257 = call ptr @__errno_location() #12
  %258 = load i32, ptr %257, align 4, !tbaa !5
  store i32 %258, ptr %8, align 4, !tbaa !5
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = call i32 @s2n_print_stacktrace(ptr noundef %259)
  %261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %262 = trunc i8 %261 to i1
  br i1 %262, label %263, label %285

263:                                              ; preds = %256
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = call i32 @fileno(ptr noundef %264) #11
  %266 = call i32 @isatty(i32 noundef %265) #11
  %267 = icmp ne i32 %266, 0
  br i1 %267, label %268, label %285

268:                                              ; preds = %263
  %269 = load i32, ptr %8, align 4, !tbaa !5
  %270 = call ptr @__errno_location() #12
  store i32 %269, ptr %270, align 4, !tbaa !5
  %271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %272 = load i32, ptr @test_count, align 4, !tbaa !5
  %273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call ptr @s2n_strerror(i32 noundef %274, ptr noundef @.str.4)
  %276 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %277 = load i32, ptr %276, align 4, !tbaa !5
  %278 = call ptr @s2n_strerror_debug(i32 noundef %277, ptr noundef @.str.4)
  %279 = call ptr @__errno_location() #12
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = call ptr @strerror(i32 noundef %280) #11
  %282 = call ptr @__errno_location() #12
  %283 = load i32, ptr %282, align 4, !tbaa !5
  %284 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef @.str.2, i32 noundef %272, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 67, ptr noundef %275, ptr noundef %278, ptr noundef %281, i32 noundef %283) #11
  br label %302

285:                                              ; preds = %263, %256
  %286 = load i32, ptr %8, align 4, !tbaa !5
  %287 = call ptr @__errno_location() #12
  store i32 %286, ptr %287, align 4, !tbaa !5
  %288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %289 = load i32, ptr @test_count, align 4, !tbaa !5
  %290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %291 = load i32, ptr %290, align 4, !tbaa !5
  %292 = call ptr @s2n_strerror(i32 noundef %291, ptr noundef @.str.4)
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror_debug(i32 noundef %294, ptr noundef @.str.4)
  %296 = call ptr @__errno_location() #12
  %297 = load i32, ptr %296, align 4, !tbaa !5
  %298 = call ptr @strerror(i32 noundef %297) #11
  %299 = call ptr @__errno_location() #12
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %288, ptr noundef @.str.5, i32 noundef %289, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 67, ptr noundef %292, ptr noundef %295, ptr noundef %298, i32 noundef %300) #11
  br label %302

302:                                              ; preds = %285, %268
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %303

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

304:                                              ; No predecessors!
  br label %305

305:                                              ; preds = %304, %251
  br label %306

306:                                              ; preds = %305
  br label %307

307:                                              ; preds = %306
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #11
  %308 = call ptr @s2n_config_new()
  store ptr %308, ptr %9, align 8, !tbaa !9
  br label %309

309:                                              ; preds = %307
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = add nsw i32 %310, 1
  store i32 %311, ptr @test_count, align 4, !tbaa !5
  %312 = load ptr, ptr %9, align 8, !tbaa !9
  %313 = call i32 @s2n_config_set_cipher_preferences(ptr noundef %312, ptr noundef @.str.8)
  %314 = icmp eq i32 %313, -1
  br i1 %314, label %315, label %368

315:                                              ; preds = %309
  br label %316

316:                                              ; preds = %315
  br label %317

317:                                              ; preds = %316
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #11
  %318 = call ptr @__errno_location() #12
  %319 = load i32, ptr %318, align 4, !tbaa !5
  store i32 %319, ptr %10, align 4, !tbaa !5
  %320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %321 = call i32 @s2n_print_stacktrace(ptr noundef %320)
  %322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %323 = trunc i8 %322 to i1
  br i1 %323, label %324, label %346

324:                                              ; preds = %317
  %325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %326 = call i32 @fileno(ptr noundef %325) #11
  %327 = call i32 @isatty(i32 noundef %326) #11
  %328 = icmp ne i32 %327, 0
  br i1 %328, label %329, label %346

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

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

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

364:                                              ; preds = %363
  br label %365

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

366:                                              ; No predecessors!
  br label %367

367:                                              ; preds = %366
  br label %368

368:                                              ; preds = %367, %309
  br label %369

369:                                              ; preds = %368
  br label %370

370:                                              ; preds = %369
  call void @llvm.lifetime.start.p0(i64 16, ptr %11) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %11, ptr align 16 @__const.main.ticket_key_name, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr %12) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %12, ptr align 1 @__const.main.ticket_key, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #11
  store i64 0, ptr %13, align 8, !tbaa !15
  br label %371

371:                                              ; preds = %370
  %372 = load i32, ptr @test_count, align 4, !tbaa !5
  %373 = add nsw i32 %372, 1
  store i32 %373, ptr @test_count, align 4, !tbaa !5
  %374 = load ptr, ptr %9, align 8, !tbaa !9
  %375 = getelementptr inbounds %struct.s2n_config, ptr %374, i32 0, i32 5
  %376 = load ptr, ptr %375, align 8, !tbaa !17
  %377 = load ptr, ptr %9, align 8, !tbaa !9
  %378 = getelementptr inbounds %struct.s2n_config, ptr %377, i32 0, i32 8
  %379 = load ptr, ptr %378, align 8, !tbaa !23
  %380 = call i32 %376(ptr noundef %379, ptr noundef %13)
  %381 = icmp eq i32 %380, -1
  br i1 %381, label %382, label %435

382:                                              ; preds = %371
  br label %383

383:                                              ; preds = %382
  br label %384

384:                                              ; preds = %383
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #11
  %385 = call ptr @__errno_location() #12
  %386 = load i32, ptr %385, align 4, !tbaa !5
  store i32 %386, ptr %14, 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 %14, 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.10, ptr noundef @.str.1, i32 noundef 78, ptr noundef %403, ptr noundef %406, ptr noundef %409, i32 noundef %411) #11
  br label %430

413:                                              ; preds = %391, %384
  %414 = load i32, ptr %14, 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.10, ptr noundef @.str.1, i32 noundef 78, 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 %14) #11
  br label %431

431:                                              ; preds = %430
  br label %432

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

433:                                              ; No predecessors!
  br label %434

434:                                              ; preds = %433
  br label %435

435:                                              ; preds = %434, %371
  br label %436

436:                                              ; preds = %435
  br label %437

437:                                              ; preds = %436
  br label %438

438:                                              ; preds = %437
  %439 = load i32, ptr @test_count, align 4, !tbaa !5
  %440 = add nsw i32 %439, 1
  store i32 %440, ptr @test_count, align 4, !tbaa !5
  %441 = load ptr, ptr %9, align 8, !tbaa !9
  %442 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef %441, i8 noundef zeroext 1)
  %443 = icmp eq i32 %442, -1
  br i1 %443, label %444, label %497

444:                                              ; preds = %438
  br label %445

445:                                              ; preds = %444
  br label %446

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

453:                                              ; preds = %446
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = call i32 @fileno(ptr noundef %454) #11
  %456 = call i32 @isatty(i32 noundef %455) #11
  %457 = icmp ne i32 %456, 0
  br i1 %457, label %458, label %475

458:                                              ; preds = %453
  %459 = load i32, ptr %15, align 4, !tbaa !5
  %460 = call ptr @__errno_location() #12
  store i32 %459, ptr %460, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %464, ptr noundef @.str.4)
  %466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %467 = load i32, ptr %466, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror_debug(i32 noundef %467, ptr noundef @.str.4)
  %469 = call ptr @__errno_location() #12
  %470 = load i32, ptr %469, align 4, !tbaa !5
  %471 = call ptr @strerror(i32 noundef %470) #11
  %472 = call ptr @__errno_location() #12
  %473 = load i32, ptr %472, align 4, !tbaa !5
  %474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %461, ptr noundef @.str.2, i32 noundef %462, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 79, ptr noundef %465, ptr noundef %468, ptr noundef %471, i32 noundef %473) #11
  br label %492

475:                                              ; preds = %453, %446
  %476 = load i32, ptr %15, align 4, !tbaa !5
  %477 = call ptr @__errno_location() #12
  store i32 %476, ptr %477, align 4, !tbaa !5
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %481, ptr noundef @.str.4)
  %483 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call ptr @s2n_strerror_debug(i32 noundef %484, ptr noundef @.str.4)
  %486 = call ptr @__errno_location() #12
  %487 = load i32, ptr %486, align 4, !tbaa !5
  %488 = call ptr @strerror(i32 noundef %487) #11
  %489 = call ptr @__errno_location() #12
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %478, ptr noundef @.str.5, i32 noundef %479, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 79, ptr noundef %482, ptr noundef %485, ptr noundef %488, i32 noundef %490) #11
  br label %492

492:                                              ; preds = %475, %458
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %493

493:                                              ; preds = %492
  br label %494

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

495:                                              ; No predecessors!
  br label %496

496:                                              ; preds = %495
  br label %497

497:                                              ; preds = %496, %438
  br label %498

498:                                              ; preds = %497
  br label %499

499:                                              ; preds = %498
  br label %500

500:                                              ; preds = %499
  %501 = load i32, ptr @test_count, align 4, !tbaa !5
  %502 = add nsw i32 %501, 1
  store i32 %502, ptr @test_count, align 4, !tbaa !5
  %503 = load ptr, ptr %9, align 8, !tbaa !9
  %504 = getelementptr inbounds [16 x i8], ptr %11, i64 0, i64 0
  %505 = getelementptr inbounds [9 x i8], ptr %12, i64 0, i64 0
  %506 = load i64, ptr %13, align 8, !tbaa !15
  %507 = udiv i64 %506, 1000000000
  %508 = call i32 @s2n_config_add_ticket_crypto_key(ptr noundef %503, ptr noundef %504, i32 noundef 16, ptr noundef %505, i32 noundef 9, i64 noundef %507)
  %509 = icmp eq i32 %508, -1
  br i1 %509, label %510, label %563

510:                                              ; preds = %500
  br label %511

511:                                              ; preds = %510
  br label %512

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

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

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

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

558:                                              ; preds = %541, %524
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  br label %559

559:                                              ; preds = %558
  br label %560

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

561:                                              ; No predecessors!
  br label %562

562:                                              ; preds = %561
  br label %563

563:                                              ; preds = %562, %500
  br label %564

564:                                              ; preds = %563
  br label %565

565:                                              ; preds = %564
  %566 = load ptr, ptr %9, align 8, !tbaa !9
  %567 = getelementptr inbounds %struct.s2n_config, ptr %566, i32 0, i32 36
  store i8 0, ptr %567, align 1, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 28, ptr %17) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %17, ptr align 16 @__const.main.fragment_sizes, i64 28, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #11
  store i32 0, ptr %18, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %19) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %19, ptr align 1 @__const.main.send_data, i64 1, i1 false)
  call void @llvm.lifetime.start.p0(i64 1, ptr %20) #11
  store i8 3, ptr %20, align 1, !tbaa !25
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #11
  %568 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %568, ptr %21, align 8, !tbaa !9
  br label %569

569:                                              ; preds = %565
  %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 = load ptr, ptr %21, align 8, !tbaa !9
  %573 = load ptr, ptr %9, align 8, !tbaa !9
  %574 = call i32 @s2n_connection_set_config(ptr noundef %572, ptr noundef %573)
  %575 = icmp eq i32 %574, -1
  br i1 %575, label %576, label %629

576:                                              ; preds = %569
  br label %577

577:                                              ; preds = %576
  br label %578

578:                                              ; preds = %577
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %579 = call ptr @__errno_location() #12
  %580 = load i32, ptr %579, align 4, !tbaa !5
  store i32 %580, ptr %22, align 4, !tbaa !5
  %581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %582 = call i32 @s2n_print_stacktrace(ptr noundef %581)
  %583 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %584 = trunc i8 %583 to i1
  br i1 %584, label %585, label %607

585:                                              ; preds = %578
  %586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %587 = call i32 @fileno(ptr noundef %586) #11
  %588 = call i32 @isatty(i32 noundef %587) #11
  %589 = icmp ne i32 %588, 0
  br i1 %589, label %590, label %607

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

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

624:                                              ; preds = %607, %590
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #11
  br label %625

625:                                              ; preds = %624
  br label %626

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

627:                                              ; No predecessors!
  br label %628

628:                                              ; preds = %627
  br label %629

629:                                              ; preds = %628, %569
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  br label %632

632:                                              ; preds = %631
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = add nsw i32 %633, 1
  store i32 %634, ptr @test_count, align 4, !tbaa !5
  %635 = load ptr, ptr %21, align 8, !tbaa !9
  %636 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %635, i8 noundef zeroext 34)
  %637 = icmp eq i32 %636, -1
  br i1 %637, label %638, label %691

638:                                              ; preds = %632
  br label %639

639:                                              ; preds = %638
  br label %640

640:                                              ; preds = %639
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #11
  %641 = call ptr @__errno_location() #12
  %642 = load i32, ptr %641, align 4, !tbaa !5
  store i32 %642, ptr %23, align 4, !tbaa !5
  %643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %644 = call i32 @s2n_print_stacktrace(ptr noundef %643)
  %645 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %646 = trunc i8 %645 to i1
  br i1 %646, label %647, label %669

647:                                              ; preds = %640
  %648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %649 = call i32 @fileno(ptr noundef %648) #11
  %650 = call i32 @isatty(i32 noundef %649) #11
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %669

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

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

686:                                              ; preds = %669, %652
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #11
  br label %687

687:                                              ; preds = %686
  br label %688

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

689:                                              ; No predecessors!
  br label %690

690:                                              ; preds = %689
  br label %691

691:                                              ; preds = %690, %632
  br label %692

692:                                              ; preds = %691
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = add nsw i32 %695, 1
  store i32 %696, ptr @test_count, align 4, !tbaa !5
  %697 = load ptr, ptr %21, align 8, !tbaa !9
  %698 = call i32 @s2n_connection_set_secrets(ptr noundef %697)
  %699 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  store i32 %698, ptr %699, align 4
  %700 = getelementptr inbounds %struct.s2n_result, ptr %24, i32 0, i32 0
  %701 = load i32, ptr %700, align 4
  %702 = call zeroext i1 @s2n_result_is_ok(i32 %701)
  br i1 %702, label %756, label %703

703:                                              ; preds = %694
  br label %704

704:                                              ; preds = %703
  br label %705

705:                                              ; preds = %704
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #11
  %706 = call ptr @__errno_location() #12
  %707 = load i32, ptr %706, align 4, !tbaa !5
  store i32 %707, ptr %25, align 4, !tbaa !5
  %708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %709 = call i32 @s2n_print_stacktrace(ptr noundef %708)
  %710 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %711 = trunc i8 %710 to i1
  br i1 %711, label %712, label %734

712:                                              ; preds = %705
  %713 = load ptr, ptr @stderr, align 8, !tbaa !9
  %714 = call i32 @fileno(ptr noundef %713) #11
  %715 = call i32 @isatty(i32 noundef %714) #11
  %716 = icmp ne i32 %715, 0
  br i1 %716, label %717, label %734

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

734:                                              ; preds = %712, %705
  %735 = load i32, ptr %25, align 4, !tbaa !5
  %736 = call ptr @__errno_location() #12
  store i32 %735, ptr %736, align 4, !tbaa !5
  %737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %738 = load i32, ptr @test_count, align 4, !tbaa !5
  %739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %740 = load i32, ptr %739, align 4, !tbaa !5
  %741 = call ptr @s2n_strerror(i32 noundef %740, ptr noundef @.str.4)
  %742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %743 = load i32, ptr %742, align 4, !tbaa !5
  %744 = call ptr @s2n_strerror_debug(i32 noundef %743, ptr noundef @.str.4)
  %745 = call ptr @__errno_location() #12
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @strerror(i32 noundef %746) #11
  %748 = call ptr @__errno_location() #12
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %737, ptr noundef @.str.5, i32 noundef %738, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 103, ptr noundef %741, ptr noundef %744, ptr noundef %747, i32 noundef %749) #11
  br label %751

751:                                              ; preds = %734, %717
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #11
  br label %752

752:                                              ; preds = %751
  br label %753

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

754:                                              ; No predecessors!
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755, %694
  br label %757

757:                                              ; preds = %756
  br label %758

758:                                              ; preds = %757
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #11
  %759 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %759, ptr %26, align 8, !tbaa !9
  br label %760

760:                                              ; preds = %758
  %761 = load i32, ptr @test_count, align 4, !tbaa !5
  %762 = add nsw i32 %761, 1
  store i32 %762, ptr @test_count, align 4, !tbaa !5
  %763 = load ptr, ptr %26, align 8, !tbaa !9
  %764 = load ptr, ptr %9, align 8, !tbaa !9
  %765 = call i32 @s2n_connection_set_config(ptr noundef %763, ptr noundef %764)
  %766 = icmp eq i32 %765, -1
  br i1 %766, label %767, label %820

767:                                              ; preds = %760
  br label %768

768:                                              ; preds = %767
  br label %769

769:                                              ; preds = %768
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #11
  %770 = call ptr @__errno_location() #12
  %771 = load i32, ptr %770, align 4, !tbaa !5
  store i32 %771, ptr %27, align 4, !tbaa !5
  %772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %773 = call i32 @s2n_print_stacktrace(ptr noundef %772)
  %774 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %775 = trunc i8 %774 to i1
  br i1 %775, label %776, label %798

776:                                              ; preds = %769
  %777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %778 = call i32 @fileno(ptr noundef %777) #11
  %779 = call i32 @isatty(i32 noundef %778) #11
  %780 = icmp ne i32 %779, 0
  br i1 %780, label %781, label %798

781:                                              ; preds = %776
  %782 = load i32, ptr %27, align 4, !tbaa !5
  %783 = call ptr @__errno_location() #12
  store i32 %782, ptr %783, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror(i32 noundef %787, ptr noundef @.str.4)
  %789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @s2n_strerror_debug(i32 noundef %790, ptr noundef @.str.4)
  %792 = call ptr @__errno_location() #12
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call ptr @strerror(i32 noundef %793) #11
  %795 = call ptr @__errno_location() #12
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef @.str.2, i32 noundef %785, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 106, ptr noundef %788, ptr noundef %791, ptr noundef %794, i32 noundef %796) #11
  br label %815

798:                                              ; preds = %776, %769
  %799 = load i32, ptr %27, align 4, !tbaa !5
  %800 = call ptr @__errno_location() #12
  store i32 %799, ptr %800, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = load i32, ptr @test_count, align 4, !tbaa !5
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror(i32 noundef %804, ptr noundef @.str.4)
  %806 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @s2n_strerror_debug(i32 noundef %807, ptr noundef @.str.4)
  %809 = call ptr @__errno_location() #12
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call ptr @strerror(i32 noundef %810) #11
  %812 = call ptr @__errno_location() #12
  %813 = load i32, ptr %812, align 4, !tbaa !5
  %814 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %801, ptr noundef @.str.5, i32 noundef %802, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 106, ptr noundef %805, ptr noundef %808, ptr noundef %811, i32 noundef %813) #11
  br label %815

815:                                              ; preds = %798, %781
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %816

816:                                              ; preds = %815
  br label %817

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

818:                                              ; No predecessors!
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819, %760
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  br label %823

823:                                              ; preds = %822
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %825 = add nsw i32 %824, 1
  store i32 %825, ptr @test_count, align 4, !tbaa !5
  %826 = load ptr, ptr %26, align 8, !tbaa !9
  %827 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %826, i8 noundef zeroext 34)
  %828 = icmp eq i32 %827, -1
  br i1 %828, label %829, label %882

829:                                              ; preds = %823
  br label %830

830:                                              ; preds = %829
  br label %831

831:                                              ; preds = %830
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #11
  %832 = call ptr @__errno_location() #12
  %833 = load i32, ptr %832, align 4, !tbaa !5
  store i32 %833, ptr %28, align 4, !tbaa !5
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @s2n_print_stacktrace(ptr noundef %834)
  %836 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %837 = trunc i8 %836 to i1
  br i1 %837, label %838, label %860

838:                                              ; preds = %831
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @fileno(ptr noundef %839) #11
  %841 = call i32 @isatty(i32 noundef %840) #11
  %842 = icmp ne i32 %841, 0
  br i1 %842, label %843, label %860

843:                                              ; preds = %838
  %844 = load i32, ptr %28, align 4, !tbaa !5
  %845 = call ptr @__errno_location() #12
  store i32 %844, ptr %845, align 4, !tbaa !5
  %846 = load ptr, ptr @stderr, align 8, !tbaa !9
  %847 = load i32, ptr @test_count, align 4, !tbaa !5
  %848 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %849 = load i32, ptr %848, align 4, !tbaa !5
  %850 = call ptr @s2n_strerror(i32 noundef %849, ptr noundef @.str.4)
  %851 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %852 = load i32, ptr %851, align 4, !tbaa !5
  %853 = call ptr @s2n_strerror_debug(i32 noundef %852, ptr noundef @.str.4)
  %854 = call ptr @__errno_location() #12
  %855 = load i32, ptr %854, align 4, !tbaa !5
  %856 = call ptr @strerror(i32 noundef %855) #11
  %857 = call ptr @__errno_location() #12
  %858 = load i32, ptr %857, align 4, !tbaa !5
  %859 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %846, ptr noundef @.str.2, i32 noundef %847, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 107, ptr noundef %850, ptr noundef %853, ptr noundef %856, i32 noundef %858) #11
  br label %877

860:                                              ; preds = %838, %831
  %861 = load i32, ptr %28, align 4, !tbaa !5
  %862 = call ptr @__errno_location() #12
  store i32 %861, ptr %862, align 4, !tbaa !5
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = load i32, ptr @test_count, align 4, !tbaa !5
  %865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %866 = load i32, ptr %865, align 4, !tbaa !5
  %867 = call ptr @s2n_strerror(i32 noundef %866, ptr noundef @.str.4)
  %868 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %869 = load i32, ptr %868, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef @.str.4)
  %871 = call ptr @__errno_location() #12
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @strerror(i32 noundef %872) #11
  %874 = call ptr @__errno_location() #12
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %863, ptr noundef @.str.5, i32 noundef %864, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 107, ptr noundef %867, ptr noundef %870, ptr noundef %873, i32 noundef %875) #11
  br label %877

877:                                              ; preds = %860, %843
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #11
  br label %878

878:                                              ; preds = %877
  br label %879

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

880:                                              ; No predecessors!
  br label %881

881:                                              ; preds = %880
  br label %882

882:                                              ; preds = %881, %823
  br label %883

883:                                              ; preds = %882
  br label %884

884:                                              ; preds = %883
  br label %885

885:                                              ; preds = %884
  %886 = load i32, ptr @test_count, align 4, !tbaa !5
  %887 = add nsw i32 %886, 1
  store i32 %887, ptr @test_count, align 4, !tbaa !5
  %888 = load ptr, ptr %26, align 8, !tbaa !9
  %889 = call i32 @s2n_connection_set_secrets(ptr noundef %888)
  %890 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  store i32 %889, ptr %890, align 4
  %891 = getelementptr inbounds %struct.s2n_result, ptr %29, i32 0, i32 0
  %892 = load i32, ptr %891, align 4
  %893 = call zeroext i1 @s2n_result_is_ok(i32 %892)
  br i1 %893, label %947, label %894

894:                                              ; preds = %885
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #11
  %897 = call ptr @__errno_location() #12
  %898 = load i32, ptr %897, align 4, !tbaa !5
  store i32 %898, ptr %30, align 4, !tbaa !5
  %899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %900 = call i32 @s2n_print_stacktrace(ptr noundef %899)
  %901 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %902 = trunc i8 %901 to i1
  br i1 %902, label %903, label %925

903:                                              ; preds = %896
  %904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %905 = call i32 @fileno(ptr noundef %904) #11
  %906 = call i32 @isatty(i32 noundef %905) #11
  %907 = icmp ne i32 %906, 0
  br i1 %907, label %908, label %925

908:                                              ; preds = %903
  %909 = load i32, ptr %30, align 4, !tbaa !5
  %910 = call ptr @__errno_location() #12
  store i32 %909, ptr %910, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = load i32, ptr @test_count, align 4, !tbaa !5
  %913 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = call ptr @s2n_strerror(i32 noundef %914, ptr noundef @.str.4)
  %916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %917 = load i32, ptr %916, align 4, !tbaa !5
  %918 = call ptr @s2n_strerror_debug(i32 noundef %917, ptr noundef @.str.4)
  %919 = call ptr @__errno_location() #12
  %920 = load i32, ptr %919, align 4, !tbaa !5
  %921 = call ptr @strerror(i32 noundef %920) #11
  %922 = call ptr @__errno_location() #12
  %923 = load i32, ptr %922, align 4, !tbaa !5
  %924 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %911, ptr noundef @.str.2, i32 noundef %912, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 108, ptr noundef %915, ptr noundef %918, ptr noundef %921, i32 noundef %923) #11
  br label %942

925:                                              ; preds = %903, %896
  %926 = load i32, ptr %30, align 4, !tbaa !5
  %927 = call ptr @__errno_location() #12
  store i32 %926, ptr %927, align 4, !tbaa !5
  %928 = load ptr, ptr @stderr, align 8, !tbaa !9
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %931 = load i32, ptr %930, align 4, !tbaa !5
  %932 = call ptr @s2n_strerror(i32 noundef %931, ptr noundef @.str.4)
  %933 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %934 = load i32, ptr %933, align 4, !tbaa !5
  %935 = call ptr @s2n_strerror_debug(i32 noundef %934, ptr noundef @.str.4)
  %936 = call ptr @__errno_location() #12
  %937 = load i32, ptr %936, align 4, !tbaa !5
  %938 = call ptr @strerror(i32 noundef %937) #11
  %939 = call ptr @__errno_location() #12
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef @.str.5, i32 noundef %929, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 108, ptr noundef %932, ptr noundef %935, ptr noundef %938, i32 noundef %940) #11
  br label %942

942:                                              ; preds = %925, %908
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %943

943:                                              ; preds = %942
  br label %944

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

945:                                              ; No predecessors!
  br label %946

946:                                              ; preds = %945
  br label %947

947:                                              ; preds = %946, %885
  br label %948

948:                                              ; preds = %947
  br label %949

949:                                              ; preds = %948
  call void @llvm.lifetime.start.p0(i64 80, ptr %31) #11
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 80, i1 false)
  br label %950

950:                                              ; preds = %949
  %951 = load i32, ptr @test_count, align 4, !tbaa !5
  %952 = add nsw i32 %951, 1
  store i32 %952, ptr @test_count, align 4, !tbaa !5
  %953 = call i32 @s2n_io_stuffer_pair_init(ptr noundef %31)
  %954 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %953, ptr %954, align 4
  %955 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %956 = load i32, ptr %955, align 4
  %957 = call zeroext i1 @s2n_result_is_ok(i32 %956)
  br i1 %957, label %1011, label %958

958:                                              ; preds = %950
  br label %959

959:                                              ; preds = %958
  br label %960

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

967:                                              ; preds = %960
  %968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %969 = call i32 @fileno(ptr noundef %968) #11
  %970 = call i32 @isatty(i32 noundef %969) #11
  %971 = icmp ne i32 %970, 0
  br i1 %971, label %972, label %989

972:                                              ; preds = %967
  %973 = load i32, ptr %33, align 4, !tbaa !5
  %974 = call ptr @__errno_location() #12
  store i32 %973, ptr %974, align 4, !tbaa !5
  %975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %976 = load i32, ptr @test_count, align 4, !tbaa !5
  %977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %978 = load i32, ptr %977, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror(i32 noundef %978, ptr noundef @.str.4)
  %980 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %981 = load i32, ptr %980, align 4, !tbaa !5
  %982 = call ptr @s2n_strerror_debug(i32 noundef %981, ptr noundef @.str.4)
  %983 = call ptr @__errno_location() #12
  %984 = load i32, ptr %983, align 4, !tbaa !5
  %985 = call ptr @strerror(i32 noundef %984) #11
  %986 = call ptr @__errno_location() #12
  %987 = load i32, ptr %986, align 4, !tbaa !5
  %988 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %975, ptr noundef @.str.2, i32 noundef %976, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 111, ptr noundef %979, ptr noundef %982, ptr noundef %985, i32 noundef %987) #11
  br label %1006

989:                                              ; preds = %967, %960
  %990 = load i32, ptr %33, align 4, !tbaa !5
  %991 = call ptr @__errno_location() #12
  store i32 %990, ptr %991, align 4, !tbaa !5
  %992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %993 = load i32, ptr @test_count, align 4, !tbaa !5
  %994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %995 = load i32, ptr %994, align 4, !tbaa !5
  %996 = call ptr @s2n_strerror(i32 noundef %995, ptr noundef @.str.4)
  %997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %998 = load i32, ptr %997, align 4, !tbaa !5
  %999 = call ptr @s2n_strerror_debug(i32 noundef %998, ptr noundef @.str.4)
  %1000 = call ptr @__errno_location() #12
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = call ptr @strerror(i32 noundef %1001) #11
  %1003 = call ptr @__errno_location() #12
  %1004 = load i32, ptr %1003, align 4, !tbaa !5
  %1005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %992, ptr noundef @.str.5, i32 noundef %993, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 111, ptr noundef %996, ptr noundef %999, ptr noundef %1002, i32 noundef %1004) #11
  br label %1006

1006:                                             ; preds = %989, %972
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1007

1007:                                             ; preds = %1006
  br label %1008

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

1009:                                             ; No predecessors!
  br label %1010

1010:                                             ; preds = %1009
  br label %1011

1011:                                             ; preds = %1010, %950
  br label %1012

1012:                                             ; preds = %1011
  br label %1013

1013:                                             ; preds = %1012
  br label %1014

1014:                                             ; preds = %1013
  %1015 = load i32, ptr @test_count, align 4, !tbaa !5
  %1016 = add nsw i32 %1015, 1
  store i32 %1016, ptr @test_count, align 4, !tbaa !5
  %1017 = load ptr, ptr %26, align 8, !tbaa !9
  %1018 = load ptr, ptr %21, align 8, !tbaa !9
  %1019 = call i32 @s2n_connections_set_io_stuffer_pair(ptr noundef %1017, ptr noundef %1018, ptr noundef %31)
  %1020 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  store i32 %1019, ptr %1020, align 4
  %1021 = getelementptr inbounds %struct.s2n_result, ptr %34, i32 0, i32 0
  %1022 = load i32, ptr %1021, align 4
  %1023 = call zeroext i1 @s2n_result_is_ok(i32 %1022)
  br i1 %1023, label %1077, label %1024

1024:                                             ; preds = %1014
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #11
  %1027 = call ptr @__errno_location() #12
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  store i32 %1028, ptr %35, align 4, !tbaa !5
  %1029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1030 = call i32 @s2n_print_stacktrace(ptr noundef %1029)
  %1031 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1032 = trunc i8 %1031 to i1
  br i1 %1032, label %1033, label %1055

1033:                                             ; preds = %1026
  %1034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1035 = call i32 @fileno(ptr noundef %1034) #11
  %1036 = call i32 @isatty(i32 noundef %1035) #11
  %1037 = icmp ne i32 %1036, 0
  br i1 %1037, label %1038, label %1055

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

1055:                                             ; preds = %1033, %1026
  %1056 = load i32, ptr %35, 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.5, i32 noundef %1059, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1062, ptr noundef %1065, ptr noundef %1068, i32 noundef %1070) #11
  br label %1072

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

1073:                                             ; preds = %1072
  br label %1074

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

1075:                                             ; No predecessors!
  br label %1076

1076:                                             ; preds = %1075
  br label %1077

1077:                                             ; preds = %1076, %1014
  br label %1078

1078:                                             ; preds = %1077
  br label %1079

1079:                                             ; preds = %1078
  call void @llvm.lifetime.start.p0(i64 4, ptr %36) #11
  store i32 0, ptr %36, align 4, !tbaa !5
  br label %1080

1080:                                             ; preds = %1079
  %1081 = load i32, ptr @test_count, align 4, !tbaa !5
  %1082 = add nsw i32 %1081, 1
  store i32 %1082, ptr @test_count, align 4, !tbaa !5
  %1083 = load ptr, ptr %21, align 8, !tbaa !9
  %1084 = call i32 @s2n_get_nst_message_size(ptr noundef %1083, ptr noundef %36)
  %1085 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  store i32 %1084, ptr %1085, align 4
  %1086 = getelementptr inbounds %struct.s2n_result, ptr %37, i32 0, i32 0
  %1087 = load i32, ptr %1086, align 4
  %1088 = call zeroext i1 @s2n_result_is_ok(i32 %1087)
  br i1 %1088, label %1142, label %1089

1089:                                             ; preds = %1080
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

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

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

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

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

1137:                                             ; preds = %1120, %1103
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1138

1138:                                             ; preds = %1137
  br label %1139

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

1140:                                             ; No predecessors!
  br label %1141

1141:                                             ; preds = %1140
  br label %1142

1142:                                             ; preds = %1141, %1080
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

1144:                                             ; preds = %1143
  call void @llvm.lifetime.start.p0(i64 8, ptr %39) #11
  store i64 0, ptr %39, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #11
  store i64 0, ptr %40, align 8, !tbaa !15
  br label %1145

1145:                                             ; preds = %1552, %1144
  %1146 = load i64, ptr %40, align 8, !tbaa !15
  %1147 = icmp ult i64 %1146, 7
  br i1 %1147, label %1149, label %1148

1148:                                             ; preds = %1145
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #11
  br label %1555

1149:                                             ; preds = %1145
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #11
  %1150 = load i64, ptr %40, align 8, !tbaa !15
  %1151 = getelementptr inbounds [7 x i32], ptr %17, i64 0, i64 %1150
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  store i32 %1152, ptr %41, align 4, !tbaa !5
  %1153 = load i32, ptr %41, align 4, !tbaa !5
  %1154 = trunc i32 %1153 to i16
  %1155 = load ptr, ptr %21, align 8, !tbaa !9
  %1156 = getelementptr inbounds %struct.s2n_connection, ptr %1155, i32 0, i32 53
  store i16 %1154, ptr %1156, align 8, !tbaa !26
  %1157 = load ptr, ptr %21, align 8, !tbaa !9
  %1158 = getelementptr inbounds %struct.s2n_connection, ptr %1157, i32 0, i32 88
  store i16 0, ptr %1158, align 2, !tbaa !50
  %1159 = load ptr, ptr %21, align 8, !tbaa !9
  %1160 = getelementptr inbounds %struct.s2n_connection, ptr %1159, i32 0, i32 87
  store i16 3, ptr %1160, align 4, !tbaa !51
  br label %1161

1161:                                             ; preds = %1149
  %1162 = load i32, ptr @test_count, align 4, !tbaa !5
  %1163 = add nsw i32 %1162, 1
  store i32 %1163, ptr @test_count, align 4, !tbaa !5
  %1164 = load ptr, ptr %21, align 8, !tbaa !9
  %1165 = getelementptr inbounds [1 x i8], ptr %19, i64 0, i64 0
  %1166 = call i64 @s2n_send(ptr noundef %1164, ptr noundef %1165, i64 noundef 1, ptr noundef %18)
  %1167 = icmp eq i64 %1166, -1
  br i1 %1167, label %1168, label %1221

1168:                                             ; preds = %1161
  br label %1169

1169:                                             ; preds = %1168
  br label %1170

1170:                                             ; preds = %1169
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1171 = call ptr @__errno_location() #12
  %1172 = load i32, ptr %1171, align 4, !tbaa !5
  store i32 %1172, ptr %42, align 4, !tbaa !5
  %1173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1174 = call i32 @s2n_print_stacktrace(ptr noundef %1173)
  %1175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1176 = trunc i8 %1175 to i1
  br i1 %1176, label %1177, label %1199

1177:                                             ; preds = %1170
  %1178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1179 = call i32 @fileno(ptr noundef %1178) #11
  %1180 = call i32 @isatty(i32 noundef %1179) #11
  %1181 = icmp ne i32 %1180, 0
  br i1 %1181, label %1182, label %1199

1182:                                             ; preds = %1177
  %1183 = load i32, ptr %42, align 4, !tbaa !5
  %1184 = call ptr @__errno_location() #12
  store i32 %1183, ptr %1184, align 4, !tbaa !5
  %1185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1186 = load i32, ptr @test_count, align 4, !tbaa !5
  %1187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1188 = load i32, ptr %1187, align 4, !tbaa !5
  %1189 = call ptr @s2n_strerror(i32 noundef %1188, ptr noundef @.str.4)
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror_debug(i32 noundef %1191, ptr noundef @.str.4)
  %1193 = call ptr @__errno_location() #12
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @strerror(i32 noundef %1194) #11
  %1196 = call ptr @__errno_location() #12
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1185, ptr noundef @.str.2, i32 noundef %1186, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1189, ptr noundef %1192, ptr noundef %1195, i32 noundef %1197) #11
  br label %1216

1199:                                             ; preds = %1177, %1170
  %1200 = load i32, ptr %42, align 4, !tbaa !5
  %1201 = call ptr @__errno_location() #12
  store i32 %1200, ptr %1201, align 4, !tbaa !5
  %1202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1205 = load i32, ptr %1204, align 4, !tbaa !5
  %1206 = call ptr @s2n_strerror(i32 noundef %1205, ptr noundef @.str.4)
  %1207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror_debug(i32 noundef %1208, ptr noundef @.str.4)
  %1210 = call ptr @__errno_location() #12
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @strerror(i32 noundef %1211) #11
  %1213 = call ptr @__errno_location() #12
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1202, ptr noundef @.str.5, i32 noundef %1203, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1206, ptr noundef %1209, ptr noundef %1212, i32 noundef %1214) #11
  br label %1216

1216:                                             ; preds = %1199, %1182
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

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

1219:                                             ; No predecessors!
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

1221:                                             ; preds = %1220, %1161
  br label %1222

1222:                                             ; preds = %1221
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

1224:                                             ; preds = %1223
  %1225 = load i32, ptr @test_count, align 4, !tbaa !5
  %1226 = add nsw i32 %1225, 1
  store i32 %1226, ptr @test_count, align 4, !tbaa !5
  %1227 = load ptr, ptr %21, align 8, !tbaa !9
  %1228 = getelementptr inbounds %struct.s2n_connection, ptr %1227, i32 0, i32 88
  %1229 = load i16, ptr %1228, align 2, !tbaa !50
  %1230 = zext i16 %1229 to i32
  %1231 = icmp eq i32 %1230, 3
  br i1 %1231, label %1285, label %1232

1232:                                             ; preds = %1224
  br label %1233

1233:                                             ; preds = %1232
  br label %1234

1234:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #11
  %1235 = call ptr @__errno_location() #12
  %1236 = load i32, ptr %1235, align 4, !tbaa !5
  store i32 %1236, ptr %43, align 4, !tbaa !5
  %1237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1238 = call i32 @s2n_print_stacktrace(ptr noundef %1237)
  %1239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1240 = trunc i8 %1239 to i1
  br i1 %1240, label %1241, label %1263

1241:                                             ; preds = %1234
  %1242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1243 = call i32 @fileno(ptr noundef %1242) #11
  %1244 = call i32 @isatty(i32 noundef %1243) #11
  %1245 = icmp ne i32 %1244, 0
  br i1 %1245, label %1246, label %1263

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

1263:                                             ; preds = %1241, %1234
  %1264 = load i32, ptr %43, align 4, !tbaa !5
  %1265 = call ptr @__errno_location() #12
  store i32 %1264, ptr %1265, align 4, !tbaa !5
  %1266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1267 = load i32, ptr @test_count, align 4, !tbaa !5
  %1268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1269 = load i32, ptr %1268, align 4, !tbaa !5
  %1270 = call ptr @s2n_strerror(i32 noundef %1269, ptr noundef @.str.4)
  %1271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1272 = load i32, ptr %1271, align 4, !tbaa !5
  %1273 = call ptr @s2n_strerror_debug(i32 noundef %1272, ptr noundef @.str.4)
  %1274 = call ptr @__errno_location() #12
  %1275 = load i32, ptr %1274, align 4, !tbaa !5
  %1276 = call ptr @strerror(i32 noundef %1275) #11
  %1277 = call ptr @__errno_location() #12
  %1278 = load i32, ptr %1277, align 4, !tbaa !5
  %1279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1266, ptr noundef @.str.5, i32 noundef %1267, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1270, ptr noundef %1273, ptr noundef %1276, i32 noundef %1278) #11
  br label %1280

1280:                                             ; preds = %1263, %1246
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1281

1281:                                             ; preds = %1280
  br label %1282

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

1283:                                             ; No predecessors!
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

1285:                                             ; preds = %1284, %1224
  br label %1286

1286:                                             ; preds = %1285
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287
  %1289 = load i32, ptr @test_count, align 4, !tbaa !5
  %1290 = add nsw i32 %1289, 1
  store i32 %1290, ptr @test_count, align 4, !tbaa !5
  %1291 = load ptr, ptr %21, align 8, !tbaa !9
  %1292 = getelementptr inbounds %struct.s2n_connection, ptr %1291, i32 0, i32 52
  %1293 = getelementptr inbounds %struct.s2n_handshake, ptr %1292, i32 0, i32 0
  %1294 = getelementptr inbounds %struct.s2n_stuffer, ptr %1293, i32 0, i32 0
  %1295 = getelementptr inbounds %struct.s2n_blob, ptr %1294, i32 0, i32 0
  %1296 = load ptr, ptr %1295, align 8, !tbaa !52
  %1297 = icmp eq ptr %1296, null
  br i1 %1297, label %1351, label %1298

1298:                                             ; preds = %1288
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299
  call void @llvm.lifetime.start.p0(i64 4, ptr %44) #11
  %1301 = call ptr @__errno_location() #12
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  store i32 %1302, ptr %44, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = call i32 @s2n_print_stacktrace(ptr noundef %1303)
  %1305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc i8 %1305 to i1
  br i1 %1306, label %1307, label %1329

1307:                                             ; preds = %1300
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #11
  %1310 = call i32 @isatty(i32 noundef %1309) #11
  %1311 = icmp ne i32 %1310, 0
  br i1 %1311, label %1312, label %1329

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

1329:                                             ; preds = %1307, %1300
  %1330 = load i32, ptr %44, align 4, !tbaa !5
  %1331 = call ptr @__errno_location() #12
  store i32 %1330, ptr %1331, align 4, !tbaa !5
  %1332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1333 = load i32, ptr @test_count, align 4, !tbaa !5
  %1334 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1335 = load i32, ptr %1334, align 4, !tbaa !5
  %1336 = call ptr @s2n_strerror(i32 noundef %1335, ptr noundef @.str.4)
  %1337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1338 = load i32, ptr %1337, align 4, !tbaa !5
  %1339 = call ptr @s2n_strerror_debug(i32 noundef %1338, ptr noundef @.str.4)
  %1340 = call ptr @__errno_location() #12
  %1341 = load i32, ptr %1340, align 4, !tbaa !5
  %1342 = call ptr @strerror(i32 noundef %1341) #11
  %1343 = call ptr @__errno_location() #12
  %1344 = load i32, ptr %1343, align 4, !tbaa !5
  %1345 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1332, ptr noundef @.str.5, i32 noundef %1333, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 129, ptr noundef %1336, ptr noundef %1339, ptr noundef %1342, i32 noundef %1344) #11
  br label %1346

1346:                                             ; preds = %1329, %1312
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1347

1347:                                             ; preds = %1346
  br label %1348

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

1349:                                             ; No predecessors!
  br label %1350

1350:                                             ; preds = %1349
  br label %1351

1351:                                             ; preds = %1350, %1288
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #11
  store i64 0, ptr %45, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #11
  store i64 0, ptr %46, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #11
  %1354 = load ptr, ptr %21, align 8, !tbaa !9
  %1355 = getelementptr inbounds %struct.s2n_connection, ptr %1354, i32 0, i32 30
  %1356 = load ptr, ptr %1355, align 8, !tbaa !53
  %1357 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1356, i32 0, i32 8
  %1358 = getelementptr inbounds [8 x i8], ptr %1357, i64 0, i64 0
  store ptr %1358, ptr %47, align 8, !tbaa !9
  br label %1359

1359:                                             ; preds = %1353
  %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 = load ptr, ptr %47, align 8, !tbaa !9
  %1363 = call i32 @s2n_get_actual_record_count(ptr noundef %1362, ptr noundef %39, ptr noundef %45)
  %1364 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1363, ptr %1364, align 4
  %1365 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1366 = load i32, ptr %1365, align 4
  %1367 = call zeroext i1 @s2n_result_is_ok(i32 %1366)
  br i1 %1367, label %1421, label %1368

1368:                                             ; preds = %1359
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1371 = call ptr @__errno_location() #12
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  store i32 %1372, ptr %49, align 4, !tbaa !5
  %1373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1374 = call i32 @s2n_print_stacktrace(ptr noundef %1373)
  %1375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1376 = trunc i8 %1375 to i1
  br i1 %1376, label %1377, label %1399

1377:                                             ; preds = %1370
  %1378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1379 = call i32 @fileno(ptr noundef %1378) #11
  %1380 = call i32 @isatty(i32 noundef %1379) #11
  %1381 = icmp ne i32 %1380, 0
  br i1 %1381, label %1382, label %1399

1382:                                             ; preds = %1377
  %1383 = load i32, ptr %49, align 4, !tbaa !5
  %1384 = call ptr @__errno_location() #12
  store i32 %1383, ptr %1384, align 4, !tbaa !5
  %1385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1386 = load i32, ptr @test_count, align 4, !tbaa !5
  %1387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1388 = load i32, ptr %1387, align 4, !tbaa !5
  %1389 = call ptr @s2n_strerror(i32 noundef %1388, ptr noundef @.str.4)
  %1390 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @s2n_strerror_debug(i32 noundef %1391, ptr noundef @.str.4)
  %1393 = call ptr @__errno_location() #12
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @strerror(i32 noundef %1394) #11
  %1396 = call ptr @__errno_location() #12
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1385, ptr noundef @.str.2, i32 noundef %1386, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1389, ptr noundef %1392, ptr noundef %1395, i32 noundef %1397) #11
  br label %1416

1399:                                             ; preds = %1377, %1370
  %1400 = load i32, ptr %49, align 4, !tbaa !5
  %1401 = call ptr @__errno_location() #12
  store i32 %1400, ptr %1401, align 4, !tbaa !5
  %1402 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1403 = load i32, ptr @test_count, align 4, !tbaa !5
  %1404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1405 = load i32, ptr %1404, align 4, !tbaa !5
  %1406 = call ptr @s2n_strerror(i32 noundef %1405, ptr noundef @.str.4)
  %1407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @s2n_strerror_debug(i32 noundef %1408, ptr noundef @.str.4)
  %1410 = call ptr @__errno_location() #12
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @strerror(i32 noundef %1411) #11
  %1413 = call ptr @__errno_location() #12
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1402, ptr noundef @.str.5, i32 noundef %1403, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 134, ptr noundef %1406, ptr noundef %1409, ptr noundef %1412, i32 noundef %1414) #11
  br label %1416

1416:                                             ; preds = %1399, %1382
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

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

1419:                                             ; No predecessors!
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420, %1359
  br label %1422

1422:                                             ; preds = %1421
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

1424:                                             ; preds = %1423
  %1425 = load i32, ptr @test_count, align 4, !tbaa !5
  %1426 = add nsw i32 %1425, 1
  store i32 %1426, ptr @test_count, align 4, !tbaa !5
  %1427 = load i32, ptr %36, align 4, !tbaa !5
  %1428 = load i32, ptr %41, align 4, !tbaa !5
  %1429 = call i32 @s2n_get_expected_record_count(i32 noundef %1427, i32 noundef %1428, i8 noundef zeroext 3, ptr noundef %46)
  %1430 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  store i32 %1429, ptr %1430, align 4
  %1431 = getelementptr inbounds %struct.s2n_result, ptr %50, i32 0, i32 0
  %1432 = load i32, ptr %1431, align 4
  %1433 = call zeroext i1 @s2n_result_is_ok(i32 %1432)
  br i1 %1433, label %1487, label %1434

1434:                                             ; preds = %1424
  br label %1435

1435:                                             ; preds = %1434
  br label %1436

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

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

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

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

1482:                                             ; preds = %1465, %1448
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

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

1485:                                             ; No predecessors!
  br label %1486

1486:                                             ; preds = %1485
  br label %1487

1487:                                             ; preds = %1486, %1424
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488
  br label %1490

1490:                                             ; preds = %1489
  %1491 = load i32, ptr @test_count, align 4, !tbaa !5
  %1492 = add nsw i32 %1491, 1
  store i32 %1492, ptr @test_count, align 4, !tbaa !5
  %1493 = load i64, ptr %45, align 8, !tbaa !15
  %1494 = load i64, ptr %46, align 8, !tbaa !15
  %1495 = icmp eq i64 %1493, %1494
  br i1 %1495, label %1549, label %1496

1496:                                             ; preds = %1490
  br label %1497

1497:                                             ; preds = %1496
  br label %1498

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

1505:                                             ; preds = %1498
  %1506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1507 = call i32 @fileno(ptr noundef %1506) #11
  %1508 = call i32 @isatty(i32 noundef %1507) #11
  %1509 = icmp ne i32 %1508, 0
  br i1 %1509, label %1510, label %1527

1510:                                             ; preds = %1505
  %1511 = load i32, ptr %52, align 4, !tbaa !5
  %1512 = call ptr @__errno_location() #12
  store i32 %1511, ptr %1512, align 4, !tbaa !5
  %1513 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1514 = load i32, ptr @test_count, align 4, !tbaa !5
  %1515 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1516 = load i32, ptr %1515, align 4, !tbaa !5
  %1517 = call ptr @s2n_strerror(i32 noundef %1516, ptr noundef @.str.4)
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror_debug(i32 noundef %1519, ptr noundef @.str.4)
  %1521 = call ptr @__errno_location() #12
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @strerror(i32 noundef %1522) #11
  %1524 = call ptr @__errno_location() #12
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1513, ptr noundef @.str.2, i32 noundef %1514, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1517, ptr noundef %1520, ptr noundef %1523, i32 noundef %1525) #11
  br label %1544

1527:                                             ; preds = %1505, %1498
  %1528 = load i32, ptr %52, align 4, !tbaa !5
  %1529 = call ptr @__errno_location() #12
  store i32 %1528, ptr %1529, align 4, !tbaa !5
  %1530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1531 = load i32, ptr @test_count, align 4, !tbaa !5
  %1532 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call ptr @s2n_strerror(i32 noundef %1533, ptr noundef @.str.4)
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror_debug(i32 noundef %1536, ptr noundef @.str.4)
  %1538 = call ptr @__errno_location() #12
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @strerror(i32 noundef %1539) #11
  %1541 = call ptr @__errno_location() #12
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1530, ptr noundef @.str.5, i32 noundef %1531, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 136, ptr noundef %1534, ptr noundef %1537, ptr noundef %1540, i32 noundef %1542) #11
  br label %1544

1544:                                             ; preds = %1527, %1510
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #11
  br label %1545

1545:                                             ; preds = %1544
  br label %1546

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

1547:                                             ; No predecessors!
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

1549:                                             ; preds = %1548, %1490
  br label %1550

1550:                                             ; preds = %1549
  br label %1551

1551:                                             ; preds = %1550
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #11
  br label %1552

1552:                                             ; preds = %1551
  %1553 = load i64, ptr %40, align 8, !tbaa !15
  %1554 = add i64 %1553, 1
  store i64 %1554, ptr %40, align 8, !tbaa !15
  br label %1145, !llvm.loop !54

1555:                                             ; preds = %1148
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #11
  store i64 0, ptr %53, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #11
  store i64 0, ptr %54, align 8, !tbaa !15
  br label %1556

1556:                                             ; preds = %1891, %1555
  %1557 = load i64, ptr %54, align 8, !tbaa !15
  %1558 = icmp ult i64 %1557, 7
  br i1 %1558, label %1560, label %1559

1559:                                             ; preds = %1556
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #11
  br label %1894

1560:                                             ; preds = %1556
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %1561 = load i64, ptr %54, align 8, !tbaa !15
  %1562 = getelementptr inbounds [7 x i32], ptr %17, i64 0, i64 %1561
  %1563 = load i32, ptr %1562, align 4, !tbaa !5
  store i32 %1563, ptr %55, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %56) #11
  call void @llvm.memset.p0.i64(ptr align 1 %56, i8 0, i64 1, i1 false)
  br label %1564

1564:                                             ; preds = %1560
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = add nsw i32 %1565, 1
  store i32 %1566, ptr @test_count, align 4, !tbaa !5
  %1567 = load ptr, ptr %26, align 8, !tbaa !9
  %1568 = getelementptr inbounds [1 x i8], ptr %56, i64 0, i64 0
  %1569 = call i64 @s2n_recv(ptr noundef %1567, ptr noundef %1568, i64 noundef 1, ptr noundef %18)
  %1570 = icmp eq i64 %1569, -1
  br i1 %1570, label %1571, label %1624

1571:                                             ; preds = %1564
  br label %1572

1572:                                             ; preds = %1571
  br label %1573

1573:                                             ; preds = %1572
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #11
  %1574 = call ptr @__errno_location() #12
  %1575 = load i32, ptr %1574, align 4, !tbaa !5
  store i32 %1575, ptr %57, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @s2n_print_stacktrace(ptr noundef %1576)
  %1578 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1579 = trunc i8 %1578 to i1
  br i1 %1579, label %1580, label %1602

1580:                                             ; preds = %1573
  %1581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1582 = call i32 @fileno(ptr noundef %1581) #11
  %1583 = call i32 @isatty(i32 noundef %1582) #11
  %1584 = icmp ne i32 %1583, 0
  br i1 %1584, label %1585, label %1602

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

1602:                                             ; preds = %1580, %1573
  %1603 = load i32, ptr %57, align 4, !tbaa !5
  %1604 = call ptr @__errno_location() #12
  store i32 %1603, ptr %1604, align 4, !tbaa !5
  %1605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1606 = load i32, ptr @test_count, align 4, !tbaa !5
  %1607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1608 = load i32, ptr %1607, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror(i32 noundef %1608, ptr noundef @.str.4)
  %1610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1611 = load i32, ptr %1610, align 4, !tbaa !5
  %1612 = call ptr @s2n_strerror_debug(i32 noundef %1611, ptr noundef @.str.4)
  %1613 = call ptr @__errno_location() #12
  %1614 = load i32, ptr %1613, align 4, !tbaa !5
  %1615 = call ptr @strerror(i32 noundef %1614) #11
  %1616 = call ptr @__errno_location() #12
  %1617 = load i32, ptr %1616, align 4, !tbaa !5
  %1618 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1605, ptr noundef @.str.5, i32 noundef %1606, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 145, ptr noundef %1609, ptr noundef %1612, ptr noundef %1615, i32 noundef %1617) #11
  br label %1619

1619:                                             ; preds = %1602, %1585
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

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

1622:                                             ; No predecessors!
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623, %1564
  br label %1625

1625:                                             ; preds = %1624
  br label %1626

1626:                                             ; preds = %1625
  br label %1627

1627:                                             ; preds = %1626
  br label %1628

1628:                                             ; preds = %1627
  %1629 = load i32, ptr @test_count, align 4, !tbaa !5
  %1630 = add nsw i32 %1629, 1
  store i32 %1630, ptr @test_count, align 4, !tbaa !5
  %1631 = getelementptr inbounds [1 x i8], ptr %19, i64 0, i64 0
  %1632 = getelementptr inbounds [1 x i8], ptr %56, i64 0, i64 0
  %1633 = call i32 @memcmp(ptr noundef %1631, ptr noundef %1632, i64 noundef 1) #14
  %1634 = icmp eq i32 %1633, 0
  br i1 %1634, label %1688, label %1635

1635:                                             ; preds = %1628
  br label %1636

1636:                                             ; preds = %1635
  br label %1637

1637:                                             ; preds = %1636
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #11
  %1638 = call ptr @__errno_location() #12
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  store i32 %1639, ptr %58, align 4, !tbaa !5
  %1640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1641 = call i32 @s2n_print_stacktrace(ptr noundef %1640)
  %1642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1643 = trunc i8 %1642 to i1
  br i1 %1643, label %1644, label %1666

1644:                                             ; preds = %1637
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = call i32 @fileno(ptr noundef %1645) #11
  %1647 = call i32 @isatty(i32 noundef %1646) #11
  %1648 = icmp ne i32 %1647, 0
  br i1 %1648, label %1649, label %1666

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

1666:                                             ; preds = %1644, %1637
  %1667 = load i32, ptr %58, align 4, !tbaa !5
  %1668 = call ptr @__errno_location() #12
  store i32 %1667, ptr %1668, align 4, !tbaa !5
  %1669 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1670 = load i32, ptr @test_count, align 4, !tbaa !5
  %1671 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1672 = load i32, ptr %1671, align 4, !tbaa !5
  %1673 = call ptr @s2n_strerror(i32 noundef %1672, ptr noundef @.str.4)
  %1674 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1675 = load i32, ptr %1674, align 4, !tbaa !5
  %1676 = call ptr @s2n_strerror_debug(i32 noundef %1675, ptr noundef @.str.4)
  %1677 = call ptr @__errno_location() #12
  %1678 = load i32, ptr %1677, align 4, !tbaa !5
  %1679 = call ptr @strerror(i32 noundef %1678) #11
  %1680 = call ptr @__errno_location() #12
  %1681 = load i32, ptr %1680, align 4, !tbaa !5
  %1682 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1669, ptr noundef @.str.5, i32 noundef %1670, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 146, ptr noundef %1673, ptr noundef %1676, ptr noundef %1679, i32 noundef %1681) #11
  br label %1683

1683:                                             ; preds = %1666, %1649
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #11
  br label %1684

1684:                                             ; preds = %1683
  br label %1685

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

1686:                                             ; No predecessors!
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687, %1628
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  call void @llvm.lifetime.start.p0(i64 8, ptr %59) #11
  store i64 0, ptr %59, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #11
  store i64 0, ptr %60, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #11
  %1693 = load ptr, ptr %26, align 8, !tbaa !9
  %1694 = getelementptr inbounds %struct.s2n_connection, ptr %1693, i32 0, i32 30
  %1695 = load ptr, ptr %1694, align 8, !tbaa !53
  %1696 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %1695, i32 0, i32 8
  %1697 = getelementptr inbounds [8 x i8], ptr %1696, i64 0, i64 0
  store ptr %1697, ptr %61, align 8, !tbaa !9
  br label %1698

1698:                                             ; preds = %1692
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = add nsw i32 %1699, 1
  store i32 %1700, ptr @test_count, align 4, !tbaa !5
  %1701 = load ptr, ptr %61, align 8, !tbaa !9
  %1702 = call i32 @s2n_get_actual_record_count(ptr noundef %1701, ptr noundef %53, ptr noundef %59)
  %1703 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  store i32 %1702, ptr %1703, align 4
  %1704 = getelementptr inbounds %struct.s2n_result, ptr %62, i32 0, i32 0
  %1705 = load i32, ptr %1704, align 4
  %1706 = call zeroext i1 @s2n_result_is_ok(i32 %1705)
  br i1 %1706, label %1760, label %1707

1707:                                             ; preds = %1698
  br label %1708

1708:                                             ; preds = %1707
  br label %1709

1709:                                             ; preds = %1708
  call void @llvm.lifetime.start.p0(i64 4, ptr %63) #11
  %1710 = call ptr @__errno_location() #12
  %1711 = load i32, ptr %1710, align 4, !tbaa !5
  store i32 %1711, ptr %63, align 4, !tbaa !5
  %1712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1713 = call i32 @s2n_print_stacktrace(ptr noundef %1712)
  %1714 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1715 = trunc i8 %1714 to i1
  br i1 %1715, label %1716, label %1738

1716:                                             ; preds = %1709
  %1717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1718 = call i32 @fileno(ptr noundef %1717) #11
  %1719 = call i32 @isatty(i32 noundef %1718) #11
  %1720 = icmp ne i32 %1719, 0
  br i1 %1720, label %1721, label %1738

1721:                                             ; preds = %1716
  %1722 = load i32, ptr %63, align 4, !tbaa !5
  %1723 = call ptr @__errno_location() #12
  store i32 %1722, ptr %1723, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef @.str.4)
  %1729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror_debug(i32 noundef %1730, ptr noundef @.str.4)
  %1732 = call ptr @__errno_location() #12
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #11
  %1735 = call ptr @__errno_location() #12
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef @.str.2, i32 noundef %1725, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1728, ptr noundef %1731, ptr noundef %1734, i32 noundef %1736) #11
  br label %1755

1738:                                             ; preds = %1716, %1709
  %1739 = load i32, ptr %63, align 4, !tbaa !5
  %1740 = call ptr @__errno_location() #12
  store i32 %1739, ptr %1740, align 4, !tbaa !5
  %1741 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1742 = load i32, ptr @test_count, align 4, !tbaa !5
  %1743 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1744 = load i32, ptr %1743, align 4, !tbaa !5
  %1745 = call ptr @s2n_strerror(i32 noundef %1744, ptr noundef @.str.4)
  %1746 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1747 = load i32, ptr %1746, align 4, !tbaa !5
  %1748 = call ptr @s2n_strerror_debug(i32 noundef %1747, ptr noundef @.str.4)
  %1749 = call ptr @__errno_location() #12
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  %1751 = call ptr @strerror(i32 noundef %1750) #11
  %1752 = call ptr @__errno_location() #12
  %1753 = load i32, ptr %1752, align 4, !tbaa !5
  %1754 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1741, ptr noundef @.str.5, i32 noundef %1742, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 151, ptr noundef %1745, ptr noundef %1748, ptr noundef %1751, i32 noundef %1753) #11
  br label %1755

1755:                                             ; preds = %1738, %1721
  call void @llvm.lifetime.end.p0(i64 4, ptr %63) #11
  br label %1756

1756:                                             ; preds = %1755
  br label %1757

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

1758:                                             ; No predecessors!
  br label %1759

1759:                                             ; preds = %1758
  br label %1760

1760:                                             ; preds = %1759, %1698
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  br label %1763

1763:                                             ; preds = %1762
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = add nsw i32 %1764, 1
  store i32 %1765, ptr @test_count, align 4, !tbaa !5
  %1766 = load i32, ptr %36, align 4, !tbaa !5
  %1767 = load i32, ptr %55, align 4, !tbaa !5
  %1768 = call i32 @s2n_get_expected_record_count(i32 noundef %1766, i32 noundef %1767, i8 noundef zeroext 3, ptr noundef %60)
  %1769 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  store i32 %1768, ptr %1769, align 4
  %1770 = getelementptr inbounds %struct.s2n_result, ptr %64, i32 0, i32 0
  %1771 = load i32, ptr %1770, align 4
  %1772 = call zeroext i1 @s2n_result_is_ok(i32 %1771)
  br i1 %1772, label %1826, label %1773

1773:                                             ; preds = %1763
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #11
  %1776 = call ptr @__errno_location() #12
  %1777 = load i32, ptr %1776, align 4, !tbaa !5
  store i32 %1777, ptr %65, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = call i32 @s2n_print_stacktrace(ptr noundef %1778)
  %1780 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1781 = trunc i8 %1780 to i1
  br i1 %1781, label %1782, label %1804

1782:                                             ; preds = %1775
  %1783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1784 = call i32 @fileno(ptr noundef %1783) #11
  %1785 = call i32 @isatty(i32 noundef %1784) #11
  %1786 = icmp ne i32 %1785, 0
  br i1 %1786, label %1787, label %1804

1787:                                             ; preds = %1782
  %1788 = load i32, ptr %65, align 4, !tbaa !5
  %1789 = call ptr @__errno_location() #12
  store i32 %1788, ptr %1789, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1793 = load i32, ptr %1792, align 4, !tbaa !5
  %1794 = call ptr @s2n_strerror(i32 noundef %1793, ptr noundef @.str.4)
  %1795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1796 = load i32, ptr %1795, align 4, !tbaa !5
  %1797 = call ptr @s2n_strerror_debug(i32 noundef %1796, ptr noundef @.str.4)
  %1798 = call ptr @__errno_location() #12
  %1799 = load i32, ptr %1798, align 4, !tbaa !5
  %1800 = call ptr @strerror(i32 noundef %1799) #11
  %1801 = call ptr @__errno_location() #12
  %1802 = load i32, ptr %1801, align 4, !tbaa !5
  %1803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef @.str.2, i32 noundef %1791, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 152, ptr noundef %1794, ptr noundef %1797, ptr noundef %1800, i32 noundef %1802) #11
  br label %1821

1804:                                             ; preds = %1782, %1775
  %1805 = load i32, ptr %65, align 4, !tbaa !5
  %1806 = call ptr @__errno_location() #12
  store i32 %1805, ptr %1806, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = load i32, ptr @test_count, align 4, !tbaa !5
  %1809 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1810 = load i32, ptr %1809, align 4, !tbaa !5
  %1811 = call ptr @s2n_strerror(i32 noundef %1810, ptr noundef @.str.4)
  %1812 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1813 = load i32, ptr %1812, align 4, !tbaa !5
  %1814 = call ptr @s2n_strerror_debug(i32 noundef %1813, ptr noundef @.str.4)
  %1815 = call ptr @__errno_location() #12
  %1816 = load i32, ptr %1815, align 4, !tbaa !5
  %1817 = call ptr @strerror(i32 noundef %1816) #11
  %1818 = call ptr @__errno_location() #12
  %1819 = load i32, ptr %1818, align 4, !tbaa !5
  %1820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1807, ptr noundef @.str.5, i32 noundef %1808, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 152, ptr noundef %1811, ptr noundef %1814, ptr noundef %1817, i32 noundef %1819) #11
  br label %1821

1821:                                             ; preds = %1804, %1787
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #11
  br label %1822

1822:                                             ; preds = %1821
  br label %1823

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

1824:                                             ; No predecessors!
  br label %1825

1825:                                             ; preds = %1824
  br label %1826

1826:                                             ; preds = %1825, %1763
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827
  br label %1829

1829:                                             ; preds = %1828
  %1830 = load i32, ptr @test_count, align 4, !tbaa !5
  %1831 = add nsw i32 %1830, 1
  store i32 %1831, ptr @test_count, align 4, !tbaa !5
  %1832 = load i64, ptr %59, align 8, !tbaa !15
  %1833 = load i64, ptr %60, align 8, !tbaa !15
  %1834 = icmp eq i64 %1832, %1833
  br i1 %1834, label %1888, label %1835

1835:                                             ; preds = %1829
  br label %1836

1836:                                             ; preds = %1835
  br label %1837

1837:                                             ; preds = %1836
  call void @llvm.lifetime.start.p0(i64 4, ptr %66) #11
  %1838 = call ptr @__errno_location() #12
  %1839 = load i32, ptr %1838, align 4, !tbaa !5
  store i32 %1839, ptr %66, align 4, !tbaa !5
  %1840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1841 = call i32 @s2n_print_stacktrace(ptr noundef %1840)
  %1842 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1843 = trunc i8 %1842 to i1
  br i1 %1843, label %1844, label %1866

1844:                                             ; preds = %1837
  %1845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1846 = call i32 @fileno(ptr noundef %1845) #11
  %1847 = call i32 @isatty(i32 noundef %1846) #11
  %1848 = icmp ne i32 %1847, 0
  br i1 %1848, label %1849, label %1866

1849:                                             ; preds = %1844
  %1850 = load i32, ptr %66, align 4, !tbaa !5
  %1851 = call ptr @__errno_location() #12
  store i32 %1850, ptr %1851, align 4, !tbaa !5
  %1852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1853 = load i32, ptr @test_count, align 4, !tbaa !5
  %1854 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1855 = load i32, ptr %1854, align 4, !tbaa !5
  %1856 = call ptr @s2n_strerror(i32 noundef %1855, ptr noundef @.str.4)
  %1857 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1858 = load i32, ptr %1857, align 4, !tbaa !5
  %1859 = call ptr @s2n_strerror_debug(i32 noundef %1858, ptr noundef @.str.4)
  %1860 = call ptr @__errno_location() #12
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @strerror(i32 noundef %1861) #11
  %1863 = call ptr @__errno_location() #12
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1852, ptr noundef @.str.2, i32 noundef %1853, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1856, ptr noundef %1859, ptr noundef %1862, i32 noundef %1864) #11
  br label %1883

1866:                                             ; preds = %1844, %1837
  %1867 = load i32, ptr %66, align 4, !tbaa !5
  %1868 = call ptr @__errno_location() #12
  store i32 %1867, ptr %1868, align 4, !tbaa !5
  %1869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1870 = load i32, ptr @test_count, align 4, !tbaa !5
  %1871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror(i32 noundef %1872, ptr noundef @.str.4)
  %1874 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1875 = load i32, ptr %1874, align 4, !tbaa !5
  %1876 = call ptr @s2n_strerror_debug(i32 noundef %1875, ptr noundef @.str.4)
  %1877 = call ptr @__errno_location() #12
  %1878 = load i32, ptr %1877, align 4, !tbaa !5
  %1879 = call ptr @strerror(i32 noundef %1878) #11
  %1880 = call ptr @__errno_location() #12
  %1881 = load i32, ptr %1880, align 4, !tbaa !5
  %1882 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1869, ptr noundef @.str.5, i32 noundef %1870, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 153, ptr noundef %1873, ptr noundef %1876, ptr noundef %1879, i32 noundef %1881) #11
  br label %1883

1883:                                             ; preds = %1866, %1849
  call void @llvm.lifetime.end.p0(i64 4, ptr %66) #11
  br label %1884

1884:                                             ; preds = %1883
  br label %1885

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

1886:                                             ; No predecessors!
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887, %1829
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %59) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %56) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %1891

1891:                                             ; preds = %1890
  %1892 = load i64, ptr %54, align 8, !tbaa !15
  %1893 = add i64 %1892, 1
  store i64 %1893, ptr %54, align 8, !tbaa !15
  br label %1556, !llvm.loop !56

1894:                                             ; preds = %1559
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %39) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %36) #11
  %1895 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %31)
  %1896 = getelementptr inbounds %struct.s2n_result, ptr %67, i32 0, i32 0
  store i32 %1895, ptr %1896, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %31) #11
  %1897 = call i32 @s2n_connection_ptr_free(ptr noundef %26)
  %1898 = getelementptr inbounds %struct.s2n_result, ptr %68, i32 0, i32 0
  store i32 %1897, ptr %1898, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #11
  %1899 = call i32 @s2n_connection_ptr_free(ptr noundef %21)
  %1900 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  store i32 %1899, ptr %1900, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %70) #11
  %1901 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1901, ptr %70, align 8, !tbaa !9
  br label %1902

1902:                                             ; preds = %1894
  %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 = load ptr, ptr %70, align 8, !tbaa !9
  %1906 = load ptr, ptr %9, align 8, !tbaa !9
  %1907 = call i32 @s2n_connection_set_config(ptr noundef %1905, ptr noundef %1906)
  %1908 = icmp eq i32 %1907, -1
  br i1 %1908, label %1909, label %1962

1909:                                             ; preds = %1902
  br label %1910

1910:                                             ; preds = %1909
  br label %1911

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

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

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

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

1957:                                             ; preds = %1940, %1923
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %1958

1958:                                             ; preds = %1957
  br label %1959

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

1960:                                             ; No predecessors!
  br label %1961

1961:                                             ; preds = %1960
  br label %1962

1962:                                             ; preds = %1961, %1902
  br label %1963

1963:                                             ; preds = %1962
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = add nsw i32 %1966, 1
  store i32 %1967, ptr @test_count, align 4, !tbaa !5
  %1968 = load ptr, ptr %70, align 8, !tbaa !9
  %1969 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %1968, i8 noundef zeroext 34)
  %1970 = icmp eq i32 %1969, -1
  br i1 %1970, label %1971, label %2024

1971:                                             ; preds = %1965
  br label %1972

1972:                                             ; preds = %1971
  br label %1973

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

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

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

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

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

2020:                                             ; preds = %2019
  br label %2021

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

2022:                                             ; No predecessors!
  br label %2023

2023:                                             ; preds = %2022
  br label %2024

2024:                                             ; preds = %2023, %1965
  br label %2025

2025:                                             ; preds = %2024
  br label %2026

2026:                                             ; preds = %2025
  br label %2027

2027:                                             ; preds = %2026
  %2028 = load i32, ptr @test_count, align 4, !tbaa !5
  %2029 = add nsw i32 %2028, 1
  store i32 %2029, ptr @test_count, align 4, !tbaa !5
  %2030 = load ptr, ptr %70, align 8, !tbaa !9
  %2031 = call i32 @s2n_connection_set_secrets(ptr noundef %2030)
  %2032 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2031, ptr %2032, align 4
  %2033 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %2034 = load i32, ptr %2033, align 4
  %2035 = call zeroext i1 @s2n_result_is_ok(i32 %2034)
  br i1 %2035, label %2089, label %2036

2036:                                             ; preds = %2027
  br label %2037

2037:                                             ; preds = %2036
  br label %2038

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

2045:                                             ; preds = %2038
  %2046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2047 = call i32 @fileno(ptr noundef %2046) #11
  %2048 = call i32 @isatty(i32 noundef %2047) #11
  %2049 = icmp ne i32 %2048, 0
  br i1 %2049, label %2050, label %2067

2050:                                             ; preds = %2045
  %2051 = load i32, ptr %74, align 4, !tbaa !5
  %2052 = call ptr @__errno_location() #12
  store i32 %2051, ptr %2052, align 4, !tbaa !5
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = load i32, ptr @test_count, align 4, !tbaa !5
  %2055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2056 = load i32, ptr %2055, align 4, !tbaa !5
  %2057 = call ptr @s2n_strerror(i32 noundef %2056, ptr noundef @.str.4)
  %2058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2059 = load i32, ptr %2058, align 4, !tbaa !5
  %2060 = call ptr @s2n_strerror_debug(i32 noundef %2059, ptr noundef @.str.4)
  %2061 = call ptr @__errno_location() #12
  %2062 = load i32, ptr %2061, align 4, !tbaa !5
  %2063 = call ptr @strerror(i32 noundef %2062) #11
  %2064 = call ptr @__errno_location() #12
  %2065 = load i32, ptr %2064, align 4, !tbaa !5
  %2066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2053, ptr noundef @.str.2, i32 noundef %2054, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2057, ptr noundef %2060, ptr noundef %2063, i32 noundef %2065) #11
  br label %2084

2067:                                             ; preds = %2045, %2038
  %2068 = load i32, ptr %74, align 4, !tbaa !5
  %2069 = call ptr @__errno_location() #12
  store i32 %2068, ptr %2069, align 4, !tbaa !5
  %2070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2071 = load i32, ptr @test_count, align 4, !tbaa !5
  %2072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2073 = load i32, ptr %2072, align 4, !tbaa !5
  %2074 = call ptr @s2n_strerror(i32 noundef %2073, ptr noundef @.str.4)
  %2075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2076 = load i32, ptr %2075, align 4, !tbaa !5
  %2077 = call ptr @s2n_strerror_debug(i32 noundef %2076, ptr noundef @.str.4)
  %2078 = call ptr @__errno_location() #12
  %2079 = load i32, ptr %2078, align 4, !tbaa !5
  %2080 = call ptr @strerror(i32 noundef %2079) #11
  %2081 = call ptr @__errno_location() #12
  %2082 = load i32, ptr %2081, align 4, !tbaa !5
  %2083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2070, ptr noundef @.str.5, i32 noundef %2071, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2074, ptr noundef %2077, ptr noundef %2080, i32 noundef %2082) #11
  br label %2084

2084:                                             ; preds = %2067, %2050
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2085

2085:                                             ; preds = %2084
  br label %2086

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

2087:                                             ; No predecessors!
  br label %2088

2088:                                             ; preds = %2087
  br label %2089

2089:                                             ; preds = %2088, %2027
  br label %2090

2090:                                             ; preds = %2089
  br label %2091

2091:                                             ; preds = %2090
  call void @llvm.lifetime.start.p0(i64 8, ptr %75) #11
  %2092 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %2092, ptr %75, align 8, !tbaa !9
  br label %2093

2093:                                             ; preds = %2091
  %2094 = load i32, ptr @test_count, align 4, !tbaa !5
  %2095 = add nsw i32 %2094, 1
  store i32 %2095, ptr @test_count, align 4, !tbaa !5
  %2096 = load ptr, ptr %75, align 8, !tbaa !9
  %2097 = load ptr, ptr %9, align 8, !tbaa !9
  %2098 = call i32 @s2n_connection_set_config(ptr noundef %2096, ptr noundef %2097)
  %2099 = icmp eq i32 %2098, -1
  br i1 %2099, label %2100, label %2153

2100:                                             ; preds = %2093
  br label %2101

2101:                                             ; preds = %2100
  br label %2102

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

2109:                                             ; preds = %2102
  %2110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2111 = call i32 @fileno(ptr noundef %2110) #11
  %2112 = call i32 @isatty(i32 noundef %2111) #11
  %2113 = icmp ne i32 %2112, 0
  br i1 %2113, label %2114, label %2131

2114:                                             ; preds = %2109
  %2115 = load i32, ptr %76, align 4, !tbaa !5
  %2116 = call ptr @__errno_location() #12
  store i32 %2115, ptr %2116, align 4, !tbaa !5
  %2117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2118 = load i32, ptr @test_count, align 4, !tbaa !5
  %2119 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2120 = load i32, ptr %2119, align 4, !tbaa !5
  %2121 = call ptr @s2n_strerror(i32 noundef %2120, ptr noundef @.str.4)
  %2122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2123 = load i32, ptr %2122, align 4, !tbaa !5
  %2124 = call ptr @s2n_strerror_debug(i32 noundef %2123, ptr noundef @.str.4)
  %2125 = call ptr @__errno_location() #12
  %2126 = load i32, ptr %2125, align 4, !tbaa !5
  %2127 = call ptr @strerror(i32 noundef %2126) #11
  %2128 = call ptr @__errno_location() #12
  %2129 = load i32, ptr %2128, align 4, !tbaa !5
  %2130 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2117, ptr noundef @.str.2, i32 noundef %2118, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2121, ptr noundef %2124, ptr noundef %2127, i32 noundef %2129) #11
  br label %2148

2131:                                             ; preds = %2109, %2102
  %2132 = load i32, ptr %76, align 4, !tbaa !5
  %2133 = call ptr @__errno_location() #12
  store i32 %2132, ptr %2133, align 4, !tbaa !5
  %2134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2135 = load i32, ptr @test_count, align 4, !tbaa !5
  %2136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2137 = load i32, ptr %2136, align 4, !tbaa !5
  %2138 = call ptr @s2n_strerror(i32 noundef %2137, ptr noundef @.str.4)
  %2139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2140 = load i32, ptr %2139, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror_debug(i32 noundef %2140, ptr noundef @.str.4)
  %2142 = call ptr @__errno_location() #12
  %2143 = load i32, ptr %2142, align 4, !tbaa !5
  %2144 = call ptr @strerror(i32 noundef %2143) #11
  %2145 = call ptr @__errno_location() #12
  %2146 = load i32, ptr %2145, align 4, !tbaa !5
  %2147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2134, ptr noundef @.str.5, i32 noundef %2135, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 165, ptr noundef %2138, ptr noundef %2141, ptr noundef %2144, i32 noundef %2146) #11
  br label %2148

2148:                                             ; preds = %2131, %2114
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %2149

2149:                                             ; preds = %2148
  br label %2150

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

2151:                                             ; No predecessors!
  br label %2152

2152:                                             ; preds = %2151
  br label %2153

2153:                                             ; preds = %2152, %2093
  br label %2154

2154:                                             ; preds = %2153
  br label %2155

2155:                                             ; preds = %2154
  br label %2156

2156:                                             ; preds = %2155
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = add nsw i32 %2157, 1
  store i32 %2158, ptr @test_count, align 4, !tbaa !5
  %2159 = load ptr, ptr %75, align 8, !tbaa !9
  %2160 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %2159, i8 noundef zeroext 34)
  %2161 = icmp eq i32 %2160, -1
  br i1 %2161, label %2162, label %2215

2162:                                             ; preds = %2156
  br label %2163

2163:                                             ; preds = %2162
  br label %2164

2164:                                             ; preds = %2163
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #11
  %2165 = call ptr @__errno_location() #12
  %2166 = load i32, ptr %2165, align 4, !tbaa !5
  store i32 %2166, ptr %77, align 4, !tbaa !5
  %2167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2168 = call i32 @s2n_print_stacktrace(ptr noundef %2167)
  %2169 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2170 = trunc i8 %2169 to i1
  br i1 %2170, label %2171, label %2193

2171:                                             ; preds = %2164
  %2172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2173 = call i32 @fileno(ptr noundef %2172) #11
  %2174 = call i32 @isatty(i32 noundef %2173) #11
  %2175 = icmp ne i32 %2174, 0
  br i1 %2175, label %2176, label %2193

2176:                                             ; preds = %2171
  %2177 = load i32, ptr %77, align 4, !tbaa !5
  %2178 = call ptr @__errno_location() #12
  store i32 %2177, ptr %2178, align 4, !tbaa !5
  %2179 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2180 = load i32, ptr @test_count, align 4, !tbaa !5
  %2181 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2182 = load i32, ptr %2181, align 4, !tbaa !5
  %2183 = call ptr @s2n_strerror(i32 noundef %2182, ptr noundef @.str.4)
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror_debug(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call ptr @__errno_location() #12
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @strerror(i32 noundef %2188) #11
  %2190 = call ptr @__errno_location() #12
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2179, ptr noundef @.str.2, i32 noundef %2180, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2183, ptr noundef %2186, ptr noundef %2189, i32 noundef %2191) #11
  br label %2210

2193:                                             ; preds = %2171, %2164
  %2194 = load i32, ptr %77, align 4, !tbaa !5
  %2195 = call ptr @__errno_location() #12
  store i32 %2194, ptr %2195, align 4, !tbaa !5
  %2196 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2197 = load i32, ptr @test_count, align 4, !tbaa !5
  %2198 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2199 = load i32, ptr %2198, align 4, !tbaa !5
  %2200 = call ptr @s2n_strerror(i32 noundef %2199, ptr noundef @.str.4)
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror_debug(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call ptr @__errno_location() #12
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @strerror(i32 noundef %2205) #11
  %2207 = call ptr @__errno_location() #12
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2196, ptr noundef @.str.5, i32 noundef %2197, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2200, ptr noundef %2203, ptr noundef %2206, i32 noundef %2208) #11
  br label %2210

2210:                                             ; preds = %2193, %2176
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #11
  br label %2211

2211:                                             ; preds = %2210
  br label %2212

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

2213:                                             ; No predecessors!
  br label %2214

2214:                                             ; preds = %2213
  br label %2215

2215:                                             ; preds = %2214, %2156
  br label %2216

2216:                                             ; preds = %2215
  br label %2217

2217:                                             ; preds = %2216
  br label %2218

2218:                                             ; preds = %2217
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = add nsw i32 %2219, 1
  store i32 %2220, ptr @test_count, align 4, !tbaa !5
  %2221 = load ptr, ptr %75, align 8, !tbaa !9
  %2222 = call i32 @s2n_connection_set_secrets(ptr noundef %2221)
  %2223 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  store i32 %2222, ptr %2223, align 4
  %2224 = getelementptr inbounds %struct.s2n_result, ptr %78, i32 0, i32 0
  %2225 = load i32, ptr %2224, align 4
  %2226 = call zeroext i1 @s2n_result_is_ok(i32 %2225)
  br i1 %2226, label %2280, label %2227

2227:                                             ; preds = %2218
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

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

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

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

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

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

2276:                                             ; preds = %2275
  br label %2277

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

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278
  br label %2280

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

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  call void @llvm.lifetime.start.p0(i64 80, ptr %80) #11
  call void @llvm.memset.p0.i64(ptr align 8 %80, i8 0, i64 80, i1 false)
  br label %2283

2283:                                             ; preds = %2282
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = add nsw i32 %2284, 1
  store i32 %2285, ptr @test_count, align 4, !tbaa !5
  %2286 = call i32 @s2n_io_stuffer_pair_init(ptr noundef %80)
  %2287 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  store i32 %2286, ptr %2287, align 4
  %2288 = getelementptr inbounds %struct.s2n_result, ptr %81, i32 0, i32 0
  %2289 = load i32, ptr %2288, align 4
  %2290 = call zeroext i1 @s2n_result_is_ok(i32 %2289)
  br i1 %2290, label %2344, label %2291

2291:                                             ; preds = %2283
  br label %2292

2292:                                             ; preds = %2291
  br label %2293

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

2300:                                             ; preds = %2293
  %2301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2302 = call i32 @fileno(ptr noundef %2301) #11
  %2303 = call i32 @isatty(i32 noundef %2302) #11
  %2304 = icmp ne i32 %2303, 0
  br i1 %2304, label %2305, label %2322

2305:                                             ; preds = %2300
  %2306 = load i32, ptr %82, align 4, !tbaa !5
  %2307 = call ptr @__errno_location() #12
  store i32 %2306, ptr %2307, align 4, !tbaa !5
  %2308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2309 = load i32, ptr @test_count, align 4, !tbaa !5
  %2310 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2311 = load i32, ptr %2310, align 4, !tbaa !5
  %2312 = call ptr @s2n_strerror(i32 noundef %2311, ptr noundef @.str.4)
  %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_debug(i32 noundef %2314, ptr noundef @.str.4)
  %2316 = call ptr @__errno_location() #12
  %2317 = load i32, ptr %2316, align 4, !tbaa !5
  %2318 = call ptr @strerror(i32 noundef %2317) #11
  %2319 = call ptr @__errno_location() #12
  %2320 = load i32, ptr %2319, align 4, !tbaa !5
  %2321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2308, ptr noundef @.str.2, i32 noundef %2309, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2312, ptr noundef %2315, ptr noundef %2318, i32 noundef %2320) #11
  br label %2339

2322:                                             ; preds = %2300, %2293
  %2323 = load i32, ptr %82, align 4, !tbaa !5
  %2324 = call ptr @__errno_location() #12
  store i32 %2323, ptr %2324, align 4, !tbaa !5
  %2325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2326 = load i32, ptr @test_count, align 4, !tbaa !5
  %2327 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2328 = load i32, ptr %2327, align 4, !tbaa !5
  %2329 = call ptr @s2n_strerror(i32 noundef %2328, ptr noundef @.str.4)
  %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_debug(i32 noundef %2331, ptr noundef @.str.4)
  %2333 = call ptr @__errno_location() #12
  %2334 = load i32, ptr %2333, align 4, !tbaa !5
  %2335 = call ptr @strerror(i32 noundef %2334) #11
  %2336 = call ptr @__errno_location() #12
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2325, ptr noundef @.str.5, i32 noundef %2326, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2329, ptr noundef %2332, ptr noundef %2335, i32 noundef %2337) #11
  br label %2339

2339:                                             ; preds = %2322, %2305
  call void @llvm.lifetime.end.p0(i64 4, ptr %82) #11
  br label %2340

2340:                                             ; preds = %2339
  br label %2341

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

2342:                                             ; No predecessors!
  br label %2343

2343:                                             ; preds = %2342
  br label %2344

2344:                                             ; preds = %2343, %2283
  br label %2345

2345:                                             ; preds = %2344
  br label %2346

2346:                                             ; preds = %2345
  br label %2347

2347:                                             ; preds = %2346
  %2348 = load i32, ptr @test_count, align 4, !tbaa !5
  %2349 = add nsw i32 %2348, 1
  store i32 %2349, ptr @test_count, align 4, !tbaa !5
  %2350 = load ptr, ptr %75, align 8, !tbaa !9
  %2351 = load ptr, ptr %70, align 8, !tbaa !9
  %2352 = call i32 @s2n_connections_set_io_stuffer_pair(ptr noundef %2350, ptr noundef %2351, ptr noundef %80)
  %2353 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %2352, ptr %2353, align 4
  %2354 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  %2355 = load i32, ptr %2354, align 4
  %2356 = call zeroext i1 @s2n_result_is_ok(i32 %2355)
  br i1 %2356, label %2410, label %2357

2357:                                             ; preds = %2347
  br label %2358

2358:                                             ; preds = %2357
  br label %2359

2359:                                             ; preds = %2358
  call void @llvm.lifetime.start.p0(i64 4, ptr %84) #11
  %2360 = call ptr @__errno_location() #12
  %2361 = load i32, ptr %2360, align 4, !tbaa !5
  store i32 %2361, ptr %84, align 4, !tbaa !5
  %2362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2363 = call i32 @s2n_print_stacktrace(ptr noundef %2362)
  %2364 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2365 = trunc i8 %2364 to i1
  br i1 %2365, label %2366, label %2388

2366:                                             ; preds = %2359
  %2367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2368 = call i32 @fileno(ptr noundef %2367) #11
  %2369 = call i32 @isatty(i32 noundef %2368) #11
  %2370 = icmp ne i32 %2369, 0
  br i1 %2370, label %2371, label %2388

2371:                                             ; preds = %2366
  %2372 = load i32, ptr %84, align 4, !tbaa !5
  %2373 = call ptr @__errno_location() #12
  store i32 %2372, ptr %2373, align 4, !tbaa !5
  %2374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2377 = load i32, ptr %2376, align 4, !tbaa !5
  %2378 = call ptr @s2n_strerror(i32 noundef %2377, ptr noundef @.str.4)
  %2379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2380 = load i32, ptr %2379, align 4, !tbaa !5
  %2381 = call ptr @s2n_strerror_debug(i32 noundef %2380, ptr noundef @.str.4)
  %2382 = call ptr @__errno_location() #12
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  %2384 = call ptr @strerror(i32 noundef %2383) #11
  %2385 = call ptr @__errno_location() #12
  %2386 = load i32, ptr %2385, align 4, !tbaa !5
  %2387 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2374, ptr noundef @.str.2, i32 noundef %2375, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 171, ptr noundef %2378, ptr noundef %2381, ptr noundef %2384, i32 noundef %2386) #11
  br label %2405

2388:                                             ; preds = %2366, %2359
  %2389 = load i32, ptr %84, align 4, !tbaa !5
  %2390 = call ptr @__errno_location() #12
  store i32 %2389, ptr %2390, align 4, !tbaa !5
  %2391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2392 = load i32, ptr @test_count, align 4, !tbaa !5
  %2393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2394 = load i32, ptr %2393, align 4, !tbaa !5
  %2395 = call ptr @s2n_strerror(i32 noundef %2394, ptr noundef @.str.4)
  %2396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2397 = load i32, ptr %2396, align 4, !tbaa !5
  %2398 = call ptr @s2n_strerror_debug(i32 noundef %2397, ptr noundef @.str.4)
  %2399 = call ptr @__errno_location() #12
  %2400 = load i32, ptr %2399, align 4, !tbaa !5
  %2401 = call ptr @strerror(i32 noundef %2400) #11
  %2402 = call ptr @__errno_location() #12
  %2403 = load i32, ptr %2402, align 4, !tbaa !5
  %2404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2391, ptr noundef @.str.5, i32 noundef %2392, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 171, ptr noundef %2395, ptr noundef %2398, ptr noundef %2401, i32 noundef %2403) #11
  br label %2405

2405:                                             ; preds = %2388, %2371
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %2406

2406:                                             ; preds = %2405
  br label %2407

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

2408:                                             ; No predecessors!
  br label %2409

2409:                                             ; preds = %2408
  br label %2410

2410:                                             ; preds = %2409, %2347
  br label %2411

2411:                                             ; preds = %2410
  br label %2412

2412:                                             ; preds = %2411
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #11
  store i32 0, ptr %85, align 4, !tbaa !5
  br label %2413

2413:                                             ; preds = %2412
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = add nsw i32 %2414, 1
  store i32 %2415, ptr @test_count, align 4, !tbaa !5
  %2416 = load ptr, ptr %70, align 8, !tbaa !9
  %2417 = call i32 @s2n_get_nst_message_size(ptr noundef %2416, ptr noundef %85)
  %2418 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %2417, ptr %2418, align 4
  %2419 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  %2420 = load i32, ptr %2419, align 4
  %2421 = call zeroext i1 @s2n_result_is_ok(i32 %2420)
  br i1 %2421, label %2475, label %2422

2422:                                             ; preds = %2413
  br label %2423

2423:                                             ; preds = %2422
  br label %2424

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

2431:                                             ; preds = %2424
  %2432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2433 = call i32 @fileno(ptr noundef %2432) #11
  %2434 = call i32 @isatty(i32 noundef %2433) #11
  %2435 = icmp ne i32 %2434, 0
  br i1 %2435, label %2436, label %2453

2436:                                             ; preds = %2431
  %2437 = load i32, ptr %87, align 4, !tbaa !5
  %2438 = call ptr @__errno_location() #12
  store i32 %2437, ptr %2438, align 4, !tbaa !5
  %2439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2440 = load i32, ptr @test_count, align 4, !tbaa !5
  %2441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2442 = load i32, ptr %2441, align 4, !tbaa !5
  %2443 = call ptr @s2n_strerror(i32 noundef %2442, ptr noundef @.str.4)
  %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_debug(i32 noundef %2445, ptr noundef @.str.4)
  %2447 = call ptr @__errno_location() #12
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = call ptr @strerror(i32 noundef %2448) #11
  %2450 = call ptr @__errno_location() #12
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2439, ptr noundef @.str.2, i32 noundef %2440, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2443, ptr noundef %2446, ptr noundef %2449, i32 noundef %2451) #11
  br label %2470

2453:                                             ; preds = %2431, %2424
  %2454 = load i32, ptr %87, align 4, !tbaa !5
  %2455 = call ptr @__errno_location() #12
  store i32 %2454, ptr %2455, align 4, !tbaa !5
  %2456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2457 = load i32, ptr @test_count, align 4, !tbaa !5
  %2458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2459 = load i32, ptr %2458, align 4, !tbaa !5
  %2460 = call ptr @s2n_strerror(i32 noundef %2459, ptr noundef @.str.4)
  %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_debug(i32 noundef %2462, ptr noundef @.str.4)
  %2464 = call ptr @__errno_location() #12
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @strerror(i32 noundef %2465) #11
  %2467 = call ptr @__errno_location() #12
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2456, ptr noundef @.str.5, i32 noundef %2457, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 175, ptr noundef %2460, ptr noundef %2463, ptr noundef %2466, i32 noundef %2468) #11
  br label %2470

2470:                                             ; preds = %2453, %2436
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %2471

2471:                                             ; preds = %2470
  br label %2472

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

2473:                                             ; No predecessors!
  br label %2474

2474:                                             ; preds = %2473
  br label %2475

2475:                                             ; preds = %2474, %2413
  br label %2476

2476:                                             ; preds = %2475
  br label %2477

2477:                                             ; preds = %2476
  call void @llvm.lifetime.start.p0(i64 8, ptr %88) #11
  %2478 = getelementptr inbounds %struct.s2n_test_io_stuffer_pair, ptr %80, i32 0, i32 0
  store ptr %2478, ptr %88, align 8, !tbaa !9
  br label %2479

2479:                                             ; preds = %2477
  %2480 = load i32, ptr @test_count, align 4, !tbaa !5
  %2481 = add nsw i32 %2480, 1
  store i32 %2481, ptr @test_count, align 4, !tbaa !5
  %2482 = load ptr, ptr %88, align 8, !tbaa !9
  %2483 = call i32 @s2n_stuffer_free(ptr noundef %2482)
  %2484 = icmp eq i32 %2483, -1
  br i1 %2484, label %2485, label %2538

2485:                                             ; preds = %2479
  br label %2486

2486:                                             ; preds = %2485
  br label %2487

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

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

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

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

2533:                                             ; preds = %2516, %2499
  call void @llvm.lifetime.end.p0(i64 4, ptr %89) #11
  br label %2534

2534:                                             ; preds = %2533
  br label %2535

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

2536:                                             ; No predecessors!
  br label %2537

2537:                                             ; preds = %2536
  br label %2538

2538:                                             ; preds = %2537, %2479
  br label %2539

2539:                                             ; preds = %2538
  br label %2540

2540:                                             ; preds = %2539
  br label %2541

2541:                                             ; preds = %2540
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = add nsw i32 %2542, 1
  store i32 %2543, ptr @test_count, align 4, !tbaa !5
  %2544 = load ptr, ptr %88, align 8, !tbaa !9
  %2545 = call i32 @s2n_stuffer_alloc(ptr noundef %2544, i32 noundef 0)
  %2546 = icmp eq i32 %2545, -1
  br i1 %2546, label %2547, label %2600

2547:                                             ; preds = %2541
  br label %2548

2548:                                             ; preds = %2547
  br label %2549

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

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

2561:                                             ; preds = %2556
  %2562 = load i32, ptr %90, align 4, !tbaa !5
  %2563 = call ptr @__errno_location() #12
  store i32 %2562, ptr %2563, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = load i32, ptr @test_count, align 4, !tbaa !5
  %2566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2567 = load i32, ptr %2566, align 4, !tbaa !5
  %2568 = call ptr @s2n_strerror(i32 noundef %2567, ptr noundef @.str.4)
  %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_debug(i32 noundef %2570, ptr noundef @.str.4)
  %2572 = call ptr @__errno_location() #12
  %2573 = load i32, ptr %2572, align 4, !tbaa !5
  %2574 = call ptr @strerror(i32 noundef %2573) #11
  %2575 = call ptr @__errno_location() #12
  %2576 = load i32, ptr %2575, align 4, !tbaa !5
  %2577 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2564, ptr noundef @.str.2, i32 noundef %2565, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2568, ptr noundef %2571, ptr noundef %2574, i32 noundef %2576) #11
  br label %2595

2578:                                             ; preds = %2556, %2549
  %2579 = load i32, ptr %90, align 4, !tbaa !5
  %2580 = call ptr @__errno_location() #12
  store i32 %2579, ptr %2580, align 4, !tbaa !5
  %2581 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2582 = load i32, ptr @test_count, align 4, !tbaa !5
  %2583 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2584 = load i32, ptr %2583, align 4, !tbaa !5
  %2585 = call ptr @s2n_strerror(i32 noundef %2584, ptr noundef @.str.4)
  %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_debug(i32 noundef %2587, ptr noundef @.str.4)
  %2589 = call ptr @__errno_location() #12
  %2590 = load i32, ptr %2589, align 4, !tbaa !5
  %2591 = call ptr @strerror(i32 noundef %2590) #11
  %2592 = call ptr @__errno_location() #12
  %2593 = load i32, ptr %2592, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2581, ptr noundef @.str.5, i32 noundef %2582, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 180, ptr noundef %2585, ptr noundef %2588, ptr noundef %2591, i32 noundef %2593) #11
  br label %2595

2595:                                             ; preds = %2578, %2561
  call void @llvm.lifetime.end.p0(i64 4, ptr %90) #11
  br label %2596

2596:                                             ; preds = %2595
  br label %2597

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

2598:                                             ; No predecessors!
  br label %2599

2599:                                             ; preds = %2598
  br label %2600

2600:                                             ; preds = %2599, %2541
  br label %2601

2601:                                             ; preds = %2600
  br label %2602

2602:                                             ; preds = %2601
  call void @llvm.lifetime.start.p0(i64 8, ptr %91) #11
  store i64 0, ptr %91, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %92) #11
  store i64 0, ptr %92, align 8, !tbaa !15
  br label %2603

2603:                                             ; preds = %3171, %2602
  %2604 = load i64, ptr %92, align 8, !tbaa !15
  %2605 = icmp ult i64 %2604, 7
  br i1 %2605, label %2607, label %2606

2606:                                             ; preds = %2603
  call void @llvm.lifetime.end.p0(i64 8, ptr %92) #11
  br label %3174

2607:                                             ; preds = %2603
  call void @llvm.lifetime.start.p0(i64 4, ptr %93) #11
  %2608 = load i64, ptr %92, align 8, !tbaa !15
  %2609 = getelementptr inbounds [7 x i32], ptr %17, i64 0, i64 %2608
  %2610 = load i32, ptr %2609, align 4, !tbaa !5
  store i32 %2610, ptr %93, align 4, !tbaa !5
  %2611 = load i32, ptr %93, align 4, !tbaa !5
  %2612 = trunc i32 %2611 to i16
  %2613 = load ptr, ptr %70, align 8, !tbaa !9
  %2614 = getelementptr inbounds %struct.s2n_connection, ptr %2613, i32 0, i32 53
  store i16 %2612, ptr %2614, align 8, !tbaa !26
  %2615 = load ptr, ptr %70, align 8, !tbaa !9
  %2616 = getelementptr inbounds %struct.s2n_connection, ptr %2615, i32 0, i32 88
  store i16 0, ptr %2616, align 2, !tbaa !50
  %2617 = load ptr, ptr %70, align 8, !tbaa !9
  %2618 = getelementptr inbounds %struct.s2n_connection, ptr %2617, i32 0, i32 87
  store i16 3, ptr %2618, align 4, !tbaa !51
  br label %2619

2619:                                             ; preds = %2836, %2607
  %2620 = load ptr, ptr %70, align 8, !tbaa !9
  %2621 = getelementptr inbounds [1 x i8], ptr %19, i64 0, i64 0
  %2622 = call i64 @s2n_send(ptr noundef %2620, ptr noundef %2621, i64 noundef 1, ptr noundef %18)
  %2623 = icmp slt i64 %2622, 0
  br i1 %2623, label %2624, label %2842

2624:                                             ; preds = %2619
  br label %2625

2625:                                             ; preds = %2624
  %2626 = load i32, ptr @test_count, align 4, !tbaa !5
  %2627 = add nsw i32 %2626, 1
  store i32 %2627, ptr @test_count, align 4, !tbaa !5
  %2628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2629 = load i32, ptr %2628, align 4, !tbaa !5
  %2630 = icmp eq i32 %2629, 201326592
  br i1 %2630, label %2684, label %2631

2631:                                             ; preds = %2625
  br label %2632

2632:                                             ; preds = %2631
  br label %2633

2633:                                             ; preds = %2632
  call void @llvm.lifetime.start.p0(i64 4, ptr %94) #11
  %2634 = call ptr @__errno_location() #12
  %2635 = load i32, ptr %2634, align 4, !tbaa !5
  store i32 %2635, ptr %94, align 4, !tbaa !5
  %2636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2637 = call i32 @s2n_print_stacktrace(ptr noundef %2636)
  %2638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2639 = trunc i8 %2638 to i1
  br i1 %2639, label %2640, label %2662

2640:                                             ; preds = %2633
  %2641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2642 = call i32 @fileno(ptr noundef %2641) #11
  %2643 = call i32 @isatty(i32 noundef %2642) #11
  %2644 = icmp ne i32 %2643, 0
  br i1 %2644, label %2645, label %2662

2645:                                             ; preds = %2640
  %2646 = load i32, ptr %94, align 4, !tbaa !5
  %2647 = call ptr @__errno_location() #12
  store i32 %2646, ptr %2647, align 4, !tbaa !5
  %2648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2649 = load i32, ptr @test_count, align 4, !tbaa !5
  %2650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call ptr @s2n_strerror(i32 noundef %2651, ptr noundef @.str.4)
  %2653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2654 = load i32, ptr %2653, align 4, !tbaa !5
  %2655 = call ptr @s2n_strerror_debug(i32 noundef %2654, ptr noundef @.str.4)
  %2656 = call ptr @__errno_location() #12
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @strerror(i32 noundef %2657) #11
  %2659 = call ptr @__errno_location() #12
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2648, ptr noundef @.str.2, i32 noundef %2649, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 192, ptr noundef %2652, ptr noundef %2655, ptr noundef %2658, i32 noundef %2660) #11
  br label %2679

2662:                                             ; preds = %2640, %2633
  %2663 = load i32, ptr %94, align 4, !tbaa !5
  %2664 = call ptr @__errno_location() #12
  store i32 %2663, ptr %2664, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = load i32, ptr @test_count, align 4, !tbaa !5
  %2667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call ptr @s2n_strerror(i32 noundef %2668, ptr noundef @.str.4)
  %2670 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2671 = load i32, ptr %2670, align 4, !tbaa !5
  %2672 = call ptr @s2n_strerror_debug(i32 noundef %2671, ptr noundef @.str.4)
  %2673 = call ptr @__errno_location() #12
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @strerror(i32 noundef %2674) #11
  %2676 = call ptr @__errno_location() #12
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2665, ptr noundef @.str.5, i32 noundef %2666, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 192, ptr noundef %2669, ptr noundef %2672, ptr noundef %2675, i32 noundef %2677) #11
  br label %2679

2679:                                             ; preds = %2662, %2645
  call void @llvm.lifetime.end.p0(i64 4, ptr %94) #11
  br label %2680

2680:                                             ; preds = %2679
  br label %2681

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

2682:                                             ; No predecessors!
  br label %2683

2683:                                             ; preds = %2682
  br label %2684

2684:                                             ; preds = %2683, %2625
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = add nsw i32 %2688, 1
  store i32 %2689, ptr @test_count, align 4, !tbaa !5
  %2690 = load i32, ptr %18, align 4, !tbaa !5
  %2691 = icmp eq i32 %2690, 2
  br i1 %2691, label %2745, label %2692

2692:                                             ; preds = %2687
  br label %2693

2693:                                             ; preds = %2692
  br label %2694

2694:                                             ; preds = %2693
  call void @llvm.lifetime.start.p0(i64 4, ptr %95) #11
  %2695 = call ptr @__errno_location() #12
  %2696 = load i32, ptr %2695, align 4, !tbaa !5
  store i32 %2696, ptr %95, align 4, !tbaa !5
  %2697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2698 = call i32 @s2n_print_stacktrace(ptr noundef %2697)
  %2699 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2700 = trunc i8 %2699 to i1
  br i1 %2700, label %2701, label %2723

2701:                                             ; preds = %2694
  %2702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2703 = call i32 @fileno(ptr noundef %2702) #11
  %2704 = call i32 @isatty(i32 noundef %2703) #11
  %2705 = icmp ne i32 %2704, 0
  br i1 %2705, label %2706, label %2723

2706:                                             ; preds = %2701
  %2707 = load i32, ptr %95, align 4, !tbaa !5
  %2708 = call ptr @__errno_location() #12
  store i32 %2707, ptr %2708, align 4, !tbaa !5
  %2709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2710 = load i32, ptr @test_count, align 4, !tbaa !5
  %2711 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2712 = load i32, ptr %2711, align 4, !tbaa !5
  %2713 = call ptr @s2n_strerror(i32 noundef %2712, ptr noundef @.str.4)
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror_debug(i32 noundef %2715, ptr noundef @.str.4)
  %2717 = call ptr @__errno_location() #12
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @strerror(i32 noundef %2718) #11
  %2720 = call ptr @__errno_location() #12
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2709, ptr noundef @.str.2, i32 noundef %2710, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 193, ptr noundef %2713, ptr noundef %2716, ptr noundef %2719, i32 noundef %2721) #11
  br label %2740

2723:                                             ; preds = %2701, %2694
  %2724 = load i32, ptr %95, align 4, !tbaa !5
  %2725 = call ptr @__errno_location() #12
  store i32 %2724, ptr %2725, align 4, !tbaa !5
  %2726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2727 = load i32, ptr @test_count, align 4, !tbaa !5
  %2728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2729 = load i32, ptr %2728, align 4, !tbaa !5
  %2730 = call ptr @s2n_strerror(i32 noundef %2729, ptr noundef @.str.4)
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror_debug(i32 noundef %2732, ptr noundef @.str.4)
  %2734 = call ptr @__errno_location() #12
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @strerror(i32 noundef %2735) #11
  %2737 = call ptr @__errno_location() #12
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2726, ptr noundef @.str.5, i32 noundef %2727, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 193, ptr noundef %2730, ptr noundef %2733, ptr noundef %2736, i32 noundef %2738) #11
  br label %2740

2740:                                             ; preds = %2723, %2706
  call void @llvm.lifetime.end.p0(i64 4, ptr %95) #11
  br label %2741

2741:                                             ; preds = %2740
  br label %2742

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

2743:                                             ; No predecessors!
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

2745:                                             ; preds = %2744, %2687
  br label %2746

2746:                                             ; preds = %2745
  br label %2747

2747:                                             ; preds = %2746
  %2748 = load ptr, ptr %88, align 8, !tbaa !9
  %2749 = getelementptr inbounds %struct.s2n_stuffer, ptr %2748, i32 0, i32 4
  %2750 = load i8, ptr %2749, align 4
  %2751 = and i8 %2750, -3
  %2752 = or i8 %2751, 2
  store i8 %2752, ptr %2749, align 4
  call void @llvm.lifetime.start.p0(i64 8, ptr %96) #11
  %2753 = load ptr, ptr %88, align 8, !tbaa !9
  %2754 = getelementptr inbounds %struct.s2n_stuffer, ptr %2753, i32 0, i32 2
  %2755 = load i32, ptr %2754, align 4, !tbaa !57
  %2756 = load ptr, ptr %88, align 8, !tbaa !9
  %2757 = getelementptr inbounds %struct.s2n_stuffer, ptr %2756, i32 0, i32 1
  %2758 = load i32, ptr %2757, align 8, !tbaa !58
  %2759 = sub i32 %2755, %2758
  %2760 = zext i32 %2759 to i64
  store i64 %2760, ptr %96, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %97) #11
  %2761 = load ptr, ptr %70, align 8, !tbaa !9
  %2762 = getelementptr inbounds %struct.s2n_connection, ptr %2761, i32 0, i32 41
  %2763 = getelementptr inbounds %struct.s2n_stuffer, ptr %2762, i32 0, i32 2
  %2764 = load i32, ptr %2763, align 4, !tbaa !59
  %2765 = load ptr, ptr %70, align 8, !tbaa !9
  %2766 = getelementptr inbounds %struct.s2n_connection, ptr %2765, i32 0, i32 41
  %2767 = getelementptr inbounds %struct.s2n_stuffer, ptr %2766, i32 0, i32 1
  %2768 = load i32, ptr %2767, align 8, !tbaa !60
  %2769 = sub i32 %2764, %2768
  %2770 = zext i32 %2769 to i64
  store i64 %2770, ptr %97, align 8, !tbaa !15
  br label %2771

2771:                                             ; preds = %2747
  %2772 = load i32, ptr @test_count, align 4, !tbaa !5
  %2773 = add nsw i32 %2772, 1
  store i32 %2773, ptr @test_count, align 4, !tbaa !5
  %2774 = load ptr, ptr %88, align 8, !tbaa !9
  %2775 = load i64, ptr %96, align 8, !tbaa !15
  %2776 = load i64, ptr %97, align 8, !tbaa !15
  %2777 = add i64 %2775, %2776
  %2778 = trunc i64 %2777 to i32
  %2779 = call i32 @s2n_stuffer_resize(ptr noundef %2774, i32 noundef %2778)
  %2780 = icmp eq i32 %2779, -1
  br i1 %2780, label %2781, label %2834

2781:                                             ; preds = %2771
  br label %2782

2782:                                             ; preds = %2781
  br label %2783

2783:                                             ; preds = %2782
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %2784 = call ptr @__errno_location() #12
  %2785 = load i32, ptr %2784, align 4, !tbaa !5
  store i32 %2785, ptr %98, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = call i32 @s2n_print_stacktrace(ptr noundef %2786)
  %2788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2789 = trunc i8 %2788 to i1
  br i1 %2789, label %2790, label %2812

2790:                                             ; preds = %2783
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = call i32 @fileno(ptr noundef %2791) #11
  %2793 = call i32 @isatty(i32 noundef %2792) #11
  %2794 = icmp ne i32 %2793, 0
  br i1 %2794, label %2795, label %2812

2795:                                             ; preds = %2790
  %2796 = load i32, ptr %98, align 4, !tbaa !5
  %2797 = call ptr @__errno_location() #12
  store i32 %2796, ptr %2797, align 4, !tbaa !5
  %2798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2799 = load i32, ptr @test_count, align 4, !tbaa !5
  %2800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2801 = load i32, ptr %2800, align 4, !tbaa !5
  %2802 = call ptr @s2n_strerror(i32 noundef %2801, ptr noundef @.str.4)
  %2803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2804 = load i32, ptr %2803, align 4, !tbaa !5
  %2805 = call ptr @s2n_strerror_debug(i32 noundef %2804, ptr noundef @.str.4)
  %2806 = call ptr @__errno_location() #12
  %2807 = load i32, ptr %2806, align 4, !tbaa !5
  %2808 = call ptr @strerror(i32 noundef %2807) #11
  %2809 = call ptr @__errno_location() #12
  %2810 = load i32, ptr %2809, align 4, !tbaa !5
  %2811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2798, ptr noundef @.str.2, i32 noundef %2799, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2802, ptr noundef %2805, ptr noundef %2808, i32 noundef %2810) #11
  br label %2829

2812:                                             ; preds = %2790, %2783
  %2813 = load i32, ptr %98, align 4, !tbaa !5
  %2814 = call ptr @__errno_location() #12
  store i32 %2813, ptr %2814, align 4, !tbaa !5
  %2815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2816 = load i32, ptr @test_count, align 4, !tbaa !5
  %2817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2818 = load i32, ptr %2817, align 4, !tbaa !5
  %2819 = call ptr @s2n_strerror(i32 noundef %2818, ptr noundef @.str.4)
  %2820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2821 = load i32, ptr %2820, align 4, !tbaa !5
  %2822 = call ptr @s2n_strerror_debug(i32 noundef %2821, ptr noundef @.str.4)
  %2823 = call ptr @__errno_location() #12
  %2824 = load i32, ptr %2823, align 4, !tbaa !5
  %2825 = call ptr @strerror(i32 noundef %2824) #11
  %2826 = call ptr @__errno_location() #12
  %2827 = load i32, ptr %2826, align 4, !tbaa !5
  %2828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2815, ptr noundef @.str.5, i32 noundef %2816, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 202, ptr noundef %2819, ptr noundef %2822, ptr noundef %2825, i32 noundef %2827) #11
  br label %2829

2829:                                             ; preds = %2812, %2795
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %2830

2830:                                             ; preds = %2829
  br label %2831

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

2832:                                             ; No predecessors!
  br label %2833

2833:                                             ; preds = %2832
  br label %2834

2834:                                             ; preds = %2833, %2771
  br label %2835

2835:                                             ; preds = %2834
  br label %2836

2836:                                             ; preds = %2835
  %2837 = load ptr, ptr %88, align 8, !tbaa !9
  %2838 = getelementptr inbounds %struct.s2n_stuffer, ptr %2837, i32 0, i32 4
  %2839 = load i8, ptr %2838, align 4
  %2840 = and i8 %2839, -3
  %2841 = or i8 %2840, 0
  store i8 %2841, ptr %2838, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %97) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %96) #11
  br label %2619, !llvm.loop !61

2842:                                             ; preds = %2619
  br label %2843

2843:                                             ; preds = %2842
  %2844 = load i32, ptr @test_count, align 4, !tbaa !5
  %2845 = add nsw i32 %2844, 1
  store i32 %2845, ptr @test_count, align 4, !tbaa !5
  %2846 = load ptr, ptr %70, align 8, !tbaa !9
  %2847 = getelementptr inbounds %struct.s2n_connection, ptr %2846, i32 0, i32 88
  %2848 = load i16, ptr %2847, align 2, !tbaa !50
  %2849 = zext i16 %2848 to i32
  %2850 = icmp eq i32 %2849, 3
  br i1 %2850, label %2904, label %2851

2851:                                             ; preds = %2843
  br label %2852

2852:                                             ; preds = %2851
  br label %2853

2853:                                             ; preds = %2852
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %2854 = call ptr @__errno_location() #12
  %2855 = load i32, ptr %2854, align 4, !tbaa !5
  store i32 %2855, ptr %99, align 4, !tbaa !5
  %2856 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2857 = call i32 @s2n_print_stacktrace(ptr noundef %2856)
  %2858 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2859 = trunc i8 %2858 to i1
  br i1 %2859, label %2860, label %2882

2860:                                             ; preds = %2853
  %2861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2862 = call i32 @fileno(ptr noundef %2861) #11
  %2863 = call i32 @isatty(i32 noundef %2862) #11
  %2864 = icmp ne i32 %2863, 0
  br i1 %2864, label %2865, label %2882

2865:                                             ; preds = %2860
  %2866 = load i32, ptr %99, align 4, !tbaa !5
  %2867 = call ptr @__errno_location() #12
  store i32 %2866, ptr %2867, align 4, !tbaa !5
  %2868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2869 = load i32, ptr @test_count, align 4, !tbaa !5
  %2870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @s2n_strerror(i32 noundef %2871, ptr noundef @.str.4)
  %2873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call ptr @s2n_strerror_debug(i32 noundef %2874, ptr noundef @.str.4)
  %2876 = call ptr @__errno_location() #12
  %2877 = load i32, ptr %2876, align 4, !tbaa !5
  %2878 = call ptr @strerror(i32 noundef %2877) #11
  %2879 = call ptr @__errno_location() #12
  %2880 = load i32, ptr %2879, align 4, !tbaa !5
  %2881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2868, ptr noundef @.str.2, i32 noundef %2869, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 205, ptr noundef %2872, ptr noundef %2875, ptr noundef %2878, i32 noundef %2880) #11
  br label %2899

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

2899:                                             ; preds = %2882, %2865
  call void @llvm.lifetime.end.p0(i64 4, ptr %99) #11
  br label %2900

2900:                                             ; preds = %2899
  br label %2901

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

2902:                                             ; No predecessors!
  br label %2903

2903:                                             ; preds = %2902
  br label %2904

2904:                                             ; preds = %2903, %2843
  br label %2905

2905:                                             ; preds = %2904
  br label %2906

2906:                                             ; preds = %2905
  br label %2907

2907:                                             ; preds = %2906
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = add nsw i32 %2908, 1
  store i32 %2909, ptr @test_count, align 4, !tbaa !5
  %2910 = load ptr, ptr %70, align 8, !tbaa !9
  %2911 = getelementptr inbounds %struct.s2n_connection, ptr %2910, i32 0, i32 52
  %2912 = getelementptr inbounds %struct.s2n_handshake, ptr %2911, i32 0, i32 0
  %2913 = getelementptr inbounds %struct.s2n_stuffer, ptr %2912, i32 0, i32 0
  %2914 = getelementptr inbounds %struct.s2n_blob, ptr %2913, i32 0, i32 0
  %2915 = load ptr, ptr %2914, align 8, !tbaa !52
  %2916 = icmp eq ptr %2915, null
  br i1 %2916, label %2970, label %2917

2917:                                             ; preds = %2907
  br label %2918

2918:                                             ; preds = %2917
  br label %2919

2919:                                             ; preds = %2918
  call void @llvm.lifetime.start.p0(i64 4, ptr %100) #11
  %2920 = call ptr @__errno_location() #12
  %2921 = load i32, ptr %2920, align 4, !tbaa !5
  store i32 %2921, ptr %100, align 4, !tbaa !5
  %2922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2923 = call i32 @s2n_print_stacktrace(ptr noundef %2922)
  %2924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2925 = trunc i8 %2924 to i1
  br i1 %2925, label %2926, label %2948

2926:                                             ; preds = %2919
  %2927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2928 = call i32 @fileno(ptr noundef %2927) #11
  %2929 = call i32 @isatty(i32 noundef %2928) #11
  %2930 = icmp ne i32 %2929, 0
  br i1 %2930, label %2931, label %2948

2931:                                             ; preds = %2926
  %2932 = load i32, ptr %100, align 4, !tbaa !5
  %2933 = call ptr @__errno_location() #12
  store i32 %2932, ptr %2933, align 4, !tbaa !5
  %2934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2935 = load i32, ptr @test_count, align 4, !tbaa !5
  %2936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2937 = load i32, ptr %2936, align 4, !tbaa !5
  %2938 = call ptr @s2n_strerror(i32 noundef %2937, ptr noundef @.str.4)
  %2939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2940 = load i32, ptr %2939, align 4, !tbaa !5
  %2941 = call ptr @s2n_strerror_debug(i32 noundef %2940, ptr noundef @.str.4)
  %2942 = call ptr @__errno_location() #12
  %2943 = load i32, ptr %2942, align 4, !tbaa !5
  %2944 = call ptr @strerror(i32 noundef %2943) #11
  %2945 = call ptr @__errno_location() #12
  %2946 = load i32, ptr %2945, align 4, !tbaa !5
  %2947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2934, ptr noundef @.str.2, i32 noundef %2935, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2938, ptr noundef %2941, ptr noundef %2944, i32 noundef %2946) #11
  br label %2965

2948:                                             ; preds = %2926, %2919
  %2949 = load i32, ptr %100, align 4, !tbaa !5
  %2950 = call ptr @__errno_location() #12
  store i32 %2949, ptr %2950, align 4, !tbaa !5
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = load i32, ptr @test_count, align 4, !tbaa !5
  %2953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2954 = load i32, ptr %2953, align 4, !tbaa !5
  %2955 = call ptr @s2n_strerror(i32 noundef %2954, ptr noundef @.str.4)
  %2956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2957 = load i32, ptr %2956, align 4, !tbaa !5
  %2958 = call ptr @s2n_strerror_debug(i32 noundef %2957, ptr noundef @.str.4)
  %2959 = call ptr @__errno_location() #12
  %2960 = load i32, ptr %2959, align 4, !tbaa !5
  %2961 = call ptr @strerror(i32 noundef %2960) #11
  %2962 = call ptr @__errno_location() #12
  %2963 = load i32, ptr %2962, align 4, !tbaa !5
  %2964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2951, ptr noundef @.str.5, i32 noundef %2952, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 206, ptr noundef %2955, ptr noundef %2958, ptr noundef %2961, i32 noundef %2963) #11
  br label %2965

2965:                                             ; preds = %2948, %2931
  call void @llvm.lifetime.end.p0(i64 4, ptr %100) #11
  br label %2966

2966:                                             ; preds = %2965
  br label %2967

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

2968:                                             ; No predecessors!
  br label %2969

2969:                                             ; preds = %2968
  br label %2970

2970:                                             ; preds = %2969, %2907
  br label %2971

2971:                                             ; preds = %2970
  br label %2972

2972:                                             ; preds = %2971
  call void @llvm.lifetime.start.p0(i64 8, ptr %101) #11
  store i64 0, ptr %101, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %102) #11
  store i64 0, ptr %102, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %103) #11
  %2973 = load ptr, ptr %70, align 8, !tbaa !9
  %2974 = getelementptr inbounds %struct.s2n_connection, ptr %2973, i32 0, i32 30
  %2975 = load ptr, ptr %2974, align 8, !tbaa !53
  %2976 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %2975, i32 0, i32 8
  %2977 = getelementptr inbounds [8 x i8], ptr %2976, i64 0, i64 0
  store ptr %2977, ptr %103, align 8, !tbaa !9
  br label %2978

2978:                                             ; preds = %2972
  %2979 = load i32, ptr @test_count, align 4, !tbaa !5
  %2980 = add nsw i32 %2979, 1
  store i32 %2980, ptr @test_count, align 4, !tbaa !5
  %2981 = load ptr, ptr %103, align 8, !tbaa !9
  %2982 = call i32 @s2n_get_actual_record_count(ptr noundef %2981, ptr noundef %91, ptr noundef %101)
  %2983 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  store i32 %2982, ptr %2983, align 4
  %2984 = getelementptr inbounds %struct.s2n_result, ptr %104, i32 0, i32 0
  %2985 = load i32, ptr %2984, align 4
  %2986 = call zeroext i1 @s2n_result_is_ok(i32 %2985)
  br i1 %2986, label %3040, label %2987

2987:                                             ; preds = %2978
  br label %2988

2988:                                             ; preds = %2987
  br label %2989

2989:                                             ; preds = %2988
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %2990 = call ptr @__errno_location() #12
  %2991 = load i32, ptr %2990, align 4, !tbaa !5
  store i32 %2991, ptr %105, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = call i32 @s2n_print_stacktrace(ptr noundef %2992)
  %2994 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2995 = trunc i8 %2994 to i1
  br i1 %2995, label %2996, label %3018

2996:                                             ; preds = %2989
  %2997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2998 = call i32 @fileno(ptr noundef %2997) #11
  %2999 = call i32 @isatty(i32 noundef %2998) #11
  %3000 = icmp ne i32 %2999, 0
  br i1 %3000, label %3001, label %3018

3001:                                             ; preds = %2996
  %3002 = load i32, ptr %105, align 4, !tbaa !5
  %3003 = call ptr @__errno_location() #12
  store i32 %3002, ptr %3003, align 4, !tbaa !5
  %3004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3005 = load i32, ptr @test_count, align 4, !tbaa !5
  %3006 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3007 = load i32, ptr %3006, align 4, !tbaa !5
  %3008 = call ptr @s2n_strerror(i32 noundef %3007, ptr noundef @.str.4)
  %3009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3010 = load i32, ptr %3009, align 4, !tbaa !5
  %3011 = call ptr @s2n_strerror_debug(i32 noundef %3010, ptr noundef @.str.4)
  %3012 = call ptr @__errno_location() #12
  %3013 = load i32, ptr %3012, align 4, !tbaa !5
  %3014 = call ptr @strerror(i32 noundef %3013) #11
  %3015 = call ptr @__errno_location() #12
  %3016 = load i32, ptr %3015, align 4, !tbaa !5
  %3017 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3004, ptr noundef @.str.2, i32 noundef %3005, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 211, ptr noundef %3008, ptr noundef %3011, ptr noundef %3014, i32 noundef %3016) #11
  br label %3035

3018:                                             ; preds = %2996, %2989
  %3019 = load i32, ptr %105, align 4, !tbaa !5
  %3020 = call ptr @__errno_location() #12
  store i32 %3019, ptr %3020, align 4, !tbaa !5
  %3021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3022 = load i32, ptr @test_count, align 4, !tbaa !5
  %3023 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3024 = load i32, ptr %3023, align 4, !tbaa !5
  %3025 = call ptr @s2n_strerror(i32 noundef %3024, ptr noundef @.str.4)
  %3026 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3027 = load i32, ptr %3026, align 4, !tbaa !5
  %3028 = call ptr @s2n_strerror_debug(i32 noundef %3027, ptr noundef @.str.4)
  %3029 = call ptr @__errno_location() #12
  %3030 = load i32, ptr %3029, align 4, !tbaa !5
  %3031 = call ptr @strerror(i32 noundef %3030) #11
  %3032 = call ptr @__errno_location() #12
  %3033 = load i32, ptr %3032, align 4, !tbaa !5
  %3034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3021, ptr noundef @.str.5, i32 noundef %3022, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 211, ptr noundef %3025, ptr noundef %3028, ptr noundef %3031, i32 noundef %3033) #11
  br label %3035

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

3036:                                             ; preds = %3035
  br label %3037

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

3038:                                             ; No predecessors!
  br label %3039

3039:                                             ; preds = %3038
  br label %3040

3040:                                             ; preds = %3039, %2978
  br label %3041

3041:                                             ; preds = %3040
  br label %3042

3042:                                             ; preds = %3041
  br label %3043

3043:                                             ; preds = %3042
  %3044 = load i32, ptr @test_count, align 4, !tbaa !5
  %3045 = add nsw i32 %3044, 1
  store i32 %3045, ptr @test_count, align 4, !tbaa !5
  %3046 = load i32, ptr %85, align 4, !tbaa !5
  %3047 = load i32, ptr %93, align 4, !tbaa !5
  %3048 = call i32 @s2n_get_expected_record_count(i32 noundef %3046, i32 noundef %3047, i8 noundef zeroext 3, ptr noundef %102)
  %3049 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %3048, ptr %3049, align 4
  %3050 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %3051 = load i32, ptr %3050, align 4
  %3052 = call zeroext i1 @s2n_result_is_ok(i32 %3051)
  br i1 %3052, label %3106, label %3053

3053:                                             ; preds = %3043
  br label %3054

3054:                                             ; preds = %3053
  br label %3055

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

3062:                                             ; preds = %3055
  %3063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3064 = call i32 @fileno(ptr noundef %3063) #11
  %3065 = call i32 @isatty(i32 noundef %3064) #11
  %3066 = icmp ne i32 %3065, 0
  br i1 %3066, label %3067, label %3084

3067:                                             ; preds = %3062
  %3068 = load i32, ptr %107, align 4, !tbaa !5
  %3069 = call ptr @__errno_location() #12
  store i32 %3068, ptr %3069, align 4, !tbaa !5
  %3070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3071 = load i32, ptr @test_count, align 4, !tbaa !5
  %3072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3073 = load i32, ptr %3072, align 4, !tbaa !5
  %3074 = call ptr @s2n_strerror(i32 noundef %3073, ptr noundef @.str.4)
  %3075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3076 = load i32, ptr %3075, align 4, !tbaa !5
  %3077 = call ptr @s2n_strerror_debug(i32 noundef %3076, ptr noundef @.str.4)
  %3078 = call ptr @__errno_location() #12
  %3079 = load i32, ptr %3078, align 4, !tbaa !5
  %3080 = call ptr @strerror(i32 noundef %3079) #11
  %3081 = call ptr @__errno_location() #12
  %3082 = load i32, ptr %3081, align 4, !tbaa !5
  %3083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3070, ptr noundef @.str.2, i32 noundef %3071, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 212, ptr noundef %3074, ptr noundef %3077, ptr noundef %3080, i32 noundef %3082) #11
  br label %3101

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

3101:                                             ; preds = %3084, %3067
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %3102

3102:                                             ; preds = %3101
  br label %3103

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

3104:                                             ; No predecessors!
  br label %3105

3105:                                             ; preds = %3104
  br label %3106

3106:                                             ; preds = %3105, %3043
  br label %3107

3107:                                             ; preds = %3106
  br label %3108

3108:                                             ; preds = %3107
  br label %3109

3109:                                             ; preds = %3108
  %3110 = load i32, ptr @test_count, align 4, !tbaa !5
  %3111 = add nsw i32 %3110, 1
  store i32 %3111, ptr @test_count, align 4, !tbaa !5
  %3112 = load i64, ptr %101, align 8, !tbaa !15
  %3113 = load i64, ptr %102, align 8, !tbaa !15
  %3114 = icmp eq i64 %3112, %3113
  br i1 %3114, label %3168, label %3115

3115:                                             ; preds = %3109
  br label %3116

3116:                                             ; preds = %3115
  br label %3117

3117:                                             ; preds = %3116
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %3118 = call ptr @__errno_location() #12
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  store i32 %3119, ptr %108, align 4, !tbaa !5
  %3120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3121 = call i32 @s2n_print_stacktrace(ptr noundef %3120)
  %3122 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3123 = trunc i8 %3122 to i1
  br i1 %3123, label %3124, label %3146

3124:                                             ; preds = %3117
  %3125 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3126 = call i32 @fileno(ptr noundef %3125) #11
  %3127 = call i32 @isatty(i32 noundef %3126) #11
  %3128 = icmp ne i32 %3127, 0
  br i1 %3128, label %3129, label %3146

3129:                                             ; preds = %3124
  %3130 = load i32, ptr %108, align 4, !tbaa !5
  %3131 = call ptr @__errno_location() #12
  store i32 %3130, ptr %3131, align 4, !tbaa !5
  %3132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3133 = load i32, ptr @test_count, align 4, !tbaa !5
  %3134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3135 = load i32, ptr %3134, align 4, !tbaa !5
  %3136 = call ptr @s2n_strerror(i32 noundef %3135, ptr noundef @.str.4)
  %3137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3138 = load i32, ptr %3137, align 4, !tbaa !5
  %3139 = call ptr @s2n_strerror_debug(i32 noundef %3138, ptr noundef @.str.4)
  %3140 = call ptr @__errno_location() #12
  %3141 = load i32, ptr %3140, align 4, !tbaa !5
  %3142 = call ptr @strerror(i32 noundef %3141) #11
  %3143 = call ptr @__errno_location() #12
  %3144 = load i32, ptr %3143, align 4, !tbaa !5
  %3145 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3132, ptr noundef @.str.2, i32 noundef %3133, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 213, ptr noundef %3136, ptr noundef %3139, ptr noundef %3142, i32 noundef %3144) #11
  br label %3163

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

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

3164:                                             ; preds = %3163
  br label %3165

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

3166:                                             ; No predecessors!
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

3168:                                             ; preds = %3167, %3109
  br label %3169

3169:                                             ; preds = %3168
  br label %3170

3170:                                             ; preds = %3169
  call void @llvm.lifetime.end.p0(i64 8, ptr %103) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %102) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %101) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %93) #11
  br label %3171

3171:                                             ; preds = %3170
  %3172 = load i64, ptr %92, align 8, !tbaa !15
  %3173 = add i64 %3172, 1
  store i64 %3173, ptr %92, align 8, !tbaa !15
  br label %2603, !llvm.loop !62

3174:                                             ; preds = %2606
  call void @llvm.lifetime.start.p0(i64 8, ptr %109) #11
  store i64 0, ptr %109, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %110) #11
  store i64 0, ptr %110, align 8, !tbaa !15
  br label %3175

3175:                                             ; preds = %3510, %3174
  %3176 = load i64, ptr %110, align 8, !tbaa !15
  %3177 = icmp ult i64 %3176, 7
  br i1 %3177, label %3179, label %3178

3178:                                             ; preds = %3175
  call void @llvm.lifetime.end.p0(i64 8, ptr %110) #11
  br label %3513

3179:                                             ; preds = %3175
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %3180 = load i64, ptr %110, align 8, !tbaa !15
  %3181 = getelementptr inbounds [7 x i32], ptr %17, i64 0, i64 %3180
  %3182 = load i32, ptr %3181, align 4, !tbaa !5
  store i32 %3182, ptr %111, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr %112) #11
  call void @llvm.memset.p0.i64(ptr align 1 %112, i8 0, i64 1, i1 false)
  br label %3183

3183:                                             ; preds = %3179
  %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 = load ptr, ptr %75, align 8, !tbaa !9
  %3187 = getelementptr inbounds [1 x i8], ptr %112, i64 0, i64 0
  %3188 = call i64 @s2n_recv(ptr noundef %3186, ptr noundef %3187, i64 noundef 1, ptr noundef %18)
  %3189 = icmp eq i64 %3188, -1
  br i1 %3189, label %3190, label %3243

3190:                                             ; preds = %3183
  br label %3191

3191:                                             ; preds = %3190
  br label %3192

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

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

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

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

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

3239:                                             ; preds = %3238
  br label %3240

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

3241:                                             ; No predecessors!
  br label %3242

3242:                                             ; preds = %3241
  br label %3243

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

3244:                                             ; preds = %3243
  br label %3245

3245:                                             ; preds = %3244
  br label %3246

3246:                                             ; preds = %3245
  br label %3247

3247:                                             ; preds = %3246
  %3248 = load i32, ptr @test_count, align 4, !tbaa !5
  %3249 = add nsw i32 %3248, 1
  store i32 %3249, ptr @test_count, align 4, !tbaa !5
  %3250 = getelementptr inbounds [1 x i8], ptr %19, i64 0, i64 0
  %3251 = getelementptr inbounds [1 x i8], ptr %112, i64 0, i64 0
  %3252 = call i32 @memcmp(ptr noundef %3250, ptr noundef %3251, i64 noundef 1) #14
  %3253 = icmp eq i32 %3252, 0
  br i1 %3253, label %3307, label %3254

3254:                                             ; preds = %3247
  br label %3255

3255:                                             ; preds = %3254
  br label %3256

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

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

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

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

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

3303:                                             ; preds = %3302
  br label %3304

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

3305:                                             ; No predecessors!
  br label %3306

3306:                                             ; preds = %3305
  br label %3307

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

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  br label %3310

3310:                                             ; preds = %3309
  br label %3311

3311:                                             ; preds = %3310
  call void @llvm.lifetime.start.p0(i64 8, ptr %115) #11
  store i64 0, ptr %115, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %116) #11
  store i64 0, ptr %116, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %117) #11
  %3312 = load ptr, ptr %75, align 8, !tbaa !9
  %3313 = getelementptr inbounds %struct.s2n_connection, ptr %3312, i32 0, i32 30
  %3314 = load ptr, ptr %3313, align 8, !tbaa !53
  %3315 = getelementptr inbounds %struct.s2n_crypto_parameters, ptr %3314, i32 0, i32 8
  %3316 = getelementptr inbounds [8 x i8], ptr %3315, i64 0, i64 0
  store ptr %3316, ptr %117, align 8, !tbaa !9
  br label %3317

3317:                                             ; preds = %3311
  %3318 = load i32, ptr @test_count, align 4, !tbaa !5
  %3319 = add nsw i32 %3318, 1
  store i32 %3319, ptr @test_count, align 4, !tbaa !5
  %3320 = load ptr, ptr %117, align 8, !tbaa !9
  %3321 = call i32 @s2n_get_actual_record_count(ptr noundef %3320, ptr noundef %109, ptr noundef %115)
  %3322 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  store i32 %3321, ptr %3322, align 4
  %3323 = getelementptr inbounds %struct.s2n_result, ptr %118, i32 0, i32 0
  %3324 = load i32, ptr %3323, align 4
  %3325 = call zeroext i1 @s2n_result_is_ok(i32 %3324)
  br i1 %3325, label %3379, label %3326

3326:                                             ; preds = %3317
  br label %3327

3327:                                             ; preds = %3326
  br label %3328

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

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

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

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

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

3375:                                             ; preds = %3374
  br label %3376

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

3377:                                             ; No predecessors!
  br label %3378

3378:                                             ; preds = %3377
  br label %3379

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

3380:                                             ; preds = %3379
  br label %3381

3381:                                             ; preds = %3380
  br label %3382

3382:                                             ; preds = %3381
  %3383 = load i32, ptr @test_count, align 4, !tbaa !5
  %3384 = add nsw i32 %3383, 1
  store i32 %3384, ptr @test_count, align 4, !tbaa !5
  %3385 = load i32, ptr %85, align 4, !tbaa !5
  %3386 = load i32, ptr %111, align 4, !tbaa !5
  %3387 = call i32 @s2n_get_expected_record_count(i32 noundef %3385, i32 noundef %3386, i8 noundef zeroext 3, ptr noundef %116)
  %3388 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  store i32 %3387, ptr %3388, align 4
  %3389 = getelementptr inbounds %struct.s2n_result, ptr %120, i32 0, i32 0
  %3390 = load i32, ptr %3389, align 4
  %3391 = call zeroext i1 @s2n_result_is_ok(i32 %3390)
  br i1 %3391, label %3445, label %3392

3392:                                             ; preds = %3382
  br label %3393

3393:                                             ; preds = %3392
  br label %3394

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

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

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

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

3440:                                             ; preds = %3423, %3406
  call void @llvm.lifetime.end.p0(i64 4, ptr %121) #11
  br label %3441

3441:                                             ; preds = %3440
  br label %3442

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

3443:                                             ; No predecessors!
  br label %3444

3444:                                             ; preds = %3443
  br label %3445

3445:                                             ; preds = %3444, %3382
  br label %3446

3446:                                             ; preds = %3445
  br label %3447

3447:                                             ; preds = %3446
  br label %3448

3448:                                             ; preds = %3447
  %3449 = load i32, ptr @test_count, align 4, !tbaa !5
  %3450 = add nsw i32 %3449, 1
  store i32 %3450, ptr @test_count, align 4, !tbaa !5
  %3451 = load i64, ptr %115, align 8, !tbaa !15
  %3452 = load i64, ptr %116, align 8, !tbaa !15
  %3453 = icmp eq i64 %3451, %3452
  br i1 %3453, label %3507, label %3454

3454:                                             ; preds = %3448
  br label %3455

3455:                                             ; preds = %3454
  br label %3456

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

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

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

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

3502:                                             ; preds = %3485, %3468
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

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

3505:                                             ; No predecessors!
  br label %3506

3506:                                             ; preds = %3505
  br label %3507

3507:                                             ; preds = %3506, %3448
  br label %3508

3508:                                             ; preds = %3507
  br label %3509

3509:                                             ; preds = %3508
  call void @llvm.lifetime.end.p0(i64 8, ptr %117) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %116) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %115) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %112) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %111) #11
  br label %3510

3510:                                             ; preds = %3509
  %3511 = load i64, ptr %110, align 8, !tbaa !15
  %3512 = add i64 %3511, 1
  store i64 %3512, ptr %110, align 8, !tbaa !15
  br label %3175, !llvm.loop !63

3513:                                             ; preds = %3178
  call void @llvm.lifetime.end.p0(i64 8, ptr %109) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %91) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %88) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #11
  %3514 = call i32 @s2n_io_stuffer_pair_free(ptr noundef %80)
  %3515 = getelementptr inbounds %struct.s2n_result, ptr %123, i32 0, i32 0
  store i32 %3514, ptr %3515, align 4
  call void @llvm.lifetime.end.p0(i64 80, ptr %80) #11
  %3516 = call i32 @s2n_connection_ptr_free(ptr noundef %75)
  %3517 = getelementptr inbounds %struct.s2n_result, ptr %124, i32 0, i32 0
  store i32 %3516, ptr %3517, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %75) #11
  %3518 = call i32 @s2n_connection_ptr_free(ptr noundef %70)
  %3519 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  store i32 %3518, ptr %3519, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %70) #11
  br label %3520

3520:                                             ; preds = %3513
  br label %3521

3521:                                             ; preds = %3520
  %3522 = call i32 @s2n_cleanup()
  %3523 = icmp eq i32 %3522, -1
  br i1 %3523, label %3524, label %3577

3524:                                             ; preds = %3521
  br label %3525

3525:                                             ; preds = %3524
  br label %3526

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

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

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

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

3572:                                             ; preds = %3555, %3538
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %3573

3573:                                             ; preds = %3572
  br label %3574

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

3575:                                             ; No predecessors!
  br label %3576

3576:                                             ; preds = %3575
  br label %3577

3577:                                             ; preds = %3576, %3521
  br label %3578

3578:                                             ; preds = %3577
  br label %3579

3579:                                             ; preds = %3578
  br label %3580

3580:                                             ; preds = %3579
  br label %3581

3581:                                             ; preds = %3580
  %3582 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3583 = icmp eq i32 %3582, -1
  br i1 %3583, label %3584, label %3637

3584:                                             ; preds = %3581
  br label %3585

3585:                                             ; preds = %3584
  br label %3586

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

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

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

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

3632:                                             ; preds = %3615, %3598
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %3633

3633:                                             ; preds = %3632
  br label %3634

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

3635:                                             ; No predecessors!
  br label %3636

3636:                                             ; preds = %3635
  br label %3637

3637:                                             ; preds = %3636, %3581
  br label %3638

3638:                                             ; preds = %3637
  br label %3639

3639:                                             ; preds = %3638
  %3640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3641 = trunc i8 %3640 to i1
  br i1 %3641, label %3642, label %3658

3642:                                             ; preds = %3639
  %3643 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3644 = call i32 @fileno(ptr noundef %3643) #11
  %3645 = call i32 @isatty(i32 noundef %3644) #11
  %3646 = icmp ne i32 %3645, 0
  br i1 %3646, label %3647, label %3658

3647:                                             ; preds = %3642
  %3648 = load i32, ptr @test_count, align 4, !tbaa !5
  %3649 = icmp ne i32 %3648, 0
  br i1 %3649, label %3650, label %3654

3650:                                             ; preds = %3647
  %3651 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3652 = load i32, ptr @test_count, align 4, !tbaa !5
  %3653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3651, ptr noundef @.str.38, i32 noundef %3652) #11
  br label %3657

3654:                                             ; preds = %3647
  %3655 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3656 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3655, ptr noundef @.str.39) #11
  br label %3657

3657:                                             ; preds = %3654, %3650
  br label %3669

3658:                                             ; preds = %3642, %3639
  %3659 = load i32, ptr @test_count, align 4, !tbaa !5
  %3660 = icmp ne i32 %3659, 0
  br i1 %3660, label %3661, label %3665

3661:                                             ; preds = %3658
  %3662 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3663 = load i32, ptr @test_count, align 4, !tbaa !5
  %3664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3662, ptr noundef @.str.40, i32 noundef %3663) #11
  br label %3668

3665:                                             ; preds = %3658
  %3666 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3666, ptr noundef @.str.41) #11
  br label %3668

3668:                                             ; preds = %3665, %3661
  br label %3669

3669:                                             ; preds = %3668, %3657
  store i32 0, ptr %3, align 4
  store i32 1, ptr %128, align 4
  br label %3674

3670:                                             ; No predecessors!
  br label %3671

3671:                                             ; preds = %3670
  br label %3672

3672:                                             ; preds = %3671
  br label %3673

3673:                                             ; preds = %3672
  store i32 0, ptr %128, align 4
  br label %3674

3674:                                             ; preds = %3673, %3669
  call void @llvm.lifetime.end.p0(i64 1, ptr %20) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %19) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  call void @llvm.lifetime.end.p0(i64 28, ptr %17) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 9, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr %11) #11
  %3675 = call i32 @s2n_config_ptr_free(ptr noundef %9)
  %3676 = getelementptr inbounds %struct.s2n_result, ptr %129, i32 0, i32 0
  store i32 %3675, ptr %3676, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #11
  %3677 = load i32, ptr %128, align 4
  switch i32 %3677, label %3680 [
    i32 0, label %3678
    i32 1, label %3678
  ]

3678:                                             ; preds = %3674, %3674
  %3679 = load i32, ptr %3, align 4
  ret i32 %3679

3680:                                             ; preds = %3674
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

declare ptr @s2n_config_new() #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

; 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) #7

declare i32 @s2n_config_set_session_tickets_onoff(ptr noundef, i8 noundef zeroext) #2

declare i32 @s2n_config_add_ticket_crypto_key(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i64 noundef) #2

declare ptr @s2n_connection_new(i32 noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

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

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) #8

declare i32 @s2n_connection_set_secrets(ptr noundef) #2

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

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) #2

declare i32 @s2n_io_stuffer_pair_init(ptr noundef) #2

declare i32 @s2n_connections_set_io_stuffer_pair(ptr noundef, ptr noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_nst_message_size(ptr noundef, ptr noundef) #0

declare i64 @s2n_send(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_actual_record_count(ptr noundef, ptr noundef, ptr noundef) #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_expected_record_count(i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef) #0

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) #2

declare i32 @s2n_stuffer_resize(ptr noundef, i32 noundef) #2

declare i32 @s2n_cleanup() #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #8 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #10 = { nounwind willreturn memory(read) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { noreturn nounwind }
attributes #14 = { nounwind willreturn memory(read) }

!llvm.module.flags = !{!0, !1, !2, !3}
!llvm.ident = !{!4}

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !10, i64 80}
!18 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !19, i64 24, !20, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !16, i64 144, !10, i64 152, !16, i64 160, !16, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !21, i64 304, !22, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !20, i64 448}
!19 = !{!"certs_by_type", !7, i64 0}
!20 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!22 = !{!"short", !7, i64 0}
!23 = !{!18, !10, i64 104}
!24 = !{!18, !7, i64 297}
!25 = !{!7, !7, i64 0}
!26 = !{!27, !22, i64 2208}
!27 = !{!"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, !28, i64 160, !16, i64 168, !16, 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, !29, i64 240, !10, i64 632, !10, i64 640, !30, i64 648, !35, i64 1144, !38, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !40, i64 1776, !40, i64 1816, !40, i64 1856, !40, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !40, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !41, i64 2004, !41, i64 2008, !42, i64 2016, !22, i64 2208, !6, i64 2212, !22, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !41, i64 2264, !41, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !44, i64 2896, !46, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !48, i64 3816, !7, i64 3848, !40, i64 3992, !20, i64 4032, !20, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !22, i64 4084, !22, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !49, i64 4128, !41, i64 4176, !7, i64 4180, !7, i64 4181}
!28 = !{!"s2n_timer", !16, i64 0}
!29 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!30 = !{!"s2n_kex_parameters", !31, i64 0, !32, i64 8, !7, i64 24, !32, i64 56, !33, i64 72, !33, i64 184, !7, i64 296, !34, i64 360, !20, i64 448, !20, i64 472}
!31 = !{!"s2n_dh_params", !10, i64 0}
!32 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!33 = !{!"s2n_kem_group_params", !10, i64 0, !34, i64 8, !32, i64 96}
!34 = !{!"s2n_kem_params", !10, i64 0, !20, i64 8, !20, i64 32, !20, i64 56, !12, i64 80}
!35 = !{!"s2n_handshake_parameters", !36, i64 0, !36, i64 48, !20, i64 96, !6, i64 120, !37, 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}
!36 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!37 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!38 = !{!"s2n_psk_parameters", !6, i64 0, !39, i64 8, !22, i64 40, !22, i64 42, !10, i64 48, !6, i64 56}
!39 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!40 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!41 = !{!"", !6, i64 0}
!42 = !{!"s2n_handshake", !40, 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, !43, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!43 = !{!"s2n_offered_early_data", !10, i64 0}
!44 = !{!"s2n_client_hello", !20, i64 0, !45, i64 24, !20, i64 728, !20, i64 752, !20, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!45 = !{!"", !7, i64 0, !20, i64 672, !22, i64 696}
!46 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !22, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !47, i64 48, !12, i64 52}
!47 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!48 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!49 = !{!"s2n_post_handshake", !40, i64 0, !7, i64 40}
!50 = !{!27, !22, i64 4086}
!51 = !{!27, !22, i64 4084}
!52 = !{!27, !10, i64 2016}
!53 = !{!27, !10, i64 640}
!54 = distinct !{!54, !55}
!55 = !{!"llvm.loop.mustprogress"}
!56 = distinct !{!56, !55}
!57 = !{!40, !6, i64 28}
!58 = !{!40, !6, i64 24}
!59 = !{!27, !6, i64 1924}
!60 = !{!27, !6, i64 1920}
!61 = distinct !{!61, !55}
!62 = distinct !{!62, !55}
!63 = distinct !{!63, !55}


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.s2n_test_io_stuffer_pair = type { %struct.s2n_stuffer, %struct.s2n_stuffer }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [87 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 [14 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [87 x i8], align 1
@__const.main.ticket_key_name = external hidden unnamed_addr constant [16 x i8], align 16
@__const.main.ticket_key = external hidden unnamed_addr constant [9 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [170 x i8], align 1
@__const.main.fragment_sizes = external hidden unnamed_addr constant [7 x i32], align 16
@__const.main.send_data = external hidden unnamed_addr constant [1 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [71 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [106 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [127 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [78 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca ptr, align 8
  %4 = alloca [16 x i8], align 16
  %5 = alloca [9 x i8], align 1
  %6 = alloca i64, align 8
  %7 = alloca i32, align 4
  %8 = alloca [1 x i8], align 1
  %9 = alloca ptr, align 8
  %10 = alloca ptr, align 8
  %11 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %12 = alloca i32, align 4
  %13 = alloca i64, align 8
  %14 = alloca i64, align 8
  %15 = alloca i64, align 8
  %16 = alloca i64, align 8
  %17 = alloca [1 x i8], align 1
  %18 = alloca i64, align 8
  %19 = alloca i64, align 8
  %20 = alloca ptr, align 8
  %21 = alloca ptr, align 8
  %22 = alloca %struct.s2n_test_io_stuffer_pair, align 8
  %23 = alloca i32, align 4
  %24 = alloca i64, align 8
  %25 = alloca i64, align 8
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  %28 = alloca [1 x i8], align 1
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %31 = load ptr, ptr @stdout, align 8, !tbaa !9
  %32 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %31, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #11
  %33 = load ptr, ptr @stdout, align 8, !tbaa !9
  %34 = tail call i32 @fflush(ptr noundef %33)
  %35 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #11
  %36 = icmp eq i32 %35, -1
  br i1 %36, label %37, label %61

37:                                               ; preds = %2
  %38 = tail call ptr @__errno_location() #12
  %39 = load i32, ptr %38, align 4, !tbaa !5
  %40 = load ptr, ptr @stderr, align 8, !tbaa !9
  %41 = tail call i32 @s2n_print_stacktrace(ptr noundef %40) #11
  %42 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %43 = trunc nuw i8 %42 to i1
  br i1 %43, label %44, label %48

44:                                               ; preds = %37
  %45 = load ptr, ptr @stderr, align 8, !tbaa !9
  %46 = tail call i32 @fileno(ptr noundef %45) #11
  %47 = tail call i32 @isatty(i32 noundef %46) #11
  %.not222 = icmp eq i32 %47, 0
  br i1 %.not222, label %48, label %49

48:                                               ; preds = %44, %37
  br label %49

49:                                               ; preds = %44, %48
  %.str.5.sink = phi ptr [ @.str.5, %48 ], [ @.str.2, %44 ]
  store i32 %39, ptr %38, align 4, !tbaa !5
  %50 = load ptr, ptr @stderr, align 8, !tbaa !9
  %51 = load i32, ptr @test_count, align 4, !tbaa !5
  %52 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %53 = load i32, ptr %52, align 4, !tbaa !5
  %54 = tail call ptr @s2n_strerror(i32 noundef %53, ptr noundef nonnull @.str.4) #11
  %55 = load i32, ptr %52, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror_debug(i32 noundef %55, ptr noundef nonnull @.str.4) #11
  %57 = load i32, ptr %38, align 4, !tbaa !5
  %58 = tail call ptr @strerror(i32 noundef %57) #11
  %59 = load i32, ptr %38, align 4, !tbaa !5
  %60 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %50, ptr noundef nonnull %.str.5.sink, i32 noundef %51, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %54, ptr noundef %56, ptr noundef %58, i32 noundef %59) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

61:                                               ; preds = %2
  %62 = load i32, ptr @test_count, align 4, !tbaa !5
  %63 = add nsw i32 %62, 1
  store i32 %63, ptr @test_count, align 4, !tbaa !5
  %64 = tail call i32 @s2n_enable_atexit() #11
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

66:                                               ; preds = %61
  %67 = tail call ptr @__errno_location() #12
  %68 = load i32, ptr %67, align 4, !tbaa !5
  %69 = load ptr, ptr @stderr, align 8, !tbaa !9
  %70 = tail call i32 @s2n_print_stacktrace(ptr noundef %69) #11
  %71 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %72 = trunc nuw i8 %71 to i1
  br i1 %72, label %73, label %77

73:                                               ; preds = %66
  %74 = load ptr, ptr @stderr, align 8, !tbaa !9
  %75 = tail call i32 @fileno(ptr noundef %74) #11
  %76 = tail call i32 @isatty(i32 noundef %75) #11
  %.not221 = icmp eq i32 %76, 0
  br i1 %.not221, label %77, label %78

77:                                               ; preds = %73, %66
  br label %78

78:                                               ; preds = %73, %77
  %.str.5.sink245 = phi ptr [ @.str.5, %77 ], [ @.str.2, %73 ]
  store i32 %68, ptr %67, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = load i32, ptr @test_count, align 4, !tbaa !5
  %81 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = tail call ptr @s2n_strerror(i32 noundef %82, ptr noundef nonnull @.str.4) #11
  %84 = load i32, ptr %81, align 4, !tbaa !5
  %85 = tail call ptr @s2n_strerror_debug(i32 noundef %84, ptr noundef nonnull @.str.4) #11
  %86 = load i32, ptr %67, align 4, !tbaa !5
  %87 = tail call ptr @strerror(i32 noundef %86) #11
  %88 = load i32, ptr %67, align 4, !tbaa !5
  %89 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %79, ptr noundef nonnull %.str.5.sink245, i32 noundef %80, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %83, ptr noundef %85, ptr noundef %87, i32 noundef %88) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

90:                                               ; preds = %61
  %91 = tail call i32 @s2n_init() #11
  %92 = icmp eq i32 %91, -1
  br i1 %92, label %93, label %117

93:                                               ; preds = %90
  %94 = tail call ptr @__errno_location() #12
  %95 = load i32, ptr %94, align 4, !tbaa !5
  %96 = load ptr, ptr @stderr, align 8, !tbaa !9
  %97 = tail call i32 @s2n_print_stacktrace(ptr noundef %96) #11
  %98 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %99 = trunc nuw i8 %98 to i1
  br i1 %99, label %100, label %104

100:                                              ; preds = %93
  %101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %102 = tail call i32 @fileno(ptr noundef %101) #11
  %103 = tail call i32 @isatty(i32 noundef %102) #11
  %.not220 = icmp eq i32 %103, 0
  br i1 %.not220, label %104, label %105

104:                                              ; preds = %100, %93
  br label %105

105:                                              ; preds = %100, %104
  %.str.5.sink256 = phi ptr [ @.str.5, %104 ], [ @.str.2, %100 ]
  store i32 %95, ptr %94, align 4, !tbaa !5
  %106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %107 = load i32, ptr @test_count, align 4, !tbaa !5
  %108 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %109 = load i32, ptr %108, align 4, !tbaa !5
  %110 = tail call ptr @s2n_strerror(i32 noundef %109, ptr noundef nonnull @.str.4) #11
  %111 = load i32, ptr %108, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror_debug(i32 noundef %111, ptr noundef nonnull @.str.4) #11
  %113 = load i32, ptr %94, align 4, !tbaa !5
  %114 = tail call ptr @strerror(i32 noundef %113) #11
  %115 = load i32, ptr %94, align 4, !tbaa !5
  %116 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %106, ptr noundef nonnull %.str.5.sink256, i32 noundef %107, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %110, ptr noundef %112, ptr noundef %114, i32 noundef %115) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

117:                                              ; preds = %90
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) #11
  %118 = tail call ptr @s2n_config_new() #11
  store ptr %118, ptr %3, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = add nsw i32 %119, 1
  store i32 %120, ptr @test_count, align 4, !tbaa !5
  %121 = tail call i32 @s2n_config_set_cipher_preferences(ptr noundef %118, ptr noundef nonnull @.str.8) #11
  %122 = icmp eq i32 %121, -1
  br i1 %122, label %123, label %147

123:                                              ; preds = %117
  %124 = tail call ptr @__errno_location() #12
  %125 = load i32, ptr %124, align 4, !tbaa !5
  %126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %127 = tail call i32 @s2n_print_stacktrace(ptr noundef %126) #11
  %128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %129 = trunc nuw i8 %128 to i1
  br i1 %129, label %130, label %134

130:                                              ; preds = %123
  %131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %132 = tail call i32 @fileno(ptr noundef %131) #11
  %133 = tail call i32 @isatty(i32 noundef %132) #11
  %.not219 = icmp eq i32 %133, 0
  br i1 %.not219, label %134, label %135

134:                                              ; preds = %130, %123
  br label %135

135:                                              ; preds = %130, %134
  %.str.5.sink267 = phi ptr [ @.str.5, %134 ], [ @.str.2, %130 ]
  store i32 %125, ptr %124, align 4, !tbaa !5
  %136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %137 = load i32, ptr @test_count, align 4, !tbaa !5
  %138 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %139 = load i32, ptr %138, align 4, !tbaa !5
  %140 = tail call ptr @s2n_strerror(i32 noundef %139, ptr noundef nonnull @.str.4) #11
  %141 = load i32, ptr %138, align 4, !tbaa !5
  %142 = tail call ptr @s2n_strerror_debug(i32 noundef %141, ptr noundef nonnull @.str.4) #11
  %143 = load i32, ptr %124, align 4, !tbaa !5
  %144 = tail call ptr @strerror(i32 noundef %143) #11
  %145 = load i32, ptr %124, align 4, !tbaa !5
  %146 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %136, ptr noundef nonnull %.str.5.sink267, i32 noundef %137, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 70, ptr noundef %140, ptr noundef %142, ptr noundef %144, i32 noundef %145) #13
  tail call void @exit(i32 noundef 1) #14
  unreachable

147:                                              ; preds = %117
  call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %4, ptr noundef nonnull align 16 dereferenceable(16) @__const.main.ticket_key_name, i64 16, i1 false)
  call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %5) #11
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %5, ptr noundef nonnull align 1 dereferenceable(9) @__const.main.ticket_key, i64 9, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #11
  store i64 0, ptr %6, align 8, !tbaa !15
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = add nsw i32 %148, 1
  store i32 %149, ptr @test_count, align 4, !tbaa !5
  %150 = getelementptr inbounds i8, ptr %118, i64 80
  %151 = load ptr, ptr %150, align 8, !tbaa !17
  %152 = getelementptr inbounds i8, ptr %118, i64 104
  %153 = load ptr, ptr %152, align 8, !tbaa !23
  %154 = call i32 %151(ptr noundef %153, ptr noundef nonnull %6) #11
  %155 = icmp eq i32 %154, -1
  br i1 %155, label %156, label %180

156:                                              ; preds = %147
  %157 = tail call ptr @__errno_location() #12
  %158 = load i32, ptr %157, align 4, !tbaa !5
  %159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %160 = call i32 @s2n_print_stacktrace(ptr noundef %159) #11
  %161 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %162 = trunc nuw i8 %161 to i1
  br i1 %162, label %163, label %167

163:                                              ; preds = %156
  %164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %165 = call i32 @fileno(ptr noundef %164) #11
  %166 = call i32 @isatty(i32 noundef %165) #11
  %.not218 = icmp eq i32 %166, 0
  br i1 %.not218, label %167, label %168

167:                                              ; preds = %163, %156
  br label %168

168:                                              ; preds = %163, %167
  %.str.5.sink278 = phi ptr [ @.str.5, %167 ], [ @.str.2, %163 ]
  store i32 %158, ptr %157, align 4, !tbaa !5
  %169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %170 = load i32, ptr @test_count, align 4, !tbaa !5
  %171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %172 = load i32, ptr %171, align 4, !tbaa !5
  %173 = call ptr @s2n_strerror(i32 noundef %172, ptr noundef nonnull @.str.4) #11
  %174 = load i32, ptr %171, align 4, !tbaa !5
  %175 = call ptr @s2n_strerror_debug(i32 noundef %174, ptr noundef nonnull @.str.4) #11
  %176 = load i32, ptr %157, align 4, !tbaa !5
  %177 = call ptr @strerror(i32 noundef %176) #11
  %178 = load i32, ptr %157, align 4, !tbaa !5
  %179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %169, ptr noundef nonnull %.str.5.sink278, i32 noundef %170, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 78, ptr noundef %173, ptr noundef %175, ptr noundef %177, i32 noundef %178) #13
  call void @exit(i32 noundef 1) #14
  unreachable

180:                                              ; preds = %147
  %181 = load i32, ptr @test_count, align 4, !tbaa !5
  %182 = add nsw i32 %181, 1
  store i32 %182, ptr @test_count, align 4, !tbaa !5
  %183 = call i32 @s2n_config_set_session_tickets_onoff(ptr noundef nonnull %118, i8 noundef zeroext 1) #11
  %184 = icmp eq i32 %183, -1
  br i1 %184, label %185, label %209

185:                                              ; preds = %180
  %186 = tail call ptr @__errno_location() #12
  %187 = load i32, ptr %186, align 4, !tbaa !5
  %188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %189 = call i32 @s2n_print_stacktrace(ptr noundef %188) #11
  %190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %191 = trunc nuw i8 %190 to i1
  br i1 %191, label %192, label %196

192:                                              ; preds = %185
  %193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %194 = call i32 @fileno(ptr noundef %193) #11
  %195 = call i32 @isatty(i32 noundef %194) #11
  %.not217 = icmp eq i32 %195, 0
  br i1 %.not217, label %196, label %197

196:                                              ; preds = %192, %185
  br label %197

197:                                              ; preds = %192, %196
  %.str.5.sink289 = phi ptr [ @.str.5, %196 ], [ @.str.2, %192 ]
  store i32 %187, ptr %186, align 4, !tbaa !5
  %198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %199 = load i32, ptr @test_count, align 4, !tbaa !5
  %200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %201 = load i32, ptr %200, align 4, !tbaa !5
  %202 = call ptr @s2n_strerror(i32 noundef %201, ptr noundef nonnull @.str.4) #11
  %203 = load i32, ptr %200, align 4, !tbaa !5
  %204 = call ptr @s2n_strerror_debug(i32 noundef %203, ptr noundef nonnull @.str.4) #11
  %205 = load i32, ptr %186, align 4, !tbaa !5
  %206 = call ptr @strerror(i32 noundef %205) #11
  %207 = load i32, ptr %186, align 4, !tbaa !5
  %208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %198, ptr noundef nonnull %.str.5.sink289, i32 noundef %199, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 79, ptr noundef %202, ptr noundef %204, ptr noundef %206, i32 noundef %207) #13
  call void @exit(i32 noundef 1) #14
  unreachable

209:                                              ; preds = %180
  %210 = load i32, ptr @test_count, align 4, !tbaa !5
  %211 = add nsw i32 %210, 1
  store i32 %211, ptr @test_count, align 4, !tbaa !5
  %212 = load i64, ptr %6, align 8, !tbaa !15
  %213 = udiv i64 %212, 1000000000
  %214 = call i32 @s2n_config_add_ticket_crypto_key(ptr noundef nonnull %118, ptr noundef nonnull %4, i32 noundef 16, ptr noundef nonnull %5, i32 noundef 9, i64 noundef %213) #11
  %215 = icmp eq i32 %214, -1
  br i1 %215, label %216, label %240

216:                                              ; preds = %209
  %217 = tail call ptr @__errno_location() #12
  %218 = load i32, ptr %217, align 4, !tbaa !5
  %219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %220 = call i32 @s2n_print_stacktrace(ptr noundef %219) #11
  %221 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %222 = trunc nuw i8 %221 to i1
  br i1 %222, label %223, label %227

223:                                              ; preds = %216
  %224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %225 = call i32 @fileno(ptr noundef %224) #11
  %226 = call i32 @isatty(i32 noundef %225) #11
  %.not216 = icmp eq i32 %226, 0
  br i1 %.not216, label %227, label %228

227:                                              ; preds = %223, %216
  br label %228

228:                                              ; preds = %223, %227
  %.str.5.sink300 = phi ptr [ @.str.5, %227 ], [ @.str.2, %223 ]
  store i32 %218, ptr %217, align 4, !tbaa !5
  %229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %230 = load i32, ptr @test_count, align 4, !tbaa !5
  %231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %232 = load i32, ptr %231, align 4, !tbaa !5
  %233 = call ptr @s2n_strerror(i32 noundef %232, ptr noundef nonnull @.str.4) #11
  %234 = load i32, ptr %231, align 4, !tbaa !5
  %235 = call ptr @s2n_strerror_debug(i32 noundef %234, ptr noundef nonnull @.str.4) #11
  %236 = load i32, ptr %217, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #11
  %238 = load i32, ptr %217, align 4, !tbaa !5
  %239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %229, ptr noundef nonnull %.str.5.sink300, i32 noundef %230, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 81, ptr noundef %233, ptr noundef %235, ptr noundef %237, i32 noundef %238) #13
  call void @exit(i32 noundef 1) #14
  unreachable

240:                                              ; preds = %209
  %241 = getelementptr inbounds i8, ptr %118, i64 297
  store i8 0, ptr %241, align 1, !tbaa !24
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) #11
  store i32 0, ptr %7, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #11
  %242 = load i8, ptr @__const.main.send_data, align 1
  store i8 %242, ptr %8, align 1
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #11
  %243 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %243, ptr %9, align 8, !tbaa !9
  %244 = load i32, ptr @test_count, align 4, !tbaa !5
  %245 = add nsw i32 %244, 1
  store i32 %245, ptr @test_count, align 4, !tbaa !5
  %246 = call i32 @s2n_connection_set_config(ptr noundef %243, ptr noundef nonnull %118) #11
  %247 = icmp eq i32 %246, -1
  br i1 %247, label %248, label %272

248:                                              ; preds = %240
  %249 = tail call ptr @__errno_location() #12
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %252 = call i32 @s2n_print_stacktrace(ptr noundef %251) #11
  %253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %254 = trunc nuw i8 %253 to i1
  br i1 %254, label %255, label %259

255:                                              ; preds = %248
  %256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %257 = call i32 @fileno(ptr noundef %256) #11
  %258 = call i32 @isatty(i32 noundef %257) #11
  %.not215 = icmp eq i32 %258, 0
  br i1 %.not215, label %259, label %260

259:                                              ; preds = %255, %248
  br label %260

260:                                              ; preds = %255, %259
  %.str.5.sink311 = phi ptr [ @.str.5, %259 ], [ @.str.2, %255 ]
  store i32 %250, ptr %249, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = load i32, ptr @test_count, align 4, !tbaa !5
  %263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %264 = load i32, ptr %263, align 4, !tbaa !5
  %265 = call ptr @s2n_strerror(i32 noundef %264, ptr noundef nonnull @.str.4) #11
  %266 = load i32, ptr %263, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror_debug(i32 noundef %266, ptr noundef nonnull @.str.4) #11
  %268 = load i32, ptr %249, align 4, !tbaa !5
  %269 = call ptr @strerror(i32 noundef %268) #11
  %270 = load i32, ptr %249, align 4, !tbaa !5
  %271 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %261, ptr noundef nonnull %.str.5.sink311, i32 noundef %262, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %265, ptr noundef %267, ptr noundef %269, i32 noundef %270) #13
  call void @exit(i32 noundef 1) #14
  unreachable

272:                                              ; preds = %240
  %273 = load i32, ptr @test_count, align 4, !tbaa !5
  %274 = add nsw i32 %273, 1
  store i32 %274, ptr @test_count, align 4, !tbaa !5
  %275 = load ptr, ptr %9, align 8, !tbaa !9
  %276 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %275, i8 noundef zeroext 34) #11
  %277 = icmp eq i32 %276, -1
  br i1 %277, label %278, label %302

278:                                              ; preds = %272
  %279 = tail call ptr @__errno_location() #12
  %280 = load i32, ptr %279, align 4, !tbaa !5
  %281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %282 = call i32 @s2n_print_stacktrace(ptr noundef %281) #11
  %283 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %284 = trunc nuw i8 %283 to i1
  br i1 %284, label %285, label %289

285:                                              ; preds = %278
  %286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %287 = call i32 @fileno(ptr noundef %286) #11
  %288 = call i32 @isatty(i32 noundef %287) #11
  %.not214 = icmp eq i32 %288, 0
  br i1 %.not214, label %289, label %290

289:                                              ; preds = %285, %278
  br label %290

290:                                              ; preds = %285, %289
  %.str.5.sink322 = phi ptr [ @.str.5, %289 ], [ @.str.2, %285 ]
  store i32 %280, ptr %279, align 4, !tbaa !5
  %291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %292 = load i32, ptr @test_count, align 4, !tbaa !5
  %293 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = call ptr @s2n_strerror(i32 noundef %294, ptr noundef nonnull @.str.4) #11
  %296 = load i32, ptr %293, align 4, !tbaa !5
  %297 = call ptr @s2n_strerror_debug(i32 noundef %296, ptr noundef nonnull @.str.4) #11
  %298 = load i32, ptr %279, align 4, !tbaa !5
  %299 = call ptr @strerror(i32 noundef %298) #11
  %300 = load i32, ptr %279, align 4, !tbaa !5
  %301 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %291, ptr noundef nonnull %.str.5.sink322, i32 noundef %292, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %295, ptr noundef %297, ptr noundef %299, i32 noundef %300) #13
  call void @exit(i32 noundef 1) #14
  unreachable

302:                                              ; preds = %272
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = load ptr, ptr %9, align 8, !tbaa !9
  %306 = call i32 @s2n_connection_set_secrets(ptr noundef %305) #11
  %307 = call zeroext i1 @s2n_result_is_ok(i32 %306)
  br i1 %307, label %332, label %308

308:                                              ; preds = %302
  %309 = tail call ptr @__errno_location() #12
  %310 = load i32, ptr %309, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = call i32 @s2n_print_stacktrace(ptr noundef %311) #11
  %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 = %308
  %316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %317 = call i32 @fileno(ptr noundef %316) #11
  %318 = call i32 @isatty(i32 noundef %317) #11
  %.not = icmp eq i32 %318, 0
  br i1 %.not, label %319, label %320

319:                                              ; preds = %315, %308
  br label %320

320:                                              ; preds = %315, %319
  %.str.5.sink333 = phi ptr [ @.str.5, %319 ], [ @.str.2, %315 ]
  store i32 %310, ptr %309, align 4, !tbaa !5
  %321 = load ptr, ptr @stderr, align 8, !tbaa !9
  %322 = load i32, ptr @test_count, align 4, !tbaa !5
  %323 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %324 = load i32, ptr %323, align 4, !tbaa !5
  %325 = call ptr @s2n_strerror(i32 noundef %324, ptr noundef nonnull @.str.4) #11
  %326 = load i32, ptr %323, align 4, !tbaa !5
  %327 = call ptr @s2n_strerror_debug(i32 noundef %326, ptr noundef nonnull @.str.4) #11
  %328 = load i32, ptr %309, align 4, !tbaa !5
  %329 = call ptr @strerror(i32 noundef %328) #11
  %330 = load i32, ptr %309, align 4, !tbaa !5
  %331 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %321, ptr noundef nonnull %.str.5.sink333, i32 noundef %322, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 103, ptr noundef %325, ptr noundef %327, ptr noundef %329, i32 noundef %330) #13
  call void @exit(i32 noundef 1) #14
  unreachable

332:                                              ; preds = %302
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #11
  %333 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %333, ptr %10, align 8, !tbaa !9
  %334 = load i32, ptr @test_count, align 4, !tbaa !5
  %335 = add nsw i32 %334, 1
  store i32 %335, ptr @test_count, align 4, !tbaa !5
  %336 = call i32 @s2n_connection_set_config(ptr noundef %333, ptr noundef nonnull %118) #11
  %337 = icmp eq i32 %336, -1
  br i1 %337, label %338, label %362

338:                                              ; preds = %332
  %339 = tail call ptr @__errno_location() #12
  %340 = load i32, ptr %339, align 4, !tbaa !5
  %341 = load ptr, ptr @stderr, align 8, !tbaa !9
  %342 = call i32 @s2n_print_stacktrace(ptr noundef %341) #11
  %343 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %344 = trunc nuw i8 %343 to i1
  br i1 %344, label %345, label %349

345:                                              ; preds = %338
  %346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %347 = call i32 @fileno(ptr noundef %346) #11
  %348 = call i32 @isatty(i32 noundef %347) #11
  %.not213 = icmp eq i32 %348, 0
  br i1 %.not213, label %349, label %350

349:                                              ; preds = %345, %338
  br label %350

350:                                              ; preds = %345, %349
  %.str.5.sink344 = phi ptr [ @.str.5, %349 ], [ @.str.2, %345 ]
  store i32 %340, ptr %339, align 4, !tbaa !5
  %351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %352 = load i32, ptr @test_count, align 4, !tbaa !5
  %353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %354 = load i32, ptr %353, align 4, !tbaa !5
  %355 = call ptr @s2n_strerror(i32 noundef %354, ptr noundef nonnull @.str.4) #11
  %356 = load i32, ptr %353, align 4, !tbaa !5
  %357 = call ptr @s2n_strerror_debug(i32 noundef %356, ptr noundef nonnull @.str.4) #11
  %358 = load i32, ptr %339, align 4, !tbaa !5
  %359 = call ptr @strerror(i32 noundef %358) #11
  %360 = load i32, ptr %339, align 4, !tbaa !5
  %361 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %351, ptr noundef nonnull %.str.5.sink344, i32 noundef %352, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 106, ptr noundef %355, ptr noundef %357, ptr noundef %359, i32 noundef %360) #13
  call void @exit(i32 noundef 1) #14
  unreachable

362:                                              ; preds = %332
  %363 = load i32, ptr @test_count, align 4, !tbaa !5
  %364 = add nsw i32 %363, 1
  store i32 %364, ptr @test_count, align 4, !tbaa !5
  %365 = load ptr, ptr %10, align 8, !tbaa !9
  %366 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %365, i8 noundef zeroext 34) #11
  %367 = icmp eq i32 %366, -1
  br i1 %367, label %368, label %392

368:                                              ; preds = %362
  %369 = tail call ptr @__errno_location() #12
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %372 = call i32 @s2n_print_stacktrace(ptr noundef %371) #11
  %373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %374 = trunc nuw i8 %373 to i1
  br i1 %374, label %375, label %379

375:                                              ; preds = %368
  %376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %377 = call i32 @fileno(ptr noundef %376) #11
  %378 = call i32 @isatty(i32 noundef %377) #11
  %.not212 = icmp eq i32 %378, 0
  br i1 %.not212, label %379, label %380

379:                                              ; preds = %375, %368
  br label %380

380:                                              ; preds = %375, %379
  %.str.5.sink355 = phi ptr [ @.str.5, %379 ], [ @.str.2, %375 ]
  store i32 %370, ptr %369, align 4, !tbaa !5
  %381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %382 = load i32, ptr @test_count, align 4, !tbaa !5
  %383 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %384 = load i32, ptr %383, align 4, !tbaa !5
  %385 = call ptr @s2n_strerror(i32 noundef %384, ptr noundef nonnull @.str.4) #11
  %386 = load i32, ptr %383, align 4, !tbaa !5
  %387 = call ptr @s2n_strerror_debug(i32 noundef %386, ptr noundef nonnull @.str.4) #11
  %388 = load i32, ptr %369, align 4, !tbaa !5
  %389 = call ptr @strerror(i32 noundef %388) #11
  %390 = load i32, ptr %369, align 4, !tbaa !5
  %391 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %381, ptr noundef nonnull %.str.5.sink355, i32 noundef %382, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %385, ptr noundef %387, ptr noundef %389, i32 noundef %390) #13
  call void @exit(i32 noundef 1) #14
  unreachable

392:                                              ; preds = %362
  %393 = load i32, ptr @test_count, align 4, !tbaa !5
  %394 = add nsw i32 %393, 1
  store i32 %394, ptr @test_count, align 4, !tbaa !5
  %395 = load ptr, ptr %10, align 8, !tbaa !9
  %396 = call i32 @s2n_connection_set_secrets(ptr noundef %395) #11
  %397 = call zeroext i1 @s2n_result_is_ok(i32 %396)
  br i1 %397, label %422, label %398

398:                                              ; preds = %392
  %399 = tail call ptr @__errno_location() #12
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = load ptr, ptr @stderr, align 8, !tbaa !9
  %402 = call i32 @s2n_print_stacktrace(ptr noundef %401) #11
  %403 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %404 = trunc nuw i8 %403 to i1
  br i1 %404, label %405, label %409

405:                                              ; preds = %398
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @fileno(ptr noundef %406) #11
  %408 = call i32 @isatty(i32 noundef %407) #11
  %.not166 = icmp eq i32 %408, 0
  br i1 %.not166, label %409, label %410

409:                                              ; preds = %405, %398
  br label %410

410:                                              ; preds = %405, %409
  %.str.5.sink366 = phi ptr [ @.str.5, %409 ], [ @.str.2, %405 ]
  store i32 %400, ptr %399, align 4, !tbaa !5
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = load i32, ptr @test_count, align 4, !tbaa !5
  %413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef nonnull @.str.4) #11
  %416 = load i32, ptr %413, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef nonnull @.str.4) #11
  %418 = load i32, ptr %399, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #11
  %420 = load i32, ptr %399, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %411, ptr noundef nonnull %.str.5.sink366, i32 noundef %412, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %415, ptr noundef %417, ptr noundef %419, i32 noundef %420) #13
  call void @exit(i32 noundef 1) #14
  unreachable

422:                                              ; preds = %392
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %11) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %11, i8 0, i64 80, i1 false)
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = call i32 @s2n_io_stuffer_pair_init(ptr noundef nonnull %11) #11
  %426 = call zeroext i1 @s2n_result_is_ok(i32 %425)
  br i1 %426, label %451, label %427

427:                                              ; preds = %422
  %428 = tail call ptr @__errno_location() #12
  %429 = load i32, ptr %428, align 4, !tbaa !5
  %430 = load ptr, ptr @stderr, align 8, !tbaa !9
  %431 = call i32 @s2n_print_stacktrace(ptr noundef %430) #11
  %432 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %433 = trunc nuw i8 %432 to i1
  br i1 %433, label %434, label %438

434:                                              ; preds = %427
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = call i32 @fileno(ptr noundef %435) #11
  %437 = call i32 @isatty(i32 noundef %436) #11
  %.not167 = icmp eq i32 %437, 0
  br i1 %.not167, label %438, label %439

438:                                              ; preds = %434, %427
  br label %439

439:                                              ; preds = %434, %438
  %.str.5.sink377 = phi ptr [ @.str.5, %438 ], [ @.str.2, %434 ]
  store i32 %429, ptr %428, align 4, !tbaa !5
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = load i32, ptr @test_count, align 4, !tbaa !5
  %442 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror(i32 noundef %443, ptr noundef nonnull @.str.4) #11
  %445 = load i32, ptr %442, align 4, !tbaa !5
  %446 = call ptr @s2n_strerror_debug(i32 noundef %445, ptr noundef nonnull @.str.4) #11
  %447 = load i32, ptr %428, align 4, !tbaa !5
  %448 = call ptr @strerror(i32 noundef %447) #11
  %449 = load i32, ptr %428, align 4, !tbaa !5
  %450 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %440, ptr noundef nonnull %.str.5.sink377, i32 noundef %441, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 111, ptr noundef %444, ptr noundef %446, ptr noundef %448, i32 noundef %449) #13
  call void @exit(i32 noundef 1) #14
  unreachable

451:                                              ; preds = %422
  %452 = load i32, ptr @test_count, align 4, !tbaa !5
  %453 = add nsw i32 %452, 1
  store i32 %453, ptr @test_count, align 4, !tbaa !5
  %454 = load ptr, ptr %10, align 8, !tbaa !9
  %455 = load ptr, ptr %9, align 8, !tbaa !9
  %456 = call i32 @s2n_connections_set_io_stuffer_pair(ptr noundef %454, ptr noundef %455, ptr noundef nonnull %11) #11
  %457 = call zeroext i1 @s2n_result_is_ok(i32 %456)
  br i1 %457, label %482, label %458

458:                                              ; preds = %451
  %459 = tail call ptr @__errno_location() #12
  %460 = load i32, ptr %459, align 4, !tbaa !5
  %461 = load ptr, ptr @stderr, align 8, !tbaa !9
  %462 = call i32 @s2n_print_stacktrace(ptr noundef %461) #11
  %463 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %464 = trunc nuw i8 %463 to i1
  br i1 %464, label %465, label %469

465:                                              ; preds = %458
  %466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %467 = call i32 @fileno(ptr noundef %466) #11
  %468 = call i32 @isatty(i32 noundef %467) #11
  %.not168 = icmp eq i32 %468, 0
  br i1 %.not168, label %469, label %470

469:                                              ; preds = %465, %458
  br label %470

470:                                              ; preds = %465, %469
  %.str.5.sink388 = phi ptr [ @.str.5, %469 ], [ @.str.2, %465 ]
  store i32 %460, ptr %459, align 4, !tbaa !5
  %471 = load ptr, ptr @stderr, align 8, !tbaa !9
  %472 = load i32, ptr @test_count, align 4, !tbaa !5
  %473 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %474 = load i32, ptr %473, align 4, !tbaa !5
  %475 = call ptr @s2n_strerror(i32 noundef %474, ptr noundef nonnull @.str.4) #11
  %476 = load i32, ptr %473, align 4, !tbaa !5
  %477 = call ptr @s2n_strerror_debug(i32 noundef %476, ptr noundef nonnull @.str.4) #11
  %478 = load i32, ptr %459, align 4, !tbaa !5
  %479 = call ptr @strerror(i32 noundef %478) #11
  %480 = load i32, ptr %459, align 4, !tbaa !5
  %481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %471, ptr noundef nonnull %.str.5.sink388, i32 noundef %472, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %475, ptr noundef %477, ptr noundef %479, i32 noundef %480) #13
  call void @exit(i32 noundef 1) #14
  unreachable

482:                                              ; preds = %451
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %12) #11
  store i32 0, ptr %12, align 4, !tbaa !5
  %483 = load i32, ptr @test_count, align 4, !tbaa !5
  %484 = add nsw i32 %483, 1
  store i32 %484, ptr @test_count, align 4, !tbaa !5
  %485 = load ptr, ptr %9, align 8, !tbaa !9
  %486 = call i32 @s2n_get_nst_message_size(ptr noundef %485, ptr noundef nonnull %12)
  %487 = call zeroext i1 @s2n_result_is_ok(i32 %486)
  br i1 %487, label %512, label %488

488:                                              ; preds = %482
  %489 = tail call ptr @__errno_location() #12
  %490 = load i32, ptr %489, align 4, !tbaa !5
  %491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %492 = call i32 @s2n_print_stacktrace(ptr noundef %491) #11
  %493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %494 = trunc nuw i8 %493 to i1
  br i1 %494, label %495, label %499

495:                                              ; preds = %488
  %496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %497 = call i32 @fileno(ptr noundef %496) #11
  %498 = call i32 @isatty(i32 noundef %497) #11
  %.not169 = icmp eq i32 %498, 0
  br i1 %.not169, label %499, label %500

499:                                              ; preds = %495, %488
  br label %500

500:                                              ; preds = %495, %499
  %.str.5.sink399 = phi ptr [ @.str.5, %499 ], [ @.str.2, %495 ]
  store i32 %490, ptr %489, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = load i32, ptr @test_count, align 4, !tbaa !5
  %503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %504 = load i32, ptr %503, align 4, !tbaa !5
  %505 = call ptr @s2n_strerror(i32 noundef %504, ptr noundef nonnull @.str.4) #11
  %506 = load i32, ptr %503, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror_debug(i32 noundef %506, ptr noundef nonnull @.str.4) #11
  %508 = load i32, ptr %489, align 4, !tbaa !5
  %509 = call ptr @strerror(i32 noundef %508) #11
  %510 = load i32, ptr %489, align 4, !tbaa !5
  %511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %501, ptr noundef nonnull %.str.5.sink399, i32 noundef %502, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 116, ptr noundef %505, ptr noundef %507, ptr noundef %509, i32 noundef %510) #13
  call void @exit(i32 noundef 1) #14
  unreachable

512:                                              ; preds = %482
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) #11
  store i64 0, ptr %13, align 8, !tbaa !15
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %514

513:                                              ; preds = %701
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #11
  store i64 0, ptr %16, align 8, !tbaa !15
  br label %712

514:                                              ; preds = %512, %701
  %515 = phi i32 [ %.pre, %512 ], [ %673, %701 ]
  %.0226 = phi i64 [ 0, %512 ], [ %702, %701 ]
  %516 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0226
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = trunc i32 %517 to i16
  %519 = load ptr, ptr %9, align 8, !tbaa !9
  %520 = getelementptr inbounds i8, ptr %519, i64 2208
  store i16 %518, ptr %520, align 8, !tbaa !25
  %521 = getelementptr inbounds i8, ptr %519, i64 4086
  store i16 0, ptr %521, align 2, !tbaa !49
  %522 = getelementptr inbounds i8, ptr %519, i64 4084
  store i16 3, ptr %522, align 4, !tbaa !50
  %523 = add nsw i32 %515, 1
  store i32 %523, ptr @test_count, align 4, !tbaa !5
  %524 = call i64 @s2n_send(ptr noundef %519, ptr noundef nonnull %8, i64 noundef 1, ptr noundef nonnull %7) #11
  %525 = icmp eq i64 %524, -1
  br i1 %525, label %526, label %550

526:                                              ; preds = %514
  %527 = tail call ptr @__errno_location() #12
  %528 = load i32, ptr %527, align 4, !tbaa !5
  %529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %530 = call i32 @s2n_print_stacktrace(ptr noundef %529) #11
  %531 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %532 = trunc nuw i8 %531 to i1
  br i1 %532, label %533, label %537

533:                                              ; preds = %526
  %534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %535 = call i32 @fileno(ptr noundef %534) #11
  %536 = call i32 @isatty(i32 noundef %535) #11
  %.not211 = icmp eq i32 %536, 0
  br i1 %.not211, label %537, label %538

537:                                              ; preds = %533, %526
  br label %538

538:                                              ; preds = %533, %537
  %.str.5.sink410 = phi ptr [ @.str.5, %537 ], [ @.str.2, %533 ]
  store i32 %528, ptr %527, align 4, !tbaa !5
  %539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %542 = load i32, ptr %541, align 4, !tbaa !5
  %543 = call ptr @s2n_strerror(i32 noundef %542, ptr noundef nonnull @.str.4) #11
  %544 = load i32, ptr %541, align 4, !tbaa !5
  %545 = call ptr @s2n_strerror_debug(i32 noundef %544, ptr noundef nonnull @.str.4) #11
  %546 = load i32, ptr %527, align 4, !tbaa !5
  %547 = call ptr @strerror(i32 noundef %546) #11
  %548 = load i32, ptr %527, align 4, !tbaa !5
  %549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %539, ptr noundef nonnull %.str.5.sink410, i32 noundef %540, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %543, ptr noundef %545, ptr noundef %547, i32 noundef %548) #13
  call void @exit(i32 noundef 1) #14
  unreachable

550:                                              ; preds = %514
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr @test_count, align 4, !tbaa !5
  %553 = load ptr, ptr %9, align 8, !tbaa !9
  %554 = getelementptr inbounds i8, ptr %553, i64 4086
  %555 = load i16, ptr %554, align 2, !tbaa !49
  %556 = icmp eq i16 %555, 3
  br i1 %556, label %581, label %557

557:                                              ; preds = %550
  %558 = tail call ptr @__errno_location() #12
  %559 = load i32, ptr %558, align 4, !tbaa !5
  %560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %561 = call i32 @s2n_print_stacktrace(ptr noundef %560) #11
  %562 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %563 = trunc nuw i8 %562 to i1
  br i1 %563, label %564, label %568

564:                                              ; preds = %557
  %565 = load ptr, ptr @stderr, align 8, !tbaa !9
  %566 = call i32 @fileno(ptr noundef %565) #11
  %567 = call i32 @isatty(i32 noundef %566) #11
  %.not206 = icmp eq i32 %567, 0
  br i1 %.not206, label %568, label %569

568:                                              ; preds = %564, %557
  br label %569

569:                                              ; preds = %564, %568
  %.str.5.sink421 = phi ptr [ @.str.5, %568 ], [ @.str.2, %564 ]
  store i32 %559, ptr %558, align 4, !tbaa !5
  %570 = load ptr, ptr @stderr, align 8, !tbaa !9
  %571 = load i32, ptr @test_count, align 4, !tbaa !5
  %572 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %573 = load i32, ptr %572, align 4, !tbaa !5
  %574 = call ptr @s2n_strerror(i32 noundef %573, ptr noundef nonnull @.str.4) #11
  %575 = load i32, ptr %572, align 4, !tbaa !5
  %576 = call ptr @s2n_strerror_debug(i32 noundef %575, ptr noundef nonnull @.str.4) #11
  %577 = load i32, ptr %558, align 4, !tbaa !5
  %578 = call ptr @strerror(i32 noundef %577) #11
  %579 = load i32, ptr %558, align 4, !tbaa !5
  %580 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %570, ptr noundef nonnull %.str.5.sink421, i32 noundef %571, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %574, ptr noundef %576, ptr noundef %578, i32 noundef %579) #13
  call void @exit(i32 noundef 1) #14
  unreachable

581:                                              ; preds = %550
  %582 = add nsw i32 %551, 2
  store i32 %582, ptr @test_count, align 4, !tbaa !5
  %583 = getelementptr inbounds i8, ptr %553, i64 2016
  %584 = load ptr, ptr %583, align 8, !tbaa !51
  %585 = icmp eq ptr %584, null
  br i1 %585, label %610, label %586

586:                                              ; preds = %581
  %587 = tail call ptr @__errno_location() #12
  %588 = load i32, ptr %587, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @s2n_print_stacktrace(ptr noundef %589) #11
  %591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc nuw i8 %591 to i1
  br i1 %592, label %593, label %597

593:                                              ; preds = %586
  %594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %595 = call i32 @fileno(ptr noundef %594) #11
  %596 = call i32 @isatty(i32 noundef %595) #11
  %.not207 = icmp eq i32 %596, 0
  br i1 %.not207, label %597, label %598

597:                                              ; preds = %593, %586
  br label %598

598:                                              ; preds = %593, %597
  %.str.5.sink432 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %587, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %602 = load i32, ptr %601, align 4, !tbaa !5
  %603 = call ptr @s2n_strerror(i32 noundef %602, ptr noundef nonnull @.str.4) #11
  %604 = load i32, ptr %601, align 4, !tbaa !5
  %605 = call ptr @s2n_strerror_debug(i32 noundef %604, ptr noundef nonnull @.str.4) #11
  %606 = load i32, ptr %587, align 4, !tbaa !5
  %607 = call ptr @strerror(i32 noundef %606) #11
  %608 = load i32, ptr %587, align 4, !tbaa !5
  %609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink432, i32 noundef %600, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 129, ptr noundef %603, ptr noundef %605, ptr noundef %607, i32 noundef %608) #13
  call void @exit(i32 noundef 1) #14
  unreachable

610:                                              ; preds = %581
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #11
  store i64 0, ptr %14, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %15) #11
  store i64 0, ptr %15, align 8, !tbaa !15
  %611 = getelementptr inbounds i8, ptr %553, i64 640
  %612 = load ptr, ptr %611, align 8, !tbaa !52
  %613 = getelementptr inbounds i8, ptr %612, i64 928
  %614 = add nsw i32 %551, 3
  store i32 %614, ptr @test_count, align 4, !tbaa !5
  %615 = call i32 @s2n_get_actual_record_count(ptr noundef nonnull %613, ptr noundef nonnull %13, ptr noundef nonnull %14)
  %616 = call zeroext i1 @s2n_result_is_ok(i32 %615)
  br i1 %616, label %641, label %617

617:                                              ; preds = %610
  %618 = tail call ptr @__errno_location() #12
  %619 = load i32, ptr %618, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = call i32 @s2n_print_stacktrace(ptr noundef %620) #11
  %622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %623 = trunc nuw i8 %622 to i1
  br i1 %623, label %624, label %628

624:                                              ; preds = %617
  %625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %626 = call i32 @fileno(ptr noundef %625) #11
  %627 = call i32 @isatty(i32 noundef %626) #11
  %.not208 = icmp eq i32 %627, 0
  br i1 %.not208, label %628, label %629

628:                                              ; preds = %624, %617
  br label %629

629:                                              ; preds = %624, %628
  %.str.5.sink443 = phi ptr [ @.str.5, %628 ], [ @.str.2, %624 ]
  store i32 %619, ptr %618, align 4, !tbaa !5
  %630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %631 = load i32, ptr @test_count, align 4, !tbaa !5
  %632 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @s2n_strerror(i32 noundef %633, ptr noundef nonnull @.str.4) #11
  %635 = load i32, ptr %632, align 4, !tbaa !5
  %636 = call ptr @s2n_strerror_debug(i32 noundef %635, ptr noundef nonnull @.str.4) #11
  %637 = load i32, ptr %618, align 4, !tbaa !5
  %638 = call ptr @strerror(i32 noundef %637) #11
  %639 = load i32, ptr %618, align 4, !tbaa !5
  %640 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %630, ptr noundef nonnull %.str.5.sink443, i32 noundef %631, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 134, ptr noundef %634, ptr noundef %636, ptr noundef %638, i32 noundef %639) #13
  call void @exit(i32 noundef 1) #14
  unreachable

641:                                              ; preds = %610
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = add nsw i32 %642, 1
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = load i32, ptr %12, align 4, !tbaa !5
  %645 = call i32 @s2n_get_expected_record_count(i32 noundef %644, i32 noundef %517, i8 noundef zeroext 3, ptr noundef nonnull %15)
  %646 = call zeroext i1 @s2n_result_is_ok(i32 %645)
  br i1 %646, label %671, label %647

647:                                              ; preds = %641
  %648 = tail call ptr @__errno_location() #12
  %649 = load i32, ptr %648, align 4, !tbaa !5
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = call i32 @s2n_print_stacktrace(ptr noundef %650) #11
  %652 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %653 = trunc nuw i8 %652 to i1
  br i1 %653, label %654, label %658

654:                                              ; preds = %647
  %655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %656 = call i32 @fileno(ptr noundef %655) #11
  %657 = call i32 @isatty(i32 noundef %656) #11
  %.not209 = icmp eq i32 %657, 0
  br i1 %.not209, label %658, label %659

658:                                              ; preds = %654, %647
  br label %659

659:                                              ; preds = %654, %658
  %.str.5.sink454 = phi ptr [ @.str.5, %658 ], [ @.str.2, %654 ]
  store i32 %649, ptr %648, align 4, !tbaa !5
  %660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %663 = load i32, ptr %662, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror(i32 noundef %663, ptr noundef nonnull @.str.4) #11
  %665 = load i32, ptr %662, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror_debug(i32 noundef %665, ptr noundef nonnull @.str.4) #11
  %667 = load i32, ptr %648, align 4, !tbaa !5
  %668 = call ptr @strerror(i32 noundef %667) #11
  %669 = load i32, ptr %648, align 4, !tbaa !5
  %670 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %660, ptr noundef nonnull %.str.5.sink454, i32 noundef %661, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 135, ptr noundef %664, ptr noundef %666, ptr noundef %668, i32 noundef %669) #13
  call void @exit(i32 noundef 1) #14
  unreachable

671:                                              ; preds = %641
  %672 = load i32, ptr @test_count, align 4, !tbaa !5
  %673 = add nsw i32 %672, 1
  store i32 %673, ptr @test_count, align 4, !tbaa !5
  %674 = load i64, ptr %14, align 8, !tbaa !15
  %675 = load i64, ptr %15, align 8, !tbaa !15
  %676 = icmp eq i64 %674, %675
  br i1 %676, label %701, label %677

677:                                              ; preds = %671
  %678 = tail call ptr @__errno_location() #12
  %679 = load i32, ptr %678, align 4, !tbaa !5
  %680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %681 = call i32 @s2n_print_stacktrace(ptr noundef %680) #11
  %682 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %683 = trunc nuw i8 %682 to i1
  br i1 %683, label %684, label %688

684:                                              ; preds = %677
  %685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %686 = call i32 @fileno(ptr noundef %685) #11
  %687 = call i32 @isatty(i32 noundef %686) #11
  %.not210 = icmp eq i32 %687, 0
  br i1 %.not210, label %688, label %689

688:                                              ; preds = %684, %677
  br label %689

689:                                              ; preds = %684, %688
  %.str.5.sink465 = phi ptr [ @.str.5, %688 ], [ @.str.2, %684 ]
  store i32 %679, ptr %678, align 4, !tbaa !5
  %690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %691 = load i32, ptr @test_count, align 4, !tbaa !5
  %692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %693 = load i32, ptr %692, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror(i32 noundef %693, ptr noundef nonnull @.str.4) #11
  %695 = load i32, ptr %692, align 4, !tbaa !5
  %696 = call ptr @s2n_strerror_debug(i32 noundef %695, ptr noundef nonnull @.str.4) #11
  %697 = load i32, ptr %678, align 4, !tbaa !5
  %698 = call ptr @strerror(i32 noundef %697) #11
  %699 = load i32, ptr %678, align 4, !tbaa !5
  %700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %690, ptr noundef nonnull %.str.5.sink465, i32 noundef %691, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %694, ptr noundef %696, ptr noundef %698, i32 noundef %699) #13
  call void @exit(i32 noundef 1) #14
  unreachable

701:                                              ; preds = %671
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #11
  %702 = add nuw nsw i64 %.0226, 1
  %exitcond.not = icmp eq i64 %702, 7
  br i1 %exitcond.not, label %513, label %514, !llvm.loop !53

703:                                              ; preds = %864
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %12) #11
  %704 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %11) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %11) #11
  %705 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #11
  %706 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %9) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #11
  %707 = call ptr @s2n_connection_new(i32 noundef 0) #11
  store ptr %707, ptr %20, align 8, !tbaa !9
  %708 = load i32, ptr @test_count, align 4, !tbaa !5
  %709 = add nsw i32 %708, 1
  store i32 %709, ptr @test_count, align 4, !tbaa !5
  %710 = call i32 @s2n_connection_set_config(ptr noundef %707, ptr noundef %118) #11
  %711 = icmp eq i32 %710, -1
  br i1 %711, label %866, label %890

712:                                              ; preds = %513, %864
  %713 = phi i32 [ %673, %513 ], [ %836, %864 ]
  %.0161227 = phi i64 [ 0, %513 ], [ %865, %864 ]
  %714 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0161227
  %715 = load i32, ptr %714, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %17) #11
  store i8 0, ptr %17, align 1
  %716 = add nsw i32 %713, 1
  store i32 %716, ptr @test_count, align 4, !tbaa !5
  %717 = load ptr, ptr %10, align 8, !tbaa !9
  %718 = call i64 @s2n_recv(ptr noundef %717, ptr noundef nonnull %17, i64 noundef 1, ptr noundef nonnull %7) #11
  %719 = icmp eq i64 %718, -1
  br i1 %719, label %720, label %744

720:                                              ; preds = %712
  %721 = tail call ptr @__errno_location() #12
  %722 = load i32, ptr %721, align 4, !tbaa !5
  %723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %724 = call i32 @s2n_print_stacktrace(ptr noundef %723) #11
  %725 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %726 = trunc nuw i8 %725 to i1
  br i1 %726, label %727, label %731

727:                                              ; preds = %720
  %728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %729 = call i32 @fileno(ptr noundef %728) #11
  %730 = call i32 @isatty(i32 noundef %729) #11
  %.not205 = icmp eq i32 %730, 0
  br i1 %.not205, label %731, label %732

731:                                              ; preds = %727, %720
  br label %732

732:                                              ; preds = %727, %731
  %.str.5.sink476 = phi ptr [ @.str.5, %731 ], [ @.str.2, %727 ]
  store i32 %722, ptr %721, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = load i32, ptr @test_count, align 4, !tbaa !5
  %735 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %736 = load i32, ptr %735, align 4, !tbaa !5
  %737 = call ptr @s2n_strerror(i32 noundef %736, ptr noundef nonnull @.str.4) #11
  %738 = load i32, ptr %735, align 4, !tbaa !5
  %739 = call ptr @s2n_strerror_debug(i32 noundef %738, ptr noundef nonnull @.str.4) #11
  %740 = load i32, ptr %721, align 4, !tbaa !5
  %741 = call ptr @strerror(i32 noundef %740) #11
  %742 = load i32, ptr %721, align 4, !tbaa !5
  %743 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %733, ptr noundef nonnull %.str.5.sink476, i32 noundef %734, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 145, ptr noundef %737, ptr noundef %739, ptr noundef %741, i32 noundef %742) #13
  call void @exit(i32 noundef 1) #14
  unreachable

744:                                              ; preds = %712
  %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
  %lhsc199 = load i8, ptr %8, align 1
  %rhsc200 = load i8, ptr %17, align 1
  %747 = icmp eq i8 %lhsc199, %rhsc200
  br i1 %747, label %772, label %748

748:                                              ; preds = %744
  %749 = tail call ptr @__errno_location() #12
  %750 = load i32, ptr %749, align 4, !tbaa !5
  %751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %752 = call i32 @s2n_print_stacktrace(ptr noundef %751) #11
  %753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %754 = trunc nuw i8 %753 to i1
  br i1 %754, label %755, label %759

755:                                              ; preds = %748
  %756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %757 = call i32 @fileno(ptr noundef %756) #11
  %758 = call i32 @isatty(i32 noundef %757) #11
  %.not201 = icmp eq i32 %758, 0
  br i1 %.not201, label %759, label %760

759:                                              ; preds = %755, %748
  br label %760

760:                                              ; preds = %755, %759
  %.str.5.sink487 = phi ptr [ @.str.5, %759 ], [ @.str.2, %755 ]
  store i32 %750, ptr %749, 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 nonnull @.str.4) #11
  %766 = load i32, ptr %763, align 4, !tbaa !5
  %767 = call ptr @s2n_strerror_debug(i32 noundef %766, ptr noundef nonnull @.str.4) #11
  %768 = load i32, ptr %749, align 4, !tbaa !5
  %769 = call ptr @strerror(i32 noundef %768) #11
  %770 = load i32, ptr %749, align 4, !tbaa !5
  %771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %761, ptr noundef nonnull %.str.5.sink487, i32 noundef %762, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %765, ptr noundef %767, ptr noundef %769, i32 noundef %770) #13
  call void @exit(i32 noundef 1) #14
  unreachable

772:                                              ; preds = %744
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18) #11
  store i64 0, ptr %18, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19) #11
  store i64 0, ptr %19, align 8, !tbaa !15
  %773 = load ptr, ptr %10, align 8, !tbaa !9
  %774 = getelementptr inbounds i8, ptr %773, i64 640
  %775 = load ptr, ptr %774, align 8, !tbaa !52
  %776 = getelementptr inbounds i8, ptr %775, i64 928
  %777 = add nsw i32 %745, 2
  store i32 %777, ptr @test_count, align 4, !tbaa !5
  %778 = call i32 @s2n_get_actual_record_count(ptr noundef nonnull %776, ptr noundef nonnull %16, ptr noundef nonnull %18)
  %779 = call zeroext i1 @s2n_result_is_ok(i32 %778)
  br i1 %779, label %804, label %780

780:                                              ; preds = %772
  %781 = tail call ptr @__errno_location() #12
  %782 = load i32, ptr %781, align 4, !tbaa !5
  %783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %784 = call i32 @s2n_print_stacktrace(ptr noundef %783) #11
  %785 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %786 = trunc nuw i8 %785 to i1
  br i1 %786, label %787, label %791

787:                                              ; preds = %780
  %788 = load ptr, ptr @stderr, align 8, !tbaa !9
  %789 = call i32 @fileno(ptr noundef %788) #11
  %790 = call i32 @isatty(i32 noundef %789) #11
  %.not202 = icmp eq i32 %790, 0
  br i1 %.not202, label %791, label %792

791:                                              ; preds = %787, %780
  br label %792

792:                                              ; preds = %787, %791
  %.str.5.sink498 = phi ptr [ @.str.5, %791 ], [ @.str.2, %787 ]
  store i32 %782, ptr %781, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %796 = load i32, ptr %795, align 4, !tbaa !5
  %797 = call ptr @s2n_strerror(i32 noundef %796, ptr noundef nonnull @.str.4) #11
  %798 = load i32, ptr %795, align 4, !tbaa !5
  %799 = call ptr @s2n_strerror_debug(i32 noundef %798, ptr noundef nonnull @.str.4) #11
  %800 = load i32, ptr %781, align 4, !tbaa !5
  %801 = call ptr @strerror(i32 noundef %800) #11
  %802 = load i32, ptr %781, align 4, !tbaa !5
  %803 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %793, ptr noundef nonnull %.str.5.sink498, i32 noundef %794, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %797, ptr noundef %799, ptr noundef %801, i32 noundef %802) #13
  call void @exit(i32 noundef 1) #14
  unreachable

804:                                              ; preds = %772
  %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 i32, ptr %12, align 4, !tbaa !5
  %808 = call i32 @s2n_get_expected_record_count(i32 noundef %807, i32 noundef %715, i8 noundef zeroext 3, ptr noundef nonnull %19)
  %809 = call zeroext i1 @s2n_result_is_ok(i32 %808)
  br i1 %809, label %834, label %810

810:                                              ; preds = %804
  %811 = tail call ptr @__errno_location() #12
  %812 = load i32, ptr %811, align 4, !tbaa !5
  %813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %814 = call i32 @s2n_print_stacktrace(ptr noundef %813) #11
  %815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %816 = trunc nuw i8 %815 to i1
  br i1 %816, label %817, label %821

817:                                              ; preds = %810
  %818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %819 = call i32 @fileno(ptr noundef %818) #11
  %820 = call i32 @isatty(i32 noundef %819) #11
  %.not203 = icmp eq i32 %820, 0
  br i1 %.not203, label %821, label %822

821:                                              ; preds = %817, %810
  br label %822

822:                                              ; preds = %817, %821
  %.str.5.sink509 = phi ptr [ @.str.5, %821 ], [ @.str.2, %817 ]
  store i32 %812, ptr %811, align 4, !tbaa !5
  %823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %824 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %826, ptr noundef nonnull @.str.4) #11
  %828 = load i32, ptr %825, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef nonnull @.str.4) #11
  %830 = load i32, ptr %811, align 4, !tbaa !5
  %831 = call ptr @strerror(i32 noundef %830) #11
  %832 = load i32, ptr %811, align 4, !tbaa !5
  %833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %823, ptr noundef nonnull %.str.5.sink509, i32 noundef %824, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %827, ptr noundef %829, ptr noundef %831, i32 noundef %832) #13
  call void @exit(i32 noundef 1) #14
  unreachable

834:                                              ; preds = %804
  %835 = load i32, ptr @test_count, align 4, !tbaa !5
  %836 = add nsw i32 %835, 1
  store i32 %836, ptr @test_count, align 4, !tbaa !5
  %837 = load i64, ptr %18, align 8, !tbaa !15
  %838 = load i64, ptr %19, align 8, !tbaa !15
  %839 = icmp eq i64 %837, %838
  br i1 %839, label %864, label %840

840:                                              ; preds = %834
  %841 = tail call ptr @__errno_location() #12
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %844 = call i32 @s2n_print_stacktrace(ptr noundef %843) #11
  %845 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %846 = trunc nuw i8 %845 to i1
  br i1 %846, label %847, label %851

847:                                              ; preds = %840
  %848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %849 = call i32 @fileno(ptr noundef %848) #11
  %850 = call i32 @isatty(i32 noundef %849) #11
  %.not204 = icmp eq i32 %850, 0
  br i1 %.not204, label %851, label %852

851:                                              ; preds = %847, %840
  br label %852

852:                                              ; preds = %847, %851
  %.str.5.sink520 = phi ptr [ @.str.5, %851 ], [ @.str.2, %847 ]
  store i32 %842, ptr %841, align 4, !tbaa !5
  %853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %854 = load i32, ptr @test_count, align 4, !tbaa !5
  %855 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %856 = load i32, ptr %855, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror(i32 noundef %856, ptr noundef nonnull @.str.4) #11
  %858 = load i32, ptr %855, align 4, !tbaa !5
  %859 = call ptr @s2n_strerror_debug(i32 noundef %858, ptr noundef nonnull @.str.4) #11
  %860 = load i32, ptr %841, align 4, !tbaa !5
  %861 = call ptr @strerror(i32 noundef %860) #11
  %862 = load i32, ptr %841, align 4, !tbaa !5
  %863 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %853, ptr noundef nonnull %.str.5.sink520, i32 noundef %854, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 153, ptr noundef %857, ptr noundef %859, ptr noundef %861, i32 noundef %862) #13
  call void @exit(i32 noundef 1) #14
  unreachable

864:                                              ; preds = %834
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %17) #11
  %865 = add nuw nsw i64 %.0161227, 1
  %exitcond230.not = icmp eq i64 %865, 7
  br i1 %exitcond230.not, label %703, label %712, !llvm.loop !55

866:                                              ; preds = %703
  %867 = tail call ptr @__errno_location() #12
  %868 = load i32, ptr %867, align 4, !tbaa !5
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @s2n_print_stacktrace(ptr noundef %869) #11
  %871 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %872 = trunc nuw i8 %871 to i1
  br i1 %872, label %873, label %877

873:                                              ; preds = %866
  %874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %875 = call i32 @fileno(ptr noundef %874) #11
  %876 = call i32 @isatty(i32 noundef %875) #11
  %.not198 = icmp eq i32 %876, 0
  br i1 %.not198, label %877, label %878

877:                                              ; preds = %873, %866
  br label %878

878:                                              ; preds = %873, %877
  %.str.5.sink531 = phi ptr [ @.str.5, %877 ], [ @.str.2, %873 ]
  store i32 %868, ptr %867, align 4, !tbaa !5
  %879 = load ptr, ptr @stderr, align 8, !tbaa !9
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror(i32 noundef %882, ptr noundef nonnull @.str.4) #11
  %884 = load i32, ptr %881, align 4, !tbaa !5
  %885 = call ptr @s2n_strerror_debug(i32 noundef %884, ptr noundef nonnull @.str.4) #11
  %886 = load i32, ptr %867, align 4, !tbaa !5
  %887 = call ptr @strerror(i32 noundef %886) #11
  %888 = load i32, ptr %867, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %879, ptr noundef nonnull %.str.5.sink531, i32 noundef %880, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 160, ptr noundef %883, ptr noundef %885, ptr noundef %887, i32 noundef %888) #13
  call void @exit(i32 noundef 1) #14
  unreachable

890:                                              ; preds = %703
  %891 = load i32, ptr @test_count, align 4, !tbaa !5
  %892 = add nsw i32 %891, 1
  store i32 %892, ptr @test_count, align 4, !tbaa !5
  %893 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %707, i8 noundef zeroext 34) #11
  %894 = icmp eq i32 %893, -1
  br i1 %894, label %895, label %919

895:                                              ; preds = %890
  %896 = tail call ptr @__errno_location() #12
  %897 = load i32, ptr %896, align 4, !tbaa !5
  %898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %899 = call i32 @s2n_print_stacktrace(ptr noundef %898) #11
  %900 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %901 = trunc nuw i8 %900 to i1
  br i1 %901, label %902, label %906

902:                                              ; preds = %895
  %903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %904 = call i32 @fileno(ptr noundef %903) #11
  %905 = call i32 @isatty(i32 noundef %904) #11
  %.not197 = icmp eq i32 %905, 0
  br i1 %.not197, label %906, label %907

906:                                              ; preds = %902, %895
  br label %907

907:                                              ; preds = %902, %906
  %.str.5.sink542 = phi ptr [ @.str.5, %906 ], [ @.str.2, %902 ]
  store i32 %897, ptr %896, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %911 = load i32, ptr %910, align 4, !tbaa !5
  %912 = call ptr @s2n_strerror(i32 noundef %911, ptr noundef nonnull @.str.4) #11
  %913 = load i32, ptr %910, align 4, !tbaa !5
  %914 = call ptr @s2n_strerror_debug(i32 noundef %913, ptr noundef nonnull @.str.4) #11
  %915 = load i32, ptr %896, align 4, !tbaa !5
  %916 = call ptr @strerror(i32 noundef %915) #11
  %917 = load i32, ptr %896, align 4, !tbaa !5
  %918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %908, ptr noundef nonnull %.str.5.sink542, i32 noundef %909, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 161, ptr noundef %912, ptr noundef %914, ptr noundef %916, i32 noundef %917) #13
  call void @exit(i32 noundef 1) #14
  unreachable

919:                                              ; preds = %890
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %921 = add nsw i32 %920, 1
  store i32 %921, ptr @test_count, align 4, !tbaa !5
  %922 = call i32 @s2n_connection_set_secrets(ptr noundef %707) #11
  %923 = call zeroext i1 @s2n_result_is_ok(i32 %922)
  br i1 %923, label %948, label %924

924:                                              ; preds = %919
  %925 = tail call ptr @__errno_location() #12
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = call i32 @s2n_print_stacktrace(ptr noundef %927) #11
  %929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %930 = trunc nuw i8 %929 to i1
  br i1 %930, label %931, label %935

931:                                              ; preds = %924
  %932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %933 = call i32 @fileno(ptr noundef %932) #11
  %934 = call i32 @isatty(i32 noundef %933) #11
  %.not170 = icmp eq i32 %934, 0
  br i1 %.not170, label %935, label %936

935:                                              ; preds = %931, %924
  br label %936

936:                                              ; preds = %931, %935
  %.str.5.sink553 = phi ptr [ @.str.5, %935 ], [ @.str.2, %931 ]
  store i32 %926, ptr %925, align 4, !tbaa !5
  %937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %938 = load i32, ptr @test_count, align 4, !tbaa !5
  %939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %940 = load i32, ptr %939, align 4, !tbaa !5
  %941 = call ptr @s2n_strerror(i32 noundef %940, ptr noundef nonnull @.str.4) #11
  %942 = load i32, ptr %939, align 4, !tbaa !5
  %943 = call ptr @s2n_strerror_debug(i32 noundef %942, ptr noundef nonnull @.str.4) #11
  %944 = load i32, ptr %925, align 4, !tbaa !5
  %945 = call ptr @strerror(i32 noundef %944) #11
  %946 = load i32, ptr %925, align 4, !tbaa !5
  %947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %937, ptr noundef nonnull %.str.5.sink553, i32 noundef %938, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %941, ptr noundef %943, ptr noundef %945, i32 noundef %946) #13
  call void @exit(i32 noundef 1) #14
  unreachable

948:                                              ; preds = %919
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21) #11
  %949 = call ptr @s2n_connection_new(i32 noundef 1) #11
  store ptr %949, ptr %21, align 8, !tbaa !9
  %950 = load i32, ptr @test_count, align 4, !tbaa !5
  %951 = add nsw i32 %950, 1
  store i32 %951, ptr @test_count, align 4, !tbaa !5
  %952 = call i32 @s2n_connection_set_config(ptr noundef %949, ptr noundef %118) #11
  %953 = icmp eq i32 %952, -1
  br i1 %953, label %954, label %978

954:                                              ; preds = %948
  %955 = tail call ptr @__errno_location() #12
  %956 = load i32, ptr %955, align 4, !tbaa !5
  %957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %958 = call i32 @s2n_print_stacktrace(ptr noundef %957) #11
  %959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %960 = trunc nuw i8 %959 to i1
  br i1 %960, label %961, label %965

961:                                              ; preds = %954
  %962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %963 = call i32 @fileno(ptr noundef %962) #11
  %964 = call i32 @isatty(i32 noundef %963) #11
  %.not196 = icmp eq i32 %964, 0
  br i1 %.not196, label %965, label %966

965:                                              ; preds = %961, %954
  br label %966

966:                                              ; preds = %961, %965
  %.str.5.sink564 = phi ptr [ @.str.5, %965 ], [ @.str.2, %961 ]
  store i32 %956, ptr %955, align 4, !tbaa !5
  %967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %968 = load i32, ptr @test_count, align 4, !tbaa !5
  %969 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %970 = load i32, ptr %969, align 4, !tbaa !5
  %971 = call ptr @s2n_strerror(i32 noundef %970, ptr noundef nonnull @.str.4) #11
  %972 = load i32, ptr %969, align 4, !tbaa !5
  %973 = call ptr @s2n_strerror_debug(i32 noundef %972, ptr noundef nonnull @.str.4) #11
  %974 = load i32, ptr %955, align 4, !tbaa !5
  %975 = call ptr @strerror(i32 noundef %974) #11
  %976 = load i32, ptr %955, align 4, !tbaa !5
  %977 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %967, ptr noundef nonnull %.str.5.sink564, i32 noundef %968, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 165, ptr noundef %971, ptr noundef %973, ptr noundef %975, i32 noundef %976) #13
  call void @exit(i32 noundef 1) #14
  unreachable

978:                                              ; preds = %948
  %979 = load i32, ptr @test_count, align 4, !tbaa !5
  %980 = add nsw i32 %979, 1
  store i32 %980, ptr @test_count, align 4, !tbaa !5
  %981 = call i32 @s2n_connection_set_all_protocol_versions(ptr noundef %949, i8 noundef zeroext 34) #11
  %982 = icmp eq i32 %981, -1
  br i1 %982, label %983, label %1007

983:                                              ; preds = %978
  %984 = tail call ptr @__errno_location() #12
  %985 = load i32, ptr %984, align 4, !tbaa !5
  %986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %987 = call i32 @s2n_print_stacktrace(ptr noundef %986) #11
  %988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %989 = trunc nuw i8 %988 to i1
  br i1 %989, label %990, label %994

990:                                              ; preds = %983
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @fileno(ptr noundef %991) #11
  %993 = call i32 @isatty(i32 noundef %992) #11
  %.not195 = icmp eq i32 %993, 0
  br i1 %.not195, label %994, label %995

994:                                              ; preds = %990, %983
  br label %995

995:                                              ; preds = %990, %994
  %.str.5.sink575 = phi ptr [ @.str.5, %994 ], [ @.str.2, %990 ]
  store i32 %985, ptr %984, align 4, !tbaa !5
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = load i32, ptr @test_count, align 4, !tbaa !5
  %998 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @s2n_strerror(i32 noundef %999, ptr noundef nonnull @.str.4) #11
  %1001 = load i32, ptr %998, align 4, !tbaa !5
  %1002 = call ptr @s2n_strerror_debug(i32 noundef %1001, ptr noundef nonnull @.str.4) #11
  %1003 = load i32, ptr %984, align 4, !tbaa !5
  %1004 = call ptr @strerror(i32 noundef %1003) #11
  %1005 = load i32, ptr %984, align 4, !tbaa !5
  %1006 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %996, ptr noundef nonnull %.str.5.sink575, i32 noundef %997, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1000, ptr noundef %1002, ptr noundef %1004, i32 noundef %1005) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1007:                                             ; preds = %978
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = add nsw i32 %1008, 1
  store i32 %1009, ptr @test_count, align 4, !tbaa !5
  %1010 = call i32 @s2n_connection_set_secrets(ptr noundef %949) #11
  %1011 = call zeroext i1 @s2n_result_is_ok(i32 %1010)
  br i1 %1011, label %1036, label %1012

1012:                                             ; preds = %1007
  %1013 = tail call ptr @__errno_location() #12
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1016 = call i32 @s2n_print_stacktrace(ptr noundef %1015) #11
  %1017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1018 = trunc nuw i8 %1017 to i1
  br i1 %1018, label %1019, label %1023

1019:                                             ; preds = %1012
  %1020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1021 = call i32 @fileno(ptr noundef %1020) #11
  %1022 = call i32 @isatty(i32 noundef %1021) #11
  %.not171 = icmp eq i32 %1022, 0
  br i1 %.not171, label %1023, label %1024

1023:                                             ; preds = %1019, %1012
  br label %1024

1024:                                             ; preds = %1019, %1023
  %.str.5.sink586 = phi ptr [ @.str.5, %1023 ], [ @.str.2, %1019 ]
  store i32 %1014, ptr %1013, align 4, !tbaa !5
  %1025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1026 = load i32, ptr @test_count, align 4, !tbaa !5
  %1027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1028 = load i32, ptr %1027, align 4, !tbaa !5
  %1029 = call ptr @s2n_strerror(i32 noundef %1028, ptr noundef nonnull @.str.4) #11
  %1030 = load i32, ptr %1027, align 4, !tbaa !5
  %1031 = call ptr @s2n_strerror_debug(i32 noundef %1030, ptr noundef nonnull @.str.4) #11
  %1032 = load i32, ptr %1013, align 4, !tbaa !5
  %1033 = call ptr @strerror(i32 noundef %1032) #11
  %1034 = load i32, ptr %1013, align 4, !tbaa !5
  %1035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1025, ptr noundef nonnull %.str.5.sink586, i32 noundef %1026, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1029, ptr noundef %1031, ptr noundef %1033, i32 noundef %1034) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1036:                                             ; preds = %1007
  call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %22) #11
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(80) %22, i8 0, i64 80, i1 false)
  %1037 = load i32, ptr @test_count, align 4, !tbaa !5
  %1038 = add nsw i32 %1037, 1
  store i32 %1038, ptr @test_count, align 4, !tbaa !5
  %1039 = call i32 @s2n_io_stuffer_pair_init(ptr noundef nonnull %22) #11
  %1040 = call zeroext i1 @s2n_result_is_ok(i32 %1039)
  br i1 %1040, label %1065, label %1041

1041:                                             ; preds = %1036
  %1042 = tail call ptr @__errno_location() #12
  %1043 = load i32, ptr %1042, align 4, !tbaa !5
  %1044 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1045 = call i32 @s2n_print_stacktrace(ptr noundef %1044) #11
  %1046 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1047 = trunc nuw i8 %1046 to i1
  br i1 %1047, label %1048, label %1052

1048:                                             ; preds = %1041
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = call i32 @fileno(ptr noundef %1049) #11
  %1051 = call i32 @isatty(i32 noundef %1050) #11
  %.not172 = icmp eq i32 %1051, 0
  br i1 %.not172, label %1052, label %1053

1052:                                             ; preds = %1048, %1041
  br label %1053

1053:                                             ; preds = %1048, %1052
  %.str.5.sink597 = phi ptr [ @.str.5, %1052 ], [ @.str.2, %1048 ]
  store i32 %1043, ptr %1042, align 4, !tbaa !5
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1057 = load i32, ptr %1056, align 4, !tbaa !5
  %1058 = call ptr @s2n_strerror(i32 noundef %1057, ptr noundef nonnull @.str.4) #11
  %1059 = load i32, ptr %1056, align 4, !tbaa !5
  %1060 = call ptr @s2n_strerror_debug(i32 noundef %1059, ptr noundef nonnull @.str.4) #11
  %1061 = load i32, ptr %1042, align 4, !tbaa !5
  %1062 = call ptr @strerror(i32 noundef %1061) #11
  %1063 = load i32, ptr %1042, align 4, !tbaa !5
  %1064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1054, ptr noundef nonnull %.str.5.sink597, i32 noundef %1055, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1058, ptr noundef %1060, ptr noundef %1062, i32 noundef %1063) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1065:                                             ; preds = %1036
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr @test_count, align 4, !tbaa !5
  %1068 = call i32 @s2n_connections_set_io_stuffer_pair(ptr noundef %949, ptr noundef %707, ptr noundef nonnull %22) #11
  %1069 = call zeroext i1 @s2n_result_is_ok(i32 %1068)
  br i1 %1069, label %1094, label %1070

1070:                                             ; preds = %1065
  %1071 = tail call ptr @__errno_location() #12
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1074 = call i32 @s2n_print_stacktrace(ptr noundef %1073) #11
  %1075 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1076 = trunc nuw i8 %1075 to i1
  br i1 %1076, label %1077, label %1081

1077:                                             ; preds = %1070
  %1078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1079 = call i32 @fileno(ptr noundef %1078) #11
  %1080 = call i32 @isatty(i32 noundef %1079) #11
  %.not173 = icmp eq i32 %1080, 0
  br i1 %.not173, label %1081, label %1082

1081:                                             ; preds = %1077, %1070
  br label %1082

1082:                                             ; preds = %1077, %1081
  %.str.5.sink608 = phi ptr [ @.str.5, %1081 ], [ @.str.2, %1077 ]
  store i32 %1072, ptr %1071, align 4, !tbaa !5
  %1083 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1084 = load i32, ptr @test_count, align 4, !tbaa !5
  %1085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1086 = load i32, ptr %1085, align 4, !tbaa !5
  %1087 = call ptr @s2n_strerror(i32 noundef %1086, ptr noundef nonnull @.str.4) #11
  %1088 = load i32, ptr %1085, align 4, !tbaa !5
  %1089 = call ptr @s2n_strerror_debug(i32 noundef %1088, ptr noundef nonnull @.str.4) #11
  %1090 = load i32, ptr %1071, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #11
  %1092 = load i32, ptr %1071, align 4, !tbaa !5
  %1093 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1083, ptr noundef nonnull %.str.5.sink608, i32 noundef %1084, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1087, ptr noundef %1089, ptr noundef %1091, i32 noundef %1092) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1094:                                             ; preds = %1065
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %23) #11
  store i32 0, ptr %23, align 4, !tbaa !5
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = add nsw i32 %1095, 1
  store i32 %1096, ptr @test_count, align 4, !tbaa !5
  %1097 = call i32 @s2n_get_nst_message_size(ptr noundef %707, ptr noundef nonnull %23)
  %1098 = call zeroext i1 @s2n_result_is_ok(i32 %1097)
  br i1 %1098, label %1123, label %1099

1099:                                             ; preds = %1094
  %1100 = tail call ptr @__errno_location() #12
  %1101 = load i32, ptr %1100, align 4, !tbaa !5
  %1102 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1103 = call i32 @s2n_print_stacktrace(ptr noundef %1102) #11
  %1104 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1105 = trunc nuw i8 %1104 to i1
  br i1 %1105, label %1106, label %1110

1106:                                             ; preds = %1099
  %1107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1108 = call i32 @fileno(ptr noundef %1107) #11
  %1109 = call i32 @isatty(i32 noundef %1108) #11
  %.not174 = icmp eq i32 %1109, 0
  br i1 %.not174, label %1110, label %1111

1110:                                             ; preds = %1106, %1099
  br label %1111

1111:                                             ; preds = %1106, %1110
  %.str.5.sink619 = phi ptr [ @.str.5, %1110 ], [ @.str.2, %1106 ]
  store i32 %1101, ptr %1100, align 4, !tbaa !5
  %1112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1113 = load i32, ptr @test_count, align 4, !tbaa !5
  %1114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1115 = load i32, ptr %1114, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror(i32 noundef %1115, ptr noundef nonnull @.str.4) #11
  %1117 = load i32, ptr %1114, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef nonnull @.str.4) #11
  %1119 = load i32, ptr %1100, align 4, !tbaa !5
  %1120 = call ptr @strerror(i32 noundef %1119) #11
  %1121 = load i32, ptr %1100, align 4, !tbaa !5
  %1122 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1112, ptr noundef nonnull %.str.5.sink619, i32 noundef %1113, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1116, ptr noundef %1118, ptr noundef %1120, i32 noundef %1121) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1123:                                             ; preds = %1094
  %1124 = load i32, ptr @test_count, align 4, !tbaa !5
  %1125 = add nsw i32 %1124, 1
  store i32 %1125, ptr @test_count, align 4, !tbaa !5
  %1126 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #11
  %1127 = icmp eq i32 %1126, -1
  br i1 %1127, label %1128, label %1152

1128:                                             ; preds = %1123
  %1129 = tail call ptr @__errno_location() #12
  %1130 = load i32, ptr %1129, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = call i32 @s2n_print_stacktrace(ptr noundef %1131) #11
  %1133 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1134 = trunc nuw i8 %1133 to i1
  br i1 %1134, label %1135, label %1139

1135:                                             ; preds = %1128
  %1136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1137 = call i32 @fileno(ptr noundef %1136) #11
  %1138 = call i32 @isatty(i32 noundef %1137) #11
  %.not194 = icmp eq i32 %1138, 0
  br i1 %.not194, label %1139, label %1140

1139:                                             ; preds = %1135, %1128
  br label %1140

1140:                                             ; preds = %1135, %1139
  %.str.5.sink630 = phi ptr [ @.str.5, %1139 ], [ @.str.2, %1135 ]
  store i32 %1130, ptr %1129, align 4, !tbaa !5
  %1141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1142 = load i32, ptr @test_count, align 4, !tbaa !5
  %1143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1144 = load i32, ptr %1143, align 4, !tbaa !5
  %1145 = call ptr @s2n_strerror(i32 noundef %1144, ptr noundef nonnull @.str.4) #11
  %1146 = load i32, ptr %1143, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror_debug(i32 noundef %1146, ptr noundef nonnull @.str.4) #11
  %1148 = load i32, ptr %1129, align 4, !tbaa !5
  %1149 = call ptr @strerror(i32 noundef %1148) #11
  %1150 = load i32, ptr %1129, align 4, !tbaa !5
  %1151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1141, ptr noundef nonnull %.str.5.sink630, i32 noundef %1142, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1145, ptr noundef %1147, ptr noundef %1149, i32 noundef %1150) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1152:                                             ; preds = %1123
  %1153 = load i32, ptr @test_count, align 4, !tbaa !5
  %1154 = add nsw i32 %1153, 1
  store i32 %1154, ptr @test_count, align 4, !tbaa !5
  %1155 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %22, i32 noundef 0) #11
  %1156 = icmp eq i32 %1155, -1
  br i1 %1156, label %1157, label %1181

1157:                                             ; preds = %1152
  %1158 = tail call ptr @__errno_location() #12
  %1159 = load i32, ptr %1158, align 4, !tbaa !5
  %1160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1161 = call i32 @s2n_print_stacktrace(ptr noundef %1160) #11
  %1162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1163 = trunc nuw i8 %1162 to i1
  br i1 %1163, label %1164, label %1168

1164:                                             ; preds = %1157
  %1165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1166 = call i32 @fileno(ptr noundef %1165) #11
  %1167 = call i32 @isatty(i32 noundef %1166) #11
  %.not193 = icmp eq i32 %1167, 0
  br i1 %.not193, label %1168, label %1169

1168:                                             ; preds = %1164, %1157
  br label %1169

1169:                                             ; preds = %1164, %1168
  %.str.5.sink641 = phi ptr [ @.str.5, %1168 ], [ @.str.2, %1164 ]
  store i32 %1159, ptr %1158, align 4, !tbaa !5
  %1170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1171 = load i32, ptr @test_count, align 4, !tbaa !5
  %1172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1173 = load i32, ptr %1172, align 4, !tbaa !5
  %1174 = call ptr @s2n_strerror(i32 noundef %1173, ptr noundef nonnull @.str.4) #11
  %1175 = load i32, ptr %1172, align 4, !tbaa !5
  %1176 = call ptr @s2n_strerror_debug(i32 noundef %1175, ptr noundef nonnull @.str.4) #11
  %1177 = load i32, ptr %1158, align 4, !tbaa !5
  %1178 = call ptr @strerror(i32 noundef %1177) #11
  %1179 = load i32, ptr %1158, align 4, !tbaa !5
  %1180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1170, ptr noundef nonnull %.str.5.sink641, i32 noundef %1171, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1174, ptr noundef %1176, ptr noundef %1178, i32 noundef %1179) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1181:                                             ; preds = %1152
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %24) #11
  store i64 0, ptr %24, align 8, !tbaa !15
  %1182 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1183 = getelementptr inbounds i8, ptr %22, i64 36
  %1184 = getelementptr inbounds i8, ptr %22, i64 28
  %1185 = getelementptr inbounds i8, ptr %22, i64 24
  %1186 = getelementptr inbounds i8, ptr %707, i64 2208
  %1187 = getelementptr inbounds i8, ptr %707, i64 4086
  %1188 = getelementptr inbounds i8, ptr %707, i64 4084
  %1189 = getelementptr inbounds i8, ptr %707, i64 1924
  %1190 = getelementptr inbounds i8, ptr %707, i64 1920
  %1191 = getelementptr inbounds i8, ptr %707, i64 2016
  %1192 = getelementptr inbounds i8, ptr %707, i64 640
  br label %1195

1193:                                             ; preds = %1437
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %27) #11
  store i64 0, ptr %27, align 8, !tbaa !15
  %1194 = getelementptr inbounds i8, ptr %949, i64 640
  br label %1445

1195:                                             ; preds = %1181, %1437
  %.0162228 = phi i64 [ 0, %1181 ], [ %1438, %1437 ]
  %1196 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0162228
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = trunc i32 %1197 to i16
  store i16 %1198, ptr %1186, align 8, !tbaa !25
  store i16 0, ptr %1187, align 2, !tbaa !49
  store i16 3, ptr %1188, align 4, !tbaa !50
  %1199 = call i64 @s2n_send(ptr noundef %707, ptr noundef nonnull %8, i64 noundef 1, ptr noundef nonnull %7) #11
  %1200 = icmp slt i64 %1199, 0
  br i1 %1200, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %1195, %1291
  %1201 = load i32, ptr @test_count, align 4, !tbaa !5
  %1202 = add nsw i32 %1201, 1
  store i32 %1202, ptr @test_count, align 4, !tbaa !5
  %1203 = load i32, ptr %1182, align 4, !tbaa !5
  %1204 = icmp eq i32 %1203, 201326592
  br i1 %1204, label %1228, label %1205

1205:                                             ; preds = %.lr.ph
  %1206 = tail call ptr @__errno_location() #12
  %1207 = load i32, ptr %1206, align 4, !tbaa !5
  %1208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1209 = call i32 @s2n_print_stacktrace(ptr noundef %1208) #11
  %1210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1211 = trunc nuw i8 %1210 to i1
  br i1 %1211, label %1212, label %1216

1212:                                             ; preds = %1205
  %1213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1214 = call i32 @fileno(ptr noundef %1213) #11
  %1215 = call i32 @isatty(i32 noundef %1214) #11
  %.not190 = icmp eq i32 %1215, 0
  br i1 %.not190, label %1216, label %1217

1216:                                             ; preds = %1212, %1205
  br label %1217

1217:                                             ; preds = %1212, %1216
  %.str.5.sink652 = phi ptr [ @.str.5, %1216 ], [ @.str.2, %1212 ]
  store i32 %1207, ptr %1206, align 4, !tbaa !5
  %1218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1219 = load i32, ptr @test_count, align 4, !tbaa !5
  %1220 = load i32, ptr %1182, align 4, !tbaa !5
  %1221 = call ptr @s2n_strerror(i32 noundef %1220, ptr noundef nonnull @.str.4) #11
  %1222 = load i32, ptr %1182, align 4, !tbaa !5
  %1223 = call ptr @s2n_strerror_debug(i32 noundef %1222, ptr noundef nonnull @.str.4) #11
  %1224 = load i32, ptr %1206, align 4, !tbaa !5
  %1225 = call ptr @strerror(i32 noundef %1224) #11
  %1226 = load i32, ptr %1206, align 4, !tbaa !5
  %1227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1218, ptr noundef nonnull %.str.5.sink652, i32 noundef %1219, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1221, ptr noundef %1223, ptr noundef %1225, i32 noundef %1226) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1228:                                             ; preds = %.lr.ph
  %1229 = add nsw i32 %1201, 2
  store i32 %1229, ptr @test_count, align 4, !tbaa !5
  %1230 = load i32, ptr %7, align 4, !tbaa !5
  %1231 = icmp eq i32 %1230, 2
  br i1 %1231, label %1255, label %1232

1232:                                             ; preds = %1228
  %1233 = tail call ptr @__errno_location() #12
  %1234 = load i32, ptr %1233, align 4, !tbaa !5
  %1235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1236 = call i32 @s2n_print_stacktrace(ptr noundef %1235) #11
  %1237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1238 = trunc nuw i8 %1237 to i1
  br i1 %1238, label %1239, label %1243

1239:                                             ; preds = %1232
  %1240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1241 = call i32 @fileno(ptr noundef %1240) #11
  %1242 = call i32 @isatty(i32 noundef %1241) #11
  %.not191 = icmp eq i32 %1242, 0
  br i1 %.not191, label %1243, label %1244

1243:                                             ; preds = %1239, %1232
  br label %1244

1244:                                             ; preds = %1239, %1243
  %.str.5.sink661 = phi ptr [ @.str.5, %1243 ], [ @.str.2, %1239 ]
  store i32 %1234, ptr %1233, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = load i32, ptr %1182, align 4, !tbaa !5
  %1248 = call ptr @s2n_strerror(i32 noundef %1247, ptr noundef nonnull @.str.4) #11
  %1249 = load i32, ptr %1182, align 4, !tbaa !5
  %1250 = call ptr @s2n_strerror_debug(i32 noundef %1249, ptr noundef nonnull @.str.4) #11
  %1251 = load i32, ptr %1233, align 4, !tbaa !5
  %1252 = call ptr @strerror(i32 noundef %1251) #11
  %1253 = load i32, ptr %1233, align 4, !tbaa !5
  %1254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef nonnull %.str.5.sink661, i32 noundef %1246, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 193, ptr noundef %1248, ptr noundef %1250, ptr noundef %1252, i32 noundef %1253) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1255:                                             ; preds = %1228
  %1256 = load i8, ptr %1183, align 4
  %1257 = or i8 %1256, 2
  store i8 %1257, ptr %1183, align 4
  %1258 = load i32, ptr %1184, align 4, !tbaa !56
  %1259 = load i32, ptr %1185, align 8, !tbaa !57
  %1260 = load i32, ptr %1189, align 4, !tbaa !58
  %1261 = load i32, ptr %1190, align 8, !tbaa !59
  %1262 = add nsw i32 %1201, 3
  store i32 %1262, ptr @test_count, align 4, !tbaa !5
  %1263 = add i32 %1258, %1260
  %1264 = add i32 %1259, %1261
  %1265 = sub i32 %1263, %1264
  %1266 = call i32 @s2n_stuffer_resize(ptr noundef nonnull %22, i32 noundef %1265) #11
  %1267 = icmp eq i32 %1266, -1
  br i1 %1267, label %1268, label %1291

1268:                                             ; preds = %1255
  %1269 = tail call ptr @__errno_location() #12
  %1270 = load i32, ptr %1269, align 4, !tbaa !5
  %1271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1272 = call i32 @s2n_print_stacktrace(ptr noundef %1271) #11
  %1273 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1274 = trunc nuw i8 %1273 to i1
  br i1 %1274, label %1275, label %1279

1275:                                             ; preds = %1268
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @fileno(ptr noundef %1276) #11
  %1278 = call i32 @isatty(i32 noundef %1277) #11
  %.not192 = icmp eq i32 %1278, 0
  br i1 %.not192, label %1279, label %1280

1279:                                             ; preds = %1275, %1268
  br label %1280

1280:                                             ; preds = %1275, %1279
  %.str.5.sink670 = phi ptr [ @.str.5, %1279 ], [ @.str.2, %1275 ]
  store i32 %1270, ptr %1269, align 4, !tbaa !5
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = load i32, ptr @test_count, align 4, !tbaa !5
  %1283 = load i32, ptr %1182, align 4, !tbaa !5
  %1284 = call ptr @s2n_strerror(i32 noundef %1283, ptr noundef nonnull @.str.4) #11
  %1285 = load i32, ptr %1182, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror_debug(i32 noundef %1285, ptr noundef nonnull @.str.4) #11
  %1287 = load i32, ptr %1269, align 4, !tbaa !5
  %1288 = call ptr @strerror(i32 noundef %1287) #11
  %1289 = load i32, ptr %1269, align 4, !tbaa !5
  %1290 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1281, ptr noundef nonnull %.str.5.sink670, i32 noundef %1282, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1284, ptr noundef %1286, ptr noundef %1288, i32 noundef %1289) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1291:                                             ; preds = %1255
  %1292 = load i8, ptr %1183, align 4
  %1293 = and i8 %1292, -3
  store i8 %1293, ptr %1183, align 4
  %1294 = call i64 @s2n_send(ptr noundef nonnull %707, ptr noundef nonnull %8, i64 noundef 1, ptr noundef nonnull %7) #11
  %1295 = icmp slt i64 %1294, 0
  br i1 %1295, label %.lr.ph, label %._crit_edge, !llvm.loop !60

._crit_edge:                                      ; preds = %1291, %1195
  %1296 = load i32, ptr @test_count, align 4, !tbaa !5
  %1297 = add nsw i32 %1296, 1
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = load i16, ptr %1187, align 2, !tbaa !49
  %1299 = icmp eq i16 %1298, 3
  br i1 %1299, label %1323, label %1300

1300:                                             ; preds = %._crit_edge
  %1301 = tail call ptr @__errno_location() #12
  %1302 = load i32, ptr %1301, align 4, !tbaa !5
  %1303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1304 = call i32 @s2n_print_stacktrace(ptr noundef %1303) #11
  %1305 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1306 = trunc nuw i8 %1305 to i1
  br i1 %1306, label %1307, label %1311

1307:                                             ; preds = %1300
  %1308 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1309 = call i32 @fileno(ptr noundef %1308) #11
  %1310 = call i32 @isatty(i32 noundef %1309) #11
  %.not185 = icmp eq i32 %1310, 0
  br i1 %.not185, label %1311, label %1312

1311:                                             ; preds = %1307, %1300
  br label %1312

1312:                                             ; preds = %1307, %1311
  %.str.5.sink679 = phi ptr [ @.str.5, %1311 ], [ @.str.2, %1307 ]
  store i32 %1302, ptr %1301, align 4, !tbaa !5
  %1313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1314 = load i32, ptr @test_count, align 4, !tbaa !5
  %1315 = load i32, ptr %1182, align 4, !tbaa !5
  %1316 = call ptr @s2n_strerror(i32 noundef %1315, ptr noundef nonnull @.str.4) #11
  %1317 = load i32, ptr %1182, align 4, !tbaa !5
  %1318 = call ptr @s2n_strerror_debug(i32 noundef %1317, ptr noundef nonnull @.str.4) #11
  %1319 = load i32, ptr %1301, align 4, !tbaa !5
  %1320 = call ptr @strerror(i32 noundef %1319) #11
  %1321 = load i32, ptr %1301, align 4, !tbaa !5
  %1322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1313, ptr noundef nonnull %.str.5.sink679, i32 noundef %1314, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1316, ptr noundef %1318, ptr noundef %1320, i32 noundef %1321) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1323:                                             ; preds = %._crit_edge
  %1324 = add nsw i32 %1296, 2
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %1325 = load ptr, ptr %1191, align 8, !tbaa !51
  %1326 = icmp eq ptr %1325, null
  br i1 %1326, label %1350, label %1327

1327:                                             ; preds = %1323
  %1328 = tail call ptr @__errno_location() #12
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1331 = call i32 @s2n_print_stacktrace(ptr noundef %1330) #11
  %1332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1333 = trunc nuw i8 %1332 to i1
  br i1 %1333, label %1334, label %1338

1334:                                             ; preds = %1327
  %1335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1336 = call i32 @fileno(ptr noundef %1335) #11
  %1337 = call i32 @isatty(i32 noundef %1336) #11
  %.not186 = icmp eq i32 %1337, 0
  br i1 %.not186, label %1338, label %1339

1338:                                             ; preds = %1334, %1327
  br label %1339

1339:                                             ; preds = %1334, %1338
  %.str.5.sink688 = phi ptr [ @.str.5, %1338 ], [ @.str.2, %1334 ]
  store i32 %1329, ptr %1328, align 4, !tbaa !5
  %1340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1341 = load i32, ptr @test_count, align 4, !tbaa !5
  %1342 = load i32, ptr %1182, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror(i32 noundef %1342, ptr noundef nonnull @.str.4) #11
  %1344 = load i32, ptr %1182, align 4, !tbaa !5
  %1345 = call ptr @s2n_strerror_debug(i32 noundef %1344, ptr noundef nonnull @.str.4) #11
  %1346 = load i32, ptr %1328, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #11
  %1348 = load i32, ptr %1328, align 4, !tbaa !5
  %1349 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef nonnull %.str.5.sink688, i32 noundef %1341, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 206, ptr noundef %1343, ptr noundef %1345, ptr noundef %1347, i32 noundef %1348) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1350:                                             ; preds = %1323
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %25) #11
  store i64 0, ptr %25, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %26) #11
  store i64 0, ptr %26, align 8, !tbaa !15
  %1351 = load ptr, ptr %1192, align 8, !tbaa !52
  %1352 = getelementptr inbounds i8, ptr %1351, i64 928
  %1353 = add nsw i32 %1296, 3
  store i32 %1353, ptr @test_count, align 4, !tbaa !5
  %1354 = call i32 @s2n_get_actual_record_count(ptr noundef nonnull %1352, ptr noundef nonnull %24, ptr noundef nonnull %25)
  %1355 = call zeroext i1 @s2n_result_is_ok(i32 %1354)
  br i1 %1355, label %1379, label %1356

1356:                                             ; preds = %1350
  %1357 = tail call ptr @__errno_location() #12
  %1358 = load i32, ptr %1357, align 4, !tbaa !5
  %1359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1360 = call i32 @s2n_print_stacktrace(ptr noundef %1359) #11
  %1361 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1362 = trunc nuw i8 %1361 to i1
  br i1 %1362, label %1363, label %1367

1363:                                             ; preds = %1356
  %1364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1365 = call i32 @fileno(ptr noundef %1364) #11
  %1366 = call i32 @isatty(i32 noundef %1365) #11
  %.not187 = icmp eq i32 %1366, 0
  br i1 %.not187, label %1367, label %1368

1367:                                             ; preds = %1363, %1356
  br label %1368

1368:                                             ; preds = %1363, %1367
  %.str.5.sink697 = phi ptr [ @.str.5, %1367 ], [ @.str.2, %1363 ]
  store i32 %1358, ptr %1357, align 4, !tbaa !5
  %1369 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1370 = load i32, ptr @test_count, align 4, !tbaa !5
  %1371 = load i32, ptr %1182, align 4, !tbaa !5
  %1372 = call ptr @s2n_strerror(i32 noundef %1371, ptr noundef nonnull @.str.4) #11
  %1373 = load i32, ptr %1182, align 4, !tbaa !5
  %1374 = call ptr @s2n_strerror_debug(i32 noundef %1373, ptr noundef nonnull @.str.4) #11
  %1375 = load i32, ptr %1357, align 4, !tbaa !5
  %1376 = call ptr @strerror(i32 noundef %1375) #11
  %1377 = load i32, ptr %1357, align 4, !tbaa !5
  %1378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1369, ptr noundef nonnull %.str.5.sink697, i32 noundef %1370, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 211, ptr noundef %1372, ptr noundef %1374, ptr noundef %1376, i32 noundef %1377) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1379:                                             ; preds = %1350
  %1380 = load i32, ptr @test_count, align 4, !tbaa !5
  %1381 = add nsw i32 %1380, 1
  store i32 %1381, ptr @test_count, align 4, !tbaa !5
  %1382 = load i32, ptr %23, align 4, !tbaa !5
  %1383 = call i32 @s2n_get_expected_record_count(i32 noundef %1382, i32 noundef %1197, i8 noundef zeroext 3, ptr noundef nonnull %26)
  %1384 = call zeroext i1 @s2n_result_is_ok(i32 %1383)
  br i1 %1384, label %1408, label %1385

1385:                                             ; preds = %1379
  %1386 = tail call ptr @__errno_location() #12
  %1387 = load i32, ptr %1386, align 4, !tbaa !5
  %1388 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1389 = call i32 @s2n_print_stacktrace(ptr noundef %1388) #11
  %1390 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1391 = trunc nuw i8 %1390 to i1
  br i1 %1391, label %1392, label %1396

1392:                                             ; preds = %1385
  %1393 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1394 = call i32 @fileno(ptr noundef %1393) #11
  %1395 = call i32 @isatty(i32 noundef %1394) #11
  %.not188 = icmp eq i32 %1395, 0
  br i1 %.not188, label %1396, label %1397

1396:                                             ; preds = %1392, %1385
  br label %1397

1397:                                             ; preds = %1392, %1396
  %.str.5.sink706 = phi ptr [ @.str.5, %1396 ], [ @.str.2, %1392 ]
  store i32 %1387, ptr %1386, align 4, !tbaa !5
  %1398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1399 = load i32, ptr @test_count, align 4, !tbaa !5
  %1400 = load i32, ptr %1182, align 4, !tbaa !5
  %1401 = call ptr @s2n_strerror(i32 noundef %1400, ptr noundef nonnull @.str.4) #11
  %1402 = load i32, ptr %1182, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror_debug(i32 noundef %1402, ptr noundef nonnull @.str.4) #11
  %1404 = load i32, ptr %1386, align 4, !tbaa !5
  %1405 = call ptr @strerror(i32 noundef %1404) #11
  %1406 = load i32, ptr %1386, align 4, !tbaa !5
  %1407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef nonnull %.str.5.sink706, i32 noundef %1399, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 212, ptr noundef %1401, ptr noundef %1403, ptr noundef %1405, i32 noundef %1406) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1408:                                             ; preds = %1379
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = add nsw i32 %1409, 1
  store i32 %1410, ptr @test_count, align 4, !tbaa !5
  %1411 = load i64, ptr %25, align 8, !tbaa !15
  %1412 = load i64, ptr %26, align 8, !tbaa !15
  %1413 = icmp eq i64 %1411, %1412
  br i1 %1413, label %1437, label %1414

1414:                                             ; preds = %1408
  %1415 = tail call ptr @__errno_location() #12
  %1416 = load i32, ptr %1415, align 4, !tbaa !5
  %1417 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1418 = call i32 @s2n_print_stacktrace(ptr noundef %1417) #11
  %1419 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1420 = trunc nuw i8 %1419 to i1
  br i1 %1420, label %1421, label %1425

1421:                                             ; preds = %1414
  %1422 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1423 = call i32 @fileno(ptr noundef %1422) #11
  %1424 = call i32 @isatty(i32 noundef %1423) #11
  %.not189 = icmp eq i32 %1424, 0
  br i1 %.not189, label %1425, label %1426

1425:                                             ; preds = %1421, %1414
  br label %1426

1426:                                             ; preds = %1421, %1425
  %.str.5.sink715 = phi ptr [ @.str.5, %1425 ], [ @.str.2, %1421 ]
  store i32 %1416, ptr %1415, align 4, !tbaa !5
  %1427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = load i32, ptr %1182, align 4, !tbaa !5
  %1430 = call ptr @s2n_strerror(i32 noundef %1429, ptr noundef nonnull @.str.4) #11
  %1431 = load i32, ptr %1182, align 4, !tbaa !5
  %1432 = call ptr @s2n_strerror_debug(i32 noundef %1431, ptr noundef nonnull @.str.4) #11
  %1433 = load i32, ptr %1415, align 4, !tbaa !5
  %1434 = call ptr @strerror(i32 noundef %1433) #11
  %1435 = load i32, ptr %1415, align 4, !tbaa !5
  %1436 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink715, i32 noundef %1428, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 213, ptr noundef %1430, ptr noundef %1432, ptr noundef %1434, i32 noundef %1435) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1437:                                             ; preds = %1408
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %26) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %25) #11
  %1438 = add nuw nsw i64 %.0162228, 1
  %exitcond231.not = icmp eq i64 %1438, 7
  br i1 %exitcond231.not, label %1193, label %1195, !llvm.loop !61

1439:                                             ; preds = %1589
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %27) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %24) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %23) #11
  %1440 = call i32 @s2n_io_stuffer_pair_free(ptr noundef nonnull %22) #11
  call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %22) #11
  %1441 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %21) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21) #11
  %1442 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %20) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20) #11
  %1443 = call i32 @s2n_cleanup() #11
  %1444 = icmp eq i32 %1443, -1
  br i1 %1444, label %1591, label %1614

1445:                                             ; preds = %1193, %1589
  %1446 = phi i32 [ %1410, %1193 ], [ %1562, %1589 ]
  %.0163229 = phi i64 [ 0, %1193 ], [ %1590, %1589 ]
  %1447 = getelementptr inbounds [7 x i32], ptr @__const.main.fragment_sizes, i64 0, i64 %.0163229
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %28) #11
  store i8 0, ptr %28, align 1
  %1449 = add nsw i32 %1446, 1
  store i32 %1449, ptr @test_count, align 4, !tbaa !5
  %1450 = call i64 @s2n_recv(ptr noundef %949, ptr noundef nonnull %28, i64 noundef 1, ptr noundef nonnull %7) #11
  %1451 = icmp eq i64 %1450, -1
  br i1 %1451, label %1452, label %1475

1452:                                             ; preds = %1445
  %1453 = tail call ptr @__errno_location() #12
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1456 = call i32 @s2n_print_stacktrace(ptr noundef %1455) #11
  %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 = %1452
  %1460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1461 = call i32 @fileno(ptr noundef %1460) #11
  %1462 = call i32 @isatty(i32 noundef %1461) #11
  %.not184 = icmp eq i32 %1462, 0
  br i1 %.not184, label %1463, label %1464

1463:                                             ; preds = %1459, %1452
  br label %1464

1464:                                             ; preds = %1459, %1463
  %.str.5.sink724 = phi ptr [ @.str.5, %1463 ], [ @.str.2, %1459 ]
  store i32 %1454, ptr %1453, 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 %1182, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror(i32 noundef %1467, ptr noundef nonnull @.str.4) #11
  %1469 = load i32, ptr %1182, align 4, !tbaa !5
  %1470 = call ptr @s2n_strerror_debug(i32 noundef %1469, ptr noundef nonnull @.str.4) #11
  %1471 = load i32, ptr %1453, align 4, !tbaa !5
  %1472 = call ptr @strerror(i32 noundef %1471) #11
  %1473 = load i32, ptr %1453, align 4, !tbaa !5
  %1474 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1465, ptr noundef nonnull %.str.5.sink724, i32 noundef %1466, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 222, ptr noundef %1468, ptr noundef %1470, ptr noundef %1472, i32 noundef %1473) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1475:                                             ; preds = %1445
  %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
  %lhsc = load i8, ptr %8, align 1
  %rhsc = load i8, ptr %28, align 1
  %1478 = icmp eq i8 %lhsc, %rhsc
  br i1 %1478, label %1502, label %1479

1479:                                             ; preds = %1475
  %1480 = tail call ptr @__errno_location() #12
  %1481 = load i32, ptr %1480, align 4, !tbaa !5
  %1482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1483 = call i32 @s2n_print_stacktrace(ptr noundef %1482) #11
  %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 = %1479
  %1487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1488 = call i32 @fileno(ptr noundef %1487) #11
  %1489 = call i32 @isatty(i32 noundef %1488) #11
  %.not180 = icmp eq i32 %1489, 0
  br i1 %.not180, label %1490, label %1491

1490:                                             ; preds = %1486, %1479
  br label %1491

1491:                                             ; preds = %1486, %1490
  %.str.5.sink733 = phi ptr [ @.str.5, %1490 ], [ @.str.2, %1486 ]
  store i32 %1481, ptr %1480, 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 %1182, align 4, !tbaa !5
  %1495 = call ptr @s2n_strerror(i32 noundef %1494, ptr noundef nonnull @.str.4) #11
  %1496 = load i32, ptr %1182, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef nonnull @.str.4) #11
  %1498 = load i32, ptr %1480, align 4, !tbaa !5
  %1499 = call ptr @strerror(i32 noundef %1498) #11
  %1500 = load i32, ptr %1480, align 4, !tbaa !5
  %1501 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1492, ptr noundef nonnull %.str.5.sink733, i32 noundef %1493, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 223, ptr noundef %1495, ptr noundef %1497, ptr noundef %1499, i32 noundef %1500) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1502:                                             ; preds = %1475
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %29) #11
  store i64 0, ptr %29, align 8, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %30) #11
  store i64 0, ptr %30, align 8, !tbaa !15
  %1503 = load ptr, ptr %1194, align 8, !tbaa !52
  %1504 = getelementptr inbounds i8, ptr %1503, i64 928
  %1505 = add nsw i32 %1476, 2
  store i32 %1505, ptr @test_count, align 4, !tbaa !5
  %1506 = call i32 @s2n_get_actual_record_count(ptr noundef nonnull %1504, ptr noundef nonnull %27, ptr noundef nonnull %29)
  %1507 = call zeroext i1 @s2n_result_is_ok(i32 %1506)
  br i1 %1507, label %1531, label %1508

1508:                                             ; preds = %1502
  %1509 = tail call ptr @__errno_location() #12
  %1510 = load i32, ptr %1509, align 4, !tbaa !5
  %1511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1512 = call i32 @s2n_print_stacktrace(ptr noundef %1511) #11
  %1513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1514 = trunc nuw i8 %1513 to i1
  br i1 %1514, label %1515, label %1519

1515:                                             ; preds = %1508
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = call i32 @fileno(ptr noundef %1516) #11
  %1518 = call i32 @isatty(i32 noundef %1517) #11
  %.not181 = icmp eq i32 %1518, 0
  br i1 %.not181, label %1519, label %1520

1519:                                             ; preds = %1515, %1508
  br label %1520

1520:                                             ; preds = %1515, %1519
  %.str.5.sink742 = phi ptr [ @.str.5, %1519 ], [ @.str.2, %1515 ]
  store i32 %1510, ptr %1509, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = load i32, ptr %1182, align 4, !tbaa !5
  %1524 = call ptr @s2n_strerror(i32 noundef %1523, ptr noundef nonnull @.str.4) #11
  %1525 = load i32, ptr %1182, align 4, !tbaa !5
  %1526 = call ptr @s2n_strerror_debug(i32 noundef %1525, ptr noundef nonnull @.str.4) #11
  %1527 = load i32, ptr %1509, align 4, !tbaa !5
  %1528 = call ptr @strerror(i32 noundef %1527) #11
  %1529 = load i32, ptr %1509, align 4, !tbaa !5
  %1530 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef nonnull %.str.5.sink742, i32 noundef %1522, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 228, ptr noundef %1524, ptr noundef %1526, ptr noundef %1528, i32 noundef %1529) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1531:                                             ; preds = %1502
  %1532 = load i32, ptr @test_count, align 4, !tbaa !5
  %1533 = add nsw i32 %1532, 1
  store i32 %1533, ptr @test_count, align 4, !tbaa !5
  %1534 = load i32, ptr %23, align 4, !tbaa !5
  %1535 = call i32 @s2n_get_expected_record_count(i32 noundef %1534, i32 noundef %1448, i8 noundef zeroext 3, ptr noundef nonnull %30)
  %1536 = call zeroext i1 @s2n_result_is_ok(i32 %1535)
  br i1 %1536, label %1560, label %1537

1537:                                             ; preds = %1531
  %1538 = tail call ptr @__errno_location() #12
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1541 = call i32 @s2n_print_stacktrace(ptr noundef %1540) #11
  %1542 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1543 = trunc nuw i8 %1542 to i1
  br i1 %1543, label %1544, label %1548

1544:                                             ; preds = %1537
  %1545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1546 = call i32 @fileno(ptr noundef %1545) #11
  %1547 = call i32 @isatty(i32 noundef %1546) #11
  %.not182 = icmp eq i32 %1547, 0
  br i1 %.not182, label %1548, label %1549

1548:                                             ; preds = %1544, %1537
  br label %1549

1549:                                             ; preds = %1544, %1548
  %.str.5.sink751 = phi ptr [ @.str.5, %1548 ], [ @.str.2, %1544 ]
  store i32 %1539, ptr %1538, align 4, !tbaa !5
  %1550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1551 = load i32, ptr @test_count, align 4, !tbaa !5
  %1552 = load i32, ptr %1182, align 4, !tbaa !5
  %1553 = call ptr @s2n_strerror(i32 noundef %1552, ptr noundef nonnull @.str.4) #11
  %1554 = load i32, ptr %1182, align 4, !tbaa !5
  %1555 = call ptr @s2n_strerror_debug(i32 noundef %1554, ptr noundef nonnull @.str.4) #11
  %1556 = load i32, ptr %1538, align 4, !tbaa !5
  %1557 = call ptr @strerror(i32 noundef %1556) #11
  %1558 = load i32, ptr %1538, align 4, !tbaa !5
  %1559 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1550, ptr noundef nonnull %.str.5.sink751, i32 noundef %1551, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %1553, ptr noundef %1555, ptr noundef %1557, i32 noundef %1558) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1560:                                             ; preds = %1531
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = add nsw i32 %1561, 1
  store i32 %1562, ptr @test_count, align 4, !tbaa !5
  %1563 = load i64, ptr %29, align 8, !tbaa !15
  %1564 = load i64, ptr %30, align 8, !tbaa !15
  %1565 = icmp eq i64 %1563, %1564
  br i1 %1565, label %1589, label %1566

1566:                                             ; preds = %1560
  %1567 = tail call ptr @__errno_location() #12
  %1568 = load i32, ptr %1567, align 4, !tbaa !5
  %1569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1570 = call i32 @s2n_print_stacktrace(ptr noundef %1569) #11
  %1571 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1572 = trunc nuw i8 %1571 to i1
  br i1 %1572, label %1573, label %1577

1573:                                             ; preds = %1566
  %1574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1575 = call i32 @fileno(ptr noundef %1574) #11
  %1576 = call i32 @isatty(i32 noundef %1575) #11
  %.not183 = icmp eq i32 %1576, 0
  br i1 %.not183, label %1577, label %1578

1577:                                             ; preds = %1573, %1566
  br label %1578

1578:                                             ; preds = %1573, %1577
  %.str.5.sink760 = phi ptr [ @.str.5, %1577 ], [ @.str.2, %1573 ]
  store i32 %1568, ptr %1567, align 4, !tbaa !5
  %1579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1580 = load i32, ptr @test_count, align 4, !tbaa !5
  %1581 = load i32, ptr %1182, align 4, !tbaa !5
  %1582 = call ptr @s2n_strerror(i32 noundef %1581, ptr noundef nonnull @.str.4) #11
  %1583 = load i32, ptr %1182, align 4, !tbaa !5
  %1584 = call ptr @s2n_strerror_debug(i32 noundef %1583, ptr noundef nonnull @.str.4) #11
  %1585 = load i32, ptr %1567, align 4, !tbaa !5
  %1586 = call ptr @strerror(i32 noundef %1585) #11
  %1587 = load i32, ptr %1567, align 4, !tbaa !5
  %1588 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1579, ptr noundef nonnull %.str.5.sink760, i32 noundef %1580, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %1582, ptr noundef %1584, ptr noundef %1586, i32 noundef %1587) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1589:                                             ; preds = %1560
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %30) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %29) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %28) #11
  %1590 = add nuw nsw i64 %.0163229, 1
  %exitcond232.not = icmp eq i64 %1590, 7
  br i1 %exitcond232.not, label %1439, label %1445, !llvm.loop !62

1591:                                             ; preds = %1439
  %1592 = tail call ptr @__errno_location() #12
  %1593 = load i32, ptr %1592, align 4, !tbaa !5
  %1594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1595 = call i32 @s2n_print_stacktrace(ptr noundef %1594) #11
  %1596 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1597 = trunc nuw i8 %1596 to i1
  br i1 %1597, label %1598, label %1602

1598:                                             ; preds = %1591
  %1599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1600 = call i32 @fileno(ptr noundef %1599) #11
  %1601 = call i32 @isatty(i32 noundef %1600) #11
  %.not179 = icmp eq i32 %1601, 0
  br i1 %.not179, label %1602, label %1603

1602:                                             ; preds = %1598, %1591
  br label %1603

1603:                                             ; preds = %1598, %1602
  %.str.5.sink769 = phi ptr [ @.str.5, %1602 ], [ @.str.2, %1598 ]
  store i32 %1593, ptr %1592, align 4, !tbaa !5
  %1604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1605 = load i32, ptr @test_count, align 4, !tbaa !5
  %1606 = load i32, ptr %1182, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror(i32 noundef %1606, ptr noundef nonnull @.str.4) #11
  %1608 = load i32, ptr %1182, align 4, !tbaa !5
  %1609 = call ptr @s2n_strerror_debug(i32 noundef %1608, ptr noundef nonnull @.str.4) #11
  %1610 = load i32, ptr %1592, align 4, !tbaa !5
  %1611 = call ptr @strerror(i32 noundef %1610) #11
  %1612 = load i32, ptr %1592, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1604, ptr noundef nonnull %.str.5.sink769, i32 noundef %1605, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %1607, ptr noundef %1609, ptr noundef %1611, i32 noundef %1612) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1614:                                             ; preds = %1439
  %1615 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #11
  %1616 = icmp eq i32 %1615, -1
  br i1 %1616, label %1617, label %1640

1617:                                             ; preds = %1614
  %1618 = tail call ptr @__errno_location() #12
  %1619 = load i32, ptr %1618, align 4, !tbaa !5
  %1620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1621 = call i32 @s2n_print_stacktrace(ptr noundef %1620) #11
  %1622 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1623 = trunc nuw i8 %1622 to i1
  br i1 %1623, label %1624, label %1628

1624:                                             ; preds = %1617
  %1625 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1626 = call i32 @fileno(ptr noundef %1625) #11
  %1627 = call i32 @isatty(i32 noundef %1626) #11
  %.not178 = icmp eq i32 %1627, 0
  br i1 %.not178, label %1628, label %1629

1628:                                             ; preds = %1624, %1617
  br label %1629

1629:                                             ; preds = %1624, %1628
  %.str.5.sink778 = phi ptr [ @.str.5, %1628 ], [ @.str.2, %1624 ]
  store i32 %1619, ptr %1618, align 4, !tbaa !5
  %1630 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1631 = load i32, ptr @test_count, align 4, !tbaa !5
  %1632 = load i32, ptr %1182, align 4, !tbaa !5
  %1633 = call ptr @s2n_strerror(i32 noundef %1632, ptr noundef nonnull @.str.4) #11
  %1634 = load i32, ptr %1182, align 4, !tbaa !5
  %1635 = call ptr @s2n_strerror_debug(i32 noundef %1634, ptr noundef nonnull @.str.4) #11
  %1636 = load i32, ptr %1618, align 4, !tbaa !5
  %1637 = call ptr @strerror(i32 noundef %1636) #11
  %1638 = load i32, ptr %1618, align 4, !tbaa !5
  %1639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1630, ptr noundef nonnull %.str.5.sink778, i32 noundef %1631, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %1633, ptr noundef %1635, ptr noundef %1637, i32 noundef %1638) #13
  call void @exit(i32 noundef 1) #14
  unreachable

1640:                                             ; preds = %1614
  %1641 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1642 = trunc nuw i8 %1641 to i1
  br i1 %1642, label %1643, label %1654

1643:                                             ; preds = %1640
  %1644 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1645 = call i32 @fileno(ptr noundef %1644) #11
  %1646 = call i32 @isatty(i32 noundef %1645) #11
  %.not175 = icmp eq i32 %1646, 0
  br i1 %.not175, label %1654, label %1647

1647:                                             ; preds = %1643
  %1648 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not177 = icmp eq i32 %1648, 0
  %1649 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not177, label %1652, label %1650

1650:                                             ; preds = %1647
  %1651 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef nonnull @.str.38, i32 noundef %1648) #11
  br label %1661

1652:                                             ; preds = %1647
  %1653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1649, ptr noundef nonnull @.str.39) #11
  br label %1661

1654:                                             ; preds = %1643, %1640
  %1655 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not176 = icmp eq i32 %1655, 0
  %1656 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not176, label %1659, label %1657

1657:                                             ; preds = %1654
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef nonnull @.str.40, i32 noundef %1655) #11
  br label %1661

1659:                                             ; preds = %1654
  %1660 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef nonnull @.str.41) #11
  br label %1661

1661:                                             ; preds = %1657, %1659, %1650, %1652
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %7) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #11
  call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %5) #11
  call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #11
  %1662 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %3) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #11
  ret i32 0
}

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

; Function Attrs: nofree nounwind
declare noundef i32 @fflush(ptr nocapture noundef) local_unnamed_addr #1

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) local_unnamed_addr #2

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

; Function Attrs: mustprogress nofree nosync nounwind willreturn memory(none)
declare ptr @__errno_location() local_unnamed_addr #4

declare i32 @s2n_print_stacktrace(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: nofree nounwind
declare noundef i32 @fileno(ptr nocapture noundef) local_unnamed_addr #1

declare ptr @s2n_strerror(i32 noundef, ptr noundef) local_unnamed_addr #2

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

declare ptr @s2n_strerror_debug(i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_enable_atexit() local_unnamed_addr #2

declare i32 @s2n_init() local_unnamed_addr #2

declare ptr @s2n_config_new() local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_set_cipher_preferences(ptr noundef, ptr noundef) local_unnamed_addr #2

; 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) #8

declare i32 @s2n_config_set_session_tickets_onoff(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

declare i32 @s2n_config_add_ticket_crypto_key(ptr noundef, ptr noundef, i32 noundef, ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #2

declare ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_config(ptr noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_set_all_protocol_versions(ptr noundef, i8 noundef zeroext) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_ok(i32) local_unnamed_addr #9

declare i32 @s2n_connection_set_secrets(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_io_stuffer_pair_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_io_stuffer_pair_init(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connections_set_io_stuffer_pair(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_nst_message_size(ptr noundef, ptr noundef) local_unnamed_addr #0

declare i64 @s2n_send(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_actual_record_count(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #0

; Function Attrs: nounwind uwtable
declare hidden i32 @s2n_get_expected_record_count(i32 noundef, i32 noundef, i8 noundef zeroext, ptr noundef) local_unnamed_addr #0

declare i64 @s2n_recv(ptr noundef, ptr noundef, i64 noundef, ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_resize(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

attributes #0 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { nofree nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { mustprogress nofree nosync nounwind willreturn memory(none) "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #5 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #9 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #11 = { nounwind }
attributes #12 = { nounwind willreturn memory(none) }
attributes #13 = { cold nounwind }
attributes #14 = { 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, !16, i64 0}
!16 = !{!"long", !7, i64 0}
!17 = !{!18, !10, i64 80}
!18 = !{!"s2n_config", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !19, i64 24, !20, i64 56, !10, i64 80, !10, i64 88, !10, i64 96, !10, i64 104, !10, i64 112, !10, i64 120, !6, i64 128, !6, i64 132, !10, i64 136, !16, i64 144, !10, i64 152, !16, i64 160, !16, i64 168, !10, i64 176, !10, i64 184, !10, i64 192, !10, i64 200, !10, i64 208, !10, i64 216, !6, i64 224, !7, i64 228, !6, i64 232, !6, i64 236, !10, i64 240, !10, i64 248, !10, i64 256, !10, i64 264, !10, i64 272, !10, i64 280, !10, i64 288, !7, i64 296, !7, i64 297, !21, i64 304, !22, i64 320, !10, i64 328, !10, i64 336, !10, i64 344, !10, i64 352, !10, i64 360, !10, i64 368, !10, i64 376, !10, i64 384, !6, i64 392, !6, i64 396, !6, i64 400, !10, i64 408, !6, i64 416, !6, i64 420, !10, i64 424, !10, i64 432, !6, i64 440, !20, i64 448}
!19 = !{!"certs_by_type", !7, i64 0}
!20 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!21 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}
!22 = !{!"short", !7, i64 0}
!23 = !{!18, !10, i64 104}
!24 = !{!18, !7, i64 297}
!25 = !{!26, !22, i64 2208}
!26 = !{!"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, !27, i64 160, !16, i64 168, !16, 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, !28, i64 240, !10, i64 632, !10, i64 640, !29, i64 648, !34, i64 1144, !37, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !39, i64 1776, !39, i64 1816, !39, i64 1856, !39, i64 1896, !6, i64 1936, !16, i64 1944, !7, i64 1952, !39, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !40, i64 2004, !40, i64 2008, !41, i64 2016, !22, i64 2208, !6, i64 2212, !22, i64 2216, !16, i64 2224, !7, i64 2232, !16, i64 2240, !16, i64 2248, !16, i64 2256, !40, i64 2264, !40, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !20, i64 2792, !6, i64 2816, !20, i64 2824, !20, i64 2848, !20, i64 2872, !43, i64 2896, !45, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !20, i64 3784, !6, i64 3808, !47, i64 3816, !7, i64 3848, !39, i64 3992, !20, i64 4032, !20, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !22, i64 4084, !22, i64 4086, !6, i64 4088, !6, i64 4092, !20, i64 4096, !6, i64 4120, !48, i64 4128, !40, i64 4176, !7, i64 4180, !7, i64 4181}
!27 = !{!"s2n_timer", !16, i64 0}
!28 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!29 = !{!"s2n_kex_parameters", !30, i64 0, !31, i64 8, !7, i64 24, !31, i64 56, !32, i64 72, !32, i64 184, !7, i64 296, !33, i64 360, !20, i64 448, !20, i64 472}
!30 = !{!"s2n_dh_params", !10, i64 0}
!31 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!32 = !{!"s2n_kem_group_params", !10, i64 0, !33, i64 8, !31, i64 96}
!33 = !{!"s2n_kem_params", !10, i64 0, !20, i64 8, !20, i64 32, !20, i64 56, !12, i64 80}
!34 = !{!"s2n_handshake_parameters", !35, i64 0, !35, i64 48, !20, i64 96, !6, i64 120, !36, 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}
!35 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!36 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!37 = !{!"s2n_psk_parameters", !6, i64 0, !38, i64 8, !22, i64 40, !22, i64 42, !10, i64 48, !6, i64 56}
!38 = !{!"s2n_array", !20, i64 0, !6, i64 24, !6, i64 28}
!39 = !{!"s2n_stuffer", !20, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!40 = !{!"", !6, i64 0}
!41 = !{!"s2n_handshake", !39, 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, !42, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!42 = !{!"s2n_offered_early_data", !10, i64 0}
!43 = !{!"s2n_client_hello", !20, i64 0, !44, i64 24, !20, i64 728, !20, i64 752, !20, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!44 = !{!"", !7, i64 0, !20, i64 672, !22, i64 696}
!45 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !22, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !46, i64 48, !12, i64 52}
!46 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!47 = !{!"s2n_ticket_fields", !20, i64 0, !6, i64 24}
!48 = !{!"s2n_post_handshake", !39, i64 0, !7, i64 40}
!49 = !{!26, !22, i64 4086}
!50 = !{!26, !22, i64 4084}
!51 = !{!26, !10, i64 2016}
!52 = !{!26, !10, i64 640}
!53 = distinct !{!53, !54}
!54 = !{!"llvm.loop.mustprogress"}
!55 = distinct !{!55, !54}
!56 = !{!39, !6, i64 28}
!57 = !{!39, !6, i64 24}
!58 = !{!26, !6, i64 1924}
!59 = !{!26, !6, i64 1920}
!60 = distinct !{!60, !54}
!61 = distinct !{!61, !54}
!62 = distinct !{!62, !54}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,PostOrderFunctionAttrsPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass