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

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

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

@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 [81 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 [39 x i8], align 1
@s2n_server_ems_extension = external constant %struct.s2n_extension_type, align 8
@.str.9 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_client_ems_extension = external constant %struct.s2n_extension_type, align 8
@.str.28 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local i32 @main(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca i32, align 4
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca ptr, align 8
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca ptr, align 8
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca %struct.s2n_stuffer, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca i32, align 4
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca i32, align 4
  %35 = alloca i32, align 4
  %36 = alloca ptr, align 8
  %37 = alloca i32, align 4
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  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 %44

44:                                               ; preds = %2
  br label %45

45:                                               ; preds = %44
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %46 = load ptr, ptr @stdout, align 8, !tbaa !9
  %47 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %46, ptr noundef @.str, ptr noundef @.str.1) #7
  %48 = load ptr, ptr @stdout, align 8, !tbaa !9
  %49 = call i32 @fflush(ptr noundef %48)
  br label %50

50:                                               ; preds = %45
  %51 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %52 = icmp eq i32 %51, -1
  br i1 %52, label %53, label %104

53:                                               ; preds = %50
  br label %54

54:                                               ; preds = %53
  br label %55

55:                                               ; preds = %54
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  %56 = call ptr @__errno_location() #8
  %57 = load i32, ptr %56, align 4, !tbaa !5
  store i32 %57, ptr %6, align 4, !tbaa !5
  %58 = load ptr, ptr @stderr, align 8, !tbaa !9
  %59 = call i32 @s2n_print_stacktrace(ptr noundef %58)
  %60 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %61 = trunc i8 %60 to i1
  br i1 %61, label %62, label %84

62:                                               ; preds = %55
  %63 = load ptr, ptr @stderr, align 8, !tbaa !9
  %64 = call i32 @fileno(ptr noundef %63) #7
  %65 = call i32 @isatty(i32 noundef %64) #7
  %66 = icmp ne i32 %65, 0
  br i1 %66, label %67, label %84

67:                                               ; preds = %62
  %68 = load i32, ptr %6, align 4, !tbaa !5
  %69 = call ptr @__errno_location() #8
  store i32 %68, ptr %69, align 4, !tbaa !5
  %70 = load ptr, ptr @stderr, align 8, !tbaa !9
  %71 = load i32, ptr @test_count, align 4, !tbaa !5
  %72 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %73 = load i32, ptr %72, align 4, !tbaa !5
  %74 = call ptr @s2n_strerror(i32 noundef %73, ptr noundef @.str.4)
  %75 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %76 = load i32, ptr %75, align 4, !tbaa !5
  %77 = call ptr @s2n_strerror_debug(i32 noundef %76, ptr noundef @.str.4)
  %78 = call ptr @__errno_location() #8
  %79 = load i32, ptr %78, align 4, !tbaa !5
  %80 = call ptr @strerror(i32 noundef %79) #7
  %81 = call ptr @__errno_location() #8
  %82 = load i32, ptr %81, align 4, !tbaa !5
  %83 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %70, ptr noundef @.str.2, i32 noundef %71, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 23, ptr noundef %74, ptr noundef %77, ptr noundef %80, i32 noundef %82) #7
  br label %101

84:                                               ; preds = %62, %55
  %85 = load i32, ptr %6, align 4, !tbaa !5
  %86 = call ptr @__errno_location() #8
  store i32 %85, ptr %86, align 4, !tbaa !5
  %87 = load ptr, ptr @stderr, align 8, !tbaa !9
  %88 = load i32, ptr @test_count, align 4, !tbaa !5
  %89 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %90 = load i32, ptr %89, align 4, !tbaa !5
  %91 = call ptr @s2n_strerror(i32 noundef %90, ptr noundef @.str.4)
  %92 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %93 = load i32, ptr %92, align 4, !tbaa !5
  %94 = call ptr @s2n_strerror_debug(i32 noundef %93, ptr noundef @.str.4)
  %95 = call ptr @__errno_location() #8
  %96 = load i32, ptr %95, align 4, !tbaa !5
  %97 = call ptr @strerror(i32 noundef %96) #7
  %98 = call ptr @__errno_location() #8
  %99 = load i32, ptr %98, align 4, !tbaa !5
  %100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %87, ptr noundef @.str.5, i32 noundef %88, ptr noundef @.str.3, ptr noundef @.str.1, i32 noundef 23, ptr noundef %91, ptr noundef %94, ptr noundef %97, i32 noundef %99) #7
  br label %101

101:                                              ; preds = %84, %67
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %102

102:                                              ; preds = %101
  call void @exit(i32 noundef 1) #9
  unreachable

103:                                              ; No predecessors!
  br label %104

104:                                              ; preds = %103, %50
  br label %105

105:                                              ; preds = %104
  br label %106

106:                                              ; preds = %105
  %107 = load i32, ptr @test_count, align 4, !tbaa !5
  %108 = add nsw i32 %107, 1
  store i32 %108, ptr @test_count, align 4, !tbaa !5
  %109 = call i32 @s2n_enable_atexit()
  %110 = icmp eq i32 %109, -1
  br i1 %110, label %111, label %162

111:                                              ; preds = %106
  br label %112

112:                                              ; preds = %111
  br label %113

113:                                              ; preds = %112
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  %114 = call ptr @__errno_location() #8
  %115 = load i32, ptr %114, align 4, !tbaa !5
  store i32 %115, ptr %7, align 4, !tbaa !5
  %116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %117 = call i32 @s2n_print_stacktrace(ptr noundef %116)
  %118 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %119 = trunc i8 %118 to i1
  br i1 %119, label %120, label %142

120:                                              ; preds = %113
  %121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %122 = call i32 @fileno(ptr noundef %121) #7
  %123 = call i32 @isatty(i32 noundef %122) #7
  %124 = icmp ne i32 %123, 0
  br i1 %124, label %125, label %142

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

142:                                              ; preds = %120, %113
  %143 = load i32, ptr %7, align 4, !tbaa !5
  %144 = call ptr @__errno_location() #8
  store i32 %143, ptr %144, align 4, !tbaa !5
  %145 = load ptr, ptr @stderr, align 8, !tbaa !9
  %146 = load i32, ptr @test_count, align 4, !tbaa !5
  %147 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %148 = load i32, ptr %147, align 4, !tbaa !5
  %149 = call ptr @s2n_strerror(i32 noundef %148, ptr noundef @.str.4)
  %150 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %151 = load i32, ptr %150, align 4, !tbaa !5
  %152 = call ptr @s2n_strerror_debug(i32 noundef %151, ptr noundef @.str.4)
  %153 = call ptr @__errno_location() #8
  %154 = load i32, ptr %153, align 4, !tbaa !5
  %155 = call ptr @strerror(i32 noundef %154) #7
  %156 = call ptr @__errno_location() #8
  %157 = load i32, ptr %156, align 4, !tbaa !5
  %158 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %145, ptr noundef @.str.5, i32 noundef %146, ptr noundef @.str.6, ptr noundef @.str.1, i32 noundef 23, ptr noundef %149, ptr noundef %152, ptr noundef %155, i32 noundef %157) #7
  br label %159

159:                                              ; preds = %142, %125
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  br label %160

160:                                              ; preds = %159
  call void @exit(i32 noundef 1) #9
  unreachable

161:                                              ; No predecessors!
  br label %162

162:                                              ; preds = %161, %106
  br label %163

163:                                              ; preds = %162
  br label %164

164:                                              ; preds = %163
  br label %165

165:                                              ; preds = %164
  %166 = call i32 @s2n_init()
  %167 = icmp eq i32 %166, -1
  br i1 %167, label %168, label %219

168:                                              ; preds = %165
  br label %169

169:                                              ; preds = %168
  br label %170

170:                                              ; preds = %169
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  %171 = call ptr @__errno_location() #8
  %172 = load i32, ptr %171, align 4, !tbaa !5
  store i32 %172, ptr %8, align 4, !tbaa !5
  %173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %174 = call i32 @s2n_print_stacktrace(ptr noundef %173)
  %175 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %176 = trunc i8 %175 to i1
  br i1 %176, label %177, label %199

177:                                              ; preds = %170
  %178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %179 = call i32 @fileno(ptr noundef %178) #7
  %180 = call i32 @isatty(i32 noundef %179) #7
  %181 = icmp ne i32 %180, 0
  br i1 %181, label %182, label %199

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

199:                                              ; preds = %177, %170
  %200 = load i32, ptr %8, align 4, !tbaa !5
  %201 = call ptr @__errno_location() #8
  store i32 %200, ptr %201, align 4, !tbaa !5
  %202 = load ptr, ptr @stderr, align 8, !tbaa !9
  %203 = load i32, ptr @test_count, align 4, !tbaa !5
  %204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %205 = load i32, ptr %204, align 4, !tbaa !5
  %206 = call ptr @s2n_strerror(i32 noundef %205, ptr noundef @.str.4)
  %207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %208 = load i32, ptr %207, align 4, !tbaa !5
  %209 = call ptr @s2n_strerror_debug(i32 noundef %208, ptr noundef @.str.4)
  %210 = call ptr @__errno_location() #8
  %211 = load i32, ptr %210, align 4, !tbaa !5
  %212 = call ptr @strerror(i32 noundef %211) #7
  %213 = call ptr @__errno_location() #8
  %214 = load i32, ptr %213, align 4, !tbaa !5
  %215 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %202, ptr noundef @.str.5, i32 noundef %203, ptr noundef @.str.7, ptr noundef @.str.1, i32 noundef 23, ptr noundef %206, ptr noundef %209, ptr noundef %212, i32 noundef %214) #7
  br label %216

216:                                              ; preds = %199, %182
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  br label %217

217:                                              ; preds = %216
  call void @exit(i32 noundef 1) #9
  unreachable

218:                                              ; No predecessors!
  br label %219

219:                                              ; preds = %218, %165
  br label %220

220:                                              ; preds = %219
  br label %221

221:                                              ; preds = %220
  call void @llvm.lifetime.start.p0(i64 8, ptr %9) #7
  %222 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %222, ptr %9, align 8, !tbaa !9
  br label %223

223:                                              ; preds = %221
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = add nsw i32 %224, 1
  store i32 %225, ptr @test_count, align 4, !tbaa !5
  %226 = load ptr, ptr %9, align 8, !tbaa !9
  %227 = icmp eq ptr %226, null
  br i1 %227, label %228, label %281

228:                                              ; preds = %223
  br label %229

229:                                              ; preds = %228
  br label %230

230:                                              ; preds = %229
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  %231 = call ptr @__errno_location() #8
  %232 = load i32, ptr %231, align 4, !tbaa !5
  store i32 %232, ptr %10, align 4, !tbaa !5
  %233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %234 = call i32 @s2n_print_stacktrace(ptr noundef %233)
  %235 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %236 = trunc i8 %235 to i1
  br i1 %236, label %237, label %259

237:                                              ; preds = %230
  %238 = load ptr, ptr @stderr, align 8, !tbaa !9
  %239 = call i32 @fileno(ptr noundef %238) #7
  %240 = call i32 @isatty(i32 noundef %239) #7
  %241 = icmp ne i32 %240, 0
  br i1 %241, label %242, label %259

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

259:                                              ; preds = %237, %230
  %260 = load i32, ptr %10, align 4, !tbaa !5
  %261 = call ptr @__errno_location() #8
  store i32 %260, ptr %261, align 4, !tbaa !5
  %262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %263 = load i32, ptr @test_count, align 4, !tbaa !5
  %264 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %265 = load i32, ptr %264, align 4, !tbaa !5
  %266 = call ptr @s2n_strerror(i32 noundef %265, ptr noundef @.str.4)
  %267 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %268 = load i32, ptr %267, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror_debug(i32 noundef %268, ptr noundef @.str.4)
  %270 = call ptr @__errno_location() #8
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = call ptr @strerror(i32 noundef %271) #7
  %273 = call ptr @__errno_location() #8
  %274 = load i32, ptr %273, align 4, !tbaa !5
  %275 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %262, ptr noundef @.str.5, i32 noundef %263, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 28, ptr noundef %266, ptr noundef %269, ptr noundef %272, i32 noundef %274) #7
  br label %276

276:                                              ; preds = %259, %242
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  br label %277

277:                                              ; preds = %276
  br label %278

278:                                              ; preds = %277
  call void @exit(i32 noundef 1) #9
  unreachable

279:                                              ; No predecessors!
  br label %280

280:                                              ; preds = %279
  br label %281

281:                                              ; preds = %280, %223
  br label %282

282:                                              ; preds = %281
  br label %283

283:                                              ; preds = %282
  %284 = load ptr, ptr %9, align 8, !tbaa !9
  %285 = getelementptr inbounds %struct.s2n_connection, ptr %284, i32 0, i32 23
  store i8 34, ptr %285, align 4, !tbaa !15
  br label %286

286:                                              ; preds = %283
  %287 = load i32, ptr @test_count, align 4, !tbaa !5
  %288 = add nsw i32 %287, 1
  store i32 %288, ptr @test_count, align 4, !tbaa !5
  %289 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ems_extension, i32 0, i32 5), align 8, !tbaa !42
  %290 = load ptr, ptr %9, align 8, !tbaa !9
  %291 = call zeroext i1 %289(ptr noundef %290)
  br i1 %291, label %292, label %345

292:                                              ; preds = %286
  br label %293

293:                                              ; preds = %292
  br label %294

294:                                              ; preds = %293
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  %295 = call ptr @__errno_location() #8
  %296 = load i32, ptr %295, align 4, !tbaa !5
  store i32 %296, ptr %11, align 4, !tbaa !5
  %297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %298 = call i32 @s2n_print_stacktrace(ptr noundef %297)
  %299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %300 = trunc i8 %299 to i1
  br i1 %300, label %301, label %323

301:                                              ; preds = %294
  %302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %303 = call i32 @fileno(ptr noundef %302) #7
  %304 = call i32 @isatty(i32 noundef %303) #7
  %305 = icmp ne i32 %304, 0
  br i1 %305, label %306, label %323

306:                                              ; preds = %301
  %307 = load i32, ptr %11, align 4, !tbaa !5
  %308 = call ptr @__errno_location() #8
  store i32 %307, ptr %308, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = load i32, ptr @test_count, align 4, !tbaa !5
  %311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %312 = load i32, ptr %311, align 4, !tbaa !5
  %313 = call ptr @s2n_strerror(i32 noundef %312, ptr noundef @.str.4)
  %314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %315 = load i32, ptr %314, align 4, !tbaa !5
  %316 = call ptr @s2n_strerror_debug(i32 noundef %315, ptr noundef @.str.4)
  %317 = call ptr @__errno_location() #8
  %318 = load i32, ptr %317, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #7
  %320 = call ptr @__errno_location() #8
  %321 = load i32, ptr %320, align 4, !tbaa !5
  %322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %309, ptr noundef @.str.2, i32 noundef %310, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 32, ptr noundef %313, ptr noundef %316, ptr noundef %319, i32 noundef %321) #7
  br label %340

323:                                              ; preds = %301, %294
  %324 = load i32, ptr %11, align 4, !tbaa !5
  %325 = call ptr @__errno_location() #8
  store i32 %324, ptr %325, align 4, !tbaa !5
  %326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %327 = load i32, ptr @test_count, align 4, !tbaa !5
  %328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = call ptr @s2n_strerror(i32 noundef %329, ptr noundef @.str.4)
  %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_debug(i32 noundef %332, ptr noundef @.str.4)
  %334 = call ptr @__errno_location() #8
  %335 = load i32, ptr %334, align 4, !tbaa !5
  %336 = call ptr @strerror(i32 noundef %335) #7
  %337 = call ptr @__errno_location() #8
  %338 = load i32, ptr %337, align 4, !tbaa !5
  %339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %326, ptr noundef @.str.5, i32 noundef %327, ptr noundef @.str.9, ptr noundef @.str.1, i32 noundef 32, ptr noundef %330, ptr noundef %333, ptr noundef %336, i32 noundef %338) #7
  br label %340

340:                                              ; preds = %323, %306
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  br label %341

341:                                              ; preds = %340
  br label %342

342:                                              ; preds = %341
  call void @exit(i32 noundef 1) #9
  unreachable

343:                                              ; No predecessors!
  br label %344

344:                                              ; preds = %343
  br label %345

345:                                              ; preds = %344, %286
  br label %346

346:                                              ; preds = %345
  br label %347

347:                                              ; preds = %346
  %348 = load ptr, ptr %9, align 8, !tbaa !9
  %349 = getelementptr inbounds %struct.s2n_connection, ptr %348, i32 0, i32 23
  store i8 33, ptr %349, align 4, !tbaa !15
  br label %350

350:                                              ; preds = %347
  %351 = load i32, ptr @test_count, align 4, !tbaa !5
  %352 = add nsw i32 %351, 1
  store i32 %352, ptr @test_count, align 4, !tbaa !5
  %353 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ems_extension, i32 0, i32 5), align 8, !tbaa !42
  %354 = load ptr, ptr %9, align 8, !tbaa !9
  %355 = call zeroext i1 %353(ptr noundef %354)
  br i1 %355, label %409, label %356

356:                                              ; preds = %350
  br label %357

357:                                              ; preds = %356
  br label %358

358:                                              ; preds = %357
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  %359 = call ptr @__errno_location() #8
  %360 = load i32, ptr %359, align 4, !tbaa !5
  store i32 %360, ptr %12, align 4, !tbaa !5
  %361 = load ptr, ptr @stderr, align 8, !tbaa !9
  %362 = call i32 @s2n_print_stacktrace(ptr noundef %361)
  %363 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %364 = trunc i8 %363 to i1
  br i1 %364, label %365, label %387

365:                                              ; preds = %358
  %366 = load ptr, ptr @stderr, align 8, !tbaa !9
  %367 = call i32 @fileno(ptr noundef %366) #7
  %368 = call i32 @isatty(i32 noundef %367) #7
  %369 = icmp ne i32 %368, 0
  br i1 %369, label %370, label %387

370:                                              ; preds = %365
  %371 = load i32, ptr %12, align 4, !tbaa !5
  %372 = call ptr @__errno_location() #8
  store i32 %371, ptr %372, align 4, !tbaa !5
  %373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %374 = load i32, ptr @test_count, align 4, !tbaa !5
  %375 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %376 = load i32, ptr %375, align 4, !tbaa !5
  %377 = call ptr @s2n_strerror(i32 noundef %376, ptr noundef @.str.4)
  %378 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %379 = load i32, ptr %378, align 4, !tbaa !5
  %380 = call ptr @s2n_strerror_debug(i32 noundef %379, ptr noundef @.str.4)
  %381 = call ptr @__errno_location() #8
  %382 = load i32, ptr %381, align 4, !tbaa !5
  %383 = call ptr @strerror(i32 noundef %382) #7
  %384 = call ptr @__errno_location() #8
  %385 = load i32, ptr %384, align 4, !tbaa !5
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %373, ptr noundef @.str.2, i32 noundef %374, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 36, ptr noundef %377, ptr noundef %380, ptr noundef %383, i32 noundef %385) #7
  br label %404

387:                                              ; preds = %365, %358
  %388 = load i32, ptr %12, align 4, !tbaa !5
  %389 = call ptr @__errno_location() #8
  store i32 %388, ptr %389, align 4, !tbaa !5
  %390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %391 = load i32, ptr @test_count, align 4, !tbaa !5
  %392 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %393 = load i32, ptr %392, align 4, !tbaa !5
  %394 = call ptr @s2n_strerror(i32 noundef %393, ptr noundef @.str.4)
  %395 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %396 = load i32, ptr %395, align 4, !tbaa !5
  %397 = call ptr @s2n_strerror_debug(i32 noundef %396, ptr noundef @.str.4)
  %398 = call ptr @__errno_location() #8
  %399 = load i32, ptr %398, align 4, !tbaa !5
  %400 = call ptr @strerror(i32 noundef %399) #7
  %401 = call ptr @__errno_location() #8
  %402 = load i32, ptr %401, align 4, !tbaa !5
  %403 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %390, ptr noundef @.str.5, i32 noundef %391, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 36, ptr noundef %394, ptr noundef %397, ptr noundef %400, i32 noundef %402) #7
  br label %404

404:                                              ; preds = %387, %370
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %405

405:                                              ; preds = %404
  br label %406

406:                                              ; preds = %405
  call void @exit(i32 noundef 1) #9
  unreachable

407:                                              ; No predecessors!
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408, %350
  br label %410

410:                                              ; preds = %409
  br label %411

411:                                              ; preds = %410
  br label %412

412:                                              ; preds = %411
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = add nsw i32 %413, 1
  store i32 %414, ptr @test_count, align 4, !tbaa !5
  %415 = load ptr, ptr %9, align 8, !tbaa !9
  %416 = call i32 @s2n_connection_free(ptr noundef %415)
  %417 = icmp eq i32 %416, -1
  br i1 %417, label %418, label %471

418:                                              ; preds = %412
  br label %419

419:                                              ; preds = %418
  br label %420

420:                                              ; preds = %419
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  %421 = call ptr @__errno_location() #8
  %422 = load i32, ptr %421, align 4, !tbaa !5
  store i32 %422, ptr %13, align 4, !tbaa !5
  %423 = load ptr, ptr @stderr, align 8, !tbaa !9
  %424 = call i32 @s2n_print_stacktrace(ptr noundef %423)
  %425 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %426 = trunc i8 %425 to i1
  br i1 %426, label %427, label %449

427:                                              ; preds = %420
  %428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %429 = call i32 @fileno(ptr noundef %428) #7
  %430 = call i32 @isatty(i32 noundef %429) #7
  %431 = icmp ne i32 %430, 0
  br i1 %431, label %432, label %449

432:                                              ; preds = %427
  %433 = load i32, ptr %13, align 4, !tbaa !5
  %434 = call ptr @__errno_location() #8
  store i32 %433, ptr %434, align 4, !tbaa !5
  %435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %436 = load i32, ptr @test_count, align 4, !tbaa !5
  %437 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %438 = load i32, ptr %437, align 4, !tbaa !5
  %439 = call ptr @s2n_strerror(i32 noundef %438, ptr noundef @.str.4)
  %440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %441 = load i32, ptr %440, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror_debug(i32 noundef %441, ptr noundef @.str.4)
  %443 = call ptr @__errno_location() #8
  %444 = load i32, ptr %443, align 4, !tbaa !5
  %445 = call ptr @strerror(i32 noundef %444) #7
  %446 = call ptr @__errno_location() #8
  %447 = load i32, ptr %446, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %435, ptr noundef @.str.2, i32 noundef %436, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 38, ptr noundef %439, ptr noundef %442, ptr noundef %445, i32 noundef %447) #7
  br label %466

449:                                              ; preds = %427, %420
  %450 = load i32, ptr %13, align 4, !tbaa !5
  %451 = call ptr @__errno_location() #8
  store i32 %450, ptr %451, align 4, !tbaa !5
  %452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %453 = load i32, ptr @test_count, align 4, !tbaa !5
  %454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %455 = load i32, ptr %454, align 4, !tbaa !5
  %456 = call ptr @s2n_strerror(i32 noundef %455, ptr noundef @.str.4)
  %457 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %458 = load i32, ptr %457, align 4, !tbaa !5
  %459 = call ptr @s2n_strerror_debug(i32 noundef %458, ptr noundef @.str.4)
  %460 = call ptr @__errno_location() #8
  %461 = load i32, ptr %460, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #7
  %463 = call ptr @__errno_location() #8
  %464 = load i32, ptr %463, align 4, !tbaa !5
  %465 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %452, ptr noundef @.str.5, i32 noundef %453, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 38, ptr noundef %456, ptr noundef %459, ptr noundef %462, i32 noundef %464) #7
  br label %466

466:                                              ; preds = %449, %432
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %467

467:                                              ; preds = %466
  br label %468

468:                                              ; preds = %467
  call void @exit(i32 noundef 1) #9
  unreachable

469:                                              ; No predecessors!
  br label %470

470:                                              ; preds = %469
  br label %471

471:                                              ; preds = %470, %412
  br label %472

472:                                              ; preds = %471
  br label %473

473:                                              ; preds = %472
  call void @llvm.lifetime.end.p0(i64 8, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #7
  %474 = call ptr @s2n_connection_new(i32 noundef 0)
  store ptr %474, ptr %14, align 8, !tbaa !9
  br label %475

475:                                              ; preds = %473
  %476 = load i32, ptr @test_count, align 4, !tbaa !5
  %477 = add nsw i32 %476, 1
  store i32 %477, ptr @test_count, align 4, !tbaa !5
  %478 = load ptr, ptr %14, align 8, !tbaa !9
  %479 = icmp eq ptr %478, null
  br i1 %479, label %480, label %533

480:                                              ; preds = %475
  br label %481

481:                                              ; preds = %480
  br label %482

482:                                              ; preds = %481
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  %483 = call ptr @__errno_location() #8
  %484 = load i32, ptr %483, align 4, !tbaa !5
  store i32 %484, ptr %15, align 4, !tbaa !5
  %485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %486 = call i32 @s2n_print_stacktrace(ptr noundef %485)
  %487 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %488 = trunc i8 %487 to i1
  br i1 %488, label %489, label %511

489:                                              ; preds = %482
  %490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %491 = call i32 @fileno(ptr noundef %490) #7
  %492 = call i32 @isatty(i32 noundef %491) #7
  %493 = icmp ne i32 %492, 0
  br i1 %493, label %494, label %511

494:                                              ; preds = %489
  %495 = load i32, ptr %15, align 4, !tbaa !5
  %496 = call ptr @__errno_location() #8
  store i32 %495, ptr %496, align 4, !tbaa !5
  %497 = load ptr, ptr @stderr, align 8, !tbaa !9
  %498 = load i32, ptr @test_count, align 4, !tbaa !5
  %499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = call ptr @s2n_strerror(i32 noundef %500, ptr noundef @.str.4)
  %502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %503 = load i32, ptr %502, align 4, !tbaa !5
  %504 = call ptr @s2n_strerror_debug(i32 noundef %503, ptr noundef @.str.4)
  %505 = call ptr @__errno_location() #8
  %506 = load i32, ptr %505, align 4, !tbaa !5
  %507 = call ptr @strerror(i32 noundef %506) #7
  %508 = call ptr @__errno_location() #8
  %509 = load i32, ptr %508, align 4, !tbaa !5
  %510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %497, ptr noundef @.str.2, i32 noundef %498, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 44, ptr noundef %501, ptr noundef %504, ptr noundef %507, i32 noundef %509) #7
  br label %528

511:                                              ; preds = %489, %482
  %512 = load i32, ptr %15, align 4, !tbaa !5
  %513 = call ptr @__errno_location() #8
  store i32 %512, ptr %513, align 4, !tbaa !5
  %514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %515 = load i32, ptr @test_count, align 4, !tbaa !5
  %516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %517 = load i32, ptr %516, align 4, !tbaa !5
  %518 = call ptr @s2n_strerror(i32 noundef %517, ptr noundef @.str.4)
  %519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %520 = load i32, ptr %519, align 4, !tbaa !5
  %521 = call ptr @s2n_strerror_debug(i32 noundef %520, ptr noundef @.str.4)
  %522 = call ptr @__errno_location() #8
  %523 = load i32, ptr %522, align 4, !tbaa !5
  %524 = call ptr @strerror(i32 noundef %523) #7
  %525 = call ptr @__errno_location() #8
  %526 = load i32, ptr %525, align 4, !tbaa !5
  %527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %514, ptr noundef @.str.5, i32 noundef %515, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 44, ptr noundef %518, ptr noundef %521, ptr noundef %524, i32 noundef %526) #7
  br label %528

528:                                              ; preds = %511, %494
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  br label %529

529:                                              ; preds = %528
  br label %530

530:                                              ; preds = %529
  call void @exit(i32 noundef 1) #9
  unreachable

531:                                              ; No predecessors!
  br label %532

532:                                              ; preds = %531
  br label %533

533:                                              ; preds = %532, %475
  br label %534

534:                                              ; preds = %533
  br label %535

535:                                              ; preds = %534
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %536 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %536, ptr %16, align 8, !tbaa !9
  br label %537

537:                                              ; preds = %535
  %538 = load i32, ptr @test_count, align 4, !tbaa !5
  %539 = add nsw i32 %538, 1
  store i32 %539, ptr @test_count, align 4, !tbaa !5
  %540 = load ptr, ptr %16, align 8, !tbaa !9
  %541 = icmp eq ptr %540, null
  br i1 %541, label %542, label %595

542:                                              ; preds = %537
  br label %543

543:                                              ; preds = %542
  br label %544

544:                                              ; preds = %543
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %545 = call ptr @__errno_location() #8
  %546 = load i32, ptr %545, align 4, !tbaa !5
  store i32 %546, ptr %17, align 4, !tbaa !5
  %547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %548 = call i32 @s2n_print_stacktrace(ptr noundef %547)
  %549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %550 = trunc i8 %549 to i1
  br i1 %550, label %551, label %573

551:                                              ; preds = %544
  %552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %553 = call i32 @fileno(ptr noundef %552) #7
  %554 = call i32 @isatty(i32 noundef %553) #7
  %555 = icmp ne i32 %554, 0
  br i1 %555, label %556, label %573

556:                                              ; preds = %551
  %557 = load i32, ptr %17, align 4, !tbaa !5
  %558 = call ptr @__errno_location() #8
  store i32 %557, ptr %558, align 4, !tbaa !5
  %559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %560 = load i32, ptr @test_count, align 4, !tbaa !5
  %561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %562 = load i32, ptr %561, align 4, !tbaa !5
  %563 = call ptr @s2n_strerror(i32 noundef %562, ptr noundef @.str.4)
  %564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %565 = load i32, ptr %564, align 4, !tbaa !5
  %566 = call ptr @s2n_strerror_debug(i32 noundef %565, ptr noundef @.str.4)
  %567 = call ptr @__errno_location() #8
  %568 = load i32, ptr %567, align 4, !tbaa !5
  %569 = call ptr @strerror(i32 noundef %568) #7
  %570 = call ptr @__errno_location() #8
  %571 = load i32, ptr %570, align 4, !tbaa !5
  %572 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %559, ptr noundef @.str.2, i32 noundef %560, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 47, ptr noundef %563, ptr noundef %566, ptr noundef %569, i32 noundef %571) #7
  br label %590

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

590:                                              ; preds = %573, %556
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %591

591:                                              ; preds = %590
  br label %592

592:                                              ; preds = %591
  call void @exit(i32 noundef 1) #9
  unreachable

593:                                              ; No predecessors!
  br label %594

594:                                              ; preds = %593
  br label %595

595:                                              ; preds = %594, %537
  br label %596

596:                                              ; preds = %595
  br label %597

597:                                              ; preds = %596
  %598 = load ptr, ptr %14, align 8, !tbaa !9
  %599 = getelementptr inbounds %struct.s2n_connection, ptr %598, i32 0, i32 23
  store i8 33, ptr %599, align 4, !tbaa !15
  %600 = load ptr, ptr %16, align 8, !tbaa !9
  %601 = getelementptr inbounds %struct.s2n_connection, ptr %600, i32 0, i32 23
  store i8 33, ptr %601, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr %18) #7
  br label %602

602:                                              ; preds = %597
  %603 = load i32, ptr @test_count, align 4, !tbaa !5
  %604 = add nsw i32 %603, 1
  store i32 %604, ptr @test_count, align 4, !tbaa !5
  %605 = call i32 @s2n_stuffer_growable_alloc(ptr noundef %18, i32 noundef 0)
  %606 = icmp eq i32 %605, -1
  br i1 %606, label %607, label %660

607:                                              ; preds = %602
  br label %608

608:                                              ; preds = %607
  br label %609

609:                                              ; preds = %608
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  %610 = call ptr @__errno_location() #8
  %611 = load i32, ptr %610, align 4, !tbaa !5
  store i32 %611, ptr %19, align 4, !tbaa !5
  %612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %613 = call i32 @s2n_print_stacktrace(ptr noundef %612)
  %614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %615 = trunc i8 %614 to i1
  br i1 %615, label %616, label %638

616:                                              ; preds = %609
  %617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %618 = call i32 @fileno(ptr noundef %617) #7
  %619 = call i32 @isatty(i32 noundef %618) #7
  %620 = icmp ne i32 %619, 0
  br i1 %620, label %621, label %638

621:                                              ; preds = %616
  %622 = load i32, ptr %19, align 4, !tbaa !5
  %623 = call ptr @__errno_location() #8
  store i32 %622, ptr %623, align 4, !tbaa !5
  %624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %625 = load i32, ptr @test_count, align 4, !tbaa !5
  %626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %627 = load i32, ptr %626, align 4, !tbaa !5
  %628 = call ptr @s2n_strerror(i32 noundef %627, ptr noundef @.str.4)
  %629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %630 = load i32, ptr %629, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror_debug(i32 noundef %630, ptr noundef @.str.4)
  %632 = call ptr @__errno_location() #8
  %633 = load i32, ptr %632, align 4, !tbaa !5
  %634 = call ptr @strerror(i32 noundef %633) #7
  %635 = call ptr @__errno_location() #8
  %636 = load i32, ptr %635, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %624, ptr noundef @.str.2, i32 noundef %625, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %628, ptr noundef %631, ptr noundef %634, i32 noundef %636) #7
  br label %655

638:                                              ; preds = %616, %609
  %639 = load i32, ptr %19, align 4, !tbaa !5
  %640 = call ptr @__errno_location() #8
  store i32 %639, ptr %640, align 4, !tbaa !5
  %641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %642 = load i32, ptr @test_count, align 4, !tbaa !5
  %643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %644 = load i32, ptr %643, align 4, !tbaa !5
  %645 = call ptr @s2n_strerror(i32 noundef %644, ptr noundef @.str.4)
  %646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %647 = load i32, ptr %646, align 4, !tbaa !5
  %648 = call ptr @s2n_strerror_debug(i32 noundef %647, ptr noundef @.str.4)
  %649 = call ptr @__errno_location() #8
  %650 = load i32, ptr %649, align 4, !tbaa !5
  %651 = call ptr @strerror(i32 noundef %650) #7
  %652 = call ptr @__errno_location() #8
  %653 = load i32, ptr %652, align 4, !tbaa !5
  %654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %641, ptr noundef @.str.5, i32 noundef %642, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 54, ptr noundef %645, ptr noundef %648, ptr noundef %651, i32 noundef %653) #7
  br label %655

655:                                              ; preds = %638, %621
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %656

656:                                              ; preds = %655
  br label %657

657:                                              ; preds = %656
  call void @exit(i32 noundef 1) #9
  unreachable

658:                                              ; No predecessors!
  br label %659

659:                                              ; preds = %658
  br label %660

660:                                              ; preds = %659, %602
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  br label %663

663:                                              ; preds = %662
  %664 = load i32, ptr @test_count, align 4, !tbaa !5
  %665 = add nsw i32 %664, 1
  store i32 %665, ptr @test_count, align 4, !tbaa !5
  %666 = load ptr, ptr %16, align 8, !tbaa !9
  %667 = call i32 @s2n_extension_list_send(i32 noundef 0, ptr noundef %666, ptr noundef %18)
  %668 = icmp eq i32 %667, -1
  br i1 %668, label %669, label %722

669:                                              ; preds = %663
  br label %670

670:                                              ; preds = %669
  br label %671

671:                                              ; preds = %670
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  %672 = call ptr @__errno_location() #8
  %673 = load i32, ptr %672, align 4, !tbaa !5
  store i32 %673, ptr %20, align 4, !tbaa !5
  %674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %675 = call i32 @s2n_print_stacktrace(ptr noundef %674)
  %676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %677 = trunc i8 %676 to i1
  br i1 %677, label %678, label %700

678:                                              ; preds = %671
  %679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %680 = call i32 @fileno(ptr noundef %679) #7
  %681 = call i32 @isatty(i32 noundef %680) #7
  %682 = icmp ne i32 %681, 0
  br i1 %682, label %683, label %700

683:                                              ; preds = %678
  %684 = load i32, ptr %20, align 4, !tbaa !5
  %685 = call ptr @__errno_location() #8
  store i32 %684, ptr %685, align 4, !tbaa !5
  %686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %687 = load i32, ptr @test_count, align 4, !tbaa !5
  %688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %689 = load i32, ptr %688, align 4, !tbaa !5
  %690 = call ptr @s2n_strerror(i32 noundef %689, ptr noundef @.str.4)
  %691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %692 = load i32, ptr %691, align 4, !tbaa !5
  %693 = call ptr @s2n_strerror_debug(i32 noundef %692, ptr noundef @.str.4)
  %694 = call ptr @__errno_location() #8
  %695 = load i32, ptr %694, align 4, !tbaa !5
  %696 = call ptr @strerror(i32 noundef %695) #7
  %697 = call ptr @__errno_location() #8
  %698 = load i32, ptr %697, align 4, !tbaa !5
  %699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %686, ptr noundef @.str.2, i32 noundef %687, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 55, ptr noundef %690, ptr noundef %693, ptr noundef %696, i32 noundef %698) #7
  br label %717

700:                                              ; preds = %678, %671
  %701 = load i32, ptr %20, align 4, !tbaa !5
  %702 = call ptr @__errno_location() #8
  store i32 %701, ptr %702, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %706 = load i32, ptr %705, align 4, !tbaa !5
  %707 = call ptr @s2n_strerror(i32 noundef %706, ptr noundef @.str.4)
  %708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %709 = load i32, ptr %708, align 4, !tbaa !5
  %710 = call ptr @s2n_strerror_debug(i32 noundef %709, ptr noundef @.str.4)
  %711 = call ptr @__errno_location() #8
  %712 = load i32, ptr %711, align 4, !tbaa !5
  %713 = call ptr @strerror(i32 noundef %712) #7
  %714 = call ptr @__errno_location() #8
  %715 = load i32, ptr %714, align 4, !tbaa !5
  %716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %703, ptr noundef @.str.5, i32 noundef %704, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 55, ptr noundef %707, ptr noundef %710, ptr noundef %713, i32 noundef %715) #7
  br label %717

717:                                              ; preds = %700, %683
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  br label %718

718:                                              ; preds = %717
  br label %719

719:                                              ; preds = %718
  call void @exit(i32 noundef 1) #9
  unreachable

720:                                              ; No predecessors!
  br label %721

721:                                              ; preds = %720
  br label %722

722:                                              ; preds = %721, %663
  br label %723

723:                                              ; preds = %722
  br label %724

724:                                              ; preds = %723
  br label %725

725:                                              ; preds = %724
  %726 = load i32, ptr @test_count, align 4, !tbaa !5
  %727 = add nsw i32 %726, 1
  store i32 %727, ptr @test_count, align 4, !tbaa !5
  %728 = load ptr, ptr %16, align 8, !tbaa !9
  %729 = load i32, ptr %728, align 8
  %730 = lshr i32 %729, 13
  %731 = and i32 %730, 1
  %732 = icmp ne i32 %731, 0
  br i1 %732, label %733, label %786

733:                                              ; preds = %725
  br label %734

734:                                              ; preds = %733
  br label %735

735:                                              ; preds = %734
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  %736 = call ptr @__errno_location() #8
  %737 = load i32, ptr %736, align 4, !tbaa !5
  store i32 %737, ptr %21, align 4, !tbaa !5
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @s2n_print_stacktrace(ptr noundef %738)
  %740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %741 = trunc i8 %740 to i1
  br i1 %741, label %742, label %764

742:                                              ; preds = %735
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = call i32 @fileno(ptr noundef %743) #7
  %745 = call i32 @isatty(i32 noundef %744) #7
  %746 = icmp ne i32 %745, 0
  br i1 %746, label %747, label %764

747:                                              ; preds = %742
  %748 = load i32, ptr %21, align 4, !tbaa !5
  %749 = call ptr @__errno_location() #8
  store i32 %748, ptr %749, 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 @.str.4)
  %755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %756 = load i32, ptr %755, align 4, !tbaa !5
  %757 = call ptr @s2n_strerror_debug(i32 noundef %756, ptr noundef @.str.4)
  %758 = call ptr @__errno_location() #8
  %759 = load i32, ptr %758, align 4, !tbaa !5
  %760 = call ptr @strerror(i32 noundef %759) #7
  %761 = call ptr @__errno_location() #8
  %762 = load i32, ptr %761, align 4, !tbaa !5
  %763 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %750, ptr noundef @.str.2, i32 noundef %751, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 56, ptr noundef %754, ptr noundef %757, ptr noundef %760, i32 noundef %762) #7
  br label %781

764:                                              ; preds = %742, %735
  %765 = load i32, ptr %21, align 4, !tbaa !5
  %766 = call ptr @__errno_location() #8
  store i32 %765, ptr %766, align 4, !tbaa !5
  %767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %770 = load i32, ptr %769, align 4, !tbaa !5
  %771 = call ptr @s2n_strerror(i32 noundef %770, ptr noundef @.str.4)
  %772 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %773 = load i32, ptr %772, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef @.str.4)
  %775 = call ptr @__errno_location() #8
  %776 = load i32, ptr %775, align 4, !tbaa !5
  %777 = call ptr @strerror(i32 noundef %776) #7
  %778 = call ptr @__errno_location() #8
  %779 = load i32, ptr %778, align 4, !tbaa !5
  %780 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %767, ptr noundef @.str.5, i32 noundef %768, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 56, ptr noundef %771, ptr noundef %774, ptr noundef %777, i32 noundef %779) #7
  br label %781

781:                                              ; preds = %764, %747
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  call void @exit(i32 noundef 1) #9
  unreachable

784:                                              ; No predecessors!
  br label %785

785:                                              ; preds = %784
  br label %786

786:                                              ; preds = %785, %725
  br label %787

787:                                              ; preds = %786
  br label %788

788:                                              ; preds = %787
  br label %789

789:                                              ; preds = %788
  %790 = load i32, ptr @test_count, align 4, !tbaa !5
  %791 = add nsw i32 %790, 1
  store i32 %791, ptr @test_count, align 4, !tbaa !5
  %792 = load ptr, ptr %14, align 8, !tbaa !9
  %793 = call i32 @s2n_extension_list_recv(i32 noundef 0, ptr noundef %792, ptr noundef %18)
  %794 = icmp eq i32 %793, -1
  br i1 %794, label %795, label %848

795:                                              ; preds = %789
  br label %796

796:                                              ; preds = %795
  br label %797

797:                                              ; preds = %796
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  %798 = call ptr @__errno_location() #8
  %799 = load i32, ptr %798, align 4, !tbaa !5
  store i32 %799, ptr %22, align 4, !tbaa !5
  %800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %801 = call i32 @s2n_print_stacktrace(ptr noundef %800)
  %802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %803 = trunc i8 %802 to i1
  br i1 %803, label %804, label %826

804:                                              ; preds = %797
  %805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %806 = call i32 @fileno(ptr noundef %805) #7
  %807 = call i32 @isatty(i32 noundef %806) #7
  %808 = icmp ne i32 %807, 0
  br i1 %808, label %809, label %826

809:                                              ; preds = %804
  %810 = load i32, ptr %22, align 4, !tbaa !5
  %811 = call ptr @__errno_location() #8
  store i32 %810, ptr %811, align 4, !tbaa !5
  %812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %813 = load i32, ptr @test_count, align 4, !tbaa !5
  %814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %815 = load i32, ptr %814, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror(i32 noundef %815, ptr noundef @.str.4)
  %817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %818 = load i32, ptr %817, align 4, !tbaa !5
  %819 = call ptr @s2n_strerror_debug(i32 noundef %818, ptr noundef @.str.4)
  %820 = call ptr @__errno_location() #8
  %821 = load i32, ptr %820, align 4, !tbaa !5
  %822 = call ptr @strerror(i32 noundef %821) #7
  %823 = call ptr @__errno_location() #8
  %824 = load i32, ptr %823, align 4, !tbaa !5
  %825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %812, ptr noundef @.str.2, i32 noundef %813, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 58, ptr noundef %816, ptr noundef %819, ptr noundef %822, i32 noundef %824) #7
  br label %843

826:                                              ; preds = %804, %797
  %827 = load i32, ptr %22, align 4, !tbaa !5
  %828 = call ptr @__errno_location() #8
  store i32 %827, ptr %828, align 4, !tbaa !5
  %829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %832 = load i32, ptr %831, align 4, !tbaa !5
  %833 = call ptr @s2n_strerror(i32 noundef %832, ptr noundef @.str.4)
  %834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %835 = load i32, ptr %834, align 4, !tbaa !5
  %836 = call ptr @s2n_strerror_debug(i32 noundef %835, ptr noundef @.str.4)
  %837 = call ptr @__errno_location() #8
  %838 = load i32, ptr %837, align 4, !tbaa !5
  %839 = call ptr @strerror(i32 noundef %838) #7
  %840 = call ptr @__errno_location() #8
  %841 = load i32, ptr %840, align 4, !tbaa !5
  %842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %829, ptr noundef @.str.5, i32 noundef %830, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 58, ptr noundef %833, ptr noundef %836, ptr noundef %839, i32 noundef %841) #7
  br label %843

843:                                              ; preds = %826, %809
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  br label %844

844:                                              ; preds = %843
  br label %845

845:                                              ; preds = %844
  call void @exit(i32 noundef 1) #9
  unreachable

846:                                              ; No predecessors!
  br label %847

847:                                              ; preds = %846
  br label %848

848:                                              ; preds = %847, %789
  br label %849

849:                                              ; preds = %848
  br label %850

850:                                              ; preds = %849
  br label %851

851:                                              ; preds = %850
  %852 = load i32, ptr @test_count, align 4, !tbaa !5
  %853 = add nsw i32 %852, 1
  store i32 %853, ptr @test_count, align 4, !tbaa !5
  %854 = load ptr, ptr %14, align 8, !tbaa !9
  %855 = load i32, ptr %854, align 8
  %856 = lshr i32 %855, 13
  %857 = and i32 %856, 1
  %858 = icmp ne i32 %857, 0
  br i1 %858, label %912, label %859

859:                                              ; preds = %851
  br label %860

860:                                              ; preds = %859
  br label %861

861:                                              ; preds = %860
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  %862 = call ptr @__errno_location() #8
  %863 = load i32, ptr %862, align 4, !tbaa !5
  store i32 %863, ptr %23, align 4, !tbaa !5
  %864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %865 = call i32 @s2n_print_stacktrace(ptr noundef %864)
  %866 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %867 = trunc i8 %866 to i1
  br i1 %867, label %868, label %890

868:                                              ; preds = %861
  %869 = load ptr, ptr @stderr, align 8, !tbaa !9
  %870 = call i32 @fileno(ptr noundef %869) #7
  %871 = call i32 @isatty(i32 noundef %870) #7
  %872 = icmp ne i32 %871, 0
  br i1 %872, label %873, label %890

873:                                              ; preds = %868
  %874 = load i32, ptr %23, align 4, !tbaa !5
  %875 = call ptr @__errno_location() #8
  store i32 %874, ptr %875, align 4, !tbaa !5
  %876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %877 = load i32, ptr @test_count, align 4, !tbaa !5
  %878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %879 = load i32, ptr %878, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror(i32 noundef %879, ptr noundef @.str.4)
  %881 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %882 = load i32, ptr %881, align 4, !tbaa !5
  %883 = call ptr @s2n_strerror_debug(i32 noundef %882, ptr noundef @.str.4)
  %884 = call ptr @__errno_location() #8
  %885 = load i32, ptr %884, align 4, !tbaa !5
  %886 = call ptr @strerror(i32 noundef %885) #7
  %887 = call ptr @__errno_location() #8
  %888 = load i32, ptr %887, align 4, !tbaa !5
  %889 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %876, ptr noundef @.str.2, i32 noundef %877, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 59, ptr noundef %880, ptr noundef %883, ptr noundef %886, i32 noundef %888) #7
  br label %907

890:                                              ; preds = %868, %861
  %891 = load i32, ptr %23, align 4, !tbaa !5
  %892 = call ptr @__errno_location() #8
  store i32 %891, ptr %892, align 4, !tbaa !5
  %893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %894 = load i32, ptr @test_count, align 4, !tbaa !5
  %895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %896 = load i32, ptr %895, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror(i32 noundef %896, ptr noundef @.str.4)
  %898 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %899 = load i32, ptr %898, align 4, !tbaa !5
  %900 = call ptr @s2n_strerror_debug(i32 noundef %899, ptr noundef @.str.4)
  %901 = call ptr @__errno_location() #8
  %902 = load i32, ptr %901, align 4, !tbaa !5
  %903 = call ptr @strerror(i32 noundef %902) #7
  %904 = call ptr @__errno_location() #8
  %905 = load i32, ptr %904, align 4, !tbaa !5
  %906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %893, ptr noundef @.str.5, i32 noundef %894, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 59, ptr noundef %897, ptr noundef %900, ptr noundef %903, i32 noundef %905) #7
  br label %907

907:                                              ; preds = %890, %873
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  br label %908

908:                                              ; preds = %907
  br label %909

909:                                              ; preds = %908
  call void @exit(i32 noundef 1) #9
  unreachable

910:                                              ; No predecessors!
  br label %911

911:                                              ; preds = %910
  br label %912

912:                                              ; preds = %911, %851
  br label %913

913:                                              ; preds = %912
  br label %914

914:                                              ; preds = %913
  br label %915

915:                                              ; preds = %914
  %916 = load i32, ptr @test_count, align 4, !tbaa !5
  %917 = add nsw i32 %916, 1
  store i32 %917, ptr @test_count, align 4, !tbaa !5
  %918 = load ptr, ptr %14, align 8, !tbaa !9
  %919 = call i32 @s2n_extension_list_send(i32 noundef 2, ptr noundef %918, ptr noundef %18)
  %920 = icmp eq i32 %919, -1
  br i1 %920, label %921, label %974

921:                                              ; preds = %915
  br label %922

922:                                              ; preds = %921
  br label %923

923:                                              ; preds = %922
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  %924 = call ptr @__errno_location() #8
  %925 = load i32, ptr %924, align 4, !tbaa !5
  store i32 %925, ptr %24, align 4, !tbaa !5
  %926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %927 = call i32 @s2n_print_stacktrace(ptr noundef %926)
  %928 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %929 = trunc i8 %928 to i1
  br i1 %929, label %930, label %952

930:                                              ; preds = %923
  %931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %932 = call i32 @fileno(ptr noundef %931) #7
  %933 = call i32 @isatty(i32 noundef %932) #7
  %934 = icmp ne i32 %933, 0
  br i1 %934, label %935, label %952

935:                                              ; preds = %930
  %936 = load i32, ptr %24, align 4, !tbaa !5
  %937 = call ptr @__errno_location() #8
  store i32 %936, ptr %937, align 4, !tbaa !5
  %938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %939 = load i32, ptr @test_count, align 4, !tbaa !5
  %940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %941 = load i32, ptr %940, align 4, !tbaa !5
  %942 = call ptr @s2n_strerror(i32 noundef %941, ptr noundef @.str.4)
  %943 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %944 = load i32, ptr %943, align 4, !tbaa !5
  %945 = call ptr @s2n_strerror_debug(i32 noundef %944, ptr noundef @.str.4)
  %946 = call ptr @__errno_location() #8
  %947 = load i32, ptr %946, align 4, !tbaa !5
  %948 = call ptr @strerror(i32 noundef %947) #7
  %949 = call ptr @__errno_location() #8
  %950 = load i32, ptr %949, align 4, !tbaa !5
  %951 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %938, ptr noundef @.str.2, i32 noundef %939, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %942, ptr noundef %945, ptr noundef %948, i32 noundef %950) #7
  br label %969

952:                                              ; preds = %930, %923
  %953 = load i32, ptr %24, align 4, !tbaa !5
  %954 = call ptr @__errno_location() #8
  store i32 %953, ptr %954, align 4, !tbaa !5
  %955 = load ptr, ptr @stderr, align 8, !tbaa !9
  %956 = load i32, ptr @test_count, align 4, !tbaa !5
  %957 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %958 = load i32, ptr %957, align 4, !tbaa !5
  %959 = call ptr @s2n_strerror(i32 noundef %958, ptr noundef @.str.4)
  %960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %961 = load i32, ptr %960, align 4, !tbaa !5
  %962 = call ptr @s2n_strerror_debug(i32 noundef %961, ptr noundef @.str.4)
  %963 = call ptr @__errno_location() #8
  %964 = load i32, ptr %963, align 4, !tbaa !5
  %965 = call ptr @strerror(i32 noundef %964) #7
  %966 = call ptr @__errno_location() #8
  %967 = load i32, ptr %966, align 4, !tbaa !5
  %968 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %955, ptr noundef @.str.5, i32 noundef %956, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 61, ptr noundef %959, ptr noundef %962, ptr noundef %965, i32 noundef %967) #7
  br label %969

969:                                              ; preds = %952, %935
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  br label %970

970:                                              ; preds = %969
  br label %971

971:                                              ; preds = %970
  call void @exit(i32 noundef 1) #9
  unreachable

972:                                              ; No predecessors!
  br label %973

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973, %915
  br label %975

975:                                              ; preds = %974
  br label %976

976:                                              ; preds = %975
  br label %977

977:                                              ; preds = %976
  %978 = load i32, ptr @test_count, align 4, !tbaa !5
  %979 = add nsw i32 %978, 1
  store i32 %979, ptr @test_count, align 4, !tbaa !5
  %980 = load ptr, ptr %16, align 8, !tbaa !9
  %981 = call i32 @s2n_extension_list_recv(i32 noundef 2, ptr noundef %980, ptr noundef %18)
  %982 = icmp eq i32 %981, -1
  br i1 %982, label %983, label %1036

983:                                              ; preds = %977
  br label %984

984:                                              ; preds = %983
  br label %985

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

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

997:                                              ; preds = %992
  %998 = load i32, ptr %25, align 4, !tbaa !5
  %999 = call ptr @__errno_location() #8
  store i32 %998, ptr %999, align 4, !tbaa !5
  %1000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1001 = load i32, ptr @test_count, align 4, !tbaa !5
  %1002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1003 = load i32, ptr %1002, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef @.str.4)
  %1005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1006 = load i32, ptr %1005, align 4, !tbaa !5
  %1007 = call ptr @s2n_strerror_debug(i32 noundef %1006, ptr noundef @.str.4)
  %1008 = call ptr @__errno_location() #8
  %1009 = load i32, ptr %1008, align 4, !tbaa !5
  %1010 = call ptr @strerror(i32 noundef %1009) #7
  %1011 = call ptr @__errno_location() #8
  %1012 = load i32, ptr %1011, align 4, !tbaa !5
  %1013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1000, ptr noundef @.str.2, i32 noundef %1001, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1004, ptr noundef %1007, ptr noundef %1010, i32 noundef %1012) #7
  br label %1031

1014:                                             ; preds = %992, %985
  %1015 = load i32, ptr %25, align 4, !tbaa !5
  %1016 = call ptr @__errno_location() #8
  store i32 %1015, ptr %1016, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = load i32, ptr @test_count, align 4, !tbaa !5
  %1019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1020 = load i32, ptr %1019, align 4, !tbaa !5
  %1021 = call ptr @s2n_strerror(i32 noundef %1020, ptr noundef @.str.4)
  %1022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1023 = load i32, ptr %1022, align 4, !tbaa !5
  %1024 = call ptr @s2n_strerror_debug(i32 noundef %1023, ptr noundef @.str.4)
  %1025 = call ptr @__errno_location() #8
  %1026 = load i32, ptr %1025, align 4, !tbaa !5
  %1027 = call ptr @strerror(i32 noundef %1026) #7
  %1028 = call ptr @__errno_location() #8
  %1029 = load i32, ptr %1028, align 4, !tbaa !5
  %1030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1017, ptr noundef @.str.5, i32 noundef %1018, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 62, ptr noundef %1021, ptr noundef %1024, ptr noundef %1027, i32 noundef %1029) #7
  br label %1031

1031:                                             ; preds = %1014, %997
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  br label %1032

1032:                                             ; preds = %1031
  br label %1033

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

1034:                                             ; No predecessors!
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035, %977
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  br label %1039

1039:                                             ; preds = %1038
  %1040 = load i32, ptr @test_count, align 4, !tbaa !5
  %1041 = add nsw i32 %1040, 1
  store i32 %1041, ptr @test_count, align 4, !tbaa !5
  %1042 = load ptr, ptr %16, align 8, !tbaa !9
  %1043 = load i32, ptr %1042, align 8
  %1044 = lshr i32 %1043, 13
  %1045 = and i32 %1044, 1
  %1046 = icmp ne i32 %1045, 0
  br i1 %1046, label %1100, label %1047

1047:                                             ; preds = %1039
  br label %1048

1048:                                             ; preds = %1047
  br label %1049

1049:                                             ; preds = %1048
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #7
  %1050 = call ptr @__errno_location() #8
  %1051 = load i32, ptr %1050, align 4, !tbaa !5
  store i32 %1051, ptr %26, align 4, !tbaa !5
  %1052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1053 = call i32 @s2n_print_stacktrace(ptr noundef %1052)
  %1054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1055 = trunc i8 %1054 to i1
  br i1 %1055, label %1056, label %1078

1056:                                             ; preds = %1049
  %1057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1058 = call i32 @fileno(ptr noundef %1057) #7
  %1059 = call i32 @isatty(i32 noundef %1058) #7
  %1060 = icmp ne i32 %1059, 0
  br i1 %1060, label %1061, label %1078

1061:                                             ; preds = %1056
  %1062 = load i32, ptr %26, align 4, !tbaa !5
  %1063 = call ptr @__errno_location() #8
  store i32 %1062, ptr %1063, align 4, !tbaa !5
  %1064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1065 = load i32, ptr @test_count, align 4, !tbaa !5
  %1066 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1067 = load i32, ptr %1066, align 4, !tbaa !5
  %1068 = call ptr @s2n_strerror(i32 noundef %1067, ptr noundef @.str.4)
  %1069 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1070 = load i32, ptr %1069, align 4, !tbaa !5
  %1071 = call ptr @s2n_strerror_debug(i32 noundef %1070, ptr noundef @.str.4)
  %1072 = call ptr @__errno_location() #8
  %1073 = load i32, ptr %1072, align 4, !tbaa !5
  %1074 = call ptr @strerror(i32 noundef %1073) #7
  %1075 = call ptr @__errno_location() #8
  %1076 = load i32, ptr %1075, align 4, !tbaa !5
  %1077 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1064, ptr noundef @.str.2, i32 noundef %1065, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1068, ptr noundef %1071, ptr noundef %1074, i32 noundef %1076) #7
  br label %1095

1078:                                             ; preds = %1056, %1049
  %1079 = load i32, ptr %26, align 4, !tbaa !5
  %1080 = call ptr @__errno_location() #8
  store i32 %1079, ptr %1080, align 4, !tbaa !5
  %1081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1082 = load i32, ptr @test_count, align 4, !tbaa !5
  %1083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1084 = load i32, ptr %1083, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror(i32 noundef %1084, ptr noundef @.str.4)
  %1086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1087 = load i32, ptr %1086, align 4, !tbaa !5
  %1088 = call ptr @s2n_strerror_debug(i32 noundef %1087, ptr noundef @.str.4)
  %1089 = call ptr @__errno_location() #8
  %1090 = load i32, ptr %1089, align 4, !tbaa !5
  %1091 = call ptr @strerror(i32 noundef %1090) #7
  %1092 = call ptr @__errno_location() #8
  %1093 = load i32, ptr %1092, align 4, !tbaa !5
  %1094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1081, ptr noundef @.str.5, i32 noundef %1082, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 63, ptr noundef %1085, ptr noundef %1088, ptr noundef %1091, i32 noundef %1093) #7
  br label %1095

1095:                                             ; preds = %1078, %1061
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #7
  br label %1096

1096:                                             ; preds = %1095
  br label %1097

1097:                                             ; preds = %1096
  call void @exit(i32 noundef 1) #9
  unreachable

1098:                                             ; No predecessors!
  br label %1099

1099:                                             ; preds = %1098
  br label %1100

1100:                                             ; preds = %1099, %1039
  br label %1101

1101:                                             ; preds = %1100
  br label %1102

1102:                                             ; preds = %1101
  br label %1103

1103:                                             ; preds = %1102
  %1104 = load i32, ptr @test_count, align 4, !tbaa !5
  %1105 = add nsw i32 %1104, 1
  store i32 %1105, ptr @test_count, align 4, !tbaa !5
  %1106 = load ptr, ptr %14, align 8, !tbaa !9
  %1107 = call i32 @s2n_connection_free(ptr noundef %1106)
  %1108 = icmp eq i32 %1107, -1
  br i1 %1108, label %1109, label %1162

1109:                                             ; preds = %1103
  br label %1110

1110:                                             ; preds = %1109
  br label %1111

1111:                                             ; preds = %1110
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #7
  %1112 = call ptr @__errno_location() #8
  %1113 = load i32, ptr %1112, align 4, !tbaa !5
  store i32 %1113, ptr %27, align 4, !tbaa !5
  %1114 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1115 = call i32 @s2n_print_stacktrace(ptr noundef %1114)
  %1116 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1117 = trunc i8 %1116 to i1
  br i1 %1117, label %1118, label %1140

1118:                                             ; preds = %1111
  %1119 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1120 = call i32 @fileno(ptr noundef %1119) #7
  %1121 = call i32 @isatty(i32 noundef %1120) #7
  %1122 = icmp ne i32 %1121, 0
  br i1 %1122, label %1123, label %1140

1123:                                             ; preds = %1118
  %1124 = load i32, ptr %27, align 4, !tbaa !5
  %1125 = call ptr @__errno_location() #8
  store i32 %1124, ptr %1125, align 4, !tbaa !5
  %1126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1127 = load i32, ptr @test_count, align 4, !tbaa !5
  %1128 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1129 = load i32, ptr %1128, align 4, !tbaa !5
  %1130 = call ptr @s2n_strerror(i32 noundef %1129, ptr noundef @.str.4)
  %1131 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1132 = load i32, ptr %1131, align 4, !tbaa !5
  %1133 = call ptr @s2n_strerror_debug(i32 noundef %1132, ptr noundef @.str.4)
  %1134 = call ptr @__errno_location() #8
  %1135 = load i32, ptr %1134, align 4, !tbaa !5
  %1136 = call ptr @strerror(i32 noundef %1135) #7
  %1137 = call ptr @__errno_location() #8
  %1138 = load i32, ptr %1137, align 4, !tbaa !5
  %1139 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1126, ptr noundef @.str.2, i32 noundef %1127, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1130, ptr noundef %1133, ptr noundef %1136, i32 noundef %1138) #7
  br label %1157

1140:                                             ; preds = %1118, %1111
  %1141 = load i32, ptr %27, align 4, !tbaa !5
  %1142 = call ptr @__errno_location() #8
  store i32 %1141, ptr %1142, align 4, !tbaa !5
  %1143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1144 = load i32, ptr @test_count, align 4, !tbaa !5
  %1145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1146 = load i32, ptr %1145, align 4, !tbaa !5
  %1147 = call ptr @s2n_strerror(i32 noundef %1146, ptr noundef @.str.4)
  %1148 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1149 = load i32, ptr %1148, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror_debug(i32 noundef %1149, ptr noundef @.str.4)
  %1151 = call ptr @__errno_location() #8
  %1152 = load i32, ptr %1151, align 4, !tbaa !5
  %1153 = call ptr @strerror(i32 noundef %1152) #7
  %1154 = call ptr @__errno_location() #8
  %1155 = load i32, ptr %1154, align 4, !tbaa !5
  %1156 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1143, ptr noundef @.str.5, i32 noundef %1144, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 65, ptr noundef %1147, ptr noundef %1150, ptr noundef %1153, i32 noundef %1155) #7
  br label %1157

1157:                                             ; preds = %1140, %1123
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #7
  br label %1158

1158:                                             ; preds = %1157
  br label %1159

1159:                                             ; preds = %1158
  call void @exit(i32 noundef 1) #9
  unreachable

1160:                                             ; No predecessors!
  br label %1161

1161:                                             ; preds = %1160
  br label %1162

1162:                                             ; preds = %1161, %1103
  br label %1163

1163:                                             ; preds = %1162
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

1165:                                             ; preds = %1164
  %1166 = load i32, ptr @test_count, align 4, !tbaa !5
  %1167 = add nsw i32 %1166, 1
  store i32 %1167, ptr @test_count, align 4, !tbaa !5
  %1168 = load ptr, ptr %16, align 8, !tbaa !9
  %1169 = call i32 @s2n_connection_free(ptr noundef %1168)
  %1170 = icmp eq i32 %1169, -1
  br i1 %1170, label %1171, label %1224

1171:                                             ; preds = %1165
  br label %1172

1172:                                             ; preds = %1171
  br label %1173

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

1180:                                             ; preds = %1173
  %1181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1182 = call i32 @fileno(ptr noundef %1181) #7
  %1183 = call i32 @isatty(i32 noundef %1182) #7
  %1184 = icmp ne i32 %1183, 0
  br i1 %1184, label %1185, label %1202

1185:                                             ; preds = %1180
  %1186 = load i32, ptr %28, align 4, !tbaa !5
  %1187 = call ptr @__errno_location() #8
  store i32 %1186, ptr %1187, align 4, !tbaa !5
  %1188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1189 = load i32, ptr @test_count, align 4, !tbaa !5
  %1190 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1191 = load i32, ptr %1190, align 4, !tbaa !5
  %1192 = call ptr @s2n_strerror(i32 noundef %1191, ptr noundef @.str.4)
  %1193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1194 = load i32, ptr %1193, align 4, !tbaa !5
  %1195 = call ptr @s2n_strerror_debug(i32 noundef %1194, ptr noundef @.str.4)
  %1196 = call ptr @__errno_location() #8
  %1197 = load i32, ptr %1196, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #7
  %1199 = call ptr @__errno_location() #8
  %1200 = load i32, ptr %1199, align 4, !tbaa !5
  %1201 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1188, ptr noundef @.str.2, i32 noundef %1189, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1192, ptr noundef %1195, ptr noundef %1198, i32 noundef %1200) #7
  br label %1219

1202:                                             ; preds = %1180, %1173
  %1203 = load i32, ptr %28, align 4, !tbaa !5
  %1204 = call ptr @__errno_location() #8
  store i32 %1203, ptr %1204, align 4, !tbaa !5
  %1205 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1206 = load i32, ptr @test_count, align 4, !tbaa !5
  %1207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1208 = load i32, ptr %1207, align 4, !tbaa !5
  %1209 = call ptr @s2n_strerror(i32 noundef %1208, ptr noundef @.str.4)
  %1210 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1211 = load i32, ptr %1210, align 4, !tbaa !5
  %1212 = call ptr @s2n_strerror_debug(i32 noundef %1211, ptr noundef @.str.4)
  %1213 = call ptr @__errno_location() #8
  %1214 = load i32, ptr %1213, align 4, !tbaa !5
  %1215 = call ptr @strerror(i32 noundef %1214) #7
  %1216 = call ptr @__errno_location() #8
  %1217 = load i32, ptr %1216, align 4, !tbaa !5
  %1218 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1205, ptr noundef @.str.5, i32 noundef %1206, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 66, ptr noundef %1209, ptr noundef %1212, ptr noundef %1215, i32 noundef %1217) #7
  br label %1219

1219:                                             ; preds = %1202, %1185
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #7
  br label %1220

1220:                                             ; preds = %1219
  br label %1221

1221:                                             ; preds = %1220
  call void @exit(i32 noundef 1) #9
  unreachable

1222:                                             ; No predecessors!
  br label %1223

1223:                                             ; preds = %1222
  br label %1224

1224:                                             ; preds = %1223, %1165
  br label %1225

1225:                                             ; preds = %1224
  br label %1226

1226:                                             ; preds = %1225
  %1227 = call i32 @s2n_stuffer_free(ptr noundef %18)
  call void @llvm.lifetime.end.p0(i64 40, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #7
  %1228 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1228, ptr %29, align 8, !tbaa !9
  br label %1229

1229:                                             ; preds = %1226
  %1230 = load i32, ptr @test_count, align 4, !tbaa !5
  %1231 = add nsw i32 %1230, 1
  store i32 %1231, ptr @test_count, align 4, !tbaa !5
  %1232 = load ptr, ptr %29, align 8, !tbaa !9
  %1233 = icmp eq ptr %1232, null
  br i1 %1233, label %1234, label %1287

1234:                                             ; preds = %1229
  br label %1235

1235:                                             ; preds = %1234
  br label %1236

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

1243:                                             ; preds = %1236
  %1244 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1245 = call i32 @fileno(ptr noundef %1244) #7
  %1246 = call i32 @isatty(i32 noundef %1245) #7
  %1247 = icmp ne i32 %1246, 0
  br i1 %1247, label %1248, label %1265

1248:                                             ; preds = %1243
  %1249 = load i32, ptr %30, align 4, !tbaa !5
  %1250 = call ptr @__errno_location() #8
  store i32 %1249, ptr %1250, align 4, !tbaa !5
  %1251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1252 = load i32, ptr @test_count, align 4, !tbaa !5
  %1253 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1254 = load i32, ptr %1253, align 4, !tbaa !5
  %1255 = call ptr @s2n_strerror(i32 noundef %1254, ptr noundef @.str.4)
  %1256 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1257 = load i32, ptr %1256, align 4, !tbaa !5
  %1258 = call ptr @s2n_strerror_debug(i32 noundef %1257, ptr noundef @.str.4)
  %1259 = call ptr @__errno_location() #8
  %1260 = load i32, ptr %1259, align 4, !tbaa !5
  %1261 = call ptr @strerror(i32 noundef %1260) #7
  %1262 = call ptr @__errno_location() #8
  %1263 = load i32, ptr %1262, align 4, !tbaa !5
  %1264 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1251, ptr noundef @.str.2, i32 noundef %1252, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1255, ptr noundef %1258, ptr noundef %1261, i32 noundef %1263) #7
  br label %1282

1265:                                             ; preds = %1243, %1236
  %1266 = load i32, ptr %30, align 4, !tbaa !5
  %1267 = call ptr @__errno_location() #8
  store i32 %1266, ptr %1267, align 4, !tbaa !5
  %1268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1269 = load i32, ptr @test_count, align 4, !tbaa !5
  %1270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1271 = load i32, ptr %1270, align 4, !tbaa !5
  %1272 = call ptr @s2n_strerror(i32 noundef %1271, ptr noundef @.str.4)
  %1273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1274 = load i32, ptr %1273, align 4, !tbaa !5
  %1275 = call ptr @s2n_strerror_debug(i32 noundef %1274, ptr noundef @.str.4)
  %1276 = call ptr @__errno_location() #8
  %1277 = load i32, ptr %1276, align 4, !tbaa !5
  %1278 = call ptr @strerror(i32 noundef %1277) #7
  %1279 = call ptr @__errno_location() #8
  %1280 = load i32, ptr %1279, align 4, !tbaa !5
  %1281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1268, ptr noundef @.str.5, i32 noundef %1269, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 72, ptr noundef %1272, ptr noundef %1275, ptr noundef %1278, i32 noundef %1280) #7
  br label %1282

1282:                                             ; preds = %1265, %1248
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #7
  br label %1283

1283:                                             ; preds = %1282
  br label %1284

1284:                                             ; preds = %1283
  call void @exit(i32 noundef 1) #9
  unreachable

1285:                                             ; No predecessors!
  br label %1286

1286:                                             ; preds = %1285
  br label %1287

1287:                                             ; preds = %1286, %1229
  br label %1288

1288:                                             ; preds = %1287
  br label %1289

1289:                                             ; preds = %1288
  %1290 = load ptr, ptr %29, align 8, !tbaa !9
  %1291 = load i32, ptr %1290, align 8
  %1292 = and i32 %1291, -8193
  %1293 = or i32 %1292, 8192
  store i32 %1293, ptr %1290, align 8
  br label %1294

1294:                                             ; preds = %1289
  br label %1295

1295:                                             ; preds = %1294
  br label %1296

1296:                                             ; preds = %1295
  %1297 = load i32, ptr @test_count, align 4, !tbaa !5
  %1298 = add nsw i32 %1297, 1
  store i32 %1298, ptr @test_count, align 4, !tbaa !5
  %1299 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ems_extension, i32 0, i32 6), align 8, !tbaa !44
  %1300 = load ptr, ptr %29, align 8, !tbaa !9
  %1301 = call i32 %1299(ptr noundef %1300)
  %1302 = icmp eq i32 %1301, -1
  br i1 %1302, label %1356, label %1303

1303:                                             ; preds = %1296
  br label %1304

1304:                                             ; preds = %1303
  br label %1305

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

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

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

1334:                                             ; preds = %1312, %1305
  %1335 = load i32, ptr %31, align 4, !tbaa !5
  %1336 = call ptr @__errno_location() #8
  store i32 %1335, ptr %1336, align 4, !tbaa !5
  %1337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1338 = load i32, ptr @test_count, align 4, !tbaa !5
  %1339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1340 = load i32, ptr %1339, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef @.str.4)
  %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_debug(i32 noundef %1343, ptr noundef @.str.4)
  %1345 = call ptr @__errno_location() #8
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call ptr @strerror(i32 noundef %1346) #7
  %1348 = call ptr @__errno_location() #8
  %1349 = load i32, ptr %1348, align 4, !tbaa !5
  %1350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1337, ptr noundef @.str.5, i32 noundef %1338, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1341, ptr noundef %1344, ptr noundef %1347, i32 noundef %1349) #7
  br label %1351

1351:                                             ; preds = %1334, %1317
  call void @llvm.lifetime.end.p0(i64 4, ptr %31) #7
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

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

1354:                                             ; No predecessors!
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355, %1296
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  br label %1359

1359:                                             ; preds = %1358
  %1360 = load i32, ptr @test_count, align 4, !tbaa !5
  %1361 = add nsw i32 %1360, 1
  store i32 %1361, ptr @test_count, align 4, !tbaa !5
  %1362 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1363 = load i32, ptr %1362, align 4, !tbaa !5
  %1364 = icmp eq i32 %1363, 335544393
  br i1 %1364, label %1418, label %1365

1365:                                             ; preds = %1359
  br label %1366

1366:                                             ; preds = %1365
  br label %1367

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

1374:                                             ; preds = %1367
  %1375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1376 = call i32 @fileno(ptr noundef %1375) #7
  %1377 = call i32 @isatty(i32 noundef %1376) #7
  %1378 = icmp ne i32 %1377, 0
  br i1 %1378, label %1379, label %1396

1379:                                             ; preds = %1374
  %1380 = load i32, ptr %32, align 4, !tbaa !5
  %1381 = call ptr @__errno_location() #8
  store i32 %1380, ptr %1381, align 4, !tbaa !5
  %1382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1383 = load i32, ptr @test_count, align 4, !tbaa !5
  %1384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1385 = load i32, ptr %1384, align 4, !tbaa !5
  %1386 = call ptr @s2n_strerror(i32 noundef %1385, ptr noundef @.str.4)
  %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_debug(i32 noundef %1388, ptr noundef @.str.4)
  %1390 = call ptr @__errno_location() #8
  %1391 = load i32, ptr %1390, align 4, !tbaa !5
  %1392 = call ptr @strerror(i32 noundef %1391) #7
  %1393 = call ptr @__errno_location() #8
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1382, ptr noundef @.str.2, i32 noundef %1383, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1386, ptr noundef %1389, ptr noundef %1392, i32 noundef %1394) #7
  br label %1413

1396:                                             ; preds = %1374, %1367
  %1397 = load i32, ptr %32, align 4, !tbaa !5
  %1398 = call ptr @__errno_location() #8
  store i32 %1397, ptr %1398, align 4, !tbaa !5
  %1399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1400 = load i32, ptr @test_count, align 4, !tbaa !5
  %1401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1402 = load i32, ptr %1401, align 4, !tbaa !5
  %1403 = call ptr @s2n_strerror(i32 noundef %1402, ptr noundef @.str.4)
  %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_debug(i32 noundef %1405, ptr noundef @.str.4)
  %1407 = call ptr @__errno_location() #8
  %1408 = load i32, ptr %1407, align 4, !tbaa !5
  %1409 = call ptr @strerror(i32 noundef %1408) #7
  %1410 = call ptr @__errno_location() #8
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1399, ptr noundef @.str.5, i32 noundef %1400, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1403, ptr noundef %1406, ptr noundef %1409, i32 noundef %1411) #7
  br label %1413

1413:                                             ; preds = %1396, %1379
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #7
  br label %1414

1414:                                             ; preds = %1413
  br label %1415

1415:                                             ; preds = %1414
  call void @exit(i32 noundef 1) #9
  unreachable

1416:                                             ; No predecessors!
  br label %1417

1417:                                             ; preds = %1416
  br label %1418

1418:                                             ; preds = %1417, %1359
  br label %1419

1419:                                             ; preds = %1418
  br label %1420

1420:                                             ; preds = %1419
  br label %1421

1421:                                             ; preds = %1420
  %1422 = load i32, ptr @test_count, align 4, !tbaa !5
  %1423 = add nsw i32 %1422, 1
  store i32 %1423, ptr @test_count, align 4, !tbaa !5
  %1424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1425 = load i32, ptr %1424, align 4, !tbaa !5
  %1426 = call ptr @s2n_strerror_debug(i32 noundef %1425, ptr noundef @.str.4)
  %1427 = icmp eq ptr %1426, null
  br i1 %1427, label %1428, label %1481

1428:                                             ; preds = %1421
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

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

1437:                                             ; preds = %1430
  %1438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1439 = call i32 @fileno(ptr noundef %1438) #7
  %1440 = call i32 @isatty(i32 noundef %1439) #7
  %1441 = icmp ne i32 %1440, 0
  br i1 %1441, label %1442, label %1459

1442:                                             ; preds = %1437
  %1443 = load i32, ptr %33, align 4, !tbaa !5
  %1444 = call ptr @__errno_location() #8
  store i32 %1443, ptr %1444, align 4, !tbaa !5
  %1445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1446 = load i32, ptr @test_count, align 4, !tbaa !5
  %1447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1448 = load i32, ptr %1447, align 4, !tbaa !5
  %1449 = call ptr @s2n_strerror(i32 noundef %1448, ptr noundef @.str.4)
  %1450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1451 = load i32, ptr %1450, align 4, !tbaa !5
  %1452 = call ptr @s2n_strerror_debug(i32 noundef %1451, ptr noundef @.str.4)
  %1453 = call ptr @__errno_location() #8
  %1454 = load i32, ptr %1453, align 4, !tbaa !5
  %1455 = call ptr @strerror(i32 noundef %1454) #7
  %1456 = call ptr @__errno_location() #8
  %1457 = load i32, ptr %1456, align 4, !tbaa !5
  %1458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1445, ptr noundef @.str.2, i32 noundef %1446, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1449, ptr noundef %1452, ptr noundef %1455, i32 noundef %1457) #7
  br label %1476

1459:                                             ; preds = %1437, %1430
  %1460 = load i32, ptr %33, align 4, !tbaa !5
  %1461 = call ptr @__errno_location() #8
  store i32 %1460, ptr %1461, align 4, !tbaa !5
  %1462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1463 = load i32, ptr @test_count, align 4, !tbaa !5
  %1464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1465 = load i32, ptr %1464, align 4, !tbaa !5
  %1466 = call ptr @s2n_strerror(i32 noundef %1465, ptr noundef @.str.4)
  %1467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1468 = load i32, ptr %1467, align 4, !tbaa !5
  %1469 = call ptr @s2n_strerror_debug(i32 noundef %1468, ptr noundef @.str.4)
  %1470 = call ptr @__errno_location() #8
  %1471 = load i32, ptr %1470, align 4, !tbaa !5
  %1472 = call ptr @strerror(i32 noundef %1471) #7
  %1473 = call ptr @__errno_location() #8
  %1474 = load i32, ptr %1473, align 4, !tbaa !5
  %1475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1462, ptr noundef @.str.5, i32 noundef %1463, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 82, ptr noundef %1466, ptr noundef %1469, ptr noundef %1472, i32 noundef %1474) #7
  br label %1476

1476:                                             ; preds = %1459, %1442
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #7
  br label %1477

1477:                                             ; preds = %1476
  br label %1478

1478:                                             ; preds = %1477
  call void @exit(i32 noundef 1) #9
  unreachable

1479:                                             ; No predecessors!
  br label %1480

1480:                                             ; preds = %1479
  br label %1481

1481:                                             ; preds = %1480, %1421
  br label %1482

1482:                                             ; preds = %1481
  br label %1483

1483:                                             ; preds = %1482
  br label %1484

1484:                                             ; preds = %1483
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

1486:                                             ; preds = %1485
  %1487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1487, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1488 = call ptr @__errno_location() #8
  store i32 0, ptr %1488, align 4, !tbaa !5
  br label %1489

1489:                                             ; preds = %1486
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  %1493 = load ptr, ptr %29, align 8, !tbaa !9
  %1494 = load i32, ptr %1493, align 8
  %1495 = and i32 %1494, -8193
  %1496 = or i32 %1495, 0
  store i32 %1496, ptr %1493, align 8
  br label %1497

1497:                                             ; preds = %1492
  %1498 = load i32, ptr @test_count, align 4, !tbaa !5
  %1499 = add nsw i32 %1498, 1
  store i32 %1499, ptr @test_count, align 4, !tbaa !5
  %1500 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_server_ems_extension, i32 0, i32 6), align 8, !tbaa !44
  %1501 = load ptr, ptr %29, align 8, !tbaa !9
  %1502 = call i32 %1500(ptr noundef %1501)
  %1503 = icmp eq i32 %1502, -1
  br i1 %1503, label %1504, label %1557

1504:                                             ; preds = %1497
  br label %1505

1505:                                             ; preds = %1504
  br label %1506

1506:                                             ; preds = %1505
  call void @llvm.lifetime.start.p0(i64 4, ptr %34) #7
  %1507 = call ptr @__errno_location() #8
  %1508 = load i32, ptr %1507, align 4, !tbaa !5
  store i32 %1508, ptr %34, align 4, !tbaa !5
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @s2n_print_stacktrace(ptr noundef %1509)
  %1511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1512 = trunc i8 %1511 to i1
  br i1 %1512, label %1513, label %1535

1513:                                             ; preds = %1506
  %1514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1515 = call i32 @fileno(ptr noundef %1514) #7
  %1516 = call i32 @isatty(i32 noundef %1515) #7
  %1517 = icmp ne i32 %1516, 0
  br i1 %1517, label %1518, label %1535

1518:                                             ; preds = %1513
  %1519 = load i32, ptr %34, align 4, !tbaa !5
  %1520 = call ptr @__errno_location() #8
  store i32 %1519, ptr %1520, align 4, !tbaa !5
  %1521 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1522 = load i32, ptr @test_count, align 4, !tbaa !5
  %1523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1524 = load i32, ptr %1523, align 4, !tbaa !5
  %1525 = call ptr @s2n_strerror(i32 noundef %1524, ptr noundef @.str.4)
  %1526 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1527 = load i32, ptr %1526, align 4, !tbaa !5
  %1528 = call ptr @s2n_strerror_debug(i32 noundef %1527, ptr noundef @.str.4)
  %1529 = call ptr @__errno_location() #8
  %1530 = load i32, ptr %1529, align 4, !tbaa !5
  %1531 = call ptr @strerror(i32 noundef %1530) #7
  %1532 = call ptr @__errno_location() #8
  %1533 = load i32, ptr %1532, align 4, !tbaa !5
  %1534 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1521, ptr noundef @.str.2, i32 noundef %1522, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1525, ptr noundef %1528, ptr noundef %1531, i32 noundef %1533) #7
  br label %1552

1535:                                             ; preds = %1513, %1506
  %1536 = load i32, ptr %34, align 4, !tbaa !5
  %1537 = call ptr @__errno_location() #8
  store i32 %1536, ptr %1537, align 4, !tbaa !5
  %1538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1539 = load i32, ptr @test_count, align 4, !tbaa !5
  %1540 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1541 = load i32, ptr %1540, align 4, !tbaa !5
  %1542 = call ptr @s2n_strerror(i32 noundef %1541, ptr noundef @.str.4)
  %1543 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1544 = load i32, ptr %1543, align 4, !tbaa !5
  %1545 = call ptr @s2n_strerror_debug(i32 noundef %1544, ptr noundef @.str.4)
  %1546 = call ptr @__errno_location() #8
  %1547 = load i32, ptr %1546, align 4, !tbaa !5
  %1548 = call ptr @strerror(i32 noundef %1547) #7
  %1549 = call ptr @__errno_location() #8
  %1550 = load i32, ptr %1549, align 4, !tbaa !5
  %1551 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1538, ptr noundef @.str.5, i32 noundef %1539, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 85, ptr noundef %1542, ptr noundef %1545, ptr noundef %1548, i32 noundef %1550) #7
  br label %1552

1552:                                             ; preds = %1535, %1518
  call void @llvm.lifetime.end.p0(i64 4, ptr %34) #7
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  call void @exit(i32 noundef 1) #9
  unreachable

1555:                                             ; No predecessors!
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556, %1497
  br label %1558

1558:                                             ; preds = %1557
  br label %1559

1559:                                             ; preds = %1558
  br label %1560

1560:                                             ; preds = %1559
  %1561 = load i32, ptr @test_count, align 4, !tbaa !5
  %1562 = add nsw i32 %1561, 1
  store i32 %1562, ptr @test_count, align 4, !tbaa !5
  %1563 = load ptr, ptr %29, align 8, !tbaa !9
  %1564 = call i32 @s2n_connection_free(ptr noundef %1563)
  %1565 = icmp eq i32 %1564, -1
  br i1 %1565, label %1566, label %1619

1566:                                             ; preds = %1560
  br label %1567

1567:                                             ; preds = %1566
  br label %1568

1568:                                             ; preds = %1567
  call void @llvm.lifetime.start.p0(i64 4, ptr %35) #7
  %1569 = call ptr @__errno_location() #8
  %1570 = load i32, ptr %1569, align 4, !tbaa !5
  store i32 %1570, ptr %35, align 4, !tbaa !5
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @s2n_print_stacktrace(ptr noundef %1571)
  %1573 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1574 = trunc i8 %1573 to i1
  br i1 %1574, label %1575, label %1597

1575:                                             ; preds = %1568
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = call i32 @fileno(ptr noundef %1576) #7
  %1578 = call i32 @isatty(i32 noundef %1577) #7
  %1579 = icmp ne i32 %1578, 0
  br i1 %1579, label %1580, label %1597

1580:                                             ; preds = %1575
  %1581 = load i32, ptr %35, align 4, !tbaa !5
  %1582 = call ptr @__errno_location() #8
  store i32 %1581, ptr %1582, align 4, !tbaa !5
  %1583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1584 = load i32, ptr @test_count, align 4, !tbaa !5
  %1585 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1586 = load i32, ptr %1585, align 4, !tbaa !5
  %1587 = call ptr @s2n_strerror(i32 noundef %1586, ptr noundef @.str.4)
  %1588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1589 = load i32, ptr %1588, align 4, !tbaa !5
  %1590 = call ptr @s2n_strerror_debug(i32 noundef %1589, ptr noundef @.str.4)
  %1591 = call ptr @__errno_location() #8
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @strerror(i32 noundef %1592) #7
  %1594 = call ptr @__errno_location() #8
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1583, ptr noundef @.str.2, i32 noundef %1584, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1587, ptr noundef %1590, ptr noundef %1593, i32 noundef %1595) #7
  br label %1614

1597:                                             ; preds = %1575, %1568
  %1598 = load i32, ptr %35, align 4, !tbaa !5
  %1599 = call ptr @__errno_location() #8
  store i32 %1598, ptr %1599, align 4, !tbaa !5
  %1600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1601 = load i32, ptr @test_count, align 4, !tbaa !5
  %1602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1603 = load i32, ptr %1602, align 4, !tbaa !5
  %1604 = call ptr @s2n_strerror(i32 noundef %1603, ptr noundef @.str.4)
  %1605 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1606 = load i32, ptr %1605, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror_debug(i32 noundef %1606, ptr noundef @.str.4)
  %1608 = call ptr @__errno_location() #8
  %1609 = load i32, ptr %1608, align 4, !tbaa !5
  %1610 = call ptr @strerror(i32 noundef %1609) #7
  %1611 = call ptr @__errno_location() #8
  %1612 = load i32, ptr %1611, align 4, !tbaa !5
  %1613 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1600, ptr noundef @.str.5, i32 noundef %1601, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 87, ptr noundef %1604, ptr noundef %1607, ptr noundef %1610, i32 noundef %1612) #7
  br label %1614

1614:                                             ; preds = %1597, %1580
  call void @llvm.lifetime.end.p0(i64 4, ptr %35) #7
  br label %1615

1615:                                             ; preds = %1614
  br label %1616

1616:                                             ; preds = %1615
  call void @exit(i32 noundef 1) #9
  unreachable

1617:                                             ; No predecessors!
  br label %1618

1618:                                             ; preds = %1617
  br label %1619

1619:                                             ; preds = %1618, %1560
  br label %1620

1620:                                             ; preds = %1619
  br label %1621

1621:                                             ; preds = %1620
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #7
  %1622 = call ptr @s2n_connection_new(i32 noundef 1)
  store ptr %1622, ptr %36, align 8, !tbaa !9
  br label %1623

1623:                                             ; preds = %1621
  %1624 = load i32, ptr @test_count, align 4, !tbaa !5
  %1625 = add nsw i32 %1624, 1
  store i32 %1625, ptr @test_count, align 4, !tbaa !5
  %1626 = load ptr, ptr %36, align 8, !tbaa !9
  %1627 = icmp eq ptr %1626, null
  br i1 %1627, label %1628, label %1681

1628:                                             ; preds = %1623
  br label %1629

1629:                                             ; preds = %1628
  br label %1630

1630:                                             ; preds = %1629
  call void @llvm.lifetime.start.p0(i64 4, ptr %37) #7
  %1631 = call ptr @__errno_location() #8
  %1632 = load i32, ptr %1631, align 4, !tbaa !5
  store i32 %1632, ptr %37, align 4, !tbaa !5
  %1633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1634 = call i32 @s2n_print_stacktrace(ptr noundef %1633)
  %1635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1636 = trunc i8 %1635 to i1
  br i1 %1636, label %1637, label %1659

1637:                                             ; preds = %1630
  %1638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1639 = call i32 @fileno(ptr noundef %1638) #7
  %1640 = call i32 @isatty(i32 noundef %1639) #7
  %1641 = icmp ne i32 %1640, 0
  br i1 %1641, label %1642, label %1659

1642:                                             ; preds = %1637
  %1643 = load i32, ptr %37, align 4, !tbaa !5
  %1644 = call ptr @__errno_location() #8
  store i32 %1643, ptr %1644, align 4, !tbaa !5
  %1645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1646 = load i32, ptr @test_count, align 4, !tbaa !5
  %1647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1648 = load i32, ptr %1647, align 4, !tbaa !5
  %1649 = call ptr @s2n_strerror(i32 noundef %1648, ptr noundef @.str.4)
  %1650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1651 = load i32, ptr %1650, align 4, !tbaa !5
  %1652 = call ptr @s2n_strerror_debug(i32 noundef %1651, ptr noundef @.str.4)
  %1653 = call ptr @__errno_location() #8
  %1654 = load i32, ptr %1653, align 4, !tbaa !5
  %1655 = call ptr @strerror(i32 noundef %1654) #7
  %1656 = call ptr @__errno_location() #8
  %1657 = load i32, ptr %1656, align 4, !tbaa !5
  %1658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1645, ptr noundef @.str.2, i32 noundef %1646, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1649, ptr noundef %1652, ptr noundef %1655, i32 noundef %1657) #7
  br label %1676

1659:                                             ; preds = %1637, %1630
  %1660 = load i32, ptr %37, align 4, !tbaa !5
  %1661 = call ptr @__errno_location() #8
  store i32 %1660, ptr %1661, align 4, !tbaa !5
  %1662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1663 = load i32, ptr @test_count, align 4, !tbaa !5
  %1664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1665 = load i32, ptr %1664, align 4, !tbaa !5
  %1666 = call ptr @s2n_strerror(i32 noundef %1665, ptr noundef @.str.4)
  %1667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1668 = load i32, ptr %1667, align 4, !tbaa !5
  %1669 = call ptr @s2n_strerror_debug(i32 noundef %1668, ptr noundef @.str.4)
  %1670 = call ptr @__errno_location() #8
  %1671 = load i32, ptr %1670, align 4, !tbaa !5
  %1672 = call ptr @strerror(i32 noundef %1671) #7
  %1673 = call ptr @__errno_location() #8
  %1674 = load i32, ptr %1673, align 4, !tbaa !5
  %1675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1662, ptr noundef @.str.5, i32 noundef %1663, ptr noundef @.str.8, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1666, ptr noundef %1669, ptr noundef %1672, i32 noundef %1674) #7
  br label %1676

1676:                                             ; preds = %1659, %1642
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #7
  br label %1677

1677:                                             ; preds = %1676
  br label %1678

1678:                                             ; preds = %1677
  call void @exit(i32 noundef 1) #9
  unreachable

1679:                                             ; No predecessors!
  br label %1680

1680:                                             ; preds = %1679
  br label %1681

1681:                                             ; preds = %1680, %1623
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

1683:                                             ; preds = %1682
  br label %1684

1684:                                             ; preds = %1683
  %1685 = load i32, ptr @test_count, align 4, !tbaa !5
  %1686 = add nsw i32 %1685, 1
  store i32 %1686, ptr @test_count, align 4, !tbaa !5
  %1687 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_ems_extension, i32 0, i32 5), align 8, !tbaa !42
  %1688 = load ptr, ptr %36, align 8, !tbaa !9
  %1689 = call zeroext i1 %1687(ptr noundef %1688)
  br i1 %1689, label %1743, label %1690

1690:                                             ; preds = %1684
  br label %1691

1691:                                             ; preds = %1690
  br label %1692

1692:                                             ; preds = %1691
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #7
  %1693 = call ptr @__errno_location() #8
  %1694 = load i32, ptr %1693, align 4, !tbaa !5
  store i32 %1694, ptr %38, align 4, !tbaa !5
  %1695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1696 = call i32 @s2n_print_stacktrace(ptr noundef %1695)
  %1697 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1698 = trunc i8 %1697 to i1
  br i1 %1698, label %1699, label %1721

1699:                                             ; preds = %1692
  %1700 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1701 = call i32 @fileno(ptr noundef %1700) #7
  %1702 = call i32 @isatty(i32 noundef %1701) #7
  %1703 = icmp ne i32 %1702, 0
  br i1 %1703, label %1704, label %1721

1704:                                             ; preds = %1699
  %1705 = load i32, ptr %38, align 4, !tbaa !5
  %1706 = call ptr @__errno_location() #8
  store i32 %1705, ptr %1706, align 4, !tbaa !5
  %1707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1708 = load i32, ptr @test_count, align 4, !tbaa !5
  %1709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1710 = load i32, ptr %1709, align 4, !tbaa !5
  %1711 = call ptr @s2n_strerror(i32 noundef %1710, ptr noundef @.str.4)
  %1712 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1713 = load i32, ptr %1712, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef @.str.4)
  %1715 = call ptr @__errno_location() #8
  %1716 = load i32, ptr %1715, align 4, !tbaa !5
  %1717 = call ptr @strerror(i32 noundef %1716) #7
  %1718 = call ptr @__errno_location() #8
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1707, ptr noundef @.str.2, i32 noundef %1708, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1711, ptr noundef %1714, ptr noundef %1717, i32 noundef %1719) #7
  br label %1738

1721:                                             ; preds = %1699, %1692
  %1722 = load i32, ptr %38, align 4, !tbaa !5
  %1723 = call ptr @__errno_location() #8
  store i32 %1722, ptr %1723, align 4, !tbaa !5
  %1724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1725 = load i32, ptr @test_count, align 4, !tbaa !5
  %1726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1727 = load i32, ptr %1726, align 4, !tbaa !5
  %1728 = call ptr @s2n_strerror(i32 noundef %1727, ptr noundef @.str.4)
  %1729 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1730 = load i32, ptr %1729, align 4, !tbaa !5
  %1731 = call ptr @s2n_strerror_debug(i32 noundef %1730, ptr noundef @.str.4)
  %1732 = call ptr @__errno_location() #8
  %1733 = load i32, ptr %1732, align 4, !tbaa !5
  %1734 = call ptr @strerror(i32 noundef %1733) #7
  %1735 = call ptr @__errno_location() #8
  %1736 = load i32, ptr %1735, align 4, !tbaa !5
  %1737 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1724, ptr noundef @.str.5, i32 noundef %1725, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1728, ptr noundef %1731, ptr noundef %1734, i32 noundef %1736) #7
  br label %1738

1738:                                             ; preds = %1721, %1704
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #7
  br label %1739

1739:                                             ; preds = %1738
  br label %1740

1740:                                             ; preds = %1739
  call void @exit(i32 noundef 1) #9
  unreachable

1741:                                             ; No predecessors!
  br label %1742

1742:                                             ; preds = %1741
  br label %1743

1743:                                             ; preds = %1742, %1684
  br label %1744

1744:                                             ; preds = %1743
  br label %1745

1745:                                             ; preds = %1744
  %1746 = load ptr, ptr %36, align 8, !tbaa !9
  %1747 = load i32, ptr %1746, align 8
  %1748 = and i32 %1747, -16385
  %1749 = or i32 %1748, 16384
  store i32 %1749, ptr %1746, align 8
  %1750 = load ptr, ptr %36, align 8, !tbaa !9
  %1751 = load i32, ptr %1750, align 8
  %1752 = and i32 %1751, -8193
  %1753 = or i32 %1752, 8192
  store i32 %1753, ptr %1750, align 8
  br label %1754

1754:                                             ; preds = %1745
  %1755 = load i32, ptr @test_count, align 4, !tbaa !5
  %1756 = add nsw i32 %1755, 1
  store i32 %1756, ptr @test_count, align 4, !tbaa !5
  %1757 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_ems_extension, i32 0, i32 5), align 8, !tbaa !42
  %1758 = load ptr, ptr %36, align 8, !tbaa !9
  %1759 = call zeroext i1 %1757(ptr noundef %1758)
  br i1 %1759, label %1813, label %1760

1760:                                             ; preds = %1754
  br label %1761

1761:                                             ; preds = %1760
  br label %1762

1762:                                             ; preds = %1761
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #7
  %1763 = call ptr @__errno_location() #8
  %1764 = load i32, ptr %1763, align 4, !tbaa !5
  store i32 %1764, ptr %39, align 4, !tbaa !5
  %1765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1766 = call i32 @s2n_print_stacktrace(ptr noundef %1765)
  %1767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1768 = trunc i8 %1767 to i1
  br i1 %1768, label %1769, label %1791

1769:                                             ; preds = %1762
  %1770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1771 = call i32 @fileno(ptr noundef %1770) #7
  %1772 = call i32 @isatty(i32 noundef %1771) #7
  %1773 = icmp ne i32 %1772, 0
  br i1 %1773, label %1774, label %1791

1774:                                             ; preds = %1769
  %1775 = load i32, ptr %39, align 4, !tbaa !5
  %1776 = call ptr @__errno_location() #8
  store i32 %1775, ptr %1776, align 4, !tbaa !5
  %1777 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1778 = load i32, ptr @test_count, align 4, !tbaa !5
  %1779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1780 = load i32, ptr %1779, align 4, !tbaa !5
  %1781 = call ptr @s2n_strerror(i32 noundef %1780, ptr noundef @.str.4)
  %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_debug(i32 noundef %1783, ptr noundef @.str.4)
  %1785 = call ptr @__errno_location() #8
  %1786 = load i32, ptr %1785, align 4, !tbaa !5
  %1787 = call ptr @strerror(i32 noundef %1786) #7
  %1788 = call ptr @__errno_location() #8
  %1789 = load i32, ptr %1788, align 4, !tbaa !5
  %1790 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1777, ptr noundef @.str.2, i32 noundef %1778, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1781, ptr noundef %1784, ptr noundef %1787, i32 noundef %1789) #7
  br label %1808

1791:                                             ; preds = %1769, %1762
  %1792 = load i32, ptr %39, align 4, !tbaa !5
  %1793 = call ptr @__errno_location() #8
  store i32 %1792, ptr %1793, align 4, !tbaa !5
  %1794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1795 = load i32, ptr @test_count, align 4, !tbaa !5
  %1796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1797 = load i32, ptr %1796, align 4, !tbaa !5
  %1798 = call ptr @s2n_strerror(i32 noundef %1797, ptr noundef @.str.4)
  %1799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1800 = load i32, ptr %1799, align 4, !tbaa !5
  %1801 = call ptr @s2n_strerror_debug(i32 noundef %1800, ptr noundef @.str.4)
  %1802 = call ptr @__errno_location() #8
  %1803 = load i32, ptr %1802, align 4, !tbaa !5
  %1804 = call ptr @strerror(i32 noundef %1803) #7
  %1805 = call ptr @__errno_location() #8
  %1806 = load i32, ptr %1805, align 4, !tbaa !5
  %1807 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1794, ptr noundef @.str.5, i32 noundef %1795, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 102, ptr noundef %1798, ptr noundef %1801, ptr noundef %1804, i32 noundef %1806) #7
  br label %1808

1808:                                             ; preds = %1791, %1774
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #7
  br label %1809

1809:                                             ; preds = %1808
  br label %1810

1810:                                             ; preds = %1809
  call void @exit(i32 noundef 1) #9
  unreachable

1811:                                             ; No predecessors!
  br label %1812

1812:                                             ; preds = %1811
  br label %1813

1813:                                             ; preds = %1812, %1754
  br label %1814

1814:                                             ; preds = %1813
  br label %1815

1815:                                             ; preds = %1814
  %1816 = load ptr, ptr %36, align 8, !tbaa !9
  %1817 = load i32, ptr %1816, align 8
  %1818 = and i32 %1817, -8193
  %1819 = or i32 %1818, 0
  store i32 %1819, ptr %1816, align 8
  br label %1820

1820:                                             ; preds = %1815
  %1821 = load i32, ptr @test_count, align 4, !tbaa !5
  %1822 = add nsw i32 %1821, 1
  store i32 %1822, ptr @test_count, align 4, !tbaa !5
  %1823 = load ptr, ptr getelementptr inbounds (%struct.s2n_extension_type, ptr @s2n_client_ems_extension, i32 0, i32 5), align 8, !tbaa !42
  %1824 = load ptr, ptr %36, align 8, !tbaa !9
  %1825 = call zeroext i1 %1823(ptr noundef %1824)
  br i1 %1825, label %1826, label %1879

1826:                                             ; preds = %1820
  br label %1827

1827:                                             ; preds = %1826
  br label %1828

1828:                                             ; preds = %1827
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #7
  %1829 = call ptr @__errno_location() #8
  %1830 = load i32, ptr %1829, align 4, !tbaa !5
  store i32 %1830, ptr %40, align 4, !tbaa !5
  %1831 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1832 = call i32 @s2n_print_stacktrace(ptr noundef %1831)
  %1833 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1834 = trunc i8 %1833 to i1
  br i1 %1834, label %1835, label %1857

1835:                                             ; preds = %1828
  %1836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1837 = call i32 @fileno(ptr noundef %1836) #7
  %1838 = call i32 @isatty(i32 noundef %1837) #7
  %1839 = icmp ne i32 %1838, 0
  br i1 %1839, label %1840, label %1857

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

1857:                                             ; preds = %1835, %1828
  %1858 = load i32, ptr %40, align 4, !tbaa !5
  %1859 = call ptr @__errno_location() #8
  store i32 %1858, ptr %1859, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = load i32, ptr @test_count, align 4, !tbaa !5
  %1862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1863 = load i32, ptr %1862, align 4, !tbaa !5
  %1864 = call ptr @s2n_strerror(i32 noundef %1863, ptr noundef @.str.4)
  %1865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1866 = load i32, ptr %1865, align 4, !tbaa !5
  %1867 = call ptr @s2n_strerror_debug(i32 noundef %1866, ptr noundef @.str.4)
  %1868 = call ptr @__errno_location() #8
  %1869 = load i32, ptr %1868, align 4, !tbaa !5
  %1870 = call ptr @strerror(i32 noundef %1869) #7
  %1871 = call ptr @__errno_location() #8
  %1872 = load i32, ptr %1871, align 4, !tbaa !5
  %1873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1860, ptr noundef @.str.5, i32 noundef %1861, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 107, ptr noundef %1864, ptr noundef %1867, ptr noundef %1870, i32 noundef %1872) #7
  br label %1874

1874:                                             ; preds = %1857, %1840
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #7
  br label %1875

1875:                                             ; preds = %1874
  br label %1876

1876:                                             ; preds = %1875
  call void @exit(i32 noundef 1) #9
  unreachable

1877:                                             ; No predecessors!
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878, %1820
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  %1883 = load i32, ptr @test_count, align 4, !tbaa !5
  %1884 = add nsw i32 %1883, 1
  store i32 %1884, ptr @test_count, align 4, !tbaa !5
  %1885 = load ptr, ptr %36, align 8, !tbaa !9
  %1886 = call i32 @s2n_connection_free(ptr noundef %1885)
  %1887 = icmp eq i32 %1886, -1
  br i1 %1887, label %1888, label %1941

1888:                                             ; preds = %1882
  br label %1889

1889:                                             ; preds = %1888
  br label %1890

1890:                                             ; preds = %1889
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #7
  %1891 = call ptr @__errno_location() #8
  %1892 = load i32, ptr %1891, align 4, !tbaa !5
  store i32 %1892, ptr %41, align 4, !tbaa !5
  %1893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1894 = call i32 @s2n_print_stacktrace(ptr noundef %1893)
  %1895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1896 = trunc i8 %1895 to i1
  br i1 %1896, label %1897, label %1919

1897:                                             ; preds = %1890
  %1898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1899 = call i32 @fileno(ptr noundef %1898) #7
  %1900 = call i32 @isatty(i32 noundef %1899) #7
  %1901 = icmp ne i32 %1900, 0
  br i1 %1901, label %1902, label %1919

1902:                                             ; preds = %1897
  %1903 = load i32, ptr %41, align 4, !tbaa !5
  %1904 = call ptr @__errno_location() #8
  store i32 %1903, ptr %1904, align 4, !tbaa !5
  %1905 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1906 = load i32, ptr @test_count, align 4, !tbaa !5
  %1907 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1908 = load i32, ptr %1907, align 4, !tbaa !5
  %1909 = call ptr @s2n_strerror(i32 noundef %1908, ptr noundef @.str.4)
  %1910 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1911 = load i32, ptr %1910, align 4, !tbaa !5
  %1912 = call ptr @s2n_strerror_debug(i32 noundef %1911, ptr noundef @.str.4)
  %1913 = call ptr @__errno_location() #8
  %1914 = load i32, ptr %1913, align 4, !tbaa !5
  %1915 = call ptr @strerror(i32 noundef %1914) #7
  %1916 = call ptr @__errno_location() #8
  %1917 = load i32, ptr %1916, align 4, !tbaa !5
  %1918 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1905, ptr noundef @.str.2, i32 noundef %1906, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1909, ptr noundef %1912, ptr noundef %1915, i32 noundef %1917) #7
  br label %1936

1919:                                             ; preds = %1897, %1890
  %1920 = load i32, ptr %41, align 4, !tbaa !5
  %1921 = call ptr @__errno_location() #8
  store i32 %1920, ptr %1921, align 4, !tbaa !5
  %1922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1923 = load i32, ptr @test_count, align 4, !tbaa !5
  %1924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1925 = load i32, ptr %1924, align 4, !tbaa !5
  %1926 = call ptr @s2n_strerror(i32 noundef %1925, ptr noundef @.str.4)
  %1927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1928 = load i32, ptr %1927, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef @.str.4)
  %1930 = call ptr @__errno_location() #8
  %1931 = load i32, ptr %1930, align 4, !tbaa !5
  %1932 = call ptr @strerror(i32 noundef %1931) #7
  %1933 = call ptr @__errno_location() #8
  %1934 = load i32, ptr %1933, align 4, !tbaa !5
  %1935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1922, ptr noundef @.str.5, i32 noundef %1923, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1926, ptr noundef %1929, ptr noundef %1932, i32 noundef %1934) #7
  br label %1936

1936:                                             ; preds = %1919, %1902
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #7
  br label %1937

1937:                                             ; preds = %1936
  br label %1938

1938:                                             ; preds = %1937
  call void @exit(i32 noundef 1) #9
  unreachable

1939:                                             ; No predecessors!
  br label %1940

1940:                                             ; preds = %1939
  br label %1941

1941:                                             ; preds = %1940, %1882
  br label %1942

1942:                                             ; preds = %1941
  br label %1943

1943:                                             ; preds = %1942
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #7
  br label %1944

1944:                                             ; preds = %1943
  br label %1945

1945:                                             ; preds = %1944
  %1946 = call i32 @s2n_cleanup()
  %1947 = icmp eq i32 %1946, -1
  br i1 %1947, label %1948, label %1999

1948:                                             ; preds = %1945
  br label %1949

1949:                                             ; preds = %1948
  br label %1950

1950:                                             ; preds = %1949
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #7
  %1951 = call ptr @__errno_location() #8
  %1952 = load i32, ptr %1951, align 4, !tbaa !5
  store i32 %1952, ptr %42, align 4, !tbaa !5
  %1953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1954 = call i32 @s2n_print_stacktrace(ptr noundef %1953)
  %1955 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1956 = trunc i8 %1955 to i1
  br i1 %1956, label %1957, label %1979

1957:                                             ; preds = %1950
  %1958 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1959 = call i32 @fileno(ptr noundef %1958) #7
  %1960 = call i32 @isatty(i32 noundef %1959) #7
  %1961 = icmp ne i32 %1960, 0
  br i1 %1961, label %1962, label %1979

1962:                                             ; preds = %1957
  %1963 = load i32, ptr %42, align 4, !tbaa !5
  %1964 = call ptr @__errno_location() #8
  store i32 %1963, ptr %1964, align 4, !tbaa !5
  %1965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1966 = load i32, ptr @test_count, align 4, !tbaa !5
  %1967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1968 = load i32, ptr %1967, align 4, !tbaa !5
  %1969 = call ptr @s2n_strerror(i32 noundef %1968, ptr noundef @.str.4)
  %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_debug(i32 noundef %1971, ptr noundef @.str.4)
  %1973 = call ptr @__errno_location() #8
  %1974 = load i32, ptr %1973, align 4, !tbaa !5
  %1975 = call ptr @strerror(i32 noundef %1974) #7
  %1976 = call ptr @__errno_location() #8
  %1977 = load i32, ptr %1976, align 4, !tbaa !5
  %1978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1965, ptr noundef @.str.2, i32 noundef %1966, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1969, ptr noundef %1972, ptr noundef %1975, i32 noundef %1977) #7
  br label %1996

1979:                                             ; preds = %1957, %1950
  %1980 = load i32, ptr %42, align 4, !tbaa !5
  %1981 = call ptr @__errno_location() #8
  store i32 %1980, ptr %1981, align 4, !tbaa !5
  %1982 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1983 = load i32, ptr @test_count, align 4, !tbaa !5
  %1984 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1985 = load i32, ptr %1984, align 4, !tbaa !5
  %1986 = call ptr @s2n_strerror(i32 noundef %1985, ptr noundef @.str.4)
  %1987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1988 = load i32, ptr %1987, align 4, !tbaa !5
  %1989 = call ptr @s2n_strerror_debug(i32 noundef %1988, ptr noundef @.str.4)
  %1990 = call ptr @__errno_location() #8
  %1991 = load i32, ptr %1990, align 4, !tbaa !5
  %1992 = call ptr @strerror(i32 noundef %1991) #7
  %1993 = call ptr @__errno_location() #8
  %1994 = load i32, ptr %1993, align 4, !tbaa !5
  %1995 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1982, ptr noundef @.str.5, i32 noundef %1983, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 112, ptr noundef %1986, ptr noundef %1989, ptr noundef %1992, i32 noundef %1994) #7
  br label %1996

1996:                                             ; preds = %1979, %1962
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #7
  br label %1997

1997:                                             ; preds = %1996
  call void @exit(i32 noundef 1) #9
  unreachable

1998:                                             ; No predecessors!
  br label %1999

1999:                                             ; preds = %1998, %1945
  br label %2000

2000:                                             ; preds = %1999
  br label %2001

2001:                                             ; preds = %2000
  br label %2002

2002:                                             ; preds = %2001
  %2003 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %2004 = icmp eq i32 %2003, -1
  br i1 %2004, label %2005, label %2056

2005:                                             ; preds = %2002
  br label %2006

2006:                                             ; preds = %2005
  br label %2007

2007:                                             ; preds = %2006
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #7
  %2008 = call ptr @__errno_location() #8
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  store i32 %2009, ptr %43, align 4, !tbaa !5
  %2010 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2011 = call i32 @s2n_print_stacktrace(ptr noundef %2010)
  %2012 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2013 = trunc i8 %2012 to i1
  br i1 %2013, label %2014, label %2036

2014:                                             ; preds = %2007
  %2015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2016 = call i32 @fileno(ptr noundef %2015) #7
  %2017 = call i32 @isatty(i32 noundef %2016) #7
  %2018 = icmp ne i32 %2017, 0
  br i1 %2018, label %2019, label %2036

2019:                                             ; preds = %2014
  %2020 = load i32, ptr %43, align 4, !tbaa !5
  %2021 = call ptr @__errno_location() #8
  store i32 %2020, ptr %2021, align 4, !tbaa !5
  %2022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2023 = load i32, ptr @test_count, align 4, !tbaa !5
  %2024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2025 = load i32, ptr %2024, align 4, !tbaa !5
  %2026 = call ptr @s2n_strerror(i32 noundef %2025, ptr noundef @.str.4)
  %2027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2028 = load i32, ptr %2027, align 4, !tbaa !5
  %2029 = call ptr @s2n_strerror_debug(i32 noundef %2028, ptr noundef @.str.4)
  %2030 = call ptr @__errno_location() #8
  %2031 = load i32, ptr %2030, align 4, !tbaa !5
  %2032 = call ptr @strerror(i32 noundef %2031) #7
  %2033 = call ptr @__errno_location() #8
  %2034 = load i32, ptr %2033, align 4, !tbaa !5
  %2035 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2022, ptr noundef @.str.2, i32 noundef %2023, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2026, ptr noundef %2029, ptr noundef %2032, i32 noundef %2034) #7
  br label %2053

2036:                                             ; preds = %2014, %2007
  %2037 = load i32, ptr %43, align 4, !tbaa !5
  %2038 = call ptr @__errno_location() #8
  store i32 %2037, ptr %2038, align 4, !tbaa !5
  %2039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2040 = load i32, ptr @test_count, align 4, !tbaa !5
  %2041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2042 = load i32, ptr %2041, align 4, !tbaa !5
  %2043 = call ptr @s2n_strerror(i32 noundef %2042, ptr noundef @.str.4)
  %2044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2045 = load i32, ptr %2044, align 4, !tbaa !5
  %2046 = call ptr @s2n_strerror_debug(i32 noundef %2045, ptr noundef @.str.4)
  %2047 = call ptr @__errno_location() #8
  %2048 = load i32, ptr %2047, align 4, !tbaa !5
  %2049 = call ptr @strerror(i32 noundef %2048) #7
  %2050 = call ptr @__errno_location() #8
  %2051 = load i32, ptr %2050, align 4, !tbaa !5
  %2052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2039, ptr noundef @.str.5, i32 noundef %2040, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 112, ptr noundef %2043, ptr noundef %2046, ptr noundef %2049, i32 noundef %2051) #7
  br label %2053

2053:                                             ; preds = %2036, %2019
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #7
  br label %2054

2054:                                             ; preds = %2053
  call void @exit(i32 noundef 1) #9
  unreachable

2055:                                             ; No predecessors!
  br label %2056

2056:                                             ; preds = %2055, %2002
  br label %2057

2057:                                             ; preds = %2056
  %2058 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2059 = trunc i8 %2058 to i1
  br i1 %2059, label %2060, label %2076

2060:                                             ; preds = %2057
  %2061 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2062 = call i32 @fileno(ptr noundef %2061) #7
  %2063 = call i32 @isatty(i32 noundef %2062) #7
  %2064 = icmp ne i32 %2063, 0
  br i1 %2064, label %2065, label %2076

2065:                                             ; preds = %2060
  %2066 = load i32, ptr @test_count, align 4, !tbaa !5
  %2067 = icmp ne i32 %2066, 0
  br i1 %2067, label %2068, label %2072

2068:                                             ; preds = %2065
  %2069 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2070 = load i32, ptr @test_count, align 4, !tbaa !5
  %2071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2069, ptr noundef @.str.32, i32 noundef %2070) #7
  br label %2075

2072:                                             ; preds = %2065
  %2073 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2074 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2073, ptr noundef @.str.33) #7
  br label %2075

2075:                                             ; preds = %2072, %2068
  br label %2087

2076:                                             ; preds = %2060, %2057
  %2077 = load i32, ptr @test_count, align 4, !tbaa !5
  %2078 = icmp ne i32 %2077, 0
  br i1 %2078, label %2079, label %2083

2079:                                             ; preds = %2076
  %2080 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2081 = load i32, ptr @test_count, align 4, !tbaa !5
  %2082 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2080, ptr noundef @.str.34, i32 noundef %2081) #7
  br label %2086

2083:                                             ; preds = %2076
  %2084 = load ptr, ptr @stdout, align 8, !tbaa !9
  %2085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2084, ptr noundef @.str.35) #7
  br label %2086

2086:                                             ; preds = %2083, %2079
  br label %2087

2087:                                             ; preds = %2086, %2075
  store i32 0, ptr %3, align 4
  br label %2089

2088:                                             ; No predecessors!
  br label %2089

2089:                                             ; preds = %2088, %2087
  %2090 = load i32, ptr %3, align 4
  ret i32 %2090
}

; 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_connection_new(i32 noundef) #2

declare i32 @s2n_connection_free(ptr noundef) #2

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

declare void @s2n_debug_info_reset() #2

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 24}
!43 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!44 = !{!43, !10, i64 32}


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

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

@s2n_use_color_in_output = external dso_local local_unnamed_addr global i8, align 1
@test_count = external dso_local local_unnamed_addr global i32, align 4
@stdout = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [19 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [81 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 [39 x i8], align 1
@s2n_server_ems_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.9 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [46 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [108 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [41 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [70 x i8], align 1
@s2n_client_ems_extension = external local_unnamed_addr constant %struct.s2n_extension_type, align 8
@.str.28 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [25 x i8], align 1

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @main(i32 noundef %0, ptr nocapture noundef readnone %1) local_unnamed_addr #0 {
  %3 = alloca %struct.s2n_stuffer, align 8
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %4 = load ptr, ptr @stdout, align 8, !tbaa !9
  %5 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #8
  %6 = load ptr, ptr @stdout, align 8, !tbaa !9
  %7 = tail call i32 @fflush(ptr noundef %6)
  %8 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #8
  %9 = icmp eq i32 %8, -1
  br i1 %9, label %10, label %34

10:                                               ; preds = %2
  %11 = tail call ptr @__errno_location() #9
  %12 = load i32, ptr %11, align 4, !tbaa !5
  %13 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14 = tail call i32 @s2n_print_stacktrace(ptr noundef %13) #8
  %15 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %16 = trunc nuw i8 %15 to i1
  br i1 %16, label %17, label %21

17:                                               ; preds = %10
  %18 = load ptr, ptr @stderr, align 8, !tbaa !9
  %19 = tail call i32 @fileno(ptr noundef %18) #8
  %20 = tail call i32 @isatty(i32 noundef %19) #8
  %.not139 = icmp eq i32 %20, 0
  br i1 %.not139, label %21, label %22

21:                                               ; preds = %17, %10
  br label %22

22:                                               ; preds = %17, %21
  %.str.5.sink = phi ptr [ @.str.5, %21 ], [ @.str.2, %17 ]
  store i32 %12, ptr %11, align 4, !tbaa !5
  %23 = load ptr, ptr @stderr, align 8, !tbaa !9
  %24 = load i32, ptr @test_count, align 4, !tbaa !5
  %25 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %26 = load i32, ptr %25, align 4, !tbaa !5
  %27 = tail call ptr @s2n_strerror(i32 noundef %26, ptr noundef nonnull @.str.4) #8
  %28 = load i32, ptr %25, align 4, !tbaa !5
  %29 = tail call ptr @s2n_strerror_debug(i32 noundef %28, ptr noundef nonnull @.str.4) #8
  %30 = load i32, ptr %11, align 4, !tbaa !5
  %31 = tail call ptr @strerror(i32 noundef %30) #8
  %32 = load i32, ptr %11, align 4, !tbaa !5
  %33 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %23, ptr noundef nonnull %.str.5.sink, i32 noundef %24, ptr noundef nonnull @.str.3, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %27, ptr noundef %29, ptr noundef %31, i32 noundef %32) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

34:                                               ; preds = %2
  %35 = load i32, ptr @test_count, align 4, !tbaa !5
  %36 = add nsw i32 %35, 1
  store i32 %36, ptr @test_count, align 4, !tbaa !5
  %37 = tail call i32 @s2n_enable_atexit() #8
  %38 = icmp eq i32 %37, -1
  br i1 %38, label %39, label %63

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

46:                                               ; preds = %39
  %47 = load ptr, ptr @stderr, align 8, !tbaa !9
  %48 = tail call i32 @fileno(ptr noundef %47) #8
  %49 = tail call i32 @isatty(i32 noundef %48) #8
  %.not138 = icmp eq i32 %49, 0
  br i1 %.not138, label %50, label %51

50:                                               ; preds = %46, %39
  br label %51

51:                                               ; preds = %46, %50
  %.str.5.sink150 = phi ptr [ @.str.5, %50 ], [ @.str.2, %46 ]
  store i32 %41, ptr %40, align 4, !tbaa !5
  %52 = load ptr, ptr @stderr, align 8, !tbaa !9
  %53 = load i32, ptr @test_count, align 4, !tbaa !5
  %54 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %55 = load i32, ptr %54, align 4, !tbaa !5
  %56 = tail call ptr @s2n_strerror(i32 noundef %55, ptr noundef nonnull @.str.4) #8
  %57 = load i32, ptr %54, align 4, !tbaa !5
  %58 = tail call ptr @s2n_strerror_debug(i32 noundef %57, ptr noundef nonnull @.str.4) #8
  %59 = load i32, ptr %40, align 4, !tbaa !5
  %60 = tail call ptr @strerror(i32 noundef %59) #8
  %61 = load i32, ptr %40, align 4, !tbaa !5
  %62 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %52, ptr noundef nonnull %.str.5.sink150, i32 noundef %53, ptr noundef nonnull @.str.6, ptr noundef nonnull @.str.1, i32 noundef 23, ptr noundef %56, ptr noundef %58, ptr noundef %60, i32 noundef %61) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

63:                                               ; preds = %34
  %64 = tail call i32 @s2n_init() #8
  %65 = icmp eq i32 %64, -1
  br i1 %65, label %66, label %90

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

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

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

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

90:                                               ; preds = %63
  %91 = tail call ptr @s2n_connection_new(i32 noundef 0) #8
  %92 = load i32, ptr @test_count, align 4, !tbaa !5
  %93 = add nsw i32 %92, 1
  store i32 %93, ptr @test_count, align 4, !tbaa !5
  %94 = icmp eq ptr %91, null
  br i1 %94, label %95, label %119

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

102:                                              ; preds = %95
  %103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %104 = tail call i32 @fileno(ptr noundef %103) #8
  %105 = tail call i32 @isatty(i32 noundef %104) #8
  %.not136 = icmp eq i32 %105, 0
  br i1 %.not136, label %106, label %107

106:                                              ; preds = %102, %95
  br label %107

107:                                              ; preds = %102, %106
  %.str.5.sink172 = phi ptr [ @.str.5, %106 ], [ @.str.2, %102 ]
  store i32 %97, ptr %96, align 4, !tbaa !5
  %108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %109 = load i32, ptr @test_count, align 4, !tbaa !5
  %110 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %111 = load i32, ptr %110, align 4, !tbaa !5
  %112 = tail call ptr @s2n_strerror(i32 noundef %111, ptr noundef nonnull @.str.4) #8
  %113 = load i32, ptr %110, align 4, !tbaa !5
  %114 = tail call ptr @s2n_strerror_debug(i32 noundef %113, ptr noundef nonnull @.str.4) #8
  %115 = load i32, ptr %96, align 4, !tbaa !5
  %116 = tail call ptr @strerror(i32 noundef %115) #8
  %117 = load i32, ptr %96, align 4, !tbaa !5
  %118 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %108, ptr noundef nonnull %.str.5.sink172, i32 noundef %109, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 28, ptr noundef %112, ptr noundef %114, ptr noundef %116, i32 noundef %117) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

119:                                              ; preds = %90
  %120 = getelementptr inbounds i8, ptr %91, i64 220
  store i8 34, ptr %120, align 4, !tbaa !15
  %121 = add nsw i32 %92, 2
  store i32 %121, ptr @test_count, align 4, !tbaa !5
  %122 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_ems_extension, i64 24), align 8, !tbaa !42
  %123 = tail call zeroext i1 %122(ptr noundef nonnull %91) #8
  br i1 %123, label %124, label %148

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

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

135:                                              ; preds = %131, %124
  br label %136

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

148:                                              ; preds = %119
  store i8 33, ptr %120, align 4, !tbaa !15
  %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 = tail call zeroext i1 %122(ptr noundef nonnull %91) #8
  br i1 %151, label %176, label %152

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

159:                                              ; preds = %152
  %160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %161 = tail call i32 @fileno(ptr noundef %160) #8
  %162 = tail call i32 @isatty(i32 noundef %161) #8
  %.not = icmp eq i32 %162, 0
  br i1 %.not, label %163, label %164

163:                                              ; preds = %159, %152
  br label %164

164:                                              ; preds = %159, %163
  %.str.5.sink194 = phi ptr [ @.str.5, %163 ], [ @.str.2, %159 ]
  store i32 %154, ptr %153, align 4, !tbaa !5
  %165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %166 = load i32, ptr @test_count, align 4, !tbaa !5
  %167 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %168 = load i32, ptr %167, align 4, !tbaa !5
  %169 = tail call ptr @s2n_strerror(i32 noundef %168, ptr noundef nonnull @.str.4) #8
  %170 = load i32, ptr %167, align 4, !tbaa !5
  %171 = tail call ptr @s2n_strerror_debug(i32 noundef %170, ptr noundef nonnull @.str.4) #8
  %172 = load i32, ptr %153, align 4, !tbaa !5
  %173 = tail call ptr @strerror(i32 noundef %172) #8
  %174 = load i32, ptr %153, align 4, !tbaa !5
  %175 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %165, ptr noundef nonnull %.str.5.sink194, i32 noundef %166, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 36, ptr noundef %169, ptr noundef %171, ptr noundef %173, i32 noundef %174) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

176:                                              ; preds = %148
  %177 = load i32, ptr @test_count, align 4, !tbaa !5
  %178 = add nsw i32 %177, 1
  store i32 %178, ptr @test_count, align 4, !tbaa !5
  %179 = tail call i32 @s2n_connection_free(ptr noundef nonnull %91) #8
  %180 = icmp eq i32 %179, -1
  br i1 %180, label %181, label %205

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

188:                                              ; preds = %181
  %189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %190 = tail call i32 @fileno(ptr noundef %189) #8
  %191 = tail call i32 @isatty(i32 noundef %190) #8
  %.not134 = icmp eq i32 %191, 0
  br i1 %.not134, label %192, label %193

192:                                              ; preds = %188, %181
  br label %193

193:                                              ; preds = %188, %192
  %.str.5.sink205 = phi ptr [ @.str.5, %192 ], [ @.str.2, %188 ]
  store i32 %183, ptr %182, align 4, !tbaa !5
  %194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %195 = load i32, ptr @test_count, align 4, !tbaa !5
  %196 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %197 = load i32, ptr %196, align 4, !tbaa !5
  %198 = tail call ptr @s2n_strerror(i32 noundef %197, ptr noundef nonnull @.str.4) #8
  %199 = load i32, ptr %196, align 4, !tbaa !5
  %200 = tail call ptr @s2n_strerror_debug(i32 noundef %199, ptr noundef nonnull @.str.4) #8
  %201 = load i32, ptr %182, align 4, !tbaa !5
  %202 = tail call ptr @strerror(i32 noundef %201) #8
  %203 = load i32, ptr %182, align 4, !tbaa !5
  %204 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %194, ptr noundef nonnull %.str.5.sink205, i32 noundef %195, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 38, ptr noundef %198, ptr noundef %200, ptr noundef %202, i32 noundef %203) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

205:                                              ; preds = %176
  %206 = tail call ptr @s2n_connection_new(i32 noundef 0) #8
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = add nsw i32 %207, 1
  store i32 %208, ptr @test_count, align 4, !tbaa !5
  %209 = icmp eq ptr %206, null
  br i1 %209, label %210, label %234

210:                                              ; preds = %205
  %211 = tail call ptr @__errno_location() #9
  %212 = load i32, ptr %211, align 4, !tbaa !5
  %213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %214 = tail call i32 @s2n_print_stacktrace(ptr noundef %213) #8
  %215 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %216 = trunc nuw i8 %215 to i1
  br i1 %216, label %217, label %221

217:                                              ; preds = %210
  %218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %219 = tail call i32 @fileno(ptr noundef %218) #8
  %220 = tail call i32 @isatty(i32 noundef %219) #8
  %.not133 = icmp eq i32 %220, 0
  br i1 %.not133, label %221, label %222

221:                                              ; preds = %217, %210
  br label %222

222:                                              ; preds = %217, %221
  %.str.5.sink216 = phi ptr [ @.str.5, %221 ], [ @.str.2, %217 ]
  store i32 %212, ptr %211, align 4, !tbaa !5
  %223 = load ptr, ptr @stderr, align 8, !tbaa !9
  %224 = load i32, ptr @test_count, align 4, !tbaa !5
  %225 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %226 = load i32, ptr %225, align 4, !tbaa !5
  %227 = tail call ptr @s2n_strerror(i32 noundef %226, ptr noundef nonnull @.str.4) #8
  %228 = load i32, ptr %225, align 4, !tbaa !5
  %229 = tail call ptr @s2n_strerror_debug(i32 noundef %228, ptr noundef nonnull @.str.4) #8
  %230 = load i32, ptr %211, align 4, !tbaa !5
  %231 = tail call ptr @strerror(i32 noundef %230) #8
  %232 = load i32, ptr %211, align 4, !tbaa !5
  %233 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %223, ptr noundef nonnull %.str.5.sink216, i32 noundef %224, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 44, ptr noundef %227, ptr noundef %229, ptr noundef %231, i32 noundef %232) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

234:                                              ; preds = %205
  %235 = tail call ptr @s2n_connection_new(i32 noundef 1) #8
  %236 = load i32, ptr @test_count, align 4, !tbaa !5
  %237 = add nsw i32 %236, 1
  store i32 %237, ptr @test_count, align 4, !tbaa !5
  %238 = icmp eq ptr %235, null
  br i1 %238, label %239, label %263

239:                                              ; preds = %234
  %240 = tail call ptr @__errno_location() #9
  %241 = load i32, ptr %240, align 4, !tbaa !5
  %242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %243 = tail call i32 @s2n_print_stacktrace(ptr noundef %242) #8
  %244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %245 = trunc nuw i8 %244 to i1
  br i1 %245, label %246, label %250

246:                                              ; preds = %239
  %247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %248 = tail call i32 @fileno(ptr noundef %247) #8
  %249 = tail call i32 @isatty(i32 noundef %248) #8
  %.not132 = icmp eq i32 %249, 0
  br i1 %.not132, label %250, label %251

250:                                              ; preds = %246, %239
  br label %251

251:                                              ; preds = %246, %250
  %.str.5.sink227 = phi ptr [ @.str.5, %250 ], [ @.str.2, %246 ]
  store i32 %241, ptr %240, align 4, !tbaa !5
  %252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %253 = load i32, ptr @test_count, align 4, !tbaa !5
  %254 = tail call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %255 = load i32, ptr %254, align 4, !tbaa !5
  %256 = tail call ptr @s2n_strerror(i32 noundef %255, ptr noundef nonnull @.str.4) #8
  %257 = load i32, ptr %254, align 4, !tbaa !5
  %258 = tail call ptr @s2n_strerror_debug(i32 noundef %257, ptr noundef nonnull @.str.4) #8
  %259 = load i32, ptr %240, align 4, !tbaa !5
  %260 = tail call ptr @strerror(i32 noundef %259) #8
  %261 = load i32, ptr %240, align 4, !tbaa !5
  %262 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %252, ptr noundef nonnull %.str.5.sink227, i32 noundef %253, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 47, ptr noundef %256, ptr noundef %258, ptr noundef %260, i32 noundef %261) #10
  tail call void @exit(i32 noundef 1) #11
  unreachable

263:                                              ; preds = %234
  %264 = getelementptr inbounds i8, ptr %206, i64 220
  store i8 33, ptr %264, align 4, !tbaa !15
  %265 = getelementptr inbounds i8, ptr %235, i64 220
  store i8 33, ptr %265, align 4, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) #8
  %266 = add nsw i32 %236, 2
  store i32 %266, ptr @test_count, align 4, !tbaa !5
  %267 = call i32 @s2n_stuffer_growable_alloc(ptr noundef nonnull %3, i32 noundef 0) #8
  %268 = icmp eq i32 %267, -1
  br i1 %268, label %269, label %293

269:                                              ; preds = %263
  %270 = tail call ptr @__errno_location() #9
  %271 = load i32, ptr %270, align 4, !tbaa !5
  %272 = load ptr, ptr @stderr, align 8, !tbaa !9
  %273 = call i32 @s2n_print_stacktrace(ptr noundef %272) #8
  %274 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %275 = trunc nuw i8 %274 to i1
  br i1 %275, label %276, label %280

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

280:                                              ; preds = %276, %269
  br label %281

281:                                              ; preds = %276, %280
  %.str.5.sink238 = phi ptr [ @.str.5, %280 ], [ @.str.2, %276 ]
  store i32 %271, ptr %270, align 4, !tbaa !5
  %282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %283 = load i32, ptr @test_count, align 4, !tbaa !5
  %284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %285 = load i32, ptr %284, align 4, !tbaa !5
  %286 = call ptr @s2n_strerror(i32 noundef %285, ptr noundef nonnull @.str.4) #8
  %287 = load i32, ptr %284, align 4, !tbaa !5
  %288 = call ptr @s2n_strerror_debug(i32 noundef %287, ptr noundef nonnull @.str.4) #8
  %289 = load i32, ptr %270, align 4, !tbaa !5
  %290 = call ptr @strerror(i32 noundef %289) #8
  %291 = load i32, ptr %270, align 4, !tbaa !5
  %292 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %282, ptr noundef nonnull %.str.5.sink238, i32 noundef %283, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 54, ptr noundef %286, ptr noundef %288, ptr noundef %290, i32 noundef %291) #10
  call void @exit(i32 noundef 1) #11
  unreachable

293:                                              ; preds = %263
  %294 = load i32, ptr @test_count, align 4, !tbaa !5
  %295 = add nsw i32 %294, 1
  store i32 %295, ptr @test_count, align 4, !tbaa !5
  %296 = call i32 @s2n_extension_list_send(i32 noundef 0, ptr noundef nonnull %235, ptr noundef nonnull %3) #8
  %297 = icmp eq i32 %296, -1
  br i1 %297, label %298, label %322

298:                                              ; preds = %293
  %299 = tail call ptr @__errno_location() #9
  %300 = load i32, ptr %299, align 4, !tbaa !5
  %301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %302 = call i32 @s2n_print_stacktrace(ptr noundef %301) #8
  %303 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %304 = trunc nuw i8 %303 to i1
  br i1 %304, label %305, label %309

305:                                              ; preds = %298
  %306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %307 = call i32 @fileno(ptr noundef %306) #8
  %308 = call i32 @isatty(i32 noundef %307) #8
  %.not130 = icmp eq i32 %308, 0
  br i1 %.not130, label %309, label %310

309:                                              ; preds = %305, %298
  br label %310

310:                                              ; preds = %305, %309
  %.str.5.sink249 = phi ptr [ @.str.5, %309 ], [ @.str.2, %305 ]
  store i32 %300, ptr %299, align 4, !tbaa !5
  %311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %312 = load i32, ptr @test_count, align 4, !tbaa !5
  %313 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %314 = load i32, ptr %313, align 4, !tbaa !5
  %315 = call ptr @s2n_strerror(i32 noundef %314, ptr noundef nonnull @.str.4) #8
  %316 = load i32, ptr %313, align 4, !tbaa !5
  %317 = call ptr @s2n_strerror_debug(i32 noundef %316, ptr noundef nonnull @.str.4) #8
  %318 = load i32, ptr %299, align 4, !tbaa !5
  %319 = call ptr @strerror(i32 noundef %318) #8
  %320 = load i32, ptr %299, align 4, !tbaa !5
  %321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %311, ptr noundef nonnull %.str.5.sink249, i32 noundef %312, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 55, ptr noundef %315, ptr noundef %317, ptr noundef %319, i32 noundef %320) #10
  call void @exit(i32 noundef 1) #11
  unreachable

322:                                              ; preds = %293
  %323 = load i32, ptr @test_count, align 4, !tbaa !5
  %324 = add nsw i32 %323, 1
  store i32 %324, ptr @test_count, align 4, !tbaa !5
  %325 = load i32, ptr %235, align 8
  %326 = and i32 %325, 8192
  %.not103 = icmp eq i32 %326, 0
  br i1 %.not103, label %351, label %327

327:                                              ; preds = %322
  %328 = tail call ptr @__errno_location() #9
  %329 = load i32, ptr %328, align 4, !tbaa !5
  %330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %331 = call i32 @s2n_print_stacktrace(ptr noundef %330) #8
  %332 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %333 = trunc nuw i8 %332 to i1
  br i1 %333, label %334, label %338

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

338:                                              ; preds = %334, %327
  br label %339

339:                                              ; preds = %334, %338
  %.str.5.sink260 = phi ptr [ @.str.5, %338 ], [ @.str.2, %334 ]
  store i32 %329, ptr %328, align 4, !tbaa !5
  %340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %341 = load i32, ptr @test_count, align 4, !tbaa !5
  %342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %343 = load i32, ptr %342, align 4, !tbaa !5
  %344 = call ptr @s2n_strerror(i32 noundef %343, ptr noundef nonnull @.str.4) #8
  %345 = load i32, ptr %342, align 4, !tbaa !5
  %346 = call ptr @s2n_strerror_debug(i32 noundef %345, ptr noundef nonnull @.str.4) #8
  %347 = load i32, ptr %328, align 4, !tbaa !5
  %348 = call ptr @strerror(i32 noundef %347) #8
  %349 = load i32, ptr %328, align 4, !tbaa !5
  %350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %340, ptr noundef nonnull %.str.5.sink260, i32 noundef %341, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 56, ptr noundef %344, ptr noundef %346, ptr noundef %348, i32 noundef %349) #10
  call void @exit(i32 noundef 1) #11
  unreachable

351:                                              ; preds = %322
  %352 = add nsw i32 %323, 2
  store i32 %352, ptr @test_count, align 4, !tbaa !5
  %353 = call i32 @s2n_extension_list_recv(i32 noundef 0, ptr noundef nonnull %206, ptr noundef nonnull %3) #8
  %354 = icmp eq i32 %353, -1
  br i1 %354, label %355, label %379

355:                                              ; preds = %351
  %356 = tail call ptr @__errno_location() #9
  %357 = load i32, ptr %356, align 4, !tbaa !5
  %358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %359 = call i32 @s2n_print_stacktrace(ptr noundef %358) #8
  %360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %361 = trunc nuw i8 %360 to i1
  br i1 %361, label %362, label %366

362:                                              ; preds = %355
  %363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %364 = call i32 @fileno(ptr noundef %363) #8
  %365 = call i32 @isatty(i32 noundef %364) #8
  %.not128 = icmp eq i32 %365, 0
  br i1 %.not128, label %366, label %367

366:                                              ; preds = %362, %355
  br label %367

367:                                              ; preds = %362, %366
  %.str.5.sink271 = phi ptr [ @.str.5, %366 ], [ @.str.2, %362 ]
  store i32 %357, ptr %356, align 4, !tbaa !5
  %368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %369 = load i32, ptr @test_count, align 4, !tbaa !5
  %370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %371 = load i32, ptr %370, align 4, !tbaa !5
  %372 = call ptr @s2n_strerror(i32 noundef %371, ptr noundef nonnull @.str.4) #8
  %373 = load i32, ptr %370, align 4, !tbaa !5
  %374 = call ptr @s2n_strerror_debug(i32 noundef %373, ptr noundef nonnull @.str.4) #8
  %375 = load i32, ptr %356, align 4, !tbaa !5
  %376 = call ptr @strerror(i32 noundef %375) #8
  %377 = load i32, ptr %356, align 4, !tbaa !5
  %378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %368, ptr noundef nonnull %.str.5.sink271, i32 noundef %369, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 58, ptr noundef %372, ptr noundef %374, ptr noundef %376, i32 noundef %377) #10
  call void @exit(i32 noundef 1) #11
  unreachable

379:                                              ; preds = %351
  %380 = load i32, ptr @test_count, align 4, !tbaa !5
  %381 = add nsw i32 %380, 1
  store i32 %381, ptr @test_count, align 4, !tbaa !5
  %382 = load i32, ptr %206, align 8
  %383 = and i32 %382, 8192
  %.not104 = icmp eq i32 %383, 0
  br i1 %.not104, label %384, label %408

384:                                              ; preds = %379
  %385 = tail call ptr @__errno_location() #9
  %386 = load i32, ptr %385, align 4, !tbaa !5
  %387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %388 = call i32 @s2n_print_stacktrace(ptr noundef %387) #8
  %389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %390 = trunc nuw i8 %389 to i1
  br i1 %390, label %391, label %395

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

395:                                              ; preds = %391, %384
  br label %396

396:                                              ; preds = %391, %395
  %.str.5.sink282 = phi ptr [ @.str.5, %395 ], [ @.str.2, %391 ]
  store i32 %386, ptr %385, align 4, !tbaa !5
  %397 = load ptr, ptr @stderr, align 8, !tbaa !9
  %398 = load i32, ptr @test_count, align 4, !tbaa !5
  %399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %400 = load i32, ptr %399, align 4, !tbaa !5
  %401 = call ptr @s2n_strerror(i32 noundef %400, ptr noundef nonnull @.str.4) #8
  %402 = load i32, ptr %399, align 4, !tbaa !5
  %403 = call ptr @s2n_strerror_debug(i32 noundef %402, ptr noundef nonnull @.str.4) #8
  %404 = load i32, ptr %385, align 4, !tbaa !5
  %405 = call ptr @strerror(i32 noundef %404) #8
  %406 = load i32, ptr %385, align 4, !tbaa !5
  %407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %397, ptr noundef nonnull %.str.5.sink282, i32 noundef %398, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 59, ptr noundef %401, ptr noundef %403, ptr noundef %405, i32 noundef %406) #10
  call void @exit(i32 noundef 1) #11
  unreachable

408:                                              ; preds = %379
  %409 = add nsw i32 %380, 2
  store i32 %409, ptr @test_count, align 4, !tbaa !5
  %410 = call i32 @s2n_extension_list_send(i32 noundef 2, ptr noundef nonnull %206, ptr noundef nonnull %3) #8
  %411 = icmp eq i32 %410, -1
  br i1 %411, label %412, label %436

412:                                              ; preds = %408
  %413 = tail call ptr @__errno_location() #9
  %414 = load i32, ptr %413, align 4, !tbaa !5
  %415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %416 = call i32 @s2n_print_stacktrace(ptr noundef %415) #8
  %417 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %418 = trunc nuw i8 %417 to i1
  br i1 %418, label %419, label %423

419:                                              ; preds = %412
  %420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %421 = call i32 @fileno(ptr noundef %420) #8
  %422 = call i32 @isatty(i32 noundef %421) #8
  %.not127 = icmp eq i32 %422, 0
  br i1 %.not127, label %423, label %424

423:                                              ; preds = %419, %412
  br label %424

424:                                              ; preds = %419, %423
  %.str.5.sink293 = phi ptr [ @.str.5, %423 ], [ @.str.2, %419 ]
  store i32 %414, ptr %413, align 4, !tbaa !5
  %425 = load ptr, ptr @stderr, align 8, !tbaa !9
  %426 = load i32, ptr @test_count, align 4, !tbaa !5
  %427 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %428 = load i32, ptr %427, align 4, !tbaa !5
  %429 = call ptr @s2n_strerror(i32 noundef %428, ptr noundef nonnull @.str.4) #8
  %430 = load i32, ptr %427, align 4, !tbaa !5
  %431 = call ptr @s2n_strerror_debug(i32 noundef %430, ptr noundef nonnull @.str.4) #8
  %432 = load i32, ptr %413, align 4, !tbaa !5
  %433 = call ptr @strerror(i32 noundef %432) #8
  %434 = load i32, ptr %413, align 4, !tbaa !5
  %435 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %425, ptr noundef nonnull %.str.5.sink293, i32 noundef %426, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 61, ptr noundef %429, ptr noundef %431, ptr noundef %433, i32 noundef %434) #10
  call void @exit(i32 noundef 1) #11
  unreachable

436:                                              ; preds = %408
  %437 = load i32, ptr @test_count, align 4, !tbaa !5
  %438 = add nsw i32 %437, 1
  store i32 %438, ptr @test_count, align 4, !tbaa !5
  %439 = call i32 @s2n_extension_list_recv(i32 noundef 2, ptr noundef nonnull %235, ptr noundef nonnull %3) #8
  %440 = icmp eq i32 %439, -1
  br i1 %440, label %441, label %465

441:                                              ; preds = %436
  %442 = tail call ptr @__errno_location() #9
  %443 = load i32, ptr %442, align 4, !tbaa !5
  %444 = load ptr, ptr @stderr, align 8, !tbaa !9
  %445 = call i32 @s2n_print_stacktrace(ptr noundef %444) #8
  %446 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %447 = trunc nuw i8 %446 to i1
  br i1 %447, label %448, label %452

448:                                              ; preds = %441
  %449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %450 = call i32 @fileno(ptr noundef %449) #8
  %451 = call i32 @isatty(i32 noundef %450) #8
  %.not126 = icmp eq i32 %451, 0
  br i1 %.not126, label %452, label %453

452:                                              ; preds = %448, %441
  br label %453

453:                                              ; preds = %448, %452
  %.str.5.sink304 = phi ptr [ @.str.5, %452 ], [ @.str.2, %448 ]
  store i32 %443, ptr %442, align 4, !tbaa !5
  %454 = load ptr, ptr @stderr, align 8, !tbaa !9
  %455 = load i32, ptr @test_count, align 4, !tbaa !5
  %456 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %457 = load i32, ptr %456, align 4, !tbaa !5
  %458 = call ptr @s2n_strerror(i32 noundef %457, ptr noundef nonnull @.str.4) #8
  %459 = load i32, ptr %456, align 4, !tbaa !5
  %460 = call ptr @s2n_strerror_debug(i32 noundef %459, ptr noundef nonnull @.str.4) #8
  %461 = load i32, ptr %442, align 4, !tbaa !5
  %462 = call ptr @strerror(i32 noundef %461) #8
  %463 = load i32, ptr %442, align 4, !tbaa !5
  %464 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %454, ptr noundef nonnull %.str.5.sink304, i32 noundef %455, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 62, ptr noundef %458, ptr noundef %460, ptr noundef %462, i32 noundef %463) #10
  call void @exit(i32 noundef 1) #11
  unreachable

465:                                              ; preds = %436
  %466 = load i32, ptr @test_count, align 4, !tbaa !5
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr @test_count, align 4, !tbaa !5
  %468 = load i32, ptr %235, align 8
  %469 = and i32 %468, 8192
  %.not106 = icmp eq i32 %469, 0
  br i1 %.not106, label %470, label %494

470:                                              ; preds = %465
  %471 = tail call ptr @__errno_location() #9
  %472 = load i32, ptr %471, align 4, !tbaa !5
  %473 = load ptr, ptr @stderr, align 8, !tbaa !9
  %474 = call i32 @s2n_print_stacktrace(ptr noundef %473) #8
  %475 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %476 = trunc nuw i8 %475 to i1
  br i1 %476, label %477, label %481

477:                                              ; preds = %470
  %478 = load ptr, ptr @stderr, align 8, !tbaa !9
  %479 = call i32 @fileno(ptr noundef %478) #8
  %480 = call i32 @isatty(i32 noundef %479) #8
  %.not107 = icmp eq i32 %480, 0
  br i1 %.not107, label %481, label %482

481:                                              ; preds = %477, %470
  br label %482

482:                                              ; preds = %477, %481
  %.str.5.sink315 = phi ptr [ @.str.5, %481 ], [ @.str.2, %477 ]
  store i32 %472, ptr %471, align 4, !tbaa !5
  %483 = load ptr, ptr @stderr, align 8, !tbaa !9
  %484 = load i32, ptr @test_count, align 4, !tbaa !5
  %485 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %486 = load i32, ptr %485, align 4, !tbaa !5
  %487 = call ptr @s2n_strerror(i32 noundef %486, ptr noundef nonnull @.str.4) #8
  %488 = load i32, ptr %485, align 4, !tbaa !5
  %489 = call ptr @s2n_strerror_debug(i32 noundef %488, ptr noundef nonnull @.str.4) #8
  %490 = load i32, ptr %471, align 4, !tbaa !5
  %491 = call ptr @strerror(i32 noundef %490) #8
  %492 = load i32, ptr %471, align 4, !tbaa !5
  %493 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %483, ptr noundef nonnull %.str.5.sink315, i32 noundef %484, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 63, ptr noundef %487, ptr noundef %489, ptr noundef %491, i32 noundef %492) #10
  call void @exit(i32 noundef 1) #11
  unreachable

494:                                              ; preds = %465
  %495 = add nsw i32 %466, 2
  store i32 %495, ptr @test_count, align 4, !tbaa !5
  %496 = call i32 @s2n_connection_free(ptr noundef nonnull %206) #8
  %497 = icmp eq i32 %496, -1
  br i1 %497, label %498, label %522

498:                                              ; preds = %494
  %499 = tail call ptr @__errno_location() #9
  %500 = load i32, ptr %499, align 4, !tbaa !5
  %501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %502 = call i32 @s2n_print_stacktrace(ptr noundef %501) #8
  %503 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %504 = trunc nuw i8 %503 to i1
  br i1 %504, label %505, label %509

505:                                              ; preds = %498
  %506 = load ptr, ptr @stderr, align 8, !tbaa !9
  %507 = call i32 @fileno(ptr noundef %506) #8
  %508 = call i32 @isatty(i32 noundef %507) #8
  %.not125 = icmp eq i32 %508, 0
  br i1 %.not125, label %509, label %510

509:                                              ; preds = %505, %498
  br label %510

510:                                              ; preds = %505, %509
  %.str.5.sink326 = phi ptr [ @.str.5, %509 ], [ @.str.2, %505 ]
  store i32 %500, ptr %499, align 4, !tbaa !5
  %511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %512 = load i32, ptr @test_count, align 4, !tbaa !5
  %513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %514 = load i32, ptr %513, align 4, !tbaa !5
  %515 = call ptr @s2n_strerror(i32 noundef %514, ptr noundef nonnull @.str.4) #8
  %516 = load i32, ptr %513, align 4, !tbaa !5
  %517 = call ptr @s2n_strerror_debug(i32 noundef %516, ptr noundef nonnull @.str.4) #8
  %518 = load i32, ptr %499, align 4, !tbaa !5
  %519 = call ptr @strerror(i32 noundef %518) #8
  %520 = load i32, ptr %499, align 4, !tbaa !5
  %521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %511, ptr noundef nonnull %.str.5.sink326, i32 noundef %512, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 65, ptr noundef %515, ptr noundef %517, ptr noundef %519, i32 noundef %520) #10
  call void @exit(i32 noundef 1) #11
  unreachable

522:                                              ; preds = %494
  %523 = load i32, ptr @test_count, align 4, !tbaa !5
  %524 = add nsw i32 %523, 1
  store i32 %524, ptr @test_count, align 4, !tbaa !5
  %525 = call i32 @s2n_connection_free(ptr noundef nonnull %235) #8
  %526 = icmp eq i32 %525, -1
  br i1 %526, label %527, label %551

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

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

538:                                              ; preds = %534, %527
  br label %539

539:                                              ; preds = %534, %538
  %.str.5.sink337 = phi ptr [ @.str.5, %538 ], [ @.str.2, %534 ]
  store i32 %529, ptr %528, align 4, !tbaa !5
  %540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %541 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %543, ptr noundef nonnull @.str.4) #8
  %545 = load i32, ptr %542, align 4, !tbaa !5
  %546 = call ptr @s2n_strerror_debug(i32 noundef %545, ptr noundef nonnull @.str.4) #8
  %547 = load i32, ptr %528, align 4, !tbaa !5
  %548 = call ptr @strerror(i32 noundef %547) #8
  %549 = load i32, ptr %528, align 4, !tbaa !5
  %550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %540, ptr noundef nonnull %.str.5.sink337, i32 noundef %541, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 66, ptr noundef %544, ptr noundef %546, ptr noundef %548, i32 noundef %549) #10
  call void @exit(i32 noundef 1) #11
  unreachable

551:                                              ; preds = %522
  %552 = call i32 @s2n_stuffer_free(ptr noundef nonnull %3) #8
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) #8
  %553 = call ptr @s2n_connection_new(i32 noundef 1) #8
  %554 = load i32, ptr @test_count, align 4, !tbaa !5
  %555 = add nsw i32 %554, 1
  store i32 %555, ptr @test_count, align 4, !tbaa !5
  %556 = icmp eq ptr %553, null
  br i1 %556, label %557, label %581

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

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

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

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

581:                                              ; preds = %551
  %582 = load i32, ptr %553, align 8
  %583 = or i32 %582, 8192
  store i32 %583, ptr %553, align 8
  %584 = load i32, ptr @test_count, align 4, !tbaa !5
  %585 = add nsw i32 %584, 1
  store i32 %585, ptr @test_count, align 4, !tbaa !5
  %586 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_server_ems_extension, i64 32), align 8, !tbaa !44
  %587 = call i32 %586(ptr noundef nonnull %553) #8
  %588 = icmp eq i32 %587, -1
  br i1 %588, label %613, label %589

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

596:                                              ; preds = %589
  %597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %598 = call i32 @fileno(ptr noundef %597) #8
  %599 = call i32 @isatty(i32 noundef %598) #8
  %.not108 = icmp eq i32 %599, 0
  br i1 %.not108, label %600, label %601

600:                                              ; preds = %596, %589
  br label %601

601:                                              ; preds = %596, %600
  %.str.5.sink359 = phi ptr [ @.str.5, %600 ], [ @.str.2, %596 ]
  store i32 %591, ptr %590, align 4, !tbaa !5
  %602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %603 = load i32, ptr @test_count, align 4, !tbaa !5
  %604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %605 = load i32, ptr %604, align 4, !tbaa !5
  %606 = call ptr @s2n_strerror(i32 noundef %605, ptr noundef nonnull @.str.4) #8
  %607 = load i32, ptr %604, align 4, !tbaa !5
  %608 = call ptr @s2n_strerror_debug(i32 noundef %607, ptr noundef nonnull @.str.4) #8
  %609 = load i32, ptr %590, align 4, !tbaa !5
  %610 = call ptr @strerror(i32 noundef %609) #8
  %611 = load i32, ptr %590, align 4, !tbaa !5
  %612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %602, ptr noundef nonnull %.str.5.sink359, i32 noundef %603, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %606, ptr noundef %608, ptr noundef %610, i32 noundef %611) #10
  call void @exit(i32 noundef 1) #11
  unreachable

613:                                              ; preds = %581
  %614 = load i32, ptr @test_count, align 4, !tbaa !5
  %615 = add nsw i32 %614, 1
  store i32 %615, ptr @test_count, align 4, !tbaa !5
  %616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %617 = load i32, ptr %616, align 4, !tbaa !5
  %618 = icmp eq i32 %617, 335544393
  br i1 %618, label %642, label %619

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

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

630:                                              ; preds = %626, %619
  br label %631

631:                                              ; preds = %626, %630
  %.str.5.sink370 = phi ptr [ @.str.5, %630 ], [ @.str.2, %626 ]
  store i32 %621, ptr %620, align 4, !tbaa !5
  %632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %633 = load i32, ptr @test_count, align 4, !tbaa !5
  %634 = load i32, ptr %616, align 4, !tbaa !5
  %635 = call ptr @s2n_strerror(i32 noundef %634, ptr noundef nonnull @.str.4) #8
  %636 = load i32, ptr %616, align 4, !tbaa !5
  %637 = call ptr @s2n_strerror_debug(i32 noundef %636, ptr noundef nonnull @.str.4) #8
  %638 = load i32, ptr %620, align 4, !tbaa !5
  %639 = call ptr @strerror(i32 noundef %638) #8
  %640 = load i32, ptr %620, align 4, !tbaa !5
  %641 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %632, ptr noundef nonnull %.str.5.sink370, i32 noundef %633, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %635, ptr noundef %637, ptr noundef %639, i32 noundef %640) #10
  call void @exit(i32 noundef 1) #11
  unreachable

642:                                              ; preds = %613
  %643 = add nsw i32 %614, 2
  store i32 %643, ptr @test_count, align 4, !tbaa !5
  %644 = call ptr @s2n_strerror_debug(i32 noundef 335544393, ptr noundef nonnull @.str.4) #8
  %645 = icmp eq ptr %644, null
  br i1 %645, label %646, label %669

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

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

657:                                              ; preds = %653, %646
  br label %658

658:                                              ; preds = %653, %657
  %.str.5.sink379 = phi ptr [ @.str.5, %657 ], [ @.str.2, %653 ]
  store i32 %648, ptr %647, align 4, !tbaa !5
  %659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %660 = load i32, ptr @test_count, align 4, !tbaa !5
  %661 = load i32, ptr %616, align 4, !tbaa !5
  %662 = call ptr @s2n_strerror(i32 noundef %661, ptr noundef nonnull @.str.4) #8
  %663 = load i32, ptr %616, align 4, !tbaa !5
  %664 = call ptr @s2n_strerror_debug(i32 noundef %663, ptr noundef nonnull @.str.4) #8
  %665 = load i32, ptr %647, align 4, !tbaa !5
  %666 = call ptr @strerror(i32 noundef %665) #8
  %667 = load i32, ptr %647, align 4, !tbaa !5
  %668 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %659, ptr noundef nonnull %.str.5.sink379, i32 noundef %660, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 82, ptr noundef %662, ptr noundef %664, ptr noundef %666, i32 noundef %667) #10
  call void @exit(i32 noundef 1) #11
  unreachable

669:                                              ; preds = %642
  store i32 0, ptr %616, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #8
  %670 = tail call ptr @__errno_location() #9
  store i32 0, ptr %670, align 4, !tbaa !5
  %671 = load i32, ptr %553, align 8
  %672 = and i32 %671, -8193
  store i32 %672, ptr %553, align 8
  %673 = load i32, ptr @test_count, align 4, !tbaa !5
  %674 = add nsw i32 %673, 1
  store i32 %674, ptr @test_count, align 4, !tbaa !5
  %675 = call i32 %586(ptr noundef nonnull %553) #8
  %676 = icmp eq i32 %675, -1
  br i1 %676, label %677, label %699

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

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

687:                                              ; preds = %683, %677
  br label %688

688:                                              ; preds = %683, %687
  %.str.5.sink388 = phi ptr [ @.str.5, %687 ], [ @.str.2, %683 ]
  store i32 %678, ptr %670, align 4, !tbaa !5
  %689 = load ptr, ptr @stderr, align 8, !tbaa !9
  %690 = load i32, ptr @test_count, align 4, !tbaa !5
  %691 = load i32, ptr %616, align 4, !tbaa !5
  %692 = call ptr @s2n_strerror(i32 noundef %691, ptr noundef nonnull @.str.4) #8
  %693 = load i32, ptr %616, align 4, !tbaa !5
  %694 = call ptr @s2n_strerror_debug(i32 noundef %693, ptr noundef nonnull @.str.4) #8
  %695 = load i32, ptr %670, align 4, !tbaa !5
  %696 = call ptr @strerror(i32 noundef %695) #8
  %697 = load i32, ptr %670, align 4, !tbaa !5
  %698 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %689, ptr noundef nonnull %.str.5.sink388, i32 noundef %690, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 85, ptr noundef %692, ptr noundef %694, ptr noundef %696, i32 noundef %697) #10
  call void @exit(i32 noundef 1) #11
  unreachable

699:                                              ; preds = %669
  %700 = load i32, ptr @test_count, align 4, !tbaa !5
  %701 = add nsw i32 %700, 1
  store i32 %701, ptr @test_count, align 4, !tbaa !5
  %702 = call i32 @s2n_connection_free(ptr noundef nonnull %553) #8
  %703 = icmp eq i32 %702, -1
  br i1 %703, label %704, label %726

704:                                              ; preds = %699
  %705 = load i32, ptr %670, align 4, !tbaa !5
  %706 = load ptr, ptr @stderr, align 8, !tbaa !9
  %707 = call i32 @s2n_print_stacktrace(ptr noundef %706) #8
  %708 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %709 = trunc nuw i8 %708 to i1
  br i1 %709, label %710, label %714

710:                                              ; preds = %704
  %711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %712 = call i32 @fileno(ptr noundef %711) #8
  %713 = call i32 @isatty(i32 noundef %712) #8
  %.not120 = icmp eq i32 %713, 0
  br i1 %.not120, label %714, label %715

714:                                              ; preds = %710, %704
  br label %715

715:                                              ; preds = %710, %714
  %.str.5.sink397 = phi ptr [ @.str.5, %714 ], [ @.str.2, %710 ]
  store i32 %705, ptr %670, align 4, !tbaa !5
  %716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %717 = load i32, ptr @test_count, align 4, !tbaa !5
  %718 = load i32, ptr %616, align 4, !tbaa !5
  %719 = call ptr @s2n_strerror(i32 noundef %718, ptr noundef nonnull @.str.4) #8
  %720 = load i32, ptr %616, align 4, !tbaa !5
  %721 = call ptr @s2n_strerror_debug(i32 noundef %720, ptr noundef nonnull @.str.4) #8
  %722 = load i32, ptr %670, align 4, !tbaa !5
  %723 = call ptr @strerror(i32 noundef %722) #8
  %724 = load i32, ptr %670, align 4, !tbaa !5
  %725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %716, ptr noundef nonnull %.str.5.sink397, i32 noundef %717, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 87, ptr noundef %719, ptr noundef %721, ptr noundef %723, i32 noundef %724) #10
  call void @exit(i32 noundef 1) #11
  unreachable

726:                                              ; preds = %699
  %727 = call ptr @s2n_connection_new(i32 noundef 1) #8
  %728 = load i32, ptr @test_count, align 4, !tbaa !5
  %729 = add nsw i32 %728, 1
  store i32 %729, ptr @test_count, align 4, !tbaa !5
  %730 = icmp eq ptr %727, null
  br i1 %730, label %731, label %753

731:                                              ; preds = %726
  %732 = load i32, ptr %670, align 4, !tbaa !5
  %733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %734 = call i32 @s2n_print_stacktrace(ptr noundef %733) #8
  %735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %736 = trunc nuw i8 %735 to i1
  br i1 %736, label %737, label %741

737:                                              ; preds = %731
  %738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %739 = call i32 @fileno(ptr noundef %738) #8
  %740 = call i32 @isatty(i32 noundef %739) #8
  %.not119 = icmp eq i32 %740, 0
  br i1 %.not119, label %741, label %742

741:                                              ; preds = %737, %731
  br label %742

742:                                              ; preds = %737, %741
  %.str.5.sink406 = phi ptr [ @.str.5, %741 ], [ @.str.2, %737 ]
  store i32 %732, ptr %670, align 4, !tbaa !5
  %743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %744 = load i32, ptr @test_count, align 4, !tbaa !5
  %745 = load i32, ptr %616, align 4, !tbaa !5
  %746 = call ptr @s2n_strerror(i32 noundef %745, ptr noundef nonnull @.str.4) #8
  %747 = load i32, ptr %616, align 4, !tbaa !5
  %748 = call ptr @s2n_strerror_debug(i32 noundef %747, ptr noundef nonnull @.str.4) #8
  %749 = load i32, ptr %670, align 4, !tbaa !5
  %750 = call ptr @strerror(i32 noundef %749) #8
  %751 = load i32, ptr %670, align 4, !tbaa !5
  %752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %743, ptr noundef nonnull %.str.5.sink406, i32 noundef %744, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %746, ptr noundef %748, ptr noundef %750, i32 noundef %751) #10
  call void @exit(i32 noundef 1) #11
  unreachable

753:                                              ; preds = %726
  %754 = add nsw i32 %728, 2
  store i32 %754, ptr @test_count, align 4, !tbaa !5
  %755 = load ptr, ptr getelementptr inbounds (i8, ptr @s2n_client_ems_extension, i64 24), align 8, !tbaa !42
  %756 = call zeroext i1 %755(ptr noundef nonnull %727) #8
  br i1 %756, label %779, label %757

757:                                              ; preds = %753
  %758 = load i32, ptr %670, align 4, !tbaa !5
  %759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %760 = call i32 @s2n_print_stacktrace(ptr noundef %759) #8
  %761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %762 = trunc nuw i8 %761 to i1
  br i1 %762, label %763, label %767

763:                                              ; preds = %757
  %764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %765 = call i32 @fileno(ptr noundef %764) #8
  %766 = call i32 @isatty(i32 noundef %765) #8
  %.not110 = icmp eq i32 %766, 0
  br i1 %.not110, label %767, label %768

767:                                              ; preds = %763, %757
  br label %768

768:                                              ; preds = %763, %767
  %.str.5.sink415 = phi ptr [ @.str.5, %767 ], [ @.str.2, %763 ]
  store i32 %758, ptr %670, align 4, !tbaa !5
  %769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %770 = load i32, ptr @test_count, align 4, !tbaa !5
  %771 = load i32, ptr %616, align 4, !tbaa !5
  %772 = call ptr @s2n_strerror(i32 noundef %771, ptr noundef nonnull @.str.4) #8
  %773 = load i32, ptr %616, align 4, !tbaa !5
  %774 = call ptr @s2n_strerror_debug(i32 noundef %773, ptr noundef nonnull @.str.4) #8
  %775 = load i32, ptr %670, align 4, !tbaa !5
  %776 = call ptr @strerror(i32 noundef %775) #8
  %777 = load i32, ptr %670, align 4, !tbaa !5
  %778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %769, ptr noundef nonnull %.str.5.sink415, i32 noundef %770, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %772, ptr noundef %774, ptr noundef %776, i32 noundef %777) #10
  call void @exit(i32 noundef 1) #11
  unreachable

779:                                              ; preds = %753
  %780 = load i32, ptr %727, align 8
  %781 = or i32 %780, 24576
  store i32 %781, ptr %727, align 8
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = add nsw i32 %782, 1
  store i32 %783, ptr @test_count, align 4, !tbaa !5
  %784 = call zeroext i1 %755(ptr noundef nonnull %727) #8
  br i1 %784, label %807, label %785

785:                                              ; preds = %779
  %786 = load i32, ptr %670, align 4, !tbaa !5
  %787 = load ptr, ptr @stderr, align 8, !tbaa !9
  %788 = call i32 @s2n_print_stacktrace(ptr noundef %787) #8
  %789 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %790 = trunc nuw i8 %789 to i1
  br i1 %790, label %791, label %795

791:                                              ; preds = %785
  %792 = load ptr, ptr @stderr, align 8, !tbaa !9
  %793 = call i32 @fileno(ptr noundef %792) #8
  %794 = call i32 @isatty(i32 noundef %793) #8
  %.not111 = icmp eq i32 %794, 0
  br i1 %.not111, label %795, label %796

795:                                              ; preds = %791, %785
  br label %796

796:                                              ; preds = %791, %795
  %.str.5.sink424 = phi ptr [ @.str.5, %795 ], [ @.str.2, %791 ]
  store i32 %786, ptr %670, align 4, !tbaa !5
  %797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %798 = load i32, ptr @test_count, align 4, !tbaa !5
  %799 = load i32, ptr %616, align 4, !tbaa !5
  %800 = call ptr @s2n_strerror(i32 noundef %799, ptr noundef nonnull @.str.4) #8
  %801 = load i32, ptr %616, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror_debug(i32 noundef %801, ptr noundef nonnull @.str.4) #8
  %803 = load i32, ptr %670, align 4, !tbaa !5
  %804 = call ptr @strerror(i32 noundef %803) #8
  %805 = load i32, ptr %670, align 4, !tbaa !5
  %806 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %797, ptr noundef nonnull %.str.5.sink424, i32 noundef %798, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 102, ptr noundef %800, ptr noundef %802, ptr noundef %804, i32 noundef %805) #10
  call void @exit(i32 noundef 1) #11
  unreachable

807:                                              ; preds = %779
  %808 = load i32, ptr %727, align 8
  %809 = and i32 %808, -8193
  store i32 %809, ptr %727, align 8
  %810 = load i32, ptr @test_count, align 4, !tbaa !5
  %811 = add nsw i32 %810, 1
  store i32 %811, ptr @test_count, align 4, !tbaa !5
  %812 = call zeroext i1 %755(ptr noundef nonnull %727) #8
  br i1 %812, label %813, label %835

813:                                              ; preds = %807
  %814 = load i32, ptr %670, align 4, !tbaa !5
  %815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %816 = call i32 @s2n_print_stacktrace(ptr noundef %815) #8
  %817 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %818 = trunc nuw i8 %817 to i1
  br i1 %818, label %819, label %823

819:                                              ; preds = %813
  %820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %821 = call i32 @fileno(ptr noundef %820) #8
  %822 = call i32 @isatty(i32 noundef %821) #8
  %.not118 = icmp eq i32 %822, 0
  br i1 %.not118, label %823, label %824

823:                                              ; preds = %819, %813
  br label %824

824:                                              ; preds = %819, %823
  %.str.5.sink433 = phi ptr [ @.str.5, %823 ], [ @.str.2, %819 ]
  store i32 %814, ptr %670, align 4, !tbaa !5
  %825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %826 = load i32, ptr @test_count, align 4, !tbaa !5
  %827 = load i32, ptr %616, align 4, !tbaa !5
  %828 = call ptr @s2n_strerror(i32 noundef %827, ptr noundef nonnull @.str.4) #8
  %829 = load i32, ptr %616, align 4, !tbaa !5
  %830 = call ptr @s2n_strerror_debug(i32 noundef %829, ptr noundef nonnull @.str.4) #8
  %831 = load i32, ptr %670, align 4, !tbaa !5
  %832 = call ptr @strerror(i32 noundef %831) #8
  %833 = load i32, ptr %670, align 4, !tbaa !5
  %834 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %825, ptr noundef nonnull %.str.5.sink433, i32 noundef %826, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 107, ptr noundef %828, ptr noundef %830, ptr noundef %832, i32 noundef %833) #10
  call void @exit(i32 noundef 1) #11
  unreachable

835:                                              ; preds = %807
  %836 = load i32, ptr @test_count, align 4, !tbaa !5
  %837 = add nsw i32 %836, 1
  store i32 %837, ptr @test_count, align 4, !tbaa !5
  %838 = call i32 @s2n_connection_free(ptr noundef nonnull %727) #8
  %839 = icmp eq i32 %838, -1
  br i1 %839, label %840, label %862

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

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

850:                                              ; preds = %846, %840
  br label %851

851:                                              ; preds = %846, %850
  %.str.5.sink442 = phi ptr [ @.str.5, %850 ], [ @.str.2, %846 ]
  store i32 %841, ptr %670, align 4, !tbaa !5
  %852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %853 = load i32, ptr @test_count, align 4, !tbaa !5
  %854 = load i32, ptr %616, align 4, !tbaa !5
  %855 = call ptr @s2n_strerror(i32 noundef %854, ptr noundef nonnull @.str.4) #8
  %856 = load i32, ptr %616, align 4, !tbaa !5
  %857 = call ptr @s2n_strerror_debug(i32 noundef %856, ptr noundef nonnull @.str.4) #8
  %858 = load i32, ptr %670, align 4, !tbaa !5
  %859 = call ptr @strerror(i32 noundef %858) #8
  %860 = load i32, ptr %670, align 4, !tbaa !5
  %861 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %852, ptr noundef nonnull %.str.5.sink442, i32 noundef %853, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %855, ptr noundef %857, ptr noundef %859, i32 noundef %860) #10
  call void @exit(i32 noundef 1) #11
  unreachable

862:                                              ; preds = %835
  %863 = call i32 @s2n_cleanup() #8
  %864 = icmp eq i32 %863, -1
  br i1 %864, label %865, label %887

865:                                              ; preds = %862
  %866 = load i32, ptr %670, align 4, !tbaa !5
  %867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %868 = call i32 @s2n_print_stacktrace(ptr noundef %867) #8
  %869 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %870 = trunc nuw i8 %869 to i1
  br i1 %870, label %871, label %875

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

875:                                              ; preds = %871, %865
  br label %876

876:                                              ; preds = %871, %875
  %.str.5.sink451 = phi ptr [ @.str.5, %875 ], [ @.str.2, %871 ]
  store i32 %866, ptr %670, align 4, !tbaa !5
  %877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %878 = load i32, ptr @test_count, align 4, !tbaa !5
  %879 = load i32, ptr %616, align 4, !tbaa !5
  %880 = call ptr @s2n_strerror(i32 noundef %879, ptr noundef nonnull @.str.4) #8
  %881 = load i32, ptr %616, align 4, !tbaa !5
  %882 = call ptr @s2n_strerror_debug(i32 noundef %881, ptr noundef nonnull @.str.4) #8
  %883 = load i32, ptr %670, align 4, !tbaa !5
  %884 = call ptr @strerror(i32 noundef %883) #8
  %885 = load i32, ptr %670, align 4, !tbaa !5
  %886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %877, ptr noundef nonnull %.str.5.sink451, i32 noundef %878, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %880, ptr noundef %882, ptr noundef %884, i32 noundef %885) #10
  call void @exit(i32 noundef 1) #11
  unreachable

887:                                              ; preds = %862
  %888 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #8
  %889 = icmp eq i32 %888, -1
  br i1 %889, label %890, label %912

890:                                              ; preds = %887
  %891 = load i32, ptr %670, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = call i32 @s2n_print_stacktrace(ptr noundef %892) #8
  %894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %895 = trunc nuw i8 %894 to i1
  br i1 %895, label %896, label %900

896:                                              ; preds = %890
  %897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %898 = call i32 @fileno(ptr noundef %897) #8
  %899 = call i32 @isatty(i32 noundef %898) #8
  %.not115 = icmp eq i32 %899, 0
  br i1 %.not115, label %900, label %901

900:                                              ; preds = %896, %890
  br label %901

901:                                              ; preds = %896, %900
  %.str.5.sink460 = phi ptr [ @.str.5, %900 ], [ @.str.2, %896 ]
  store i32 %891, ptr %670, align 4, !tbaa !5
  %902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %903 = load i32, ptr @test_count, align 4, !tbaa !5
  %904 = load i32, ptr %616, align 4, !tbaa !5
  %905 = call ptr @s2n_strerror(i32 noundef %904, ptr noundef nonnull @.str.4) #8
  %906 = load i32, ptr %616, align 4, !tbaa !5
  %907 = call ptr @s2n_strerror_debug(i32 noundef %906, ptr noundef nonnull @.str.4) #8
  %908 = load i32, ptr %670, align 4, !tbaa !5
  %909 = call ptr @strerror(i32 noundef %908) #8
  %910 = load i32, ptr %670, align 4, !tbaa !5
  %911 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %902, ptr noundef nonnull %.str.5.sink460, i32 noundef %903, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 112, ptr noundef %905, ptr noundef %907, ptr noundef %909, i32 noundef %910) #10
  call void @exit(i32 noundef 1) #11
  unreachable

912:                                              ; preds = %887
  %913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %914 = trunc nuw i8 %913 to i1
  br i1 %914, label %915, label %926

915:                                              ; preds = %912
  %916 = load ptr, ptr @stdout, align 8, !tbaa !9
  %917 = call i32 @fileno(ptr noundef %916) #8
  %918 = call i32 @isatty(i32 noundef %917) #8
  %.not112 = icmp eq i32 %918, 0
  br i1 %.not112, label %926, label %919

919:                                              ; preds = %915
  %920 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not114 = icmp eq i32 %920, 0
  %921 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not114, label %924, label %922

922:                                              ; preds = %919
  %923 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef nonnull @.str.32, i32 noundef %920) #8
  br label %933

924:                                              ; preds = %919
  %925 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %921, ptr noundef nonnull @.str.33) #8
  br label %933

926:                                              ; preds = %915, %912
  %927 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not113 = icmp eq i32 %927, 0
  %928 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not113, label %931, label %929

929:                                              ; preds = %926
  %930 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull @.str.34, i32 noundef %927) #8
  br label %933

931:                                              ; preds = %926
  %932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %928, ptr noundef nonnull @.str.35) #8
  br label %933

933:                                              ; preds = %929, %931, %922, %924
  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_connection_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_connection_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

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

declare void @s2n_debug_info_reset() local_unnamed_addr #2

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !7, i64 220}
!16 = !{!"s2n_connection", !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 0, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 1, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !6, i64 2, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !7, i64 80, !7, i64 102, !7, i64 124, !6, i64 148, !6, i64 152, !17, i64 160, !18, i64 168, !18, i64 176, !7, i64 184, !7, i64 216, !7, i64 217, !7, i64 218, !7, i64 219, !7, i64 220, !7, i64 221, !7, i64 222, !10, i64 224, !10, i64 232, !19, i64 240, !10, i64 632, !10, i64 640, !20, i64 648, !26, i64 1144, !29, i64 1688, !10, i64 1752, !7, i64 1760, !6, i64 1764, !7, i64 1768, !32, i64 1776, !32, i64 1816, !32, i64 1856, !32, i64 1896, !6, i64 1936, !18, i64 1944, !7, i64 1952, !32, i64 1960, !7, i64 2000, !7, i64 2001, !7, i64 2002, !12, i64 2003, !33, i64 2004, !33, i64 2008, !34, i64 2016, !31, i64 2208, !6, i64 2212, !31, i64 2216, !18, i64 2224, !7, i64 2232, !18, i64 2240, !18, i64 2248, !18, i64 2256, !33, i64 2264, !33, i64 2268, !7, i64 2272, !7, i64 2528, !6, i64 2784, !25, i64 2792, !6, i64 2816, !25, i64 2824, !25, i64 2848, !25, i64 2872, !36, i64 2896, !38, i64 3704, !10, i64 3760, !10, i64 3768, !7, i64 3776, !6, i64 3780, !25, i64 3784, !6, i64 3808, !40, i64 3816, !7, i64 3848, !32, i64 3992, !25, i64 4032, !25, i64 4056, !12, i64 4080, !12, i64 4081, !12, i64 4082, !31, i64 4084, !31, i64 4086, !6, i64 4088, !6, i64 4092, !25, i64 4096, !6, i64 4120, !41, i64 4128, !33, i64 4176, !7, i64 4180, !7, i64 4181}
!17 = !{!"s2n_timer", !18, i64 0}
!18 = !{!"long", !7, i64 0}
!19 = !{!"s2n_secrets", !7, i64 0, !6, i64 388}
!20 = !{!"s2n_kex_parameters", !21, i64 0, !22, i64 8, !7, i64 24, !22, i64 56, !23, i64 72, !23, i64 184, !7, i64 296, !24, i64 360, !25, i64 448, !25, i64 472}
!21 = !{!"s2n_dh_params", !10, i64 0}
!22 = !{!"s2n_ecc_evp_params", !10, i64 0, !10, i64 8}
!23 = !{!"s2n_kem_group_params", !10, i64 0, !24, i64 8, !22, i64 96}
!24 = !{!"s2n_kem_params", !10, i64 0, !25, i64 8, !25, i64 32, !25, i64 56, !12, i64 80}
!25 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!26 = !{!"s2n_handshake_parameters", !27, i64 0, !27, i64 48, !25, i64 96, !6, i64 120, !28, i64 124, !10, i64 384, !10, i64 392, !10, i64 400, !7, i64 408, !7, i64 440, !7, i64 472, !7, i64 473, !7, i64 474, !7, i64 506}
!27 = !{!"s2n_pkey", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40}
!28 = !{!"s2n_sig_scheme_list", !7, i64 0, !7, i64 256}
!29 = !{!"s2n_psk_parameters", !6, i64 0, !30, i64 8, !31, i64 40, !31, i64 42, !10, i64 48, !6, i64 56}
!30 = !{!"s2n_array", !25, i64 0, !6, i64 24, !6, i64 28}
!31 = !{!"short", !7, i64 0}
!32 = !{!"s2n_stuffer", !25, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!33 = !{!"", !6, i64 0}
!34 = !{!"s2n_handshake", !32, i64 0, !10, i64 40, !7, i64 48, !7, i64 56, !7, i64 104, !7, i64 152, !6, i64 156, !6, i64 160, !6, i64 164, !6, i64 168, !35, i64 176, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 184, !6, i64 188}
!35 = !{!"s2n_offered_early_data", !10, i64 0}
!36 = !{!"s2n_client_hello", !25, i64 0, !37, i64 24, !25, i64 728, !25, i64 752, !25, i64 776, !7, i64 800, !7, i64 801, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802, !6, i64 802}
!37 = !{!"", !7, i64 0, !25, i64 672, !31, i64 696}
!38 = !{!"s2n_x509_validator", !10, i64 0, !10, i64 8, !7, i64 16, !7, i64 17, !31, i64 18, !10, i64 24, !6, i64 32, !10, i64 40, !39, i64 48, !12, i64 52}
!39 = !{!"s2n_cert_validation_info", !6, i64 0, !6, i64 0}
!40 = !{!"s2n_ticket_fields", !25, i64 0, !6, i64 24}
!41 = !{!"s2n_post_handshake", !32, i64 0, !7, i64 40}
!42 = !{!43, !10, i64 24}
!43 = !{!"", !31, i64 0, !6, i64 2, !31, i64 4, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32}
!44 = !{!43, !10, i64 32}


; Effective O3 passes: EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass