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

@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 [67 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [118 x i8], align 1
@s2n_cert_type_preference_list = external hidden global [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [140 x i8], align 1
@s2n_cert_type_preference_list_legacy_dss = external hidden global [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [71 x i8], align 1
@__const.main.ca_data = external hidden unnamed_addr constant [17 x i8], align 16
@.str.33 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.43 = 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 ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca i8, align 1
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i32, align 4
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i8, align 1
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca i32, align 4
  %36 = alloca i64, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca ptr, align 8
  %41 = alloca i32, align 4
  %42 = alloca ptr, align 8
  %43 = alloca i32, align 4
  %44 = alloca i32, align 4
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i8, align 1
  %48 = alloca i32, align 4
  %49 = alloca i32, align 4
  %50 = alloca i32, align 4
  %51 = alloca i16, align 2
  %52 = alloca i32, align 4
  %53 = alloca i32, align 4
  %54 = alloca i32, align 4
  %55 = alloca i16, align 2
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca %struct.s2n_result, align 4
  %60 = alloca %struct.s2n_result, align 4
  %61 = alloca ptr, align 8
  %62 = alloca i32, align 4
  %63 = alloca ptr, align 8
  %64 = alloca i32, align 4
  %65 = alloca i32, align 4
  %66 = alloca [17 x i8], align 16
  %67 = alloca i32, align 4
  %68 = alloca i64, align 8
  %69 = alloca i32, align 4
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca i8, align 1
  %73 = alloca i32, align 4
  %74 = alloca i32, align 4
  %75 = alloca i16, align 2
  %76 = alloca i32, align 4
  %77 = alloca i32, align 4
  %78 = alloca ptr, align 8
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca i32, align 4
  %82 = alloca %struct.s2n_result, align 4
  %83 = alloca %struct.s2n_result, align 4
  %84 = alloca i32, align 4
  %85 = alloca i32, align 4
  store i32 0, ptr %3, align 4
  store i32 %0, ptr %4, align 4, !tbaa !5
  store ptr %1, ptr %5, align 8, !tbaa !9
  br label %86

86:                                               ; preds = %2
  br label %87

87:                                               ; preds = %86
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %88 = load ptr, ptr @stdout, align 8, !tbaa !9
  %89 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %88, ptr noundef @.str, ptr noundef @.str.1) #9
  %90 = load ptr, ptr @stdout, align 8, !tbaa !9
  %91 = call i32 @fflush(ptr noundef %90)
  br label %92

92:                                               ; preds = %87
  %93 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %94 = icmp eq i32 %93, -1
  br i1 %94, label %95, label %146

95:                                               ; preds = %92
  br label %96

96:                                               ; preds = %95
  br label %97

97:                                               ; preds = %96
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  %98 = call ptr @__errno_location() #10
  %99 = load i32, ptr %98, align 4, !tbaa !5
  store i32 %99, ptr %6, align 4, !tbaa !5
  %100 = load ptr, ptr @stderr, align 8, !tbaa !9
  %101 = call i32 @s2n_print_stacktrace(ptr noundef %100)
  %102 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %103 = trunc i8 %102 to i1
  br i1 %103, label %104, label %126

104:                                              ; preds = %97
  %105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %106 = call i32 @fileno(ptr noundef %105) #9
  %107 = call i32 @isatty(i32 noundef %106) #9
  %108 = icmp ne i32 %107, 0
  br i1 %108, label %109, label %126

109:                                              ; preds = %104
  %110 = load i32, ptr %6, align 4, !tbaa !5
  %111 = call ptr @__errno_location() #10
  store i32 %110, ptr %111, align 4, !tbaa !5
  %112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %113 = load i32, ptr @test_count, align 4, !tbaa !5
  %114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %115 = load i32, ptr %114, align 4, !tbaa !5
  %116 = call ptr @s2n_strerror(i32 noundef %115, ptr noundef @.str.4)
  %117 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %118 = load i32, ptr %117, align 4, !tbaa !5
  %119 = call ptr @s2n_strerror_debug(i32 noundef %118, ptr noundef @.str.4)
  %120 = call ptr @__errno_location() #10
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = call ptr @strerror(i32 noundef %121) #9
  %123 = call ptr @__errno_location() #10
  %124 = load i32, ptr %123, align 4, !tbaa !5
  %125 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %112, ptr noundef @.str.2, i32 noundef %113, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 51, ptr noundef %116, ptr noundef %119, ptr noundef %122, i32 noundef %124) #9
  br label %143

126:                                              ; preds = %104, %97
  %127 = load i32, ptr %6, align 4, !tbaa !5
  %128 = call ptr @__errno_location() #10
  store i32 %127, ptr %128, align 4, !tbaa !5
  %129 = load ptr, ptr @stderr, align 8, !tbaa !9
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %132 = load i32, ptr %131, align 4, !tbaa !5
  %133 = call ptr @s2n_strerror(i32 noundef %132, ptr noundef @.str.4)
  %134 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %135 = load i32, ptr %134, align 4, !tbaa !5
  %136 = call ptr @s2n_strerror_debug(i32 noundef %135, ptr noundef @.str.4)
  %137 = call ptr @__errno_location() #10
  %138 = load i32, ptr %137, align 4, !tbaa !5
  %139 = call ptr @strerror(i32 noundef %138) #9
  %140 = call ptr @__errno_location() #10
  %141 = load i32, ptr %140, align 4, !tbaa !5
  %142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %129, ptr noundef @.str.5, i32 noundef %130, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 51, ptr noundef %133, ptr noundef %136, ptr noundef %139, i32 noundef %141) #9
  br label %143

143:                                              ; preds = %126, %109
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %144

144:                                              ; preds = %143
  call void @exit(i32 noundef 1) #11
  unreachable

145:                                              ; No predecessors!
  br label %146

146:                                              ; preds = %145, %92
  br label %147

147:                                              ; preds = %146
  br label %148

148:                                              ; preds = %147
  %149 = load i32, ptr @test_count, align 4, !tbaa !5
  %150 = add nsw i32 %149, 1
  store i32 %150, ptr @test_count, align 4, !tbaa !5
  %151 = call i32 @s2n_enable_atexit()
  %152 = icmp eq i32 %151, -1
  br i1 %152, label %153, label %204

153:                                              ; preds = %148
  br label %154

154:                                              ; preds = %153
  br label %155

155:                                              ; preds = %154
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  %156 = call ptr @__errno_location() #10
  %157 = load i32, ptr %156, align 4, !tbaa !5
  store i32 %157, ptr %7, align 4, !tbaa !5
  %158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %159 = call i32 @s2n_print_stacktrace(ptr noundef %158)
  %160 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %161 = trunc i8 %160 to i1
  br i1 %161, label %162, label %184

162:                                              ; preds = %155
  %163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %164 = call i32 @fileno(ptr noundef %163) #9
  %165 = call i32 @isatty(i32 noundef %164) #9
  %166 = icmp ne i32 %165, 0
  br i1 %166, label %167, label %184

167:                                              ; preds = %162
  %168 = load i32, ptr %7, align 4, !tbaa !5
  %169 = call ptr @__errno_location() #10
  store i32 %168, ptr %169, align 4, !tbaa !5
  %170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %171 = load i32, ptr @test_count, align 4, !tbaa !5
  %172 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %173 = load i32, ptr %172, align 4, !tbaa !5
  %174 = call ptr @s2n_strerror(i32 noundef %173, ptr noundef @.str.4)
  %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_debug(i32 noundef %176, ptr noundef @.str.4)
  %178 = call ptr @__errno_location() #10
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = call ptr @strerror(i32 noundef %179) #9
  %181 = call ptr @__errno_location() #10
  %182 = load i32, ptr %181, align 4, !tbaa !5
  %183 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %170, ptr noundef @.str.2, i32 noundef %171, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 51, ptr noundef %174, ptr noundef %177, ptr noundef %180, i32 noundef %182) #9
  br label %201

184:                                              ; preds = %162, %155
  %185 = load i32, ptr %7, align 4, !tbaa !5
  %186 = call ptr @__errno_location() #10
  store i32 %185, ptr %186, align 4, !tbaa !5
  %187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %188 = load i32, ptr @test_count, align 4, !tbaa !5
  %189 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %190 = load i32, ptr %189, align 4, !tbaa !5
  %191 = call ptr @s2n_strerror(i32 noundef %190, ptr noundef @.str.4)
  %192 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %193 = load i32, ptr %192, align 4, !tbaa !5
  %194 = call ptr @s2n_strerror_debug(i32 noundef %193, ptr noundef @.str.4)
  %195 = call ptr @__errno_location() #10
  %196 = load i32, ptr %195, align 4, !tbaa !5
  %197 = call ptr @strerror(i32 noundef %196) #9
  %198 = call ptr @__errno_location() #10
  %199 = load i32, ptr %198, align 4, !tbaa !5
  %200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %187, ptr noundef @.str.5, i32 noundef %188, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 51, ptr noundef %191, ptr noundef %194, ptr noundef %197, i32 noundef %199) #9
  br label %201

201:                                              ; preds = %184, %167
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #9
  br label %202

202:                                              ; preds = %201
  call void @exit(i32 noundef 1) #11
  unreachable

203:                                              ; No predecessors!
  br label %204

204:                                              ; preds = %203, %148
  br label %205

205:                                              ; preds = %204
  br label %206

206:                                              ; preds = %205
  br label %207

207:                                              ; preds = %206
  %208 = call i32 @s2n_init()
  %209 = icmp eq i32 %208, -1
  br i1 %209, label %210, label %261

210:                                              ; preds = %207
  br label %211

211:                                              ; preds = %210
  br label %212

212:                                              ; preds = %211
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  %213 = call ptr @__errno_location() #10
  %214 = load i32, ptr %213, align 4, !tbaa !5
  store i32 %214, ptr %8, align 4, !tbaa !5
  %215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %216 = call i32 @s2n_print_stacktrace(ptr noundef %215)
  %217 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %218 = trunc i8 %217 to i1
  br i1 %218, label %219, label %241

219:                                              ; preds = %212
  %220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %221 = call i32 @fileno(ptr noundef %220) #9
  %222 = call i32 @isatty(i32 noundef %221) #9
  %223 = icmp ne i32 %222, 0
  br i1 %223, label %224, label %241

224:                                              ; preds = %219
  %225 = load i32, ptr %8, align 4, !tbaa !5
  %226 = call ptr @__errno_location() #10
  store i32 %225, ptr %226, align 4, !tbaa !5
  %227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %228 = load i32, ptr @test_count, align 4, !tbaa !5
  %229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %230 = load i32, ptr %229, align 4, !tbaa !5
  %231 = call ptr @s2n_strerror(i32 noundef %230, ptr noundef @.str.4)
  %232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %233 = load i32, ptr %232, align 4, !tbaa !5
  %234 = call ptr @s2n_strerror_debug(i32 noundef %233, ptr noundef @.str.4)
  %235 = call ptr @__errno_location() #10
  %236 = load i32, ptr %235, align 4, !tbaa !5
  %237 = call ptr @strerror(i32 noundef %236) #9
  %238 = call ptr @__errno_location() #10
  %239 = load i32, ptr %238, align 4, !tbaa !5
  %240 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %227, ptr noundef @.str.2, i32 noundef %228, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 51, ptr noundef %231, ptr noundef %234, ptr noundef %237, i32 noundef %239) #9
  br label %258

241:                                              ; preds = %219, %212
  %242 = load i32, ptr %8, align 4, !tbaa !5
  %243 = call ptr @__errno_location() #10
  store i32 %242, ptr %243, align 4, !tbaa !5
  %244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %245 = load i32, ptr @test_count, align 4, !tbaa !5
  %246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %247 = load i32, ptr %246, align 4, !tbaa !5
  %248 = call ptr @s2n_strerror(i32 noundef %247, ptr noundef @.str.4)
  %249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %250 = load i32, ptr %249, align 4, !tbaa !5
  %251 = call ptr @s2n_strerror_debug(i32 noundef %250, ptr noundef @.str.4)
  %252 = call ptr @__errno_location() #10
  %253 = load i32, ptr %252, align 4, !tbaa !5
  %254 = call ptr @strerror(i32 noundef %253) #9
  %255 = call ptr @__errno_location() #10
  %256 = load i32, ptr %255, align 4, !tbaa !5
  %257 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %244, ptr noundef @.str.5, i32 noundef %245, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 51, ptr noundef %248, ptr noundef %251, ptr noundef %254, i32 noundef %256) #9
  br label %258

258:                                              ; preds = %241, %224
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #9
  br label %259

259:                                              ; preds = %258
  call void @exit(i32 noundef 1) #11
  unreachable

260:                                              ; No predecessors!
  br label %261

261:                                              ; preds = %260, %207
  br label %262

262:                                              ; preds = %261
  br label %263

263:                                              ; preds = %262
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #9
  store ptr null, ptr %9, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  store ptr null, ptr %10, align 8, !tbaa !9
  br label %264

264:                                              ; preds = %263
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = add nsw i32 %265, 1
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = call ptr @s2n_config_new()
  store ptr %267, ptr %10, align 8, !tbaa !9
  %268 = icmp eq ptr %267, null
  br i1 %268, label %269, label %322

269:                                              ; preds = %264
  br label %270

270:                                              ; preds = %269
  br label %271

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

278:                                              ; preds = %271
  %279 = load ptr, ptr @stderr, align 8, !tbaa !9
  %280 = call i32 @fileno(ptr noundef %279) #9
  %281 = call i32 @isatty(i32 noundef %280) #9
  %282 = icmp ne i32 %281, 0
  br i1 %282, label %283, label %300

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

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

317:                                              ; preds = %300, %283
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %318

318:                                              ; preds = %317
  br label %319

319:                                              ; preds = %318
  call void @exit(i32 noundef 1) #11
  unreachable

320:                                              ; No predecessors!
  br label %321

321:                                              ; preds = %320
  br label %322

322:                                              ; preds = %321, %264
  br label %323

323:                                              ; preds = %322
  br label %324

324:                                              ; preds = %323
  br label %325

325:                                              ; preds = %324
  %326 = load i32, ptr @test_count, align 4, !tbaa !5
  %327 = add nsw i32 %326, 1
  store i32 %327, ptr @test_count, align 4, !tbaa !5
  %328 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %328, ptr %9, align 8, !tbaa !9
  %329 = icmp eq ptr %328, null
  br i1 %329, label %330, label %383

330:                                              ; preds = %325
  br label %331

331:                                              ; preds = %330
  br label %332

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

339:                                              ; preds = %332
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = call i32 @fileno(ptr noundef %340) #9
  %342 = call i32 @isatty(i32 noundef %341) #9
  %343 = icmp ne i32 %342, 0
  br i1 %343, label %344, label %361

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

361:                                              ; preds = %339, %332
  %362 = load i32, ptr %12, align 4, !tbaa !5
  %363 = call ptr @__errno_location() #10
  store i32 %362, ptr %363, align 4, !tbaa !5
  %364 = load ptr, ptr @stderr, align 8, !tbaa !9
  %365 = load i32, ptr @test_count, align 4, !tbaa !5
  %366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %367 = load i32, ptr %366, align 4, !tbaa !5
  %368 = call ptr @s2n_strerror(i32 noundef %367, ptr noundef @.str.4)
  %369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %370 = load i32, ptr %369, align 4, !tbaa !5
  %371 = call ptr @s2n_strerror_debug(i32 noundef %370, ptr noundef @.str.4)
  %372 = call ptr @__errno_location() #10
  %373 = load i32, ptr %372, align 4, !tbaa !5
  %374 = call ptr @strerror(i32 noundef %373) #9
  %375 = call ptr @__errno_location() #10
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %364, ptr noundef @.str.5, i32 noundef %365, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 60, ptr noundef %368, ptr noundef %371, ptr noundef %374, i32 noundef %376) #9
  br label %378

378:                                              ; preds = %361, %344
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  br label %379

379:                                              ; preds = %378
  br label %380

380:                                              ; preds = %379
  call void @exit(i32 noundef 1) #11
  unreachable

381:                                              ; No predecessors!
  br label %382

382:                                              ; preds = %381
  br label %383

383:                                              ; preds = %382, %325
  br label %384

384:                                              ; preds = %383
  br label %385

385:                                              ; preds = %384
  br label %386

386:                                              ; preds = %385
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = add nsw i32 %387, 1
  store i32 %388, ptr @test_count, align 4, !tbaa !5
  %389 = load ptr, ptr %9, align 8, !tbaa !9
  %390 = load ptr, ptr %10, align 8, !tbaa !9
  %391 = call i32 @s2n_connection_set_config(ptr noundef %389, ptr noundef %390)
  %392 = icmp eq i32 %391, -1
  br i1 %392, label %393, label %446

393:                                              ; preds = %386
  br label %394

394:                                              ; preds = %393
  br label %395

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

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

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

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

441:                                              ; preds = %424, %407
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %442

442:                                              ; preds = %441
  br label %443

443:                                              ; preds = %442
  call void @exit(i32 noundef 1) #11
  unreachable

444:                                              ; No predecessors!
  br label %445

445:                                              ; preds = %444
  br label %446

446:                                              ; preds = %445, %386
  br label %447

447:                                              ; preds = %446
  br label %448

448:                                              ; preds = %447
  br label %449

449:                                              ; preds = %448
  %450 = load i32, ptr @test_count, align 4, !tbaa !5
  %451 = add nsw i32 %450, 1
  store i32 %451, ptr @test_count, align 4, !tbaa !5
  %452 = load ptr, ptr %9, align 8, !tbaa !9
  %453 = call i32 @s2n_cert_req_send(ptr noundef %452)
  %454 = icmp eq i32 %453, -1
  br i1 %454, label %455, label %508

455:                                              ; preds = %449
  br label %456

456:                                              ; preds = %455
  br label %457

457:                                              ; preds = %456
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  %458 = call ptr @__errno_location() #10
  %459 = load i32, ptr %458, align 4, !tbaa !5
  store i32 %459, ptr %14, align 4, !tbaa !5
  %460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %461 = call i32 @s2n_print_stacktrace(ptr noundef %460)
  %462 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %463 = trunc i8 %462 to i1
  br i1 %463, label %464, label %486

464:                                              ; preds = %457
  %465 = load ptr, ptr @stderr, align 8, !tbaa !9
  %466 = call i32 @fileno(ptr noundef %465) #9
  %467 = call i32 @isatty(i32 noundef %466) #9
  %468 = icmp ne i32 %467, 0
  br i1 %468, label %469, label %486

469:                                              ; preds = %464
  %470 = load i32, ptr %14, align 4, !tbaa !5
  %471 = call ptr @__errno_location() #10
  store i32 %470, ptr %471, align 4, !tbaa !5
  %472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %473 = load i32, ptr @test_count, align 4, !tbaa !5
  %474 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %475 = load i32, ptr %474, align 4, !tbaa !5
  %476 = call ptr @s2n_strerror(i32 noundef %475, ptr noundef @.str.4)
  %477 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %478 = load i32, ptr %477, align 4, !tbaa !5
  %479 = call ptr @s2n_strerror_debug(i32 noundef %478, ptr noundef @.str.4)
  %480 = call ptr @__errno_location() #10
  %481 = load i32, ptr %480, align 4, !tbaa !5
  %482 = call ptr @strerror(i32 noundef %481) #9
  %483 = call ptr @__errno_location() #10
  %484 = load i32, ptr %483, align 4, !tbaa !5
  %485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %472, ptr noundef @.str.2, i32 noundef %473, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 63, ptr noundef %476, ptr noundef %479, ptr noundef %482, i32 noundef %484) #9
  br label %503

486:                                              ; preds = %464, %457
  %487 = load i32, ptr %14, align 4, !tbaa !5
  %488 = call ptr @__errno_location() #10
  store i32 %487, ptr %488, align 4, !tbaa !5
  %489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %490 = load i32, ptr @test_count, align 4, !tbaa !5
  %491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %492 = load i32, ptr %491, align 4, !tbaa !5
  %493 = call ptr @s2n_strerror(i32 noundef %492, ptr noundef @.str.4)
  %494 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %495 = load i32, ptr %494, align 4, !tbaa !5
  %496 = call ptr @s2n_strerror_debug(i32 noundef %495, ptr noundef @.str.4)
  %497 = call ptr @__errno_location() #10
  %498 = load i32, ptr %497, align 4, !tbaa !5
  %499 = call ptr @strerror(i32 noundef %498) #9
  %500 = call ptr @__errno_location() #10
  %501 = load i32, ptr %500, align 4, !tbaa !5
  %502 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %489, ptr noundef @.str.5, i32 noundef %490, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 63, ptr noundef %493, ptr noundef %496, ptr noundef %499, i32 noundef %501) #9
  br label %503

503:                                              ; preds = %486, %469
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  call void @exit(i32 noundef 1) #11
  unreachable

506:                                              ; No predecessors!
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507, %449
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  %511 = load ptr, ptr %9, align 8, !tbaa !9
  %512 = getelementptr inbounds %struct.s2n_connection, ptr %511, i32 0, i32 52
  %513 = getelementptr inbounds %struct.s2n_handshake, ptr %512, i32 0, i32 0
  store ptr %513, ptr %15, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %16) #9
  store i8 0, ptr %16, align 1, !tbaa !15
  br label %514

514:                                              ; preds = %510
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = add nsw i32 %515, 1
  store i32 %516, ptr @test_count, align 4, !tbaa !5
  %517 = load ptr, ptr %15, align 8, !tbaa !9
  %518 = call i32 @s2n_stuffer_read_uint8(ptr noundef %517, ptr noundef %16)
  %519 = icmp eq i32 %518, -1
  br i1 %519, label %520, label %573

520:                                              ; preds = %514
  br label %521

521:                                              ; preds = %520
  br label %522

522:                                              ; preds = %521
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #9
  %523 = call ptr @__errno_location() #10
  %524 = load i32, ptr %523, align 4, !tbaa !5
  store i32 %524, ptr %17, align 4, !tbaa !5
  %525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %526 = call i32 @s2n_print_stacktrace(ptr noundef %525)
  %527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %528 = trunc i8 %527 to i1
  br i1 %528, label %529, label %551

529:                                              ; preds = %522
  %530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %531 = call i32 @fileno(ptr noundef %530) #9
  %532 = call i32 @isatty(i32 noundef %531) #9
  %533 = icmp ne i32 %532, 0
  br i1 %533, label %534, label %551

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

551:                                              ; preds = %529, %522
  %552 = load i32, ptr %17, align 4, !tbaa !5
  %553 = call ptr @__errno_location() #10
  store i32 %552, ptr %553, align 4, !tbaa !5
  %554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %555 = load i32, ptr @test_count, align 4, !tbaa !5
  %556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %557 = load i32, ptr %556, align 4, !tbaa !5
  %558 = call ptr @s2n_strerror(i32 noundef %557, ptr noundef @.str.4)
  %559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %560 = load i32, ptr %559, align 4, !tbaa !5
  %561 = call ptr @s2n_strerror_debug(i32 noundef %560, ptr noundef @.str.4)
  %562 = call ptr @__errno_location() #10
  %563 = load i32, ptr %562, align 4, !tbaa !5
  %564 = call ptr @strerror(i32 noundef %563) #9
  %565 = call ptr @__errno_location() #10
  %566 = load i32, ptr %565, align 4, !tbaa !5
  %567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %554, ptr noundef @.str.5, i32 noundef %555, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 67, ptr noundef %558, ptr noundef %561, ptr noundef %564, i32 noundef %566) #9
  br label %568

568:                                              ; preds = %551, %534
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #9
  br label %569

569:                                              ; preds = %568
  br label %570

570:                                              ; preds = %569
  call void @exit(i32 noundef 1) #11
  unreachable

571:                                              ; No predecessors!
  br label %572

572:                                              ; preds = %571
  br label %573

573:                                              ; preds = %572, %514
  br label %574

574:                                              ; preds = %573
  br label %575

575:                                              ; preds = %574
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %576 = load ptr, ptr %15, align 8, !tbaa !9
  %577 = load i8, ptr %16, align 1, !tbaa !15
  %578 = zext i8 %577 to i32
  %579 = call ptr @s2n_stuffer_raw_read(ptr noundef %576, i32 noundef %578)
  store ptr %579, ptr %18, align 8, !tbaa !9
  br label %580

580:                                              ; preds = %575
  %581 = load i32, ptr @test_count, align 4, !tbaa !5
  %582 = add nsw i32 %581, 1
  store i32 %582, ptr @test_count, align 4, !tbaa !5
  %583 = load i8, ptr %16, align 1, !tbaa !15
  %584 = zext i8 %583 to i64
  %585 = icmp eq i64 %584, 2
  br i1 %585, label %639, label %586

586:                                              ; preds = %580
  br label %587

587:                                              ; preds = %586
  br label %588

588:                                              ; preds = %587
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  %589 = call ptr @__errno_location() #10
  %590 = load i32, ptr %589, align 4, !tbaa !5
  store i32 %590, ptr %19, align 4, !tbaa !5
  %591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %592 = call i32 @s2n_print_stacktrace(ptr noundef %591)
  %593 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %594 = trunc i8 %593 to i1
  br i1 %594, label %595, label %617

595:                                              ; preds = %588
  %596 = load ptr, ptr @stderr, align 8, !tbaa !9
  %597 = call i32 @fileno(ptr noundef %596) #9
  %598 = call i32 @isatty(i32 noundef %597) #9
  %599 = icmp ne i32 %598, 0
  br i1 %599, label %600, label %617

600:                                              ; preds = %595
  %601 = load i32, ptr %19, align 4, !tbaa !5
  %602 = call ptr @__errno_location() #10
  store i32 %601, ptr %602, align 4, !tbaa !5
  %603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %604 = load i32, ptr @test_count, align 4, !tbaa !5
  %605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %606 = load i32, ptr %605, align 4, !tbaa !5
  %607 = call ptr @s2n_strerror(i32 noundef %606, ptr noundef @.str.4)
  %608 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %609 = load i32, ptr %608, align 4, !tbaa !5
  %610 = call ptr @s2n_strerror_debug(i32 noundef %609, ptr noundef @.str.4)
  %611 = call ptr @__errno_location() #10
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @strerror(i32 noundef %612) #9
  %614 = call ptr @__errno_location() #10
  %615 = load i32, ptr %614, align 4, !tbaa !5
  %616 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %603, ptr noundef @.str.2, i32 noundef %604, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 71, ptr noundef %607, ptr noundef %610, ptr noundef %613, i32 noundef %615) #9
  br label %634

617:                                              ; preds = %595, %588
  %618 = load i32, ptr %19, align 4, !tbaa !5
  %619 = call ptr @__errno_location() #10
  store i32 %618, ptr %619, align 4, !tbaa !5
  %620 = load ptr, ptr @stderr, align 8, !tbaa !9
  %621 = load i32, ptr @test_count, align 4, !tbaa !5
  %622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %623 = load i32, ptr %622, align 4, !tbaa !5
  %624 = call ptr @s2n_strerror(i32 noundef %623, ptr noundef @.str.4)
  %625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %626 = load i32, ptr %625, align 4, !tbaa !5
  %627 = call ptr @s2n_strerror_debug(i32 noundef %626, ptr noundef @.str.4)
  %628 = call ptr @__errno_location() #10
  %629 = load i32, ptr %628, align 4, !tbaa !5
  %630 = call ptr @strerror(i32 noundef %629) #9
  %631 = call ptr @__errno_location() #10
  %632 = load i32, ptr %631, align 4, !tbaa !5
  %633 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %620, ptr noundef @.str.5, i32 noundef %621, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 71, ptr noundef %624, ptr noundef %627, ptr noundef %630, i32 noundef %632) #9
  br label %634

634:                                              ; preds = %617, %600
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %635

635:                                              ; preds = %634
  br label %636

636:                                              ; preds = %635
  call void @exit(i32 noundef 1) #11
  unreachable

637:                                              ; No predecessors!
  br label %638

638:                                              ; preds = %637
  br label %639

639:                                              ; preds = %638, %580
  br label %640

640:                                              ; preds = %639
  br label %641

641:                                              ; preds = %640
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #9
  store i64 0, ptr %20, align 8, !tbaa !16
  br label %642

642:                                              ; preds = %716, %641
  %643 = load i64, ptr %20, align 8, !tbaa !16
  %644 = icmp ult i64 %643, 2
  br i1 %644, label %646, label %645

645:                                              ; preds = %642
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #9
  br label %719

646:                                              ; preds = %642
  br label %647

647:                                              ; preds = %646
  %648 = load i32, ptr @test_count, align 4, !tbaa !5
  %649 = add nsw i32 %648, 1
  store i32 %649, ptr @test_count, align 4, !tbaa !5
  %650 = load ptr, ptr %18, align 8, !tbaa !9
  %651 = load i64, ptr %20, align 8, !tbaa !16
  %652 = getelementptr inbounds i8, ptr %650, i64 %651
  %653 = load i8, ptr %652, align 1, !tbaa !15
  %654 = zext i8 %653 to i32
  %655 = load i64, ptr %20, align 8, !tbaa !16
  %656 = getelementptr inbounds [2 x i8], ptr @s2n_cert_type_preference_list, i64 0, i64 %655
  %657 = load i8, ptr %656, align 1, !tbaa !15
  %658 = zext i8 %657 to i32
  %659 = icmp eq i32 %654, %658
  br i1 %659, label %713, label %660

660:                                              ; preds = %647
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %663 = call ptr @__errno_location() #10
  %664 = load i32, ptr %663, align 4, !tbaa !5
  store i32 %664, ptr %21, align 4, !tbaa !5
  %665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %666 = call i32 @s2n_print_stacktrace(ptr noundef %665)
  %667 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %668 = trunc i8 %667 to i1
  br i1 %668, label %669, label %691

669:                                              ; preds = %662
  %670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %671 = call i32 @fileno(ptr noundef %670) #9
  %672 = call i32 @isatty(i32 noundef %671) #9
  %673 = icmp ne i32 %672, 0
  br i1 %673, label %674, label %691

674:                                              ; preds = %669
  %675 = load i32, ptr %21, align 4, !tbaa !5
  %676 = call ptr @__errno_location() #10
  store i32 %675, ptr %676, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %680 = load i32, ptr %679, align 4, !tbaa !5
  %681 = call ptr @s2n_strerror(i32 noundef %680, ptr noundef @.str.4)
  %682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %683 = load i32, ptr %682, align 4, !tbaa !5
  %684 = call ptr @s2n_strerror_debug(i32 noundef %683, ptr noundef @.str.4)
  %685 = call ptr @__errno_location() #10
  %686 = load i32, ptr %685, align 4, !tbaa !5
  %687 = call ptr @strerror(i32 noundef %686) #9
  %688 = call ptr @__errno_location() #10
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef @.str.2, i32 noundef %678, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 73, ptr noundef %681, ptr noundef %684, ptr noundef %687, i32 noundef %689) #9
  br label %708

691:                                              ; preds = %669, %662
  %692 = load i32, ptr %21, align 4, !tbaa !5
  %693 = call ptr @__errno_location() #10
  store i32 %692, ptr %693, align 4, !tbaa !5
  %694 = load ptr, ptr @stderr, align 8, !tbaa !9
  %695 = load i32, ptr @test_count, align 4, !tbaa !5
  %696 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %697 = load i32, ptr %696, align 4, !tbaa !5
  %698 = call ptr @s2n_strerror(i32 noundef %697, ptr noundef @.str.4)
  %699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %700 = load i32, ptr %699, align 4, !tbaa !5
  %701 = call ptr @s2n_strerror_debug(i32 noundef %700, ptr noundef @.str.4)
  %702 = call ptr @__errno_location() #10
  %703 = load i32, ptr %702, align 4, !tbaa !5
  %704 = call ptr @strerror(i32 noundef %703) #9
  %705 = call ptr @__errno_location() #10
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %694, ptr noundef @.str.5, i32 noundef %695, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 73, ptr noundef %698, ptr noundef %701, ptr noundef %704, i32 noundef %706) #9
  br label %708

708:                                              ; preds = %691, %674
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  br label %709

709:                                              ; preds = %708
  br label %710

710:                                              ; preds = %709
  call void @exit(i32 noundef 1) #11
  unreachable

711:                                              ; No predecessors!
  br label %712

712:                                              ; preds = %711
  br label %713

713:                                              ; preds = %712, %647
  br label %714

714:                                              ; preds = %713
  br label %715

715:                                              ; preds = %714
  br label %716

716:                                              ; preds = %715
  %717 = load i64, ptr %20, align 8, !tbaa !16
  %718 = add i64 %717, 1
  store i64 %718, ptr %20, align 8, !tbaa !16
  br label %642, !llvm.loop !18

719:                                              ; preds = %645
  br label %720

720:                                              ; preds = %719
  %721 = load i32, ptr @test_count, align 4, !tbaa !5
  %722 = add nsw i32 %721, 1
  store i32 %722, ptr @test_count, align 4, !tbaa !5
  %723 = load ptr, ptr %10, align 8, !tbaa !9
  %724 = call i32 @s2n_config_free(ptr noundef %723)
  %725 = icmp eq i32 %724, -1
  br i1 %725, label %726, label %779

726:                                              ; preds = %720
  br label %727

727:                                              ; preds = %726
  br label %728

728:                                              ; preds = %727
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  %729 = call ptr @__errno_location() #10
  %730 = load i32, ptr %729, align 4, !tbaa !5
  store i32 %730, ptr %22, align 4, !tbaa !5
  %731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %732 = call i32 @s2n_print_stacktrace(ptr noundef %731)
  %733 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %734 = trunc i8 %733 to i1
  br i1 %734, label %735, label %757

735:                                              ; preds = %728
  %736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %737 = call i32 @fileno(ptr noundef %736) #9
  %738 = call i32 @isatty(i32 noundef %737) #9
  %739 = icmp ne i32 %738, 0
  br i1 %739, label %740, label %757

740:                                              ; preds = %735
  %741 = load i32, ptr %22, align 4, !tbaa !5
  %742 = call ptr @__errno_location() #10
  store i32 %741, ptr %742, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %746 = load i32, ptr %745, align 4, !tbaa !5
  %747 = call ptr @s2n_strerror(i32 noundef %746, ptr noundef @.str.4)
  %748 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %749 = load i32, ptr %748, align 4, !tbaa !5
  %750 = call ptr @s2n_strerror_debug(i32 noundef %749, ptr noundef @.str.4)
  %751 = call ptr @__errno_location() #10
  %752 = load i32, ptr %751, align 4, !tbaa !5
  %753 = call ptr @strerror(i32 noundef %752) #9
  %754 = call ptr @__errno_location() #10
  %755 = load i32, ptr %754, align 4, !tbaa !5
  %756 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %743, ptr noundef @.str.2, i32 noundef %744, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 76, ptr noundef %747, ptr noundef %750, ptr noundef %753, i32 noundef %755) #9
  br label %774

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

774:                                              ; preds = %757, %740
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  br label %775

775:                                              ; preds = %774
  br label %776

776:                                              ; preds = %775
  call void @exit(i32 noundef 1) #11
  unreachable

777:                                              ; No predecessors!
  br label %778

778:                                              ; preds = %777
  br label %779

779:                                              ; preds = %778, %720
  br label %780

780:                                              ; preds = %779
  br label %781

781:                                              ; preds = %780
  br label %782

782:                                              ; preds = %781
  %783 = load i32, ptr @test_count, align 4, !tbaa !5
  %784 = add nsw i32 %783, 1
  store i32 %784, ptr @test_count, align 4, !tbaa !5
  %785 = load ptr, ptr %9, align 8, !tbaa !9
  %786 = call i32 @s2n_connection_free(ptr noundef %785)
  %787 = icmp eq i32 %786, -1
  br i1 %787, label %788, label %841

788:                                              ; preds = %782
  br label %789

789:                                              ; preds = %788
  br label %790

790:                                              ; preds = %789
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #9
  %791 = call ptr @__errno_location() #10
  %792 = load i32, ptr %791, align 4, !tbaa !5
  store i32 %792, ptr %23, align 4, !tbaa !5
  %793 = load ptr, ptr @stderr, align 8, !tbaa !9
  %794 = call i32 @s2n_print_stacktrace(ptr noundef %793)
  %795 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %796 = trunc i8 %795 to i1
  br i1 %796, label %797, label %819

797:                                              ; preds = %790
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = call i32 @fileno(ptr noundef %798) #9
  %800 = call i32 @isatty(i32 noundef %799) #9
  %801 = icmp ne i32 %800, 0
  br i1 %801, label %802, label %819

802:                                              ; preds = %797
  %803 = load i32, ptr %23, align 4, !tbaa !5
  %804 = call ptr @__errno_location() #10
  store i32 %803, ptr %804, align 4, !tbaa !5
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = load i32, ptr @test_count, align 4, !tbaa !5
  %807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %808 = load i32, ptr %807, align 4, !tbaa !5
  %809 = call ptr @s2n_strerror(i32 noundef %808, ptr noundef @.str.4)
  %810 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %811 = load i32, ptr %810, align 4, !tbaa !5
  %812 = call ptr @s2n_strerror_debug(i32 noundef %811, ptr noundef @.str.4)
  %813 = call ptr @__errno_location() #10
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @strerror(i32 noundef %814) #9
  %816 = call ptr @__errno_location() #10
  %817 = load i32, ptr %816, align 4, !tbaa !5
  %818 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %805, ptr noundef @.str.2, i32 noundef %806, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 77, ptr noundef %809, ptr noundef %812, ptr noundef %815, i32 noundef %817) #9
  br label %836

819:                                              ; preds = %797, %790
  %820 = load i32, ptr %23, align 4, !tbaa !5
  %821 = call ptr @__errno_location() #10
  store i32 %820, ptr %821, align 4, !tbaa !5
  %822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %825 = load i32, ptr %824, align 4, !tbaa !5
  %826 = call ptr @s2n_strerror(i32 noundef %825, ptr noundef @.str.4)
  %827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = call ptr @s2n_strerror_debug(i32 noundef %828, ptr noundef @.str.4)
  %830 = call ptr @__errno_location() #10
  %831 = load i32, ptr %830, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #9
  %833 = call ptr @__errno_location() #10
  %834 = load i32, ptr %833, align 4, !tbaa !5
  %835 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %822, ptr noundef @.str.5, i32 noundef %823, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 77, ptr noundef %826, ptr noundef %829, ptr noundef %832, i32 noundef %834) #9
  br label %836

836:                                              ; preds = %819, %802
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #9
  br label %837

837:                                              ; preds = %836
  br label %838

838:                                              ; preds = %837
  call void @exit(i32 noundef 1) #11
  unreachable

839:                                              ; No predecessors!
  br label %840

840:                                              ; preds = %839
  br label %841

841:                                              ; preds = %840, %782
  br label %842

842:                                              ; preds = %841
  br label %843

843:                                              ; preds = %842
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %10) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #9
  store ptr null, ptr %24, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  store ptr null, ptr %25, align 8, !tbaa !9
  br label %844

844:                                              ; preds = %843
  %845 = load i32, ptr @test_count, align 4, !tbaa !5
  %846 = add nsw i32 %845, 1
  store i32 %846, ptr @test_count, align 4, !tbaa !5
  %847 = call ptr @s2n_config_new()
  store ptr %847, ptr %25, align 8, !tbaa !9
  %848 = icmp eq ptr %847, null
  br i1 %848, label %849, label %902

849:                                              ; preds = %844
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  %852 = call ptr @__errno_location() #10
  %853 = load i32, ptr %852, align 4, !tbaa !5
  store i32 %853, ptr %26, align 4, !tbaa !5
  %854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %855 = call i32 @s2n_print_stacktrace(ptr noundef %854)
  %856 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %857 = trunc i8 %856 to i1
  br i1 %857, label %858, label %880

858:                                              ; preds = %851
  %859 = load ptr, ptr @stderr, align 8, !tbaa !9
  %860 = call i32 @fileno(ptr noundef %859) #9
  %861 = call i32 @isatty(i32 noundef %860) #9
  %862 = icmp ne i32 %861, 0
  br i1 %862, label %863, label %880

863:                                              ; preds = %858
  %864 = load i32, ptr %26, align 4, !tbaa !5
  %865 = call ptr @__errno_location() #10
  store i32 %864, ptr %865, align 4, !tbaa !5
  %866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %867 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %869, ptr noundef @.str.4)
  %871 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %872 = load i32, ptr %871, align 4, !tbaa !5
  %873 = call ptr @s2n_strerror_debug(i32 noundef %872, ptr noundef @.str.4)
  %874 = call ptr @__errno_location() #10
  %875 = load i32, ptr %874, align 4, !tbaa !5
  %876 = call ptr @strerror(i32 noundef %875) #9
  %877 = call ptr @__errno_location() #10
  %878 = load i32, ptr %877, align 4, !tbaa !5
  %879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %866, ptr noundef @.str.2, i32 noundef %867, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 86, ptr noundef %870, ptr noundef %873, ptr noundef %876, i32 noundef %878) #9
  br label %897

880:                                              ; preds = %858, %851
  %881 = load i32, ptr %26, align 4, !tbaa !5
  %882 = call ptr @__errno_location() #10
  store i32 %881, ptr %882, align 4, !tbaa !5
  %883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %884 = load i32, ptr @test_count, align 4, !tbaa !5
  %885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = call ptr @s2n_strerror(i32 noundef %886, ptr noundef @.str.4)
  %888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %889 = load i32, ptr %888, align 4, !tbaa !5
  %890 = call ptr @s2n_strerror_debug(i32 noundef %889, ptr noundef @.str.4)
  %891 = call ptr @__errno_location() #10
  %892 = load i32, ptr %891, align 4, !tbaa !5
  %893 = call ptr @strerror(i32 noundef %892) #9
  %894 = call ptr @__errno_location() #10
  %895 = load i32, ptr %894, align 4, !tbaa !5
  %896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %883, ptr noundef @.str.5, i32 noundef %884, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 86, ptr noundef %887, ptr noundef %890, ptr noundef %893, i32 noundef %895) #9
  br label %897

897:                                              ; preds = %880, %863
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  call void @exit(i32 noundef 1) #11
  unreachable

900:                                              ; No predecessors!
  br label %901

901:                                              ; preds = %900
  br label %902

902:                                              ; preds = %901, %844
  br label %903

903:                                              ; preds = %902
  br label %904

904:                                              ; preds = %903
  br label %905

905:                                              ; preds = %904
  %906 = load i32, ptr @test_count, align 4, !tbaa !5
  %907 = add nsw i32 %906, 1
  store i32 %907, ptr @test_count, align 4, !tbaa !5
  %908 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %908, ptr %24, align 8, !tbaa !9
  %909 = icmp eq ptr %908, null
  br i1 %909, label %910, label %963

910:                                              ; preds = %905
  br label %911

911:                                              ; preds = %910
  br label %912

912:                                              ; preds = %911
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  %913 = call ptr @__errno_location() #10
  %914 = load i32, ptr %913, align 4, !tbaa !5
  store i32 %914, ptr %27, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @s2n_print_stacktrace(ptr noundef %915)
  %917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %918 = trunc i8 %917 to i1
  br i1 %918, label %919, label %941

919:                                              ; preds = %912
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @fileno(ptr noundef %920) #9
  %922 = call i32 @isatty(i32 noundef %921) #9
  %923 = icmp ne i32 %922, 0
  br i1 %923, label %924, label %941

924:                                              ; preds = %919
  %925 = load i32, ptr %27, align 4, !tbaa !5
  %926 = call ptr @__errno_location() #10
  store i32 %925, ptr %926, align 4, !tbaa !5
  %927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %928 = load i32, ptr @test_count, align 4, !tbaa !5
  %929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %930 = load i32, ptr %929, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror(i32 noundef %930, ptr noundef @.str.4)
  %932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %933 = load i32, ptr %932, align 4, !tbaa !5
  %934 = call ptr @s2n_strerror_debug(i32 noundef %933, ptr noundef @.str.4)
  %935 = call ptr @__errno_location() #10
  %936 = load i32, ptr %935, align 4, !tbaa !5
  %937 = call ptr @strerror(i32 noundef %936) #9
  %938 = call ptr @__errno_location() #10
  %939 = load i32, ptr %938, align 4, !tbaa !5
  %940 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %927, ptr noundef @.str.2, i32 noundef %928, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 87, ptr noundef %931, ptr noundef %934, ptr noundef %937, i32 noundef %939) #9
  br label %958

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

958:                                              ; preds = %941, %924
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  br label %959

959:                                              ; preds = %958
  br label %960

960:                                              ; preds = %959
  call void @exit(i32 noundef 1) #11
  unreachable

961:                                              ; No predecessors!
  br label %962

962:                                              ; preds = %961
  br label %963

963:                                              ; preds = %962, %905
  br label %964

964:                                              ; preds = %963
  br label %965

965:                                              ; preds = %964
  br label %966

966:                                              ; preds = %965
  %967 = load i32, ptr @test_count, align 4, !tbaa !5
  %968 = add nsw i32 %967, 1
  store i32 %968, ptr @test_count, align 4, !tbaa !5
  %969 = load ptr, ptr %24, align 8, !tbaa !9
  %970 = load ptr, ptr %25, align 8, !tbaa !9
  %971 = call i32 @s2n_connection_set_config(ptr noundef %969, ptr noundef %970)
  %972 = icmp eq i32 %971, -1
  br i1 %972, label %973, label %1026

973:                                              ; preds = %966
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #9
  %976 = call ptr @__errno_location() #10
  %977 = load i32, ptr %976, align 4, !tbaa !5
  store i32 %977, ptr %28, align 4, !tbaa !5
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @s2n_print_stacktrace(ptr noundef %978)
  %980 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %981 = trunc i8 %980 to i1
  br i1 %981, label %982, label %1004

982:                                              ; preds = %975
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = call i32 @fileno(ptr noundef %983) #9
  %985 = call i32 @isatty(i32 noundef %984) #9
  %986 = icmp ne i32 %985, 0
  br i1 %986, label %987, label %1004

987:                                              ; preds = %982
  %988 = load i32, ptr %28, align 4, !tbaa !5
  %989 = call ptr @__errno_location() #10
  store i32 %988, ptr %989, align 4, !tbaa !5
  %990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %991 = load i32, ptr @test_count, align 4, !tbaa !5
  %992 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %993 = load i32, ptr %992, align 4, !tbaa !5
  %994 = call ptr @s2n_strerror(i32 noundef %993, ptr noundef @.str.4)
  %995 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %996 = load i32, ptr %995, align 4, !tbaa !5
  %997 = call ptr @s2n_strerror_debug(i32 noundef %996, ptr noundef @.str.4)
  %998 = call ptr @__errno_location() #10
  %999 = load i32, ptr %998, align 4, !tbaa !5
  %1000 = call ptr @strerror(i32 noundef %999) #9
  %1001 = call ptr @__errno_location() #10
  %1002 = load i32, ptr %1001, align 4, !tbaa !5
  %1003 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %990, ptr noundef @.str.2, i32 noundef %991, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 88, ptr noundef %994, ptr noundef %997, ptr noundef %1000, i32 noundef %1002) #9
  br label %1021

1004:                                             ; preds = %982, %975
  %1005 = load i32, ptr %28, align 4, !tbaa !5
  %1006 = call ptr @__errno_location() #10
  store i32 %1005, ptr %1006, align 4, !tbaa !5
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = load i32, ptr @test_count, align 4, !tbaa !5
  %1009 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1010 = load i32, ptr %1009, align 4, !tbaa !5
  %1011 = call ptr @s2n_strerror(i32 noundef %1010, ptr noundef @.str.4)
  %1012 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1013 = load i32, ptr %1012, align 4, !tbaa !5
  %1014 = call ptr @s2n_strerror_debug(i32 noundef %1013, ptr noundef @.str.4)
  %1015 = call ptr @__errno_location() #10
  %1016 = load i32, ptr %1015, align 4, !tbaa !5
  %1017 = call ptr @strerror(i32 noundef %1016) #9
  %1018 = call ptr @__errno_location() #10
  %1019 = load i32, ptr %1018, align 4, !tbaa !5
  %1020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1007, ptr noundef @.str.5, i32 noundef %1008, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 88, ptr noundef %1011, ptr noundef %1014, ptr noundef %1017, i32 noundef %1019) #9
  br label %1021

1021:                                             ; preds = %1004, %987
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #9
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022
  call void @exit(i32 noundef 1) #11
  unreachable

1024:                                             ; No predecessors!
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025, %966
  br label %1027

1027:                                             ; preds = %1026
  br label %1028

1028:                                             ; preds = %1027
  br label %1029

1029:                                             ; preds = %1028
  %1030 = load i32, ptr @test_count, align 4, !tbaa !5
  %1031 = add nsw i32 %1030, 1
  store i32 %1031, ptr @test_count, align 4, !tbaa !5
  %1032 = load ptr, ptr %25, align 8, !tbaa !9
  %1033 = call i32 @s2n_config_enable_cert_req_dss_legacy_compat(ptr noundef %1032)
  %1034 = icmp eq i32 %1033, -1
  br i1 %1034, label %1035, label %1088

1035:                                             ; preds = %1029
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  call void @llvm.lifetime.start.p0(i64 4, ptr %29) #9
  %1038 = call ptr @__errno_location() #10
  %1039 = load i32, ptr %1038, align 4, !tbaa !5
  store i32 %1039, ptr %29, align 4, !tbaa !5
  %1040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1041 = call i32 @s2n_print_stacktrace(ptr noundef %1040)
  %1042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1043 = trunc i8 %1042 to i1
  br i1 %1043, label %1044, label %1066

1044:                                             ; preds = %1037
  %1045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1046 = call i32 @fileno(ptr noundef %1045) #9
  %1047 = call i32 @isatty(i32 noundef %1046) #9
  %1048 = icmp ne i32 %1047, 0
  br i1 %1048, label %1049, label %1066

1049:                                             ; preds = %1044
  %1050 = load i32, ptr %29, align 4, !tbaa !5
  %1051 = call ptr @__errno_location() #10
  store i32 %1050, ptr %1051, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = load i32, ptr @test_count, align 4, !tbaa !5
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror(i32 noundef %1055, ptr noundef @.str.4)
  %1057 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef @.str.4)
  %1060 = call ptr @__errno_location() #10
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call ptr @strerror(i32 noundef %1061) #9
  %1063 = call ptr @__errno_location() #10
  %1064 = load i32, ptr %1063, align 4, !tbaa !5
  %1065 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1052, ptr noundef @.str.2, i32 noundef %1053, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1056, ptr noundef %1059, ptr noundef %1062, i32 noundef %1064) #9
  br label %1083

1066:                                             ; preds = %1044, %1037
  %1067 = load i32, ptr %29, align 4, !tbaa !5
  %1068 = call ptr @__errno_location() #10
  store i32 %1067, ptr %1068, align 4, !tbaa !5
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = load i32, ptr @test_count, align 4, !tbaa !5
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror(i32 noundef %1072, ptr noundef @.str.4)
  %1074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @s2n_strerror_debug(i32 noundef %1075, ptr noundef @.str.4)
  %1077 = call ptr @__errno_location() #10
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call ptr @strerror(i32 noundef %1078) #9
  %1080 = call ptr @__errno_location() #10
  %1081 = load i32, ptr %1080, align 4, !tbaa !5
  %1082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1069, ptr noundef @.str.5, i32 noundef %1070, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 89, ptr noundef %1073, ptr noundef %1076, ptr noundef %1079, i32 noundef %1081) #9
  br label %1083

1083:                                             ; preds = %1066, %1049
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #9
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084
  call void @exit(i32 noundef 1) #11
  unreachable

1086:                                             ; No predecessors!
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087, %1029
  br label %1089

1089:                                             ; preds = %1088
  br label %1090

1090:                                             ; preds = %1089
  br label %1091

1091:                                             ; preds = %1090
  %1092 = load i32, ptr @test_count, align 4, !tbaa !5
  %1093 = add nsw i32 %1092, 1
  store i32 %1093, ptr @test_count, align 4, !tbaa !5
  %1094 = load ptr, ptr %24, align 8, !tbaa !9
  %1095 = call i32 @s2n_cert_req_send(ptr noundef %1094)
  %1096 = icmp eq i32 %1095, -1
  br i1 %1096, label %1097, label %1150

1097:                                             ; preds = %1091
  br label %1098

1098:                                             ; preds = %1097
  br label %1099

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

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

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

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

1145:                                             ; preds = %1128, %1111
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #9
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146
  call void @exit(i32 noundef 1) #11
  unreachable

1148:                                             ; No predecessors!
  br label %1149

1149:                                             ; preds = %1148
  br label %1150

1150:                                             ; preds = %1149, %1091
  br label %1151

1151:                                             ; preds = %1150
  br label %1152

1152:                                             ; preds = %1151
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %1153 = load ptr, ptr %24, align 8, !tbaa !9
  %1154 = getelementptr inbounds %struct.s2n_connection, ptr %1153, i32 0, i32 52
  %1155 = getelementptr inbounds %struct.s2n_handshake, ptr %1154, i32 0, i32 0
  store ptr %1155, ptr %31, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %32) #9
  store i8 0, ptr %32, align 1, !tbaa !15
  br label %1156

1156:                                             ; preds = %1152
  %1157 = load i32, ptr @test_count, align 4, !tbaa !5
  %1158 = add nsw i32 %1157, 1
  store i32 %1158, ptr @test_count, align 4, !tbaa !5
  %1159 = load ptr, ptr %31, align 8, !tbaa !9
  %1160 = call i32 @s2n_stuffer_read_uint8(ptr noundef %1159, ptr noundef %32)
  %1161 = icmp eq i32 %1160, -1
  br i1 %1161, label %1162, label %1215

1162:                                             ; preds = %1156
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

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

1171:                                             ; preds = %1164
  %1172 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1173 = call i32 @fileno(ptr noundef %1172) #9
  %1174 = call i32 @isatty(i32 noundef %1173) #9
  %1175 = icmp ne i32 %1174, 0
  br i1 %1175, label %1176, label %1193

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

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

1210:                                             ; preds = %1193, %1176
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #9
  br label %1211

1211:                                             ; preds = %1210
  br label %1212

1212:                                             ; preds = %1211
  call void @exit(i32 noundef 1) #11
  unreachable

1213:                                             ; No predecessors!
  br label %1214

1214:                                             ; preds = %1213
  br label %1215

1215:                                             ; preds = %1214, %1156
  br label %1216

1216:                                             ; preds = %1215
  br label %1217

1217:                                             ; preds = %1216
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #9
  %1218 = load ptr, ptr %31, align 8, !tbaa !9
  %1219 = load i8, ptr %32, align 1, !tbaa !15
  %1220 = zext i8 %1219 to i32
  %1221 = call ptr @s2n_stuffer_raw_read(ptr noundef %1218, i32 noundef %1220)
  store ptr %1221, ptr %34, align 8, !tbaa !9
  br label %1222

1222:                                             ; preds = %1217
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = add nsw i32 %1223, 1
  store i32 %1224, ptr @test_count, align 4, !tbaa !5
  %1225 = load i8, ptr %32, align 1, !tbaa !15
  %1226 = zext i8 %1225 to i64
  %1227 = icmp eq i64 %1226, 3
  br i1 %1227, label %1281, label %1228

1228:                                             ; preds = %1222
  br label %1229

1229:                                             ; preds = %1228
  br label %1230

1230:                                             ; preds = %1229
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #9
  %1231 = call ptr @__errno_location() #10
  %1232 = load i32, ptr %1231, align 4, !tbaa !5
  store i32 %1232, ptr %35, align 4, !tbaa !5
  %1233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1234 = call i32 @s2n_print_stacktrace(ptr noundef %1233)
  %1235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1236 = trunc i8 %1235 to i1
  br i1 %1236, label %1237, label %1259

1237:                                             ; preds = %1230
  %1238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1239 = call i32 @fileno(ptr noundef %1238) #9
  %1240 = call i32 @isatty(i32 noundef %1239) #9
  %1241 = icmp ne i32 %1240, 0
  br i1 %1241, label %1242, label %1259

1242:                                             ; preds = %1237
  %1243 = load i32, ptr %35, align 4, !tbaa !5
  %1244 = call ptr @__errno_location() #10
  store i32 %1243, ptr %1244, align 4, !tbaa !5
  %1245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1246 = load i32, ptr @test_count, align 4, !tbaa !5
  %1247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1248 = load i32, ptr %1247, align 4, !tbaa !5
  %1249 = call ptr @s2n_strerror(i32 noundef %1248, ptr noundef @.str.4)
  %1250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1251 = load i32, ptr %1250, align 4, !tbaa !5
  %1252 = call ptr @s2n_strerror_debug(i32 noundef %1251, ptr noundef @.str.4)
  %1253 = call ptr @__errno_location() #10
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @strerror(i32 noundef %1254) #9
  %1256 = call ptr @__errno_location() #10
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1245, ptr noundef @.str.2, i32 noundef %1246, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1249, ptr noundef %1252, ptr noundef %1255, i32 noundef %1257) #9
  br label %1276

1259:                                             ; preds = %1237, %1230
  %1260 = load i32, ptr %35, align 4, !tbaa !5
  %1261 = call ptr @__errno_location() #10
  store i32 %1260, ptr %1261, align 4, !tbaa !5
  %1262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1263 = load i32, ptr @test_count, align 4, !tbaa !5
  %1264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1265 = load i32, ptr %1264, align 4, !tbaa !5
  %1266 = call ptr @s2n_strerror(i32 noundef %1265, ptr noundef @.str.4)
  %1267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1268 = load i32, ptr %1267, align 4, !tbaa !5
  %1269 = call ptr @s2n_strerror_debug(i32 noundef %1268, ptr noundef @.str.4)
  %1270 = call ptr @__errno_location() #10
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = call ptr @strerror(i32 noundef %1271) #9
  %1273 = call ptr @__errno_location() #10
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1262, ptr noundef @.str.5, i32 noundef %1263, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 99, ptr noundef %1266, ptr noundef %1269, ptr noundef %1272, i32 noundef %1274) #9
  br label %1276

1276:                                             ; preds = %1259, %1242
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #9
  br label %1277

1277:                                             ; preds = %1276
  br label %1278

1278:                                             ; preds = %1277
  call void @exit(i32 noundef 1) #11
  unreachable

1279:                                             ; No predecessors!
  br label %1280

1280:                                             ; preds = %1279
  br label %1281

1281:                                             ; preds = %1280, %1222
  br label %1282

1282:                                             ; preds = %1281
  br label %1283

1283:                                             ; preds = %1282
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #9
  store i64 0, ptr %36, align 8, !tbaa !16
  br label %1284

1284:                                             ; preds = %1358, %1283
  %1285 = load i64, ptr %36, align 8, !tbaa !16
  %1286 = icmp ult i64 %1285, 3
  br i1 %1286, label %1288, label %1287

1287:                                             ; preds = %1284
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #9
  br label %1361

1288:                                             ; preds = %1284
  br label %1289

1289:                                             ; preds = %1288
  %1290 = load i32, ptr @test_count, align 4, !tbaa !5
  %1291 = add nsw i32 %1290, 1
  store i32 %1291, ptr @test_count, align 4, !tbaa !5
  %1292 = load ptr, ptr %34, align 8, !tbaa !9
  %1293 = load i64, ptr %36, align 8, !tbaa !16
  %1294 = getelementptr inbounds i8, ptr %1292, i64 %1293
  %1295 = load i8, ptr %1294, align 1, !tbaa !15
  %1296 = zext i8 %1295 to i32
  %1297 = load i64, ptr %36, align 8, !tbaa !16
  %1298 = getelementptr inbounds [3 x i8], ptr @s2n_cert_type_preference_list_legacy_dss, i64 0, i64 %1297
  %1299 = load i8, ptr %1298, align 1, !tbaa !15
  %1300 = zext i8 %1299 to i32
  %1301 = icmp eq i32 %1296, %1300
  br i1 %1301, label %1355, label %1302

1302:                                             ; preds = %1289
  br label %1303

1303:                                             ; preds = %1302
  br label %1304

1304:                                             ; preds = %1303
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #9
  %1305 = call ptr @__errno_location() #10
  %1306 = load i32, ptr %1305, align 4, !tbaa !5
  store i32 %1306, ptr %37, align 4, !tbaa !5
  %1307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1308 = call i32 @s2n_print_stacktrace(ptr noundef %1307)
  %1309 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1310 = trunc i8 %1309 to i1
  br i1 %1310, label %1311, label %1333

1311:                                             ; preds = %1304
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = call i32 @fileno(ptr noundef %1312) #9
  %1314 = call i32 @isatty(i32 noundef %1313) #9
  %1315 = icmp ne i32 %1314, 0
  br i1 %1315, label %1316, label %1333

1316:                                             ; preds = %1311
  %1317 = load i32, ptr %37, align 4, !tbaa !5
  %1318 = call ptr @__errno_location() #10
  store i32 %1317, ptr %1318, align 4, !tbaa !5
  %1319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1320 = load i32, ptr @test_count, align 4, !tbaa !5
  %1321 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1322 = load i32, ptr %1321, align 4, !tbaa !5
  %1323 = call ptr @s2n_strerror(i32 noundef %1322, ptr noundef @.str.4)
  %1324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1325 = load i32, ptr %1324, align 4, !tbaa !5
  %1326 = call ptr @s2n_strerror_debug(i32 noundef %1325, ptr noundef @.str.4)
  %1327 = call ptr @__errno_location() #10
  %1328 = load i32, ptr %1327, align 4, !tbaa !5
  %1329 = call ptr @strerror(i32 noundef %1328) #9
  %1330 = call ptr @__errno_location() #10
  %1331 = load i32, ptr %1330, align 4, !tbaa !5
  %1332 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1319, ptr noundef @.str.2, i32 noundef %1320, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 101, ptr noundef %1323, ptr noundef %1326, ptr noundef %1329, i32 noundef %1331) #9
  br label %1350

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

1350:                                             ; preds = %1333, %1316
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #9
  br label %1351

1351:                                             ; preds = %1350
  br label %1352

1352:                                             ; preds = %1351
  call void @exit(i32 noundef 1) #11
  unreachable

1353:                                             ; No predecessors!
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354, %1289
  br label %1356

1356:                                             ; preds = %1355
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  %1359 = load i64, ptr %36, align 8, !tbaa !16
  %1360 = add i64 %1359, 1
  store i64 %1360, ptr %36, align 8, !tbaa !16
  br label %1284, !llvm.loop !20

1361:                                             ; preds = %1287
  br label %1362

1362:                                             ; preds = %1361
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = add nsw i32 %1363, 1
  store i32 %1364, ptr @test_count, align 4, !tbaa !5
  %1365 = load ptr, ptr %25, align 8, !tbaa !9
  %1366 = call i32 @s2n_config_free(ptr noundef %1365)
  %1367 = icmp eq i32 %1366, -1
  br i1 %1367, label %1368, label %1421

1368:                                             ; preds = %1362
  br label %1369

1369:                                             ; preds = %1368
  br label %1370

1370:                                             ; preds = %1369
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #9
  %1371 = call ptr @__errno_location() #10
  %1372 = load i32, ptr %1371, align 4, !tbaa !5
  store i32 %1372, ptr %38, 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) #9
  %1380 = call i32 @isatty(i32 noundef %1379) #9
  %1381 = icmp ne i32 %1380, 0
  br i1 %1381, label %1382, label %1399

1382:                                             ; preds = %1377
  %1383 = load i32, ptr %38, align 4, !tbaa !5
  %1384 = call ptr @__errno_location() #10
  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() #10
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @strerror(i32 noundef %1394) #9
  %1396 = call ptr @__errno_location() #10
  %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.15, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1389, ptr noundef %1392, ptr noundef %1395, i32 noundef %1397) #9
  br label %1416

1399:                                             ; preds = %1377, %1370
  %1400 = load i32, ptr %38, align 4, !tbaa !5
  %1401 = call ptr @__errno_location() #10
  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() #10
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @strerror(i32 noundef %1411) #9
  %1413 = call ptr @__errno_location() #10
  %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.15, ptr noundef @.str.1, i32 noundef 104, ptr noundef %1406, ptr noundef %1409, ptr noundef %1412, i32 noundef %1414) #9
  br label %1416

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

1417:                                             ; preds = %1416
  br label %1418

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

1419:                                             ; No predecessors!
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420, %1362
  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 ptr, ptr %24, align 8, !tbaa !9
  %1428 = call i32 @s2n_connection_free(ptr noundef %1427)
  %1429 = icmp eq i32 %1428, -1
  br i1 %1429, label %1430, label %1483

1430:                                             ; preds = %1424
  br label %1431

1431:                                             ; preds = %1430
  br label %1432

1432:                                             ; preds = %1431
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #9
  %1433 = call ptr @__errno_location() #10
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  store i32 %1434, ptr %39, align 4, !tbaa !5
  %1435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1436 = call i32 @s2n_print_stacktrace(ptr noundef %1435)
  %1437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1438 = trunc i8 %1437 to i1
  br i1 %1438, label %1439, label %1461

1439:                                             ; preds = %1432
  %1440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1441 = call i32 @fileno(ptr noundef %1440) #9
  %1442 = call i32 @isatty(i32 noundef %1441) #9
  %1443 = icmp ne i32 %1442, 0
  br i1 %1443, label %1444, label %1461

1444:                                             ; preds = %1439
  %1445 = load i32, ptr %39, align 4, !tbaa !5
  %1446 = call ptr @__errno_location() #10
  store i32 %1445, ptr %1446, align 4, !tbaa !5
  %1447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1448 = load i32, ptr @test_count, align 4, !tbaa !5
  %1449 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1450 = load i32, ptr %1449, align 4, !tbaa !5
  %1451 = call ptr @s2n_strerror(i32 noundef %1450, ptr noundef @.str.4)
  %1452 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1453 = load i32, ptr %1452, align 4, !tbaa !5
  %1454 = call ptr @s2n_strerror_debug(i32 noundef %1453, ptr noundef @.str.4)
  %1455 = call ptr @__errno_location() #10
  %1456 = load i32, ptr %1455, align 4, !tbaa !5
  %1457 = call ptr @strerror(i32 noundef %1456) #9
  %1458 = call ptr @__errno_location() #10
  %1459 = load i32, ptr %1458, align 4, !tbaa !5
  %1460 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1447, ptr noundef @.str.2, i32 noundef %1448, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1451, ptr noundef %1454, ptr noundef %1457, i32 noundef %1459) #9
  br label %1478

1461:                                             ; preds = %1439, %1432
  %1462 = load i32, ptr %39, align 4, !tbaa !5
  %1463 = call ptr @__errno_location() #10
  store i32 %1462, ptr %1463, align 4, !tbaa !5
  %1464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1465 = load i32, ptr @test_count, align 4, !tbaa !5
  %1466 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1467 = load i32, ptr %1466, align 4, !tbaa !5
  %1468 = call ptr @s2n_strerror(i32 noundef %1467, ptr noundef @.str.4)
  %1469 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1470 = load i32, ptr %1469, align 4, !tbaa !5
  %1471 = call ptr @s2n_strerror_debug(i32 noundef %1470, ptr noundef @.str.4)
  %1472 = call ptr @__errno_location() #10
  %1473 = load i32, ptr %1472, align 4, !tbaa !5
  %1474 = call ptr @strerror(i32 noundef %1473) #9
  %1475 = call ptr @__errno_location() #10
  %1476 = load i32, ptr %1475, align 4, !tbaa !5
  %1477 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1464, ptr noundef @.str.5, i32 noundef %1465, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 105, ptr noundef %1468, ptr noundef %1471, ptr noundef %1474, i32 noundef %1476) #9
  br label %1478

1478:                                             ; preds = %1461, %1444
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #9
  br label %1479

1479:                                             ; preds = %1478
  br label %1480

1480:                                             ; preds = %1479
  call void @exit(i32 noundef 1) #11
  unreachable

1481:                                             ; No predecessors!
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482, %1424
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %32) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %40) #9
  %1486 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %1486, ptr %40, align 8, !tbaa !9
  br label %1487

1487:                                             ; preds = %1485
  %1488 = load i32, ptr @test_count, align 4, !tbaa !5
  %1489 = add nsw i32 %1488, 1
  store i32 %1489, ptr @test_count, align 4, !tbaa !5
  %1490 = load ptr, ptr %40, align 8, !tbaa !9
  %1491 = icmp eq ptr %1490, null
  br i1 %1491, label %1492, label %1545

1492:                                             ; preds = %1487
  br label %1493

1493:                                             ; preds = %1492
  br label %1494

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

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

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

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

1540:                                             ; preds = %1523, %1506
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #9
  br label %1541

1541:                                             ; preds = %1540
  br label %1542

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

1543:                                             ; No predecessors!
  br label %1544

1544:                                             ; preds = %1543
  br label %1545

1545:                                             ; preds = %1544, %1487
  br label %1546

1546:                                             ; preds = %1545
  br label %1547

1547:                                             ; preds = %1546
  %1548 = load ptr, ptr %40, align 8, !tbaa !9
  %1549 = getelementptr inbounds %struct.s2n_connection, ptr %1548, i32 0, i32 23
  store i8 33, ptr %1549, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %42) #9
  %1550 = call ptr @s2n_config_new()
  store ptr %1550, ptr %42, align 8, !tbaa !9
  br label %1551

1551:                                             ; preds = %1547
  %1552 = load i32, ptr @test_count, align 4, !tbaa !5
  %1553 = add nsw i32 %1552, 1
  store i32 %1553, ptr @test_count, align 4, !tbaa !5
  %1554 = load ptr, ptr %42, align 8, !tbaa !9
  %1555 = icmp eq ptr %1554, null
  br i1 %1555, label %1556, label %1609

1556:                                             ; preds = %1551
  br label %1557

1557:                                             ; preds = %1556
  br label %1558

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

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

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

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

1604:                                             ; preds = %1587, %1570
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #9
  br label %1605

1605:                                             ; preds = %1604
  br label %1606

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

1607:                                             ; No predecessors!
  br label %1608

1608:                                             ; preds = %1607
  br label %1609

1609:                                             ; preds = %1608, %1551
  br label %1610

1610:                                             ; preds = %1609
  br label %1611

1611:                                             ; preds = %1610
  br label %1612

1612:                                             ; preds = %1611
  %1613 = load i32, ptr @test_count, align 4, !tbaa !5
  %1614 = add nsw i32 %1613, 1
  store i32 %1614, ptr @test_count, align 4, !tbaa !5
  %1615 = load ptr, ptr %40, align 8, !tbaa !9
  %1616 = load ptr, ptr %42, align 8, !tbaa !9
  %1617 = call i32 @s2n_connection_set_config(ptr noundef %1615, ptr noundef %1616)
  %1618 = icmp eq i32 %1617, -1
  br i1 %1618, label %1619, label %1672

1619:                                             ; preds = %1612
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

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

1628:                                             ; preds = %1621
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = call i32 @fileno(ptr noundef %1629) #9
  %1631 = call i32 @isatty(i32 noundef %1630) #9
  %1632 = icmp ne i32 %1631, 0
  br i1 %1632, label %1633, label %1650

1633:                                             ; preds = %1628
  %1634 = load i32, ptr %44, align 4, !tbaa !5
  %1635 = call ptr @__errno_location() #10
  store i32 %1634, ptr %1635, align 4, !tbaa !5
  %1636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1637 = load i32, ptr @test_count, align 4, !tbaa !5
  %1638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1639 = load i32, ptr %1638, align 4, !tbaa !5
  %1640 = call ptr @s2n_strerror(i32 noundef %1639, ptr noundef @.str.4)
  %1641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1642 = load i32, ptr %1641, align 4, !tbaa !5
  %1643 = call ptr @s2n_strerror_debug(i32 noundef %1642, ptr noundef @.str.4)
  %1644 = call ptr @__errno_location() #10
  %1645 = load i32, ptr %1644, align 4, !tbaa !5
  %1646 = call ptr @strerror(i32 noundef %1645) #9
  %1647 = call ptr @__errno_location() #10
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1636, ptr noundef @.str.2, i32 noundef %1637, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1640, ptr noundef %1643, ptr noundef %1646, i32 noundef %1648) #9
  br label %1667

1650:                                             ; preds = %1628, %1621
  %1651 = load i32, ptr %44, align 4, !tbaa !5
  %1652 = call ptr @__errno_location() #10
  store i32 %1651, ptr %1652, align 4, !tbaa !5
  %1653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1654 = load i32, ptr @test_count, align 4, !tbaa !5
  %1655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1656 = load i32, ptr %1655, align 4, !tbaa !5
  %1657 = call ptr @s2n_strerror(i32 noundef %1656, ptr noundef @.str.4)
  %1658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1659 = load i32, ptr %1658, align 4, !tbaa !5
  %1660 = call ptr @s2n_strerror_debug(i32 noundef %1659, ptr noundef @.str.4)
  %1661 = call ptr @__errno_location() #10
  %1662 = load i32, ptr %1661, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #9
  %1664 = call ptr @__errno_location() #10
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1653, ptr noundef @.str.5, i32 noundef %1654, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1657, ptr noundef %1660, ptr noundef %1663, i32 noundef %1665) #9
  br label %1667

1667:                                             ; preds = %1650, %1633
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #9
  br label %1668

1668:                                             ; preds = %1667
  br label %1669

1669:                                             ; preds = %1668
  call void @exit(i32 noundef 1) #11
  unreachable

1670:                                             ; No predecessors!
  br label %1671

1671:                                             ; preds = %1670
  br label %1672

1672:                                             ; preds = %1671, %1612
  br label %1673

1673:                                             ; preds = %1672
  br label %1674

1674:                                             ; preds = %1673
  br label %1675

1675:                                             ; preds = %1674
  %1676 = load i32, ptr @test_count, align 4, !tbaa !5
  %1677 = add nsw i32 %1676, 1
  store i32 %1677, ptr @test_count, align 4, !tbaa !5
  %1678 = load ptr, ptr %40, align 8, !tbaa !9
  %1679 = call i32 @s2n_cert_req_send(ptr noundef %1678)
  %1680 = icmp eq i32 %1679, -1
  br i1 %1680, label %1681, label %1734

1681:                                             ; preds = %1675
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  call void @llvm.lifetime.start.p0(i64 4, ptr %45) #9
  %1684 = call ptr @__errno_location() #10
  %1685 = load i32, ptr %1684, align 4, !tbaa !5
  store i32 %1685, ptr %45, align 4, !tbaa !5
  %1686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1687 = call i32 @s2n_print_stacktrace(ptr noundef %1686)
  %1688 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1689 = trunc i8 %1688 to i1
  br i1 %1689, label %1690, label %1712

1690:                                             ; preds = %1683
  %1691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1692 = call i32 @fileno(ptr noundef %1691) #9
  %1693 = call i32 @isatty(i32 noundef %1692) #9
  %1694 = icmp ne i32 %1693, 0
  br i1 %1694, label %1695, label %1712

1695:                                             ; preds = %1690
  %1696 = load i32, ptr %45, align 4, !tbaa !5
  %1697 = call ptr @__errno_location() #10
  store i32 %1696, ptr %1697, align 4, !tbaa !5
  %1698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1699 = load i32, ptr @test_count, align 4, !tbaa !5
  %1700 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1701 = load i32, ptr %1700, align 4, !tbaa !5
  %1702 = call ptr @s2n_strerror(i32 noundef %1701, ptr noundef @.str.4)
  %1703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1704 = load i32, ptr %1703, align 4, !tbaa !5
  %1705 = call ptr @s2n_strerror_debug(i32 noundef %1704, ptr noundef @.str.4)
  %1706 = call ptr @__errno_location() #10
  %1707 = load i32, ptr %1706, align 4, !tbaa !5
  %1708 = call ptr @strerror(i32 noundef %1707) #9
  %1709 = call ptr @__errno_location() #10
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1698, ptr noundef @.str.2, i32 noundef %1699, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1702, ptr noundef %1705, ptr noundef %1708, i32 noundef %1710) #9
  br label %1729

1712:                                             ; preds = %1690, %1683
  %1713 = load i32, ptr %45, align 4, !tbaa !5
  %1714 = call ptr @__errno_location() #10
  store i32 %1713, ptr %1714, align 4, !tbaa !5
  %1715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1716 = load i32, ptr @test_count, align 4, !tbaa !5
  %1717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1718 = load i32, ptr %1717, align 4, !tbaa !5
  %1719 = call ptr @s2n_strerror(i32 noundef %1718, ptr noundef @.str.4)
  %1720 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1721 = load i32, ptr %1720, align 4, !tbaa !5
  %1722 = call ptr @s2n_strerror_debug(i32 noundef %1721, ptr noundef @.str.4)
  %1723 = call ptr @__errno_location() #10
  %1724 = load i32, ptr %1723, align 4, !tbaa !5
  %1725 = call ptr @strerror(i32 noundef %1724) #9
  %1726 = call ptr @__errno_location() #10
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1715, ptr noundef @.str.5, i32 noundef %1716, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 122, ptr noundef %1719, ptr noundef %1722, ptr noundef %1725, i32 noundef %1727) #9
  br label %1729

1729:                                             ; preds = %1712, %1695
  call void @llvm.lifetime.end.p0(i64 4, ptr %45) #9
  br label %1730

1730:                                             ; preds = %1729
  br label %1731

1731:                                             ; preds = %1730
  call void @exit(i32 noundef 1) #11
  unreachable

1732:                                             ; No predecessors!
  br label %1733

1733:                                             ; preds = %1732
  br label %1734

1734:                                             ; preds = %1733, %1675
  br label %1735

1735:                                             ; preds = %1734
  br label %1736

1736:                                             ; preds = %1735
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #9
  %1737 = load ptr, ptr %40, align 8, !tbaa !9
  %1738 = getelementptr inbounds %struct.s2n_connection, ptr %1737, i32 0, i32 52
  %1739 = getelementptr inbounds %struct.s2n_handshake, ptr %1738, i32 0, i32 0
  store ptr %1739, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %47) #9
  store i8 0, ptr %47, align 1, !tbaa !15
  br label %1740

1740:                                             ; preds = %1736
  %1741 = load i32, ptr @test_count, align 4, !tbaa !5
  %1742 = add nsw i32 %1741, 1
  store i32 %1742, ptr @test_count, align 4, !tbaa !5
  %1743 = load ptr, ptr %46, align 8, !tbaa !9
  %1744 = call i32 @s2n_stuffer_read_uint8(ptr noundef %1743, ptr noundef %47)
  %1745 = icmp eq i32 %1744, -1
  br i1 %1745, label %1746, label %1799

1746:                                             ; preds = %1740
  br label %1747

1747:                                             ; preds = %1746
  br label %1748

1748:                                             ; preds = %1747
  call void @llvm.lifetime.start.p0(i64 4, ptr %48) #9
  %1749 = call ptr @__errno_location() #10
  %1750 = load i32, ptr %1749, align 4, !tbaa !5
  store i32 %1750, ptr %48, align 4, !tbaa !5
  %1751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1752 = call i32 @s2n_print_stacktrace(ptr noundef %1751)
  %1753 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1754 = trunc i8 %1753 to i1
  br i1 %1754, label %1755, label %1777

1755:                                             ; preds = %1748
  %1756 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1757 = call i32 @fileno(ptr noundef %1756) #9
  %1758 = call i32 @isatty(i32 noundef %1757) #9
  %1759 = icmp ne i32 %1758, 0
  br i1 %1759, label %1760, label %1777

1760:                                             ; preds = %1755
  %1761 = load i32, ptr %48, align 4, !tbaa !5
  %1762 = call ptr @__errno_location() #10
  store i32 %1761, ptr %1762, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1766 = load i32, ptr %1765, align 4, !tbaa !5
  %1767 = call ptr @s2n_strerror(i32 noundef %1766, ptr noundef @.str.4)
  %1768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1769 = load i32, ptr %1768, align 4, !tbaa !5
  %1770 = call ptr @s2n_strerror_debug(i32 noundef %1769, ptr noundef @.str.4)
  %1771 = call ptr @__errno_location() #10
  %1772 = load i32, ptr %1771, align 4, !tbaa !5
  %1773 = call ptr @strerror(i32 noundef %1772) #9
  %1774 = call ptr @__errno_location() #10
  %1775 = load i32, ptr %1774, align 4, !tbaa !5
  %1776 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef @.str.2, i32 noundef %1764, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1767, ptr noundef %1770, ptr noundef %1773, i32 noundef %1775) #9
  br label %1794

1777:                                             ; preds = %1755, %1748
  %1778 = load i32, ptr %48, align 4, !tbaa !5
  %1779 = call ptr @__errno_location() #10
  store i32 %1778, ptr %1779, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = load i32, ptr @test_count, align 4, !tbaa !5
  %1782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1783 = load i32, ptr %1782, align 4, !tbaa !5
  %1784 = call ptr @s2n_strerror(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @s2n_strerror_debug(i32 noundef %1786, ptr noundef @.str.4)
  %1788 = call ptr @__errno_location() #10
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call ptr @strerror(i32 noundef %1789) #9
  %1791 = call ptr @__errno_location() #10
  %1792 = load i32, ptr %1791, align 4, !tbaa !5
  %1793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1780, ptr noundef @.str.5, i32 noundef %1781, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 126, ptr noundef %1784, ptr noundef %1787, ptr noundef %1790, i32 noundef %1792) #9
  br label %1794

1794:                                             ; preds = %1777, %1760
  call void @llvm.lifetime.end.p0(i64 4, ptr %48) #9
  br label %1795

1795:                                             ; preds = %1794
  br label %1796

1796:                                             ; preds = %1795
  call void @exit(i32 noundef 1) #11
  unreachable

1797:                                             ; No predecessors!
  br label %1798

1798:                                             ; preds = %1797
  br label %1799

1799:                                             ; preds = %1798, %1740
  br label %1800

1800:                                             ; preds = %1799
  br label %1801

1801:                                             ; preds = %1800
  br label %1802

1802:                                             ; preds = %1801
  %1803 = load i32, ptr @test_count, align 4, !tbaa !5
  %1804 = add nsw i32 %1803, 1
  store i32 %1804, ptr @test_count, align 4, !tbaa !5
  %1805 = load i8, ptr %47, align 1, !tbaa !15
  %1806 = zext i8 %1805 to i32
  %1807 = icmp sgt i32 %1806, 0
  br i1 %1807, label %1861, label %1808

1808:                                             ; preds = %1802
  br label %1809

1809:                                             ; preds = %1808
  br label %1810

1810:                                             ; preds = %1809
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #9
  %1811 = call ptr @__errno_location() #10
  %1812 = load i32, ptr %1811, align 4, !tbaa !5
  store i32 %1812, ptr %49, align 4, !tbaa !5
  %1813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1814 = call i32 @s2n_print_stacktrace(ptr noundef %1813)
  %1815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1816 = trunc i8 %1815 to i1
  br i1 %1816, label %1817, label %1839

1817:                                             ; preds = %1810
  %1818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1819 = call i32 @fileno(ptr noundef %1818) #9
  %1820 = call i32 @isatty(i32 noundef %1819) #9
  %1821 = icmp ne i32 %1820, 0
  br i1 %1821, label %1822, label %1839

1822:                                             ; preds = %1817
  %1823 = load i32, ptr %49, align 4, !tbaa !5
  %1824 = call ptr @__errno_location() #10
  store i32 %1823, ptr %1824, align 4, !tbaa !5
  %1825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1826 = load i32, ptr @test_count, align 4, !tbaa !5
  %1827 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1828 = load i32, ptr %1827, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror(i32 noundef %1828, ptr noundef @.str.4)
  %1830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1831 = load i32, ptr %1830, align 4, !tbaa !5
  %1832 = call ptr @s2n_strerror_debug(i32 noundef %1831, ptr noundef @.str.4)
  %1833 = call ptr @__errno_location() #10
  %1834 = load i32, ptr %1833, align 4, !tbaa !5
  %1835 = call ptr @strerror(i32 noundef %1834) #9
  %1836 = call ptr @__errno_location() #10
  %1837 = load i32, ptr %1836, align 4, !tbaa !5
  %1838 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1825, ptr noundef @.str.2, i32 noundef %1826, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1829, ptr noundef %1832, ptr noundef %1835, i32 noundef %1837) #9
  br label %1856

1839:                                             ; preds = %1817, %1810
  %1840 = load i32, ptr %49, align 4, !tbaa !5
  %1841 = call ptr @__errno_location() #10
  store i32 %1840, ptr %1841, align 4, !tbaa !5
  %1842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1843 = load i32, ptr @test_count, align 4, !tbaa !5
  %1844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1845 = load i32, ptr %1844, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef @.str.4)
  %1847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1848 = load i32, ptr %1847, align 4, !tbaa !5
  %1849 = call ptr @s2n_strerror_debug(i32 noundef %1848, ptr noundef @.str.4)
  %1850 = call ptr @__errno_location() #10
  %1851 = load i32, ptr %1850, align 4, !tbaa !5
  %1852 = call ptr @strerror(i32 noundef %1851) #9
  %1853 = call ptr @__errno_location() #10
  %1854 = load i32, ptr %1853, align 4, !tbaa !5
  %1855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1842, ptr noundef @.str.5, i32 noundef %1843, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 127, ptr noundef %1846, ptr noundef %1849, ptr noundef %1852, i32 noundef %1854) #9
  br label %1856

1856:                                             ; preds = %1839, %1822
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #9
  br label %1857

1857:                                             ; preds = %1856
  br label %1858

1858:                                             ; preds = %1857
  call void @exit(i32 noundef 1) #11
  unreachable

1859:                                             ; No predecessors!
  br label %1860

1860:                                             ; preds = %1859
  br label %1861

1861:                                             ; preds = %1860, %1802
  br label %1862

1862:                                             ; preds = %1861
  br label %1863

1863:                                             ; preds = %1862
  br label %1864

1864:                                             ; preds = %1863
  %1865 = load i32, ptr @test_count, align 4, !tbaa !5
  %1866 = add nsw i32 %1865, 1
  store i32 %1866, ptr @test_count, align 4, !tbaa !5
  %1867 = load ptr, ptr %46, align 8, !tbaa !9
  %1868 = load i8, ptr %47, align 1, !tbaa !15
  %1869 = zext i8 %1868 to i32
  %1870 = call i32 @s2n_stuffer_skip_read(ptr noundef %1867, i32 noundef %1869)
  %1871 = icmp eq i32 %1870, -1
  br i1 %1871, label %1872, label %1925

1872:                                             ; preds = %1864
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

1874:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 4, ptr %50) #9
  %1875 = call ptr @__errno_location() #10
  %1876 = load i32, ptr %1875, align 4, !tbaa !5
  store i32 %1876, ptr %50, align 4, !tbaa !5
  %1877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1878 = call i32 @s2n_print_stacktrace(ptr noundef %1877)
  %1879 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1880 = trunc i8 %1879 to i1
  br i1 %1880, label %1881, label %1903

1881:                                             ; preds = %1874
  %1882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1883 = call i32 @fileno(ptr noundef %1882) #9
  %1884 = call i32 @isatty(i32 noundef %1883) #9
  %1885 = icmp ne i32 %1884, 0
  br i1 %1885, label %1886, label %1903

1886:                                             ; preds = %1881
  %1887 = load i32, ptr %50, align 4, !tbaa !5
  %1888 = call ptr @__errno_location() #10
  store i32 %1887, ptr %1888, align 4, !tbaa !5
  %1889 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1890 = load i32, ptr @test_count, align 4, !tbaa !5
  %1891 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  %1893 = call ptr @s2n_strerror(i32 noundef %1892, ptr noundef @.str.4)
  %1894 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1895 = load i32, ptr %1894, align 4, !tbaa !5
  %1896 = call ptr @s2n_strerror_debug(i32 noundef %1895, ptr noundef @.str.4)
  %1897 = call ptr @__errno_location() #10
  %1898 = load i32, ptr %1897, align 4, !tbaa !5
  %1899 = call ptr @strerror(i32 noundef %1898) #9
  %1900 = call ptr @__errno_location() #10
  %1901 = load i32, ptr %1900, align 4, !tbaa !5
  %1902 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1889, ptr noundef @.str.2, i32 noundef %1890, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1893, ptr noundef %1896, ptr noundef %1899, i32 noundef %1901) #9
  br label %1920

1903:                                             ; preds = %1881, %1874
  %1904 = load i32, ptr %50, align 4, !tbaa !5
  %1905 = call ptr @__errno_location() #10
  store i32 %1904, ptr %1905, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = load i32, ptr @test_count, align 4, !tbaa !5
  %1908 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1909 = load i32, ptr %1908, align 4, !tbaa !5
  %1910 = call ptr @s2n_strerror(i32 noundef %1909, ptr noundef @.str.4)
  %1911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1912 = load i32, ptr %1911, align 4, !tbaa !5
  %1913 = call ptr @s2n_strerror_debug(i32 noundef %1912, ptr noundef @.str.4)
  %1914 = call ptr @__errno_location() #10
  %1915 = load i32, ptr %1914, align 4, !tbaa !5
  %1916 = call ptr @strerror(i32 noundef %1915) #9
  %1917 = call ptr @__errno_location() #10
  %1918 = load i32, ptr %1917, align 4, !tbaa !5
  %1919 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1906, ptr noundef @.str.5, i32 noundef %1907, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 128, ptr noundef %1910, ptr noundef %1913, ptr noundef %1916, i32 noundef %1918) #9
  br label %1920

1920:                                             ; preds = %1903, %1886
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #9
  br label %1921

1921:                                             ; preds = %1920
  br label %1922

1922:                                             ; preds = %1921
  call void @exit(i32 noundef 1) #11
  unreachable

1923:                                             ; No predecessors!
  br label %1924

1924:                                             ; preds = %1923
  br label %1925

1925:                                             ; preds = %1924, %1864
  br label %1926

1926:                                             ; preds = %1925
  br label %1927

1927:                                             ; preds = %1926
  call void @llvm.lifetime.start.p0(i64 2, ptr %51) #9
  store i16 0, ptr %51, align 2, !tbaa !47
  br label %1928

1928:                                             ; preds = %1927
  %1929 = load i32, ptr @test_count, align 4, !tbaa !5
  %1930 = add nsw i32 %1929, 1
  store i32 %1930, ptr @test_count, align 4, !tbaa !5
  %1931 = load ptr, ptr %46, align 8, !tbaa !9
  %1932 = call i32 @s2n_stuffer_read_uint16(ptr noundef %1931, ptr noundef %51)
  %1933 = icmp eq i32 %1932, -1
  br i1 %1933, label %1934, label %1987

1934:                                             ; preds = %1928
  br label %1935

1935:                                             ; preds = %1934
  br label %1936

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

1943:                                             ; preds = %1936
  %1944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1945 = call i32 @fileno(ptr noundef %1944) #9
  %1946 = call i32 @isatty(i32 noundef %1945) #9
  %1947 = icmp ne i32 %1946, 0
  br i1 %1947, label %1948, label %1965

1948:                                             ; preds = %1943
  %1949 = load i32, ptr %52, align 4, !tbaa !5
  %1950 = call ptr @__errno_location() #10
  store i32 %1949, ptr %1950, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1954 = load i32, ptr %1953, align 4, !tbaa !5
  %1955 = call ptr @s2n_strerror(i32 noundef %1954, ptr noundef @.str.4)
  %1956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1957 = load i32, ptr %1956, align 4, !tbaa !5
  %1958 = call ptr @s2n_strerror_debug(i32 noundef %1957, ptr noundef @.str.4)
  %1959 = call ptr @__errno_location() #10
  %1960 = load i32, ptr %1959, align 4, !tbaa !5
  %1961 = call ptr @strerror(i32 noundef %1960) #9
  %1962 = call ptr @__errno_location() #10
  %1963 = load i32, ptr %1962, align 4, !tbaa !5
  %1964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1951, ptr noundef @.str.2, i32 noundef %1952, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 131, ptr noundef %1955, ptr noundef %1958, ptr noundef %1961, i32 noundef %1963) #9
  br label %1982

1965:                                             ; preds = %1943, %1936
  %1966 = load i32, ptr %52, align 4, !tbaa !5
  %1967 = call ptr @__errno_location() #10
  store i32 %1966, ptr %1967, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = load i32, ptr @test_count, align 4, !tbaa !5
  %1970 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1971 = load i32, ptr %1970, align 4, !tbaa !5
  %1972 = call ptr @s2n_strerror(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @s2n_strerror_debug(i32 noundef %1974, ptr noundef @.str.4)
  %1976 = call ptr @__errno_location() #10
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call ptr @strerror(i32 noundef %1977) #9
  %1979 = call ptr @__errno_location() #10
  %1980 = load i32, ptr %1979, align 4, !tbaa !5
  %1981 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1968, ptr noundef @.str.5, i32 noundef %1969, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 131, ptr noundef %1972, ptr noundef %1975, ptr noundef %1978, i32 noundef %1980) #9
  br label %1982

1982:                                             ; preds = %1965, %1948
  call void @llvm.lifetime.end.p0(i64 4, ptr %52) #9
  br label %1983

1983:                                             ; preds = %1982
  br label %1984

1984:                                             ; preds = %1983
  call void @exit(i32 noundef 1) #11
  unreachable

1985:                                             ; No predecessors!
  br label %1986

1986:                                             ; preds = %1985
  br label %1987

1987:                                             ; preds = %1986, %1928
  br label %1988

1988:                                             ; preds = %1987
  br label %1989

1989:                                             ; preds = %1988
  br label %1990

1990:                                             ; preds = %1989
  %1991 = load i32, ptr @test_count, align 4, !tbaa !5
  %1992 = add nsw i32 %1991, 1
  store i32 %1992, ptr @test_count, align 4, !tbaa !5
  %1993 = load i16, ptr %51, align 2, !tbaa !47
  %1994 = zext i16 %1993 to i32
  %1995 = icmp sgt i32 %1994, 0
  br i1 %1995, label %2049, label %1996

1996:                                             ; preds = %1990
  br label %1997

1997:                                             ; preds = %1996
  br label %1998

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

2005:                                             ; preds = %1998
  %2006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2007 = call i32 @fileno(ptr noundef %2006) #9
  %2008 = call i32 @isatty(i32 noundef %2007) #9
  %2009 = icmp ne i32 %2008, 0
  br i1 %2009, label %2010, label %2027

2010:                                             ; preds = %2005
  %2011 = load i32, ptr %53, align 4, !tbaa !5
  %2012 = call ptr @__errno_location() #10
  store i32 %2011, ptr %2012, align 4, !tbaa !5
  %2013 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2014 = load i32, ptr @test_count, align 4, !tbaa !5
  %2015 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2016 = load i32, ptr %2015, align 4, !tbaa !5
  %2017 = call ptr @s2n_strerror(i32 noundef %2016, ptr noundef @.str.4)
  %2018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2019 = load i32, ptr %2018, align 4, !tbaa !5
  %2020 = call ptr @s2n_strerror_debug(i32 noundef %2019, ptr noundef @.str.4)
  %2021 = call ptr @__errno_location() #10
  %2022 = load i32, ptr %2021, align 4, !tbaa !5
  %2023 = call ptr @strerror(i32 noundef %2022) #9
  %2024 = call ptr @__errno_location() #10
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2013, ptr noundef @.str.2, i32 noundef %2014, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2017, ptr noundef %2020, ptr noundef %2023, i32 noundef %2025) #9
  br label %2044

2027:                                             ; preds = %2005, %1998
  %2028 = load i32, ptr %53, align 4, !tbaa !5
  %2029 = call ptr @__errno_location() #10
  store i32 %2028, ptr %2029, align 4, !tbaa !5
  %2030 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2031 = load i32, ptr @test_count, align 4, !tbaa !5
  %2032 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2033 = load i32, ptr %2032, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef @.str.4)
  %2035 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2036 = load i32, ptr %2035, align 4, !tbaa !5
  %2037 = call ptr @s2n_strerror_debug(i32 noundef %2036, ptr noundef @.str.4)
  %2038 = call ptr @__errno_location() #10
  %2039 = load i32, ptr %2038, align 4, !tbaa !5
  %2040 = call ptr @strerror(i32 noundef %2039) #9
  %2041 = call ptr @__errno_location() #10
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2030, ptr noundef @.str.5, i32 noundef %2031, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 132, ptr noundef %2034, ptr noundef %2037, ptr noundef %2040, i32 noundef %2042) #9
  br label %2044

2044:                                             ; preds = %2027, %2010
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #9
  br label %2045

2045:                                             ; preds = %2044
  br label %2046

2046:                                             ; preds = %2045
  call void @exit(i32 noundef 1) #11
  unreachable

2047:                                             ; No predecessors!
  br label %2048

2048:                                             ; preds = %2047
  br label %2049

2049:                                             ; preds = %2048, %1990
  br label %2050

2050:                                             ; preds = %2049
  br label %2051

2051:                                             ; preds = %2050
  br label %2052

2052:                                             ; preds = %2051
  %2053 = load i32, ptr @test_count, align 4, !tbaa !5
  %2054 = add nsw i32 %2053, 1
  store i32 %2054, ptr @test_count, align 4, !tbaa !5
  %2055 = load ptr, ptr %46, align 8, !tbaa !9
  %2056 = load i16, ptr %51, align 2, !tbaa !47
  %2057 = zext i16 %2056 to i32
  %2058 = call i32 @s2n_stuffer_skip_read(ptr noundef %2055, i32 noundef %2057)
  %2059 = icmp eq i32 %2058, -1
  br i1 %2059, label %2060, label %2113

2060:                                             ; preds = %2052
  br label %2061

2061:                                             ; preds = %2060
  br label %2062

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

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

2074:                                             ; preds = %2069
  %2075 = load i32, ptr %54, align 4, !tbaa !5
  %2076 = call ptr @__errno_location() #10
  store i32 %2075, ptr %2076, align 4, !tbaa !5
  %2077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2078 = load i32, ptr @test_count, align 4, !tbaa !5
  %2079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2080 = load i32, ptr %2079, align 4, !tbaa !5
  %2081 = call ptr @s2n_strerror(i32 noundef %2080, ptr noundef @.str.4)
  %2082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2083 = load i32, ptr %2082, align 4, !tbaa !5
  %2084 = call ptr @s2n_strerror_debug(i32 noundef %2083, ptr noundef @.str.4)
  %2085 = call ptr @__errno_location() #10
  %2086 = load i32, ptr %2085, align 4, !tbaa !5
  %2087 = call ptr @strerror(i32 noundef %2086) #9
  %2088 = call ptr @__errno_location() #10
  %2089 = load i32, ptr %2088, align 4, !tbaa !5
  %2090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2077, ptr noundef @.str.2, i32 noundef %2078, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2081, ptr noundef %2084, ptr noundef %2087, i32 noundef %2089) #9
  br label %2108

2091:                                             ; preds = %2069, %2062
  %2092 = load i32, ptr %54, align 4, !tbaa !5
  %2093 = call ptr @__errno_location() #10
  store i32 %2092, ptr %2093, align 4, !tbaa !5
  %2094 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2095 = load i32, ptr @test_count, align 4, !tbaa !5
  %2096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2097 = load i32, ptr %2096, align 4, !tbaa !5
  %2098 = call ptr @s2n_strerror(i32 noundef %2097, ptr noundef @.str.4)
  %2099 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2100 = load i32, ptr %2099, align 4, !tbaa !5
  %2101 = call ptr @s2n_strerror_debug(i32 noundef %2100, ptr noundef @.str.4)
  %2102 = call ptr @__errno_location() #10
  %2103 = load i32, ptr %2102, align 4, !tbaa !5
  %2104 = call ptr @strerror(i32 noundef %2103) #9
  %2105 = call ptr @__errno_location() #10
  %2106 = load i32, ptr %2105, align 4, !tbaa !5
  %2107 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2094, ptr noundef @.str.5, i32 noundef %2095, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2098, ptr noundef %2101, ptr noundef %2104, i32 noundef %2106) #9
  br label %2108

2108:                                             ; preds = %2091, %2074
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #9
  br label %2109

2109:                                             ; preds = %2108
  br label %2110

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

2111:                                             ; No predecessors!
  br label %2112

2112:                                             ; preds = %2111
  br label %2113

2113:                                             ; preds = %2112, %2052
  br label %2114

2114:                                             ; preds = %2113
  br label %2115

2115:                                             ; preds = %2114
  call void @llvm.lifetime.start.p0(i64 2, ptr %55) #9
  store i16 0, ptr %55, align 2, !tbaa !47
  br label %2116

2116:                                             ; preds = %2115
  %2117 = load i32, ptr @test_count, align 4, !tbaa !5
  %2118 = add nsw i32 %2117, 1
  store i32 %2118, ptr @test_count, align 4, !tbaa !5
  %2119 = load ptr, ptr %46, align 8, !tbaa !9
  %2120 = call i32 @s2n_stuffer_read_uint16(ptr noundef %2119, ptr noundef %55)
  %2121 = icmp eq i32 %2120, -1
  br i1 %2121, label %2122, label %2175

2122:                                             ; preds = %2116
  br label %2123

2123:                                             ; preds = %2122
  br label %2124

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

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

2136:                                             ; preds = %2131
  %2137 = load i32, ptr %56, align 4, !tbaa !5
  %2138 = call ptr @__errno_location() #10
  store i32 %2137, ptr %2138, align 4, !tbaa !5
  %2139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2140 = load i32, ptr @test_count, align 4, !tbaa !5
  %2141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror(i32 noundef %2142, ptr noundef @.str.4)
  %2144 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2145 = load i32, ptr %2144, align 4, !tbaa !5
  %2146 = call ptr @s2n_strerror_debug(i32 noundef %2145, ptr noundef @.str.4)
  %2147 = call ptr @__errno_location() #10
  %2148 = load i32, ptr %2147, align 4, !tbaa !5
  %2149 = call ptr @strerror(i32 noundef %2148) #9
  %2150 = call ptr @__errno_location() #10
  %2151 = load i32, ptr %2150, align 4, !tbaa !5
  %2152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2139, ptr noundef @.str.2, i32 noundef %2140, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2143, ptr noundef %2146, ptr noundef %2149, i32 noundef %2151) #9
  br label %2170

2153:                                             ; preds = %2131, %2124
  %2154 = load i32, ptr %56, align 4, !tbaa !5
  %2155 = call ptr @__errno_location() #10
  store i32 %2154, ptr %2155, align 4, !tbaa !5
  %2156 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2157 = load i32, ptr @test_count, align 4, !tbaa !5
  %2158 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2159 = load i32, ptr %2158, align 4, !tbaa !5
  %2160 = call ptr @s2n_strerror(i32 noundef %2159, ptr noundef @.str.4)
  %2161 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2162 = load i32, ptr %2161, align 4, !tbaa !5
  %2163 = call ptr @s2n_strerror_debug(i32 noundef %2162, ptr noundef @.str.4)
  %2164 = call ptr @__errno_location() #10
  %2165 = load i32, ptr %2164, align 4, !tbaa !5
  %2166 = call ptr @strerror(i32 noundef %2165) #9
  %2167 = call ptr @__errno_location() #10
  %2168 = load i32, ptr %2167, align 4, !tbaa !5
  %2169 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2156, ptr noundef @.str.5, i32 noundef %2157, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 136, ptr noundef %2160, ptr noundef %2163, ptr noundef %2166, i32 noundef %2168) #9
  br label %2170

2170:                                             ; preds = %2153, %2136
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #9
  br label %2171

2171:                                             ; preds = %2170
  br label %2172

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

2173:                                             ; No predecessors!
  br label %2174

2174:                                             ; preds = %2173
  br label %2175

2175:                                             ; preds = %2174, %2116
  br label %2176

2176:                                             ; preds = %2175
  br label %2177

2177:                                             ; preds = %2176
  br label %2178

2178:                                             ; preds = %2177
  %2179 = load i32, ptr @test_count, align 4, !tbaa !5
  %2180 = add nsw i32 %2179, 1
  store i32 %2180, ptr @test_count, align 4, !tbaa !5
  %2181 = load i16, ptr %55, align 2, !tbaa !47
  %2182 = zext i16 %2181 to i32
  %2183 = icmp eq i32 %2182, 0
  br i1 %2183, label %2237, label %2184

2184:                                             ; preds = %2178
  br label %2185

2185:                                             ; preds = %2184
  br label %2186

2186:                                             ; preds = %2185
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #9
  %2187 = call ptr @__errno_location() #10
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  store i32 %2188, ptr %57, align 4, !tbaa !5
  %2189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2190 = call i32 @s2n_print_stacktrace(ptr noundef %2189)
  %2191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2192 = trunc i8 %2191 to i1
  br i1 %2192, label %2193, label %2215

2193:                                             ; preds = %2186
  %2194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2195 = call i32 @fileno(ptr noundef %2194) #9
  %2196 = call i32 @isatty(i32 noundef %2195) #9
  %2197 = icmp ne i32 %2196, 0
  br i1 %2197, label %2198, label %2215

2198:                                             ; preds = %2193
  %2199 = load i32, ptr %57, align 4, !tbaa !5
  %2200 = call ptr @__errno_location() #10
  store i32 %2199, ptr %2200, align 4, !tbaa !5
  %2201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2204 = load i32, ptr %2203, align 4, !tbaa !5
  %2205 = call ptr @s2n_strerror(i32 noundef %2204, ptr noundef @.str.4)
  %2206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2207 = load i32, ptr %2206, align 4, !tbaa !5
  %2208 = call ptr @s2n_strerror_debug(i32 noundef %2207, ptr noundef @.str.4)
  %2209 = call ptr @__errno_location() #10
  %2210 = load i32, ptr %2209, align 4, !tbaa !5
  %2211 = call ptr @strerror(i32 noundef %2210) #9
  %2212 = call ptr @__errno_location() #10
  %2213 = load i32, ptr %2212, align 4, !tbaa !5
  %2214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2201, ptr noundef @.str.2, i32 noundef %2202, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2205, ptr noundef %2208, ptr noundef %2211, i32 noundef %2213) #9
  br label %2232

2215:                                             ; preds = %2193, %2186
  %2216 = load i32, ptr %57, align 4, !tbaa !5
  %2217 = call ptr @__errno_location() #10
  store i32 %2216, ptr %2217, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2221 = load i32, ptr %2220, align 4, !tbaa !5
  %2222 = call ptr @s2n_strerror(i32 noundef %2221, ptr noundef @.str.4)
  %2223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2224 = load i32, ptr %2223, align 4, !tbaa !5
  %2225 = call ptr @s2n_strerror_debug(i32 noundef %2224, ptr noundef @.str.4)
  %2226 = call ptr @__errno_location() #10
  %2227 = load i32, ptr %2226, align 4, !tbaa !5
  %2228 = call ptr @strerror(i32 noundef %2227) #9
  %2229 = call ptr @__errno_location() #10
  %2230 = load i32, ptr %2229, align 4, !tbaa !5
  %2231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2218, ptr noundef @.str.5, i32 noundef %2219, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 137, ptr noundef %2222, ptr noundef %2225, ptr noundef %2228, i32 noundef %2230) #9
  br label %2232

2232:                                             ; preds = %2215, %2198
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #9
  br label %2233

2233:                                             ; preds = %2232
  br label %2234

2234:                                             ; preds = %2233
  call void @exit(i32 noundef 1) #11
  unreachable

2235:                                             ; No predecessors!
  br label %2236

2236:                                             ; preds = %2235
  br label %2237

2237:                                             ; preds = %2236, %2178
  br label %2238

2238:                                             ; preds = %2237
  br label %2239

2239:                                             ; preds = %2238
  br label %2240

2240:                                             ; preds = %2239
  %2241 = load i32, ptr @test_count, align 4, !tbaa !5
  %2242 = add nsw i32 %2241, 1
  store i32 %2242, ptr @test_count, align 4, !tbaa !5
  %2243 = load ptr, ptr %46, align 8, !tbaa !9
  %2244 = getelementptr inbounds %struct.s2n_stuffer, ptr %2243, i32 0, i32 2
  %2245 = load i32, ptr %2244, align 4, !tbaa !48
  %2246 = load ptr, ptr %46, align 8, !tbaa !9
  %2247 = getelementptr inbounds %struct.s2n_stuffer, ptr %2246, i32 0, i32 1
  %2248 = load i32, ptr %2247, align 8, !tbaa !49
  %2249 = sub i32 %2245, %2248
  %2250 = icmp eq i32 %2249, 0
  br i1 %2250, label %2304, label %2251

2251:                                             ; preds = %2240
  br label %2252

2252:                                             ; preds = %2251
  br label %2253

2253:                                             ; preds = %2252
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #9
  %2254 = call ptr @__errno_location() #10
  %2255 = load i32, ptr %2254, align 4, !tbaa !5
  store i32 %2255, ptr %58, align 4, !tbaa !5
  %2256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2257 = call i32 @s2n_print_stacktrace(ptr noundef %2256)
  %2258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2259 = trunc i8 %2258 to i1
  br i1 %2259, label %2260, label %2282

2260:                                             ; preds = %2253
  %2261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2262 = call i32 @fileno(ptr noundef %2261) #9
  %2263 = call i32 @isatty(i32 noundef %2262) #9
  %2264 = icmp ne i32 %2263, 0
  br i1 %2264, label %2265, label %2282

2265:                                             ; preds = %2260
  %2266 = load i32, ptr %58, align 4, !tbaa !5
  %2267 = call ptr @__errno_location() #10
  store i32 %2266, ptr %2267, align 4, !tbaa !5
  %2268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2269 = load i32, ptr @test_count, align 4, !tbaa !5
  %2270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2271 = load i32, ptr %2270, align 4, !tbaa !5
  %2272 = call ptr @s2n_strerror(i32 noundef %2271, ptr noundef @.str.4)
  %2273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2274 = load i32, ptr %2273, align 4, !tbaa !5
  %2275 = call ptr @s2n_strerror_debug(i32 noundef %2274, ptr noundef @.str.4)
  %2276 = call ptr @__errno_location() #10
  %2277 = load i32, ptr %2276, align 4, !tbaa !5
  %2278 = call ptr @strerror(i32 noundef %2277) #9
  %2279 = call ptr @__errno_location() #10
  %2280 = load i32, ptr %2279, align 4, !tbaa !5
  %2281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2268, ptr noundef @.str.2, i32 noundef %2269, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2272, ptr noundef %2275, ptr noundef %2278, i32 noundef %2280) #9
  br label %2299

2282:                                             ; preds = %2260, %2253
  %2283 = load i32, ptr %58, align 4, !tbaa !5
  %2284 = call ptr @__errno_location() #10
  store i32 %2283, ptr %2284, align 4, !tbaa !5
  %2285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2286 = load i32, ptr @test_count, align 4, !tbaa !5
  %2287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2288 = load i32, ptr %2287, align 4, !tbaa !5
  %2289 = call ptr @s2n_strerror(i32 noundef %2288, ptr noundef @.str.4)
  %2290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2291 = load i32, ptr %2290, align 4, !tbaa !5
  %2292 = call ptr @s2n_strerror_debug(i32 noundef %2291, ptr noundef @.str.4)
  %2293 = call ptr @__errno_location() #10
  %2294 = load i32, ptr %2293, align 4, !tbaa !5
  %2295 = call ptr @strerror(i32 noundef %2294) #9
  %2296 = call ptr @__errno_location() #10
  %2297 = load i32, ptr %2296, align 4, !tbaa !5
  %2298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2285, ptr noundef @.str.5, i32 noundef %2286, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 139, ptr noundef %2289, ptr noundef %2292, ptr noundef %2295, i32 noundef %2297) #9
  br label %2299

2299:                                             ; preds = %2282, %2265
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #9
  br label %2300

2300:                                             ; preds = %2299
  br label %2301

2301:                                             ; preds = %2300
  call void @exit(i32 noundef 1) #11
  unreachable

2302:                                             ; No predecessors!
  br label %2303

2303:                                             ; preds = %2302
  br label %2304

2304:                                             ; preds = %2303, %2240
  br label %2305

2305:                                             ; preds = %2304
  br label %2306

2306:                                             ; preds = %2305
  call void @llvm.lifetime.end.p0(i64 2, ptr %55) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %51) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %47) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #9
  %2307 = call i32 @s2n_config_ptr_free(ptr noundef %42)
  %2308 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %2307, ptr %2308, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %42) #9
  %2309 = call i32 @s2n_connection_ptr_free(ptr noundef %40)
  %2310 = getelementptr inbounds %struct.s2n_result, ptr %60, i32 0, i32 0
  store i32 %2309, ptr %2310, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %40) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %61) #9
  %2311 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %2311, ptr %61, align 8, !tbaa !9
  br label %2312

2312:                                             ; preds = %2306
  %2313 = load i32, ptr @test_count, align 4, !tbaa !5
  %2314 = add nsw i32 %2313, 1
  store i32 %2314, ptr @test_count, align 4, !tbaa !5
  %2315 = load ptr, ptr %61, align 8, !tbaa !9
  %2316 = icmp eq ptr %2315, null
  br i1 %2316, label %2317, label %2370

2317:                                             ; preds = %2312
  br label %2318

2318:                                             ; preds = %2317
  br label %2319

2319:                                             ; preds = %2318
  call void @llvm.lifetime.start.p0(i64 4, ptr %62) #9
  %2320 = call ptr @__errno_location() #10
  %2321 = load i32, ptr %2320, align 4, !tbaa !5
  store i32 %2321, ptr %62, align 4, !tbaa !5
  %2322 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2323 = call i32 @s2n_print_stacktrace(ptr noundef %2322)
  %2324 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2325 = trunc i8 %2324 to i1
  br i1 %2325, label %2326, label %2348

2326:                                             ; preds = %2319
  %2327 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2328 = call i32 @fileno(ptr noundef %2327) #9
  %2329 = call i32 @isatty(i32 noundef %2328) #9
  %2330 = icmp ne i32 %2329, 0
  br i1 %2330, label %2331, label %2348

2331:                                             ; preds = %2326
  %2332 = load i32, ptr %62, align 4, !tbaa !5
  %2333 = call ptr @__errno_location() #10
  store i32 %2332, ptr %2333, align 4, !tbaa !5
  %2334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2335 = load i32, ptr @test_count, align 4, !tbaa !5
  %2336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2337 = load i32, ptr %2336, align 4, !tbaa !5
  %2338 = call ptr @s2n_strerror(i32 noundef %2337, ptr noundef @.str.4)
  %2339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2340 = load i32, ptr %2339, align 4, !tbaa !5
  %2341 = call ptr @s2n_strerror_debug(i32 noundef %2340, ptr noundef @.str.4)
  %2342 = call ptr @__errno_location() #10
  %2343 = load i32, ptr %2342, align 4, !tbaa !5
  %2344 = call ptr @strerror(i32 noundef %2343) #9
  %2345 = call ptr @__errno_location() #10
  %2346 = load i32, ptr %2345, align 4, !tbaa !5
  %2347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2334, ptr noundef @.str.2, i32 noundef %2335, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2338, ptr noundef %2341, ptr noundef %2344, i32 noundef %2346) #9
  br label %2365

2348:                                             ; preds = %2326, %2319
  %2349 = load i32, ptr %62, align 4, !tbaa !5
  %2350 = call ptr @__errno_location() #10
  store i32 %2349, ptr %2350, align 4, !tbaa !5
  %2351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2352 = load i32, ptr @test_count, align 4, !tbaa !5
  %2353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2354 = load i32, ptr %2353, align 4, !tbaa !5
  %2355 = call ptr @s2n_strerror(i32 noundef %2354, ptr noundef @.str.4)
  %2356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2357 = load i32, ptr %2356, align 4, !tbaa !5
  %2358 = call ptr @s2n_strerror_debug(i32 noundef %2357, ptr noundef @.str.4)
  %2359 = call ptr @__errno_location() #10
  %2360 = load i32, ptr %2359, align 4, !tbaa !5
  %2361 = call ptr @strerror(i32 noundef %2360) #9
  %2362 = call ptr @__errno_location() #10
  %2363 = load i32, ptr %2362, align 4, !tbaa !5
  %2364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2351, ptr noundef @.str.5, i32 noundef %2352, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 146, ptr noundef %2355, ptr noundef %2358, ptr noundef %2361, i32 noundef %2363) #9
  br label %2365

2365:                                             ; preds = %2348, %2331
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #9
  br label %2366

2366:                                             ; preds = %2365
  br label %2367

2367:                                             ; preds = %2366
  call void @exit(i32 noundef 1) #11
  unreachable

2368:                                             ; No predecessors!
  br label %2369

2369:                                             ; preds = %2368
  br label %2370

2370:                                             ; preds = %2369, %2312
  br label %2371

2371:                                             ; preds = %2370
  br label %2372

2372:                                             ; preds = %2371
  call void @llvm.lifetime.start.p0(i64 8, ptr %63) #9
  %2373 = call ptr @s2n_config_new()
  store ptr %2373, ptr %63, align 8, !tbaa !9
  br label %2374

2374:                                             ; preds = %2372
  %2375 = load i32, ptr @test_count, align 4, !tbaa !5
  %2376 = add nsw i32 %2375, 1
  store i32 %2376, ptr @test_count, align 4, !tbaa !5
  %2377 = load ptr, ptr %63, align 8, !tbaa !9
  %2378 = icmp eq ptr %2377, null
  br i1 %2378, label %2379, label %2432

2379:                                             ; preds = %2374
  br label %2380

2380:                                             ; preds = %2379
  br label %2381

2381:                                             ; preds = %2380
  call void @llvm.lifetime.start.p0(i64 4, ptr %64) #9
  %2382 = call ptr @__errno_location() #10
  %2383 = load i32, ptr %2382, align 4, !tbaa !5
  store i32 %2383, ptr %64, align 4, !tbaa !5
  %2384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2385 = call i32 @s2n_print_stacktrace(ptr noundef %2384)
  %2386 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2387 = trunc i8 %2386 to i1
  br i1 %2387, label %2388, label %2410

2388:                                             ; preds = %2381
  %2389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2390 = call i32 @fileno(ptr noundef %2389) #9
  %2391 = call i32 @isatty(i32 noundef %2390) #9
  %2392 = icmp ne i32 %2391, 0
  br i1 %2392, label %2393, label %2410

2393:                                             ; preds = %2388
  %2394 = load i32, ptr %64, align 4, !tbaa !5
  %2395 = call ptr @__errno_location() #10
  store i32 %2394, ptr %2395, align 4, !tbaa !5
  %2396 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2397 = load i32, ptr @test_count, align 4, !tbaa !5
  %2398 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2399 = load i32, ptr %2398, align 4, !tbaa !5
  %2400 = call ptr @s2n_strerror(i32 noundef %2399, ptr noundef @.str.4)
  %2401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2402 = load i32, ptr %2401, align 4, !tbaa !5
  %2403 = call ptr @s2n_strerror_debug(i32 noundef %2402, ptr noundef @.str.4)
  %2404 = call ptr @__errno_location() #10
  %2405 = load i32, ptr %2404, align 4, !tbaa !5
  %2406 = call ptr @strerror(i32 noundef %2405) #9
  %2407 = call ptr @__errno_location() #10
  %2408 = load i32, ptr %2407, align 4, !tbaa !5
  %2409 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2396, ptr noundef @.str.2, i32 noundef %2397, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2400, ptr noundef %2403, ptr noundef %2406, i32 noundef %2408) #9
  br label %2427

2410:                                             ; preds = %2388, %2381
  %2411 = load i32, ptr %64, align 4, !tbaa !5
  %2412 = call ptr @__errno_location() #10
  store i32 %2411, ptr %2412, align 4, !tbaa !5
  %2413 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2414 = load i32, ptr @test_count, align 4, !tbaa !5
  %2415 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2416 = load i32, ptr %2415, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef @.str.4)
  %2418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2419 = load i32, ptr %2418, align 4, !tbaa !5
  %2420 = call ptr @s2n_strerror_debug(i32 noundef %2419, ptr noundef @.str.4)
  %2421 = call ptr @__errno_location() #10
  %2422 = load i32, ptr %2421, align 4, !tbaa !5
  %2423 = call ptr @strerror(i32 noundef %2422) #9
  %2424 = call ptr @__errno_location() #10
  %2425 = load i32, ptr %2424, align 4, !tbaa !5
  %2426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2413, ptr noundef @.str.5, i32 noundef %2414, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 150, ptr noundef %2417, ptr noundef %2420, ptr noundef %2423, i32 noundef %2425) #9
  br label %2427

2427:                                             ; preds = %2410, %2393
  call void @llvm.lifetime.end.p0(i64 4, ptr %64) #9
  br label %2428

2428:                                             ; preds = %2427
  br label %2429

2429:                                             ; preds = %2428
  call void @exit(i32 noundef 1) #11
  unreachable

2430:                                             ; No predecessors!
  br label %2431

2431:                                             ; preds = %2430
  br label %2432

2432:                                             ; preds = %2431, %2374
  br label %2433

2433:                                             ; preds = %2432
  br label %2434

2434:                                             ; preds = %2433
  br label %2435

2435:                                             ; preds = %2434
  %2436 = load i32, ptr @test_count, align 4, !tbaa !5
  %2437 = add nsw i32 %2436, 1
  store i32 %2437, ptr @test_count, align 4, !tbaa !5
  %2438 = load ptr, ptr %61, align 8, !tbaa !9
  %2439 = load ptr, ptr %63, align 8, !tbaa !9
  %2440 = call i32 @s2n_connection_set_config(ptr noundef %2438, ptr noundef %2439)
  %2441 = icmp eq i32 %2440, -1
  br i1 %2441, label %2442, label %2495

2442:                                             ; preds = %2435
  br label %2443

2443:                                             ; preds = %2442
  br label %2444

2444:                                             ; preds = %2443
  call void @llvm.lifetime.start.p0(i64 4, ptr %65) #9
  %2445 = call ptr @__errno_location() #10
  %2446 = load i32, ptr %2445, align 4, !tbaa !5
  store i32 %2446, ptr %65, align 4, !tbaa !5
  %2447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2448 = call i32 @s2n_print_stacktrace(ptr noundef %2447)
  %2449 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2450 = trunc i8 %2449 to i1
  br i1 %2450, label %2451, label %2473

2451:                                             ; preds = %2444
  %2452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2453 = call i32 @fileno(ptr noundef %2452) #9
  %2454 = call i32 @isatty(i32 noundef %2453) #9
  %2455 = icmp ne i32 %2454, 0
  br i1 %2455, label %2456, label %2473

2456:                                             ; preds = %2451
  %2457 = load i32, ptr %65, align 4, !tbaa !5
  %2458 = call ptr @__errno_location() #10
  store i32 %2457, ptr %2458, align 4, !tbaa !5
  %2459 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2460 = load i32, ptr @test_count, align 4, !tbaa !5
  %2461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2462 = load i32, ptr %2461, align 4, !tbaa !5
  %2463 = call ptr @s2n_strerror(i32 noundef %2462, ptr noundef @.str.4)
  %2464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror_debug(i32 noundef %2465, ptr noundef @.str.4)
  %2467 = call ptr @__errno_location() #10
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call ptr @strerror(i32 noundef %2468) #9
  %2470 = call ptr @__errno_location() #10
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2459, ptr noundef @.str.2, i32 noundef %2460, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2463, ptr noundef %2466, ptr noundef %2469, i32 noundef %2471) #9
  br label %2490

2473:                                             ; preds = %2451, %2444
  %2474 = load i32, ptr %65, align 4, !tbaa !5
  %2475 = call ptr @__errno_location() #10
  store i32 %2474, ptr %2475, align 4, !tbaa !5
  %2476 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2477 = load i32, ptr @test_count, align 4, !tbaa !5
  %2478 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2479 = load i32, ptr %2478, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef @.str.4)
  %2481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2482 = load i32, ptr %2481, align 4, !tbaa !5
  %2483 = call ptr @s2n_strerror_debug(i32 noundef %2482, ptr noundef @.str.4)
  %2484 = call ptr @__errno_location() #10
  %2485 = load i32, ptr %2484, align 4, !tbaa !5
  %2486 = call ptr @strerror(i32 noundef %2485) #9
  %2487 = call ptr @__errno_location() #10
  %2488 = load i32, ptr %2487, align 4, !tbaa !5
  %2489 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2476, ptr noundef @.str.5, i32 noundef %2477, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2480, ptr noundef %2483, ptr noundef %2486, i32 noundef %2488) #9
  br label %2490

2490:                                             ; preds = %2473, %2456
  call void @llvm.lifetime.end.p0(i64 4, ptr %65) #9
  br label %2491

2491:                                             ; preds = %2490
  br label %2492

2492:                                             ; preds = %2491
  call void @exit(i32 noundef 1) #11
  unreachable

2493:                                             ; No predecessors!
  br label %2494

2494:                                             ; preds = %2493
  br label %2495

2495:                                             ; preds = %2494, %2435
  br label %2496

2496:                                             ; preds = %2495
  br label %2497

2497:                                             ; preds = %2496
  %2498 = load ptr, ptr %61, align 8, !tbaa !9
  %2499 = getelementptr inbounds %struct.s2n_connection, ptr %2498, i32 0, i32 23
  store i8 32, ptr %2499, align 4, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 17, ptr %66) #9
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %66, ptr align 16 @__const.main.ca_data, i64 17, i1 false)
  br label %2500

2500:                                             ; preds = %2497
  %2501 = load i32, ptr @test_count, align 4, !tbaa !5
  %2502 = add nsw i32 %2501, 1
  store i32 %2502, ptr @test_count, align 4, !tbaa !5
  %2503 = load ptr, ptr %63, align 8, !tbaa !9
  %2504 = getelementptr inbounds %struct.s2n_config, ptr %2503, i32 0, i32 56
  %2505 = call i32 @s2n_alloc(ptr noundef %2504, i32 noundef 17)
  %2506 = icmp eq i32 %2505, -1
  br i1 %2506, label %2507, label %2560

2507:                                             ; preds = %2500
  br label %2508

2508:                                             ; preds = %2507
  br label %2509

2509:                                             ; preds = %2508
  call void @llvm.lifetime.start.p0(i64 4, ptr %67) #9
  %2510 = call ptr @__errno_location() #10
  %2511 = load i32, ptr %2510, align 4, !tbaa !5
  store i32 %2511, ptr %67, align 4, !tbaa !5
  %2512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2513 = call i32 @s2n_print_stacktrace(ptr noundef %2512)
  %2514 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2515 = trunc i8 %2514 to i1
  br i1 %2515, label %2516, label %2538

2516:                                             ; preds = %2509
  %2517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2518 = call i32 @fileno(ptr noundef %2517) #9
  %2519 = call i32 @isatty(i32 noundef %2518) #9
  %2520 = icmp ne i32 %2519, 0
  br i1 %2520, label %2521, label %2538

2521:                                             ; preds = %2516
  %2522 = load i32, ptr %67, align 4, !tbaa !5
  %2523 = call ptr @__errno_location() #10
  store i32 %2522, ptr %2523, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = load i32, ptr @test_count, align 4, !tbaa !5
  %2526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2527 = load i32, ptr %2526, align 4, !tbaa !5
  %2528 = call ptr @s2n_strerror(i32 noundef %2527, ptr noundef @.str.4)
  %2529 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2530 = load i32, ptr %2529, align 4, !tbaa !5
  %2531 = call ptr @s2n_strerror_debug(i32 noundef %2530, ptr noundef @.str.4)
  %2532 = call ptr @__errno_location() #10
  %2533 = load i32, ptr %2532, align 4, !tbaa !5
  %2534 = call ptr @strerror(i32 noundef %2533) #9
  %2535 = call ptr @__errno_location() #10
  %2536 = load i32, ptr %2535, align 4, !tbaa !5
  %2537 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2524, ptr noundef @.str.2, i32 noundef %2525, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2528, ptr noundef %2531, ptr noundef %2534, i32 noundef %2536) #9
  br label %2555

2538:                                             ; preds = %2516, %2509
  %2539 = load i32, ptr %67, align 4, !tbaa !5
  %2540 = call ptr @__errno_location() #10
  store i32 %2539, ptr %2540, align 4, !tbaa !5
  %2541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2542 = load i32, ptr @test_count, align 4, !tbaa !5
  %2543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2544 = load i32, ptr %2543, align 4, !tbaa !5
  %2545 = call ptr @s2n_strerror(i32 noundef %2544, ptr noundef @.str.4)
  %2546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2547 = load i32, ptr %2546, align 4, !tbaa !5
  %2548 = call ptr @s2n_strerror_debug(i32 noundef %2547, ptr noundef @.str.4)
  %2549 = call ptr @__errno_location() #10
  %2550 = load i32, ptr %2549, align 4, !tbaa !5
  %2551 = call ptr @strerror(i32 noundef %2550) #9
  %2552 = call ptr @__errno_location() #10
  %2553 = load i32, ptr %2552, align 4, !tbaa !5
  %2554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2541, ptr noundef @.str.5, i32 noundef %2542, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2545, ptr noundef %2548, ptr noundef %2551, i32 noundef %2553) #9
  br label %2555

2555:                                             ; preds = %2538, %2521
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #9
  br label %2556

2556:                                             ; preds = %2555
  br label %2557

2557:                                             ; preds = %2556
  call void @exit(i32 noundef 1) #11
  unreachable

2558:                                             ; No predecessors!
  br label %2559

2559:                                             ; preds = %2558
  br label %2560

2560:                                             ; preds = %2559, %2500
  br label %2561

2561:                                             ; preds = %2560
  br label %2562

2562:                                             ; preds = %2561
  br label %2563

2563:                                             ; preds = %2562
  call void @llvm.lifetime.start.p0(i64 8, ptr %68) #9
  store i64 17, ptr %68, align 8, !tbaa !16
  %2564 = load i64, ptr %68, align 8, !tbaa !16
  %2565 = icmp ne i64 %2564, 0
  br i1 %2565, label %2566, label %2628

2566:                                             ; preds = %2563
  %2567 = load ptr, ptr %63, align 8, !tbaa !9
  %2568 = getelementptr inbounds %struct.s2n_config, ptr %2567, i32 0, i32 56
  %2569 = getelementptr inbounds %struct.s2n_blob, ptr %2568, i32 0, i32 0
  %2570 = load ptr, ptr %2569, align 8, !tbaa !50
  %2571 = getelementptr inbounds [17 x i8], ptr %66, i64 0, i64 0
  %2572 = load i64, ptr %68, align 8, !tbaa !16
  call void @llvm.memmove.p0.p0.i64(ptr align 1 %2570, ptr align 16 %2571, i64 %2572, i1 false)
  %2573 = icmp eq ptr %2570, null
  br i1 %2573, label %2574, label %2627

2574:                                             ; preds = %2566
  br label %2575

2575:                                             ; preds = %2574
  br label %2576

2576:                                             ; preds = %2575
  call void @llvm.lifetime.start.p0(i64 4, ptr %69) #9
  %2577 = call ptr @__errno_location() #10
  %2578 = load i32, ptr %2577, align 4, !tbaa !5
  store i32 %2578, ptr %69, align 4, !tbaa !5
  %2579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2580 = call i32 @s2n_print_stacktrace(ptr noundef %2579)
  %2581 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2582 = trunc i8 %2581 to i1
  br i1 %2582, label %2583, label %2605

2583:                                             ; preds = %2576
  %2584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2585 = call i32 @fileno(ptr noundef %2584) #9
  %2586 = call i32 @isatty(i32 noundef %2585) #9
  %2587 = icmp ne i32 %2586, 0
  br i1 %2587, label %2588, label %2605

2588:                                             ; preds = %2583
  %2589 = load i32, ptr %69, align 4, !tbaa !5
  %2590 = call ptr @__errno_location() #10
  store i32 %2589, ptr %2590, align 4, !tbaa !5
  %2591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2592 = load i32, ptr @test_count, align 4, !tbaa !5
  %2593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2594 = load i32, ptr %2593, align 4, !tbaa !5
  %2595 = call ptr @s2n_strerror(i32 noundef %2594, ptr noundef @.str.4)
  %2596 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2597 = load i32, ptr %2596, align 4, !tbaa !5
  %2598 = call ptr @s2n_strerror_debug(i32 noundef %2597, ptr noundef @.str.4)
  %2599 = call ptr @__errno_location() #10
  %2600 = load i32, ptr %2599, align 4, !tbaa !5
  %2601 = call ptr @strerror(i32 noundef %2600) #9
  %2602 = call ptr @__errno_location() #10
  %2603 = load i32, ptr %2602, align 4, !tbaa !5
  %2604 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2591, ptr noundef @.str.2, i32 noundef %2592, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2595, ptr noundef %2598, ptr noundef %2601, i32 noundef %2603) #9
  br label %2622

2605:                                             ; preds = %2583, %2576
  %2606 = load i32, ptr %69, align 4, !tbaa !5
  %2607 = call ptr @__errno_location() #10
  store i32 %2606, ptr %2607, align 4, !tbaa !5
  %2608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2609 = load i32, ptr @test_count, align 4, !tbaa !5
  %2610 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2611 = load i32, ptr %2610, align 4, !tbaa !5
  %2612 = call ptr @s2n_strerror(i32 noundef %2611, ptr noundef @.str.4)
  %2613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2614 = load i32, ptr %2613, align 4, !tbaa !5
  %2615 = call ptr @s2n_strerror_debug(i32 noundef %2614, ptr noundef @.str.4)
  %2616 = call ptr @__errno_location() #10
  %2617 = load i32, ptr %2616, align 4, !tbaa !5
  %2618 = call ptr @strerror(i32 noundef %2617) #9
  %2619 = call ptr @__errno_location() #10
  %2620 = load i32, ptr %2619, align 4, !tbaa !5
  %2621 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2608, ptr noundef @.str.5, i32 noundef %2609, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 160, ptr noundef %2612, ptr noundef %2615, ptr noundef %2618, i32 noundef %2620) #9
  br label %2622

2622:                                             ; preds = %2605, %2588
  call void @llvm.lifetime.end.p0(i64 4, ptr %69) #9
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

2624:                                             ; preds = %2623
  call void @exit(i32 noundef 1) #11
  unreachable

2625:                                             ; No predecessors!
  br label %2626

2626:                                             ; preds = %2625
  br label %2627

2627:                                             ; preds = %2626, %2566
  br label %2628

2628:                                             ; preds = %2627, %2563
  call void @llvm.lifetime.end.p0(i64 8, ptr %68) #9
  br label %2629

2629:                                             ; preds = %2628
  br label %2630

2630:                                             ; preds = %2629
  br label %2631

2631:                                             ; preds = %2630
  %2632 = load i32, ptr @test_count, align 4, !tbaa !5
  %2633 = add nsw i32 %2632, 1
  store i32 %2633, ptr @test_count, align 4, !tbaa !5
  %2634 = load ptr, ptr %61, align 8, !tbaa !9
  %2635 = call i32 @s2n_cert_req_send(ptr noundef %2634)
  %2636 = icmp eq i32 %2635, -1
  br i1 %2636, label %2637, label %2690

2637:                                             ; preds = %2631
  br label %2638

2638:                                             ; preds = %2637
  br label %2639

2639:                                             ; preds = %2638
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #9
  %2640 = call ptr @__errno_location() #10
  %2641 = load i32, ptr %2640, align 4, !tbaa !5
  store i32 %2641, ptr %70, align 4, !tbaa !5
  %2642 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2643 = call i32 @s2n_print_stacktrace(ptr noundef %2642)
  %2644 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2645 = trunc i8 %2644 to i1
  br i1 %2645, label %2646, label %2668

2646:                                             ; preds = %2639
  %2647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2648 = call i32 @fileno(ptr noundef %2647) #9
  %2649 = call i32 @isatty(i32 noundef %2648) #9
  %2650 = icmp ne i32 %2649, 0
  br i1 %2650, label %2651, label %2668

2651:                                             ; preds = %2646
  %2652 = load i32, ptr %70, align 4, !tbaa !5
  %2653 = call ptr @__errno_location() #10
  store i32 %2652, ptr %2653, align 4, !tbaa !5
  %2654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2655 = load i32, ptr @test_count, align 4, !tbaa !5
  %2656 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2657 = load i32, ptr %2656, align 4, !tbaa !5
  %2658 = call ptr @s2n_strerror(i32 noundef %2657, ptr noundef @.str.4)
  %2659 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2660 = load i32, ptr %2659, align 4, !tbaa !5
  %2661 = call ptr @s2n_strerror_debug(i32 noundef %2660, ptr noundef @.str.4)
  %2662 = call ptr @__errno_location() #10
  %2663 = load i32, ptr %2662, align 4, !tbaa !5
  %2664 = call ptr @strerror(i32 noundef %2663) #9
  %2665 = call ptr @__errno_location() #10
  %2666 = load i32, ptr %2665, align 4, !tbaa !5
  %2667 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2654, ptr noundef @.str.2, i32 noundef %2655, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2658, ptr noundef %2661, ptr noundef %2664, i32 noundef %2666) #9
  br label %2685

2668:                                             ; preds = %2646, %2639
  %2669 = load i32, ptr %70, align 4, !tbaa !5
  %2670 = call ptr @__errno_location() #10
  store i32 %2669, ptr %2670, align 4, !tbaa !5
  %2671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2672 = load i32, ptr @test_count, align 4, !tbaa !5
  %2673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2674 = load i32, ptr %2673, align 4, !tbaa !5
  %2675 = call ptr @s2n_strerror(i32 noundef %2674, ptr noundef @.str.4)
  %2676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2677 = load i32, ptr %2676, align 4, !tbaa !5
  %2678 = call ptr @s2n_strerror_debug(i32 noundef %2677, ptr noundef @.str.4)
  %2679 = call ptr @__errno_location() #10
  %2680 = load i32, ptr %2679, align 4, !tbaa !5
  %2681 = call ptr @strerror(i32 noundef %2680) #9
  %2682 = call ptr @__errno_location() #10
  %2683 = load i32, ptr %2682, align 4, !tbaa !5
  %2684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2671, ptr noundef @.str.5, i32 noundef %2672, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 162, ptr noundef %2675, ptr noundef %2678, ptr noundef %2681, i32 noundef %2683) #9
  br label %2685

2685:                                             ; preds = %2668, %2651
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #9
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  call void @exit(i32 noundef 1) #11
  unreachable

2688:                                             ; No predecessors!
  br label %2689

2689:                                             ; preds = %2688
  br label %2690

2690:                                             ; preds = %2689, %2631
  br label %2691

2691:                                             ; preds = %2690
  br label %2692

2692:                                             ; preds = %2691
  call void @llvm.lifetime.start.p0(i64 8, ptr %71) #9
  %2693 = load ptr, ptr %61, align 8, !tbaa !9
  %2694 = getelementptr inbounds %struct.s2n_connection, ptr %2693, i32 0, i32 52
  %2695 = getelementptr inbounds %struct.s2n_handshake, ptr %2694, i32 0, i32 0
  store ptr %2695, ptr %71, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 1, ptr %72) #9
  store i8 0, ptr %72, align 1, !tbaa !15
  br label %2696

2696:                                             ; preds = %2692
  %2697 = load i32, ptr @test_count, align 4, !tbaa !5
  %2698 = add nsw i32 %2697, 1
  store i32 %2698, ptr @test_count, align 4, !tbaa !5
  %2699 = load ptr, ptr %71, align 8, !tbaa !9
  %2700 = call i32 @s2n_stuffer_read_uint8(ptr noundef %2699, ptr noundef %72)
  %2701 = icmp eq i32 %2700, -1
  br i1 %2701, label %2702, label %2755

2702:                                             ; preds = %2696
  br label %2703

2703:                                             ; preds = %2702
  br label %2704

2704:                                             ; preds = %2703
  call void @llvm.lifetime.start.p0(i64 4, ptr %73) #9
  %2705 = call ptr @__errno_location() #10
  %2706 = load i32, ptr %2705, align 4, !tbaa !5
  store i32 %2706, ptr %73, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @s2n_print_stacktrace(ptr noundef %2707)
  %2709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2710 = trunc i8 %2709 to i1
  br i1 %2710, label %2711, label %2733

2711:                                             ; preds = %2704
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = call i32 @fileno(ptr noundef %2712) #9
  %2714 = call i32 @isatty(i32 noundef %2713) #9
  %2715 = icmp ne i32 %2714, 0
  br i1 %2715, label %2716, label %2733

2716:                                             ; preds = %2711
  %2717 = load i32, ptr %73, align 4, !tbaa !5
  %2718 = call ptr @__errno_location() #10
  store i32 %2717, ptr %2718, align 4, !tbaa !5
  %2719 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2720 = load i32, ptr @test_count, align 4, !tbaa !5
  %2721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2722 = load i32, ptr %2721, align 4, !tbaa !5
  %2723 = call ptr @s2n_strerror(i32 noundef %2722, ptr noundef @.str.4)
  %2724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2725 = load i32, ptr %2724, align 4, !tbaa !5
  %2726 = call ptr @s2n_strerror_debug(i32 noundef %2725, ptr noundef @.str.4)
  %2727 = call ptr @__errno_location() #10
  %2728 = load i32, ptr %2727, align 4, !tbaa !5
  %2729 = call ptr @strerror(i32 noundef %2728) #9
  %2730 = call ptr @__errno_location() #10
  %2731 = load i32, ptr %2730, align 4, !tbaa !5
  %2732 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2719, ptr noundef @.str.2, i32 noundef %2720, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2723, ptr noundef %2726, ptr noundef %2729, i32 noundef %2731) #9
  br label %2750

2733:                                             ; preds = %2711, %2704
  %2734 = load i32, ptr %73, align 4, !tbaa !5
  %2735 = call ptr @__errno_location() #10
  store i32 %2734, ptr %2735, align 4, !tbaa !5
  %2736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2737 = load i32, ptr @test_count, align 4, !tbaa !5
  %2738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2739 = load i32, ptr %2738, align 4, !tbaa !5
  %2740 = call ptr @s2n_strerror(i32 noundef %2739, ptr noundef @.str.4)
  %2741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2742 = load i32, ptr %2741, align 4, !tbaa !5
  %2743 = call ptr @s2n_strerror_debug(i32 noundef %2742, ptr noundef @.str.4)
  %2744 = call ptr @__errno_location() #10
  %2745 = load i32, ptr %2744, align 4, !tbaa !5
  %2746 = call ptr @strerror(i32 noundef %2745) #9
  %2747 = call ptr @__errno_location() #10
  %2748 = load i32, ptr %2747, align 4, !tbaa !5
  %2749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2736, ptr noundef @.str.5, i32 noundef %2737, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 166, ptr noundef %2740, ptr noundef %2743, ptr noundef %2746, i32 noundef %2748) #9
  br label %2750

2750:                                             ; preds = %2733, %2716
  call void @llvm.lifetime.end.p0(i64 4, ptr %73) #9
  br label %2751

2751:                                             ; preds = %2750
  br label %2752

2752:                                             ; preds = %2751
  call void @exit(i32 noundef 1) #11
  unreachable

2753:                                             ; No predecessors!
  br label %2754

2754:                                             ; preds = %2753
  br label %2755

2755:                                             ; preds = %2754, %2696
  br label %2756

2756:                                             ; preds = %2755
  br label %2757

2757:                                             ; preds = %2756
  br label %2758

2758:                                             ; preds = %2757
  %2759 = load i32, ptr @test_count, align 4, !tbaa !5
  %2760 = add nsw i32 %2759, 1
  store i32 %2760, ptr @test_count, align 4, !tbaa !5
  %2761 = load ptr, ptr %71, align 8, !tbaa !9
  %2762 = load i8, ptr %72, align 1, !tbaa !15
  %2763 = zext i8 %2762 to i32
  %2764 = call i32 @s2n_stuffer_skip_read(ptr noundef %2761, i32 noundef %2763)
  %2765 = icmp eq i32 %2764, -1
  br i1 %2765, label %2766, label %2819

2766:                                             ; preds = %2758
  br label %2767

2767:                                             ; preds = %2766
  br label %2768

2768:                                             ; preds = %2767
  call void @llvm.lifetime.start.p0(i64 4, ptr %74) #9
  %2769 = call ptr @__errno_location() #10
  %2770 = load i32, ptr %2769, align 4, !tbaa !5
  store i32 %2770, ptr %74, align 4, !tbaa !5
  %2771 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2772 = call i32 @s2n_print_stacktrace(ptr noundef %2771)
  %2773 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2774 = trunc i8 %2773 to i1
  br i1 %2774, label %2775, label %2797

2775:                                             ; preds = %2768
  %2776 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2777 = call i32 @fileno(ptr noundef %2776) #9
  %2778 = call i32 @isatty(i32 noundef %2777) #9
  %2779 = icmp ne i32 %2778, 0
  br i1 %2779, label %2780, label %2797

2780:                                             ; preds = %2775
  %2781 = load i32, ptr %74, align 4, !tbaa !5
  %2782 = call ptr @__errno_location() #10
  store i32 %2781, ptr %2782, align 4, !tbaa !5
  %2783 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2784 = load i32, ptr @test_count, align 4, !tbaa !5
  %2785 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call ptr @s2n_strerror(i32 noundef %2786, ptr noundef @.str.4)
  %2788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2789 = load i32, ptr %2788, align 4, !tbaa !5
  %2790 = call ptr @s2n_strerror_debug(i32 noundef %2789, ptr noundef @.str.4)
  %2791 = call ptr @__errno_location() #10
  %2792 = load i32, ptr %2791, align 4, !tbaa !5
  %2793 = call ptr @strerror(i32 noundef %2792) #9
  %2794 = call ptr @__errno_location() #10
  %2795 = load i32, ptr %2794, align 4, !tbaa !5
  %2796 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2783, ptr noundef @.str.2, i32 noundef %2784, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2787, ptr noundef %2790, ptr noundef %2793, i32 noundef %2795) #9
  br label %2814

2797:                                             ; preds = %2775, %2768
  %2798 = load i32, ptr %74, align 4, !tbaa !5
  %2799 = call ptr @__errno_location() #10
  store i32 %2798, ptr %2799, align 4, !tbaa !5
  %2800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2801 = load i32, ptr @test_count, align 4, !tbaa !5
  %2802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call ptr @s2n_strerror(i32 noundef %2803, ptr noundef @.str.4)
  %2805 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2806 = load i32, ptr %2805, align 4, !tbaa !5
  %2807 = call ptr @s2n_strerror_debug(i32 noundef %2806, ptr noundef @.str.4)
  %2808 = call ptr @__errno_location() #10
  %2809 = load i32, ptr %2808, align 4, !tbaa !5
  %2810 = call ptr @strerror(i32 noundef %2809) #9
  %2811 = call ptr @__errno_location() #10
  %2812 = load i32, ptr %2811, align 4, !tbaa !5
  %2813 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2800, ptr noundef @.str.5, i32 noundef %2801, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2804, ptr noundef %2807, ptr noundef %2810, i32 noundef %2812) #9
  br label %2814

2814:                                             ; preds = %2797, %2780
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #9
  br label %2815

2815:                                             ; preds = %2814
  br label %2816

2816:                                             ; preds = %2815
  call void @exit(i32 noundef 1) #11
  unreachable

2817:                                             ; No predecessors!
  br label %2818

2818:                                             ; preds = %2817
  br label %2819

2819:                                             ; preds = %2818, %2758
  br label %2820

2820:                                             ; preds = %2819
  br label %2821

2821:                                             ; preds = %2820
  call void @llvm.lifetime.start.p0(i64 2, ptr %75) #9
  store i16 0, ptr %75, align 2, !tbaa !47
  br label %2822

2822:                                             ; preds = %2821
  %2823 = load i32, ptr @test_count, align 4, !tbaa !5
  %2824 = add nsw i32 %2823, 1
  store i32 %2824, ptr @test_count, align 4, !tbaa !5
  %2825 = load ptr, ptr %71, align 8, !tbaa !9
  %2826 = call i32 @s2n_stuffer_read_uint16(ptr noundef %2825, ptr noundef %75)
  %2827 = icmp eq i32 %2826, -1
  br i1 %2827, label %2828, label %2881

2828:                                             ; preds = %2822
  br label %2829

2829:                                             ; preds = %2828
  br label %2830

2830:                                             ; preds = %2829
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #9
  %2831 = call ptr @__errno_location() #10
  %2832 = load i32, ptr %2831, align 4, !tbaa !5
  store i32 %2832, ptr %76, align 4, !tbaa !5
  %2833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2834 = call i32 @s2n_print_stacktrace(ptr noundef %2833)
  %2835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2836 = trunc i8 %2835 to i1
  br i1 %2836, label %2837, label %2859

2837:                                             ; preds = %2830
  %2838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2839 = call i32 @fileno(ptr noundef %2838) #9
  %2840 = call i32 @isatty(i32 noundef %2839) #9
  %2841 = icmp ne i32 %2840, 0
  br i1 %2841, label %2842, label %2859

2842:                                             ; preds = %2837
  %2843 = load i32, ptr %76, align 4, !tbaa !5
  %2844 = call ptr @__errno_location() #10
  store i32 %2843, ptr %2844, align 4, !tbaa !5
  %2845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2846 = load i32, ptr @test_count, align 4, !tbaa !5
  %2847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2848 = load i32, ptr %2847, align 4, !tbaa !5
  %2849 = call ptr @s2n_strerror(i32 noundef %2848, ptr noundef @.str.4)
  %2850 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2851 = load i32, ptr %2850, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror_debug(i32 noundef %2851, ptr noundef @.str.4)
  %2853 = call ptr @__errno_location() #10
  %2854 = load i32, ptr %2853, align 4, !tbaa !5
  %2855 = call ptr @strerror(i32 noundef %2854) #9
  %2856 = call ptr @__errno_location() #10
  %2857 = load i32, ptr %2856, align 4, !tbaa !5
  %2858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2845, ptr noundef @.str.2, i32 noundef %2846, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2849, ptr noundef %2852, ptr noundef %2855, i32 noundef %2857) #9
  br label %2876

2859:                                             ; preds = %2837, %2830
  %2860 = load i32, ptr %76, align 4, !tbaa !5
  %2861 = call ptr @__errno_location() #10
  store i32 %2860, ptr %2861, align 4, !tbaa !5
  %2862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2863 = load i32, ptr @test_count, align 4, !tbaa !5
  %2864 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2865 = load i32, ptr %2864, align 4, !tbaa !5
  %2866 = call ptr @s2n_strerror(i32 noundef %2865, ptr noundef @.str.4)
  %2867 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2868 = load i32, ptr %2867, align 4, !tbaa !5
  %2869 = call ptr @s2n_strerror_debug(i32 noundef %2868, ptr noundef @.str.4)
  %2870 = call ptr @__errno_location() #10
  %2871 = load i32, ptr %2870, align 4, !tbaa !5
  %2872 = call ptr @strerror(i32 noundef %2871) #9
  %2873 = call ptr @__errno_location() #10
  %2874 = load i32, ptr %2873, align 4, !tbaa !5
  %2875 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2862, ptr noundef @.str.5, i32 noundef %2863, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 170, ptr noundef %2866, ptr noundef %2869, ptr noundef %2872, i32 noundef %2874) #9
  br label %2876

2876:                                             ; preds = %2859, %2842
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #9
  br label %2877

2877:                                             ; preds = %2876
  br label %2878

2878:                                             ; preds = %2877
  call void @exit(i32 noundef 1) #11
  unreachable

2879:                                             ; No predecessors!
  br label %2880

2880:                                             ; preds = %2879
  br label %2881

2881:                                             ; preds = %2880, %2822
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882
  br label %2884

2884:                                             ; preds = %2883
  %2885 = load i32, ptr @test_count, align 4, !tbaa !5
  %2886 = add nsw i32 %2885, 1
  store i32 %2886, ptr @test_count, align 4, !tbaa !5
  %2887 = load i16, ptr %75, align 2, !tbaa !47
  %2888 = zext i16 %2887 to i64
  %2889 = icmp eq i64 %2888, 17
  br i1 %2889, label %2943, label %2890

2890:                                             ; preds = %2884
  br label %2891

2891:                                             ; preds = %2890
  br label %2892

2892:                                             ; preds = %2891
  call void @llvm.lifetime.start.p0(i64 4, ptr %77) #9
  %2893 = call ptr @__errno_location() #10
  %2894 = load i32, ptr %2893, align 4, !tbaa !5
  store i32 %2894, ptr %77, align 4, !tbaa !5
  %2895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2896 = call i32 @s2n_print_stacktrace(ptr noundef %2895)
  %2897 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2898 = trunc i8 %2897 to i1
  br i1 %2898, label %2899, label %2921

2899:                                             ; preds = %2892
  %2900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2901 = call i32 @fileno(ptr noundef %2900) #9
  %2902 = call i32 @isatty(i32 noundef %2901) #9
  %2903 = icmp ne i32 %2902, 0
  br i1 %2903, label %2904, label %2921

2904:                                             ; preds = %2899
  %2905 = load i32, ptr %77, align 4, !tbaa !5
  %2906 = call ptr @__errno_location() #10
  store i32 %2905, ptr %2906, align 4, !tbaa !5
  %2907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2908 = load i32, ptr @test_count, align 4, !tbaa !5
  %2909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2910 = load i32, ptr %2909, align 4, !tbaa !5
  %2911 = call ptr @s2n_strerror(i32 noundef %2910, ptr noundef @.str.4)
  %2912 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2913 = load i32, ptr %2912, align 4, !tbaa !5
  %2914 = call ptr @s2n_strerror_debug(i32 noundef %2913, ptr noundef @.str.4)
  %2915 = call ptr @__errno_location() #10
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @strerror(i32 noundef %2916) #9
  %2918 = call ptr @__errno_location() #10
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2907, ptr noundef @.str.2, i32 noundef %2908, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 171, ptr noundef %2911, ptr noundef %2914, ptr noundef %2917, i32 noundef %2919) #9
  br label %2938

2921:                                             ; preds = %2899, %2892
  %2922 = load i32, ptr %77, align 4, !tbaa !5
  %2923 = call ptr @__errno_location() #10
  store i32 %2922, ptr %2923, align 4, !tbaa !5
  %2924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2925 = load i32, ptr @test_count, align 4, !tbaa !5
  %2926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2927 = load i32, ptr %2926, align 4, !tbaa !5
  %2928 = call ptr @s2n_strerror(i32 noundef %2927, ptr noundef @.str.4)
  %2929 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2930 = load i32, ptr %2929, align 4, !tbaa !5
  %2931 = call ptr @s2n_strerror_debug(i32 noundef %2930, ptr noundef @.str.4)
  %2932 = call ptr @__errno_location() #10
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @strerror(i32 noundef %2933) #9
  %2935 = call ptr @__errno_location() #10
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2924, ptr noundef @.str.5, i32 noundef %2925, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 171, ptr noundef %2928, ptr noundef %2931, ptr noundef %2934, i32 noundef %2936) #9
  br label %2938

2938:                                             ; preds = %2921, %2904
  call void @llvm.lifetime.end.p0(i64 4, ptr %77) #9
  br label %2939

2939:                                             ; preds = %2938
  br label %2940

2940:                                             ; preds = %2939
  call void @exit(i32 noundef 1) #11
  unreachable

2941:                                             ; No predecessors!
  br label %2942

2942:                                             ; preds = %2941
  br label %2943

2943:                                             ; preds = %2942, %2884
  br label %2944

2944:                                             ; preds = %2943
  br label %2945

2945:                                             ; preds = %2944
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #9
  %2946 = load ptr, ptr %71, align 8, !tbaa !9
  %2947 = load i16, ptr %75, align 2, !tbaa !47
  %2948 = zext i16 %2947 to i32
  %2949 = call ptr @s2n_stuffer_raw_read(ptr noundef %2946, i32 noundef %2948)
  store ptr %2949, ptr %78, align 8, !tbaa !9
  br label %2950

2950:                                             ; preds = %2945
  %2951 = load i32, ptr @test_count, align 4, !tbaa !5
  %2952 = add nsw i32 %2951, 1
  store i32 %2952, ptr @test_count, align 4, !tbaa !5
  %2953 = load ptr, ptr %78, align 8, !tbaa !9
  %2954 = icmp eq ptr %2953, null
  br i1 %2954, label %2955, label %3008

2955:                                             ; preds = %2950
  br label %2956

2956:                                             ; preds = %2955
  br label %2957

2957:                                             ; preds = %2956
  call void @llvm.lifetime.start.p0(i64 4, ptr %79) #9
  %2958 = call ptr @__errno_location() #10
  %2959 = load i32, ptr %2958, align 4, !tbaa !5
  store i32 %2959, ptr %79, align 4, !tbaa !5
  %2960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2961 = call i32 @s2n_print_stacktrace(ptr noundef %2960)
  %2962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2963 = trunc i8 %2962 to i1
  br i1 %2963, label %2964, label %2986

2964:                                             ; preds = %2957
  %2965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2966 = call i32 @fileno(ptr noundef %2965) #9
  %2967 = call i32 @isatty(i32 noundef %2966) #9
  %2968 = icmp ne i32 %2967, 0
  br i1 %2968, label %2969, label %2986

2969:                                             ; preds = %2964
  %2970 = load i32, ptr %79, align 4, !tbaa !5
  %2971 = call ptr @__errno_location() #10
  store i32 %2970, ptr %2971, align 4, !tbaa !5
  %2972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2973 = load i32, ptr @test_count, align 4, !tbaa !5
  %2974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2975 = load i32, ptr %2974, align 4, !tbaa !5
  %2976 = call ptr @s2n_strerror(i32 noundef %2975, ptr noundef @.str.4)
  %2977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2978 = load i32, ptr %2977, align 4, !tbaa !5
  %2979 = call ptr @s2n_strerror_debug(i32 noundef %2978, ptr noundef @.str.4)
  %2980 = call ptr @__errno_location() #10
  %2981 = load i32, ptr %2980, align 4, !tbaa !5
  %2982 = call ptr @strerror(i32 noundef %2981) #9
  %2983 = call ptr @__errno_location() #10
  %2984 = load i32, ptr %2983, align 4, !tbaa !5
  %2985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2972, ptr noundef @.str.2, i32 noundef %2973, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2976, ptr noundef %2979, ptr noundef %2982, i32 noundef %2984) #9
  br label %3003

2986:                                             ; preds = %2964, %2957
  %2987 = load i32, ptr %79, align 4, !tbaa !5
  %2988 = call ptr @__errno_location() #10
  store i32 %2987, ptr %2988, align 4, !tbaa !5
  %2989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2990 = load i32, ptr @test_count, align 4, !tbaa !5
  %2991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2992 = load i32, ptr %2991, align 4, !tbaa !5
  %2993 = call ptr @s2n_strerror(i32 noundef %2992, ptr noundef @.str.4)
  %2994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror_debug(i32 noundef %2995, ptr noundef @.str.4)
  %2997 = call ptr @__errno_location() #10
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @strerror(i32 noundef %2998) #9
  %3000 = call ptr @__errno_location() #10
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2989, ptr noundef @.str.5, i32 noundef %2990, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 174, ptr noundef %2993, ptr noundef %2996, ptr noundef %2999, i32 noundef %3001) #9
  br label %3003

3003:                                             ; preds = %2986, %2969
  call void @llvm.lifetime.end.p0(i64 4, ptr %79) #9
  br label %3004

3004:                                             ; preds = %3003
  br label %3005

3005:                                             ; preds = %3004
  call void @exit(i32 noundef 1) #11
  unreachable

3006:                                             ; No predecessors!
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

3008:                                             ; preds = %3007, %2950
  br label %3009

3009:                                             ; preds = %3008
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010
  br label %3012

3012:                                             ; preds = %3011
  %3013 = load i32, ptr @test_count, align 4, !tbaa !5
  %3014 = add nsw i32 %3013, 1
  store i32 %3014, ptr @test_count, align 4, !tbaa !5
  %3015 = load ptr, ptr %78, align 8, !tbaa !9
  %3016 = getelementptr inbounds [17 x i8], ptr %66, i64 0, i64 0
  %3017 = call i32 @memcmp(ptr noundef %3015, ptr noundef %3016, i64 noundef 17) #12
  %3018 = icmp eq i32 %3017, 0
  br i1 %3018, label %3072, label %3019

3019:                                             ; preds = %3012
  br label %3020

3020:                                             ; preds = %3019
  br label %3021

3021:                                             ; preds = %3020
  call void @llvm.lifetime.start.p0(i64 4, ptr %80) #9
  %3022 = call ptr @__errno_location() #10
  %3023 = load i32, ptr %3022, align 4, !tbaa !5
  store i32 %3023, ptr %80, align 4, !tbaa !5
  %3024 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3025 = call i32 @s2n_print_stacktrace(ptr noundef %3024)
  %3026 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3027 = trunc i8 %3026 to i1
  br i1 %3027, label %3028, label %3050

3028:                                             ; preds = %3021
  %3029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3030 = call i32 @fileno(ptr noundef %3029) #9
  %3031 = call i32 @isatty(i32 noundef %3030) #9
  %3032 = icmp ne i32 %3031, 0
  br i1 %3032, label %3033, label %3050

3033:                                             ; preds = %3028
  %3034 = load i32, ptr %80, align 4, !tbaa !5
  %3035 = call ptr @__errno_location() #10
  store i32 %3034, ptr %3035, align 4, !tbaa !5
  %3036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3037 = load i32, ptr @test_count, align 4, !tbaa !5
  %3038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3039 = load i32, ptr %3038, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef @.str.4)
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror_debug(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call ptr @__errno_location() #10
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @strerror(i32 noundef %3045) #9
  %3047 = call ptr @__errno_location() #10
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3036, ptr noundef @.str.2, i32 noundef %3037, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3040, ptr noundef %3043, ptr noundef %3046, i32 noundef %3048) #9
  br label %3067

3050:                                             ; preds = %3028, %3021
  %3051 = load i32, ptr %80, align 4, !tbaa !5
  %3052 = call ptr @__errno_location() #10
  store i32 %3051, ptr %3052, align 4, !tbaa !5
  %3053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3054 = load i32, ptr @test_count, align 4, !tbaa !5
  %3055 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3056 = load i32, ptr %3055, align 4, !tbaa !5
  %3057 = call ptr @s2n_strerror(i32 noundef %3056, ptr noundef @.str.4)
  %3058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror_debug(i32 noundef %3059, ptr noundef @.str.4)
  %3061 = call ptr @__errno_location() #10
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call ptr @strerror(i32 noundef %3062) #9
  %3064 = call ptr @__errno_location() #10
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3053, ptr noundef @.str.5, i32 noundef %3054, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3057, ptr noundef %3060, ptr noundef %3063, i32 noundef %3065) #9
  br label %3067

3067:                                             ; preds = %3050, %3033
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #9
  br label %3068

3068:                                             ; preds = %3067
  br label %3069

3069:                                             ; preds = %3068
  call void @exit(i32 noundef 1) #11
  unreachable

3070:                                             ; No predecessors!
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

3072:                                             ; preds = %3071, %3012
  br label %3073

3073:                                             ; preds = %3072
  br label %3074

3074:                                             ; preds = %3073
  br label %3075

3075:                                             ; preds = %3074
  br label %3076

3076:                                             ; preds = %3075
  br label %3077

3077:                                             ; preds = %3076
  %3078 = load i32, ptr @test_count, align 4, !tbaa !5
  %3079 = add nsw i32 %3078, 1
  store i32 %3079, ptr @test_count, align 4, !tbaa !5
  %3080 = load ptr, ptr %71, align 8, !tbaa !9
  %3081 = getelementptr inbounds %struct.s2n_stuffer, ptr %3080, i32 0, i32 2
  %3082 = load i32, ptr %3081, align 4, !tbaa !48
  %3083 = load ptr, ptr %71, align 8, !tbaa !9
  %3084 = getelementptr inbounds %struct.s2n_stuffer, ptr %3083, i32 0, i32 1
  %3085 = load i32, ptr %3084, align 8, !tbaa !49
  %3086 = sub i32 %3082, %3085
  %3087 = icmp eq i32 %3086, 0
  br i1 %3087, label %3141, label %3088

3088:                                             ; preds = %3077
  br label %3089

3089:                                             ; preds = %3088
  br label %3090

3090:                                             ; preds = %3089
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #9
  %3091 = call ptr @__errno_location() #10
  %3092 = load i32, ptr %3091, align 4, !tbaa !5
  store i32 %3092, ptr %81, align 4, !tbaa !5
  %3093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3094 = call i32 @s2n_print_stacktrace(ptr noundef %3093)
  %3095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3096 = trunc i8 %3095 to i1
  br i1 %3096, label %3097, label %3119

3097:                                             ; preds = %3090
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @fileno(ptr noundef %3098) #9
  %3100 = call i32 @isatty(i32 noundef %3099) #9
  %3101 = icmp ne i32 %3100, 0
  br i1 %3101, label %3102, label %3119

3102:                                             ; preds = %3097
  %3103 = load i32, ptr %81, align 4, !tbaa !5
  %3104 = call ptr @__errno_location() #10
  store i32 %3103, ptr %3104, align 4, !tbaa !5
  %3105 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3106 = load i32, ptr @test_count, align 4, !tbaa !5
  %3107 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3108 = load i32, ptr %3107, align 4, !tbaa !5
  %3109 = call ptr @s2n_strerror(i32 noundef %3108, ptr noundef @.str.4)
  %3110 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3111 = load i32, ptr %3110, align 4, !tbaa !5
  %3112 = call ptr @s2n_strerror_debug(i32 noundef %3111, ptr noundef @.str.4)
  %3113 = call ptr @__errno_location() #10
  %3114 = load i32, ptr %3113, align 4, !tbaa !5
  %3115 = call ptr @strerror(i32 noundef %3114) #9
  %3116 = call ptr @__errno_location() #10
  %3117 = load i32, ptr %3116, align 4, !tbaa !5
  %3118 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3105, ptr noundef @.str.2, i32 noundef %3106, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3109, ptr noundef %3112, ptr noundef %3115, i32 noundef %3117) #9
  br label %3136

3119:                                             ; preds = %3097, %3090
  %3120 = load i32, ptr %81, align 4, !tbaa !5
  %3121 = call ptr @__errno_location() #10
  store i32 %3120, ptr %3121, align 4, !tbaa !5
  %3122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3123 = load i32, ptr @test_count, align 4, !tbaa !5
  %3124 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3125 = load i32, ptr %3124, align 4, !tbaa !5
  %3126 = call ptr @s2n_strerror(i32 noundef %3125, ptr noundef @.str.4)
  %3127 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3128 = load i32, ptr %3127, align 4, !tbaa !5
  %3129 = call ptr @s2n_strerror_debug(i32 noundef %3128, ptr noundef @.str.4)
  %3130 = call ptr @__errno_location() #10
  %3131 = load i32, ptr %3130, align 4, !tbaa !5
  %3132 = call ptr @strerror(i32 noundef %3131) #9
  %3133 = call ptr @__errno_location() #10
  %3134 = load i32, ptr %3133, align 4, !tbaa !5
  %3135 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3122, ptr noundef @.str.5, i32 noundef %3123, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 177, ptr noundef %3126, ptr noundef %3129, ptr noundef %3132, i32 noundef %3134) #9
  br label %3136

3136:                                             ; preds = %3119, %3102
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #9
  br label %3137

3137:                                             ; preds = %3136
  br label %3138

3138:                                             ; preds = %3137
  call void @exit(i32 noundef 1) #11
  unreachable

3139:                                             ; No predecessors!
  br label %3140

3140:                                             ; preds = %3139
  br label %3141

3141:                                             ; preds = %3140, %3077
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

3143:                                             ; preds = %3142
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #9
  call void @llvm.lifetime.end.p0(i64 2, ptr %75) #9
  call void @llvm.lifetime.end.p0(i64 1, ptr %72) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %71) #9
  call void @llvm.lifetime.end.p0(i64 17, ptr %66) #9
  %3144 = call i32 @s2n_config_ptr_free(ptr noundef %63)
  %3145 = getelementptr inbounds %struct.s2n_result, ptr %82, i32 0, i32 0
  store i32 %3144, ptr %3145, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %63) #9
  %3146 = call i32 @s2n_connection_ptr_free(ptr noundef %61)
  %3147 = getelementptr inbounds %struct.s2n_result, ptr %83, i32 0, i32 0
  store i32 %3146, ptr %3147, align 4
  call void @llvm.lifetime.end.p0(i64 8, ptr %61) #9
  br label %3148

3148:                                             ; preds = %3143
  br label %3149

3149:                                             ; preds = %3148
  %3150 = call i32 @s2n_cleanup()
  %3151 = icmp eq i32 %3150, -1
  br i1 %3151, label %3152, label %3203

3152:                                             ; preds = %3149
  br label %3153

3153:                                             ; preds = %3152
  br label %3154

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

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

3166:                                             ; preds = %3161
  %3167 = load i32, ptr %84, align 4, !tbaa !5
  %3168 = call ptr @__errno_location() #10
  store i32 %3167, ptr %3168, align 4, !tbaa !5
  %3169 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3170 = load i32, ptr @test_count, align 4, !tbaa !5
  %3171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3172 = load i32, ptr %3171, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror(i32 noundef %3172, ptr noundef @.str.4)
  %3174 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3175 = load i32, ptr %3174, align 4, !tbaa !5
  %3176 = call ptr @s2n_strerror_debug(i32 noundef %3175, ptr noundef @.str.4)
  %3177 = call ptr @__errno_location() #10
  %3178 = load i32, ptr %3177, align 4, !tbaa !5
  %3179 = call ptr @strerror(i32 noundef %3178) #9
  %3180 = call ptr @__errno_location() #10
  %3181 = load i32, ptr %3180, align 4, !tbaa !5
  %3182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3169, ptr noundef @.str.2, i32 noundef %3170, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3173, ptr noundef %3176, ptr noundef %3179, i32 noundef %3181) #9
  br label %3200

3183:                                             ; preds = %3161, %3154
  %3184 = load i32, ptr %84, align 4, !tbaa !5
  %3185 = call ptr @__errno_location() #10
  store i32 %3184, ptr %3185, align 4, !tbaa !5
  %3186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3187 = load i32, ptr @test_count, align 4, !tbaa !5
  %3188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror(i32 noundef %3189, ptr noundef @.str.4)
  %3191 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call ptr @s2n_strerror_debug(i32 noundef %3192, ptr noundef @.str.4)
  %3194 = call ptr @__errno_location() #10
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call ptr @strerror(i32 noundef %3195) #9
  %3197 = call ptr @__errno_location() #10
  %3198 = load i32, ptr %3197, align 4, !tbaa !5
  %3199 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3186, ptr noundef @.str.5, i32 noundef %3187, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3190, ptr noundef %3193, ptr noundef %3196, i32 noundef %3198) #9
  br label %3200

3200:                                             ; preds = %3183, %3166
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #9
  br label %3201

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

3202:                                             ; No predecessors!
  br label %3203

3203:                                             ; preds = %3202, %3149
  br label %3204

3204:                                             ; preds = %3203
  br label %3205

3205:                                             ; preds = %3204
  br label %3206

3206:                                             ; preds = %3205
  %3207 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %3208 = icmp eq i32 %3207, -1
  br i1 %3208, label %3209, label %3260

3209:                                             ; preds = %3206
  br label %3210

3210:                                             ; preds = %3209
  br label %3211

3211:                                             ; preds = %3210
  call void @llvm.lifetime.start.p0(i64 4, ptr %85) #9
  %3212 = call ptr @__errno_location() #10
  %3213 = load i32, ptr %3212, align 4, !tbaa !5
  store i32 %3213, ptr %85, align 4, !tbaa !5
  %3214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3215 = call i32 @s2n_print_stacktrace(ptr noundef %3214)
  %3216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3217 = trunc i8 %3216 to i1
  br i1 %3217, label %3218, label %3240

3218:                                             ; preds = %3211
  %3219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3220 = call i32 @fileno(ptr noundef %3219) #9
  %3221 = call i32 @isatty(i32 noundef %3220) #9
  %3222 = icmp ne i32 %3221, 0
  br i1 %3222, label %3223, label %3240

3223:                                             ; preds = %3218
  %3224 = load i32, ptr %85, align 4, !tbaa !5
  %3225 = call ptr @__errno_location() #10
  store i32 %3224, ptr %3225, align 4, !tbaa !5
  %3226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3227 = load i32, ptr @test_count, align 4, !tbaa !5
  %3228 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3229 = load i32, ptr %3228, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror(i32 noundef %3229, ptr noundef @.str.4)
  %3231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3232 = load i32, ptr %3231, align 4, !tbaa !5
  %3233 = call ptr @s2n_strerror_debug(i32 noundef %3232, ptr noundef @.str.4)
  %3234 = call ptr @__errno_location() #10
  %3235 = load i32, ptr %3234, align 4, !tbaa !5
  %3236 = call ptr @strerror(i32 noundef %3235) #9
  %3237 = call ptr @__errno_location() #10
  %3238 = load i32, ptr %3237, align 4, !tbaa !5
  %3239 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3226, ptr noundef @.str.2, i32 noundef %3227, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3230, ptr noundef %3233, ptr noundef %3236, i32 noundef %3238) #9
  br label %3257

3240:                                             ; preds = %3218, %3211
  %3241 = load i32, ptr %85, align 4, !tbaa !5
  %3242 = call ptr @__errno_location() #10
  store i32 %3241, ptr %3242, align 4, !tbaa !5
  %3243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3244 = load i32, ptr @test_count, align 4, !tbaa !5
  %3245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3246 = load i32, ptr %3245, align 4, !tbaa !5
  %3247 = call ptr @s2n_strerror(i32 noundef %3246, ptr noundef @.str.4)
  %3248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3249 = load i32, ptr %3248, align 4, !tbaa !5
  %3250 = call ptr @s2n_strerror_debug(i32 noundef %3249, ptr noundef @.str.4)
  %3251 = call ptr @__errno_location() #10
  %3252 = load i32, ptr %3251, align 4, !tbaa !5
  %3253 = call ptr @strerror(i32 noundef %3252) #9
  %3254 = call ptr @__errno_location() #10
  %3255 = load i32, ptr %3254, align 4, !tbaa !5
  %3256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3243, ptr noundef @.str.5, i32 noundef %3244, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 181, ptr noundef %3247, ptr noundef %3250, ptr noundef %3253, i32 noundef %3255) #9
  br label %3257

3257:                                             ; preds = %3240, %3223
  call void @llvm.lifetime.end.p0(i64 4, ptr %85) #9
  br label %3258

3258:                                             ; preds = %3257
  call void @exit(i32 noundef 1) #11
  unreachable

3259:                                             ; No predecessors!
  br label %3260

3260:                                             ; preds = %3259, %3206
  br label %3261

3261:                                             ; preds = %3260
  %3262 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3263 = trunc i8 %3262 to i1
  br i1 %3263, label %3264, label %3280

3264:                                             ; preds = %3261
  %3265 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3266 = call i32 @fileno(ptr noundef %3265) #9
  %3267 = call i32 @isatty(i32 noundef %3266) #9
  %3268 = icmp ne i32 %3267, 0
  br i1 %3268, label %3269, label %3280

3269:                                             ; preds = %3264
  %3270 = load i32, ptr @test_count, align 4, !tbaa !5
  %3271 = icmp ne i32 %3270, 0
  br i1 %3271, label %3272, label %3276

3272:                                             ; preds = %3269
  %3273 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3274 = load i32, ptr @test_count, align 4, !tbaa !5
  %3275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3273, ptr noundef @.str.40, i32 noundef %3274) #9
  br label %3279

3276:                                             ; preds = %3269
  %3277 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3277, ptr noundef @.str.41) #9
  br label %3279

3279:                                             ; preds = %3276, %3272
  br label %3291

3280:                                             ; preds = %3264, %3261
  %3281 = load i32, ptr @test_count, align 4, !tbaa !5
  %3282 = icmp ne i32 %3281, 0
  br i1 %3282, label %3283, label %3287

3283:                                             ; preds = %3280
  %3284 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3285 = load i32, ptr @test_count, align 4, !tbaa !5
  %3286 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3284, ptr noundef @.str.42, i32 noundef %3285) #9
  br label %3290

3287:                                             ; preds = %3280
  %3288 = load ptr, ptr @stdout, align 8, !tbaa !9
  %3289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3288, ptr noundef @.str.43) #9
  br label %3290

3290:                                             ; preds = %3287, %3283
  br label %3291

3291:                                             ; preds = %3290, %3279
  store i32 0, ptr %3, align 4
  br label %3293

3292:                                             ; No predecessors!
  br label %3293

3293:                                             ; preds = %3292, %3291
  %3294 = load i32, ptr %3, align 4
  ret i32 %3294
}

; 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 ptr @s2n_connection_new(i32 noundef) #2

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

declare i32 @s2n_cert_req_send(ptr noundef) #2

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

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

declare i32 @s2n_config_free(ptr noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_config_enable_cert_req_dss_legacy_compat(ptr noundef) #2

declare i32 @s2n_connection_ptr_free(ptr noundef) #2

declare i32 @s2n_config_ptr_free(ptr noundef) #2

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

declare i32 @s2n_stuffer_read_uint16(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_alloc(ptr noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: readwrite)
declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #7

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

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 = { 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 #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(none) }
attributes #11 = { noreturn nounwind }
attributes #12 = { 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 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = distinct !{!20, !19}
!21 = !{!22, !7, i64 220}
!22 = !{!"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, !23, i64 160, !17, i64 168, !17, 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, !24, i64 240, !10, i64 632, !10, i64 640, !25, i64 648, !31, i64 1144, !34, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !37, i64 1776, !37, i64 1816, !37, i64 1856, !37, i64 1896, !6, i64 1936, !17, i64 1944, !7, i64 1952, !37, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !38, i64 2004, !38, i64 2008, !39, i64 2016, !36, i64 2208, !6, i64 2212, !36, i64 2216, !17, i64 2224, !7, i64 2232, !17, i64 2240, !17, i64 2248, !17, i64 2256, !38, i64 2264, !38, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !30, i64 2792, !6, i64 2816, !30, i64 2824, !30, i64 2848, !30, i64 2872, !41, i64 2896, !43, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !30, i64 3784, !6, i64 3808, !45, i64 3816, !7, i64 3848, !37, i64 3992, !30, i64 4032, !30, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !36, i64 4084, !36, i64 4086, !6, i64 4088, !6, i64 4092, !30, i64 4096, !6, i64 4120, !46, i64 4128, !38, i64 4176, !7, i64 4180, !7, i64 4181}
!23 = !{!"s2n_timer", !17, i64 0}
!24 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!25 = !{!"s2n_kex_parameters", !26, i64 0, !27, i64 8, !7, i64 24, !27, i64 56, !28, i64 72, !28, i64 184, !7, i64 296, !29, i64 360, !30, i64 448, !30, i64 472}
!26 = !{!"s2n_dh_params", !10, i64 0}
!27 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!28 = !{!"s2n_kem_group_params", !10, i64 0, !29, i64 8, !27, i64 96}
!29 = !{!"s2n_kem_params", !10, i64 0, !30, i64 8, !30, i64 32, !30, i64 56, !12, i64 80}
!30 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!31 = !{!"s2n_handshake_parameters", !32, i64 0, !32, i64 48, !30, i64 96, !6, i64 120, !33, 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}
!32 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!33 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!34 = !{!"s2n_psk_parameters", !6, i64 0, !35, i64 8, !36, i64 40, !36, i64 42, !10, i64 48, !6, i64 56}
!35 = !{!"s2n_array", !30, i64 0, !6, i64 24, !6, i64 28}
!36 = !{!"short", !7, i64 0}
!37 = !{!"s2n_stuffer", !30, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!38 = !{!"", !6, i64 0}
!39 = !{!"s2n_handshake", !37, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !40, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!40 = !{!"s2n_offered_early_data", !10, i64 0}
!41 = !{!"s2n_client_hello", !30, i64 0, !42, i64 24, !30, i64 728, !30, i64 752, !30, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!42 = !{!"", !7, i64 0, !30, i64 672, !36, i64 696}
!43 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !36, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !44, i64 48, !12, i64 52}
!44 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!45 = !{!"s2n_ticket_fields", !30, i64 0, !6, i64 24}
!46 = !{!"s2n_post_handshake", !37, i64 0, !7, i64 40}
!47 = !{!36, !36, i64 0}
!48 = !{!37, !6, i64 28}
!49 = !{!37, !6, i64 24}
!50 = !{!51, !10, i64 448}
!51 = !{!"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, !52, i64 24, !30, 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, !17, i64 144, !10, i64 152, !17, i64 160, !17, 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, !53, i64 304, !36, 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, !30, i64 448}
!52 = !{!"certs_by_type", !7, i64 0}
!53 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}


; 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"

@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 [67 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [118 x i8], align 1
@s2n_cert_type_preference_list = external hidden local_unnamed_addr global [2 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [140 x i8], align 1
@s2n_cert_type_preference_list_legacy_dss = external hidden local_unnamed_addr global [3 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [97 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [39 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [76 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [32 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [71 x i8], align 1
@__const.main.ca_data = external hidden unnamed_addr constant [17 x i8], align 16
@.str.33 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.43 = 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 i8, align 1
  %4 = alloca i8, align 1
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca i8, align 1
  %8 = alloca i16, align 2
  %9 = alloca i16, align 2
  %10 = alloca ptr, align 8
  %11 = alloca ptr, align 8
  %12 = alloca i8, align 1
  %13 = alloca i16, align 2
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %14 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #10
  %16 = load ptr, ptr @stdout, align 8, !tbaa !9
  %17 = tail call i32 @fflush(ptr noundef %16)
  %18 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #10
  %19 = icmp eq i32 %18, -1
  br i1 %19, label %20, label %44

20:                                               ; preds = %2
  %21 = tail call ptr @__errno_location() #11
  %22 = load i32, ptr %21, align 4, !tbaa !5
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = tail call i32 @s2n_print_stacktrace(ptr noundef %23) #10
  %25 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %26 = trunc nuw i8 %25 to i1
  br i1 %26, label %27, label %31

27:                                               ; preds = %20
  %28 = load ptr, ptr @stderr, align 8, !tbaa !9
  %29 = tail call i32 @fileno(ptr noundef %28) #10
  %30 = tail call i32 @isatty(i32 noundef %29) #10
  %.not209 = icmp eq i32 %30, 0
  br i1 %.not209, label %31, label %32

31:                                               ; preds = %27, %20
  br label %32

32:                                               ; preds = %27, %31
  %.str.5.sink = phi ptr [ @.str.5, %31 ], [ @.str.2, %27 ]
  store i32 %22, ptr %21, align 4, !tbaa !5
  %33 = load ptr, ptr @stderr, align 8, !tbaa !9
  %34 = load i32, ptr @test_count, align 4, !tbaa !5
  %35 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %36 = load i32, ptr %35, align 4, !tbaa !5
  %37 = tail call ptr @s2n_strerror(i32 noundef %36, ptr noundef nonnull @.str.4) #10
  %38 = load i32, ptr %35, align 4, !tbaa !5
  %39 = tail call ptr @s2n_strerror_debug(i32 noundef %38, ptr noundef nonnull @.str.4) #10
  %40 = load i32, ptr %21, align 4, !tbaa !5
  %41 = tail call ptr @strerror(i32 noundef %40) #10
  %42 = load i32, ptr %21, align 4, !tbaa !5
  %43 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %33, ptr noundef nonnull %.str.5.sink, i32 noundef %34, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %37, ptr noundef %39, ptr noundef %41, i32 noundef %42) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

44:                                               ; preds = %2
  %45 = load i32, ptr @test_count, align 4, !tbaa !5
  %46 = add nsw i32 %45, 1
  store i32 %46, ptr @test_count, align 4, !tbaa !5
  %47 = tail call i32 @s2n_enable_atexit() #10
  %48 = icmp eq i32 %47, -1
  br i1 %48, label %49, label %73

49:                                               ; preds = %44
  %50 = tail call ptr @__errno_location() #11
  %51 = load i32, ptr %50, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = tail call i32 @s2n_print_stacktrace(ptr noundef %52) #10
  %54 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %55 = trunc nuw i8 %54 to i1
  br i1 %55, label %56, label %60

56:                                               ; preds = %49
  %57 = load ptr, ptr @stderr, align 8, !tbaa !9
  %58 = tail call i32 @fileno(ptr noundef %57) #10
  %59 = tail call i32 @isatty(i32 noundef %58) #10
  %.not208 = icmp eq i32 %59, 0
  br i1 %.not208, label %60, label %61

60:                                               ; preds = %56, %49
  br label %61

61:                                               ; preds = %56, %60
  %.str.5.sink224 = phi ptr [ @.str.5, %60 ], [ @.str.2, %56 ]
  store i32 %51, ptr %50, align 4, !tbaa !5
  %62 = load ptr, ptr @stderr, align 8, !tbaa !9
  %63 = load i32, ptr @test_count, align 4, !tbaa !5
  %64 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %65 = load i32, ptr %64, align 4, !tbaa !5
  %66 = tail call ptr @s2n_strerror(i32 noundef %65, ptr noundef nonnull @.str.4) #10
  %67 = load i32, ptr %64, align 4, !tbaa !5
  %68 = tail call ptr @s2n_strerror_debug(i32 noundef %67, ptr noundef nonnull @.str.4) #10
  %69 = load i32, ptr %50, align 4, !tbaa !5
  %70 = tail call ptr @strerror(i32 noundef %69) #10
  %71 = load i32, ptr %50, align 4, !tbaa !5
  %72 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %62, ptr noundef nonnull %.str.5.sink224, i32 noundef %63, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %66, ptr noundef %68, ptr noundef %70, i32 noundef %71) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

73:                                               ; preds = %44
  %74 = tail call i32 @s2n_init() #10
  %75 = icmp eq i32 %74, -1
  br i1 %75, label %76, label %100

76:                                               ; preds = %73
  %77 = tail call ptr @__errno_location() #11
  %78 = load i32, ptr %77, align 4, !tbaa !5
  %79 = load ptr, ptr @stderr, align 8, !tbaa !9
  %80 = tail call i32 @s2n_print_stacktrace(ptr noundef %79) #10
  %81 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %82 = trunc nuw i8 %81 to i1
  br i1 %82, label %83, label %87

83:                                               ; preds = %76
  %84 = load ptr, ptr @stderr, align 8, !tbaa !9
  %85 = tail call i32 @fileno(ptr noundef %84) #10
  %86 = tail call i32 @isatty(i32 noundef %85) #10
  %.not207 = icmp eq i32 %86, 0
  br i1 %.not207, label %87, label %88

87:                                               ; preds = %83, %76
  br label %88

88:                                               ; preds = %83, %87
  %.str.5.sink235 = phi ptr [ @.str.5, %87 ], [ @.str.2, %83 ]
  store i32 %78, ptr %77, align 4, !tbaa !5
  %89 = load ptr, ptr @stderr, align 8, !tbaa !9
  %90 = load i32, ptr @test_count, align 4, !tbaa !5
  %91 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %92 = load i32, ptr %91, align 4, !tbaa !5
  %93 = tail call ptr @s2n_strerror(i32 noundef %92, ptr noundef nonnull @.str.4) #10
  %94 = load i32, ptr %91, align 4, !tbaa !5
  %95 = tail call ptr @s2n_strerror_debug(i32 noundef %94, ptr noundef nonnull @.str.4) #10
  %96 = load i32, ptr %77, align 4, !tbaa !5
  %97 = tail call ptr @strerror(i32 noundef %96) #10
  %98 = load i32, ptr %77, align 4, !tbaa !5
  %99 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %89, ptr noundef nonnull %.str.5.sink235, i32 noundef %90, ptr noundef nonnull @.str.7, ptr noundef nonnull @.str.1, i32 noundef 51, ptr noundef %93, ptr noundef %95, ptr noundef %97, i32 noundef %98) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

100:                                              ; preds = %73
  %101 = load i32, ptr @test_count, align 4, !tbaa !5
  %102 = add nsw i32 %101, 1
  store i32 %102, ptr @test_count, align 4, !tbaa !5
  %103 = tail call ptr @s2n_config_new() #10
  %104 = icmp eq ptr %103, null
  br i1 %104, label %105, label %129

105:                                              ; preds = %100
  %106 = tail call ptr @__errno_location() #11
  %107 = load i32, ptr %106, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = tail call i32 @s2n_print_stacktrace(ptr noundef %108) #10
  %110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %111 = trunc nuw i8 %110 to i1
  br i1 %111, label %112, label %116

112:                                              ; preds = %105
  %113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %114 = tail call i32 @fileno(ptr noundef %113) #10
  %115 = tail call i32 @isatty(i32 noundef %114) #10
  %.not206 = icmp eq i32 %115, 0
  br i1 %.not206, label %116, label %117

116:                                              ; preds = %112, %105
  br label %117

117:                                              ; preds = %112, %116
  %.str.5.sink246 = phi ptr [ @.str.5, %116 ], [ @.str.2, %112 ]
  store i32 %107, ptr %106, align 4, !tbaa !5
  %118 = load ptr, ptr @stderr, align 8, !tbaa !9
  %119 = load i32, ptr @test_count, align 4, !tbaa !5
  %120 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %121 = load i32, ptr %120, align 4, !tbaa !5
  %122 = tail call ptr @s2n_strerror(i32 noundef %121, ptr noundef nonnull @.str.4) #10
  %123 = load i32, ptr %120, align 4, !tbaa !5
  %124 = tail call ptr @s2n_strerror_debug(i32 noundef %123, ptr noundef nonnull @.str.4) #10
  %125 = load i32, ptr %106, align 4, !tbaa !5
  %126 = tail call ptr @strerror(i32 noundef %125) #10
  %127 = load i32, ptr %106, align 4, !tbaa !5
  %128 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %118, ptr noundef nonnull %.str.5.sink246, i32 noundef %119, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %122, ptr noundef %124, ptr noundef %126, i32 noundef %127) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

129:                                              ; preds = %100
  %130 = load i32, ptr @test_count, align 4, !tbaa !5
  %131 = add nsw i32 %130, 1
  store i32 %131, ptr @test_count, align 4, !tbaa !5
  %132 = tail call ptr @s2n_connection_new(i32 noundef 0) #10
  %133 = icmp eq ptr %132, null
  br i1 %133, label %134, label %158

134:                                              ; preds = %129
  %135 = tail call ptr @__errno_location() #11
  %136 = load i32, ptr %135, align 4, !tbaa !5
  %137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %138 = tail call i32 @s2n_print_stacktrace(ptr noundef %137) #10
  %139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %140 = trunc nuw i8 %139 to i1
  br i1 %140, label %141, label %145

141:                                              ; preds = %134
  %142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %143 = tail call i32 @fileno(ptr noundef %142) #10
  %144 = tail call i32 @isatty(i32 noundef %143) #10
  %.not205 = icmp eq i32 %144, 0
  br i1 %.not205, label %145, label %146

145:                                              ; preds = %141, %134
  br label %146

146:                                              ; preds = %141, %145
  %.str.5.sink257 = phi ptr [ @.str.5, %145 ], [ @.str.2, %141 ]
  store i32 %136, ptr %135, align 4, !tbaa !5
  %147 = load ptr, ptr @stderr, align 8, !tbaa !9
  %148 = load i32, ptr @test_count, align 4, !tbaa !5
  %149 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %150 = load i32, ptr %149, align 4, !tbaa !5
  %151 = tail call ptr @s2n_strerror(i32 noundef %150, ptr noundef nonnull @.str.4) #10
  %152 = load i32, ptr %149, align 4, !tbaa !5
  %153 = tail call ptr @s2n_strerror_debug(i32 noundef %152, ptr noundef nonnull @.str.4) #10
  %154 = load i32, ptr %135, align 4, !tbaa !5
  %155 = tail call ptr @strerror(i32 noundef %154) #10
  %156 = load i32, ptr %135, align 4, !tbaa !5
  %157 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %147, ptr noundef nonnull %.str.5.sink257, i32 noundef %148, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 60, ptr noundef %151, ptr noundef %153, ptr noundef %155, i32 noundef %156) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

158:                                              ; preds = %129
  %159 = load i32, ptr @test_count, align 4, !tbaa !5
  %160 = add nsw i32 %159, 1
  store i32 %160, ptr @test_count, align 4, !tbaa !5
  %161 = tail call i32 @s2n_connection_set_config(ptr noundef nonnull %132, ptr noundef nonnull %103) #10
  %162 = icmp eq i32 %161, -1
  br i1 %162, label %163, label %187

163:                                              ; preds = %158
  %164 = tail call ptr @__errno_location() #11
  %165 = load i32, ptr %164, align 4, !tbaa !5
  %166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %167 = tail call i32 @s2n_print_stacktrace(ptr noundef %166) #10
  %168 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %169 = trunc nuw i8 %168 to i1
  br i1 %169, label %170, label %174

170:                                              ; preds = %163
  %171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %172 = tail call i32 @fileno(ptr noundef %171) #10
  %173 = tail call i32 @isatty(i32 noundef %172) #10
  %.not204 = icmp eq i32 %173, 0
  br i1 %.not204, label %174, label %175

174:                                              ; preds = %170, %163
  br label %175

175:                                              ; preds = %170, %174
  %.str.5.sink268 = phi ptr [ @.str.5, %174 ], [ @.str.2, %170 ]
  store i32 %165, ptr %164, align 4, !tbaa !5
  %176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %179 = load i32, ptr %178, align 4, !tbaa !5
  %180 = tail call ptr @s2n_strerror(i32 noundef %179, ptr noundef nonnull @.str.4) #10
  %181 = load i32, ptr %178, align 4, !tbaa !5
  %182 = tail call ptr @s2n_strerror_debug(i32 noundef %181, ptr noundef nonnull @.str.4) #10
  %183 = load i32, ptr %164, align 4, !tbaa !5
  %184 = tail call ptr @strerror(i32 noundef %183) #10
  %185 = load i32, ptr %164, align 4, !tbaa !5
  %186 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %176, ptr noundef nonnull %.str.5.sink268, i32 noundef %177, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %180, ptr noundef %182, ptr noundef %184, i32 noundef %185) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

187:                                              ; preds = %158
  %188 = load i32, ptr @test_count, align 4, !tbaa !5
  %189 = add nsw i32 %188, 1
  store i32 %189, ptr @test_count, align 4, !tbaa !5
  %190 = tail call i32 @s2n_cert_req_send(ptr noundef nonnull %132) #10
  %191 = icmp eq i32 %190, -1
  br i1 %191, label %192, label %216

192:                                              ; preds = %187
  %193 = tail call ptr @__errno_location() #11
  %194 = load i32, ptr %193, align 4, !tbaa !5
  %195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %196 = tail call i32 @s2n_print_stacktrace(ptr noundef %195) #10
  %197 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %198 = trunc nuw i8 %197 to i1
  br i1 %198, label %199, label %203

199:                                              ; preds = %192
  %200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %201 = tail call i32 @fileno(ptr noundef %200) #10
  %202 = tail call i32 @isatty(i32 noundef %201) #10
  %.not203 = icmp eq i32 %202, 0
  br i1 %.not203, label %203, label %204

203:                                              ; preds = %199, %192
  br label %204

204:                                              ; preds = %199, %203
  %.str.5.sink279 = phi ptr [ @.str.5, %203 ], [ @.str.2, %199 ]
  store i32 %194, ptr %193, align 4, !tbaa !5
  %205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %206 = load i32, ptr @test_count, align 4, !tbaa !5
  %207 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = tail call ptr @s2n_strerror(i32 noundef %208, ptr noundef nonnull @.str.4) #10
  %210 = load i32, ptr %207, align 4, !tbaa !5
  %211 = tail call ptr @s2n_strerror_debug(i32 noundef %210, ptr noundef nonnull @.str.4) #10
  %212 = load i32, ptr %193, align 4, !tbaa !5
  %213 = tail call ptr @strerror(i32 noundef %212) #10
  %214 = load i32, ptr %193, align 4, !tbaa !5
  %215 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %205, ptr noundef nonnull %.str.5.sink279, i32 noundef %206, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %209, ptr noundef %211, ptr noundef %213, i32 noundef %214) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

216:                                              ; preds = %187
  %217 = getelementptr inbounds i8, ptr %132, i64 2016
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) #10
  store i8 0, ptr %3, align 1, !tbaa !15
  %218 = load i32, ptr @test_count, align 4, !tbaa !5
  %219 = add nsw i32 %218, 1
  store i32 %219, ptr @test_count, align 4, !tbaa !5
  %220 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %217, ptr noundef nonnull %3) #10
  %221 = icmp eq i32 %220, -1
  br i1 %221, label %222, label %246

222:                                              ; preds = %216
  %223 = tail call ptr @__errno_location() #11
  %224 = load i32, ptr %223, align 4, !tbaa !5
  %225 = load ptr, ptr @stderr, align 8, !tbaa !9
  %226 = call i32 @s2n_print_stacktrace(ptr noundef %225) #10
  %227 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %228 = trunc nuw i8 %227 to i1
  br i1 %228, label %229, label %233

229:                                              ; preds = %222
  %230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %231 = call i32 @fileno(ptr noundef %230) #10
  %232 = call i32 @isatty(i32 noundef %231) #10
  %.not202 = icmp eq i32 %232, 0
  br i1 %.not202, label %233, label %234

233:                                              ; preds = %229, %222
  br label %234

234:                                              ; preds = %229, %233
  %.str.5.sink290 = phi ptr [ @.str.5, %233 ], [ @.str.2, %229 ]
  store i32 %224, ptr %223, align 4, !tbaa !5
  %235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %238 = load i32, ptr %237, align 4, !tbaa !5
  %239 = call ptr @s2n_strerror(i32 noundef %238, ptr noundef nonnull @.str.4) #10
  %240 = load i32, ptr %237, align 4, !tbaa !5
  %241 = call ptr @s2n_strerror_debug(i32 noundef %240, ptr noundef nonnull @.str.4) #10
  %242 = load i32, ptr %223, align 4, !tbaa !5
  %243 = call ptr @strerror(i32 noundef %242) #10
  %244 = load i32, ptr %223, align 4, !tbaa !5
  %245 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %235, ptr noundef nonnull %.str.5.sink290, i32 noundef %236, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 67, ptr noundef %239, ptr noundef %241, ptr noundef %243, i32 noundef %244) #12
  call void @exit(i32 noundef 1) #13
  unreachable

246:                                              ; preds = %216
  %247 = load i8, ptr %3, align 1, !tbaa !15
  %248 = zext i8 %247 to i32
  %249 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %217, i32 noundef %248) #10
  %250 = load i32, ptr @test_count, align 4, !tbaa !5
  %251 = add nsw i32 %250, 1
  store i32 %251, ptr @test_count, align 4, !tbaa !5
  %252 = load i8, ptr %3, align 1, !tbaa !15
  %253 = icmp eq i8 %252, 2
  br i1 %253, label %.preheader210, label %258

.preheader210:                                    ; preds = %246
  %254 = add nsw i32 %250, 2
  store i32 %254, ptr @test_count, align 4, !tbaa !5
  %255 = load i8, ptr %249, align 1, !tbaa !15
  %256 = load i8, ptr @s2n_cert_type_preference_list, align 1, !tbaa !15
  %257 = icmp eq i8 %255, %256
  br i1 %257, label %282, label %292

258:                                              ; preds = %246
  %259 = tail call ptr @__errno_location() #11
  %260 = load i32, ptr %259, align 4, !tbaa !5
  %261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %262 = call i32 @s2n_print_stacktrace(ptr noundef %261) #10
  %263 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %264 = trunc nuw i8 %263 to i1
  br i1 %264, label %265, label %269

265:                                              ; preds = %258
  %266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %267 = call i32 @fileno(ptr noundef %266) #10
  %268 = call i32 @isatty(i32 noundef %267) #10
  %.not = icmp eq i32 %268, 0
  br i1 %.not, label %269, label %270

269:                                              ; preds = %265, %258
  br label %270

270:                                              ; preds = %265, %269
  %.str.5.sink301 = phi ptr [ @.str.5, %269 ], [ @.str.2, %265 ]
  store i32 %260, ptr %259, 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 nonnull @.str.4) #10
  %276 = load i32, ptr %273, align 4, !tbaa !5
  %277 = call ptr @s2n_strerror_debug(i32 noundef %276, ptr noundef nonnull @.str.4) #10
  %278 = load i32, ptr %259, align 4, !tbaa !5
  %279 = call ptr @strerror(i32 noundef %278) #10
  %280 = load i32, ptr %259, align 4, !tbaa !5
  %281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %271, ptr noundef nonnull %.str.5.sink301, i32 noundef %272, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 71, ptr noundef %275, ptr noundef %277, ptr noundef %279, i32 noundef %280) #12
  call void @exit(i32 noundef 1) #13
  unreachable

282:                                              ; preds = %.preheader210
  %283 = add nsw i32 %250, 3
  store i32 %283, ptr @test_count, align 4, !tbaa !5
  %284 = getelementptr inbounds i8, ptr %249, i64 1
  %285 = load i8, ptr %284, align 1, !tbaa !15
  %286 = load i8, ptr getelementptr inbounds (i8, ptr @s2n_cert_type_preference_list, i64 1), align 1, !tbaa !15
  %287 = icmp eq i8 %285, %286
  br i1 %287, label %288, label %292

288:                                              ; preds = %282
  %289 = add nsw i32 %250, 4
  store i32 %289, ptr @test_count, align 4, !tbaa !5
  %290 = call i32 @s2n_config_free(ptr noundef nonnull %103) #10
  %291 = icmp eq i32 %290, -1
  br i1 %291, label %316, label %340

292:                                              ; preds = %282, %.preheader210
  %293 = tail call ptr @__errno_location() #11
  %294 = load i32, ptr %293, align 4, !tbaa !5
  %295 = load ptr, ptr @stderr, align 8, !tbaa !9
  %296 = call i32 @s2n_print_stacktrace(ptr noundef %295) #10
  %297 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %298 = trunc nuw i8 %297 to i1
  br i1 %298, label %299, label %303

299:                                              ; preds = %292
  %300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %301 = call i32 @fileno(ptr noundef %300) #10
  %302 = call i32 @isatty(i32 noundef %301) #10
  %.not201 = icmp eq i32 %302, 0
  br i1 %.not201, label %303, label %304

303:                                              ; preds = %299, %292
  br label %304

304:                                              ; preds = %299, %303
  %.str.5.sink312 = phi ptr [ @.str.5, %303 ], [ @.str.2, %299 ]
  store i32 %294, ptr %293, align 4, !tbaa !5
  %305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %306 = load i32, ptr @test_count, align 4, !tbaa !5
  %307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %308 = load i32, ptr %307, align 4, !tbaa !5
  %309 = call ptr @s2n_strerror(i32 noundef %308, ptr noundef nonnull @.str.4) #10
  %310 = load i32, ptr %307, align 4, !tbaa !5
  %311 = call ptr @s2n_strerror_debug(i32 noundef %310, ptr noundef nonnull @.str.4) #10
  %312 = load i32, ptr %293, align 4, !tbaa !5
  %313 = call ptr @strerror(i32 noundef %312) #10
  %314 = load i32, ptr %293, align 4, !tbaa !5
  %315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %305, ptr noundef nonnull %.str.5.sink312, i32 noundef %306, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 73, ptr noundef %309, ptr noundef %311, ptr noundef %313, i32 noundef %314) #12
  call void @exit(i32 noundef 1) #13
  unreachable

316:                                              ; preds = %288
  %317 = tail call ptr @__errno_location() #11
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = call i32 @s2n_print_stacktrace(ptr noundef %319) #10
  %321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %322 = trunc nuw i8 %321 to i1
  br i1 %322, label %323, label %327

323:                                              ; preds = %316
  %324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %325 = call i32 @fileno(ptr noundef %324) #10
  %326 = call i32 @isatty(i32 noundef %325) #10
  %.not200 = icmp eq i32 %326, 0
  br i1 %.not200, label %327, label %328

327:                                              ; preds = %323, %316
  br label %328

328:                                              ; preds = %323, %327
  %.str.5.sink323 = phi ptr [ @.str.5, %327 ], [ @.str.2, %323 ]
  store i32 %318, ptr %317, align 4, !tbaa !5
  %329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %330 = load i32, ptr @test_count, align 4, !tbaa !5
  %331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %332 = load i32, ptr %331, align 4, !tbaa !5
  %333 = call ptr @s2n_strerror(i32 noundef %332, ptr noundef nonnull @.str.4) #10
  %334 = load i32, ptr %331, align 4, !tbaa !5
  %335 = call ptr @s2n_strerror_debug(i32 noundef %334, ptr noundef nonnull @.str.4) #10
  %336 = load i32, ptr %317, align 4, !tbaa !5
  %337 = call ptr @strerror(i32 noundef %336) #10
  %338 = load i32, ptr %317, align 4, !tbaa !5
  %339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %329, ptr noundef nonnull %.str.5.sink323, i32 noundef %330, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %333, ptr noundef %335, ptr noundef %337, i32 noundef %338) #12
  call void @exit(i32 noundef 1) #13
  unreachable

340:                                              ; preds = %288
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = call i32 @s2n_connection_free(ptr noundef nonnull %132) #10
  %344 = icmp eq i32 %343, -1
  br i1 %344, label %345, label %369

345:                                              ; preds = %340
  %346 = tail call ptr @__errno_location() #11
  %347 = load i32, ptr %346, align 4, !tbaa !5
  %348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %349 = call i32 @s2n_print_stacktrace(ptr noundef %348) #10
  %350 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %351 = trunc nuw i8 %350 to i1
  br i1 %351, label %352, label %356

352:                                              ; preds = %345
  %353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %354 = call i32 @fileno(ptr noundef %353) #10
  %355 = call i32 @isatty(i32 noundef %354) #10
  %.not199 = icmp eq i32 %355, 0
  br i1 %.not199, label %356, label %357

356:                                              ; preds = %352, %345
  br label %357

357:                                              ; preds = %352, %356
  %.str.5.sink334 = phi ptr [ @.str.5, %356 ], [ @.str.2, %352 ]
  store i32 %347, ptr %346, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = load i32, ptr @test_count, align 4, !tbaa !5
  %360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %361 = load i32, ptr %360, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror(i32 noundef %361, ptr noundef nonnull @.str.4) #10
  %363 = load i32, ptr %360, align 4, !tbaa !5
  %364 = call ptr @s2n_strerror_debug(i32 noundef %363, ptr noundef nonnull @.str.4) #10
  %365 = load i32, ptr %346, align 4, !tbaa !5
  %366 = call ptr @strerror(i32 noundef %365) #10
  %367 = load i32, ptr %346, align 4, !tbaa !5
  %368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %358, ptr noundef nonnull %.str.5.sink334, i32 noundef %359, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 77, ptr noundef %362, ptr noundef %364, ptr noundef %366, i32 noundef %367) #12
  call void @exit(i32 noundef 1) #13
  unreachable

369:                                              ; preds = %340
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %3) #10
  %370 = load i32, ptr @test_count, align 4, !tbaa !5
  %371 = add nsw i32 %370, 1
  store i32 %371, ptr @test_count, align 4, !tbaa !5
  %372 = call ptr @s2n_config_new() #10
  %373 = icmp eq ptr %372, null
  br i1 %373, label %374, label %398

374:                                              ; preds = %369
  %375 = tail call ptr @__errno_location() #11
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %378 = call i32 @s2n_print_stacktrace(ptr noundef %377) #10
  %379 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %380 = trunc nuw i8 %379 to i1
  br i1 %380, label %381, label %385

381:                                              ; preds = %374
  %382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %383 = call i32 @fileno(ptr noundef %382) #10
  %384 = call i32 @isatty(i32 noundef %383) #10
  %.not198 = icmp eq i32 %384, 0
  br i1 %.not198, label %385, label %386

385:                                              ; preds = %381, %374
  br label %386

386:                                              ; preds = %381, %385
  %.str.5.sink345 = phi ptr [ @.str.5, %385 ], [ @.str.2, %381 ]
  store i32 %376, ptr %375, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = load i32, ptr @test_count, align 4, !tbaa !5
  %389 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %390 = load i32, ptr %389, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror(i32 noundef %390, ptr noundef nonnull @.str.4) #10
  %392 = load i32, ptr %389, align 4, !tbaa !5
  %393 = call ptr @s2n_strerror_debug(i32 noundef %392, ptr noundef nonnull @.str.4) #10
  %394 = load i32, ptr %375, align 4, !tbaa !5
  %395 = call ptr @strerror(i32 noundef %394) #10
  %396 = load i32, ptr %375, align 4, !tbaa !5
  %397 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %387, ptr noundef nonnull %.str.5.sink345, i32 noundef %388, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 86, ptr noundef %391, ptr noundef %393, ptr noundef %395, i32 noundef %396) #12
  call void @exit(i32 noundef 1) #13
  unreachable

398:                                              ; preds = %369
  %399 = load i32, ptr @test_count, align 4, !tbaa !5
  %400 = add nsw i32 %399, 1
  store i32 %400, ptr @test_count, align 4, !tbaa !5
  %401 = call ptr @s2n_connection_new(i32 noundef 0) #10
  %402 = icmp eq ptr %401, null
  br i1 %402, label %403, label %427

403:                                              ; preds = %398
  %404 = tail call ptr @__errno_location() #11
  %405 = load i32, ptr %404, align 4, !tbaa !5
  %406 = load ptr, ptr @stderr, align 8, !tbaa !9
  %407 = call i32 @s2n_print_stacktrace(ptr noundef %406) #10
  %408 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %409 = trunc nuw i8 %408 to i1
  br i1 %409, label %410, label %414

410:                                              ; preds = %403
  %411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %412 = call i32 @fileno(ptr noundef %411) #10
  %413 = call i32 @isatty(i32 noundef %412) #10
  %.not197 = icmp eq i32 %413, 0
  br i1 %.not197, label %414, label %415

414:                                              ; preds = %410, %403
  br label %415

415:                                              ; preds = %410, %414
  %.str.5.sink356 = phi ptr [ @.str.5, %414 ], [ @.str.2, %410 ]
  store i32 %405, ptr %404, 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 nonnull @.str.4) #10
  %421 = load i32, ptr %418, align 4, !tbaa !5
  %422 = call ptr @s2n_strerror_debug(i32 noundef %421, ptr noundef nonnull @.str.4) #10
  %423 = load i32, ptr %404, align 4, !tbaa !5
  %424 = call ptr @strerror(i32 noundef %423) #10
  %425 = load i32, ptr %404, align 4, !tbaa !5
  %426 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %416, ptr noundef nonnull %.str.5.sink356, i32 noundef %417, ptr noundef nonnull @.str.9, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %420, ptr noundef %422, ptr noundef %424, i32 noundef %425) #12
  call void @exit(i32 noundef 1) #13
  unreachable

427:                                              ; preds = %398
  %428 = load i32, ptr @test_count, align 4, !tbaa !5
  %429 = add nsw i32 %428, 1
  store i32 %429, ptr @test_count, align 4, !tbaa !5
  %430 = call i32 @s2n_connection_set_config(ptr noundef nonnull %401, ptr noundef nonnull %372) #10
  %431 = icmp eq i32 %430, -1
  br i1 %431, label %432, label %456

432:                                              ; preds = %427
  %433 = tail call ptr @__errno_location() #11
  %434 = load i32, ptr %433, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = call i32 @s2n_print_stacktrace(ptr noundef %435) #10
  %437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %438 = trunc nuw i8 %437 to i1
  br i1 %438, label %439, label %443

439:                                              ; preds = %432
  %440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %441 = call i32 @fileno(ptr noundef %440) #10
  %442 = call i32 @isatty(i32 noundef %441) #10
  %.not196 = icmp eq i32 %442, 0
  br i1 %.not196, label %443, label %444

443:                                              ; preds = %439, %432
  br label %444

444:                                              ; preds = %439, %443
  %.str.5.sink367 = phi ptr [ @.str.5, %443 ], [ @.str.2, %439 ]
  store i32 %434, ptr %433, align 4, !tbaa !5
  %445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %448 = load i32, ptr %447, align 4, !tbaa !5
  %449 = call ptr @s2n_strerror(i32 noundef %448, ptr noundef nonnull @.str.4) #10
  %450 = load i32, ptr %447, align 4, !tbaa !5
  %451 = call ptr @s2n_strerror_debug(i32 noundef %450, ptr noundef nonnull @.str.4) #10
  %452 = load i32, ptr %433, align 4, !tbaa !5
  %453 = call ptr @strerror(i32 noundef %452) #10
  %454 = load i32, ptr %433, align 4, !tbaa !5
  %455 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %445, ptr noundef nonnull %.str.5.sink367, i32 noundef %446, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %449, ptr noundef %451, ptr noundef %453, i32 noundef %454) #12
  call void @exit(i32 noundef 1) #13
  unreachable

456:                                              ; preds = %427
  %457 = load i32, ptr @test_count, align 4, !tbaa !5
  %458 = add nsw i32 %457, 1
  store i32 %458, ptr @test_count, align 4, !tbaa !5
  %459 = call i32 @s2n_config_enable_cert_req_dss_legacy_compat(ptr noundef nonnull %372) #10
  %460 = icmp eq i32 %459, -1
  br i1 %460, label %461, label %485

461:                                              ; preds = %456
  %462 = tail call ptr @__errno_location() #11
  %463 = load i32, ptr %462, align 4, !tbaa !5
  %464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %465 = call i32 @s2n_print_stacktrace(ptr noundef %464) #10
  %466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %467 = trunc nuw i8 %466 to i1
  br i1 %467, label %468, label %472

468:                                              ; preds = %461
  %469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %470 = call i32 @fileno(ptr noundef %469) #10
  %471 = call i32 @isatty(i32 noundef %470) #10
  %.not195 = icmp eq i32 %471, 0
  br i1 %.not195, label %472, label %473

472:                                              ; preds = %468, %461
  br label %473

473:                                              ; preds = %468, %472
  %.str.5.sink378 = phi ptr [ @.str.5, %472 ], [ @.str.2, %468 ]
  store i32 %463, ptr %462, align 4, !tbaa !5
  %474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %475 = load i32, ptr @test_count, align 4, !tbaa !5
  %476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %477 = load i32, ptr %476, align 4, !tbaa !5
  %478 = call ptr @s2n_strerror(i32 noundef %477, ptr noundef nonnull @.str.4) #10
  %479 = load i32, ptr %476, align 4, !tbaa !5
  %480 = call ptr @s2n_strerror_debug(i32 noundef %479, ptr noundef nonnull @.str.4) #10
  %481 = load i32, ptr %462, align 4, !tbaa !5
  %482 = call ptr @strerror(i32 noundef %481) #10
  %483 = load i32, ptr %462, align 4, !tbaa !5
  %484 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %474, ptr noundef nonnull %.str.5.sink378, i32 noundef %475, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 89, ptr noundef %478, ptr noundef %480, ptr noundef %482, i32 noundef %483) #12
  call void @exit(i32 noundef 1) #13
  unreachable

485:                                              ; preds = %456
  %486 = load i32, ptr @test_count, align 4, !tbaa !5
  %487 = add nsw i32 %486, 1
  store i32 %487, ptr @test_count, align 4, !tbaa !5
  %488 = call i32 @s2n_cert_req_send(ptr noundef nonnull %401) #10
  %489 = icmp eq i32 %488, -1
  br i1 %489, label %490, label %514

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

497:                                              ; preds = %490
  %498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %499 = call i32 @fileno(ptr noundef %498) #10
  %500 = call i32 @isatty(i32 noundef %499) #10
  %.not194 = icmp eq i32 %500, 0
  br i1 %.not194, label %501, label %502

501:                                              ; preds = %497, %490
  br label %502

502:                                              ; preds = %497, %501
  %.str.5.sink389 = phi ptr [ @.str.5, %501 ], [ @.str.2, %497 ]
  store i32 %492, ptr %491, align 4, !tbaa !5
  %503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %504 = load i32, ptr @test_count, align 4, !tbaa !5
  %505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @s2n_strerror(i32 noundef %506, ptr noundef nonnull @.str.4) #10
  %508 = load i32, ptr %505, align 4, !tbaa !5
  %509 = call ptr @s2n_strerror_debug(i32 noundef %508, ptr noundef nonnull @.str.4) #10
  %510 = load i32, ptr %491, align 4, !tbaa !5
  %511 = call ptr @strerror(i32 noundef %510) #10
  %512 = load i32, ptr %491, align 4, !tbaa !5
  %513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %503, ptr noundef nonnull %.str.5.sink389, i32 noundef %504, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 91, ptr noundef %507, ptr noundef %509, ptr noundef %511, i32 noundef %512) #12
  call void @exit(i32 noundef 1) #13
  unreachable

514:                                              ; preds = %485
  %515 = getelementptr inbounds i8, ptr %401, i64 2016
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %4) #10
  store i8 0, ptr %4, align 1, !tbaa !15
  %516 = load i32, ptr @test_count, align 4, !tbaa !5
  %517 = add nsw i32 %516, 1
  store i32 %517, ptr @test_count, align 4, !tbaa !5
  %518 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %515, ptr noundef nonnull %4) #10
  %519 = icmp eq i32 %518, -1
  br i1 %519, label %520, label %544

520:                                              ; preds = %514
  %521 = tail call ptr @__errno_location() #11
  %522 = load i32, ptr %521, align 4, !tbaa !5
  %523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %524 = call i32 @s2n_print_stacktrace(ptr noundef %523) #10
  %525 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %526 = trunc nuw i8 %525 to i1
  br i1 %526, label %527, label %531

527:                                              ; preds = %520
  %528 = load ptr, ptr @stderr, align 8, !tbaa !9
  %529 = call i32 @fileno(ptr noundef %528) #10
  %530 = call i32 @isatty(i32 noundef %529) #10
  %.not193 = icmp eq i32 %530, 0
  br i1 %.not193, label %531, label %532

531:                                              ; preds = %527, %520
  br label %532

532:                                              ; preds = %527, %531
  %.str.5.sink400 = phi ptr [ @.str.5, %531 ], [ @.str.2, %527 ]
  store i32 %522, ptr %521, align 4, !tbaa !5
  %533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %534 = load i32, ptr @test_count, align 4, !tbaa !5
  %535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %536 = load i32, ptr %535, align 4, !tbaa !5
  %537 = call ptr @s2n_strerror(i32 noundef %536, ptr noundef nonnull @.str.4) #10
  %538 = load i32, ptr %535, align 4, !tbaa !5
  %539 = call ptr @s2n_strerror_debug(i32 noundef %538, ptr noundef nonnull @.str.4) #10
  %540 = load i32, ptr %521, align 4, !tbaa !5
  %541 = call ptr @strerror(i32 noundef %540) #10
  %542 = load i32, ptr %521, align 4, !tbaa !5
  %543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %533, ptr noundef nonnull %.str.5.sink400, i32 noundef %534, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 95, ptr noundef %537, ptr noundef %539, ptr noundef %541, i32 noundef %542) #12
  call void @exit(i32 noundef 1) #13
  unreachable

544:                                              ; preds = %514
  %545 = load i8, ptr %4, align 1, !tbaa !15
  %546 = zext i8 %545 to i32
  %547 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %515, i32 noundef %546) #10
  %548 = load i32, ptr @test_count, align 4, !tbaa !5
  %549 = add nsw i32 %548, 1
  store i32 %549, ptr @test_count, align 4, !tbaa !5
  %550 = load i8, ptr %4, align 1, !tbaa !15
  %551 = icmp eq i8 %550, 3
  br i1 %551, label %.preheader, label %556

.preheader:                                       ; preds = %544
  %552 = add nsw i32 %548, 2
  store i32 %552, ptr @test_count, align 4, !tbaa !5
  %553 = load i8, ptr %547, align 1, !tbaa !15
  %554 = load i8, ptr @s2n_cert_type_preference_list_legacy_dss, align 1, !tbaa !15
  %555 = icmp eq i8 %553, %554
  br i1 %555, label %580, label %596

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

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

567:                                              ; preds = %563, %556
  br label %568

568:                                              ; preds = %563, %567
  %.str.5.sink411 = phi ptr [ @.str.5, %567 ], [ @.str.2, %563 ]
  store i32 %558, ptr %557, align 4, !tbaa !5
  %569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %570 = load i32, ptr @test_count, align 4, !tbaa !5
  %571 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %572 = load i32, ptr %571, align 4, !tbaa !5
  %573 = call ptr @s2n_strerror(i32 noundef %572, ptr noundef nonnull @.str.4) #10
  %574 = load i32, ptr %571, align 4, !tbaa !5
  %575 = call ptr @s2n_strerror_debug(i32 noundef %574, ptr noundef nonnull @.str.4) #10
  %576 = load i32, ptr %557, align 4, !tbaa !5
  %577 = call ptr @strerror(i32 noundef %576) #10
  %578 = load i32, ptr %557, align 4, !tbaa !5
  %579 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %569, ptr noundef nonnull %.str.5.sink411, i32 noundef %570, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 99, ptr noundef %573, ptr noundef %575, ptr noundef %577, i32 noundef %578) #12
  call void @exit(i32 noundef 1) #13
  unreachable

580:                                              ; preds = %.preheader
  %581 = add nsw i32 %548, 3
  store i32 %581, ptr @test_count, align 4, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %547, i64 1
  %583 = load i8, ptr %582, align 1, !tbaa !15
  %584 = load i8, ptr getelementptr inbounds (i8, ptr @s2n_cert_type_preference_list_legacy_dss, i64 1), align 1, !tbaa !15
  %585 = icmp eq i8 %583, %584
  br i1 %585, label %586, label %596

586:                                              ; preds = %580
  %587 = add nsw i32 %548, 4
  store i32 %587, ptr @test_count, align 4, !tbaa !5
  %588 = getelementptr inbounds i8, ptr %547, i64 2
  %589 = load i8, ptr %588, align 1, !tbaa !15
  %590 = load i8, ptr getelementptr inbounds (i8, ptr @s2n_cert_type_preference_list_legacy_dss, i64 2), align 1, !tbaa !15
  %591 = icmp eq i8 %589, %590
  br i1 %591, label %592, label %596

592:                                              ; preds = %586
  %593 = add nsw i32 %548, 5
  store i32 %593, ptr @test_count, align 4, !tbaa !5
  %594 = call i32 @s2n_config_free(ptr noundef nonnull %372) #10
  %595 = icmp eq i32 %594, -1
  br i1 %595, label %620, label %644

596:                                              ; preds = %586, %580, %.preheader
  %597 = tail call ptr @__errno_location() #11
  %598 = load i32, ptr %597, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = call i32 @s2n_print_stacktrace(ptr noundef %599) #10
  %601 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %602 = trunc nuw i8 %601 to i1
  br i1 %602, label %603, label %607

603:                                              ; preds = %596
  %604 = load ptr, ptr @stderr, align 8, !tbaa !9
  %605 = call i32 @fileno(ptr noundef %604) #10
  %606 = call i32 @isatty(i32 noundef %605) #10
  %.not192 = icmp eq i32 %606, 0
  br i1 %.not192, label %607, label %608

607:                                              ; preds = %603, %596
  br label %608

608:                                              ; preds = %603, %607
  %.str.5.sink422 = phi ptr [ @.str.5, %607 ], [ @.str.2, %603 ]
  store i32 %598, ptr %597, align 4, !tbaa !5
  %609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %612 = load i32, ptr %611, align 4, !tbaa !5
  %613 = call ptr @s2n_strerror(i32 noundef %612, ptr noundef nonnull @.str.4) #10
  %614 = load i32, ptr %611, align 4, !tbaa !5
  %615 = call ptr @s2n_strerror_debug(i32 noundef %614, ptr noundef nonnull @.str.4) #10
  %616 = load i32, ptr %597, align 4, !tbaa !5
  %617 = call ptr @strerror(i32 noundef %616) #10
  %618 = load i32, ptr %597, align 4, !tbaa !5
  %619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %609, ptr noundef nonnull %.str.5.sink422, i32 noundef %610, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 101, ptr noundef %613, ptr noundef %615, ptr noundef %617, i32 noundef %618) #12
  call void @exit(i32 noundef 1) #13
  unreachable

620:                                              ; preds = %592
  %621 = tail call ptr @__errno_location() #11
  %622 = load i32, ptr %621, align 4, !tbaa !5
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @s2n_print_stacktrace(ptr noundef %623) #10
  %625 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %626 = trunc nuw i8 %625 to i1
  br i1 %626, label %627, label %631

627:                                              ; preds = %620
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = call i32 @fileno(ptr noundef %628) #10
  %630 = call i32 @isatty(i32 noundef %629) #10
  %.not191 = icmp eq i32 %630, 0
  br i1 %.not191, label %631, label %632

631:                                              ; preds = %627, %620
  br label %632

632:                                              ; preds = %627, %631
  %.str.5.sink433 = phi ptr [ @.str.5, %631 ], [ @.str.2, %627 ]
  store i32 %622, ptr %621, align 4, !tbaa !5
  %633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %634 = load i32, ptr @test_count, align 4, !tbaa !5
  %635 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror(i32 noundef %636, ptr noundef nonnull @.str.4) #10
  %638 = load i32, ptr %635, align 4, !tbaa !5
  %639 = call ptr @s2n_strerror_debug(i32 noundef %638, ptr noundef nonnull @.str.4) #10
  %640 = load i32, ptr %621, align 4, !tbaa !5
  %641 = call ptr @strerror(i32 noundef %640) #10
  %642 = load i32, ptr %621, align 4, !tbaa !5
  %643 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %633, ptr noundef nonnull %.str.5.sink433, i32 noundef %634, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %637, ptr noundef %639, ptr noundef %641, i32 noundef %642) #12
  call void @exit(i32 noundef 1) #13
  unreachable

644:                                              ; preds = %592
  %645 = load i32, ptr @test_count, align 4, !tbaa !5
  %646 = add nsw i32 %645, 1
  store i32 %646, ptr @test_count, align 4, !tbaa !5
  %647 = call i32 @s2n_connection_free(ptr noundef nonnull %401) #10
  %648 = icmp eq i32 %647, -1
  br i1 %648, label %649, label %673

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

656:                                              ; preds = %649
  %657 = load ptr, ptr @stderr, align 8, !tbaa !9
  %658 = call i32 @fileno(ptr noundef %657) #10
  %659 = call i32 @isatty(i32 noundef %658) #10
  %.not190 = icmp eq i32 %659, 0
  br i1 %.not190, label %660, label %661

660:                                              ; preds = %656, %649
  br label %661

661:                                              ; preds = %656, %660
  %.str.5.sink444 = phi ptr [ @.str.5, %660 ], [ @.str.2, %656 ]
  store i32 %651, ptr %650, align 4, !tbaa !5
  %662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %663 = load i32, ptr @test_count, align 4, !tbaa !5
  %664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %665 = load i32, ptr %664, align 4, !tbaa !5
  %666 = call ptr @s2n_strerror(i32 noundef %665, ptr noundef nonnull @.str.4) #10
  %667 = load i32, ptr %664, align 4, !tbaa !5
  %668 = call ptr @s2n_strerror_debug(i32 noundef %667, ptr noundef nonnull @.str.4) #10
  %669 = load i32, ptr %650, align 4, !tbaa !5
  %670 = call ptr @strerror(i32 noundef %669) #10
  %671 = load i32, ptr %650, align 4, !tbaa !5
  %672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %662, ptr noundef nonnull %.str.5.sink444, i32 noundef %663, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 105, ptr noundef %666, ptr noundef %668, ptr noundef %670, i32 noundef %671) #12
  call void @exit(i32 noundef 1) #13
  unreachable

673:                                              ; preds = %644
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #10
  %674 = call ptr @s2n_connection_new(i32 noundef 0) #10
  store ptr %674, ptr %5, align 8, !tbaa !9
  %675 = load i32, ptr @test_count, align 4, !tbaa !5
  %676 = add nsw i32 %675, 1
  store i32 %676, ptr @test_count, align 4, !tbaa !5
  %677 = icmp eq ptr %674, null
  br i1 %677, label %678, label %702

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

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

689:                                              ; preds = %685, %678
  br label %690

690:                                              ; preds = %685, %689
  %.str.5.sink455 = phi ptr [ @.str.5, %689 ], [ @.str.2, %685 ]
  store i32 %680, ptr %679, align 4, !tbaa !5
  %691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %692 = load i32, ptr @test_count, align 4, !tbaa !5
  %693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %694 = load i32, ptr %693, align 4, !tbaa !5
  %695 = call ptr @s2n_strerror(i32 noundef %694, ptr noundef nonnull @.str.4) #10
  %696 = load i32, ptr %693, align 4, !tbaa !5
  %697 = call ptr @s2n_strerror_debug(i32 noundef %696, ptr noundef nonnull @.str.4) #10
  %698 = load i32, ptr %679, align 4, !tbaa !5
  %699 = call ptr @strerror(i32 noundef %698) #10
  %700 = load i32, ptr %679, align 4, !tbaa !5
  %701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %691, ptr noundef nonnull %.str.5.sink455, i32 noundef %692, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 114, ptr noundef %695, ptr noundef %697, ptr noundef %699, i32 noundef %700) #12
  call void @exit(i32 noundef 1) #13
  unreachable

702:                                              ; preds = %673
  %703 = getelementptr inbounds i8, ptr %674, i64 220
  store i8 33, ptr %703, align 4, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) #10
  %704 = call ptr @s2n_config_new() #10
  store ptr %704, ptr %6, align 8, !tbaa !9
  %705 = load i32, ptr @test_count, align 4, !tbaa !5
  %706 = add nsw i32 %705, 1
  store i32 %706, ptr @test_count, align 4, !tbaa !5
  %707 = icmp eq ptr %704, null
  br i1 %707, label %708, label %732

708:                                              ; preds = %702
  %709 = tail call ptr @__errno_location() #11
  %710 = load i32, ptr %709, align 4, !tbaa !5
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @s2n_print_stacktrace(ptr noundef %711) #10
  %713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %714 = trunc nuw i8 %713 to i1
  br i1 %714, label %715, label %719

715:                                              ; preds = %708
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = call i32 @fileno(ptr noundef %716) #10
  %718 = call i32 @isatty(i32 noundef %717) #10
  %.not188 = icmp eq i32 %718, 0
  br i1 %.not188, label %719, label %720

719:                                              ; preds = %715, %708
  br label %720

720:                                              ; preds = %715, %719
  %.str.5.sink466 = phi ptr [ @.str.5, %719 ], [ @.str.2, %715 ]
  store i32 %710, ptr %709, align 4, !tbaa !5
  %721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %722 = load i32, ptr @test_count, align 4, !tbaa !5
  %723 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %724 = load i32, ptr %723, align 4, !tbaa !5
  %725 = call ptr @s2n_strerror(i32 noundef %724, ptr noundef nonnull @.str.4) #10
  %726 = load i32, ptr %723, align 4, !tbaa !5
  %727 = call ptr @s2n_strerror_debug(i32 noundef %726, ptr noundef nonnull @.str.4) #10
  %728 = load i32, ptr %709, align 4, !tbaa !5
  %729 = call ptr @strerror(i32 noundef %728) #10
  %730 = load i32, ptr %709, align 4, !tbaa !5
  %731 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %721, ptr noundef nonnull %.str.5.sink466, i32 noundef %722, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 119, ptr noundef %725, ptr noundef %727, ptr noundef %729, i32 noundef %730) #12
  call void @exit(i32 noundef 1) #13
  unreachable

732:                                              ; preds = %702
  %733 = add nsw i32 %705, 2
  store i32 %733, ptr @test_count, align 4, !tbaa !5
  %734 = load ptr, ptr %5, align 8, !tbaa !9
  %735 = call i32 @s2n_connection_set_config(ptr noundef %734, ptr noundef nonnull %704) #10
  %736 = icmp eq i32 %735, -1
  br i1 %736, label %737, label %761

737:                                              ; preds = %732
  %738 = tail call ptr @__errno_location() #11
  %739 = load i32, ptr %738, align 4, !tbaa !5
  %740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %741 = call i32 @s2n_print_stacktrace(ptr noundef %740) #10
  %742 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %743 = trunc nuw i8 %742 to i1
  br i1 %743, label %744, label %748

744:                                              ; preds = %737
  %745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %746 = call i32 @fileno(ptr noundef %745) #10
  %747 = call i32 @isatty(i32 noundef %746) #10
  %.not187 = icmp eq i32 %747, 0
  br i1 %.not187, label %748, label %749

748:                                              ; preds = %744, %737
  br label %749

749:                                              ; preds = %744, %748
  %.str.5.sink477 = phi ptr [ @.str.5, %748 ], [ @.str.2, %744 ]
  store i32 %739, ptr %738, align 4, !tbaa !5
  %750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %751 = load i32, ptr @test_count, align 4, !tbaa !5
  %752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %753 = load i32, ptr %752, align 4, !tbaa !5
  %754 = call ptr @s2n_strerror(i32 noundef %753, ptr noundef nonnull @.str.4) #10
  %755 = load i32, ptr %752, align 4, !tbaa !5
  %756 = call ptr @s2n_strerror_debug(i32 noundef %755, ptr noundef nonnull @.str.4) #10
  %757 = load i32, ptr %738, align 4, !tbaa !5
  %758 = call ptr @strerror(i32 noundef %757) #10
  %759 = load i32, ptr %738, align 4, !tbaa !5
  %760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef nonnull %.str.5.sink477, i32 noundef %751, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %754, ptr noundef %756, ptr noundef %758, i32 noundef %759) #12
  call void @exit(i32 noundef 1) #13
  unreachable

761:                                              ; preds = %732
  %762 = load i32, ptr @test_count, align 4, !tbaa !5
  %763 = add nsw i32 %762, 1
  store i32 %763, ptr @test_count, align 4, !tbaa !5
  %764 = load ptr, ptr %5, align 8, !tbaa !9
  %765 = call i32 @s2n_cert_req_send(ptr noundef %764) #10
  %766 = icmp eq i32 %765, -1
  br i1 %766, label %767, label %791

767:                                              ; preds = %761
  %768 = tail call ptr @__errno_location() #11
  %769 = load i32, ptr %768, align 4, !tbaa !5
  %770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %771 = call i32 @s2n_print_stacktrace(ptr noundef %770) #10
  %772 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %773 = trunc nuw i8 %772 to i1
  br i1 %773, label %774, label %778

774:                                              ; preds = %767
  %775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %776 = call i32 @fileno(ptr noundef %775) #10
  %777 = call i32 @isatty(i32 noundef %776) #10
  %.not186 = icmp eq i32 %777, 0
  br i1 %.not186, label %778, label %779

778:                                              ; preds = %774, %767
  br label %779

779:                                              ; preds = %774, %778
  %.str.5.sink488 = phi ptr [ @.str.5, %778 ], [ @.str.2, %774 ]
  store i32 %769, ptr %768, align 4, !tbaa !5
  %780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %781 = load i32, ptr @test_count, align 4, !tbaa !5
  %782 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %783 = load i32, ptr %782, align 4, !tbaa !5
  %784 = call ptr @s2n_strerror(i32 noundef %783, ptr noundef nonnull @.str.4) #10
  %785 = load i32, ptr %782, align 4, !tbaa !5
  %786 = call ptr @s2n_strerror_debug(i32 noundef %785, ptr noundef nonnull @.str.4) #10
  %787 = load i32, ptr %768, align 4, !tbaa !5
  %788 = call ptr @strerror(i32 noundef %787) #10
  %789 = load i32, ptr %768, align 4, !tbaa !5
  %790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %780, ptr noundef nonnull %.str.5.sink488, i32 noundef %781, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 122, ptr noundef %784, ptr noundef %786, ptr noundef %788, i32 noundef %789) #12
  call void @exit(i32 noundef 1) #13
  unreachable

791:                                              ; preds = %761
  %792 = load ptr, ptr %5, align 8, !tbaa !9
  %793 = getelementptr inbounds i8, ptr %792, i64 2016
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %7) #10
  store i8 0, ptr %7, align 1, !tbaa !15
  %794 = load i32, ptr @test_count, align 4, !tbaa !5
  %795 = add nsw i32 %794, 1
  store i32 %795, ptr @test_count, align 4, !tbaa !5
  %796 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %793, ptr noundef nonnull %7) #10
  %797 = icmp eq i32 %796, -1
  br i1 %797, label %798, label %822

798:                                              ; preds = %791
  %799 = tail call ptr @__errno_location() #11
  %800 = load i32, ptr %799, align 4, !tbaa !5
  %801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %802 = call i32 @s2n_print_stacktrace(ptr noundef %801) #10
  %803 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %804 = trunc nuw i8 %803 to i1
  br i1 %804, label %805, label %809

805:                                              ; preds = %798
  %806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %807 = call i32 @fileno(ptr noundef %806) #10
  %808 = call i32 @isatty(i32 noundef %807) #10
  %.not185 = icmp eq i32 %808, 0
  br i1 %.not185, label %809, label %810

809:                                              ; preds = %805, %798
  br label %810

810:                                              ; preds = %805, %809
  %.str.5.sink499 = phi ptr [ @.str.5, %809 ], [ @.str.2, %805 ]
  store i32 %800, ptr %799, align 4, !tbaa !5
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %814 = load i32, ptr %813, align 4, !tbaa !5
  %815 = call ptr @s2n_strerror(i32 noundef %814, ptr noundef nonnull @.str.4) #10
  %816 = load i32, ptr %813, align 4, !tbaa !5
  %817 = call ptr @s2n_strerror_debug(i32 noundef %816, ptr noundef nonnull @.str.4) #10
  %818 = load i32, ptr %799, align 4, !tbaa !5
  %819 = call ptr @strerror(i32 noundef %818) #10
  %820 = load i32, ptr %799, align 4, !tbaa !5
  %821 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %811, ptr noundef nonnull %.str.5.sink499, i32 noundef %812, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 126, ptr noundef %815, ptr noundef %817, ptr noundef %819, i32 noundef %820) #12
  call void @exit(i32 noundef 1) #13
  unreachable

822:                                              ; preds = %791
  %823 = load i32, ptr @test_count, align 4, !tbaa !5
  %824 = add nsw i32 %823, 1
  store i32 %824, ptr @test_count, align 4, !tbaa !5
  %825 = load i8, ptr %7, align 1, !tbaa !15
  %.not157 = icmp eq i8 %825, 0
  br i1 %.not157, label %826, label %850

826:                                              ; preds = %822
  %827 = tail call ptr @__errno_location() #11
  %828 = load i32, ptr %827, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = call i32 @s2n_print_stacktrace(ptr noundef %829) #10
  %831 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %832 = trunc nuw i8 %831 to i1
  br i1 %832, label %833, label %837

833:                                              ; preds = %826
  %834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %835 = call i32 @fileno(ptr noundef %834) #10
  %836 = call i32 @isatty(i32 noundef %835) #10
  %.not158 = icmp eq i32 %836, 0
  br i1 %.not158, label %837, label %838

837:                                              ; preds = %833, %826
  br label %838

838:                                              ; preds = %833, %837
  %.str.5.sink510 = phi ptr [ @.str.5, %837 ], [ @.str.2, %833 ]
  store i32 %828, ptr %827, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = load i32, ptr @test_count, align 4, !tbaa !5
  %841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %842 = load i32, ptr %841, align 4, !tbaa !5
  %843 = call ptr @s2n_strerror(i32 noundef %842, ptr noundef nonnull @.str.4) #10
  %844 = load i32, ptr %841, align 4, !tbaa !5
  %845 = call ptr @s2n_strerror_debug(i32 noundef %844, ptr noundef nonnull @.str.4) #10
  %846 = load i32, ptr %827, align 4, !tbaa !5
  %847 = call ptr @strerror(i32 noundef %846) #10
  %848 = load i32, ptr %827, align 4, !tbaa !5
  %849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %839, ptr noundef nonnull %.str.5.sink510, i32 noundef %840, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 127, ptr noundef %843, ptr noundef %845, ptr noundef %847, i32 noundef %848) #12
  call void @exit(i32 noundef 1) #13
  unreachable

850:                                              ; preds = %822
  %851 = add nsw i32 %823, 2
  store i32 %851, ptr @test_count, align 4, !tbaa !5
  %852 = zext i8 %825 to i32
  %853 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %793, i32 noundef %852) #10
  %854 = icmp eq i32 %853, -1
  br i1 %854, label %855, label %879

855:                                              ; preds = %850
  %856 = tail call ptr @__errno_location() #11
  %857 = load i32, ptr %856, align 4, !tbaa !5
  %858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %859 = call i32 @s2n_print_stacktrace(ptr noundef %858) #10
  %860 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %861 = trunc nuw i8 %860 to i1
  br i1 %861, label %862, label %866

862:                                              ; preds = %855
  %863 = load ptr, ptr @stderr, align 8, !tbaa !9
  %864 = call i32 @fileno(ptr noundef %863) #10
  %865 = call i32 @isatty(i32 noundef %864) #10
  %.not184 = icmp eq i32 %865, 0
  br i1 %.not184, label %866, label %867

866:                                              ; preds = %862, %855
  br label %867

867:                                              ; preds = %862, %866
  %.str.5.sink521 = phi ptr [ @.str.5, %866 ], [ @.str.2, %862 ]
  store i32 %857, ptr %856, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef nonnull @.str.4) #10
  %873 = load i32, ptr %870, align 4, !tbaa !5
  %874 = call ptr @s2n_strerror_debug(i32 noundef %873, ptr noundef nonnull @.str.4) #10
  %875 = load i32, ptr %856, align 4, !tbaa !5
  %876 = call ptr @strerror(i32 noundef %875) #10
  %877 = load i32, ptr %856, align 4, !tbaa !5
  %878 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef nonnull %.str.5.sink521, i32 noundef %869, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 128, ptr noundef %872, ptr noundef %874, ptr noundef %876, i32 noundef %877) #12
  call void @exit(i32 noundef 1) #13
  unreachable

879:                                              ; preds = %850
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %8) #10
  store i16 0, ptr %8, align 2, !tbaa !43
  %880 = load i32, ptr @test_count, align 4, !tbaa !5
  %881 = add nsw i32 %880, 1
  store i32 %881, ptr @test_count, align 4, !tbaa !5
  %882 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %793, ptr noundef nonnull %8) #10
  %883 = icmp eq i32 %882, -1
  br i1 %883, label %884, label %908

884:                                              ; preds = %879
  %885 = tail call ptr @__errno_location() #11
  %886 = load i32, ptr %885, align 4, !tbaa !5
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @s2n_print_stacktrace(ptr noundef %887) #10
  %889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %890 = trunc nuw i8 %889 to i1
  br i1 %890, label %891, label %895

891:                                              ; preds = %884
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @fileno(ptr noundef %892) #10
  %894 = call i32 @isatty(i32 noundef %893) #10
  %.not183 = icmp eq i32 %894, 0
  br i1 %.not183, label %895, label %896

895:                                              ; preds = %891, %884
  br label %896

896:                                              ; preds = %891, %895
  %.str.5.sink532 = phi ptr [ @.str.5, %895 ], [ @.str.2, %891 ]
  store i32 %886, ptr %885, align 4, !tbaa !5
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = load i32, ptr @test_count, align 4, !tbaa !5
  %899 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %900 = load i32, ptr %899, align 4, !tbaa !5
  %901 = call ptr @s2n_strerror(i32 noundef %900, ptr noundef nonnull @.str.4) #10
  %902 = load i32, ptr %899, align 4, !tbaa !5
  %903 = call ptr @s2n_strerror_debug(i32 noundef %902, ptr noundef nonnull @.str.4) #10
  %904 = load i32, ptr %885, align 4, !tbaa !5
  %905 = call ptr @strerror(i32 noundef %904) #10
  %906 = load i32, ptr %885, align 4, !tbaa !5
  %907 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %897, ptr noundef nonnull %.str.5.sink532, i32 noundef %898, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 131, ptr noundef %901, ptr noundef %903, ptr noundef %905, i32 noundef %906) #12
  call void @exit(i32 noundef 1) #13
  unreachable

908:                                              ; preds = %879
  %909 = load i32, ptr @test_count, align 4, !tbaa !5
  %910 = add nsw i32 %909, 1
  store i32 %910, ptr @test_count, align 4, !tbaa !5
  %911 = load i16, ptr %8, align 2, !tbaa !43
  %.not159 = icmp eq i16 %911, 0
  br i1 %.not159, label %912, label %936

912:                                              ; preds = %908
  %913 = tail call ptr @__errno_location() #11
  %914 = load i32, ptr %913, align 4, !tbaa !5
  %915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %916 = call i32 @s2n_print_stacktrace(ptr noundef %915) #10
  %917 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %918 = trunc nuw i8 %917 to i1
  br i1 %918, label %919, label %923

919:                                              ; preds = %912
  %920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %921 = call i32 @fileno(ptr noundef %920) #10
  %922 = call i32 @isatty(i32 noundef %921) #10
  %.not160 = icmp eq i32 %922, 0
  br i1 %.not160, label %923, label %924

923:                                              ; preds = %919, %912
  br label %924

924:                                              ; preds = %919, %923
  %.str.5.sink543 = phi ptr [ @.str.5, %923 ], [ @.str.2, %919 ]
  store i32 %914, ptr %913, align 4, !tbaa !5
  %925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %926 = load i32, ptr @test_count, align 4, !tbaa !5
  %927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %928 = load i32, ptr %927, align 4, !tbaa !5
  %929 = call ptr @s2n_strerror(i32 noundef %928, ptr noundef nonnull @.str.4) #10
  %930 = load i32, ptr %927, align 4, !tbaa !5
  %931 = call ptr @s2n_strerror_debug(i32 noundef %930, ptr noundef nonnull @.str.4) #10
  %932 = load i32, ptr %913, align 4, !tbaa !5
  %933 = call ptr @strerror(i32 noundef %932) #10
  %934 = load i32, ptr %913, align 4, !tbaa !5
  %935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %925, ptr noundef nonnull %.str.5.sink543, i32 noundef %926, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 132, ptr noundef %929, ptr noundef %931, ptr noundef %933, i32 noundef %934) #12
  call void @exit(i32 noundef 1) #13
  unreachable

936:                                              ; preds = %908
  %937 = add nsw i32 %909, 2
  store i32 %937, ptr @test_count, align 4, !tbaa !5
  %938 = zext i16 %911 to i32
  %939 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %793, i32 noundef %938) #10
  %940 = icmp eq i32 %939, -1
  br i1 %940, label %941, label %965

941:                                              ; preds = %936
  %942 = tail call ptr @__errno_location() #11
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = load ptr, ptr @stderr, align 8, !tbaa !9
  %945 = call i32 @s2n_print_stacktrace(ptr noundef %944) #10
  %946 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %947 = trunc nuw i8 %946 to i1
  br i1 %947, label %948, label %952

948:                                              ; preds = %941
  %949 = load ptr, ptr @stderr, align 8, !tbaa !9
  %950 = call i32 @fileno(ptr noundef %949) #10
  %951 = call i32 @isatty(i32 noundef %950) #10
  %.not182 = icmp eq i32 %951, 0
  br i1 %.not182, label %952, label %953

952:                                              ; preds = %948, %941
  br label %953

953:                                              ; preds = %948, %952
  %.str.5.sink554 = phi ptr [ @.str.5, %952 ], [ @.str.2, %948 ]
  store i32 %943, ptr %942, align 4, !tbaa !5
  %954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %955 = load i32, ptr @test_count, align 4, !tbaa !5
  %956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %957 = load i32, ptr %956, align 4, !tbaa !5
  %958 = call ptr @s2n_strerror(i32 noundef %957, ptr noundef nonnull @.str.4) #10
  %959 = load i32, ptr %956, align 4, !tbaa !5
  %960 = call ptr @s2n_strerror_debug(i32 noundef %959, ptr noundef nonnull @.str.4) #10
  %961 = load i32, ptr %942, align 4, !tbaa !5
  %962 = call ptr @strerror(i32 noundef %961) #10
  %963 = load i32, ptr %942, align 4, !tbaa !5
  %964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %954, ptr noundef nonnull %.str.5.sink554, i32 noundef %955, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %958, ptr noundef %960, ptr noundef %962, i32 noundef %963) #12
  call void @exit(i32 noundef 1) #13
  unreachable

965:                                              ; preds = %936
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %9) #10
  store i16 0, ptr %9, align 2, !tbaa !43
  %966 = load i32, ptr @test_count, align 4, !tbaa !5
  %967 = add nsw i32 %966, 1
  store i32 %967, ptr @test_count, align 4, !tbaa !5
  %968 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %793, ptr noundef nonnull %9) #10
  %969 = icmp eq i32 %968, -1
  br i1 %969, label %970, label %994

970:                                              ; preds = %965
  %971 = tail call ptr @__errno_location() #11
  %972 = load i32, ptr %971, align 4, !tbaa !5
  %973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %974 = call i32 @s2n_print_stacktrace(ptr noundef %973) #10
  %975 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %976 = trunc nuw i8 %975 to i1
  br i1 %976, label %977, label %981

977:                                              ; preds = %970
  %978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %979 = call i32 @fileno(ptr noundef %978) #10
  %980 = call i32 @isatty(i32 noundef %979) #10
  %.not181 = icmp eq i32 %980, 0
  br i1 %.not181, label %981, label %982

981:                                              ; preds = %977, %970
  br label %982

982:                                              ; preds = %977, %981
  %.str.5.sink565 = phi ptr [ @.str.5, %981 ], [ @.str.2, %977 ]
  store i32 %972, ptr %971, align 4, !tbaa !5
  %983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %984 = load i32, ptr @test_count, align 4, !tbaa !5
  %985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %986 = load i32, ptr %985, align 4, !tbaa !5
  %987 = call ptr @s2n_strerror(i32 noundef %986, ptr noundef nonnull @.str.4) #10
  %988 = load i32, ptr %985, align 4, !tbaa !5
  %989 = call ptr @s2n_strerror_debug(i32 noundef %988, ptr noundef nonnull @.str.4) #10
  %990 = load i32, ptr %971, align 4, !tbaa !5
  %991 = call ptr @strerror(i32 noundef %990) #10
  %992 = load i32, ptr %971, align 4, !tbaa !5
  %993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %983, ptr noundef nonnull %.str.5.sink565, i32 noundef %984, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 136, ptr noundef %987, ptr noundef %989, ptr noundef %991, i32 noundef %992) #12
  call void @exit(i32 noundef 1) #13
  unreachable

994:                                              ; preds = %965
  %995 = load i32, ptr @test_count, align 4, !tbaa !5
  %996 = add nsw i32 %995, 1
  store i32 %996, ptr @test_count, align 4, !tbaa !5
  %997 = load i16, ptr %9, align 2, !tbaa !43
  %998 = icmp eq i16 %997, 0
  br i1 %998, label %1023, label %999

999:                                              ; preds = %994
  %1000 = tail call ptr @__errno_location() #11
  %1001 = load i32, ptr %1000, align 4, !tbaa !5
  %1002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1003 = call i32 @s2n_print_stacktrace(ptr noundef %1002) #10
  %1004 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1005 = trunc nuw i8 %1004 to i1
  br i1 %1005, label %1006, label %1010

1006:                                             ; preds = %999
  %1007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1008 = call i32 @fileno(ptr noundef %1007) #10
  %1009 = call i32 @isatty(i32 noundef %1008) #10
  %.not161 = icmp eq i32 %1009, 0
  br i1 %.not161, label %1010, label %1011

1010:                                             ; preds = %1006, %999
  br label %1011

1011:                                             ; preds = %1006, %1010
  %.str.5.sink576 = phi ptr [ @.str.5, %1010 ], [ @.str.2, %1006 ]
  store i32 %1001, ptr %1000, align 4, !tbaa !5
  %1012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1013 = load i32, ptr @test_count, align 4, !tbaa !5
  %1014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1015 = load i32, ptr %1014, align 4, !tbaa !5
  %1016 = call ptr @s2n_strerror(i32 noundef %1015, ptr noundef nonnull @.str.4) #10
  %1017 = load i32, ptr %1014, align 4, !tbaa !5
  %1018 = call ptr @s2n_strerror_debug(i32 noundef %1017, ptr noundef nonnull @.str.4) #10
  %1019 = load i32, ptr %1000, align 4, !tbaa !5
  %1020 = call ptr @strerror(i32 noundef %1019) #10
  %1021 = load i32, ptr %1000, align 4, !tbaa !5
  %1022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1012, ptr noundef nonnull %.str.5.sink576, i32 noundef %1013, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 137, ptr noundef %1016, ptr noundef %1018, ptr noundef %1020, i32 noundef %1021) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1023:                                             ; preds = %994
  %1024 = add nsw i32 %995, 2
  store i32 %1024, ptr @test_count, align 4, !tbaa !5
  %1025 = getelementptr inbounds i8, ptr %792, i64 2044
  %1026 = load i32, ptr %1025, align 4, !tbaa !44
  %1027 = getelementptr inbounds i8, ptr %792, i64 2040
  %1028 = load i32, ptr %1027, align 8, !tbaa !45
  %1029 = icmp eq i32 %1026, %1028
  br i1 %1029, label %1054, label %1030

1030:                                             ; preds = %1023
  %1031 = tail call ptr @__errno_location() #11
  %1032 = load i32, ptr %1031, align 4, !tbaa !5
  %1033 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1034 = call i32 @s2n_print_stacktrace(ptr noundef %1033) #10
  %1035 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1036 = trunc nuw i8 %1035 to i1
  br i1 %1036, label %1037, label %1041

1037:                                             ; preds = %1030
  %1038 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1039 = call i32 @fileno(ptr noundef %1038) #10
  %1040 = call i32 @isatty(i32 noundef %1039) #10
  %.not162 = icmp eq i32 %1040, 0
  br i1 %.not162, label %1041, label %1042

1041:                                             ; preds = %1037, %1030
  br label %1042

1042:                                             ; preds = %1037, %1041
  %.str.5.sink587 = phi ptr [ @.str.5, %1041 ], [ @.str.2, %1037 ]
  store i32 %1032, ptr %1031, align 4, !tbaa !5
  %1043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1044 = load i32, ptr @test_count, align 4, !tbaa !5
  %1045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1046 = load i32, ptr %1045, align 4, !tbaa !5
  %1047 = call ptr @s2n_strerror(i32 noundef %1046, ptr noundef nonnull @.str.4) #10
  %1048 = load i32, ptr %1045, align 4, !tbaa !5
  %1049 = call ptr @s2n_strerror_debug(i32 noundef %1048, ptr noundef nonnull @.str.4) #10
  %1050 = load i32, ptr %1031, align 4, !tbaa !5
  %1051 = call ptr @strerror(i32 noundef %1050) #10
  %1052 = load i32, ptr %1031, align 4, !tbaa !5
  %1053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1043, ptr noundef nonnull %.str.5.sink587, i32 noundef %1044, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 139, ptr noundef %1047, ptr noundef %1049, ptr noundef %1051, i32 noundef %1052) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1054:                                             ; preds = %1023
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %9) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %8) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) #10
  %1055 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %6) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) #10
  %1056 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %5) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #10
  %1057 = call ptr @s2n_connection_new(i32 noundef 0) #10
  store ptr %1057, ptr %10, align 8, !tbaa !9
  %1058 = load i32, ptr @test_count, align 4, !tbaa !5
  %1059 = add nsw i32 %1058, 1
  store i32 %1059, ptr @test_count, align 4, !tbaa !5
  %1060 = icmp eq ptr %1057, null
  br i1 %1060, label %1061, label %1085

1061:                                             ; preds = %1054
  %1062 = tail call ptr @__errno_location() #11
  %1063 = load i32, ptr %1062, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = call i32 @s2n_print_stacktrace(ptr noundef %1064) #10
  %1066 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1067 = trunc nuw i8 %1066 to i1
  br i1 %1067, label %1068, label %1072

1068:                                             ; preds = %1061
  %1069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1070 = call i32 @fileno(ptr noundef %1069) #10
  %1071 = call i32 @isatty(i32 noundef %1070) #10
  %.not180 = icmp eq i32 %1071, 0
  br i1 %.not180, label %1072, label %1073

1072:                                             ; preds = %1068, %1061
  br label %1073

1073:                                             ; preds = %1068, %1072
  %.str.5.sink598 = phi ptr [ @.str.5, %1072 ], [ @.str.2, %1068 ]
  store i32 %1063, ptr %1062, align 4, !tbaa !5
  %1074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1075 = load i32, ptr @test_count, align 4, !tbaa !5
  %1076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1077 = load i32, ptr %1076, align 4, !tbaa !5
  %1078 = call ptr @s2n_strerror(i32 noundef %1077, ptr noundef nonnull @.str.4) #10
  %1079 = load i32, ptr %1076, align 4, !tbaa !5
  %1080 = call ptr @s2n_strerror_debug(i32 noundef %1079, ptr noundef nonnull @.str.4) #10
  %1081 = load i32, ptr %1062, align 4, !tbaa !5
  %1082 = call ptr @strerror(i32 noundef %1081) #10
  %1083 = load i32, ptr %1062, align 4, !tbaa !5
  %1084 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1074, ptr noundef nonnull %.str.5.sink598, i32 noundef %1075, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 146, ptr noundef %1078, ptr noundef %1080, ptr noundef %1082, i32 noundef %1083) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1085:                                             ; preds = %1054
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %11) #10
  %1086 = call ptr @s2n_config_new() #10
  store ptr %1086, ptr %11, align 8, !tbaa !9
  %1087 = load i32, ptr @test_count, align 4, !tbaa !5
  %1088 = add nsw i32 %1087, 1
  store i32 %1088, ptr @test_count, align 4, !tbaa !5
  %1089 = icmp eq ptr %1086, null
  br i1 %1089, label %1090, label %1114

1090:                                             ; preds = %1085
  %1091 = tail call ptr @__errno_location() #11
  %1092 = load i32, ptr %1091, align 4, !tbaa !5
  %1093 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1094 = call i32 @s2n_print_stacktrace(ptr noundef %1093) #10
  %1095 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1096 = trunc nuw i8 %1095 to i1
  br i1 %1096, label %1097, label %1101

1097:                                             ; preds = %1090
  %1098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1099 = call i32 @fileno(ptr noundef %1098) #10
  %1100 = call i32 @isatty(i32 noundef %1099) #10
  %.not179 = icmp eq i32 %1100, 0
  br i1 %.not179, label %1101, label %1102

1101:                                             ; preds = %1097, %1090
  br label %1102

1102:                                             ; preds = %1097, %1101
  %.str.5.sink609 = phi ptr [ @.str.5, %1101 ], [ @.str.2, %1097 ]
  store i32 %1092, ptr %1091, align 4, !tbaa !5
  %1103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1106 = load i32, ptr %1105, align 4, !tbaa !5
  %1107 = call ptr @s2n_strerror(i32 noundef %1106, ptr noundef nonnull @.str.4) #10
  %1108 = load i32, ptr %1105, align 4, !tbaa !5
  %1109 = call ptr @s2n_strerror_debug(i32 noundef %1108, ptr noundef nonnull @.str.4) #10
  %1110 = load i32, ptr %1091, align 4, !tbaa !5
  %1111 = call ptr @strerror(i32 noundef %1110) #10
  %1112 = load i32, ptr %1091, align 4, !tbaa !5
  %1113 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1103, ptr noundef nonnull %.str.5.sink609, i32 noundef %1104, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 150, ptr noundef %1107, ptr noundef %1109, ptr noundef %1111, i32 noundef %1112) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1114:                                             ; preds = %1085
  %1115 = add nsw i32 %1087, 2
  store i32 %1115, ptr @test_count, align 4, !tbaa !5
  %1116 = call i32 @s2n_connection_set_config(ptr noundef nonnull %1057, ptr noundef nonnull %1086) #10
  %1117 = icmp eq i32 %1116, -1
  br i1 %1117, label %1118, label %1142

1118:                                             ; preds = %1114
  %1119 = tail call ptr @__errno_location() #11
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1122 = call i32 @s2n_print_stacktrace(ptr noundef %1121) #10
  %1123 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1124 = trunc nuw i8 %1123 to i1
  br i1 %1124, label %1125, label %1129

1125:                                             ; preds = %1118
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = call i32 @fileno(ptr noundef %1126) #10
  %1128 = call i32 @isatty(i32 noundef %1127) #10
  %.not178 = icmp eq i32 %1128, 0
  br i1 %.not178, label %1129, label %1130

1129:                                             ; preds = %1125, %1118
  br label %1130

1130:                                             ; preds = %1125, %1129
  %.str.5.sink620 = phi ptr [ @.str.5, %1129 ], [ @.str.2, %1125 ]
  store i32 %1120, ptr %1119, align 4, !tbaa !5
  %1131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1132 = load i32, ptr @test_count, align 4, !tbaa !5
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror(i32 noundef %1134, ptr noundef nonnull @.str.4) #10
  %1136 = load i32, ptr %1133, align 4, !tbaa !5
  %1137 = call ptr @s2n_strerror_debug(i32 noundef %1136, ptr noundef nonnull @.str.4) #10
  %1138 = load i32, ptr %1119, align 4, !tbaa !5
  %1139 = call ptr @strerror(i32 noundef %1138) #10
  %1140 = load i32, ptr %1119, align 4, !tbaa !5
  %1141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1131, ptr noundef nonnull %.str.5.sink620, i32 noundef %1132, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1135, ptr noundef %1137, ptr noundef %1139, i32 noundef %1140) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1142:                                             ; preds = %1114
  %1143 = getelementptr inbounds i8, ptr %1057, i64 220
  store i8 32, ptr %1143, align 4, !tbaa !16
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = add nsw i32 %1144, 1
  store i32 %1145, ptr @test_count, align 4, !tbaa !5
  %1146 = getelementptr inbounds i8, ptr %1086, i64 448
  %1147 = call i32 @s2n_alloc(ptr noundef nonnull %1146, i32 noundef 17) #10
  %1148 = icmp eq i32 %1147, -1
  br i1 %1148, label %1149, label %1173

1149:                                             ; preds = %1142
  %1150 = tail call ptr @__errno_location() #11
  %1151 = load i32, ptr %1150, align 4, !tbaa !5
  %1152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1153 = call i32 @s2n_print_stacktrace(ptr noundef %1152) #10
  %1154 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1155 = trunc nuw i8 %1154 to i1
  br i1 %1155, label %1156, label %1160

1156:                                             ; preds = %1149
  %1157 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1158 = call i32 @fileno(ptr noundef %1157) #10
  %1159 = call i32 @isatty(i32 noundef %1158) #10
  %.not177 = icmp eq i32 %1159, 0
  br i1 %.not177, label %1160, label %1161

1160:                                             ; preds = %1156, %1149
  br label %1161

1161:                                             ; preds = %1156, %1160
  %.str.5.sink631 = phi ptr [ @.str.5, %1160 ], [ @.str.2, %1156 ]
  store i32 %1151, ptr %1150, align 4, !tbaa !5
  %1162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1163 = load i32, ptr @test_count, align 4, !tbaa !5
  %1164 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1165 = load i32, ptr %1164, align 4, !tbaa !5
  %1166 = call ptr @s2n_strerror(i32 noundef %1165, ptr noundef nonnull @.str.4) #10
  %1167 = load i32, ptr %1164, align 4, !tbaa !5
  %1168 = call ptr @s2n_strerror_debug(i32 noundef %1167, ptr noundef nonnull @.str.4) #10
  %1169 = load i32, ptr %1150, align 4, !tbaa !5
  %1170 = call ptr @strerror(i32 noundef %1169) #10
  %1171 = load i32, ptr %1150, align 4, !tbaa !5
  %1172 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1162, ptr noundef nonnull %.str.5.sink631, i32 noundef %1163, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1166, ptr noundef %1168, ptr noundef %1170, i32 noundef %1171) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1173:                                             ; preds = %1142
  %1174 = load ptr, ptr %1146, align 8, !tbaa !46
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(17) %1174, ptr noundef nonnull align 16 dereferenceable(17) @__const.main.ca_data, i64 17, i1 false)
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = call i32 @s2n_cert_req_send(ptr noundef nonnull %1057) #10
  %1178 = icmp eq i32 %1177, -1
  br i1 %1178, label %1179, label %1203

1179:                                             ; preds = %1173
  %1180 = tail call ptr @__errno_location() #11
  %1181 = load i32, ptr %1180, align 4, !tbaa !5
  %1182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1183 = call i32 @s2n_print_stacktrace(ptr noundef %1182) #10
  %1184 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1185 = trunc nuw i8 %1184 to i1
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1179
  %1187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1188 = call i32 @fileno(ptr noundef %1187) #10
  %1189 = call i32 @isatty(i32 noundef %1188) #10
  %.not175 = icmp eq i32 %1189, 0
  br i1 %.not175, label %1190, label %1191

1190:                                             ; preds = %1186, %1179
  br label %1191

1191:                                             ; preds = %1186, %1190
  %.str.5.sink642 = phi ptr [ @.str.5, %1190 ], [ @.str.2, %1186 ]
  store i32 %1181, ptr %1180, align 4, !tbaa !5
  %1192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1193 = load i32, ptr @test_count, align 4, !tbaa !5
  %1194 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1195 = load i32, ptr %1194, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror(i32 noundef %1195, ptr noundef nonnull @.str.4) #10
  %1197 = load i32, ptr %1194, align 4, !tbaa !5
  %1198 = call ptr @s2n_strerror_debug(i32 noundef %1197, ptr noundef nonnull @.str.4) #10
  %1199 = load i32, ptr %1180, align 4, !tbaa !5
  %1200 = call ptr @strerror(i32 noundef %1199) #10
  %1201 = load i32, ptr %1180, align 4, !tbaa !5
  %1202 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1192, ptr noundef nonnull %.str.5.sink642, i32 noundef %1193, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 162, ptr noundef %1196, ptr noundef %1198, ptr noundef %1200, i32 noundef %1201) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1203:                                             ; preds = %1173
  %1204 = getelementptr inbounds i8, ptr %1057, i64 2016
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %12) #10
  store i8 0, ptr %12, align 1, !tbaa !15
  %1205 = load i32, ptr @test_count, align 4, !tbaa !5
  %1206 = add nsw i32 %1205, 1
  store i32 %1206, ptr @test_count, align 4, !tbaa !5
  %1207 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %1204, ptr noundef nonnull %12) #10
  %1208 = icmp eq i32 %1207, -1
  br i1 %1208, label %1209, label %1233

1209:                                             ; preds = %1203
  %1210 = tail call ptr @__errno_location() #11
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1213 = call i32 @s2n_print_stacktrace(ptr noundef %1212) #10
  %1214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1215 = trunc nuw i8 %1214 to i1
  br i1 %1215, label %1216, label %1220

1216:                                             ; preds = %1209
  %1217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1218 = call i32 @fileno(ptr noundef %1217) #10
  %1219 = call i32 @isatty(i32 noundef %1218) #10
  %.not174 = icmp eq i32 %1219, 0
  br i1 %.not174, label %1220, label %1221

1220:                                             ; preds = %1216, %1209
  br label %1221

1221:                                             ; preds = %1216, %1220
  %.str.5.sink653 = phi ptr [ @.str.5, %1220 ], [ @.str.2, %1216 ]
  store i32 %1211, ptr %1210, align 4, !tbaa !5
  %1222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1223 = load i32, ptr @test_count, align 4, !tbaa !5
  %1224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1225 = load i32, ptr %1224, align 4, !tbaa !5
  %1226 = call ptr @s2n_strerror(i32 noundef %1225, ptr noundef nonnull @.str.4) #10
  %1227 = load i32, ptr %1224, align 4, !tbaa !5
  %1228 = call ptr @s2n_strerror_debug(i32 noundef %1227, ptr noundef nonnull @.str.4) #10
  %1229 = load i32, ptr %1210, align 4, !tbaa !5
  %1230 = call ptr @strerror(i32 noundef %1229) #10
  %1231 = load i32, ptr %1210, align 4, !tbaa !5
  %1232 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1222, ptr noundef nonnull %.str.5.sink653, i32 noundef %1223, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 166, ptr noundef %1226, ptr noundef %1228, ptr noundef %1230, i32 noundef %1231) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1233:                                             ; preds = %1203
  %1234 = load i32, ptr @test_count, align 4, !tbaa !5
  %1235 = add nsw i32 %1234, 1
  store i32 %1235, ptr @test_count, align 4, !tbaa !5
  %1236 = load i8, ptr %12, align 1, !tbaa !15
  %1237 = zext i8 %1236 to i32
  %1238 = call i32 @s2n_stuffer_skip_read(ptr noundef nonnull %1204, i32 noundef %1237) #10
  %1239 = icmp eq i32 %1238, -1
  br i1 %1239, label %1240, label %1264

1240:                                             ; preds = %1233
  %1241 = tail call ptr @__errno_location() #11
  %1242 = load i32, ptr %1241, align 4, !tbaa !5
  %1243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1244 = call i32 @s2n_print_stacktrace(ptr noundef %1243) #10
  %1245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1246 = trunc nuw i8 %1245 to i1
  br i1 %1246, label %1247, label %1251

1247:                                             ; preds = %1240
  %1248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1249 = call i32 @fileno(ptr noundef %1248) #10
  %1250 = call i32 @isatty(i32 noundef %1249) #10
  %.not173 = icmp eq i32 %1250, 0
  br i1 %.not173, label %1251, label %1252

1251:                                             ; preds = %1247, %1240
  br label %1252

1252:                                             ; preds = %1247, %1251
  %.str.5.sink664 = phi ptr [ @.str.5, %1251 ], [ @.str.2, %1247 ]
  store i32 %1242, ptr %1241, align 4, !tbaa !5
  %1253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1254 = load i32, ptr @test_count, align 4, !tbaa !5
  %1255 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1256 = load i32, ptr %1255, align 4, !tbaa !5
  %1257 = call ptr @s2n_strerror(i32 noundef %1256, ptr noundef nonnull @.str.4) #10
  %1258 = load i32, ptr %1255, align 4, !tbaa !5
  %1259 = call ptr @s2n_strerror_debug(i32 noundef %1258, ptr noundef nonnull @.str.4) #10
  %1260 = load i32, ptr %1241, align 4, !tbaa !5
  %1261 = call ptr @strerror(i32 noundef %1260) #10
  %1262 = load i32, ptr %1241, align 4, !tbaa !5
  %1263 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1253, ptr noundef nonnull %.str.5.sink664, i32 noundef %1254, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1257, ptr noundef %1259, ptr noundef %1261, i32 noundef %1262) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1264:                                             ; preds = %1233
  call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %13) #10
  store i16 0, ptr %13, align 2, !tbaa !43
  %1265 = load i32, ptr @test_count, align 4, !tbaa !5
  %1266 = add nsw i32 %1265, 1
  store i32 %1266, ptr @test_count, align 4, !tbaa !5
  %1267 = call i32 @s2n_stuffer_read_uint16(ptr noundef nonnull %1204, ptr noundef nonnull %13) #10
  %1268 = icmp eq i32 %1267, -1
  br i1 %1268, label %1269, label %1293

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

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

1280:                                             ; preds = %1276, %1269
  br label %1281

1281:                                             ; preds = %1276, %1280
  %.str.5.sink675 = phi ptr [ @.str.5, %1280 ], [ @.str.2, %1276 ]
  store i32 %1271, ptr %1270, align 4, !tbaa !5
  %1282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1283 = load i32, ptr @test_count, align 4, !tbaa !5
  %1284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1285 = load i32, ptr %1284, align 4, !tbaa !5
  %1286 = call ptr @s2n_strerror(i32 noundef %1285, ptr noundef nonnull @.str.4) #10
  %1287 = load i32, ptr %1284, align 4, !tbaa !5
  %1288 = call ptr @s2n_strerror_debug(i32 noundef %1287, ptr noundef nonnull @.str.4) #10
  %1289 = load i32, ptr %1270, align 4, !tbaa !5
  %1290 = call ptr @strerror(i32 noundef %1289) #10
  %1291 = load i32, ptr %1270, align 4, !tbaa !5
  %1292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1282, ptr noundef nonnull %.str.5.sink675, i32 noundef %1283, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 170, ptr noundef %1286, ptr noundef %1288, ptr noundef %1290, i32 noundef %1291) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1293:                                             ; preds = %1264
  %1294 = load i32, ptr @test_count, align 4, !tbaa !5
  %1295 = add nsw i32 %1294, 1
  store i32 %1295, ptr @test_count, align 4, !tbaa !5
  %1296 = load i16, ptr %13, align 2, !tbaa !43
  %1297 = icmp eq i16 %1296, 17
  br i1 %1297, label %1322, label %1298

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

1305:                                             ; preds = %1298
  %1306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1307 = call i32 @fileno(ptr noundef %1306) #10
  %1308 = call i32 @isatty(i32 noundef %1307) #10
  %.not163 = icmp eq i32 %1308, 0
  br i1 %.not163, label %1309, label %1310

1309:                                             ; preds = %1305, %1298
  br label %1310

1310:                                             ; preds = %1305, %1309
  %.str.5.sink686 = phi ptr [ @.str.5, %1309 ], [ @.str.2, %1305 ]
  store i32 %1300, ptr %1299, align 4, !tbaa !5
  %1311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1312 = load i32, ptr @test_count, align 4, !tbaa !5
  %1313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1314 = load i32, ptr %1313, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef nonnull @.str.4) #10
  %1316 = load i32, ptr %1313, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef nonnull @.str.4) #10
  %1318 = load i32, ptr %1299, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #10
  %1320 = load i32, ptr %1299, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1311, ptr noundef nonnull %.str.5.sink686, i32 noundef %1312, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 171, ptr noundef %1315, ptr noundef %1317, ptr noundef %1319, i32 noundef %1320) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1322:                                             ; preds = %1293
  %1323 = call ptr @s2n_stuffer_raw_read(ptr noundef nonnull %1204, i32 noundef 17) #10
  %1324 = load i32, ptr @test_count, align 4, !tbaa !5
  %1325 = add nsw i32 %1324, 1
  store i32 %1325, ptr @test_count, align 4, !tbaa !5
  %1326 = icmp eq ptr %1323, null
  br i1 %1326, label %1327, label %1351

1327:                                             ; preds = %1322
  %1328 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %1337 = call i32 @isatty(i32 noundef %1336) #10
  %.not171 = icmp eq i32 %1337, 0
  br i1 %.not171, label %1338, label %1339

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

1339:                                             ; preds = %1334, %1338
  %.str.5.sink697 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @s2n_strerror(i32 noundef %1343, ptr noundef nonnull @.str.4) #10
  %1345 = load i32, ptr %1342, align 4, !tbaa !5
  %1346 = call ptr @s2n_strerror_debug(i32 noundef %1345, ptr noundef nonnull @.str.4) #10
  %1347 = load i32, ptr %1328, align 4, !tbaa !5
  %1348 = call ptr @strerror(i32 noundef %1347) #10
  %1349 = load i32, ptr %1328, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1340, ptr noundef nonnull %.str.5.sink697, i32 noundef %1341, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 174, ptr noundef %1344, ptr noundef %1346, ptr noundef %1348, i32 noundef %1349) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1351:                                             ; preds = %1322
  %1352 = add nsw i32 %1324, 2
  store i32 %1352, ptr @test_count, align 4, !tbaa !5
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(17) %1323, ptr noundef nonnull dereferenceable(17) @__const.main.ca_data, i64 17)
  %1353 = icmp eq i32 %bcmp, 0
  br i1 %1353, label %1378, label %1354

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

1361:                                             ; preds = %1354
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = call i32 @fileno(ptr noundef %1362) #10
  %1364 = call i32 @isatty(i32 noundef %1363) #10
  %.not164 = icmp eq i32 %1364, 0
  br i1 %.not164, label %1365, label %1366

1365:                                             ; preds = %1361, %1354
  br label %1366

1366:                                             ; preds = %1361, %1365
  %.str.5.sink708 = phi ptr [ @.str.5, %1365 ], [ @.str.2, %1361 ]
  store i32 %1356, ptr %1355, align 4, !tbaa !5
  %1367 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1368 = load i32, ptr @test_count, align 4, !tbaa !5
  %1369 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1370 = load i32, ptr %1369, align 4, !tbaa !5
  %1371 = call ptr @s2n_strerror(i32 noundef %1370, ptr noundef nonnull @.str.4) #10
  %1372 = load i32, ptr %1369, align 4, !tbaa !5
  %1373 = call ptr @s2n_strerror_debug(i32 noundef %1372, ptr noundef nonnull @.str.4) #10
  %1374 = load i32, ptr %1355, align 4, !tbaa !5
  %1375 = call ptr @strerror(i32 noundef %1374) #10
  %1376 = load i32, ptr %1355, align 4, !tbaa !5
  %1377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1367, ptr noundef nonnull %.str.5.sink708, i32 noundef %1368, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1371, ptr noundef %1373, ptr noundef %1375, i32 noundef %1376) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1378:                                             ; preds = %1351
  %1379 = add nsw i32 %1324, 3
  store i32 %1379, ptr @test_count, align 4, !tbaa !5
  %1380 = getelementptr inbounds i8, ptr %1057, i64 2044
  %1381 = load i32, ptr %1380, align 4, !tbaa !44
  %1382 = getelementptr inbounds i8, ptr %1057, i64 2040
  %1383 = load i32, ptr %1382, align 8, !tbaa !45
  %1384 = icmp eq i32 %1381, %1383
  br i1 %1384, label %1409, label %1385

1385:                                             ; preds = %1378
  %1386 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %1395 = call i32 @isatty(i32 noundef %1394) #10
  %.not165 = icmp eq i32 %1395, 0
  br i1 %.not165, label %1396, label %1397

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

1397:                                             ; preds = %1392, %1396
  %.str.5.sink719 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1401 = load i32, ptr %1400, align 4, !tbaa !5
  %1402 = call ptr @s2n_strerror(i32 noundef %1401, ptr noundef nonnull @.str.4) #10
  %1403 = load i32, ptr %1400, align 4, !tbaa !5
  %1404 = call ptr @s2n_strerror_debug(i32 noundef %1403, ptr noundef nonnull @.str.4) #10
  %1405 = load i32, ptr %1386, align 4, !tbaa !5
  %1406 = call ptr @strerror(i32 noundef %1405) #10
  %1407 = load i32, ptr %1386, align 4, !tbaa !5
  %1408 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1398, ptr noundef nonnull %.str.5.sink719, i32 noundef %1399, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 177, ptr noundef %1402, ptr noundef %1404, ptr noundef %1406, i32 noundef %1407) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1409:                                             ; preds = %1378
  call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %13) #10
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %12) #10
  %1410 = call i32 @s2n_config_ptr_free(ptr noundef nonnull %11) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #10
  %1411 = call i32 @s2n_connection_ptr_free(ptr noundef nonnull %10) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #10
  %1412 = call i32 @s2n_cleanup() #10
  %1413 = icmp eq i32 %1412, -1
  br i1 %1413, label %1414, label %1438

1414:                                             ; preds = %1409
  %1415 = tail call ptr @__errno_location() #11
  %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) #10
  %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) #10
  %1424 = call i32 @isatty(i32 noundef %1423) #10
  %.not170 = icmp eq i32 %1424, 0
  br i1 %.not170, label %1425, label %1426

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

1426:                                             ; preds = %1421, %1425
  %.str.5.sink730 = 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 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1430 = load i32, ptr %1429, align 4, !tbaa !5
  %1431 = call ptr @s2n_strerror(i32 noundef %1430, ptr noundef nonnull @.str.4) #10
  %1432 = load i32, ptr %1429, align 4, !tbaa !5
  %1433 = call ptr @s2n_strerror_debug(i32 noundef %1432, ptr noundef nonnull @.str.4) #10
  %1434 = load i32, ptr %1415, align 4, !tbaa !5
  %1435 = call ptr @strerror(i32 noundef %1434) #10
  %1436 = load i32, ptr %1415, align 4, !tbaa !5
  %1437 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1427, ptr noundef nonnull %.str.5.sink730, i32 noundef %1428, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1431, ptr noundef %1433, ptr noundef %1435, i32 noundef %1436) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1438:                                             ; preds = %1409
  %1439 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #10
  %1440 = icmp eq i32 %1439, -1
  br i1 %1440, label %1441, label %1465

1441:                                             ; preds = %1438
  %1442 = tail call ptr @__errno_location() #11
  %1443 = load i32, ptr %1442, align 4, !tbaa !5
  %1444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1445 = call i32 @s2n_print_stacktrace(ptr noundef %1444) #10
  %1446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1447 = trunc nuw i8 %1446 to i1
  br i1 %1447, label %1448, label %1452

1448:                                             ; preds = %1441
  %1449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1450 = call i32 @fileno(ptr noundef %1449) #10
  %1451 = call i32 @isatty(i32 noundef %1450) #10
  %.not169 = icmp eq i32 %1451, 0
  br i1 %.not169, label %1452, label %1453

1452:                                             ; preds = %1448, %1441
  br label %1453

1453:                                             ; preds = %1448, %1452
  %.str.5.sink741 = phi ptr [ @.str.5, %1452 ], [ @.str.2, %1448 ]
  store i32 %1443, ptr %1442, align 4, !tbaa !5
  %1454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1455 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1457, ptr noundef nonnull @.str.4) #10
  %1459 = load i32, ptr %1456, align 4, !tbaa !5
  %1460 = call ptr @s2n_strerror_debug(i32 noundef %1459, ptr noundef nonnull @.str.4) #10
  %1461 = load i32, ptr %1442, align 4, !tbaa !5
  %1462 = call ptr @strerror(i32 noundef %1461) #10
  %1463 = load i32, ptr %1442, align 4, !tbaa !5
  %1464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1454, ptr noundef nonnull %.str.5.sink741, i32 noundef %1455, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 181, ptr noundef %1458, ptr noundef %1460, ptr noundef %1462, i32 noundef %1463) #12
  call void @exit(i32 noundef 1) #13
  unreachable

1465:                                             ; preds = %1438
  %1466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1467 = trunc nuw i8 %1466 to i1
  br i1 %1467, label %1468, label %1479

1468:                                             ; preds = %1465
  %1469 = load ptr, ptr @stdout, align 8, !tbaa !9
  %1470 = call i32 @fileno(ptr noundef %1469) #10
  %1471 = call i32 @isatty(i32 noundef %1470) #10
  %.not166 = icmp eq i32 %1471, 0
  br i1 %.not166, label %1479, label %1472

1472:                                             ; preds = %1468
  %1473 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not168 = icmp eq i32 %1473, 0
  %1474 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not168, label %1477, label %1475

1475:                                             ; preds = %1472
  %1476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef nonnull @.str.40, i32 noundef %1473) #10
  br label %1486

1477:                                             ; preds = %1472
  %1478 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1474, ptr noundef nonnull @.str.41) #10
  br label %1486

1479:                                             ; preds = %1468, %1465
  %1480 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not167 = icmp eq i32 %1480, 0
  %1481 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not167, label %1484, label %1482

1482:                                             ; preds = %1479
  %1483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef nonnull @.str.42, i32 noundef %1480) #10
  br label %1486

1484:                                             ; preds = %1479
  %1485 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1481, ptr noundef nonnull @.str.43) #10
  br label %1486

1486:                                             ; preds = %1482, %1484, %1475, %1477
  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 ptr @s2n_connection_new(i32 noundef) local_unnamed_addr #2

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

declare i32 @s2n_cert_req_send(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint8(ptr noundef, ptr noundef) local_unnamed_addr #2

declare ptr @s2n_stuffer_raw_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_config_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_enable_cert_req_dss_legacy_compat(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_connection_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_config_ptr_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_skip_read(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_read_uint16(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_alloc(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

; Function Attrs: nofree nounwind willreturn memory(argmem: read)
declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #9

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 = { nofree nounwind willreturn memory(argmem: read) }
attributes #10 = { nounwind }
attributes #11 = { nounwind willreturn memory(none) }
attributes #12 = { cold nounwind }
attributes #13 = { 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 = !{!7, !7, i64 0}
!16 = !{!17, !7, i64 220}
!17 = !{!"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, !18, i64 160, !19, i64 168, !19, 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, !20, i64 240, !10, i64 632, !10, i64 640, !21, i64 648, !27, i64 1144, !30, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !33, i64 1776, !33, i64 1816, !33, i64 1856, !33, i64 1896, !6, i64 1936, !19, i64 1944, !7, i64 1952, !33, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !34, i64 2004, !34, i64 2008, !35, i64 2016, !32, i64 2208, !6, i64 2212, !32, i64 2216, !19, i64 2224, !7, i64 2232, !19, i64 2240, !19, i64 2248, !19, i64 2256, !34, i64 2264, !34, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !26, i64 2792, !6, i64 2816, !26, i64 2824, !26, i64 2848, !26, i64 2872, !37, i64 2896, !39, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !26, i64 3784, !6, i64 3808, !41, i64 3816, !7, i64 3848, !33, i64 3992, !26, i64 4032, !26, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !32, i64 4084, !32, i64 4086, !6, i64 4088, !6, i64 4092, !26, i64 4096, !6, i64 4120, !42, i64 4128, !34, i64 4176, !7, i64 4180, !7, i64 4181}
!18 = !{!"s2n_timer", !19, i64 0}
!19 = !{!"long", !7, i64 0}
!20 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!21 = !{!"s2n_kex_parameters", !22, i64 0, !23, i64 8, !7, i64 24, !23, i64 56, !24, i64 72, !24, i64 184, !7, i64 296, !25, i64 360, !26, i64 448, !26, i64 472}
!22 = !{!"s2n_dh_params", !10, i64 0}
!23 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!24 = !{!"s2n_kem_group_params", !10, i64 0, !25, i64 8, !23, i64 96}
!25 = !{!"s2n_kem_params", !10, i64 0, !26, i64 8, !26, i64 32, !26, i64 56, !12, i64 80}
!26 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!27 = !{!"s2n_handshake_parameters", !28, i64 0, !28, i64 48, !26, i64 96, !6, i64 120, !29, 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}
!28 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!29 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!30 = !{!"s2n_psk_parameters", !6, i64 0, !31, i64 8, !32, i64 40, !32, i64 42, !10, i64 48, !6, i64 56}
!31 = !{!"s2n_array", !26, i64 0, !6, i64 24, !6, i64 28}
!32 = !{!"short", !7, i64 0}
!33 = !{!"s2n_stuffer", !26, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!34 = !{!"", !6, i64 0}
!35 = !{!"s2n_handshake", !33, 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, !36, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!36 = !{!"s2n_offered_early_data", !10, i64 0}
!37 = !{!"s2n_client_hello", !26, i64 0, !38, i64 24, !26, i64 728, !26, i64 752, !26, 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}
!38 = !{!"", !7, i64 0, !26, i64 672, !32, i64 696}
!39 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !32, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !40, i64 48, !12, i64 52}
!40 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!41 = !{!"s2n_ticket_fields", !26, i64 0, !6, i64 24}
!42 = !{!"s2n_post_handshake", !33, i64 0, !7, i64 40}
!43 = !{!32, !32, i64 0}
!44 = !{!33, !6, i64 28}
!45 = !{!33, !6, i64 24}
!46 = !{!47, !10, i64 448}
!47 = !{!"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, !48, i64 24, !26, 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, !19, i64 144, !10, i64 152, !19, i64 160, !19, 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, !49, i64 304, !32, 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, !26, i64 448}
!48 = !{!"certs_by_type", !7, i64 0}
!49 = !{!"s2n_x509_trust_store", !10, i64 0, !6, i64 8}


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,JumpThreadingPass,LICMPass,LoopRotatePass,LoopSimplifyPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass