; LLVM IR from aws/s2n-tls :: tests/unit (s2n_fingerprint_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_fingerprint_method = type { i32, i32, ptr }
%struct.s2n_result = type { i32 }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_fingerprint_hash = type { i32, ptr, ptr }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%union.anon = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_fingerprint = type { i64, ptr, ptr, %struct.s2n_hash_state, %struct.s2n_stuffer }
%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_test_hello = type { ptr, [100 x i8], [100 x i8], i8 }

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

383:                                              ; preds = %2
  br label %384

384:                                              ; preds = %383
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %385 = load ptr, ptr @stdout, align 8, !tbaa !9
  %386 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %385, ptr noundef @.str, ptr noundef @.str.1) #11
  %387 = load ptr, ptr @stdout, align 8, !tbaa !9
  %388 = call i32 @fflush(ptr noundef %387)
  br label %389

389:                                              ; preds = %384
  %390 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext true)
  %391 = icmp eq i32 %390, -1
  br i1 %391, label %392, label %443

392:                                              ; preds = %389
  br label %393

393:                                              ; preds = %392
  br label %394

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

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

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

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

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

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

442:                                              ; No predecessors!
  br label %443

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

444:                                              ; preds = %443
  br label %445

445:                                              ; preds = %444
  %446 = load i32, ptr @test_count, align 4, !tbaa !5
  %447 = add nsw i32 %446, 1
  store i32 %447, ptr @test_count, align 4, !tbaa !5
  %448 = call i32 @s2n_enable_atexit()
  %449 = icmp eq i32 %448, -1
  br i1 %449, label %450, label %501

450:                                              ; preds = %445
  br label %451

451:                                              ; preds = %450
  br label %452

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

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

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

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

498:                                              ; preds = %481, %464
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #11
  br label %499

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

500:                                              ; No predecessors!
  br label %501

501:                                              ; preds = %500, %445
  br label %502

502:                                              ; preds = %501
  br label %503

503:                                              ; preds = %502
  br label %504

504:                                              ; preds = %503
  %505 = call i32 @s2n_init()
  %506 = icmp eq i32 %505, -1
  br i1 %506, label %507, label %558

507:                                              ; preds = %504
  br label %508

508:                                              ; preds = %507
  br label %509

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

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

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

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

555:                                              ; preds = %538, %521
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #11
  br label %556

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

557:                                              ; No predecessors!
  br label %558

558:                                              ; preds = %557, %504
  br label %559

559:                                              ; preds = %558
  br label %560

560:                                              ; preds = %559
  call void @llvm.lifetime.start.p0(i64 1, ptr %9) #11
  store i8 33, ptr %9, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 6, ptr %10) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 1 %10, ptr align 1 @__const.main.test_str, i64 6, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %11) #11
  store i64 5, ptr %11, align 8, !tbaa !16
  br label %561

561:                                              ; preds = %560
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr @test_count, align 4, !tbaa !5
  br label %564

564:                                              ; preds = %561
  br label %565

565:                                              ; preds = %564
  call void @llvm.lifetime.start.p0(i64 32, ptr %12) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %12, ptr align 16 @__const.main.test_str_digest, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 47, ptr %13) #11
  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %13, ptr align 16 @__const.main.raw_client_hello, i64 47, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr %14) #11
  store ptr null, ptr %14, align 8, !tbaa !9
  %566 = getelementptr inbounds [47 x i8], ptr %13, i64 0, i64 0
  %567 = call ptr @s2n_client_hello_parse_message(ptr noundef %566, i32 noundef 47)
  store ptr %567, ptr %14, align 8, !tbaa !9
  br label %568

568:                                              ; preds = %565
  %569 = load i32, ptr @test_count, align 4, !tbaa !5
  %570 = add nsw i32 %569, 1
  store i32 %570, ptr @test_count, align 4, !tbaa !5
  %571 = load ptr, ptr %14, align 8, !tbaa !9
  %572 = icmp eq ptr %571, null
  br i1 %572, label %573, label %626

573:                                              ; preds = %568
  br label %574

574:                                              ; preds = %573
  br label %575

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

582:                                              ; preds = %575
  %583 = load ptr, ptr @stderr, align 8, !tbaa !9
  %584 = call i32 @fileno(ptr noundef %583) #11
  %585 = call i32 @isatty(i32 noundef %584) #11
  %586 = icmp ne i32 %585, 0
  br i1 %586, label %587, label %604

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

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

621:                                              ; preds = %604, %587
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #11
  br label %622

622:                                              ; preds = %621
  br label %623

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

624:                                              ; No predecessors!
  br label %625

625:                                              ; preds = %624
  br label %626

626:                                              ; preds = %625, %568
  br label %627

627:                                              ; preds = %626
  br label %628

628:                                              ; preds = %627
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #11
  store i32 12, ptr %16, align 4, !tbaa !5
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  br label %631

631:                                              ; preds = %630
  %632 = load i32, ptr @test_count, align 4, !tbaa !5
  %633 = add nsw i32 %632, 1
  store i32 %633, ptr @test_count, align 4, !tbaa !5
  %634 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef null, i8 noundef signext 33)
  %635 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  store i32 %634, ptr %635, align 4
  %636 = getelementptr inbounds %struct.s2n_result, ptr %17, i32 0, i32 0
  %637 = load i32, ptr %636, align 4
  %638 = call zeroext i1 @s2n_result_is_error(i32 %637)
  br i1 %638, label %692, label %639

639:                                              ; preds = %631
  br label %640

640:                                              ; preds = %639
  br label %641

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

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

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

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

687:                                              ; preds = %670, %653
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #11
  br label %688

688:                                              ; preds = %687
  br label %689

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

690:                                              ; No predecessors!
  br label %691

691:                                              ; preds = %690
  br label %692

692:                                              ; preds = %691, %631
  br label %693

693:                                              ; preds = %692
  br label %694

694:                                              ; preds = %693
  br label %695

695:                                              ; preds = %694
  %696 = load i32, ptr @test_count, align 4, !tbaa !5
  %697 = add nsw i32 %696, 1
  store i32 %697, ptr @test_count, align 4, !tbaa !5
  %698 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %699 = load i32, ptr %698, align 4, !tbaa !5
  %700 = icmp eq i32 %699, 402653193
  br i1 %700, label %754, label %701

701:                                              ; preds = %695
  br label %702

702:                                              ; preds = %701
  br label %703

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

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

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

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

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

750:                                              ; preds = %749
  br label %751

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

752:                                              ; No predecessors!
  br label %753

753:                                              ; preds = %752
  br label %754

754:                                              ; preds = %753, %695
  br label %755

755:                                              ; preds = %754
  br label %756

756:                                              ; preds = %755
  br label %757

757:                                              ; preds = %756
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = add nsw i32 %758, 1
  store i32 %759, ptr @test_count, align 4, !tbaa !5
  %760 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %761 = load i32, ptr %760, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef @.str.4)
  %763 = icmp eq ptr %762, null
  br i1 %763, label %764, label %817

764:                                              ; preds = %757
  br label %765

765:                                              ; preds = %764
  br label %766

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

773:                                              ; preds = %766
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @fileno(ptr noundef %774) #11
  %776 = call i32 @isatty(i32 noundef %775) #11
  %777 = icmp ne i32 %776, 0
  br i1 %777, label %778, label %795

778:                                              ; preds = %773
  %779 = load i32, ptr %20, align 4, !tbaa !5
  %780 = call ptr @__errno_location() #12
  store i32 %779, ptr %780, align 4, !tbaa !5
  %781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %782 = load i32, ptr @test_count, align 4, !tbaa !5
  %783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %784 = load i32, ptr %783, align 4, !tbaa !5
  %785 = call ptr @s2n_strerror(i32 noundef %784, ptr noundef @.str.4)
  %786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %787 = load i32, ptr %786, align 4, !tbaa !5
  %788 = call ptr @s2n_strerror_debug(i32 noundef %787, ptr noundef @.str.4)
  %789 = call ptr @__errno_location() #12
  %790 = load i32, ptr %789, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #11
  %792 = call ptr @__errno_location() #12
  %793 = load i32, ptr %792, align 4, !tbaa !5
  %794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %781, ptr noundef @.str.2, i32 noundef %782, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 83, ptr noundef %785, ptr noundef %788, ptr noundef %791, i32 noundef %793) #11
  br label %812

795:                                              ; preds = %773, %766
  %796 = load i32, ptr %20, align 4, !tbaa !5
  %797 = call ptr @__errno_location() #12
  store i32 %796, ptr %797, align 4, !tbaa !5
  %798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %799 = load i32, ptr @test_count, align 4, !tbaa !5
  %800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %801 = load i32, ptr %800, align 4, !tbaa !5
  %802 = call ptr @s2n_strerror(i32 noundef %801, ptr noundef @.str.4)
  %803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %804 = load i32, ptr %803, align 4, !tbaa !5
  %805 = call ptr @s2n_strerror_debug(i32 noundef %804, ptr noundef @.str.4)
  %806 = call ptr @__errno_location() #12
  %807 = load i32, ptr %806, align 4, !tbaa !5
  %808 = call ptr @strerror(i32 noundef %807) #11
  %809 = call ptr @__errno_location() #12
  %810 = load i32, ptr %809, align 4, !tbaa !5
  %811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %798, ptr noundef @.str.5, i32 noundef %799, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 83, ptr noundef %802, ptr noundef %805, ptr noundef %808, i32 noundef %810) #11
  br label %812

812:                                              ; preds = %795, %778
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #11
  br label %813

813:                                              ; preds = %812
  br label %814

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

815:                                              ; No predecessors!
  br label %816

816:                                              ; preds = %815
  br label %817

817:                                              ; preds = %816, %757
  br label %818

818:                                              ; preds = %817
  br label %819

819:                                              ; preds = %818
  br label %820

820:                                              ; preds = %819
  br label %821

821:                                              ; preds = %820
  br label %822

822:                                              ; preds = %821
  %823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %823, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %824 = call ptr @__errno_location() #12
  store i32 0, ptr %824, align 4, !tbaa !5
  br label %825

825:                                              ; preds = %822
  br label %826

826:                                              ; preds = %825
  br label %827

827:                                              ; preds = %826
  br label %828

828:                                              ; preds = %827
  call void @llvm.lifetime.start.p0(i64 40, ptr %21) #11
  call void @llvm.memset.p0.i64(ptr align 8 %21, i8 0, i64 40, i1 false)
  br label %829

829:                                              ; preds = %828
  %830 = load i32, ptr @test_count, align 4, !tbaa !5
  %831 = add nsw i32 %830, 1
  store i32 %831, ptr @test_count, align 4, !tbaa !5
  %832 = call i32 @s2n_stuffer_alloc(ptr noundef %21, i32 noundef 10)
  %833 = icmp eq i32 %832, -1
  br i1 %833, label %834, label %887

834:                                              ; preds = %829
  br label %835

835:                                              ; preds = %834
  br label %836

836:                                              ; preds = %835
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #11
  %837 = call ptr @__errno_location() #12
  %838 = load i32, ptr %837, align 4, !tbaa !5
  store i32 %838, ptr %22, align 4, !tbaa !5
  %839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %840 = call i32 @s2n_print_stacktrace(ptr noundef %839)
  %841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %842 = trunc i8 %841 to i1
  br i1 %842, label %843, label %865

843:                                              ; preds = %836
  %844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %845 = call i32 @fileno(ptr noundef %844) #11
  %846 = call i32 @isatty(i32 noundef %845) #11
  %847 = icmp ne i32 %846, 0
  br i1 %847, label %848, label %865

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

865:                                              ; preds = %843, %836
  %866 = load i32, ptr %22, align 4, !tbaa !5
  %867 = call ptr @__errno_location() #12
  store i32 %866, ptr %867, align 4, !tbaa !5
  %868 = load ptr, ptr @stderr, align 8, !tbaa !9
  %869 = load i32, ptr @test_count, align 4, !tbaa !5
  %870 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %871 = load i32, ptr %870, align 4, !tbaa !5
  %872 = call ptr @s2n_strerror(i32 noundef %871, ptr noundef @.str.4)
  %873 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %874 = load i32, ptr %873, align 4, !tbaa !5
  %875 = call ptr @s2n_strerror_debug(i32 noundef %874, ptr noundef @.str.4)
  %876 = call ptr @__errno_location() #12
  %877 = load i32, ptr %876, align 4, !tbaa !5
  %878 = call ptr @strerror(i32 noundef %877) #11
  %879 = call ptr @__errno_location() #12
  %880 = load i32, ptr %879, align 4, !tbaa !5
  %881 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %868, ptr noundef @.str.5, i32 noundef %869, ptr noundef @.str.12, ptr noundef @.str.1, i32 noundef 88, ptr noundef %872, ptr noundef %875, ptr noundef %878, i32 noundef %880) #11
  br label %882

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

883:                                              ; preds = %882
  br label %884

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

885:                                              ; No predecessors!
  br label %886

886:                                              ; preds = %885
  br label %887

887:                                              ; preds = %886, %829
  br label %888

888:                                              ; preds = %887
  br label %889

889:                                              ; preds = %888
  call void @llvm.lifetime.start.p0(i64 24, ptr %23) #11
  %890 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %23, i32 0, i32 0
  store i32 0, ptr %890, align 8, !tbaa !18
  %891 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %23, i32 0, i32 1
  store ptr %21, ptr %891, align 8, !tbaa !20
  %892 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %23, i32 0, i32 2
  store ptr null, ptr %892, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #11
  store i64 1, ptr %24, align 8, !tbaa !16
  br label %893

893:                                              ; preds = %1150, %889
  %894 = load i64, ptr %24, align 8, !tbaa !16
  %895 = icmp ule i64 %894, 10
  br i1 %895, label %897, label %896

896:                                              ; preds = %893
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #11
  br label %1153

897:                                              ; preds = %893
  br label %898

898:                                              ; preds = %897
  %899 = load i32, ptr @test_count, align 4, !tbaa !5
  %900 = add nsw i32 %899, 1
  store i32 %900, ptr @test_count, align 4, !tbaa !5
  %901 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef %23, i8 noundef signext 33)
  %902 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  store i32 %901, ptr %902, align 4
  %903 = getelementptr inbounds %struct.s2n_result, ptr %25, i32 0, i32 0
  %904 = load i32, ptr %903, align 4
  %905 = call zeroext i1 @s2n_result_is_ok(i32 %904)
  br i1 %905, label %959, label %906

906:                                              ; preds = %898
  br label %907

907:                                              ; preds = %906
  br label %908

908:                                              ; preds = %907
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #11
  %909 = call ptr @__errno_location() #12
  %910 = load i32, ptr %909, align 4, !tbaa !5
  store i32 %910, ptr %26, align 4, !tbaa !5
  %911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %912 = call i32 @s2n_print_stacktrace(ptr noundef %911)
  %913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %914 = trunc i8 %913 to i1
  br i1 %914, label %915, label %937

915:                                              ; preds = %908
  %916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %917 = call i32 @fileno(ptr noundef %916) #11
  %918 = call i32 @isatty(i32 noundef %917) #11
  %919 = icmp ne i32 %918, 0
  br i1 %919, label %920, label %937

920:                                              ; preds = %915
  %921 = load i32, ptr %26, align 4, !tbaa !5
  %922 = call ptr @__errno_location() #12
  store i32 %921, ptr %922, align 4, !tbaa !5
  %923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %924 = load i32, ptr @test_count, align 4, !tbaa !5
  %925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %926 = load i32, ptr %925, align 4, !tbaa !5
  %927 = call ptr @s2n_strerror(i32 noundef %926, ptr noundef @.str.4)
  %928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %929 = load i32, ptr %928, align 4, !tbaa !5
  %930 = call ptr @s2n_strerror_debug(i32 noundef %929, ptr noundef @.str.4)
  %931 = call ptr @__errno_location() #12
  %932 = load i32, ptr %931, align 4, !tbaa !5
  %933 = call ptr @strerror(i32 noundef %932) #11
  %934 = call ptr @__errno_location() #12
  %935 = load i32, ptr %934, align 4, !tbaa !5
  %936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %923, ptr noundef @.str.2, i32 noundef %924, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 92, ptr noundef %927, ptr noundef %930, ptr noundef %933, i32 noundef %935) #11
  br label %954

937:                                              ; preds = %915, %908
  %938 = load i32, ptr %26, align 4, !tbaa !5
  %939 = call ptr @__errno_location() #12
  store i32 %938, ptr %939, align 4, !tbaa !5
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = load i32, ptr @test_count, align 4, !tbaa !5
  %942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %943 = load i32, ptr %942, align 4, !tbaa !5
  %944 = call ptr @s2n_strerror(i32 noundef %943, ptr noundef @.str.4)
  %945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %946 = load i32, ptr %945, align 4, !tbaa !5
  %947 = call ptr @s2n_strerror_debug(i32 noundef %946, ptr noundef @.str.4)
  %948 = call ptr @__errno_location() #12
  %949 = load i32, ptr %948, align 4, !tbaa !5
  %950 = call ptr @strerror(i32 noundef %949) #11
  %951 = call ptr @__errno_location() #12
  %952 = load i32, ptr %951, align 4, !tbaa !5
  %953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %940, ptr noundef @.str.5, i32 noundef %941, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 92, ptr noundef %944, ptr noundef %947, ptr noundef %950, i32 noundef %952) #11
  br label %954

954:                                              ; preds = %937, %920
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #11
  br label %955

955:                                              ; preds = %954
  br label %956

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

957:                                              ; No predecessors!
  br label %958

958:                                              ; preds = %957
  br label %959

959:                                              ; preds = %958, %898
  br label %960

960:                                              ; preds = %959
  br label %961

961:                                              ; preds = %960
  br label %962

962:                                              ; preds = %961
  %963 = load i32, ptr @test_count, align 4, !tbaa !5
  %964 = add nsw i32 %963, 1
  store i32 %964, ptr @test_count, align 4, !tbaa !5
  %965 = getelementptr inbounds %struct.s2n_stuffer, ptr %21, i32 0, i32 2
  %966 = load i32, ptr %965, align 4, !tbaa !22
  %967 = getelementptr inbounds %struct.s2n_stuffer, ptr %21, i32 0, i32 1
  %968 = load i32, ptr %967, align 8, !tbaa !25
  %969 = sub i32 %966, %968
  %970 = icmp eq i32 %969, 1
  br i1 %970, label %1024, label %971

971:                                              ; preds = %962
  br label %972

972:                                              ; preds = %971
  br label %973

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

980:                                              ; preds = %973
  %981 = load ptr, ptr @stderr, align 8, !tbaa !9
  %982 = call i32 @fileno(ptr noundef %981) #11
  %983 = call i32 @isatty(i32 noundef %982) #11
  %984 = icmp ne i32 %983, 0
  br i1 %984, label %985, label %1002

985:                                              ; preds = %980
  %986 = load i32, ptr %27, align 4, !tbaa !5
  %987 = call ptr @__errno_location() #12
  store i32 %986, ptr %987, align 4, !tbaa !5
  %988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %989 = load i32, ptr @test_count, align 4, !tbaa !5
  %990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %991 = load i32, ptr %990, align 4, !tbaa !5
  %992 = call ptr @s2n_strerror(i32 noundef %991, ptr noundef @.str.4)
  %993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %994 = load i32, ptr %993, align 4, !tbaa !5
  %995 = call ptr @s2n_strerror_debug(i32 noundef %994, ptr noundef @.str.4)
  %996 = call ptr @__errno_location() #12
  %997 = load i32, ptr %996, align 4, !tbaa !5
  %998 = call ptr @strerror(i32 noundef %997) #11
  %999 = call ptr @__errno_location() #12
  %1000 = load i32, ptr %999, align 4, !tbaa !5
  %1001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %988, ptr noundef @.str.2, i32 noundef %989, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 93, ptr noundef %992, ptr noundef %995, ptr noundef %998, i32 noundef %1000) #11
  br label %1019

1002:                                             ; preds = %980, %973
  %1003 = load i32, ptr %27, align 4, !tbaa !5
  %1004 = call ptr @__errno_location() #12
  store i32 %1003, ptr %1004, align 4, !tbaa !5
  %1005 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1006 = load i32, ptr @test_count, align 4, !tbaa !5
  %1007 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1008 = load i32, ptr %1007, align 4, !tbaa !5
  %1009 = call ptr @s2n_strerror(i32 noundef %1008, ptr noundef @.str.4)
  %1010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1011 = load i32, ptr %1010, align 4, !tbaa !5
  %1012 = call ptr @s2n_strerror_debug(i32 noundef %1011, ptr noundef @.str.4)
  %1013 = call ptr @__errno_location() #12
  %1014 = load i32, ptr %1013, align 4, !tbaa !5
  %1015 = call ptr @strerror(i32 noundef %1014) #11
  %1016 = call ptr @__errno_location() #12
  %1017 = load i32, ptr %1016, align 4, !tbaa !5
  %1018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1005, ptr noundef @.str.5, i32 noundef %1006, ptr noundef @.str.14, ptr noundef @.str.1, i32 noundef 93, ptr noundef %1009, ptr noundef %1012, ptr noundef %1015, i32 noundef %1017) #11
  br label %1019

1019:                                             ; preds = %1002, %985
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #11
  br label %1020

1020:                                             ; preds = %1019
  br label %1021

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

1022:                                             ; No predecessors!
  br label %1023

1023:                                             ; preds = %1022
  br label %1024

1024:                                             ; preds = %1023, %962
  br label %1025

1025:                                             ; preds = %1024
  br label %1026

1026:                                             ; preds = %1025
  call void @llvm.lifetime.start.p0(i64 1, ptr %28) #11
  store i8 0, ptr %28, align 1, !tbaa !15
  br label %1027

1027:                                             ; preds = %1026
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = add nsw i32 %1028, 1
  store i32 %1029, ptr @test_count, align 4, !tbaa !5
  %1030 = call i32 @s2n_stuffer_read_uint8(ptr noundef %21, ptr noundef %28)
  %1031 = icmp eq i32 %1030, -1
  br i1 %1031, label %1032, label %1085

1032:                                             ; preds = %1027
  br label %1033

1033:                                             ; preds = %1032
  br label %1034

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

1041:                                             ; preds = %1034
  %1042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1043 = call i32 @fileno(ptr noundef %1042) #11
  %1044 = call i32 @isatty(i32 noundef %1043) #11
  %1045 = icmp ne i32 %1044, 0
  br i1 %1045, label %1046, label %1063

1046:                                             ; preds = %1041
  %1047 = load i32, ptr %29, align 4, !tbaa !5
  %1048 = call ptr @__errno_location() #12
  store i32 %1047, ptr %1048, align 4, !tbaa !5
  %1049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1050 = load i32, ptr @test_count, align 4, !tbaa !5
  %1051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1052 = load i32, ptr %1051, align 4, !tbaa !5
  %1053 = call ptr @s2n_strerror(i32 noundef %1052, ptr noundef @.str.4)
  %1054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1055 = load i32, ptr %1054, align 4, !tbaa !5
  %1056 = call ptr @s2n_strerror_debug(i32 noundef %1055, ptr noundef @.str.4)
  %1057 = call ptr @__errno_location() #12
  %1058 = load i32, ptr %1057, align 4, !tbaa !5
  %1059 = call ptr @strerror(i32 noundef %1058) #11
  %1060 = call ptr @__errno_location() #12
  %1061 = load i32, ptr %1060, align 4, !tbaa !5
  %1062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1049, ptr noundef @.str.2, i32 noundef %1050, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1053, ptr noundef %1056, ptr noundef %1059, i32 noundef %1061) #11
  br label %1080

1063:                                             ; preds = %1041, %1034
  %1064 = load i32, ptr %29, align 4, !tbaa !5
  %1065 = call ptr @__errno_location() #12
  store i32 %1064, ptr %1065, align 4, !tbaa !5
  %1066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1067 = load i32, ptr @test_count, align 4, !tbaa !5
  %1068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1069 = load i32, ptr %1068, align 4, !tbaa !5
  %1070 = call ptr @s2n_strerror(i32 noundef %1069, ptr noundef @.str.4)
  %1071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1072 = load i32, ptr %1071, align 4, !tbaa !5
  %1073 = call ptr @s2n_strerror_debug(i32 noundef %1072, ptr noundef @.str.4)
  %1074 = call ptr @__errno_location() #12
  %1075 = load i32, ptr %1074, align 4, !tbaa !5
  %1076 = call ptr @strerror(i32 noundef %1075) #11
  %1077 = call ptr @__errno_location() #12
  %1078 = load i32, ptr %1077, align 4, !tbaa !5
  %1079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1066, ptr noundef @.str.5, i32 noundef %1067, ptr noundef @.str.15, ptr noundef @.str.1, i32 noundef 96, ptr noundef %1070, ptr noundef %1073, ptr noundef %1076, i32 noundef %1078) #11
  br label %1080

1080:                                             ; preds = %1063, %1046
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #11
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

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

1083:                                             ; No predecessors!
  br label %1084

1084:                                             ; preds = %1083
  br label %1085

1085:                                             ; preds = %1084, %1027
  br label %1086

1086:                                             ; preds = %1085
  br label %1087

1087:                                             ; preds = %1086
  br label %1088

1088:                                             ; preds = %1087
  %1089 = load i32, ptr @test_count, align 4, !tbaa !5
  %1090 = add nsw i32 %1089, 1
  store i32 %1090, ptr @test_count, align 4, !tbaa !5
  %1091 = load i8, ptr %28, align 1, !tbaa !15
  %1092 = sext i8 %1091 to i32
  %1093 = icmp eq i32 %1092, 33
  br i1 %1093, label %1147, label %1094

1094:                                             ; preds = %1088
  br label %1095

1095:                                             ; preds = %1094
  br label %1096

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

1103:                                             ; preds = %1096
  %1104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1105 = call i32 @fileno(ptr noundef %1104) #11
  %1106 = call i32 @isatty(i32 noundef %1105) #11
  %1107 = icmp ne i32 %1106, 0
  br i1 %1107, label %1108, label %1125

1108:                                             ; preds = %1103
  %1109 = load i32, ptr %30, align 4, !tbaa !5
  %1110 = call ptr @__errno_location() #12
  store i32 %1109, ptr %1110, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1114 = load i32, ptr %1113, align 4, !tbaa !5
  %1115 = call ptr @s2n_strerror(i32 noundef %1114, ptr noundef @.str.4)
  %1116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1117 = load i32, ptr %1116, align 4, !tbaa !5
  %1118 = call ptr @s2n_strerror_debug(i32 noundef %1117, ptr noundef @.str.4)
  %1119 = call ptr @__errno_location() #12
  %1120 = load i32, ptr %1119, align 4, !tbaa !5
  %1121 = call ptr @strerror(i32 noundef %1120) #11
  %1122 = call ptr @__errno_location() #12
  %1123 = load i32, ptr %1122, align 4, !tbaa !5
  %1124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef @.str.2, i32 noundef %1112, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1115, ptr noundef %1118, ptr noundef %1121, i32 noundef %1123) #11
  br label %1142

1125:                                             ; preds = %1103, %1096
  %1126 = load i32, ptr %30, align 4, !tbaa !5
  %1127 = call ptr @__errno_location() #12
  store i32 %1126, ptr %1127, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = load i32, ptr @test_count, align 4, !tbaa !5
  %1130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1131 = load i32, ptr %1130, align 4, !tbaa !5
  %1132 = call ptr @s2n_strerror(i32 noundef %1131, ptr noundef @.str.4)
  %1133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1134 = load i32, ptr %1133, align 4, !tbaa !5
  %1135 = call ptr @s2n_strerror_debug(i32 noundef %1134, ptr noundef @.str.4)
  %1136 = call ptr @__errno_location() #12
  %1137 = load i32, ptr %1136, align 4, !tbaa !5
  %1138 = call ptr @strerror(i32 noundef %1137) #11
  %1139 = call ptr @__errno_location() #12
  %1140 = load i32, ptr %1139, align 4, !tbaa !5
  %1141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1128, ptr noundef @.str.5, i32 noundef %1129, ptr noundef @.str.16, ptr noundef @.str.1, i32 noundef 97, ptr noundef %1132, ptr noundef %1135, ptr noundef %1138, i32 noundef %1140) #11
  br label %1142

1142:                                             ; preds = %1125, %1108
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #11
  br label %1143

1143:                                             ; preds = %1142
  br label %1144

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

1145:                                             ; No predecessors!
  br label %1146

1146:                                             ; preds = %1145
  br label %1147

1147:                                             ; preds = %1146, %1088
  br label %1148

1148:                                             ; preds = %1147
  br label %1149

1149:                                             ; preds = %1148
  call void @llvm.lifetime.end.p0(i64 1, ptr %28) #11
  br label %1150

1150:                                             ; preds = %1149
  %1151 = load i64, ptr %24, align 8, !tbaa !16
  %1152 = add i64 %1151, 1
  store i64 %1152, ptr %24, align 8, !tbaa !16
  br label %893, !llvm.loop !26

1153:                                             ; preds = %896
  call void @llvm.lifetime.end.p0(i64 24, ptr %23) #11
  %1154 = call i32 @s2n_stuffer_free(ptr noundef %21)
  call void @llvm.lifetime.end.p0(i64 40, ptr %21) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %31) #11
  call void @llvm.memset.p0.i64(ptr align 8 %31, i8 0, i64 56, i1 false)
  br label %1155

1155:                                             ; preds = %1153
  %1156 = load i32, ptr @test_count, align 4, !tbaa !5
  %1157 = add nsw i32 %1156, 1
  store i32 %1157, ptr @test_count, align 4, !tbaa !5
  %1158 = call i32 @s2n_test_hash_state_new(ptr noundef %31)
  %1159 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  store i32 %1158, ptr %1159, align 4
  %1160 = getelementptr inbounds %struct.s2n_result, ptr %32, i32 0, i32 0
  %1161 = load i32, ptr %1160, align 4
  %1162 = call zeroext i1 @s2n_result_is_ok(i32 %1161)
  br i1 %1162, label %1216, label %1163

1163:                                             ; preds = %1155
  br label %1164

1164:                                             ; preds = %1163
  br label %1165

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

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

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

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

1211:                                             ; preds = %1194, %1177
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #11
  br label %1212

1212:                                             ; preds = %1211
  br label %1213

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

1214:                                             ; No predecessors!
  br label %1215

1215:                                             ; preds = %1214
  br label %1216

1216:                                             ; preds = %1215, %1155
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 24, ptr %34) #11
  %1219 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %34, i32 0, i32 0
  store i32 0, ptr %1219, align 8, !tbaa !18
  %1220 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %34, i32 0, i32 1
  store ptr null, ptr %1220, align 8, !tbaa !20
  %1221 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %34, i32 0, i32 2
  store ptr %31, ptr %1221, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #11
  store i64 1, ptr %35, align 8, !tbaa !16
  br label %1222

1222:                                             ; preds = %1356, %1218
  %1223 = load i64, ptr %35, align 8, !tbaa !16
  %1224 = icmp ule i64 %1223, 10
  br i1 %1224, label %1226, label %1225

1225:                                             ; preds = %1222
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #11
  br label %1359

1226:                                             ; preds = %1222
  br label %1227

1227:                                             ; preds = %1226
  %1228 = load i32, ptr @test_count, align 4, !tbaa !5
  %1229 = add nsw i32 %1228, 1
  store i32 %1229, ptr @test_count, align 4, !tbaa !5
  %1230 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef %34, i8 noundef signext 33)
  %1231 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  store i32 %1230, ptr %1231, align 4
  %1232 = getelementptr inbounds %struct.s2n_result, ptr %36, i32 0, i32 0
  %1233 = load i32, ptr %1232, align 4
  %1234 = call zeroext i1 @s2n_result_is_ok(i32 %1233)
  br i1 %1234, label %1288, label %1235

1235:                                             ; preds = %1227
  br label %1236

1236:                                             ; preds = %1235
  br label %1237

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

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

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

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

1283:                                             ; preds = %1266, %1249
  call void @llvm.lifetime.end.p0(i64 4, ptr %37) #11
  br label %1284

1284:                                             ; preds = %1283
  br label %1285

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

1286:                                             ; No predecessors!
  br label %1287

1287:                                             ; preds = %1286
  br label %1288

1288:                                             ; preds = %1287, %1227
  br label %1289

1289:                                             ; preds = %1288
  br label %1290

1290:                                             ; preds = %1289
  br label %1291

1291:                                             ; preds = %1290
  %1292 = load i32, ptr @test_count, align 4, !tbaa !5
  %1293 = add nsw i32 %1292, 1
  store i32 %1293, ptr @test_count, align 4, !tbaa !5
  %1294 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %34, i32 0, i32 2
  %1295 = load ptr, ptr %1294, align 8, !tbaa !21
  %1296 = getelementptr inbounds %struct.s2n_hash_state, ptr %1295, i32 0, i32 3
  %1297 = load i64, ptr %1296, align 8, !tbaa !28
  %1298 = load i64, ptr %35, align 8, !tbaa !16
  %1299 = icmp eq i64 %1297, %1298
  br i1 %1299, label %1353, label %1300

1300:                                             ; preds = %1291
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

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

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

1314:                                             ; preds = %1309
  %1315 = load i32, ptr %38, align 4, !tbaa !5
  %1316 = call ptr @__errno_location() #12
  store i32 %1315, ptr %1316, align 4, !tbaa !5
  %1317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1318 = load i32, ptr @test_count, align 4, !tbaa !5
  %1319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1320 = load i32, ptr %1319, align 4, !tbaa !5
  %1321 = call ptr @s2n_strerror(i32 noundef %1320, ptr noundef @.str.4)
  %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_debug(i32 noundef %1323, ptr noundef @.str.4)
  %1325 = call ptr @__errno_location() #12
  %1326 = load i32, ptr %1325, align 4, !tbaa !5
  %1327 = call ptr @strerror(i32 noundef %1326) #11
  %1328 = call ptr @__errno_location() #12
  %1329 = load i32, ptr %1328, align 4, !tbaa !5
  %1330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1317, ptr noundef @.str.2, i32 noundef %1318, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1321, ptr noundef %1324, ptr noundef %1327, i32 noundef %1329) #11
  br label %1348

1331:                                             ; preds = %1309, %1302
  %1332 = load i32, ptr %38, align 4, !tbaa !5
  %1333 = call ptr @__errno_location() #12
  store i32 %1332, ptr %1333, align 4, !tbaa !5
  %1334 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1335 = load i32, ptr @test_count, align 4, !tbaa !5
  %1336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1337 = load i32, ptr %1336, align 4, !tbaa !5
  %1338 = call ptr @s2n_strerror(i32 noundef %1337, ptr noundef @.str.4)
  %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_debug(i32 noundef %1340, ptr noundef @.str.4)
  %1342 = call ptr @__errno_location() #12
  %1343 = load i32, ptr %1342, align 4, !tbaa !5
  %1344 = call ptr @strerror(i32 noundef %1343) #11
  %1345 = call ptr @__errno_location() #12
  %1346 = load i32, ptr %1345, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1334, ptr noundef @.str.5, i32 noundef %1335, ptr noundef @.str.18, ptr noundef @.str.1, i32 noundef 109, ptr noundef %1338, ptr noundef %1341, ptr noundef %1344, i32 noundef %1346) #11
  br label %1348

1348:                                             ; preds = %1331, %1314
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #11
  br label %1349

1349:                                             ; preds = %1348
  br label %1350

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

1351:                                             ; No predecessors!
  br label %1352

1352:                                             ; preds = %1351
  br label %1353

1353:                                             ; preds = %1352, %1291
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355
  %1357 = load i64, ptr %35, align 8, !tbaa !16
  %1358 = add i64 %1357, 1
  store i64 %1358, ptr %35, align 8, !tbaa !16
  br label %1222, !llvm.loop !30

1359:                                             ; preds = %1225
  call void @llvm.lifetime.end.p0(i64 24, ptr %34) #11
  %1360 = call i32 @s2n_hash_free(ptr noundef %31)
  call void @llvm.lifetime.end.p0(i64 56, ptr %31) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %39) #11
  call void @llvm.memset.p0.i64(ptr align 8 %39, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %40) #11
  %1361 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %40, i32 0, i32 0
  store i32 0, ptr %1361, align 8, !tbaa !18
  %1362 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %40, i32 0, i32 1
  store ptr %39, ptr %1362, align 8, !tbaa !20
  %1363 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %40, i32 0, i32 2
  store ptr null, ptr %1363, align 8, !tbaa !21
  br label %1364

1364:                                             ; preds = %1359
  br label %1365

1365:                                             ; preds = %1364
  br label %1366

1366:                                             ; preds = %1365
  %1367 = load i32, ptr @test_count, align 4, !tbaa !5
  %1368 = add nsw i32 %1367, 1
  store i32 %1368, ptr @test_count, align 4, !tbaa !5
  %1369 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef %40, i8 noundef signext 33)
  %1370 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  store i32 %1369, ptr %1370, align 4
  %1371 = getelementptr inbounds %struct.s2n_result, ptr %41, i32 0, i32 0
  %1372 = load i32, ptr %1371, align 4
  %1373 = call zeroext i1 @s2n_result_is_error(i32 %1372)
  br i1 %1373, label %1427, label %1374

1374:                                             ; preds = %1366
  br label %1375

1375:                                             ; preds = %1374
  br label %1376

1376:                                             ; preds = %1375
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #11
  %1377 = call ptr @__errno_location() #12
  %1378 = load i32, ptr %1377, align 4, !tbaa !5
  store i32 %1378, ptr %42, align 4, !tbaa !5
  %1379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1380 = call i32 @s2n_print_stacktrace(ptr noundef %1379)
  %1381 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1382 = trunc i8 %1381 to i1
  br i1 %1382, label %1383, label %1405

1383:                                             ; preds = %1376
  %1384 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1385 = call i32 @fileno(ptr noundef %1384) #11
  %1386 = call i32 @isatty(i32 noundef %1385) #11
  %1387 = icmp ne i32 %1386, 0
  br i1 %1387, label %1388, label %1405

1388:                                             ; preds = %1383
  %1389 = load i32, ptr %42, align 4, !tbaa !5
  %1390 = call ptr @__errno_location() #12
  store i32 %1389, ptr %1390, align 4, !tbaa !5
  %1391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1392 = load i32, ptr @test_count, align 4, !tbaa !5
  %1393 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1394 = load i32, ptr %1393, align 4, !tbaa !5
  %1395 = call ptr @s2n_strerror(i32 noundef %1394, ptr noundef @.str.4)
  %1396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1397 = load i32, ptr %1396, align 4, !tbaa !5
  %1398 = call ptr @s2n_strerror_debug(i32 noundef %1397, ptr noundef @.str.4)
  %1399 = call ptr @__errno_location() #12
  %1400 = load i32, ptr %1399, align 4, !tbaa !5
  %1401 = call ptr @strerror(i32 noundef %1400) #11
  %1402 = call ptr @__errno_location() #12
  %1403 = load i32, ptr %1402, align 4, !tbaa !5
  %1404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1391, ptr noundef @.str.2, i32 noundef %1392, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1395, ptr noundef %1398, ptr noundef %1401, i32 noundef %1403) #11
  br label %1422

1405:                                             ; preds = %1383, %1376
  %1406 = load i32, ptr %42, align 4, !tbaa !5
  %1407 = call ptr @__errno_location() #12
  store i32 %1406, ptr %1407, align 4, !tbaa !5
  %1408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1409 = load i32, ptr @test_count, align 4, !tbaa !5
  %1410 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1411 = load i32, ptr %1410, align 4, !tbaa !5
  %1412 = call ptr @s2n_strerror(i32 noundef %1411, ptr noundef @.str.4)
  %1413 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1414 = load i32, ptr %1413, align 4, !tbaa !5
  %1415 = call ptr @s2n_strerror_debug(i32 noundef %1414, ptr noundef @.str.4)
  %1416 = call ptr @__errno_location() #12
  %1417 = load i32, ptr %1416, align 4, !tbaa !5
  %1418 = call ptr @strerror(i32 noundef %1417) #11
  %1419 = call ptr @__errno_location() #12
  %1420 = load i32, ptr %1419, align 4, !tbaa !5
  %1421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1408, ptr noundef @.str.5, i32 noundef %1409, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1412, ptr noundef %1415, ptr noundef %1418, i32 noundef %1420) #11
  br label %1422

1422:                                             ; preds = %1405, %1388
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #11
  br label %1423

1423:                                             ; preds = %1422
  br label %1424

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

1425:                                             ; No predecessors!
  br label %1426

1426:                                             ; preds = %1425
  br label %1427

1427:                                             ; preds = %1426, %1366
  br label %1428

1428:                                             ; preds = %1427
  br label %1429

1429:                                             ; preds = %1428
  br label %1430

1430:                                             ; preds = %1429
  %1431 = load i32, ptr @test_count, align 4, !tbaa !5
  %1432 = add nsw i32 %1431, 1
  store i32 %1432, ptr @test_count, align 4, !tbaa !5
  %1433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1434 = load i32, ptr %1433, align 4, !tbaa !5
  %1435 = icmp eq i32 %1434, 469762120
  br i1 %1435, label %1489, label %1436

1436:                                             ; preds = %1430
  br label %1437

1437:                                             ; preds = %1436
  br label %1438

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

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

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

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

1484:                                             ; preds = %1467, %1450
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #11
  br label %1485

1485:                                             ; preds = %1484
  br label %1486

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

1487:                                             ; No predecessors!
  br label %1488

1488:                                             ; preds = %1487
  br label %1489

1489:                                             ; preds = %1488, %1430
  br label %1490

1490:                                             ; preds = %1489
  br label %1491

1491:                                             ; preds = %1490
  br label %1492

1492:                                             ; preds = %1491
  %1493 = load i32, ptr @test_count, align 4, !tbaa !5
  %1494 = add nsw i32 %1493, 1
  store i32 %1494, ptr @test_count, align 4, !tbaa !5
  %1495 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1496 = load i32, ptr %1495, align 4, !tbaa !5
  %1497 = call ptr @s2n_strerror_debug(i32 noundef %1496, ptr noundef @.str.4)
  %1498 = icmp eq ptr %1497, null
  br i1 %1498, label %1499, label %1552

1499:                                             ; preds = %1492
  br label %1500

1500:                                             ; preds = %1499
  br label %1501

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

1508:                                             ; preds = %1501
  %1509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1510 = call i32 @fileno(ptr noundef %1509) #11
  %1511 = call i32 @isatty(i32 noundef %1510) #11
  %1512 = icmp ne i32 %1511, 0
  br i1 %1512, label %1513, label %1530

1513:                                             ; preds = %1508
  %1514 = load i32, ptr %44, align 4, !tbaa !5
  %1515 = call ptr @__errno_location() #12
  store i32 %1514, ptr %1515, align 4, !tbaa !5
  %1516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1517 = load i32, ptr @test_count, align 4, !tbaa !5
  %1518 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1519 = load i32, ptr %1518, align 4, !tbaa !5
  %1520 = call ptr @s2n_strerror(i32 noundef %1519, ptr noundef @.str.4)
  %1521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1522 = load i32, ptr %1521, align 4, !tbaa !5
  %1523 = call ptr @s2n_strerror_debug(i32 noundef %1522, ptr noundef @.str.4)
  %1524 = call ptr @__errno_location() #12
  %1525 = load i32, ptr %1524, align 4, !tbaa !5
  %1526 = call ptr @strerror(i32 noundef %1525) #11
  %1527 = call ptr @__errno_location() #12
  %1528 = load i32, ptr %1527, align 4, !tbaa !5
  %1529 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1516, ptr noundef @.str.2, i32 noundef %1517, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1520, ptr noundef %1523, ptr noundef %1526, i32 noundef %1528) #11
  br label %1547

1530:                                             ; preds = %1508, %1501
  %1531 = load i32, ptr %44, align 4, !tbaa !5
  %1532 = call ptr @__errno_location() #12
  store i32 %1531, ptr %1532, align 4, !tbaa !5
  %1533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1534 = load i32, ptr @test_count, align 4, !tbaa !5
  %1535 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1536 = load i32, ptr %1535, align 4, !tbaa !5
  %1537 = call ptr @s2n_strerror(i32 noundef %1536, ptr noundef @.str.4)
  %1538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1539 = load i32, ptr %1538, align 4, !tbaa !5
  %1540 = call ptr @s2n_strerror_debug(i32 noundef %1539, ptr noundef @.str.4)
  %1541 = call ptr @__errno_location() #12
  %1542 = load i32, ptr %1541, align 4, !tbaa !5
  %1543 = call ptr @strerror(i32 noundef %1542) #11
  %1544 = call ptr @__errno_location() #12
  %1545 = load i32, ptr %1544, align 4, !tbaa !5
  %1546 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1533, ptr noundef @.str.5, i32 noundef %1534, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 118, ptr noundef %1537, ptr noundef %1540, ptr noundef %1543, i32 noundef %1545) #11
  br label %1547

1547:                                             ; preds = %1530, %1513
  call void @llvm.lifetime.end.p0(i64 4, ptr %44) #11
  br label %1548

1548:                                             ; preds = %1547
  br label %1549

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

1550:                                             ; No predecessors!
  br label %1551

1551:                                             ; preds = %1550
  br label %1552

1552:                                             ; preds = %1551, %1492
  br label %1553

1553:                                             ; preds = %1552
  br label %1554

1554:                                             ; preds = %1553
  br label %1555

1555:                                             ; preds = %1554
  br label %1556

1556:                                             ; preds = %1555
  br label %1557

1557:                                             ; preds = %1556
  %1558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1558, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1559 = call ptr @__errno_location() #12
  store i32 0, ptr %1559, align 4, !tbaa !5
  br label %1560

1560:                                             ; preds = %1557
  br label %1561

1561:                                             ; preds = %1560
  br label %1562

1562:                                             ; preds = %1561
  br label %1563

1563:                                             ; preds = %1562
  br label %1564

1564:                                             ; preds = %1563
  %1565 = load i32, ptr @test_count, align 4, !tbaa !5
  %1566 = add nsw i32 %1565, 1
  store i32 %1566, ptr @test_count, align 4, !tbaa !5
  %1567 = call i32 @s2n_stuffer_alloc(ptr noundef %39, i32 noundef 1)
  %1568 = icmp eq i32 %1567, -1
  br i1 %1568, label %1569, label %1622

1569:                                             ; preds = %1564
  br label %1570

1570:                                             ; preds = %1569
  br label %1571

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

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

1583:                                             ; preds = %1578
  %1584 = load i32, ptr %45, align 4, !tbaa !5
  %1585 = call ptr @__errno_location() #12
  store i32 %1584, ptr %1585, align 4, !tbaa !5
  %1586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1587 = load i32, ptr @test_count, align 4, !tbaa !5
  %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(i32 noundef %1589, ptr noundef @.str.4)
  %1591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1592 = load i32, ptr %1591, align 4, !tbaa !5
  %1593 = call ptr @s2n_strerror_debug(i32 noundef %1592, ptr noundef @.str.4)
  %1594 = call ptr @__errno_location() #12
  %1595 = load i32, ptr %1594, align 4, !tbaa !5
  %1596 = call ptr @strerror(i32 noundef %1595) #11
  %1597 = call ptr @__errno_location() #12
  %1598 = load i32, ptr %1597, align 4, !tbaa !5
  %1599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1586, ptr noundef @.str.2, i32 noundef %1587, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 120, ptr noundef %1590, ptr noundef %1593, ptr noundef %1596, i32 noundef %1598) #11
  br label %1617

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

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

1618:                                             ; preds = %1617
  br label %1619

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

1620:                                             ; No predecessors!
  br label %1621

1621:                                             ; preds = %1620
  br label %1622

1622:                                             ; preds = %1621, %1564
  br label %1623

1623:                                             ; preds = %1622
  br label %1624

1624:                                             ; preds = %1623
  br label %1625

1625:                                             ; preds = %1624
  %1626 = load i32, ptr @test_count, align 4, !tbaa !5
  %1627 = add nsw i32 %1626, 1
  store i32 %1627, ptr @test_count, align 4, !tbaa !5
  %1628 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef %40, i8 noundef signext 33)
  %1629 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  store i32 %1628, ptr %1629, align 4
  %1630 = getelementptr inbounds %struct.s2n_result, ptr %46, i32 0, i32 0
  %1631 = load i32, ptr %1630, align 4
  %1632 = call zeroext i1 @s2n_result_is_ok(i32 %1631)
  br i1 %1632, label %1686, label %1633

1633:                                             ; preds = %1625
  br label %1634

1634:                                             ; preds = %1633
  br label %1635

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

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

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

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

1681:                                             ; preds = %1664, %1647
  call void @llvm.lifetime.end.p0(i64 4, ptr %47) #11
  br label %1682

1682:                                             ; preds = %1681
  br label %1683

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

1684:                                             ; No predecessors!
  br label %1685

1685:                                             ; preds = %1684
  br label %1686

1686:                                             ; preds = %1685, %1625
  br label %1687

1687:                                             ; preds = %1686
  br label %1688

1688:                                             ; preds = %1687
  br label %1689

1689:                                             ; preds = %1688
  br label %1690

1690:                                             ; preds = %1689
  br label %1691

1691:                                             ; preds = %1690
  %1692 = load i32, ptr @test_count, align 4, !tbaa !5
  %1693 = add nsw i32 %1692, 1
  store i32 %1693, ptr @test_count, align 4, !tbaa !5
  %1694 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef %40, i8 noundef signext 33)
  %1695 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  store i32 %1694, ptr %1695, align 4
  %1696 = getelementptr inbounds %struct.s2n_result, ptr %48, i32 0, i32 0
  %1697 = load i32, ptr %1696, align 4
  %1698 = call zeroext i1 @s2n_result_is_error(i32 %1697)
  br i1 %1698, label %1752, label %1699

1699:                                             ; preds = %1691
  br label %1700

1700:                                             ; preds = %1699
  br label %1701

1701:                                             ; preds = %1700
  call void @llvm.lifetime.start.p0(i64 4, ptr %49) #11
  %1702 = call ptr @__errno_location() #12
  %1703 = load i32, ptr %1702, align 4, !tbaa !5
  store i32 %1703, ptr %49, align 4, !tbaa !5
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @s2n_print_stacktrace(ptr noundef %1704)
  %1706 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1707 = trunc i8 %1706 to i1
  br i1 %1707, label %1708, label %1730

1708:                                             ; preds = %1701
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = call i32 @fileno(ptr noundef %1709) #11
  %1711 = call i32 @isatty(i32 noundef %1710) #11
  %1712 = icmp ne i32 %1711, 0
  br i1 %1712, label %1713, label %1730

1713:                                             ; preds = %1708
  %1714 = load i32, ptr %49, align 4, !tbaa !5
  %1715 = call ptr @__errno_location() #12
  store i32 %1714, ptr %1715, align 4, !tbaa !5
  %1716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1717 = load i32, ptr @test_count, align 4, !tbaa !5
  %1718 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1719 = load i32, ptr %1718, align 4, !tbaa !5
  %1720 = call ptr @s2n_strerror(i32 noundef %1719, ptr noundef @.str.4)
  %1721 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1722 = load i32, ptr %1721, align 4, !tbaa !5
  %1723 = call ptr @s2n_strerror_debug(i32 noundef %1722, ptr noundef @.str.4)
  %1724 = call ptr @__errno_location() #12
  %1725 = load i32, ptr %1724, align 4, !tbaa !5
  %1726 = call ptr @strerror(i32 noundef %1725) #11
  %1727 = call ptr @__errno_location() #12
  %1728 = load i32, ptr %1727, align 4, !tbaa !5
  %1729 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1716, ptr noundef @.str.2, i32 noundef %1717, ptr noundef @.str.19, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1720, ptr noundef %1723, ptr noundef %1726, i32 noundef %1728) #11
  br label %1747

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

1747:                                             ; preds = %1730, %1713
  call void @llvm.lifetime.end.p0(i64 4, ptr %49) #11
  br label %1748

1748:                                             ; preds = %1747
  br label %1749

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

1750:                                             ; No predecessors!
  br label %1751

1751:                                             ; preds = %1750
  br label %1752

1752:                                             ; preds = %1751, %1691
  br label %1753

1753:                                             ; preds = %1752
  br label %1754

1754:                                             ; preds = %1753
  br label %1755

1755:                                             ; preds = %1754
  %1756 = load i32, ptr @test_count, align 4, !tbaa !5
  %1757 = add nsw i32 %1756, 1
  store i32 %1757, ptr @test_count, align 4, !tbaa !5
  %1758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1759 = load i32, ptr %1758, align 4, !tbaa !5
  %1760 = icmp eq i32 %1759, 469762120
  br i1 %1760, label %1814, label %1761

1761:                                             ; preds = %1755
  br label %1762

1762:                                             ; preds = %1761
  br label %1763

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

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

1775:                                             ; preds = %1770
  %1776 = load i32, ptr %50, align 4, !tbaa !5
  %1777 = call ptr @__errno_location() #12
  store i32 %1776, ptr %1777, align 4, !tbaa !5
  %1778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1779 = load i32, ptr @test_count, align 4, !tbaa !5
  %1780 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1781 = load i32, ptr %1780, align 4, !tbaa !5
  %1782 = call ptr @s2n_strerror(i32 noundef %1781, ptr noundef @.str.4)
  %1783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1784 = load i32, ptr %1783, align 4, !tbaa !5
  %1785 = call ptr @s2n_strerror_debug(i32 noundef %1784, ptr noundef @.str.4)
  %1786 = call ptr @__errno_location() #12
  %1787 = load i32, ptr %1786, align 4, !tbaa !5
  %1788 = call ptr @strerror(i32 noundef %1787) #11
  %1789 = call ptr @__errno_location() #12
  %1790 = load i32, ptr %1789, align 4, !tbaa !5
  %1791 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1778, ptr noundef @.str.2, i32 noundef %1779, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1782, ptr noundef %1785, ptr noundef %1788, i32 noundef %1790) #11
  br label %1809

1792:                                             ; preds = %1770, %1763
  %1793 = load i32, ptr %50, align 4, !tbaa !5
  %1794 = call ptr @__errno_location() #12
  store i32 %1793, ptr %1794, align 4, !tbaa !5
  %1795 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1796 = load i32, ptr @test_count, align 4, !tbaa !5
  %1797 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1798 = load i32, ptr %1797, align 4, !tbaa !5
  %1799 = call ptr @s2n_strerror(i32 noundef %1798, ptr noundef @.str.4)
  %1800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1801 = load i32, ptr %1800, align 4, !tbaa !5
  %1802 = call ptr @s2n_strerror_debug(i32 noundef %1801, ptr noundef @.str.4)
  %1803 = call ptr @__errno_location() #12
  %1804 = load i32, ptr %1803, align 4, !tbaa !5
  %1805 = call ptr @strerror(i32 noundef %1804) #11
  %1806 = call ptr @__errno_location() #12
  %1807 = load i32, ptr %1806, align 4, !tbaa !5
  %1808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1795, ptr noundef @.str.5, i32 noundef %1796, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1799, ptr noundef %1802, ptr noundef %1805, i32 noundef %1807) #11
  br label %1809

1809:                                             ; preds = %1792, %1775
  call void @llvm.lifetime.end.p0(i64 4, ptr %50) #11
  br label %1810

1810:                                             ; preds = %1809
  br label %1811

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

1812:                                             ; No predecessors!
  br label %1813

1813:                                             ; preds = %1812
  br label %1814

1814:                                             ; preds = %1813, %1755
  br label %1815

1815:                                             ; preds = %1814
  br label %1816

1816:                                             ; preds = %1815
  br label %1817

1817:                                             ; preds = %1816
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = add nsw i32 %1818, 1
  store i32 %1819, ptr @test_count, align 4, !tbaa !5
  %1820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1821 = load i32, ptr %1820, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef @.str.4)
  %1823 = icmp eq ptr %1822, null
  br i1 %1823, label %1824, label %1877

1824:                                             ; preds = %1817
  br label %1825

1825:                                             ; preds = %1824
  br label %1826

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

1833:                                             ; preds = %1826
  %1834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1835 = call i32 @fileno(ptr noundef %1834) #11
  %1836 = call i32 @isatty(i32 noundef %1835) #11
  %1837 = icmp ne i32 %1836, 0
  br i1 %1837, label %1838, label %1855

1838:                                             ; preds = %1833
  %1839 = load i32, ptr %51, align 4, !tbaa !5
  %1840 = call ptr @__errno_location() #12
  store i32 %1839, ptr %1840, align 4, !tbaa !5
  %1841 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1842 = load i32, ptr @test_count, align 4, !tbaa !5
  %1843 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1844 = load i32, ptr %1843, align 4, !tbaa !5
  %1845 = call ptr @s2n_strerror(i32 noundef %1844, ptr noundef @.str.4)
  %1846 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1847 = load i32, ptr %1846, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef @.str.4)
  %1849 = call ptr @__errno_location() #12
  %1850 = load i32, ptr %1849, align 4, !tbaa !5
  %1851 = call ptr @strerror(i32 noundef %1850) #11
  %1852 = call ptr @__errno_location() #12
  %1853 = load i32, ptr %1852, align 4, !tbaa !5
  %1854 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1841, ptr noundef @.str.2, i32 noundef %1842, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1845, ptr noundef %1848, ptr noundef %1851, i32 noundef %1853) #11
  br label %1872

1855:                                             ; preds = %1833, %1826
  %1856 = load i32, ptr %51, align 4, !tbaa !5
  %1857 = call ptr @__errno_location() #12
  store i32 %1856, ptr %1857, align 4, !tbaa !5
  %1858 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1859 = load i32, ptr @test_count, align 4, !tbaa !5
  %1860 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1861 = load i32, ptr %1860, align 4, !tbaa !5
  %1862 = call ptr @s2n_strerror(i32 noundef %1861, ptr noundef @.str.4)
  %1863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1864 = load i32, ptr %1863, align 4, !tbaa !5
  %1865 = call ptr @s2n_strerror_debug(i32 noundef %1864, ptr noundef @.str.4)
  %1866 = call ptr @__errno_location() #12
  %1867 = load i32, ptr %1866, align 4, !tbaa !5
  %1868 = call ptr @strerror(i32 noundef %1867) #11
  %1869 = call ptr @__errno_location() #12
  %1870 = load i32, ptr %1869, align 4, !tbaa !5
  %1871 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1858, ptr noundef @.str.5, i32 noundef %1859, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 123, ptr noundef %1862, ptr noundef %1865, ptr noundef %1868, i32 noundef %1870) #11
  br label %1872

1872:                                             ; preds = %1855, %1838
  call void @llvm.lifetime.end.p0(i64 4, ptr %51) #11
  br label %1873

1873:                                             ; preds = %1872
  br label %1874

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

1875:                                             ; No predecessors!
  br label %1876

1876:                                             ; preds = %1875
  br label %1877

1877:                                             ; preds = %1876, %1817
  br label %1878

1878:                                             ; preds = %1877
  br label %1879

1879:                                             ; preds = %1878
  br label %1880

1880:                                             ; preds = %1879
  br label %1881

1881:                                             ; preds = %1880
  br label %1882

1882:                                             ; preds = %1881
  %1883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %1883, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %1884 = call ptr @__errno_location() #12
  store i32 0, ptr %1884, align 4, !tbaa !5
  br label %1885

1885:                                             ; preds = %1882
  br label %1886

1886:                                             ; preds = %1885
  br label %1887

1887:                                             ; preds = %1886
  br label %1888

1888:                                             ; preds = %1887
  call void @llvm.lifetime.end.p0(i64 24, ptr %40) #11
  %1889 = call i32 @s2n_stuffer_free(ptr noundef %39)
  call void @llvm.lifetime.end.p0(i64 40, ptr %39) #11
  br label %1890

1890:                                             ; preds = %1888
  br label %1891

1891:                                             ; preds = %1890
  br label %1892

1892:                                             ; preds = %1891
  %1893 = load i32, ptr @test_count, align 4, !tbaa !5
  %1894 = add nsw i32 %1893, 1
  store i32 %1894, ptr @test_count, align 4, !tbaa !5
  %1895 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %1896 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef null, ptr noundef %1895, i64 noundef 0)
  %1897 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  store i32 %1896, ptr %1897, align 4
  %1898 = getelementptr inbounds %struct.s2n_result, ptr %52, i32 0, i32 0
  %1899 = load i32, ptr %1898, align 4
  %1900 = call zeroext i1 @s2n_result_is_error(i32 %1899)
  br i1 %1900, label %1954, label %1901

1901:                                             ; preds = %1892
  br label %1902

1902:                                             ; preds = %1901
  br label %1903

1903:                                             ; preds = %1902
  call void @llvm.lifetime.start.p0(i64 4, ptr %53) #11
  %1904 = call ptr @__errno_location() #12
  %1905 = load i32, ptr %1904, align 4, !tbaa !5
  store i32 %1905, ptr %53, align 4, !tbaa !5
  %1906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1907 = call i32 @s2n_print_stacktrace(ptr noundef %1906)
  %1908 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1909 = trunc i8 %1908 to i1
  br i1 %1909, label %1910, label %1932

1910:                                             ; preds = %1903
  %1911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1912 = call i32 @fileno(ptr noundef %1911) #11
  %1913 = call i32 @isatty(i32 noundef %1912) #11
  %1914 = icmp ne i32 %1913, 0
  br i1 %1914, label %1915, label %1932

1915:                                             ; preds = %1910
  %1916 = load i32, ptr %53, align 4, !tbaa !5
  %1917 = call ptr @__errno_location() #12
  store i32 %1916, ptr %1917, align 4, !tbaa !5
  %1918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1919 = load i32, ptr @test_count, align 4, !tbaa !5
  %1920 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1921 = load i32, ptr %1920, align 4, !tbaa !5
  %1922 = call ptr @s2n_strerror(i32 noundef %1921, ptr noundef @.str.4)
  %1923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1924 = load i32, ptr %1923, align 4, !tbaa !5
  %1925 = call ptr @s2n_strerror_debug(i32 noundef %1924, ptr noundef @.str.4)
  %1926 = call ptr @__errno_location() #12
  %1927 = load i32, ptr %1926, align 4, !tbaa !5
  %1928 = call ptr @strerror(i32 noundef %1927) #11
  %1929 = call ptr @__errno_location() #12
  %1930 = load i32, ptr %1929, align 4, !tbaa !5
  %1931 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1918, ptr noundef @.str.2, i32 noundef %1919, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1922, ptr noundef %1925, ptr noundef %1928, i32 noundef %1930) #11
  br label %1949

1932:                                             ; preds = %1910, %1903
  %1933 = load i32, ptr %53, align 4, !tbaa !5
  %1934 = call ptr @__errno_location() #12
  store i32 %1933, ptr %1934, align 4, !tbaa !5
  %1935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1936 = load i32, ptr @test_count, align 4, !tbaa !5
  %1937 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1938 = load i32, ptr %1937, align 4, !tbaa !5
  %1939 = call ptr @s2n_strerror(i32 noundef %1938, ptr noundef @.str.4)
  %1940 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1941 = load i32, ptr %1940, align 4, !tbaa !5
  %1942 = call ptr @s2n_strerror_debug(i32 noundef %1941, ptr noundef @.str.4)
  %1943 = call ptr @__errno_location() #12
  %1944 = load i32, ptr %1943, align 4, !tbaa !5
  %1945 = call ptr @strerror(i32 noundef %1944) #11
  %1946 = call ptr @__errno_location() #12
  %1947 = load i32, ptr %1946, align 4, !tbaa !5
  %1948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1935, ptr noundef @.str.5, i32 noundef %1936, ptr noundef @.str.22, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1939, ptr noundef %1942, ptr noundef %1945, i32 noundef %1947) #11
  br label %1949

1949:                                             ; preds = %1932, %1915
  call void @llvm.lifetime.end.p0(i64 4, ptr %53) #11
  br label %1950

1950:                                             ; preds = %1949
  br label %1951

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

1952:                                             ; No predecessors!
  br label %1953

1953:                                             ; preds = %1952
  br label %1954

1954:                                             ; preds = %1953, %1892
  br label %1955

1955:                                             ; preds = %1954
  br label %1956

1956:                                             ; preds = %1955
  br label %1957

1957:                                             ; preds = %1956
  %1958 = load i32, ptr @test_count, align 4, !tbaa !5
  %1959 = add nsw i32 %1958, 1
  store i32 %1959, ptr @test_count, align 4, !tbaa !5
  %1960 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1961 = load i32, ptr %1960, align 4, !tbaa !5
  %1962 = icmp eq i32 %1961, 402653193
  br i1 %1962, label %2016, label %1963

1963:                                             ; preds = %1957
  br label %1964

1964:                                             ; preds = %1963
  br label %1965

1965:                                             ; preds = %1964
  call void @llvm.lifetime.start.p0(i64 4, ptr %54) #11
  %1966 = call ptr @__errno_location() #12
  %1967 = load i32, ptr %1966, align 4, !tbaa !5
  store i32 %1967, ptr %54, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = call i32 @s2n_print_stacktrace(ptr noundef %1968)
  %1970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1971 = trunc i8 %1970 to i1
  br i1 %1971, label %1972, label %1994

1972:                                             ; preds = %1965
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @fileno(ptr noundef %1973) #11
  %1975 = call i32 @isatty(i32 noundef %1974) #11
  %1976 = icmp ne i32 %1975, 0
  br i1 %1976, label %1977, label %1994

1977:                                             ; preds = %1972
  %1978 = load i32, ptr %54, align 4, !tbaa !5
  %1979 = call ptr @__errno_location() #12
  store i32 %1978, ptr %1979, align 4, !tbaa !5
  %1980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1981 = load i32, ptr @test_count, align 4, !tbaa !5
  %1982 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1983 = load i32, ptr %1982, align 4, !tbaa !5
  %1984 = call ptr @s2n_strerror(i32 noundef %1983, ptr noundef @.str.4)
  %1985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %1986 = load i32, ptr %1985, align 4, !tbaa !5
  %1987 = call ptr @s2n_strerror_debug(i32 noundef %1986, ptr noundef @.str.4)
  %1988 = call ptr @__errno_location() #12
  %1989 = load i32, ptr %1988, align 4, !tbaa !5
  %1990 = call ptr @strerror(i32 noundef %1989) #11
  %1991 = call ptr @__errno_location() #12
  %1992 = load i32, ptr %1991, align 4, !tbaa !5
  %1993 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1980, ptr noundef @.str.2, i32 noundef %1981, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 133, ptr noundef %1984, ptr noundef %1987, ptr noundef %1990, i32 noundef %1992) #11
  br label %2011

1994:                                             ; preds = %1972, %1965
  %1995 = load i32, ptr %54, align 4, !tbaa !5
  %1996 = call ptr @__errno_location() #12
  store i32 %1995, ptr %1996, align 4, !tbaa !5
  %1997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1998 = load i32, ptr @test_count, align 4, !tbaa !5
  %1999 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2000 = load i32, ptr %1999, align 4, !tbaa !5
  %2001 = call ptr @s2n_strerror(i32 noundef %2000, ptr noundef @.str.4)
  %2002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2003 = load i32, ptr %2002, align 4, !tbaa !5
  %2004 = call ptr @s2n_strerror_debug(i32 noundef %2003, ptr noundef @.str.4)
  %2005 = call ptr @__errno_location() #12
  %2006 = load i32, ptr %2005, align 4, !tbaa !5
  %2007 = call ptr @strerror(i32 noundef %2006) #11
  %2008 = call ptr @__errno_location() #12
  %2009 = load i32, ptr %2008, align 4, !tbaa !5
  %2010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1997, ptr noundef @.str.5, i32 noundef %1998, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2001, ptr noundef %2004, ptr noundef %2007, i32 noundef %2009) #11
  br label %2011

2011:                                             ; preds = %1994, %1977
  call void @llvm.lifetime.end.p0(i64 4, ptr %54) #11
  br label %2012

2012:                                             ; preds = %2011
  br label %2013

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

2014:                                             ; No predecessors!
  br label %2015

2015:                                             ; preds = %2014
  br label %2016

2016:                                             ; preds = %2015, %1957
  br label %2017

2017:                                             ; preds = %2016
  br label %2018

2018:                                             ; preds = %2017
  br label %2019

2019:                                             ; preds = %2018
  %2020 = load i32, ptr @test_count, align 4, !tbaa !5
  %2021 = add nsw i32 %2020, 1
  store i32 %2021, ptr @test_count, align 4, !tbaa !5
  %2022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2023 = load i32, ptr %2022, align 4, !tbaa !5
  %2024 = call ptr @s2n_strerror_debug(i32 noundef %2023, ptr noundef @.str.4)
  %2025 = icmp eq ptr %2024, null
  br i1 %2025, label %2026, label %2079

2026:                                             ; preds = %2019
  br label %2027

2027:                                             ; preds = %2026
  br label %2028

2028:                                             ; preds = %2027
  call void @llvm.lifetime.start.p0(i64 4, ptr %55) #11
  %2029 = call ptr @__errno_location() #12
  %2030 = load i32, ptr %2029, align 4, !tbaa !5
  store i32 %2030, ptr %55, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = call i32 @s2n_print_stacktrace(ptr noundef %2031)
  %2033 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2034 = trunc i8 %2033 to i1
  br i1 %2034, label %2035, label %2057

2035:                                             ; preds = %2028
  %2036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2037 = call i32 @fileno(ptr noundef %2036) #11
  %2038 = call i32 @isatty(i32 noundef %2037) #11
  %2039 = icmp ne i32 %2038, 0
  br i1 %2039, label %2040, label %2057

2040:                                             ; preds = %2035
  %2041 = load i32, ptr %55, align 4, !tbaa !5
  %2042 = call ptr @__errno_location() #12
  store i32 %2041, ptr %2042, align 4, !tbaa !5
  %2043 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2044 = load i32, ptr @test_count, align 4, !tbaa !5
  %2045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2046 = load i32, ptr %2045, align 4, !tbaa !5
  %2047 = call ptr @s2n_strerror(i32 noundef %2046, ptr noundef @.str.4)
  %2048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2049 = load i32, ptr %2048, align 4, !tbaa !5
  %2050 = call ptr @s2n_strerror_debug(i32 noundef %2049, ptr noundef @.str.4)
  %2051 = call ptr @__errno_location() #12
  %2052 = load i32, ptr %2051, align 4, !tbaa !5
  %2053 = call ptr @strerror(i32 noundef %2052) #11
  %2054 = call ptr @__errno_location() #12
  %2055 = load i32, ptr %2054, align 4, !tbaa !5
  %2056 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2043, ptr noundef @.str.2, i32 noundef %2044, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2047, ptr noundef %2050, ptr noundef %2053, i32 noundef %2055) #11
  br label %2074

2057:                                             ; preds = %2035, %2028
  %2058 = load i32, ptr %55, align 4, !tbaa !5
  %2059 = call ptr @__errno_location() #12
  store i32 %2058, ptr %2059, align 4, !tbaa !5
  %2060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2061 = load i32, ptr @test_count, align 4, !tbaa !5
  %2062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2063 = load i32, ptr %2062, align 4, !tbaa !5
  %2064 = call ptr @s2n_strerror(i32 noundef %2063, ptr noundef @.str.4)
  %2065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2066 = load i32, ptr %2065, align 4, !tbaa !5
  %2067 = call ptr @s2n_strerror_debug(i32 noundef %2066, ptr noundef @.str.4)
  %2068 = call ptr @__errno_location() #12
  %2069 = load i32, ptr %2068, align 4, !tbaa !5
  %2070 = call ptr @strerror(i32 noundef %2069) #11
  %2071 = call ptr @__errno_location() #12
  %2072 = load i32, ptr %2071, align 4, !tbaa !5
  %2073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2060, ptr noundef @.str.5, i32 noundef %2061, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 133, ptr noundef %2064, ptr noundef %2067, ptr noundef %2070, i32 noundef %2072) #11
  br label %2074

2074:                                             ; preds = %2057, %2040
  call void @llvm.lifetime.end.p0(i64 4, ptr %55) #11
  br label %2075

2075:                                             ; preds = %2074
  br label %2076

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

2077:                                             ; No predecessors!
  br label %2078

2078:                                             ; preds = %2077
  br label %2079

2079:                                             ; preds = %2078, %2019
  br label %2080

2080:                                             ; preds = %2079
  br label %2081

2081:                                             ; preds = %2080
  br label %2082

2082:                                             ; preds = %2081
  br label %2083

2083:                                             ; preds = %2082
  br label %2084

2084:                                             ; preds = %2083
  %2085 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2085, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2086 = call ptr @__errno_location() #12
  store i32 0, ptr %2086, align 4, !tbaa !5
  br label %2087

2087:                                             ; preds = %2084
  br label %2088

2088:                                             ; preds = %2087
  br label %2089

2089:                                             ; preds = %2088
  br label %2090

2090:                                             ; preds = %2089
  call void @llvm.lifetime.start.p0(i64 40, ptr %56) #11
  call void @llvm.memset.p0.i64(ptr align 8 %56, i8 0, i64 40, i1 false)
  br label %2091

2091:                                             ; preds = %2090
  %2092 = load i32, ptr @test_count, align 4, !tbaa !5
  %2093 = add nsw i32 %2092, 1
  store i32 %2093, ptr @test_count, align 4, !tbaa !5
  %2094 = call i32 @s2n_stuffer_alloc(ptr noundef %56, i32 noundef 100)
  %2095 = icmp eq i32 %2094, -1
  br i1 %2095, label %2096, label %2149

2096:                                             ; preds = %2091
  br label %2097

2097:                                             ; preds = %2096
  br label %2098

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

2105:                                             ; preds = %2098
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @fileno(ptr noundef %2106) #11
  %2108 = call i32 @isatty(i32 noundef %2107) #11
  %2109 = icmp ne i32 %2108, 0
  br i1 %2109, label %2110, label %2127

2110:                                             ; preds = %2105
  %2111 = load i32, ptr %57, align 4, !tbaa !5
  %2112 = call ptr @__errno_location() #12
  store i32 %2111, ptr %2112, align 4, !tbaa !5
  %2113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2114 = load i32, ptr @test_count, align 4, !tbaa !5
  %2115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2116 = load i32, ptr %2115, align 4, !tbaa !5
  %2117 = call ptr @s2n_strerror(i32 noundef %2116, ptr noundef @.str.4)
  %2118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2119 = load i32, ptr %2118, align 4, !tbaa !5
  %2120 = call ptr @s2n_strerror_debug(i32 noundef %2119, ptr noundef @.str.4)
  %2121 = call ptr @__errno_location() #12
  %2122 = load i32, ptr %2121, align 4, !tbaa !5
  %2123 = call ptr @strerror(i32 noundef %2122) #11
  %2124 = call ptr @__errno_location() #12
  %2125 = load i32, ptr %2124, align 4, !tbaa !5
  %2126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2113, ptr noundef @.str.2, i32 noundef %2114, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2117, ptr noundef %2120, ptr noundef %2123, i32 noundef %2125) #11
  br label %2144

2127:                                             ; preds = %2105, %2098
  %2128 = load i32, ptr %57, align 4, !tbaa !5
  %2129 = call ptr @__errno_location() #12
  store i32 %2128, ptr %2129, align 4, !tbaa !5
  %2130 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2131 = load i32, ptr @test_count, align 4, !tbaa !5
  %2132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2133 = load i32, ptr %2132, align 4, !tbaa !5
  %2134 = call ptr @s2n_strerror(i32 noundef %2133, ptr noundef @.str.4)
  %2135 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2136 = load i32, ptr %2135, align 4, !tbaa !5
  %2137 = call ptr @s2n_strerror_debug(i32 noundef %2136, ptr noundef @.str.4)
  %2138 = call ptr @__errno_location() #12
  %2139 = load i32, ptr %2138, align 4, !tbaa !5
  %2140 = call ptr @strerror(i32 noundef %2139) #11
  %2141 = call ptr @__errno_location() #12
  %2142 = load i32, ptr %2141, align 4, !tbaa !5
  %2143 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2130, ptr noundef @.str.5, i32 noundef %2131, ptr noundef @.str.23, ptr noundef @.str.1, i32 noundef 138, ptr noundef %2134, ptr noundef %2137, ptr noundef %2140, i32 noundef %2142) #11
  br label %2144

2144:                                             ; preds = %2127, %2110
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #11
  br label %2145

2145:                                             ; preds = %2144
  br label %2146

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

2147:                                             ; No predecessors!
  br label %2148

2148:                                             ; preds = %2147
  br label %2149

2149:                                             ; preds = %2148, %2091
  br label %2150

2150:                                             ; preds = %2149
  br label %2151

2151:                                             ; preds = %2150
  call void @llvm.lifetime.start.p0(i64 24, ptr %58) #11
  %2152 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %58, i32 0, i32 0
  store i32 0, ptr %2152, align 8, !tbaa !18
  %2153 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %58, i32 0, i32 1
  store ptr %56, ptr %2153, align 8, !tbaa !20
  %2154 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %58, i32 0, i32 2
  store ptr null, ptr %2154, align 8, !tbaa !21
  br label %2155

2155:                                             ; preds = %2151
  br label %2156

2156:                                             ; preds = %2155
  br label %2157

2157:                                             ; preds = %2156
  %2158 = load i32, ptr @test_count, align 4, !tbaa !5
  %2159 = add nsw i32 %2158, 1
  store i32 %2159, ptr @test_count, align 4, !tbaa !5
  %2160 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %58, ptr noundef null, i64 noundef 10)
  %2161 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  store i32 %2160, ptr %2161, align 4
  %2162 = getelementptr inbounds %struct.s2n_result, ptr %59, i32 0, i32 0
  %2163 = load i32, ptr %2162, align 4
  %2164 = call zeroext i1 @s2n_result_is_error(i32 %2163)
  br i1 %2164, label %2218, label %2165

2165:                                             ; preds = %2157
  br label %2166

2166:                                             ; preds = %2165
  br label %2167

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

2174:                                             ; preds = %2167
  %2175 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2176 = call i32 @fileno(ptr noundef %2175) #11
  %2177 = call i32 @isatty(i32 noundef %2176) #11
  %2178 = icmp ne i32 %2177, 0
  br i1 %2178, label %2179, label %2196

2179:                                             ; preds = %2174
  %2180 = load i32, ptr %60, align 4, !tbaa !5
  %2181 = call ptr @__errno_location() #12
  store i32 %2180, ptr %2181, align 4, !tbaa !5
  %2182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2183 = load i32, ptr @test_count, align 4, !tbaa !5
  %2184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2185 = load i32, ptr %2184, align 4, !tbaa !5
  %2186 = call ptr @s2n_strerror(i32 noundef %2185, ptr noundef @.str.4)
  %2187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2188 = load i32, ptr %2187, align 4, !tbaa !5
  %2189 = call ptr @s2n_strerror_debug(i32 noundef %2188, ptr noundef @.str.4)
  %2190 = call ptr @__errno_location() #12
  %2191 = load i32, ptr %2190, align 4, !tbaa !5
  %2192 = call ptr @strerror(i32 noundef %2191) #11
  %2193 = call ptr @__errno_location() #12
  %2194 = load i32, ptr %2193, align 4, !tbaa !5
  %2195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2182, ptr noundef @.str.2, i32 noundef %2183, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2186, ptr noundef %2189, ptr noundef %2192, i32 noundef %2194) #11
  br label %2213

2196:                                             ; preds = %2174, %2167
  %2197 = load i32, ptr %60, align 4, !tbaa !5
  %2198 = call ptr @__errno_location() #12
  store i32 %2197, ptr %2198, align 4, !tbaa !5
  %2199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2200 = load i32, ptr @test_count, align 4, !tbaa !5
  %2201 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2202 = load i32, ptr %2201, align 4, !tbaa !5
  %2203 = call ptr @s2n_strerror(i32 noundef %2202, ptr noundef @.str.4)
  %2204 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2205 = load i32, ptr %2204, align 4, !tbaa !5
  %2206 = call ptr @s2n_strerror_debug(i32 noundef %2205, ptr noundef @.str.4)
  %2207 = call ptr @__errno_location() #12
  %2208 = load i32, ptr %2207, align 4, !tbaa !5
  %2209 = call ptr @strerror(i32 noundef %2208) #11
  %2210 = call ptr @__errno_location() #12
  %2211 = load i32, ptr %2210, align 4, !tbaa !5
  %2212 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2199, ptr noundef @.str.5, i32 noundef %2200, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2203, ptr noundef %2206, ptr noundef %2209, i32 noundef %2211) #11
  br label %2213

2213:                                             ; preds = %2196, %2179
  call void @llvm.lifetime.end.p0(i64 4, ptr %60) #11
  br label %2214

2214:                                             ; preds = %2213
  br label %2215

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

2216:                                             ; No predecessors!
  br label %2217

2217:                                             ; preds = %2216
  br label %2218

2218:                                             ; preds = %2217, %2157
  br label %2219

2219:                                             ; preds = %2218
  br label %2220

2220:                                             ; preds = %2219
  br label %2221

2221:                                             ; preds = %2220
  %2222 = load i32, ptr @test_count, align 4, !tbaa !5
  %2223 = add nsw i32 %2222, 1
  store i32 %2223, ptr @test_count, align 4, !tbaa !5
  %2224 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2225 = load i32, ptr %2224, align 4, !tbaa !5
  %2226 = icmp eq i32 %2225, 402653193
  br i1 %2226, label %2280, label %2227

2227:                                             ; preds = %2221
  br label %2228

2228:                                             ; preds = %2227
  br label %2229

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

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

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

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

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

2276:                                             ; preds = %2275
  br label %2277

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

2278:                                             ; No predecessors!
  br label %2279

2279:                                             ; preds = %2278
  br label %2280

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

2281:                                             ; preds = %2280
  br label %2282

2282:                                             ; preds = %2281
  br label %2283

2283:                                             ; preds = %2282
  %2284 = load i32, ptr @test_count, align 4, !tbaa !5
  %2285 = add nsw i32 %2284, 1
  store i32 %2285, ptr @test_count, align 4, !tbaa !5
  %2286 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2287 = load i32, ptr %2286, align 4, !tbaa !5
  %2288 = call ptr @s2n_strerror_debug(i32 noundef %2287, ptr noundef @.str.4)
  %2289 = icmp eq ptr %2288, null
  br i1 %2289, label %2290, label %2343

2290:                                             ; preds = %2283
  br label %2291

2291:                                             ; preds = %2290
  br label %2292

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

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

2304:                                             ; preds = %2299
  %2305 = load i32, ptr %62, align 4, !tbaa !5
  %2306 = call ptr @__errno_location() #12
  store i32 %2305, ptr %2306, align 4, !tbaa !5
  %2307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2308 = load i32, ptr @test_count, align 4, !tbaa !5
  %2309 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2310 = load i32, ptr %2309, align 4, !tbaa !5
  %2311 = call ptr @s2n_strerror(i32 noundef %2310, ptr noundef @.str.4)
  %2312 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2313 = load i32, ptr %2312, align 4, !tbaa !5
  %2314 = call ptr @s2n_strerror_debug(i32 noundef %2313, ptr noundef @.str.4)
  %2315 = call ptr @__errno_location() #12
  %2316 = load i32, ptr %2315, align 4, !tbaa !5
  %2317 = call ptr @strerror(i32 noundef %2316) #11
  %2318 = call ptr @__errno_location() #12
  %2319 = load i32, ptr %2318, align 4, !tbaa !5
  %2320 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2307, ptr noundef @.str.2, i32 noundef %2308, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2311, ptr noundef %2314, ptr noundef %2317, i32 noundef %2319) #11
  br label %2338

2321:                                             ; preds = %2299, %2292
  %2322 = load i32, ptr %62, align 4, !tbaa !5
  %2323 = call ptr @__errno_location() #12
  store i32 %2322, ptr %2323, align 4, !tbaa !5
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = load i32, ptr @test_count, align 4, !tbaa !5
  %2326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2327 = load i32, ptr %2326, align 4, !tbaa !5
  %2328 = call ptr @s2n_strerror(i32 noundef %2327, ptr noundef @.str.4)
  %2329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2330 = load i32, ptr %2329, align 4, !tbaa !5
  %2331 = call ptr @s2n_strerror_debug(i32 noundef %2330, ptr noundef @.str.4)
  %2332 = call ptr @__errno_location() #12
  %2333 = load i32, ptr %2332, align 4, !tbaa !5
  %2334 = call ptr @strerror(i32 noundef %2333) #11
  %2335 = call ptr @__errno_location() #12
  %2336 = load i32, ptr %2335, align 4, !tbaa !5
  %2337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2324, ptr noundef @.str.5, i32 noundef %2325, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 141, ptr noundef %2328, ptr noundef %2331, ptr noundef %2334, i32 noundef %2336) #11
  br label %2338

2338:                                             ; preds = %2321, %2304
  call void @llvm.lifetime.end.p0(i64 4, ptr %62) #11
  br label %2339

2339:                                             ; preds = %2338
  br label %2340

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

2341:                                             ; No predecessors!
  br label %2342

2342:                                             ; preds = %2341
  br label %2343

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

2344:                                             ; preds = %2343
  br label %2345

2345:                                             ; preds = %2344
  br label %2346

2346:                                             ; preds = %2345
  br label %2347

2347:                                             ; preds = %2346
  br label %2348

2348:                                             ; preds = %2347
  %2349 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2349, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2350 = call ptr @__errno_location() #12
  store i32 0, ptr %2350, align 4, !tbaa !5
  br label %2351

2351:                                             ; preds = %2348
  br label %2352

2352:                                             ; preds = %2351
  br label %2353

2353:                                             ; preds = %2352
  br label %2354

2354:                                             ; preds = %2353
  br label %2355

2355:                                             ; preds = %2354
  %2356 = load i32, ptr @test_count, align 4, !tbaa !5
  %2357 = add nsw i32 %2356, 1
  store i32 %2357, ptr @test_count, align 4, !tbaa !5
  %2358 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %58, ptr noundef null, i64 noundef 0)
  %2359 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  store i32 %2358, ptr %2359, align 4
  %2360 = getelementptr inbounds %struct.s2n_result, ptr %63, i32 0, i32 0
  %2361 = load i32, ptr %2360, align 4
  %2362 = call zeroext i1 @s2n_result_is_ok(i32 %2361)
  br i1 %2362, label %2416, label %2363

2363:                                             ; preds = %2355
  br label %2364

2364:                                             ; preds = %2363
  br label %2365

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

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

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

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

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

2412:                                             ; preds = %2411
  br label %2413

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

2414:                                             ; No predecessors!
  br label %2415

2415:                                             ; preds = %2414
  br label %2416

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

2417:                                             ; preds = %2416
  br label %2418

2418:                                             ; preds = %2417
  call void @llvm.lifetime.end.p0(i64 24, ptr %58) #11
  %2419 = call i32 @s2n_stuffer_free(ptr noundef %56)
  call void @llvm.lifetime.end.p0(i64 40, ptr %56) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %65) #11
  call void @llvm.memset.p0.i64(ptr align 8 %65, i8 0, i64 56, i1 false)
  br label %2420

2420:                                             ; preds = %2418
  %2421 = load i32, ptr @test_count, align 4, !tbaa !5
  %2422 = add nsw i32 %2421, 1
  store i32 %2422, ptr @test_count, align 4, !tbaa !5
  %2423 = call i32 @s2n_test_hash_state_new(ptr noundef %65)
  %2424 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  store i32 %2423, ptr %2424, align 4
  %2425 = getelementptr inbounds %struct.s2n_result, ptr %66, i32 0, i32 0
  %2426 = load i32, ptr %2425, align 4
  %2427 = call zeroext i1 @s2n_result_is_ok(i32 %2426)
  br i1 %2427, label %2481, label %2428

2428:                                             ; preds = %2420
  br label %2429

2429:                                             ; preds = %2428
  br label %2430

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

2437:                                             ; preds = %2430
  %2438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2439 = call i32 @fileno(ptr noundef %2438) #11
  %2440 = call i32 @isatty(i32 noundef %2439) #11
  %2441 = icmp ne i32 %2440, 0
  br i1 %2441, label %2442, label %2459

2442:                                             ; preds = %2437
  %2443 = load i32, ptr %67, align 4, !tbaa !5
  %2444 = call ptr @__errno_location() #12
  store i32 %2443, ptr %2444, align 4, !tbaa !5
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = load i32, ptr @test_count, align 4, !tbaa !5
  %2447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2448 = load i32, ptr %2447, align 4, !tbaa !5
  %2449 = call ptr @s2n_strerror(i32 noundef %2448, ptr noundef @.str.4)
  %2450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2451 = load i32, ptr %2450, align 4, !tbaa !5
  %2452 = call ptr @s2n_strerror_debug(i32 noundef %2451, ptr noundef @.str.4)
  %2453 = call ptr @__errno_location() #12
  %2454 = load i32, ptr %2453, align 4, !tbaa !5
  %2455 = call ptr @strerror(i32 noundef %2454) #11
  %2456 = call ptr @__errno_location() #12
  %2457 = load i32, ptr %2456, align 4, !tbaa !5
  %2458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2445, ptr noundef @.str.2, i32 noundef %2446, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2449, ptr noundef %2452, ptr noundef %2455, i32 noundef %2457) #11
  br label %2476

2459:                                             ; preds = %2437, %2430
  %2460 = load i32, ptr %67, align 4, !tbaa !5
  %2461 = call ptr @__errno_location() #12
  store i32 %2460, ptr %2461, align 4, !tbaa !5
  %2462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2463 = load i32, ptr @test_count, align 4, !tbaa !5
  %2464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2465 = load i32, ptr %2464, align 4, !tbaa !5
  %2466 = call ptr @s2n_strerror(i32 noundef %2465, ptr noundef @.str.4)
  %2467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2468 = load i32, ptr %2467, align 4, !tbaa !5
  %2469 = call ptr @s2n_strerror_debug(i32 noundef %2468, ptr noundef @.str.4)
  %2470 = call ptr @__errno_location() #12
  %2471 = load i32, ptr %2470, align 4, !tbaa !5
  %2472 = call ptr @strerror(i32 noundef %2471) #11
  %2473 = call ptr @__errno_location() #12
  %2474 = load i32, ptr %2473, align 4, !tbaa !5
  %2475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2462, ptr noundef @.str.5, i32 noundef %2463, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 148, ptr noundef %2466, ptr noundef %2469, ptr noundef %2472, i32 noundef %2474) #11
  br label %2476

2476:                                             ; preds = %2459, %2442
  call void @llvm.lifetime.end.p0(i64 4, ptr %67) #11
  br label %2477

2477:                                             ; preds = %2476
  br label %2478

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

2479:                                             ; No predecessors!
  br label %2480

2480:                                             ; preds = %2479
  br label %2481

2481:                                             ; preds = %2480, %2420
  br label %2482

2482:                                             ; preds = %2481
  br label %2483

2483:                                             ; preds = %2482
  call void @llvm.lifetime.start.p0(i64 24, ptr %68) #11
  %2484 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %68, i32 0, i32 0
  store i32 0, ptr %2484, align 8, !tbaa !18
  %2485 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %68, i32 0, i32 1
  store ptr null, ptr %2485, align 8, !tbaa !20
  %2486 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %68, i32 0, i32 2
  store ptr %65, ptr %2486, align 8, !tbaa !21
  br label %2487

2487:                                             ; preds = %2483
  br label %2488

2488:                                             ; preds = %2487
  br label %2489

2489:                                             ; preds = %2488
  %2490 = load i32, ptr @test_count, align 4, !tbaa !5
  %2491 = add nsw i32 %2490, 1
  store i32 %2491, ptr @test_count, align 4, !tbaa !5
  %2492 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %68, ptr noundef null, i64 noundef 10)
  %2493 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  store i32 %2492, ptr %2493, align 4
  %2494 = getelementptr inbounds %struct.s2n_result, ptr %69, i32 0, i32 0
  %2495 = load i32, ptr %2494, align 4
  %2496 = call zeroext i1 @s2n_result_is_error(i32 %2495)
  br i1 %2496, label %2550, label %2497

2497:                                             ; preds = %2489
  br label %2498

2498:                                             ; preds = %2497
  br label %2499

2499:                                             ; preds = %2498
  call void @llvm.lifetime.start.p0(i64 4, ptr %70) #11
  %2500 = call ptr @__errno_location() #12
  %2501 = load i32, ptr %2500, align 4, !tbaa !5
  store i32 %2501, ptr %70, align 4, !tbaa !5
  %2502 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2503 = call i32 @s2n_print_stacktrace(ptr noundef %2502)
  %2504 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2505 = trunc i8 %2504 to i1
  br i1 %2505, label %2506, label %2528

2506:                                             ; preds = %2499
  %2507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2508 = call i32 @fileno(ptr noundef %2507) #11
  %2509 = call i32 @isatty(i32 noundef %2508) #11
  %2510 = icmp ne i32 %2509, 0
  br i1 %2510, label %2511, label %2528

2511:                                             ; preds = %2506
  %2512 = load i32, ptr %70, align 4, !tbaa !5
  %2513 = call ptr @__errno_location() #12
  store i32 %2512, ptr %2513, align 4, !tbaa !5
  %2514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2515 = load i32, ptr @test_count, align 4, !tbaa !5
  %2516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2517 = load i32, ptr %2516, align 4, !tbaa !5
  %2518 = call ptr @s2n_strerror(i32 noundef %2517, ptr noundef @.str.4)
  %2519 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2520 = load i32, ptr %2519, align 4, !tbaa !5
  %2521 = call ptr @s2n_strerror_debug(i32 noundef %2520, ptr noundef @.str.4)
  %2522 = call ptr @__errno_location() #12
  %2523 = load i32, ptr %2522, align 4, !tbaa !5
  %2524 = call ptr @strerror(i32 noundef %2523) #11
  %2525 = call ptr @__errno_location() #12
  %2526 = load i32, ptr %2525, align 4, !tbaa !5
  %2527 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2514, ptr noundef @.str.2, i32 noundef %2515, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2518, ptr noundef %2521, ptr noundef %2524, i32 noundef %2526) #11
  br label %2545

2528:                                             ; preds = %2506, %2499
  %2529 = load i32, ptr %70, align 4, !tbaa !5
  %2530 = call ptr @__errno_location() #12
  store i32 %2529, ptr %2530, align 4, !tbaa !5
  %2531 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2532 = load i32, ptr @test_count, align 4, !tbaa !5
  %2533 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2534 = load i32, ptr %2533, align 4, !tbaa !5
  %2535 = call ptr @s2n_strerror(i32 noundef %2534, ptr noundef @.str.4)
  %2536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2537 = load i32, ptr %2536, align 4, !tbaa !5
  %2538 = call ptr @s2n_strerror_debug(i32 noundef %2537, ptr noundef @.str.4)
  %2539 = call ptr @__errno_location() #12
  %2540 = load i32, ptr %2539, align 4, !tbaa !5
  %2541 = call ptr @strerror(i32 noundef %2540) #11
  %2542 = call ptr @__errno_location() #12
  %2543 = load i32, ptr %2542, align 4, !tbaa !5
  %2544 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2531, ptr noundef @.str.5, i32 noundef %2532, ptr noundef @.str.24, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2535, ptr noundef %2538, ptr noundef %2541, i32 noundef %2543) #11
  br label %2545

2545:                                             ; preds = %2528, %2511
  call void @llvm.lifetime.end.p0(i64 4, ptr %70) #11
  br label %2546

2546:                                             ; preds = %2545
  br label %2547

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

2548:                                             ; No predecessors!
  br label %2549

2549:                                             ; preds = %2548
  br label %2550

2550:                                             ; preds = %2549, %2489
  br label %2551

2551:                                             ; preds = %2550
  br label %2552

2552:                                             ; preds = %2551
  br label %2553

2553:                                             ; preds = %2552
  %2554 = load i32, ptr @test_count, align 4, !tbaa !5
  %2555 = add nsw i32 %2554, 1
  store i32 %2555, ptr @test_count, align 4, !tbaa !5
  %2556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2557 = load i32, ptr %2556, align 4, !tbaa !5
  %2558 = icmp eq i32 %2557, 402653193
  br i1 %2558, label %2612, label %2559

2559:                                             ; preds = %2553
  br label %2560

2560:                                             ; preds = %2559
  br label %2561

2561:                                             ; preds = %2560
  call void @llvm.lifetime.start.p0(i64 4, ptr %71) #11
  %2562 = call ptr @__errno_location() #12
  %2563 = load i32, ptr %2562, align 4, !tbaa !5
  store i32 %2563, ptr %71, align 4, !tbaa !5
  %2564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2565 = call i32 @s2n_print_stacktrace(ptr noundef %2564)
  %2566 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2567 = trunc i8 %2566 to i1
  br i1 %2567, label %2568, label %2590

2568:                                             ; preds = %2561
  %2569 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2570 = call i32 @fileno(ptr noundef %2569) #11
  %2571 = call i32 @isatty(i32 noundef %2570) #11
  %2572 = icmp ne i32 %2571, 0
  br i1 %2572, label %2573, label %2590

2573:                                             ; preds = %2568
  %2574 = load i32, ptr %71, align 4, !tbaa !5
  %2575 = call ptr @__errno_location() #12
  store i32 %2574, ptr %2575, align 4, !tbaa !5
  %2576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2577 = load i32, ptr @test_count, align 4, !tbaa !5
  %2578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2579 = load i32, ptr %2578, align 4, !tbaa !5
  %2580 = call ptr @s2n_strerror(i32 noundef %2579, ptr noundef @.str.4)
  %2581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2582 = load i32, ptr %2581, align 4, !tbaa !5
  %2583 = call ptr @s2n_strerror_debug(i32 noundef %2582, ptr noundef @.str.4)
  %2584 = call ptr @__errno_location() #12
  %2585 = load i32, ptr %2584, align 4, !tbaa !5
  %2586 = call ptr @strerror(i32 noundef %2585) #11
  %2587 = call ptr @__errno_location() #12
  %2588 = load i32, ptr %2587, align 4, !tbaa !5
  %2589 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2576, ptr noundef @.str.2, i32 noundef %2577, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2580, ptr noundef %2583, ptr noundef %2586, i32 noundef %2588) #11
  br label %2607

2590:                                             ; preds = %2568, %2561
  %2591 = load i32, ptr %71, align 4, !tbaa !5
  %2592 = call ptr @__errno_location() #12
  store i32 %2591, ptr %2592, align 4, !tbaa !5
  %2593 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2594 = load i32, ptr @test_count, align 4, !tbaa !5
  %2595 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2596 = load i32, ptr %2595, align 4, !tbaa !5
  %2597 = call ptr @s2n_strerror(i32 noundef %2596, ptr noundef @.str.4)
  %2598 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2599 = load i32, ptr %2598, align 4, !tbaa !5
  %2600 = call ptr @s2n_strerror_debug(i32 noundef %2599, ptr noundef @.str.4)
  %2601 = call ptr @__errno_location() #12
  %2602 = load i32, ptr %2601, align 4, !tbaa !5
  %2603 = call ptr @strerror(i32 noundef %2602) #11
  %2604 = call ptr @__errno_location() #12
  %2605 = load i32, ptr %2604, align 4, !tbaa !5
  %2606 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2593, ptr noundef @.str.5, i32 noundef %2594, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2597, ptr noundef %2600, ptr noundef %2603, i32 noundef %2605) #11
  br label %2607

2607:                                             ; preds = %2590, %2573
  call void @llvm.lifetime.end.p0(i64 4, ptr %71) #11
  br label %2608

2608:                                             ; preds = %2607
  br label %2609

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

2610:                                             ; No predecessors!
  br label %2611

2611:                                             ; preds = %2610
  br label %2612

2612:                                             ; preds = %2611, %2553
  br label %2613

2613:                                             ; preds = %2612
  br label %2614

2614:                                             ; preds = %2613
  br label %2615

2615:                                             ; preds = %2614
  %2616 = load i32, ptr @test_count, align 4, !tbaa !5
  %2617 = add nsw i32 %2616, 1
  store i32 %2617, ptr @test_count, align 4, !tbaa !5
  %2618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2619 = load i32, ptr %2618, align 4, !tbaa !5
  %2620 = call ptr @s2n_strerror_debug(i32 noundef %2619, ptr noundef @.str.4)
  %2621 = icmp eq ptr %2620, null
  br i1 %2621, label %2622, label %2675

2622:                                             ; preds = %2615
  br label %2623

2623:                                             ; preds = %2622
  br label %2624

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

2631:                                             ; preds = %2624
  %2632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2633 = call i32 @fileno(ptr noundef %2632) #11
  %2634 = call i32 @isatty(i32 noundef %2633) #11
  %2635 = icmp ne i32 %2634, 0
  br i1 %2635, label %2636, label %2653

2636:                                             ; preds = %2631
  %2637 = load i32, ptr %72, align 4, !tbaa !5
  %2638 = call ptr @__errno_location() #12
  store i32 %2637, ptr %2638, align 4, !tbaa !5
  %2639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2640 = load i32, ptr @test_count, align 4, !tbaa !5
  %2641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2642 = load i32, ptr %2641, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror(i32 noundef %2642, ptr noundef @.str.4)
  %2644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2645 = load i32, ptr %2644, align 4, !tbaa !5
  %2646 = call ptr @s2n_strerror_debug(i32 noundef %2645, ptr noundef @.str.4)
  %2647 = call ptr @__errno_location() #12
  %2648 = load i32, ptr %2647, align 4, !tbaa !5
  %2649 = call ptr @strerror(i32 noundef %2648) #11
  %2650 = call ptr @__errno_location() #12
  %2651 = load i32, ptr %2650, align 4, !tbaa !5
  %2652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2639, ptr noundef @.str.2, i32 noundef %2640, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2643, ptr noundef %2646, ptr noundef %2649, i32 noundef %2651) #11
  br label %2670

2653:                                             ; preds = %2631, %2624
  %2654 = load i32, ptr %72, align 4, !tbaa !5
  %2655 = call ptr @__errno_location() #12
  store i32 %2654, ptr %2655, align 4, !tbaa !5
  %2656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2657 = load i32, ptr @test_count, align 4, !tbaa !5
  %2658 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2659 = load i32, ptr %2658, align 4, !tbaa !5
  %2660 = call ptr @s2n_strerror(i32 noundef %2659, ptr noundef @.str.4)
  %2661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2662 = load i32, ptr %2661, align 4, !tbaa !5
  %2663 = call ptr @s2n_strerror_debug(i32 noundef %2662, ptr noundef @.str.4)
  %2664 = call ptr @__errno_location() #12
  %2665 = load i32, ptr %2664, align 4, !tbaa !5
  %2666 = call ptr @strerror(i32 noundef %2665) #11
  %2667 = call ptr @__errno_location() #12
  %2668 = load i32, ptr %2667, align 4, !tbaa !5
  %2669 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2656, ptr noundef @.str.5, i32 noundef %2657, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 151, ptr noundef %2660, ptr noundef %2663, ptr noundef %2666, i32 noundef %2668) #11
  br label %2670

2670:                                             ; preds = %2653, %2636
  call void @llvm.lifetime.end.p0(i64 4, ptr %72) #11
  br label %2671

2671:                                             ; preds = %2670
  br label %2672

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

2673:                                             ; No predecessors!
  br label %2674

2674:                                             ; preds = %2673
  br label %2675

2675:                                             ; preds = %2674, %2615
  br label %2676

2676:                                             ; preds = %2675
  br label %2677

2677:                                             ; preds = %2676
  br label %2678

2678:                                             ; preds = %2677
  br label %2679

2679:                                             ; preds = %2678
  br label %2680

2680:                                             ; preds = %2679
  %2681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %2681, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %2682 = call ptr @__errno_location() #12
  store i32 0, ptr %2682, align 4, !tbaa !5
  br label %2683

2683:                                             ; preds = %2680
  br label %2684

2684:                                             ; preds = %2683
  br label %2685

2685:                                             ; preds = %2684
  br label %2686

2686:                                             ; preds = %2685
  br label %2687

2687:                                             ; preds = %2686
  %2688 = load i32, ptr @test_count, align 4, !tbaa !5
  %2689 = add nsw i32 %2688, 1
  store i32 %2689, ptr @test_count, align 4, !tbaa !5
  %2690 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %68, ptr noundef null, i64 noundef 0)
  %2691 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  store i32 %2690, ptr %2691, align 4
  %2692 = getelementptr inbounds %struct.s2n_result, ptr %73, i32 0, i32 0
  %2693 = load i32, ptr %2692, align 4
  %2694 = call zeroext i1 @s2n_result_is_ok(i32 %2693)
  br i1 %2694, label %2748, label %2695

2695:                                             ; preds = %2687
  br label %2696

2696:                                             ; preds = %2695
  br label %2697

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

2704:                                             ; preds = %2697
  %2705 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2706 = call i32 @fileno(ptr noundef %2705) #11
  %2707 = call i32 @isatty(i32 noundef %2706) #11
  %2708 = icmp ne i32 %2707, 0
  br i1 %2708, label %2709, label %2726

2709:                                             ; preds = %2704
  %2710 = load i32, ptr %74, align 4, !tbaa !5
  %2711 = call ptr @__errno_location() #12
  store i32 %2710, ptr %2711, align 4, !tbaa !5
  %2712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2713 = load i32, ptr @test_count, align 4, !tbaa !5
  %2714 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2715 = load i32, ptr %2714, align 4, !tbaa !5
  %2716 = call ptr @s2n_strerror(i32 noundef %2715, ptr noundef @.str.4)
  %2717 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2718 = load i32, ptr %2717, align 4, !tbaa !5
  %2719 = call ptr @s2n_strerror_debug(i32 noundef %2718, ptr noundef @.str.4)
  %2720 = call ptr @__errno_location() #12
  %2721 = load i32, ptr %2720, align 4, !tbaa !5
  %2722 = call ptr @strerror(i32 noundef %2721) #11
  %2723 = call ptr @__errno_location() #12
  %2724 = load i32, ptr %2723, align 4, !tbaa !5
  %2725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2712, ptr noundef @.str.2, i32 noundef %2713, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2716, ptr noundef %2719, ptr noundef %2722, i32 noundef %2724) #11
  br label %2743

2726:                                             ; preds = %2704, %2697
  %2727 = load i32, ptr %74, align 4, !tbaa !5
  %2728 = call ptr @__errno_location() #12
  store i32 %2727, ptr %2728, align 4, !tbaa !5
  %2729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2730 = load i32, ptr @test_count, align 4, !tbaa !5
  %2731 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2732 = load i32, ptr %2731, align 4, !tbaa !5
  %2733 = call ptr @s2n_strerror(i32 noundef %2732, ptr noundef @.str.4)
  %2734 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2735 = load i32, ptr %2734, align 4, !tbaa !5
  %2736 = call ptr @s2n_strerror_debug(i32 noundef %2735, ptr noundef @.str.4)
  %2737 = call ptr @__errno_location() #12
  %2738 = load i32, ptr %2737, align 4, !tbaa !5
  %2739 = call ptr @strerror(i32 noundef %2738) #11
  %2740 = call ptr @__errno_location() #12
  %2741 = load i32, ptr %2740, align 4, !tbaa !5
  %2742 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2729, ptr noundef @.str.5, i32 noundef %2730, ptr noundef @.str.25, ptr noundef @.str.1, i32 noundef 152, ptr noundef %2733, ptr noundef %2736, ptr noundef %2739, i32 noundef %2741) #11
  br label %2743

2743:                                             ; preds = %2726, %2709
  call void @llvm.lifetime.end.p0(i64 4, ptr %74) #11
  br label %2744

2744:                                             ; preds = %2743
  br label %2745

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

2746:                                             ; No predecessors!
  br label %2747

2747:                                             ; preds = %2746
  br label %2748

2748:                                             ; preds = %2747, %2687
  br label %2749

2749:                                             ; preds = %2748
  br label %2750

2750:                                             ; preds = %2749
  call void @llvm.lifetime.end.p0(i64 24, ptr %68) #11
  %2751 = call i32 @s2n_hash_free(ptr noundef %65)
  call void @llvm.lifetime.end.p0(i64 56, ptr %65) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %75) #11
  call void @llvm.memset.p0.i64(ptr align 8 %75, i8 0, i64 40, i1 false)
  br label %2752

2752:                                             ; preds = %2750
  %2753 = load i32, ptr @test_count, align 4, !tbaa !5
  %2754 = add nsw i32 %2753, 1
  store i32 %2754, ptr @test_count, align 4, !tbaa !5
  %2755 = call i32 @s2n_stuffer_alloc(ptr noundef %75, i32 noundef 50)
  %2756 = icmp eq i32 %2755, -1
  br i1 %2756, label %2757, label %2810

2757:                                             ; preds = %2752
  br label %2758

2758:                                             ; preds = %2757
  br label %2759

2759:                                             ; preds = %2758
  call void @llvm.lifetime.start.p0(i64 4, ptr %76) #11
  %2760 = call ptr @__errno_location() #12
  %2761 = load i32, ptr %2760, align 4, !tbaa !5
  store i32 %2761, ptr %76, align 4, !tbaa !5
  %2762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2763 = call i32 @s2n_print_stacktrace(ptr noundef %2762)
  %2764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2765 = trunc i8 %2764 to i1
  br i1 %2765, label %2766, label %2788

2766:                                             ; preds = %2759
  %2767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2768 = call i32 @fileno(ptr noundef %2767) #11
  %2769 = call i32 @isatty(i32 noundef %2768) #11
  %2770 = icmp ne i32 %2769, 0
  br i1 %2770, label %2771, label %2788

2771:                                             ; preds = %2766
  %2772 = load i32, ptr %76, align 4, !tbaa !5
  %2773 = call ptr @__errno_location() #12
  store i32 %2772, ptr %2773, align 4, !tbaa !5
  %2774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2775 = load i32, ptr @test_count, align 4, !tbaa !5
  %2776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2777 = load i32, ptr %2776, align 4, !tbaa !5
  %2778 = call ptr @s2n_strerror(i32 noundef %2777, ptr noundef @.str.4)
  %2779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2780 = load i32, ptr %2779, align 4, !tbaa !5
  %2781 = call ptr @s2n_strerror_debug(i32 noundef %2780, ptr noundef @.str.4)
  %2782 = call ptr @__errno_location() #12
  %2783 = load i32, ptr %2782, align 4, !tbaa !5
  %2784 = call ptr @strerror(i32 noundef %2783) #11
  %2785 = call ptr @__errno_location() #12
  %2786 = load i32, ptr %2785, align 4, !tbaa !5
  %2787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2774, ptr noundef @.str.2, i32 noundef %2775, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2778, ptr noundef %2781, ptr noundef %2784, i32 noundef %2786) #11
  br label %2805

2788:                                             ; preds = %2766, %2759
  %2789 = load i32, ptr %76, align 4, !tbaa !5
  %2790 = call ptr @__errno_location() #12
  store i32 %2789, ptr %2790, align 4, !tbaa !5
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = load i32, ptr @test_count, align 4, !tbaa !5
  %2793 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2794 = load i32, ptr %2793, align 4, !tbaa !5
  %2795 = call ptr @s2n_strerror(i32 noundef %2794, ptr noundef @.str.4)
  %2796 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2797 = load i32, ptr %2796, align 4, !tbaa !5
  %2798 = call ptr @s2n_strerror_debug(i32 noundef %2797, ptr noundef @.str.4)
  %2799 = call ptr @__errno_location() #12
  %2800 = load i32, ptr %2799, align 4, !tbaa !5
  %2801 = call ptr @strerror(i32 noundef %2800) #11
  %2802 = call ptr @__errno_location() #12
  %2803 = load i32, ptr %2802, align 4, !tbaa !5
  %2804 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2791, ptr noundef @.str.5, i32 noundef %2792, ptr noundef @.str.26, ptr noundef @.str.1, i32 noundef 159, ptr noundef %2795, ptr noundef %2798, ptr noundef %2801, i32 noundef %2803) #11
  br label %2805

2805:                                             ; preds = %2788, %2771
  call void @llvm.lifetime.end.p0(i64 4, ptr %76) #11
  br label %2806

2806:                                             ; preds = %2805
  br label %2807

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

2808:                                             ; No predecessors!
  br label %2809

2809:                                             ; preds = %2808
  br label %2810

2810:                                             ; preds = %2809, %2752
  br label %2811

2811:                                             ; preds = %2810
  br label %2812

2812:                                             ; preds = %2811
  call void @llvm.lifetime.start.p0(i64 24, ptr %77) #11
  %2813 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %77, i32 0, i32 0
  store i32 0, ptr %2813, align 8, !tbaa !18
  %2814 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %77, i32 0, i32 1
  store ptr %75, ptr %2814, align 8, !tbaa !20
  %2815 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %77, i32 0, i32 2
  store ptr null, ptr %2815, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %78) #11
  store i64 1, ptr %78, align 8, !tbaa !16
  br label %2816

2816:                                             ; preds = %3080, %2812
  %2817 = load i64, ptr %78, align 8, !tbaa !16
  %2818 = icmp ule i64 %2817, 10
  br i1 %2818, label %2820, label %2819

2819:                                             ; preds = %2816
  call void @llvm.lifetime.end.p0(i64 8, ptr %78) #11
  br label %3083

2820:                                             ; preds = %2816
  br label %2821

2821:                                             ; preds = %2820
  %2822 = load i32, ptr @test_count, align 4, !tbaa !5
  %2823 = add nsw i32 %2822, 1
  store i32 %2823, ptr @test_count, align 4, !tbaa !5
  %2824 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %2825 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %77, ptr noundef %2824, i64 noundef 5)
  %2826 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  store i32 %2825, ptr %2826, align 4
  %2827 = getelementptr inbounds %struct.s2n_result, ptr %79, i32 0, i32 0
  %2828 = load i32, ptr %2827, align 4
  %2829 = call zeroext i1 @s2n_result_is_ok(i32 %2828)
  br i1 %2829, label %2883, label %2830

2830:                                             ; preds = %2821
  br label %2831

2831:                                             ; preds = %2830
  br label %2832

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

2839:                                             ; preds = %2832
  %2840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2841 = call i32 @fileno(ptr noundef %2840) #11
  %2842 = call i32 @isatty(i32 noundef %2841) #11
  %2843 = icmp ne i32 %2842, 0
  br i1 %2843, label %2844, label %2861

2844:                                             ; preds = %2839
  %2845 = load i32, ptr %80, align 4, !tbaa !5
  %2846 = call ptr @__errno_location() #12
  store i32 %2845, ptr %2846, align 4, !tbaa !5
  %2847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2848 = load i32, ptr @test_count, align 4, !tbaa !5
  %2849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2850 = load i32, ptr %2849, align 4, !tbaa !5
  %2851 = call ptr @s2n_strerror(i32 noundef %2850, ptr noundef @.str.4)
  %2852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2853 = load i32, ptr %2852, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror_debug(i32 noundef %2853, ptr noundef @.str.4)
  %2855 = call ptr @__errno_location() #12
  %2856 = load i32, ptr %2855, align 4, !tbaa !5
  %2857 = call ptr @strerror(i32 noundef %2856) #11
  %2858 = call ptr @__errno_location() #12
  %2859 = load i32, ptr %2858, align 4, !tbaa !5
  %2860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2847, ptr noundef @.str.2, i32 noundef %2848, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2851, ptr noundef %2854, ptr noundef %2857, i32 noundef %2859) #11
  br label %2878

2861:                                             ; preds = %2839, %2832
  %2862 = load i32, ptr %80, align 4, !tbaa !5
  %2863 = call ptr @__errno_location() #12
  store i32 %2862, ptr %2863, align 4, !tbaa !5
  %2864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2865 = load i32, ptr @test_count, align 4, !tbaa !5
  %2866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2867 = load i32, ptr %2866, align 4, !tbaa !5
  %2868 = call ptr @s2n_strerror(i32 noundef %2867, ptr noundef @.str.4)
  %2869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2870 = load i32, ptr %2869, align 4, !tbaa !5
  %2871 = call ptr @s2n_strerror_debug(i32 noundef %2870, ptr noundef @.str.4)
  %2872 = call ptr @__errno_location() #12
  %2873 = load i32, ptr %2872, align 4, !tbaa !5
  %2874 = call ptr @strerror(i32 noundef %2873) #11
  %2875 = call ptr @__errno_location() #12
  %2876 = load i32, ptr %2875, align 4, !tbaa !5
  %2877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2864, ptr noundef @.str.5, i32 noundef %2865, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 163, ptr noundef %2868, ptr noundef %2871, ptr noundef %2874, i32 noundef %2876) #11
  br label %2878

2878:                                             ; preds = %2861, %2844
  call void @llvm.lifetime.end.p0(i64 4, ptr %80) #11
  br label %2879

2879:                                             ; preds = %2878
  br label %2880

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

2881:                                             ; No predecessors!
  br label %2882

2882:                                             ; preds = %2881
  br label %2883

2883:                                             ; preds = %2882, %2821
  br label %2884

2884:                                             ; preds = %2883
  br label %2885

2885:                                             ; preds = %2884
  br label %2886

2886:                                             ; preds = %2885
  %2887 = load i32, ptr @test_count, align 4, !tbaa !5
  %2888 = add nsw i32 %2887, 1
  store i32 %2888, ptr @test_count, align 4, !tbaa !5
  %2889 = getelementptr inbounds %struct.s2n_stuffer, ptr %75, i32 0, i32 2
  %2890 = load i32, ptr %2889, align 4, !tbaa !22
  %2891 = getelementptr inbounds %struct.s2n_stuffer, ptr %75, i32 0, i32 1
  %2892 = load i32, ptr %2891, align 8, !tbaa !25
  %2893 = sub i32 %2890, %2892
  %2894 = zext i32 %2893 to i64
  %2895 = icmp eq i64 %2894, 5
  br i1 %2895, label %2949, label %2896

2896:                                             ; preds = %2886
  br label %2897

2897:                                             ; preds = %2896
  br label %2898

2898:                                             ; preds = %2897
  call void @llvm.lifetime.start.p0(i64 4, ptr %81) #11
  %2899 = call ptr @__errno_location() #12
  %2900 = load i32, ptr %2899, align 4, !tbaa !5
  store i32 %2900, ptr %81, align 4, !tbaa !5
  %2901 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2902 = call i32 @s2n_print_stacktrace(ptr noundef %2901)
  %2903 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2904 = trunc i8 %2903 to i1
  br i1 %2904, label %2905, label %2927

2905:                                             ; preds = %2898
  %2906 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2907 = call i32 @fileno(ptr noundef %2906) #11
  %2908 = call i32 @isatty(i32 noundef %2907) #11
  %2909 = icmp ne i32 %2908, 0
  br i1 %2909, label %2910, label %2927

2910:                                             ; preds = %2905
  %2911 = load i32, ptr %81, align 4, !tbaa !5
  %2912 = call ptr @__errno_location() #12
  store i32 %2911, ptr %2912, align 4, !tbaa !5
  %2913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2914 = load i32, ptr @test_count, align 4, !tbaa !5
  %2915 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2916 = load i32, ptr %2915, align 4, !tbaa !5
  %2917 = call ptr @s2n_strerror(i32 noundef %2916, ptr noundef @.str.4)
  %2918 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2919 = load i32, ptr %2918, align 4, !tbaa !5
  %2920 = call ptr @s2n_strerror_debug(i32 noundef %2919, ptr noundef @.str.4)
  %2921 = call ptr @__errno_location() #12
  %2922 = load i32, ptr %2921, align 4, !tbaa !5
  %2923 = call ptr @strerror(i32 noundef %2922) #11
  %2924 = call ptr @__errno_location() #12
  %2925 = load i32, ptr %2924, align 4, !tbaa !5
  %2926 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2913, ptr noundef @.str.2, i32 noundef %2914, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2917, ptr noundef %2920, ptr noundef %2923, i32 noundef %2925) #11
  br label %2944

2927:                                             ; preds = %2905, %2898
  %2928 = load i32, ptr %81, align 4, !tbaa !5
  %2929 = call ptr @__errno_location() #12
  store i32 %2928, ptr %2929, align 4, !tbaa !5
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = load i32, ptr @test_count, align 4, !tbaa !5
  %2932 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2933 = load i32, ptr %2932, align 4, !tbaa !5
  %2934 = call ptr @s2n_strerror(i32 noundef %2933, ptr noundef @.str.4)
  %2935 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2936 = load i32, ptr %2935, align 4, !tbaa !5
  %2937 = call ptr @s2n_strerror_debug(i32 noundef %2936, ptr noundef @.str.4)
  %2938 = call ptr @__errno_location() #12
  %2939 = load i32, ptr %2938, align 4, !tbaa !5
  %2940 = call ptr @strerror(i32 noundef %2939) #11
  %2941 = call ptr @__errno_location() #12
  %2942 = load i32, ptr %2941, align 4, !tbaa !5
  %2943 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2930, ptr noundef @.str.5, i32 noundef %2931, ptr noundef @.str.28, ptr noundef @.str.1, i32 noundef 164, ptr noundef %2934, ptr noundef %2937, ptr noundef %2940, i32 noundef %2942) #11
  br label %2944

2944:                                             ; preds = %2927, %2910
  call void @llvm.lifetime.end.p0(i64 4, ptr %81) #11
  br label %2945

2945:                                             ; preds = %2944
  br label %2946

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

2947:                                             ; No predecessors!
  br label %2948

2948:                                             ; preds = %2947
  br label %2949

2949:                                             ; preds = %2948, %2886
  br label %2950

2950:                                             ; preds = %2949
  br label %2951

2951:                                             ; preds = %2950
  call void @llvm.lifetime.start.p0(i64 6, ptr %82) #11
  call void @llvm.memset.p0.i64(ptr align 1 %82, i8 0, i64 6, i1 false)
  br label %2952

2952:                                             ; preds = %2951
  %2953 = load i32, ptr @test_count, align 4, !tbaa !5
  %2954 = add nsw i32 %2953, 1
  store i32 %2954, ptr @test_count, align 4, !tbaa !5
  %2955 = getelementptr inbounds [6 x i8], ptr %82, i64 0, i64 0
  %2956 = call i32 @s2n_stuffer_read_bytes(ptr noundef %75, ptr noundef %2955, i32 noundef 5)
  %2957 = icmp eq i32 %2956, -1
  br i1 %2957, label %2958, label %3011

2958:                                             ; preds = %2952
  br label %2959

2959:                                             ; preds = %2958
  br label %2960

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

2967:                                             ; preds = %2960
  %2968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2969 = call i32 @fileno(ptr noundef %2968) #11
  %2970 = call i32 @isatty(i32 noundef %2969) #11
  %2971 = icmp ne i32 %2970, 0
  br i1 %2971, label %2972, label %2989

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

2989:                                             ; preds = %2967, %2960
  %2990 = load i32, ptr %83, align 4, !tbaa !5
  %2991 = call ptr @__errno_location() #12
  store i32 %2990, ptr %2991, align 4, !tbaa !5
  %2992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2993 = load i32, ptr @test_count, align 4, !tbaa !5
  %2994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2995 = load i32, ptr %2994, align 4, !tbaa !5
  %2996 = call ptr @s2n_strerror(i32 noundef %2995, ptr noundef @.str.4)
  %2997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %2998 = load i32, ptr %2997, align 4, !tbaa !5
  %2999 = call ptr @s2n_strerror_debug(i32 noundef %2998, ptr noundef @.str.4)
  %3000 = call ptr @__errno_location() #12
  %3001 = load i32, ptr %3000, align 4, !tbaa !5
  %3002 = call ptr @strerror(i32 noundef %3001) #11
  %3003 = call ptr @__errno_location() #12
  %3004 = load i32, ptr %3003, align 4, !tbaa !5
  %3005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2992, ptr noundef @.str.5, i32 noundef %2993, ptr noundef @.str.29, ptr noundef @.str.1, i32 noundef 167, ptr noundef %2996, ptr noundef %2999, ptr noundef %3002, i32 noundef %3004) #11
  br label %3006

3006:                                             ; preds = %2989, %2972
  call void @llvm.lifetime.end.p0(i64 4, ptr %83) #11
  br label %3007

3007:                                             ; preds = %3006
  br label %3008

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

3009:                                             ; No predecessors!
  br label %3010

3010:                                             ; preds = %3009
  br label %3011

3011:                                             ; preds = %3010, %2952
  br label %3012

3012:                                             ; preds = %3011
  br label %3013

3013:                                             ; preds = %3012
  br label %3014

3014:                                             ; preds = %3013
  br label %3015

3015:                                             ; preds = %3014
  %3016 = load i32, ptr @test_count, align 4, !tbaa !5
  %3017 = add nsw i32 %3016, 1
  store i32 %3017, ptr @test_count, align 4, !tbaa !5
  %3018 = getelementptr inbounds [6 x i8], ptr %82, i64 0, i64 0
  %3019 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %3020 = call i32 @memcmp(ptr noundef %3018, ptr noundef %3019, i64 noundef 5) #14
  %3021 = icmp eq i32 %3020, 0
  br i1 %3021, label %3075, label %3022

3022:                                             ; preds = %3015
  br label %3023

3023:                                             ; preds = %3022
  br label %3024

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

3031:                                             ; preds = %3024
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = call i32 @fileno(ptr noundef %3032) #11
  %3034 = call i32 @isatty(i32 noundef %3033) #11
  %3035 = icmp ne i32 %3034, 0
  br i1 %3035, label %3036, label %3053

3036:                                             ; preds = %3031
  %3037 = load i32, ptr %84, align 4, !tbaa !5
  %3038 = call ptr @__errno_location() #12
  store i32 %3037, ptr %3038, align 4, !tbaa !5
  %3039 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3040 = load i32, ptr @test_count, align 4, !tbaa !5
  %3041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3042 = load i32, ptr %3041, align 4, !tbaa !5
  %3043 = call ptr @s2n_strerror(i32 noundef %3042, ptr noundef @.str.4)
  %3044 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3045 = load i32, ptr %3044, align 4, !tbaa !5
  %3046 = call ptr @s2n_strerror_debug(i32 noundef %3045, ptr noundef @.str.4)
  %3047 = call ptr @__errno_location() #12
  %3048 = load i32, ptr %3047, align 4, !tbaa !5
  %3049 = call ptr @strerror(i32 noundef %3048) #11
  %3050 = call ptr @__errno_location() #12
  %3051 = load i32, ptr %3050, align 4, !tbaa !5
  %3052 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3039, ptr noundef @.str.2, i32 noundef %3040, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3043, ptr noundef %3046, ptr noundef %3049, i32 noundef %3051) #11
  br label %3070

3053:                                             ; preds = %3031, %3024
  %3054 = load i32, ptr %84, align 4, !tbaa !5
  %3055 = call ptr @__errno_location() #12
  store i32 %3054, ptr %3055, align 4, !tbaa !5
  %3056 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3057 = load i32, ptr @test_count, align 4, !tbaa !5
  %3058 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3059 = load i32, ptr %3058, align 4, !tbaa !5
  %3060 = call ptr @s2n_strerror(i32 noundef %3059, ptr noundef @.str.4)
  %3061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3062 = load i32, ptr %3061, align 4, !tbaa !5
  %3063 = call ptr @s2n_strerror_debug(i32 noundef %3062, ptr noundef @.str.4)
  %3064 = call ptr @__errno_location() #12
  %3065 = load i32, ptr %3064, align 4, !tbaa !5
  %3066 = call ptr @strerror(i32 noundef %3065) #11
  %3067 = call ptr @__errno_location() #12
  %3068 = load i32, ptr %3067, align 4, !tbaa !5
  %3069 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3056, ptr noundef @.str.5, i32 noundef %3057, ptr noundef @.str.30, ptr noundef @.str.1, i32 noundef 168, ptr noundef %3060, ptr noundef %3063, ptr noundef %3066, i32 noundef %3068) #11
  br label %3070

3070:                                             ; preds = %3053, %3036
  call void @llvm.lifetime.end.p0(i64 4, ptr %84) #11
  br label %3071

3071:                                             ; preds = %3070
  br label %3072

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

3073:                                             ; No predecessors!
  br label %3074

3074:                                             ; preds = %3073
  br label %3075

3075:                                             ; preds = %3074, %3015
  br label %3076

3076:                                             ; preds = %3075
  br label %3077

3077:                                             ; preds = %3076
  br label %3078

3078:                                             ; preds = %3077
  br label %3079

3079:                                             ; preds = %3078
  call void @llvm.lifetime.end.p0(i64 6, ptr %82) #11
  br label %3080

3080:                                             ; preds = %3079
  %3081 = load i64, ptr %78, align 8, !tbaa !16
  %3082 = add i64 %3081, 1
  store i64 %3082, ptr %78, align 8, !tbaa !16
  br label %2816, !llvm.loop !31

3083:                                             ; preds = %2819
  call void @llvm.lifetime.end.p0(i64 24, ptr %77) #11
  %3084 = call i32 @s2n_stuffer_free(ptr noundef %75)
  call void @llvm.lifetime.end.p0(i64 40, ptr %75) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %85) #11
  call void @llvm.memset.p0.i64(ptr align 8 %85, i8 0, i64 56, i1 false)
  br label %3085

3085:                                             ; preds = %3083
  %3086 = load i32, ptr @test_count, align 4, !tbaa !5
  %3087 = add nsw i32 %3086, 1
  store i32 %3087, ptr @test_count, align 4, !tbaa !5
  %3088 = call i32 @s2n_test_hash_state_new(ptr noundef %85)
  %3089 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  store i32 %3088, ptr %3089, align 4
  %3090 = getelementptr inbounds %struct.s2n_result, ptr %86, i32 0, i32 0
  %3091 = load i32, ptr %3090, align 4
  %3092 = call zeroext i1 @s2n_result_is_ok(i32 %3091)
  br i1 %3092, label %3146, label %3093

3093:                                             ; preds = %3085
  br label %3094

3094:                                             ; preds = %3093
  br label %3095

3095:                                             ; preds = %3094
  call void @llvm.lifetime.start.p0(i64 4, ptr %87) #11
  %3096 = call ptr @__errno_location() #12
  %3097 = load i32, ptr %3096, align 4, !tbaa !5
  store i32 %3097, ptr %87, align 4, !tbaa !5
  %3098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3099 = call i32 @s2n_print_stacktrace(ptr noundef %3098)
  %3100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3101 = trunc i8 %3100 to i1
  br i1 %3101, label %3102, label %3124

3102:                                             ; preds = %3095
  %3103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3104 = call i32 @fileno(ptr noundef %3103) #11
  %3105 = call i32 @isatty(i32 noundef %3104) #11
  %3106 = icmp ne i32 %3105, 0
  br i1 %3106, label %3107, label %3124

3107:                                             ; preds = %3102
  %3108 = load i32, ptr %87, align 4, !tbaa !5
  %3109 = call ptr @__errno_location() #12
  store i32 %3108, ptr %3109, align 4, !tbaa !5
  %3110 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3111 = load i32, ptr @test_count, align 4, !tbaa !5
  %3112 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3113 = load i32, ptr %3112, align 4, !tbaa !5
  %3114 = call ptr @s2n_strerror(i32 noundef %3113, ptr noundef @.str.4)
  %3115 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3116 = load i32, ptr %3115, align 4, !tbaa !5
  %3117 = call ptr @s2n_strerror_debug(i32 noundef %3116, ptr noundef @.str.4)
  %3118 = call ptr @__errno_location() #12
  %3119 = load i32, ptr %3118, align 4, !tbaa !5
  %3120 = call ptr @strerror(i32 noundef %3119) #11
  %3121 = call ptr @__errno_location() #12
  %3122 = load i32, ptr %3121, align 4, !tbaa !5
  %3123 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3110, ptr noundef @.str.2, i32 noundef %3111, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3114, ptr noundef %3117, ptr noundef %3120, i32 noundef %3122) #11
  br label %3141

3124:                                             ; preds = %3102, %3095
  %3125 = load i32, ptr %87, align 4, !tbaa !5
  %3126 = call ptr @__errno_location() #12
  store i32 %3125, ptr %3126, align 4, !tbaa !5
  %3127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3128 = load i32, ptr @test_count, align 4, !tbaa !5
  %3129 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3130 = load i32, ptr %3129, align 4, !tbaa !5
  %3131 = call ptr @s2n_strerror(i32 noundef %3130, ptr noundef @.str.4)
  %3132 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3133 = load i32, ptr %3132, align 4, !tbaa !5
  %3134 = call ptr @s2n_strerror_debug(i32 noundef %3133, ptr noundef @.str.4)
  %3135 = call ptr @__errno_location() #12
  %3136 = load i32, ptr %3135, align 4, !tbaa !5
  %3137 = call ptr @strerror(i32 noundef %3136) #11
  %3138 = call ptr @__errno_location() #12
  %3139 = load i32, ptr %3138, align 4, !tbaa !5
  %3140 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3127, ptr noundef @.str.5, i32 noundef %3128, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 175, ptr noundef %3131, ptr noundef %3134, ptr noundef %3137, i32 noundef %3139) #11
  br label %3141

3141:                                             ; preds = %3124, %3107
  call void @llvm.lifetime.end.p0(i64 4, ptr %87) #11
  br label %3142

3142:                                             ; preds = %3141
  br label %3143

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

3144:                                             ; No predecessors!
  br label %3145

3145:                                             ; preds = %3144
  br label %3146

3146:                                             ; preds = %3145, %3085
  br label %3147

3147:                                             ; preds = %3146
  br label %3148

3148:                                             ; preds = %3147
  call void @llvm.lifetime.start.p0(i64 24, ptr %88) #11
  %3149 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %88, i32 0, i32 0
  store i32 0, ptr %3149, align 8, !tbaa !18
  %3150 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %88, i32 0, i32 1
  store ptr null, ptr %3150, align 8, !tbaa !20
  %3151 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %88, i32 0, i32 2
  store ptr %85, ptr %3151, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %89) #11
  store i64 1, ptr %89, align 8, !tbaa !16
  br label %3152

3152:                                             ; preds = %3288, %3148
  %3153 = load i64, ptr %89, align 8, !tbaa !16
  %3154 = icmp ule i64 %3153, 10
  br i1 %3154, label %3156, label %3155

3155:                                             ; preds = %3152
  call void @llvm.lifetime.end.p0(i64 8, ptr %89) #11
  br label %3291

3156:                                             ; preds = %3152
  br label %3157

3157:                                             ; preds = %3156
  %3158 = load i32, ptr @test_count, align 4, !tbaa !5
  %3159 = add nsw i32 %3158, 1
  store i32 %3159, ptr @test_count, align 4, !tbaa !5
  %3160 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %3161 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %88, ptr noundef %3160, i64 noundef 5)
  %3162 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  store i32 %3161, ptr %3162, align 4
  %3163 = getelementptr inbounds %struct.s2n_result, ptr %90, i32 0, i32 0
  %3164 = load i32, ptr %3163, align 4
  %3165 = call zeroext i1 @s2n_result_is_ok(i32 %3164)
  br i1 %3165, label %3219, label %3166

3166:                                             ; preds = %3157
  br label %3167

3167:                                             ; preds = %3166
  br label %3168

3168:                                             ; preds = %3167
  call void @llvm.lifetime.start.p0(i64 4, ptr %91) #11
  %3169 = call ptr @__errno_location() #12
  %3170 = load i32, ptr %3169, align 4, !tbaa !5
  store i32 %3170, ptr %91, align 4, !tbaa !5
  %3171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3172 = call i32 @s2n_print_stacktrace(ptr noundef %3171)
  %3173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3174 = trunc i8 %3173 to i1
  br i1 %3174, label %3175, label %3197

3175:                                             ; preds = %3168
  %3176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3177 = call i32 @fileno(ptr noundef %3176) #11
  %3178 = call i32 @isatty(i32 noundef %3177) #11
  %3179 = icmp ne i32 %3178, 0
  br i1 %3179, label %3180, label %3197

3180:                                             ; preds = %3175
  %3181 = load i32, ptr %91, align 4, !tbaa !5
  %3182 = call ptr @__errno_location() #12
  store i32 %3181, ptr %3182, align 4, !tbaa !5
  %3183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3184 = load i32, ptr @test_count, align 4, !tbaa !5
  %3185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3186 = load i32, ptr %3185, align 4, !tbaa !5
  %3187 = call ptr @s2n_strerror(i32 noundef %3186, ptr noundef @.str.4)
  %3188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3189 = load i32, ptr %3188, align 4, !tbaa !5
  %3190 = call ptr @s2n_strerror_debug(i32 noundef %3189, ptr noundef @.str.4)
  %3191 = call ptr @__errno_location() #12
  %3192 = load i32, ptr %3191, align 4, !tbaa !5
  %3193 = call ptr @strerror(i32 noundef %3192) #11
  %3194 = call ptr @__errno_location() #12
  %3195 = load i32, ptr %3194, align 4, !tbaa !5
  %3196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3183, ptr noundef @.str.2, i32 noundef %3184, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3187, ptr noundef %3190, ptr noundef %3193, i32 noundef %3195) #11
  br label %3214

3197:                                             ; preds = %3175, %3168
  %3198 = load i32, ptr %91, align 4, !tbaa !5
  %3199 = call ptr @__errno_location() #12
  store i32 %3198, ptr %3199, align 4, !tbaa !5
  %3200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3201 = load i32, ptr @test_count, align 4, !tbaa !5
  %3202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3203 = load i32, ptr %3202, align 4, !tbaa !5
  %3204 = call ptr @s2n_strerror(i32 noundef %3203, ptr noundef @.str.4)
  %3205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3206 = load i32, ptr %3205, align 4, !tbaa !5
  %3207 = call ptr @s2n_strerror_debug(i32 noundef %3206, ptr noundef @.str.4)
  %3208 = call ptr @__errno_location() #12
  %3209 = load i32, ptr %3208, align 4, !tbaa !5
  %3210 = call ptr @strerror(i32 noundef %3209) #11
  %3211 = call ptr @__errno_location() #12
  %3212 = load i32, ptr %3211, align 4, !tbaa !5
  %3213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3200, ptr noundef @.str.5, i32 noundef %3201, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 179, ptr noundef %3204, ptr noundef %3207, ptr noundef %3210, i32 noundef %3212) #11
  br label %3214

3214:                                             ; preds = %3197, %3180
  call void @llvm.lifetime.end.p0(i64 4, ptr %91) #11
  br label %3215

3215:                                             ; preds = %3214
  br label %3216

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

3217:                                             ; No predecessors!
  br label %3218

3218:                                             ; preds = %3217
  br label %3219

3219:                                             ; preds = %3218, %3157
  br label %3220

3220:                                             ; preds = %3219
  br label %3221

3221:                                             ; preds = %3220
  br label %3222

3222:                                             ; preds = %3221
  %3223 = load i32, ptr @test_count, align 4, !tbaa !5
  %3224 = add nsw i32 %3223, 1
  store i32 %3224, ptr @test_count, align 4, !tbaa !5
  %3225 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %88, i32 0, i32 2
  %3226 = load ptr, ptr %3225, align 8, !tbaa !21
  %3227 = getelementptr inbounds %struct.s2n_hash_state, ptr %3226, i32 0, i32 3
  %3228 = load i64, ptr %3227, align 8, !tbaa !28
  %3229 = load i64, ptr %89, align 8, !tbaa !16
  %3230 = mul i64 5, %3229
  %3231 = icmp eq i64 %3228, %3230
  br i1 %3231, label %3285, label %3232

3232:                                             ; preds = %3222
  br label %3233

3233:                                             ; preds = %3232
  br label %3234

3234:                                             ; preds = %3233
  call void @llvm.lifetime.start.p0(i64 4, ptr %92) #11
  %3235 = call ptr @__errno_location() #12
  %3236 = load i32, ptr %3235, align 4, !tbaa !5
  store i32 %3236, ptr %92, align 4, !tbaa !5
  %3237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3238 = call i32 @s2n_print_stacktrace(ptr noundef %3237)
  %3239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3240 = trunc i8 %3239 to i1
  br i1 %3240, label %3241, label %3263

3241:                                             ; preds = %3234
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @fileno(ptr noundef %3242) #11
  %3244 = call i32 @isatty(i32 noundef %3243) #11
  %3245 = icmp ne i32 %3244, 0
  br i1 %3245, label %3246, label %3263

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

3263:                                             ; preds = %3241, %3234
  %3264 = load i32, ptr %92, align 4, !tbaa !5
  %3265 = call ptr @__errno_location() #12
  store i32 %3264, ptr %3265, align 4, !tbaa !5
  %3266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3267 = load i32, ptr @test_count, align 4, !tbaa !5
  %3268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3269 = load i32, ptr %3268, align 4, !tbaa !5
  %3270 = call ptr @s2n_strerror(i32 noundef %3269, ptr noundef @.str.4)
  %3271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3272 = load i32, ptr %3271, align 4, !tbaa !5
  %3273 = call ptr @s2n_strerror_debug(i32 noundef %3272, ptr noundef @.str.4)
  %3274 = call ptr @__errno_location() #12
  %3275 = load i32, ptr %3274, align 4, !tbaa !5
  %3276 = call ptr @strerror(i32 noundef %3275) #11
  %3277 = call ptr @__errno_location() #12
  %3278 = load i32, ptr %3277, align 4, !tbaa !5
  %3279 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3266, ptr noundef @.str.5, i32 noundef %3267, ptr noundef @.str.31, ptr noundef @.str.1, i32 noundef 180, ptr noundef %3270, ptr noundef %3273, ptr noundef %3276, i32 noundef %3278) #11
  br label %3280

3280:                                             ; preds = %3263, %3246
  call void @llvm.lifetime.end.p0(i64 4, ptr %92) #11
  br label %3281

3281:                                             ; preds = %3280
  br label %3282

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

3283:                                             ; No predecessors!
  br label %3284

3284:                                             ; preds = %3283
  br label %3285

3285:                                             ; preds = %3284, %3222
  br label %3286

3286:                                             ; preds = %3285
  br label %3287

3287:                                             ; preds = %3286
  br label %3288

3288:                                             ; preds = %3287
  %3289 = load i64, ptr %89, align 8, !tbaa !16
  %3290 = add i64 %3289, 1
  store i64 %3290, ptr %89, align 8, !tbaa !16
  br label %3152, !llvm.loop !32

3291:                                             ; preds = %3155
  call void @llvm.lifetime.end.p0(i64 24, ptr %88) #11
  %3292 = call i32 @s2n_hash_free(ptr noundef %85)
  call void @llvm.lifetime.end.p0(i64 56, ptr %85) #11
  call void @llvm.lifetime.start.p0(i64 40, ptr %93) #11
  call void @llvm.memset.p0.i64(ptr align 8 %93, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %94) #11
  %3293 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %94, i32 0, i32 0
  store i32 0, ptr %3293, align 8, !tbaa !18
  %3294 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %94, i32 0, i32 1
  store ptr %93, ptr %3294, align 8, !tbaa !20
  %3295 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %94, i32 0, i32 2
  store ptr null, ptr %3295, align 8, !tbaa !21
  br label %3296

3296:                                             ; preds = %3291
  br label %3297

3297:                                             ; preds = %3296
  br label %3298

3298:                                             ; preds = %3297
  %3299 = load i32, ptr @test_count, align 4, !tbaa !5
  %3300 = add nsw i32 %3299, 1
  store i32 %3300, ptr @test_count, align 4, !tbaa !5
  %3301 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %3302 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %94, ptr noundef %3301, i64 noundef 5)
  %3303 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  store i32 %3302, ptr %3303, align 4
  %3304 = getelementptr inbounds %struct.s2n_result, ptr %95, i32 0, i32 0
  %3305 = load i32, ptr %3304, align 4
  %3306 = call zeroext i1 @s2n_result_is_error(i32 %3305)
  br i1 %3306, label %3360, label %3307

3307:                                             ; preds = %3298
  br label %3308

3308:                                             ; preds = %3307
  br label %3309

3309:                                             ; preds = %3308
  call void @llvm.lifetime.start.p0(i64 4, ptr %96) #11
  %3310 = call ptr @__errno_location() #12
  %3311 = load i32, ptr %3310, align 4, !tbaa !5
  store i32 %3311, ptr %96, align 4, !tbaa !5
  %3312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3313 = call i32 @s2n_print_stacktrace(ptr noundef %3312)
  %3314 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3315 = trunc i8 %3314 to i1
  br i1 %3315, label %3316, label %3338

3316:                                             ; preds = %3309
  %3317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3318 = call i32 @fileno(ptr noundef %3317) #11
  %3319 = call i32 @isatty(i32 noundef %3318) #11
  %3320 = icmp ne i32 %3319, 0
  br i1 %3320, label %3321, label %3338

3321:                                             ; preds = %3316
  %3322 = load i32, ptr %96, align 4, !tbaa !5
  %3323 = call ptr @__errno_location() #12
  store i32 %3322, ptr %3323, align 4, !tbaa !5
  %3324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3325 = load i32, ptr @test_count, align 4, !tbaa !5
  %3326 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3327 = load i32, ptr %3326, align 4, !tbaa !5
  %3328 = call ptr @s2n_strerror(i32 noundef %3327, ptr noundef @.str.4)
  %3329 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3330 = load i32, ptr %3329, align 4, !tbaa !5
  %3331 = call ptr @s2n_strerror_debug(i32 noundef %3330, ptr noundef @.str.4)
  %3332 = call ptr @__errno_location() #12
  %3333 = load i32, ptr %3332, align 4, !tbaa !5
  %3334 = call ptr @strerror(i32 noundef %3333) #11
  %3335 = call ptr @__errno_location() #12
  %3336 = load i32, ptr %3335, align 4, !tbaa !5
  %3337 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3324, ptr noundef @.str.2, i32 noundef %3325, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3328, ptr noundef %3331, ptr noundef %3334, i32 noundef %3336) #11
  br label %3355

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

3355:                                             ; preds = %3338, %3321
  call void @llvm.lifetime.end.p0(i64 4, ptr %96) #11
  br label %3356

3356:                                             ; preds = %3355
  br label %3357

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

3358:                                             ; No predecessors!
  br label %3359

3359:                                             ; preds = %3358
  br label %3360

3360:                                             ; preds = %3359, %3298
  br label %3361

3361:                                             ; preds = %3360
  br label %3362

3362:                                             ; preds = %3361
  br label %3363

3363:                                             ; preds = %3362
  %3364 = load i32, ptr @test_count, align 4, !tbaa !5
  %3365 = add nsw i32 %3364, 1
  store i32 %3365, ptr @test_count, align 4, !tbaa !5
  %3366 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3367 = load i32, ptr %3366, align 4, !tbaa !5
  %3368 = icmp eq i32 %3367, 469762120
  br i1 %3368, label %3422, label %3369

3369:                                             ; preds = %3363
  br label %3370

3370:                                             ; preds = %3369
  br label %3371

3371:                                             ; preds = %3370
  call void @llvm.lifetime.start.p0(i64 4, ptr %97) #11
  %3372 = call ptr @__errno_location() #12
  %3373 = load i32, ptr %3372, align 4, !tbaa !5
  store i32 %3373, ptr %97, align 4, !tbaa !5
  %3374 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3375 = call i32 @s2n_print_stacktrace(ptr noundef %3374)
  %3376 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3377 = trunc i8 %3376 to i1
  br i1 %3377, label %3378, label %3400

3378:                                             ; preds = %3371
  %3379 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3380 = call i32 @fileno(ptr noundef %3379) #11
  %3381 = call i32 @isatty(i32 noundef %3380) #11
  %3382 = icmp ne i32 %3381, 0
  br i1 %3382, label %3383, label %3400

3383:                                             ; preds = %3378
  %3384 = load i32, ptr %97, align 4, !tbaa !5
  %3385 = call ptr @__errno_location() #12
  store i32 %3384, ptr %3385, align 4, !tbaa !5
  %3386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3387 = load i32, ptr @test_count, align 4, !tbaa !5
  %3388 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3389 = load i32, ptr %3388, align 4, !tbaa !5
  %3390 = call ptr @s2n_strerror(i32 noundef %3389, ptr noundef @.str.4)
  %3391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3392 = load i32, ptr %3391, align 4, !tbaa !5
  %3393 = call ptr @s2n_strerror_debug(i32 noundef %3392, ptr noundef @.str.4)
  %3394 = call ptr @__errno_location() #12
  %3395 = load i32, ptr %3394, align 4, !tbaa !5
  %3396 = call ptr @strerror(i32 noundef %3395) #11
  %3397 = call ptr @__errno_location() #12
  %3398 = load i32, ptr %3397, align 4, !tbaa !5
  %3399 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3386, ptr noundef @.str.2, i32 noundef %3387, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3390, ptr noundef %3393, ptr noundef %3396, i32 noundef %3398) #11
  br label %3417

3400:                                             ; preds = %3378, %3371
  %3401 = load i32, ptr %97, align 4, !tbaa !5
  %3402 = call ptr @__errno_location() #12
  store i32 %3401, ptr %3402, align 4, !tbaa !5
  %3403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3404 = load i32, ptr @test_count, align 4, !tbaa !5
  %3405 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3406 = load i32, ptr %3405, align 4, !tbaa !5
  %3407 = call ptr @s2n_strerror(i32 noundef %3406, ptr noundef @.str.4)
  %3408 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3409 = load i32, ptr %3408, align 4, !tbaa !5
  %3410 = call ptr @s2n_strerror_debug(i32 noundef %3409, ptr noundef @.str.4)
  %3411 = call ptr @__errno_location() #12
  %3412 = load i32, ptr %3411, align 4, !tbaa !5
  %3413 = call ptr @strerror(i32 noundef %3412) #11
  %3414 = call ptr @__errno_location() #12
  %3415 = load i32, ptr %3414, align 4, !tbaa !5
  %3416 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3403, ptr noundef @.str.5, i32 noundef %3404, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3407, ptr noundef %3410, ptr noundef %3413, i32 noundef %3415) #11
  br label %3417

3417:                                             ; preds = %3400, %3383
  call void @llvm.lifetime.end.p0(i64 4, ptr %97) #11
  br label %3418

3418:                                             ; preds = %3417
  br label %3419

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

3420:                                             ; No predecessors!
  br label %3421

3421:                                             ; preds = %3420
  br label %3422

3422:                                             ; preds = %3421, %3363
  br label %3423

3423:                                             ; preds = %3422
  br label %3424

3424:                                             ; preds = %3423
  br label %3425

3425:                                             ; preds = %3424
  %3426 = load i32, ptr @test_count, align 4, !tbaa !5
  %3427 = add nsw i32 %3426, 1
  store i32 %3427, ptr @test_count, align 4, !tbaa !5
  %3428 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3429 = load i32, ptr %3428, align 4, !tbaa !5
  %3430 = call ptr @s2n_strerror_debug(i32 noundef %3429, ptr noundef @.str.4)
  %3431 = icmp eq ptr %3430, null
  br i1 %3431, label %3432, label %3485

3432:                                             ; preds = %3425
  br label %3433

3433:                                             ; preds = %3432
  br label %3434

3434:                                             ; preds = %3433
  call void @llvm.lifetime.start.p0(i64 4, ptr %98) #11
  %3435 = call ptr @__errno_location() #12
  %3436 = load i32, ptr %3435, align 4, !tbaa !5
  store i32 %3436, ptr %98, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = call i32 @s2n_print_stacktrace(ptr noundef %3437)
  %3439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3440 = trunc i8 %3439 to i1
  br i1 %3440, label %3441, label %3463

3441:                                             ; preds = %3434
  %3442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3443 = call i32 @fileno(ptr noundef %3442) #11
  %3444 = call i32 @isatty(i32 noundef %3443) #11
  %3445 = icmp ne i32 %3444, 0
  br i1 %3445, label %3446, label %3463

3446:                                             ; preds = %3441
  %3447 = load i32, ptr %98, align 4, !tbaa !5
  %3448 = call ptr @__errno_location() #12
  store i32 %3447, ptr %3448, align 4, !tbaa !5
  %3449 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3450 = load i32, ptr @test_count, align 4, !tbaa !5
  %3451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3452 = load i32, ptr %3451, align 4, !tbaa !5
  %3453 = call ptr @s2n_strerror(i32 noundef %3452, ptr noundef @.str.4)
  %3454 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3455 = load i32, ptr %3454, align 4, !tbaa !5
  %3456 = call ptr @s2n_strerror_debug(i32 noundef %3455, ptr noundef @.str.4)
  %3457 = call ptr @__errno_location() #12
  %3458 = load i32, ptr %3457, align 4, !tbaa !5
  %3459 = call ptr @strerror(i32 noundef %3458) #11
  %3460 = call ptr @__errno_location() #12
  %3461 = load i32, ptr %3460, align 4, !tbaa !5
  %3462 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3449, ptr noundef @.str.2, i32 noundef %3450, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3453, ptr noundef %3456, ptr noundef %3459, i32 noundef %3461) #11
  br label %3480

3463:                                             ; preds = %3441, %3434
  %3464 = load i32, ptr %98, align 4, !tbaa !5
  %3465 = call ptr @__errno_location() #12
  store i32 %3464, ptr %3465, align 4, !tbaa !5
  %3466 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3467 = load i32, ptr @test_count, align 4, !tbaa !5
  %3468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3469 = load i32, ptr %3468, align 4, !tbaa !5
  %3470 = call ptr @s2n_strerror(i32 noundef %3469, ptr noundef @.str.4)
  %3471 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3472 = load i32, ptr %3471, align 4, !tbaa !5
  %3473 = call ptr @s2n_strerror_debug(i32 noundef %3472, ptr noundef @.str.4)
  %3474 = call ptr @__errno_location() #12
  %3475 = load i32, ptr %3474, align 4, !tbaa !5
  %3476 = call ptr @strerror(i32 noundef %3475) #11
  %3477 = call ptr @__errno_location() #12
  %3478 = load i32, ptr %3477, align 4, !tbaa !5
  %3479 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3466, ptr noundef @.str.5, i32 noundef %3467, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 190, ptr noundef %3470, ptr noundef %3473, ptr noundef %3476, i32 noundef %3478) #11
  br label %3480

3480:                                             ; preds = %3463, %3446
  call void @llvm.lifetime.end.p0(i64 4, ptr %98) #11
  br label %3481

3481:                                             ; preds = %3480
  br label %3482

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

3483:                                             ; No predecessors!
  br label %3484

3484:                                             ; preds = %3483
  br label %3485

3485:                                             ; preds = %3484, %3425
  br label %3486

3486:                                             ; preds = %3485
  br label %3487

3487:                                             ; preds = %3486
  br label %3488

3488:                                             ; preds = %3487
  br label %3489

3489:                                             ; preds = %3488
  br label %3490

3490:                                             ; preds = %3489
  %3491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3491, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3492 = call ptr @__errno_location() #12
  store i32 0, ptr %3492, align 4, !tbaa !5
  br label %3493

3493:                                             ; preds = %3490
  br label %3494

3494:                                             ; preds = %3493
  br label %3495

3495:                                             ; preds = %3494
  br label %3496

3496:                                             ; preds = %3495
  br label %3497

3497:                                             ; preds = %3496
  %3498 = load i32, ptr @test_count, align 4, !tbaa !5
  %3499 = add nsw i32 %3498, 1
  store i32 %3499, ptr @test_count, align 4, !tbaa !5
  %3500 = call i32 @s2n_stuffer_alloc(ptr noundef %93, i32 noundef 1)
  %3501 = icmp eq i32 %3500, -1
  br i1 %3501, label %3502, label %3555

3502:                                             ; preds = %3497
  br label %3503

3503:                                             ; preds = %3502
  br label %3504

3504:                                             ; preds = %3503
  call void @llvm.lifetime.start.p0(i64 4, ptr %99) #11
  %3505 = call ptr @__errno_location() #12
  %3506 = load i32, ptr %3505, align 4, !tbaa !5
  store i32 %3506, ptr %99, align 4, !tbaa !5
  %3507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3508 = call i32 @s2n_print_stacktrace(ptr noundef %3507)
  %3509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3510 = trunc i8 %3509 to i1
  br i1 %3510, label %3511, label %3533

3511:                                             ; preds = %3504
  %3512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3513 = call i32 @fileno(ptr noundef %3512) #11
  %3514 = call i32 @isatty(i32 noundef %3513) #11
  %3515 = icmp ne i32 %3514, 0
  br i1 %3515, label %3516, label %3533

3516:                                             ; preds = %3511
  %3517 = load i32, ptr %99, align 4, !tbaa !5
  %3518 = call ptr @__errno_location() #12
  store i32 %3517, ptr %3518, align 4, !tbaa !5
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = load i32, ptr @test_count, align 4, !tbaa !5
  %3521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3522 = load i32, ptr %3521, align 4, !tbaa !5
  %3523 = call ptr @s2n_strerror(i32 noundef %3522, ptr noundef @.str.4)
  %3524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3525 = load i32, ptr %3524, align 4, !tbaa !5
  %3526 = call ptr @s2n_strerror_debug(i32 noundef %3525, ptr noundef @.str.4)
  %3527 = call ptr @__errno_location() #12
  %3528 = load i32, ptr %3527, align 4, !tbaa !5
  %3529 = call ptr @strerror(i32 noundef %3528) #11
  %3530 = call ptr @__errno_location() #12
  %3531 = load i32, ptr %3530, align 4, !tbaa !5
  %3532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3519, ptr noundef @.str.2, i32 noundef %3520, ptr noundef @.str.21, ptr noundef @.str.1, i32 noundef 192, ptr noundef %3523, ptr noundef %3526, ptr noundef %3529, i32 noundef %3531) #11
  br label %3550

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

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

3551:                                             ; preds = %3550
  br label %3552

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

3553:                                             ; No predecessors!
  br label %3554

3554:                                             ; preds = %3553
  br label %3555

3555:                                             ; preds = %3554, %3497
  br label %3556

3556:                                             ; preds = %3555
  br label %3557

3557:                                             ; preds = %3556
  br label %3558

3558:                                             ; preds = %3557
  br label %3559

3559:                                             ; preds = %3558
  br label %3560

3560:                                             ; preds = %3559
  %3561 = load i32, ptr @test_count, align 4, !tbaa !5
  %3562 = add nsw i32 %3561, 1
  store i32 %3562, ptr @test_count, align 4, !tbaa !5
  %3563 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %3564 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %94, ptr noundef %3563, i64 noundef 5)
  %3565 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  store i32 %3564, ptr %3565, align 4
  %3566 = getelementptr inbounds %struct.s2n_result, ptr %100, i32 0, i32 0
  %3567 = load i32, ptr %3566, align 4
  %3568 = call zeroext i1 @s2n_result_is_error(i32 %3567)
  br i1 %3568, label %3622, label %3569

3569:                                             ; preds = %3560
  br label %3570

3570:                                             ; preds = %3569
  br label %3571

3571:                                             ; preds = %3570
  call void @llvm.lifetime.start.p0(i64 4, ptr %101) #11
  %3572 = call ptr @__errno_location() #12
  %3573 = load i32, ptr %3572, align 4, !tbaa !5
  store i32 %3573, ptr %101, align 4, !tbaa !5
  %3574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3575 = call i32 @s2n_print_stacktrace(ptr noundef %3574)
  %3576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3577 = trunc i8 %3576 to i1
  br i1 %3577, label %3578, label %3600

3578:                                             ; preds = %3571
  %3579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3580 = call i32 @fileno(ptr noundef %3579) #11
  %3581 = call i32 @isatty(i32 noundef %3580) #11
  %3582 = icmp ne i32 %3581, 0
  br i1 %3582, label %3583, label %3600

3583:                                             ; preds = %3578
  %3584 = load i32, ptr %101, align 4, !tbaa !5
  %3585 = call ptr @__errno_location() #12
  store i32 %3584, ptr %3585, align 4, !tbaa !5
  %3586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3587 = load i32, ptr @test_count, align 4, !tbaa !5
  %3588 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3589 = load i32, ptr %3588, align 4, !tbaa !5
  %3590 = call ptr @s2n_strerror(i32 noundef %3589, ptr noundef @.str.4)
  %3591 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3592 = load i32, ptr %3591, align 4, !tbaa !5
  %3593 = call ptr @s2n_strerror_debug(i32 noundef %3592, ptr noundef @.str.4)
  %3594 = call ptr @__errno_location() #12
  %3595 = load i32, ptr %3594, align 4, !tbaa !5
  %3596 = call ptr @strerror(i32 noundef %3595) #11
  %3597 = call ptr @__errno_location() #12
  %3598 = load i32, ptr %3597, align 4, !tbaa !5
  %3599 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3586, ptr noundef @.str.2, i32 noundef %3587, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3590, ptr noundef %3593, ptr noundef %3596, i32 noundef %3598) #11
  br label %3617

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

3617:                                             ; preds = %3600, %3583
  call void @llvm.lifetime.end.p0(i64 4, ptr %101) #11
  br label %3618

3618:                                             ; preds = %3617
  br label %3619

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

3620:                                             ; No predecessors!
  br label %3621

3621:                                             ; preds = %3620
  br label %3622

3622:                                             ; preds = %3621, %3560
  br label %3623

3623:                                             ; preds = %3622
  br label %3624

3624:                                             ; preds = %3623
  br label %3625

3625:                                             ; preds = %3624
  %3626 = load i32, ptr @test_count, align 4, !tbaa !5
  %3627 = add nsw i32 %3626, 1
  store i32 %3627, ptr @test_count, align 4, !tbaa !5
  %3628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3629 = load i32, ptr %3628, align 4, !tbaa !5
  %3630 = icmp eq i32 %3629, 469762120
  br i1 %3630, label %3684, label %3631

3631:                                             ; preds = %3625
  br label %3632

3632:                                             ; preds = %3631
  br label %3633

3633:                                             ; preds = %3632
  call void @llvm.lifetime.start.p0(i64 4, ptr %102) #11
  %3634 = call ptr @__errno_location() #12
  %3635 = load i32, ptr %3634, align 4, !tbaa !5
  store i32 %3635, ptr %102, align 4, !tbaa !5
  %3636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3637 = call i32 @s2n_print_stacktrace(ptr noundef %3636)
  %3638 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3639 = trunc i8 %3638 to i1
  br i1 %3639, label %3640, label %3662

3640:                                             ; preds = %3633
  %3641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3642 = call i32 @fileno(ptr noundef %3641) #11
  %3643 = call i32 @isatty(i32 noundef %3642) #11
  %3644 = icmp ne i32 %3643, 0
  br i1 %3644, label %3645, label %3662

3645:                                             ; preds = %3640
  %3646 = load i32, ptr %102, align 4, !tbaa !5
  %3647 = call ptr @__errno_location() #12
  store i32 %3646, ptr %3647, align 4, !tbaa !5
  %3648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3649 = load i32, ptr @test_count, align 4, !tbaa !5
  %3650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3651 = load i32, ptr %3650, align 4, !tbaa !5
  %3652 = call ptr @s2n_strerror(i32 noundef %3651, ptr noundef @.str.4)
  %3653 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3654 = load i32, ptr %3653, align 4, !tbaa !5
  %3655 = call ptr @s2n_strerror_debug(i32 noundef %3654, ptr noundef @.str.4)
  %3656 = call ptr @__errno_location() #12
  %3657 = load i32, ptr %3656, align 4, !tbaa !5
  %3658 = call ptr @strerror(i32 noundef %3657) #11
  %3659 = call ptr @__errno_location() #12
  %3660 = load i32, ptr %3659, align 4, !tbaa !5
  %3661 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3648, ptr noundef @.str.2, i32 noundef %3649, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3652, ptr noundef %3655, ptr noundef %3658, i32 noundef %3660) #11
  br label %3679

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

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

3680:                                             ; preds = %3679
  br label %3681

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

3682:                                             ; No predecessors!
  br label %3683

3683:                                             ; preds = %3682
  br label %3684

3684:                                             ; preds = %3683, %3625
  br label %3685

3685:                                             ; preds = %3684
  br label %3686

3686:                                             ; preds = %3685
  br label %3687

3687:                                             ; preds = %3686
  %3688 = load i32, ptr @test_count, align 4, !tbaa !5
  %3689 = add nsw i32 %3688, 1
  store i32 %3689, ptr @test_count, align 4, !tbaa !5
  %3690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3691 = load i32, ptr %3690, align 4, !tbaa !5
  %3692 = call ptr @s2n_strerror_debug(i32 noundef %3691, ptr noundef @.str.4)
  %3693 = icmp eq ptr %3692, null
  br i1 %3693, label %3694, label %3747

3694:                                             ; preds = %3687
  br label %3695

3695:                                             ; preds = %3694
  br label %3696

3696:                                             ; preds = %3695
  call void @llvm.lifetime.start.p0(i64 4, ptr %103) #11
  %3697 = call ptr @__errno_location() #12
  %3698 = load i32, ptr %3697, align 4, !tbaa !5
  store i32 %3698, ptr %103, align 4, !tbaa !5
  %3699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3700 = call i32 @s2n_print_stacktrace(ptr noundef %3699)
  %3701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3702 = trunc i8 %3701 to i1
  br i1 %3702, label %3703, label %3725

3703:                                             ; preds = %3696
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = call i32 @fileno(ptr noundef %3704) #11
  %3706 = call i32 @isatty(i32 noundef %3705) #11
  %3707 = icmp ne i32 %3706, 0
  br i1 %3707, label %3708, label %3725

3708:                                             ; preds = %3703
  %3709 = load i32, ptr %103, align 4, !tbaa !5
  %3710 = call ptr @__errno_location() #12
  store i32 %3709, ptr %3710, align 4, !tbaa !5
  %3711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3712 = load i32, ptr @test_count, align 4, !tbaa !5
  %3713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3714 = load i32, ptr %3713, align 4, !tbaa !5
  %3715 = call ptr @s2n_strerror(i32 noundef %3714, ptr noundef @.str.4)
  %3716 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3717 = load i32, ptr %3716, align 4, !tbaa !5
  %3718 = call ptr @s2n_strerror_debug(i32 noundef %3717, ptr noundef @.str.4)
  %3719 = call ptr @__errno_location() #12
  %3720 = load i32, ptr %3719, align 4, !tbaa !5
  %3721 = call ptr @strerror(i32 noundef %3720) #11
  %3722 = call ptr @__errno_location() #12
  %3723 = load i32, ptr %3722, align 4, !tbaa !5
  %3724 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3711, ptr noundef @.str.2, i32 noundef %3712, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3715, ptr noundef %3718, ptr noundef %3721, i32 noundef %3723) #11
  br label %3742

3725:                                             ; preds = %3703, %3696
  %3726 = load i32, ptr %103, align 4, !tbaa !5
  %3727 = call ptr @__errno_location() #12
  store i32 %3726, ptr %3727, align 4, !tbaa !5
  %3728 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3729 = load i32, ptr @test_count, align 4, !tbaa !5
  %3730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3731 = load i32, ptr %3730, align 4, !tbaa !5
  %3732 = call ptr @s2n_strerror(i32 noundef %3731, ptr noundef @.str.4)
  %3733 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3734 = load i32, ptr %3733, align 4, !tbaa !5
  %3735 = call ptr @s2n_strerror_debug(i32 noundef %3734, ptr noundef @.str.4)
  %3736 = call ptr @__errno_location() #12
  %3737 = load i32, ptr %3736, align 4, !tbaa !5
  %3738 = call ptr @strerror(i32 noundef %3737) #11
  %3739 = call ptr @__errno_location() #12
  %3740 = load i32, ptr %3739, align 4, !tbaa !5
  %3741 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3728, ptr noundef @.str.5, i32 noundef %3729, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 195, ptr noundef %3732, ptr noundef %3735, ptr noundef %3738, i32 noundef %3740) #11
  br label %3742

3742:                                             ; preds = %3725, %3708
  call void @llvm.lifetime.end.p0(i64 4, ptr %103) #11
  br label %3743

3743:                                             ; preds = %3742
  br label %3744

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

3745:                                             ; No predecessors!
  br label %3746

3746:                                             ; preds = %3745
  br label %3747

3747:                                             ; preds = %3746, %3687
  br label %3748

3748:                                             ; preds = %3747
  br label %3749

3749:                                             ; preds = %3748
  br label %3750

3750:                                             ; preds = %3749
  br label %3751

3751:                                             ; preds = %3750
  br label %3752

3752:                                             ; preds = %3751
  %3753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %3753, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %3754 = call ptr @__errno_location() #12
  store i32 0, ptr %3754, align 4, !tbaa !5
  br label %3755

3755:                                             ; preds = %3752
  br label %3756

3756:                                             ; preds = %3755
  br label %3757

3757:                                             ; preds = %3756
  br label %3758

3758:                                             ; preds = %3757
  br label %3759

3759:                                             ; preds = %3758
  %3760 = load i32, ptr @test_count, align 4, !tbaa !5
  %3761 = add nsw i32 %3760, 1
  store i32 %3761, ptr @test_count, align 4, !tbaa !5
  %3762 = call i32 @s2n_stuffer_free(ptr noundef %93)
  %3763 = icmp eq i32 %3762, -1
  br i1 %3763, label %3764, label %3817

3764:                                             ; preds = %3759
  br label %3765

3765:                                             ; preds = %3764
  br label %3766

3766:                                             ; preds = %3765
  call void @llvm.lifetime.start.p0(i64 4, ptr %104) #11
  %3767 = call ptr @__errno_location() #12
  %3768 = load i32, ptr %3767, align 4, !tbaa !5
  store i32 %3768, ptr %104, align 4, !tbaa !5
  %3769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3770 = call i32 @s2n_print_stacktrace(ptr noundef %3769)
  %3771 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3772 = trunc i8 %3771 to i1
  br i1 %3772, label %3773, label %3795

3773:                                             ; preds = %3766
  %3774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3775 = call i32 @fileno(ptr noundef %3774) #11
  %3776 = call i32 @isatty(i32 noundef %3775) #11
  %3777 = icmp ne i32 %3776, 0
  br i1 %3777, label %3778, label %3795

3778:                                             ; preds = %3773
  %3779 = load i32, ptr %104, align 4, !tbaa !5
  %3780 = call ptr @__errno_location() #12
  store i32 %3779, ptr %3780, align 4, !tbaa !5
  %3781 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3782 = load i32, ptr @test_count, align 4, !tbaa !5
  %3783 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3784 = load i32, ptr %3783, align 4, !tbaa !5
  %3785 = call ptr @s2n_strerror(i32 noundef %3784, ptr noundef @.str.4)
  %3786 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3787 = load i32, ptr %3786, align 4, !tbaa !5
  %3788 = call ptr @s2n_strerror_debug(i32 noundef %3787, ptr noundef @.str.4)
  %3789 = call ptr @__errno_location() #12
  %3790 = load i32, ptr %3789, align 4, !tbaa !5
  %3791 = call ptr @strerror(i32 noundef %3790) #11
  %3792 = call ptr @__errno_location() #12
  %3793 = load i32, ptr %3792, align 4, !tbaa !5
  %3794 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3781, ptr noundef @.str.2, i32 noundef %3782, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 196, ptr noundef %3785, ptr noundef %3788, ptr noundef %3791, i32 noundef %3793) #11
  br label %3812

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

3812:                                             ; preds = %3795, %3778
  call void @llvm.lifetime.end.p0(i64 4, ptr %104) #11
  br label %3813

3813:                                             ; preds = %3812
  br label %3814

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

3815:                                             ; No predecessors!
  br label %3816

3816:                                             ; preds = %3815
  br label %3817

3817:                                             ; preds = %3816, %3759
  br label %3818

3818:                                             ; preds = %3817
  br label %3819

3819:                                             ; preds = %3818
  br label %3820

3820:                                             ; preds = %3819
  %3821 = load i32, ptr @test_count, align 4, !tbaa !5
  %3822 = add nsw i32 %3821, 1
  store i32 %3822, ptr @test_count, align 4, !tbaa !5
  %3823 = call i32 @s2n_stuffer_alloc(ptr noundef %93, i32 noundef 4)
  %3824 = icmp eq i32 %3823, -1
  br i1 %3824, label %3825, label %3878

3825:                                             ; preds = %3820
  br label %3826

3826:                                             ; preds = %3825
  br label %3827

3827:                                             ; preds = %3826
  call void @llvm.lifetime.start.p0(i64 4, ptr %105) #11
  %3828 = call ptr @__errno_location() #12
  %3829 = load i32, ptr %3828, align 4, !tbaa !5
  store i32 %3829, ptr %105, align 4, !tbaa !5
  %3830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3831 = call i32 @s2n_print_stacktrace(ptr noundef %3830)
  %3832 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3833 = trunc i8 %3832 to i1
  br i1 %3833, label %3834, label %3856

3834:                                             ; preds = %3827
  %3835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3836 = call i32 @fileno(ptr noundef %3835) #11
  %3837 = call i32 @isatty(i32 noundef %3836) #11
  %3838 = icmp ne i32 %3837, 0
  br i1 %3838, label %3839, label %3856

3839:                                             ; preds = %3834
  %3840 = load i32, ptr %105, align 4, !tbaa !5
  %3841 = call ptr @__errno_location() #12
  store i32 %3840, ptr %3841, align 4, !tbaa !5
  %3842 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3843 = load i32, ptr @test_count, align 4, !tbaa !5
  %3844 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3845 = load i32, ptr %3844, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror(i32 noundef %3845, ptr noundef @.str.4)
  %3847 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3848 = load i32, ptr %3847, align 4, !tbaa !5
  %3849 = call ptr @s2n_strerror_debug(i32 noundef %3848, ptr noundef @.str.4)
  %3850 = call ptr @__errno_location() #12
  %3851 = load i32, ptr %3850, align 4, !tbaa !5
  %3852 = call ptr @strerror(i32 noundef %3851) #11
  %3853 = call ptr @__errno_location() #12
  %3854 = load i32, ptr %3853, align 4, !tbaa !5
  %3855 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3842, ptr noundef @.str.2, i32 noundef %3843, ptr noundef @.str.34, ptr noundef @.str.1, i32 noundef 198, ptr noundef %3846, ptr noundef %3849, ptr noundef %3852, i32 noundef %3854) #11
  br label %3873

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

3873:                                             ; preds = %3856, %3839
  call void @llvm.lifetime.end.p0(i64 4, ptr %105) #11
  br label %3874

3874:                                             ; preds = %3873
  br label %3875

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

3876:                                             ; No predecessors!
  br label %3877

3877:                                             ; preds = %3876
  br label %3878

3878:                                             ; preds = %3877, %3820
  br label %3879

3879:                                             ; preds = %3878
  br label %3880

3880:                                             ; preds = %3879
  br label %3881

3881:                                             ; preds = %3880
  br label %3882

3882:                                             ; preds = %3881
  br label %3883

3883:                                             ; preds = %3882
  %3884 = load i32, ptr @test_count, align 4, !tbaa !5
  %3885 = add nsw i32 %3884, 1
  store i32 %3885, ptr @test_count, align 4, !tbaa !5
  %3886 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %3887 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %94, ptr noundef %3886, i64 noundef 5)
  %3888 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  store i32 %3887, ptr %3888, align 4
  %3889 = getelementptr inbounds %struct.s2n_result, ptr %106, i32 0, i32 0
  %3890 = load i32, ptr %3889, align 4
  %3891 = call zeroext i1 @s2n_result_is_error(i32 %3890)
  br i1 %3891, label %3945, label %3892

3892:                                             ; preds = %3883
  br label %3893

3893:                                             ; preds = %3892
  br label %3894

3894:                                             ; preds = %3893
  call void @llvm.lifetime.start.p0(i64 4, ptr %107) #11
  %3895 = call ptr @__errno_location() #12
  %3896 = load i32, ptr %3895, align 4, !tbaa !5
  store i32 %3896, ptr %107, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = call i32 @s2n_print_stacktrace(ptr noundef %3897)
  %3899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3900 = trunc i8 %3899 to i1
  br i1 %3900, label %3901, label %3923

3901:                                             ; preds = %3894
  %3902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3903 = call i32 @fileno(ptr noundef %3902) #11
  %3904 = call i32 @isatty(i32 noundef %3903) #11
  %3905 = icmp ne i32 %3904, 0
  br i1 %3905, label %3906, label %3923

3906:                                             ; preds = %3901
  %3907 = load i32, ptr %107, align 4, !tbaa !5
  %3908 = call ptr @__errno_location() #12
  store i32 %3907, ptr %3908, align 4, !tbaa !5
  %3909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3910 = load i32, ptr @test_count, align 4, !tbaa !5
  %3911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3912 = load i32, ptr %3911, align 4, !tbaa !5
  %3913 = call ptr @s2n_strerror(i32 noundef %3912, ptr noundef @.str.4)
  %3914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3915 = load i32, ptr %3914, align 4, !tbaa !5
  %3916 = call ptr @s2n_strerror_debug(i32 noundef %3915, ptr noundef @.str.4)
  %3917 = call ptr @__errno_location() #12
  %3918 = load i32, ptr %3917, align 4, !tbaa !5
  %3919 = call ptr @strerror(i32 noundef %3918) #11
  %3920 = call ptr @__errno_location() #12
  %3921 = load i32, ptr %3920, align 4, !tbaa !5
  %3922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3909, ptr noundef @.str.2, i32 noundef %3910, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3913, ptr noundef %3916, ptr noundef %3919, i32 noundef %3921) #11
  br label %3940

3923:                                             ; preds = %3901, %3894
  %3924 = load i32, ptr %107, align 4, !tbaa !5
  %3925 = call ptr @__errno_location() #12
  store i32 %3924, ptr %3925, align 4, !tbaa !5
  %3926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3927 = load i32, ptr @test_count, align 4, !tbaa !5
  %3928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3929 = load i32, ptr %3928, align 4, !tbaa !5
  %3930 = call ptr @s2n_strerror(i32 noundef %3929, ptr noundef @.str.4)
  %3931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3932 = load i32, ptr %3931, align 4, !tbaa !5
  %3933 = call ptr @s2n_strerror_debug(i32 noundef %3932, ptr noundef @.str.4)
  %3934 = call ptr @__errno_location() #12
  %3935 = load i32, ptr %3934, align 4, !tbaa !5
  %3936 = call ptr @strerror(i32 noundef %3935) #11
  %3937 = call ptr @__errno_location() #12
  %3938 = load i32, ptr %3937, align 4, !tbaa !5
  %3939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3926, ptr noundef @.str.5, i32 noundef %3927, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3930, ptr noundef %3933, ptr noundef %3936, i32 noundef %3938) #11
  br label %3940

3940:                                             ; preds = %3923, %3906
  call void @llvm.lifetime.end.p0(i64 4, ptr %107) #11
  br label %3941

3941:                                             ; preds = %3940
  br label %3942

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

3943:                                             ; No predecessors!
  br label %3944

3944:                                             ; preds = %3943
  br label %3945

3945:                                             ; preds = %3944, %3883
  br label %3946

3946:                                             ; preds = %3945
  br label %3947

3947:                                             ; preds = %3946
  br label %3948

3948:                                             ; preds = %3947
  %3949 = load i32, ptr @test_count, align 4, !tbaa !5
  %3950 = add nsw i32 %3949, 1
  store i32 %3950, ptr @test_count, align 4, !tbaa !5
  %3951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3952 = load i32, ptr %3951, align 4, !tbaa !5
  %3953 = icmp eq i32 %3952, 469762120
  br i1 %3953, label %4007, label %3954

3954:                                             ; preds = %3948
  br label %3955

3955:                                             ; preds = %3954
  br label %3956

3956:                                             ; preds = %3955
  call void @llvm.lifetime.start.p0(i64 4, ptr %108) #11
  %3957 = call ptr @__errno_location() #12
  %3958 = load i32, ptr %3957, align 4, !tbaa !5
  store i32 %3958, ptr %108, align 4, !tbaa !5
  %3959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3960 = call i32 @s2n_print_stacktrace(ptr noundef %3959)
  %3961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3962 = trunc i8 %3961 to i1
  br i1 %3962, label %3963, label %3985

3963:                                             ; preds = %3956
  %3964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3965 = call i32 @fileno(ptr noundef %3964) #11
  %3966 = call i32 @isatty(i32 noundef %3965) #11
  %3967 = icmp ne i32 %3966, 0
  br i1 %3967, label %3968, label %3985

3968:                                             ; preds = %3963
  %3969 = load i32, ptr %108, align 4, !tbaa !5
  %3970 = call ptr @__errno_location() #12
  store i32 %3969, ptr %3970, align 4, !tbaa !5
  %3971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3972 = load i32, ptr @test_count, align 4, !tbaa !5
  %3973 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3974 = load i32, ptr %3973, align 4, !tbaa !5
  %3975 = call ptr @s2n_strerror(i32 noundef %3974, ptr noundef @.str.4)
  %3976 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3977 = load i32, ptr %3976, align 4, !tbaa !5
  %3978 = call ptr @s2n_strerror_debug(i32 noundef %3977, ptr noundef @.str.4)
  %3979 = call ptr @__errno_location() #12
  %3980 = load i32, ptr %3979, align 4, !tbaa !5
  %3981 = call ptr @strerror(i32 noundef %3980) #11
  %3982 = call ptr @__errno_location() #12
  %3983 = load i32, ptr %3982, align 4, !tbaa !5
  %3984 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3971, ptr noundef @.str.2, i32 noundef %3972, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3975, ptr noundef %3978, ptr noundef %3981, i32 noundef %3983) #11
  br label %4002

3985:                                             ; preds = %3963, %3956
  %3986 = load i32, ptr %108, align 4, !tbaa !5
  %3987 = call ptr @__errno_location() #12
  store i32 %3986, ptr %3987, align 4, !tbaa !5
  %3988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3989 = load i32, ptr @test_count, align 4, !tbaa !5
  %3990 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3991 = load i32, ptr %3990, align 4, !tbaa !5
  %3992 = call ptr @s2n_strerror(i32 noundef %3991, ptr noundef @.str.4)
  %3993 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %3994 = load i32, ptr %3993, align 4, !tbaa !5
  %3995 = call ptr @s2n_strerror_debug(i32 noundef %3994, ptr noundef @.str.4)
  %3996 = call ptr @__errno_location() #12
  %3997 = load i32, ptr %3996, align 4, !tbaa !5
  %3998 = call ptr @strerror(i32 noundef %3997) #11
  %3999 = call ptr @__errno_location() #12
  %4000 = load i32, ptr %3999, align 4, !tbaa !5
  %4001 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3988, ptr noundef @.str.5, i32 noundef %3989, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 201, ptr noundef %3992, ptr noundef %3995, ptr noundef %3998, i32 noundef %4000) #11
  br label %4002

4002:                                             ; preds = %3985, %3968
  call void @llvm.lifetime.end.p0(i64 4, ptr %108) #11
  br label %4003

4003:                                             ; preds = %4002
  br label %4004

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

4005:                                             ; No predecessors!
  br label %4006

4006:                                             ; preds = %4005
  br label %4007

4007:                                             ; preds = %4006, %3948
  br label %4008

4008:                                             ; preds = %4007
  br label %4009

4009:                                             ; preds = %4008
  br label %4010

4010:                                             ; preds = %4009
  %4011 = load i32, ptr @test_count, align 4, !tbaa !5
  %4012 = add nsw i32 %4011, 1
  store i32 %4012, ptr @test_count, align 4, !tbaa !5
  %4013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4014 = load i32, ptr %4013, align 4, !tbaa !5
  %4015 = call ptr @s2n_strerror_debug(i32 noundef %4014, ptr noundef @.str.4)
  %4016 = icmp eq ptr %4015, null
  br i1 %4016, label %4017, label %4070

4017:                                             ; preds = %4010
  br label %4018

4018:                                             ; preds = %4017
  br label %4019

4019:                                             ; preds = %4018
  call void @llvm.lifetime.start.p0(i64 4, ptr %109) #11
  %4020 = call ptr @__errno_location() #12
  %4021 = load i32, ptr %4020, align 4, !tbaa !5
  store i32 %4021, ptr %109, align 4, !tbaa !5
  %4022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4023 = call i32 @s2n_print_stacktrace(ptr noundef %4022)
  %4024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4025 = trunc i8 %4024 to i1
  br i1 %4025, label %4026, label %4048

4026:                                             ; preds = %4019
  %4027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4028 = call i32 @fileno(ptr noundef %4027) #11
  %4029 = call i32 @isatty(i32 noundef %4028) #11
  %4030 = icmp ne i32 %4029, 0
  br i1 %4030, label %4031, label %4048

4031:                                             ; preds = %4026
  %4032 = load i32, ptr %109, align 4, !tbaa !5
  %4033 = call ptr @__errno_location() #12
  store i32 %4032, ptr %4033, align 4, !tbaa !5
  %4034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4035 = load i32, ptr @test_count, align 4, !tbaa !5
  %4036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4037 = load i32, ptr %4036, align 4, !tbaa !5
  %4038 = call ptr @s2n_strerror(i32 noundef %4037, ptr noundef @.str.4)
  %4039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4040 = load i32, ptr %4039, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef @.str.4)
  %4042 = call ptr @__errno_location() #12
  %4043 = load i32, ptr %4042, align 4, !tbaa !5
  %4044 = call ptr @strerror(i32 noundef %4043) #11
  %4045 = call ptr @__errno_location() #12
  %4046 = load i32, ptr %4045, align 4, !tbaa !5
  %4047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4034, ptr noundef @.str.2, i32 noundef %4035, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 201, ptr noundef %4038, ptr noundef %4041, ptr noundef %4044, i32 noundef %4046) #11
  br label %4065

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

4065:                                             ; preds = %4048, %4031
  call void @llvm.lifetime.end.p0(i64 4, ptr %109) #11
  br label %4066

4066:                                             ; preds = %4065
  br label %4067

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

4068:                                             ; No predecessors!
  br label %4069

4069:                                             ; preds = %4068
  br label %4070

4070:                                             ; preds = %4069, %4010
  br label %4071

4071:                                             ; preds = %4070
  br label %4072

4072:                                             ; preds = %4071
  br label %4073

4073:                                             ; preds = %4072
  br label %4074

4074:                                             ; preds = %4073
  br label %4075

4075:                                             ; preds = %4074
  %4076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4076, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4077 = call ptr @__errno_location() #12
  store i32 0, ptr %4077, align 4, !tbaa !5
  br label %4078

4078:                                             ; preds = %4075
  br label %4079

4079:                                             ; preds = %4078
  br label %4080

4080:                                             ; preds = %4079
  br label %4081

4081:                                             ; preds = %4080
  br label %4082

4082:                                             ; preds = %4081
  %4083 = load i32, ptr @test_count, align 4, !tbaa !5
  %4084 = add nsw i32 %4083, 1
  store i32 %4084, ptr @test_count, align 4, !tbaa !5
  %4085 = call i32 @s2n_stuffer_free(ptr noundef %93)
  %4086 = icmp eq i32 %4085, -1
  br i1 %4086, label %4087, label %4140

4087:                                             ; preds = %4082
  br label %4088

4088:                                             ; preds = %4087
  br label %4089

4089:                                             ; preds = %4088
  call void @llvm.lifetime.start.p0(i64 4, ptr %110) #11
  %4090 = call ptr @__errno_location() #12
  %4091 = load i32, ptr %4090, align 4, !tbaa !5
  store i32 %4091, ptr %110, align 4, !tbaa !5
  %4092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4093 = call i32 @s2n_print_stacktrace(ptr noundef %4092)
  %4094 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4095 = trunc i8 %4094 to i1
  br i1 %4095, label %4096, label %4118

4096:                                             ; preds = %4089
  %4097 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4098 = call i32 @fileno(ptr noundef %4097) #11
  %4099 = call i32 @isatty(i32 noundef %4098) #11
  %4100 = icmp ne i32 %4099, 0
  br i1 %4100, label %4101, label %4118

4101:                                             ; preds = %4096
  %4102 = load i32, ptr %110, align 4, !tbaa !5
  %4103 = call ptr @__errno_location() #12
  store i32 %4102, ptr %4103, align 4, !tbaa !5
  %4104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4105 = load i32, ptr @test_count, align 4, !tbaa !5
  %4106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4107 = load i32, ptr %4106, align 4, !tbaa !5
  %4108 = call ptr @s2n_strerror(i32 noundef %4107, ptr noundef @.str.4)
  %4109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4110 = load i32, ptr %4109, align 4, !tbaa !5
  %4111 = call ptr @s2n_strerror_debug(i32 noundef %4110, ptr noundef @.str.4)
  %4112 = call ptr @__errno_location() #12
  %4113 = load i32, ptr %4112, align 4, !tbaa !5
  %4114 = call ptr @strerror(i32 noundef %4113) #11
  %4115 = call ptr @__errno_location() #12
  %4116 = load i32, ptr %4115, align 4, !tbaa !5
  %4117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4104, ptr noundef @.str.2, i32 noundef %4105, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4108, ptr noundef %4111, ptr noundef %4114, i32 noundef %4116) #11
  br label %4135

4118:                                             ; preds = %4096, %4089
  %4119 = load i32, ptr %110, align 4, !tbaa !5
  %4120 = call ptr @__errno_location() #12
  store i32 %4119, ptr %4120, align 4, !tbaa !5
  %4121 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4122 = load i32, ptr @test_count, align 4, !tbaa !5
  %4123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4124 = load i32, ptr %4123, align 4, !tbaa !5
  %4125 = call ptr @s2n_strerror(i32 noundef %4124, ptr noundef @.str.4)
  %4126 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4127 = load i32, ptr %4126, align 4, !tbaa !5
  %4128 = call ptr @s2n_strerror_debug(i32 noundef %4127, ptr noundef @.str.4)
  %4129 = call ptr @__errno_location() #12
  %4130 = load i32, ptr %4129, align 4, !tbaa !5
  %4131 = call ptr @strerror(i32 noundef %4130) #11
  %4132 = call ptr @__errno_location() #12
  %4133 = load i32, ptr %4132, align 4, !tbaa !5
  %4134 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4121, ptr noundef @.str.5, i32 noundef %4122, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 202, ptr noundef %4125, ptr noundef %4128, ptr noundef %4131, i32 noundef %4133) #11
  br label %4135

4135:                                             ; preds = %4118, %4101
  call void @llvm.lifetime.end.p0(i64 4, ptr %110) #11
  br label %4136

4136:                                             ; preds = %4135
  br label %4137

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

4138:                                             ; No predecessors!
  br label %4139

4139:                                             ; preds = %4138
  br label %4140

4140:                                             ; preds = %4139, %4082
  br label %4141

4141:                                             ; preds = %4140
  br label %4142

4142:                                             ; preds = %4141
  br label %4143

4143:                                             ; preds = %4142
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = add nsw i32 %4144, 1
  store i32 %4145, ptr @test_count, align 4, !tbaa !5
  %4146 = call i32 @s2n_stuffer_alloc(ptr noundef %93, i32 noundef 5)
  %4147 = icmp eq i32 %4146, -1
  br i1 %4147, label %4148, label %4201

4148:                                             ; preds = %4143
  br label %4149

4149:                                             ; preds = %4148
  br label %4150

4150:                                             ; preds = %4149
  call void @llvm.lifetime.start.p0(i64 4, ptr %111) #11
  %4151 = call ptr @__errno_location() #12
  %4152 = load i32, ptr %4151, align 4, !tbaa !5
  store i32 %4152, ptr %111, align 4, !tbaa !5
  %4153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4154 = call i32 @s2n_print_stacktrace(ptr noundef %4153)
  %4155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4156 = trunc i8 %4155 to i1
  br i1 %4156, label %4157, label %4179

4157:                                             ; preds = %4150
  %4158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4159 = call i32 @fileno(ptr noundef %4158) #11
  %4160 = call i32 @isatty(i32 noundef %4159) #11
  %4161 = icmp ne i32 %4160, 0
  br i1 %4161, label %4162, label %4179

4162:                                             ; preds = %4157
  %4163 = load i32, ptr %111, align 4, !tbaa !5
  %4164 = call ptr @__errno_location() #12
  store i32 %4163, ptr %4164, align 4, !tbaa !5
  %4165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4166 = load i32, ptr @test_count, align 4, !tbaa !5
  %4167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4168 = load i32, ptr %4167, align 4, !tbaa !5
  %4169 = call ptr @s2n_strerror(i32 noundef %4168, ptr noundef @.str.4)
  %4170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4171 = load i32, ptr %4170, align 4, !tbaa !5
  %4172 = call ptr @s2n_strerror_debug(i32 noundef %4171, ptr noundef @.str.4)
  %4173 = call ptr @__errno_location() #12
  %4174 = load i32, ptr %4173, align 4, !tbaa !5
  %4175 = call ptr @strerror(i32 noundef %4174) #11
  %4176 = call ptr @__errno_location() #12
  %4177 = load i32, ptr %4176, align 4, !tbaa !5
  %4178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4165, ptr noundef @.str.2, i32 noundef %4166, ptr noundef @.str.35, ptr noundef @.str.1, i32 noundef 204, ptr noundef %4169, ptr noundef %4172, ptr noundef %4175, i32 noundef %4177) #11
  br label %4196

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

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

4197:                                             ; preds = %4196
  br label %4198

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

4199:                                             ; No predecessors!
  br label %4200

4200:                                             ; preds = %4199
  br label %4201

4201:                                             ; preds = %4200, %4143
  br label %4202

4202:                                             ; preds = %4201
  br label %4203

4203:                                             ; preds = %4202
  br label %4204

4204:                                             ; preds = %4203
  %4205 = load i32, ptr @test_count, align 4, !tbaa !5
  %4206 = add nsw i32 %4205, 1
  store i32 %4206, ptr @test_count, align 4, !tbaa !5
  %4207 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef %94, i8 noundef signext 33)
  %4208 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  store i32 %4207, ptr %4208, align 4
  %4209 = getelementptr inbounds %struct.s2n_result, ptr %112, i32 0, i32 0
  %4210 = load i32, ptr %4209, align 4
  %4211 = call zeroext i1 @s2n_result_is_ok(i32 %4210)
  br i1 %4211, label %4265, label %4212

4212:                                             ; preds = %4204
  br label %4213

4213:                                             ; preds = %4212
  br label %4214

4214:                                             ; preds = %4213
  call void @llvm.lifetime.start.p0(i64 4, ptr %113) #11
  %4215 = call ptr @__errno_location() #12
  %4216 = load i32, ptr %4215, align 4, !tbaa !5
  store i32 %4216, ptr %113, align 4, !tbaa !5
  %4217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4218 = call i32 @s2n_print_stacktrace(ptr noundef %4217)
  %4219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4220 = trunc i8 %4219 to i1
  br i1 %4220, label %4221, label %4243

4221:                                             ; preds = %4214
  %4222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4223 = call i32 @fileno(ptr noundef %4222) #11
  %4224 = call i32 @isatty(i32 noundef %4223) #11
  %4225 = icmp ne i32 %4224, 0
  br i1 %4225, label %4226, label %4243

4226:                                             ; preds = %4221
  %4227 = load i32, ptr %113, align 4, !tbaa !5
  %4228 = call ptr @__errno_location() #12
  store i32 %4227, ptr %4228, align 4, !tbaa !5
  %4229 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4230 = load i32, ptr @test_count, align 4, !tbaa !5
  %4231 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4232 = load i32, ptr %4231, align 4, !tbaa !5
  %4233 = call ptr @s2n_strerror(i32 noundef %4232, ptr noundef @.str.4)
  %4234 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4235 = load i32, ptr %4234, align 4, !tbaa !5
  %4236 = call ptr @s2n_strerror_debug(i32 noundef %4235, ptr noundef @.str.4)
  %4237 = call ptr @__errno_location() #12
  %4238 = load i32, ptr %4237, align 4, !tbaa !5
  %4239 = call ptr @strerror(i32 noundef %4238) #11
  %4240 = call ptr @__errno_location() #12
  %4241 = load i32, ptr %4240, align 4, !tbaa !5
  %4242 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4229, ptr noundef @.str.2, i32 noundef %4230, ptr noundef @.str.13, ptr noundef @.str.1, i32 noundef 205, ptr noundef %4233, ptr noundef %4236, ptr noundef %4239, i32 noundef %4241) #11
  br label %4260

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

4260:                                             ; preds = %4243, %4226
  call void @llvm.lifetime.end.p0(i64 4, ptr %113) #11
  br label %4261

4261:                                             ; preds = %4260
  br label %4262

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

4263:                                             ; No predecessors!
  br label %4264

4264:                                             ; preds = %4263
  br label %4265

4265:                                             ; preds = %4264, %4204
  br label %4266

4266:                                             ; preds = %4265
  br label %4267

4267:                                             ; preds = %4266
  br label %4268

4268:                                             ; preds = %4267
  br label %4269

4269:                                             ; preds = %4268
  br label %4270

4270:                                             ; preds = %4269
  %4271 = load i32, ptr @test_count, align 4, !tbaa !5
  %4272 = add nsw i32 %4271, 1
  store i32 %4272, ptr @test_count, align 4, !tbaa !5
  %4273 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %4274 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %94, ptr noundef %4273, i64 noundef 5)
  %4275 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  store i32 %4274, ptr %4275, align 4
  %4276 = getelementptr inbounds %struct.s2n_result, ptr %114, i32 0, i32 0
  %4277 = load i32, ptr %4276, align 4
  %4278 = call zeroext i1 @s2n_result_is_error(i32 %4277)
  br i1 %4278, label %4332, label %4279

4279:                                             ; preds = %4270
  br label %4280

4280:                                             ; preds = %4279
  br label %4281

4281:                                             ; preds = %4280
  call void @llvm.lifetime.start.p0(i64 4, ptr %115) #11
  %4282 = call ptr @__errno_location() #12
  %4283 = load i32, ptr %4282, align 4, !tbaa !5
  store i32 %4283, ptr %115, align 4, !tbaa !5
  %4284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4285 = call i32 @s2n_print_stacktrace(ptr noundef %4284)
  %4286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4287 = trunc i8 %4286 to i1
  br i1 %4287, label %4288, label %4310

4288:                                             ; preds = %4281
  %4289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4290 = call i32 @fileno(ptr noundef %4289) #11
  %4291 = call i32 @isatty(i32 noundef %4290) #11
  %4292 = icmp ne i32 %4291, 0
  br i1 %4292, label %4293, label %4310

4293:                                             ; preds = %4288
  %4294 = load i32, ptr %115, align 4, !tbaa !5
  %4295 = call ptr @__errno_location() #12
  store i32 %4294, ptr %4295, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = load i32, ptr @test_count, align 4, !tbaa !5
  %4298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4299 = load i32, ptr %4298, align 4, !tbaa !5
  %4300 = call ptr @s2n_strerror(i32 noundef %4299, ptr noundef @.str.4)
  %4301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4302 = load i32, ptr %4301, align 4, !tbaa !5
  %4303 = call ptr @s2n_strerror_debug(i32 noundef %4302, ptr noundef @.str.4)
  %4304 = call ptr @__errno_location() #12
  %4305 = load i32, ptr %4304, align 4, !tbaa !5
  %4306 = call ptr @strerror(i32 noundef %4305) #11
  %4307 = call ptr @__errno_location() #12
  %4308 = load i32, ptr %4307, align 4, !tbaa !5
  %4309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4296, ptr noundef @.str.2, i32 noundef %4297, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4300, ptr noundef %4303, ptr noundef %4306, i32 noundef %4308) #11
  br label %4327

4310:                                             ; preds = %4288, %4281
  %4311 = load i32, ptr %115, align 4, !tbaa !5
  %4312 = call ptr @__errno_location() #12
  store i32 %4311, ptr %4312, align 4, !tbaa !5
  %4313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4314 = load i32, ptr @test_count, align 4, !tbaa !5
  %4315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4316 = load i32, ptr %4315, align 4, !tbaa !5
  %4317 = call ptr @s2n_strerror(i32 noundef %4316, ptr noundef @.str.4)
  %4318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4319 = load i32, ptr %4318, align 4, !tbaa !5
  %4320 = call ptr @s2n_strerror_debug(i32 noundef %4319, ptr noundef @.str.4)
  %4321 = call ptr @__errno_location() #12
  %4322 = load i32, ptr %4321, align 4, !tbaa !5
  %4323 = call ptr @strerror(i32 noundef %4322) #11
  %4324 = call ptr @__errno_location() #12
  %4325 = load i32, ptr %4324, align 4, !tbaa !5
  %4326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4313, ptr noundef @.str.5, i32 noundef %4314, ptr noundef @.str.32, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4317, ptr noundef %4320, ptr noundef %4323, i32 noundef %4325) #11
  br label %4327

4327:                                             ; preds = %4310, %4293
  call void @llvm.lifetime.end.p0(i64 4, ptr %115) #11
  br label %4328

4328:                                             ; preds = %4327
  br label %4329

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

4330:                                             ; No predecessors!
  br label %4331

4331:                                             ; preds = %4330
  br label %4332

4332:                                             ; preds = %4331, %4270
  br label %4333

4333:                                             ; preds = %4332
  br label %4334

4334:                                             ; preds = %4333
  br label %4335

4335:                                             ; preds = %4334
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = add nsw i32 %4336, 1
  store i32 %4337, ptr @test_count, align 4, !tbaa !5
  %4338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4339 = load i32, ptr %4338, align 4, !tbaa !5
  %4340 = icmp eq i32 %4339, 469762120
  br i1 %4340, label %4394, label %4341

4341:                                             ; preds = %4335
  br label %4342

4342:                                             ; preds = %4341
  br label %4343

4343:                                             ; preds = %4342
  call void @llvm.lifetime.start.p0(i64 4, ptr %116) #11
  %4344 = call ptr @__errno_location() #12
  %4345 = load i32, ptr %4344, align 4, !tbaa !5
  store i32 %4345, ptr %116, align 4, !tbaa !5
  %4346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4347 = call i32 @s2n_print_stacktrace(ptr noundef %4346)
  %4348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4349 = trunc i8 %4348 to i1
  br i1 %4349, label %4350, label %4372

4350:                                             ; preds = %4343
  %4351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4352 = call i32 @fileno(ptr noundef %4351) #11
  %4353 = call i32 @isatty(i32 noundef %4352) #11
  %4354 = icmp ne i32 %4353, 0
  br i1 %4354, label %4355, label %4372

4355:                                             ; preds = %4350
  %4356 = load i32, ptr %116, align 4, !tbaa !5
  %4357 = call ptr @__errno_location() #12
  store i32 %4356, ptr %4357, align 4, !tbaa !5
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = load i32, ptr @test_count, align 4, !tbaa !5
  %4360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4361 = load i32, ptr %4360, align 4, !tbaa !5
  %4362 = call ptr @s2n_strerror(i32 noundef %4361, ptr noundef @.str.4)
  %4363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4364 = load i32, ptr %4363, align 4, !tbaa !5
  %4365 = call ptr @s2n_strerror_debug(i32 noundef %4364, ptr noundef @.str.4)
  %4366 = call ptr @__errno_location() #12
  %4367 = load i32, ptr %4366, align 4, !tbaa !5
  %4368 = call ptr @strerror(i32 noundef %4367) #11
  %4369 = call ptr @__errno_location() #12
  %4370 = load i32, ptr %4369, align 4, !tbaa !5
  %4371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4358, ptr noundef @.str.2, i32 noundef %4359, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4362, ptr noundef %4365, ptr noundef %4368, i32 noundef %4370) #11
  br label %4389

4372:                                             ; preds = %4350, %4343
  %4373 = load i32, ptr %116, align 4, !tbaa !5
  %4374 = call ptr @__errno_location() #12
  store i32 %4373, ptr %4374, align 4, !tbaa !5
  %4375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4376 = load i32, ptr @test_count, align 4, !tbaa !5
  %4377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4378 = load i32, ptr %4377, align 4, !tbaa !5
  %4379 = call ptr @s2n_strerror(i32 noundef %4378, ptr noundef @.str.4)
  %4380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4381 = load i32, ptr %4380, align 4, !tbaa !5
  %4382 = call ptr @s2n_strerror_debug(i32 noundef %4381, ptr noundef @.str.4)
  %4383 = call ptr @__errno_location() #12
  %4384 = load i32, ptr %4383, align 4, !tbaa !5
  %4385 = call ptr @strerror(i32 noundef %4384) #11
  %4386 = call ptr @__errno_location() #12
  %4387 = load i32, ptr %4386, align 4, !tbaa !5
  %4388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4375, ptr noundef @.str.5, i32 noundef %4376, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 208, ptr noundef %4379, ptr noundef %4382, ptr noundef %4385, i32 noundef %4387) #11
  br label %4389

4389:                                             ; preds = %4372, %4355
  call void @llvm.lifetime.end.p0(i64 4, ptr %116) #11
  br label %4390

4390:                                             ; preds = %4389
  br label %4391

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

4392:                                             ; No predecessors!
  br label %4393

4393:                                             ; preds = %4392
  br label %4394

4394:                                             ; preds = %4393, %4335
  br label %4395

4395:                                             ; preds = %4394
  br label %4396

4396:                                             ; preds = %4395
  br label %4397

4397:                                             ; preds = %4396
  %4398 = load i32, ptr @test_count, align 4, !tbaa !5
  %4399 = add nsw i32 %4398, 1
  store i32 %4399, ptr @test_count, align 4, !tbaa !5
  %4400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4401 = load i32, ptr %4400, align 4, !tbaa !5
  %4402 = call ptr @s2n_strerror_debug(i32 noundef %4401, ptr noundef @.str.4)
  %4403 = icmp eq ptr %4402, null
  br i1 %4403, label %4404, label %4457

4404:                                             ; preds = %4397
  br label %4405

4405:                                             ; preds = %4404
  br label %4406

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

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

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

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

4452:                                             ; preds = %4435, %4418
  call void @llvm.lifetime.end.p0(i64 4, ptr %117) #11
  br label %4453

4453:                                             ; preds = %4452
  br label %4454

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

4455:                                             ; No predecessors!
  br label %4456

4456:                                             ; preds = %4455
  br label %4457

4457:                                             ; preds = %4456, %4397
  br label %4458

4458:                                             ; preds = %4457
  br label %4459

4459:                                             ; preds = %4458
  br label %4460

4460:                                             ; preds = %4459
  br label %4461

4461:                                             ; preds = %4460
  br label %4462

4462:                                             ; preds = %4461
  %4463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4463, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4464 = call ptr @__errno_location() #12
  store i32 0, ptr %4464, align 4, !tbaa !5
  br label %4465

4465:                                             ; preds = %4462
  br label %4466

4466:                                             ; preds = %4465
  br label %4467

4467:                                             ; preds = %4466
  br label %4468

4468:                                             ; preds = %4467
  br label %4469

4469:                                             ; preds = %4468
  %4470 = load i32, ptr @test_count, align 4, !tbaa !5
  %4471 = add nsw i32 %4470, 1
  store i32 %4471, ptr @test_count, align 4, !tbaa !5
  %4472 = call i32 @s2n_stuffer_free(ptr noundef %93)
  %4473 = icmp eq i32 %4472, -1
  br i1 %4473, label %4474, label %4527

4474:                                             ; preds = %4469
  br label %4475

4475:                                             ; preds = %4474
  br label %4476

4476:                                             ; preds = %4475
  call void @llvm.lifetime.start.p0(i64 4, ptr %118) #11
  %4477 = call ptr @__errno_location() #12
  %4478 = load i32, ptr %4477, align 4, !tbaa !5
  store i32 %4478, ptr %118, align 4, !tbaa !5
  %4479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4480 = call i32 @s2n_print_stacktrace(ptr noundef %4479)
  %4481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4482 = trunc i8 %4481 to i1
  br i1 %4482, label %4483, label %4505

4483:                                             ; preds = %4476
  %4484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4485 = call i32 @fileno(ptr noundef %4484) #11
  %4486 = call i32 @isatty(i32 noundef %4485) #11
  %4487 = icmp ne i32 %4486, 0
  br i1 %4487, label %4488, label %4505

4488:                                             ; preds = %4483
  %4489 = load i32, ptr %118, align 4, !tbaa !5
  %4490 = call ptr @__errno_location() #12
  store i32 %4489, ptr %4490, align 4, !tbaa !5
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = load i32, ptr @test_count, align 4, !tbaa !5
  %4493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4494 = load i32, ptr %4493, align 4, !tbaa !5
  %4495 = call ptr @s2n_strerror(i32 noundef %4494, ptr noundef @.str.4)
  %4496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4497 = load i32, ptr %4496, align 4, !tbaa !5
  %4498 = call ptr @s2n_strerror_debug(i32 noundef %4497, ptr noundef @.str.4)
  %4499 = call ptr @__errno_location() #12
  %4500 = load i32, ptr %4499, align 4, !tbaa !5
  %4501 = call ptr @strerror(i32 noundef %4500) #11
  %4502 = call ptr @__errno_location() #12
  %4503 = load i32, ptr %4502, align 4, !tbaa !5
  %4504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4491, ptr noundef @.str.2, i32 noundef %4492, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4495, ptr noundef %4498, ptr noundef %4501, i32 noundef %4503) #11
  br label %4522

4505:                                             ; preds = %4483, %4476
  %4506 = load i32, ptr %118, align 4, !tbaa !5
  %4507 = call ptr @__errno_location() #12
  store i32 %4506, ptr %4507, align 4, !tbaa !5
  %4508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4509 = load i32, ptr @test_count, align 4, !tbaa !5
  %4510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4511 = load i32, ptr %4510, align 4, !tbaa !5
  %4512 = call ptr @s2n_strerror(i32 noundef %4511, ptr noundef @.str.4)
  %4513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4514 = load i32, ptr %4513, align 4, !tbaa !5
  %4515 = call ptr @s2n_strerror_debug(i32 noundef %4514, ptr noundef @.str.4)
  %4516 = call ptr @__errno_location() #12
  %4517 = load i32, ptr %4516, align 4, !tbaa !5
  %4518 = call ptr @strerror(i32 noundef %4517) #11
  %4519 = call ptr @__errno_location() #12
  %4520 = load i32, ptr %4519, align 4, !tbaa !5
  %4521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4508, ptr noundef @.str.5, i32 noundef %4509, ptr noundef @.str.33, ptr noundef @.str.1, i32 noundef 209, ptr noundef %4512, ptr noundef %4515, ptr noundef %4518, i32 noundef %4520) #11
  br label %4522

4522:                                             ; preds = %4505, %4488
  call void @llvm.lifetime.end.p0(i64 4, ptr %118) #11
  br label %4523

4523:                                             ; preds = %4522
  br label %4524

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

4525:                                             ; No predecessors!
  br label %4526

4526:                                             ; preds = %4525
  br label %4527

4527:                                             ; preds = %4526, %4469
  br label %4528

4528:                                             ; preds = %4527
  br label %4529

4529:                                             ; preds = %4528
  call void @llvm.lifetime.end.p0(i64 24, ptr %94) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %93) #11
  call void @llvm.lifetime.start.p0(i64 24, ptr %119) #11
  call void @llvm.memset.p0.i64(ptr align 8 %119, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %120) #11
  call void @llvm.memset.p0.i64(ptr align 8 %120, i8 0, i64 24, i1 false)
  br label %4530

4530:                                             ; preds = %4529
  br label %4531

4531:                                             ; preds = %4530
  br label %4532

4532:                                             ; preds = %4531
  %4533 = load i32, ptr @test_count, align 4, !tbaa !5
  %4534 = add nsw i32 %4533, 1
  store i32 %4534, ptr @test_count, align 4, !tbaa !5
  %4535 = call i32 @s2n_fingerprint_hash_digest(ptr noundef null, ptr noundef %120)
  %4536 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  store i32 %4535, ptr %4536, align 4
  %4537 = getelementptr inbounds %struct.s2n_result, ptr %121, i32 0, i32 0
  %4538 = load i32, ptr %4537, align 4
  %4539 = call zeroext i1 @s2n_result_is_error(i32 %4538)
  br i1 %4539, label %4593, label %4540

4540:                                             ; preds = %4532
  br label %4541

4541:                                             ; preds = %4540
  br label %4542

4542:                                             ; preds = %4541
  call void @llvm.lifetime.start.p0(i64 4, ptr %122) #11
  %4543 = call ptr @__errno_location() #12
  %4544 = load i32, ptr %4543, align 4, !tbaa !5
  store i32 %4544, ptr %122, align 4, !tbaa !5
  %4545 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4546 = call i32 @s2n_print_stacktrace(ptr noundef %4545)
  %4547 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4548 = trunc i8 %4547 to i1
  br i1 %4548, label %4549, label %4571

4549:                                             ; preds = %4542
  %4550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4551 = call i32 @fileno(ptr noundef %4550) #11
  %4552 = call i32 @isatty(i32 noundef %4551) #11
  %4553 = icmp ne i32 %4552, 0
  br i1 %4553, label %4554, label %4571

4554:                                             ; preds = %4549
  %4555 = load i32, ptr %122, align 4, !tbaa !5
  %4556 = call ptr @__errno_location() #12
  store i32 %4555, ptr %4556, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = load i32, ptr @test_count, align 4, !tbaa !5
  %4559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4560 = load i32, ptr %4559, align 4, !tbaa !5
  %4561 = call ptr @s2n_strerror(i32 noundef %4560, ptr noundef @.str.4)
  %4562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4563 = load i32, ptr %4562, align 4, !tbaa !5
  %4564 = call ptr @s2n_strerror_debug(i32 noundef %4563, ptr noundef @.str.4)
  %4565 = call ptr @__errno_location() #12
  %4566 = load i32, ptr %4565, align 4, !tbaa !5
  %4567 = call ptr @strerror(i32 noundef %4566) #11
  %4568 = call ptr @__errno_location() #12
  %4569 = load i32, ptr %4568, align 4, !tbaa !5
  %4570 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef @.str.2, i32 noundef %4558, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4561, ptr noundef %4564, ptr noundef %4567, i32 noundef %4569) #11
  br label %4588

4571:                                             ; preds = %4549, %4542
  %4572 = load i32, ptr %122, align 4, !tbaa !5
  %4573 = call ptr @__errno_location() #12
  store i32 %4572, ptr %4573, align 4, !tbaa !5
  %4574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4575 = load i32, ptr @test_count, align 4, !tbaa !5
  %4576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4577 = load i32, ptr %4576, align 4, !tbaa !5
  %4578 = call ptr @s2n_strerror(i32 noundef %4577, ptr noundef @.str.4)
  %4579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4580 = load i32, ptr %4579, align 4, !tbaa !5
  %4581 = call ptr @s2n_strerror_debug(i32 noundef %4580, ptr noundef @.str.4)
  %4582 = call ptr @__errno_location() #12
  %4583 = load i32, ptr %4582, align 4, !tbaa !5
  %4584 = call ptr @strerror(i32 noundef %4583) #11
  %4585 = call ptr @__errno_location() #12
  %4586 = load i32, ptr %4585, align 4, !tbaa !5
  %4587 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4574, ptr noundef @.str.5, i32 noundef %4575, ptr noundef @.str.36, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4578, ptr noundef %4581, ptr noundef %4584, i32 noundef %4586) #11
  br label %4588

4588:                                             ; preds = %4571, %4554
  call void @llvm.lifetime.end.p0(i64 4, ptr %122) #11
  br label %4589

4589:                                             ; preds = %4588
  br label %4590

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

4591:                                             ; No predecessors!
  br label %4592

4592:                                             ; preds = %4591
  br label %4593

4593:                                             ; preds = %4592, %4532
  br label %4594

4594:                                             ; preds = %4593
  br label %4595

4595:                                             ; preds = %4594
  br label %4596

4596:                                             ; preds = %4595
  %4597 = load i32, ptr @test_count, align 4, !tbaa !5
  %4598 = add nsw i32 %4597, 1
  store i32 %4598, ptr @test_count, align 4, !tbaa !5
  %4599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4600 = load i32, ptr %4599, align 4, !tbaa !5
  %4601 = icmp eq i32 %4600, 402653193
  br i1 %4601, label %4655, label %4602

4602:                                             ; preds = %4596
  br label %4603

4603:                                             ; preds = %4602
  br label %4604

4604:                                             ; preds = %4603
  call void @llvm.lifetime.start.p0(i64 4, ptr %123) #11
  %4605 = call ptr @__errno_location() #12
  %4606 = load i32, ptr %4605, align 4, !tbaa !5
  store i32 %4606, ptr %123, align 4, !tbaa !5
  %4607 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4608 = call i32 @s2n_print_stacktrace(ptr noundef %4607)
  %4609 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4610 = trunc i8 %4609 to i1
  br i1 %4610, label %4611, label %4633

4611:                                             ; preds = %4604
  %4612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4613 = call i32 @fileno(ptr noundef %4612) #11
  %4614 = call i32 @isatty(i32 noundef %4613) #11
  %4615 = icmp ne i32 %4614, 0
  br i1 %4615, label %4616, label %4633

4616:                                             ; preds = %4611
  %4617 = load i32, ptr %123, align 4, !tbaa !5
  %4618 = call ptr @__errno_location() #12
  store i32 %4617, ptr %4618, align 4, !tbaa !5
  %4619 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4620 = load i32, ptr @test_count, align 4, !tbaa !5
  %4621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4622 = load i32, ptr %4621, align 4, !tbaa !5
  %4623 = call ptr @s2n_strerror(i32 noundef %4622, ptr noundef @.str.4)
  %4624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4625 = load i32, ptr %4624, align 4, !tbaa !5
  %4626 = call ptr @s2n_strerror_debug(i32 noundef %4625, ptr noundef @.str.4)
  %4627 = call ptr @__errno_location() #12
  %4628 = load i32, ptr %4627, align 4, !tbaa !5
  %4629 = call ptr @strerror(i32 noundef %4628) #11
  %4630 = call ptr @__errno_location() #12
  %4631 = load i32, ptr %4630, align 4, !tbaa !5
  %4632 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4619, ptr noundef @.str.2, i32 noundef %4620, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4623, ptr noundef %4626, ptr noundef %4629, i32 noundef %4631) #11
  br label %4650

4633:                                             ; preds = %4611, %4604
  %4634 = load i32, ptr %123, align 4, !tbaa !5
  %4635 = call ptr @__errno_location() #12
  store i32 %4634, ptr %4635, align 4, !tbaa !5
  %4636 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4637 = load i32, ptr @test_count, align 4, !tbaa !5
  %4638 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4639 = load i32, ptr %4638, align 4, !tbaa !5
  %4640 = call ptr @s2n_strerror(i32 noundef %4639, ptr noundef @.str.4)
  %4641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4642 = load i32, ptr %4641, align 4, !tbaa !5
  %4643 = call ptr @s2n_strerror_debug(i32 noundef %4642, ptr noundef @.str.4)
  %4644 = call ptr @__errno_location() #12
  %4645 = load i32, ptr %4644, align 4, !tbaa !5
  %4646 = call ptr @strerror(i32 noundef %4645) #11
  %4647 = call ptr @__errno_location() #12
  %4648 = load i32, ptr %4647, align 4, !tbaa !5
  %4649 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4636, ptr noundef @.str.5, i32 noundef %4637, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4640, ptr noundef %4643, ptr noundef %4646, i32 noundef %4648) #11
  br label %4650

4650:                                             ; preds = %4633, %4616
  call void @llvm.lifetime.end.p0(i64 4, ptr %123) #11
  br label %4651

4651:                                             ; preds = %4650
  br label %4652

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

4653:                                             ; No predecessors!
  br label %4654

4654:                                             ; preds = %4653
  br label %4655

4655:                                             ; preds = %4654, %4596
  br label %4656

4656:                                             ; preds = %4655
  br label %4657

4657:                                             ; preds = %4656
  br label %4658

4658:                                             ; preds = %4657
  %4659 = load i32, ptr @test_count, align 4, !tbaa !5
  %4660 = add nsw i32 %4659, 1
  store i32 %4660, ptr @test_count, align 4, !tbaa !5
  %4661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4662 = load i32, ptr %4661, align 4, !tbaa !5
  %4663 = call ptr @s2n_strerror_debug(i32 noundef %4662, ptr noundef @.str.4)
  %4664 = icmp eq ptr %4663, null
  br i1 %4664, label %4665, label %4718

4665:                                             ; preds = %4658
  br label %4666

4666:                                             ; preds = %4665
  br label %4667

4667:                                             ; preds = %4666
  call void @llvm.lifetime.start.p0(i64 4, ptr %124) #11
  %4668 = call ptr @__errno_location() #12
  %4669 = load i32, ptr %4668, align 4, !tbaa !5
  store i32 %4669, ptr %124, align 4, !tbaa !5
  %4670 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4671 = call i32 @s2n_print_stacktrace(ptr noundef %4670)
  %4672 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4673 = trunc i8 %4672 to i1
  br i1 %4673, label %4674, label %4696

4674:                                             ; preds = %4667
  %4675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4676 = call i32 @fileno(ptr noundef %4675) #11
  %4677 = call i32 @isatty(i32 noundef %4676) #11
  %4678 = icmp ne i32 %4677, 0
  br i1 %4678, label %4679, label %4696

4679:                                             ; preds = %4674
  %4680 = load i32, ptr %124, align 4, !tbaa !5
  %4681 = call ptr @__errno_location() #12
  store i32 %4680, ptr %4681, align 4, !tbaa !5
  %4682 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4683 = load i32, ptr @test_count, align 4, !tbaa !5
  %4684 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4685 = load i32, ptr %4684, align 4, !tbaa !5
  %4686 = call ptr @s2n_strerror(i32 noundef %4685, ptr noundef @.str.4)
  %4687 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4688 = load i32, ptr %4687, align 4, !tbaa !5
  %4689 = call ptr @s2n_strerror_debug(i32 noundef %4688, ptr noundef @.str.4)
  %4690 = call ptr @__errno_location() #12
  %4691 = load i32, ptr %4690, align 4, !tbaa !5
  %4692 = call ptr @strerror(i32 noundef %4691) #11
  %4693 = call ptr @__errno_location() #12
  %4694 = load i32, ptr %4693, align 4, !tbaa !5
  %4695 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4682, ptr noundef @.str.2, i32 noundef %4683, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4686, ptr noundef %4689, ptr noundef %4692, i32 noundef %4694) #11
  br label %4713

4696:                                             ; preds = %4674, %4667
  %4697 = load i32, ptr %124, align 4, !tbaa !5
  %4698 = call ptr @__errno_location() #12
  store i32 %4697, ptr %4698, align 4, !tbaa !5
  %4699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4700 = load i32, ptr @test_count, align 4, !tbaa !5
  %4701 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4702 = load i32, ptr %4701, align 4, !tbaa !5
  %4703 = call ptr @s2n_strerror(i32 noundef %4702, ptr noundef @.str.4)
  %4704 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4705 = load i32, ptr %4704, align 4, !tbaa !5
  %4706 = call ptr @s2n_strerror_debug(i32 noundef %4705, ptr noundef @.str.4)
  %4707 = call ptr @__errno_location() #12
  %4708 = load i32, ptr %4707, align 4, !tbaa !5
  %4709 = call ptr @strerror(i32 noundef %4708) #11
  %4710 = call ptr @__errno_location() #12
  %4711 = load i32, ptr %4710, align 4, !tbaa !5
  %4712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4699, ptr noundef @.str.5, i32 noundef %4700, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 219, ptr noundef %4703, ptr noundef %4706, ptr noundef %4709, i32 noundef %4711) #11
  br label %4713

4713:                                             ; preds = %4696, %4679
  call void @llvm.lifetime.end.p0(i64 4, ptr %124) #11
  br label %4714

4714:                                             ; preds = %4713
  br label %4715

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

4716:                                             ; No predecessors!
  br label %4717

4717:                                             ; preds = %4716
  br label %4718

4718:                                             ; preds = %4717, %4658
  br label %4719

4719:                                             ; preds = %4718
  br label %4720

4720:                                             ; preds = %4719
  br label %4721

4721:                                             ; preds = %4720
  br label %4722

4722:                                             ; preds = %4721
  br label %4723

4723:                                             ; preds = %4722
  %4724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4724, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4725 = call ptr @__errno_location() #12
  store i32 0, ptr %4725, align 4, !tbaa !5
  br label %4726

4726:                                             ; preds = %4723
  br label %4727

4727:                                             ; preds = %4726
  br label %4728

4728:                                             ; preds = %4727
  br label %4729

4729:                                             ; preds = %4728
  br label %4730

4730:                                             ; preds = %4729
  br label %4731

4731:                                             ; preds = %4730
  br label %4732

4732:                                             ; preds = %4731
  %4733 = load i32, ptr @test_count, align 4, !tbaa !5
  %4734 = add nsw i32 %4733, 1
  store i32 %4734, ptr @test_count, align 4, !tbaa !5
  %4735 = call i32 @s2n_fingerprint_hash_digest(ptr noundef %119, ptr noundef null)
  %4736 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  store i32 %4735, ptr %4736, align 4
  %4737 = getelementptr inbounds %struct.s2n_result, ptr %125, i32 0, i32 0
  %4738 = load i32, ptr %4737, align 4
  %4739 = call zeroext i1 @s2n_result_is_error(i32 %4738)
  br i1 %4739, label %4793, label %4740

4740:                                             ; preds = %4732
  br label %4741

4741:                                             ; preds = %4740
  br label %4742

4742:                                             ; preds = %4741
  call void @llvm.lifetime.start.p0(i64 4, ptr %126) #11
  %4743 = call ptr @__errno_location() #12
  %4744 = load i32, ptr %4743, align 4, !tbaa !5
  store i32 %4744, ptr %126, align 4, !tbaa !5
  %4745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4746 = call i32 @s2n_print_stacktrace(ptr noundef %4745)
  %4747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4748 = trunc i8 %4747 to i1
  br i1 %4748, label %4749, label %4771

4749:                                             ; preds = %4742
  %4750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4751 = call i32 @fileno(ptr noundef %4750) #11
  %4752 = call i32 @isatty(i32 noundef %4751) #11
  %4753 = icmp ne i32 %4752, 0
  br i1 %4753, label %4754, label %4771

4754:                                             ; preds = %4749
  %4755 = load i32, ptr %126, align 4, !tbaa !5
  %4756 = call ptr @__errno_location() #12
  store i32 %4755, ptr %4756, align 4, !tbaa !5
  %4757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4758 = load i32, ptr @test_count, align 4, !tbaa !5
  %4759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4760 = load i32, ptr %4759, align 4, !tbaa !5
  %4761 = call ptr @s2n_strerror(i32 noundef %4760, ptr noundef @.str.4)
  %4762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4763 = load i32, ptr %4762, align 4, !tbaa !5
  %4764 = call ptr @s2n_strerror_debug(i32 noundef %4763, ptr noundef @.str.4)
  %4765 = call ptr @__errno_location() #12
  %4766 = load i32, ptr %4765, align 4, !tbaa !5
  %4767 = call ptr @strerror(i32 noundef %4766) #11
  %4768 = call ptr @__errno_location() #12
  %4769 = load i32, ptr %4768, align 4, !tbaa !5
  %4770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4757, ptr noundef @.str.2, i32 noundef %4758, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4761, ptr noundef %4764, ptr noundef %4767, i32 noundef %4769) #11
  br label %4788

4771:                                             ; preds = %4749, %4742
  %4772 = load i32, ptr %126, align 4, !tbaa !5
  %4773 = call ptr @__errno_location() #12
  store i32 %4772, ptr %4773, align 4, !tbaa !5
  %4774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4775 = load i32, ptr @test_count, align 4, !tbaa !5
  %4776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4777 = load i32, ptr %4776, align 4, !tbaa !5
  %4778 = call ptr @s2n_strerror(i32 noundef %4777, ptr noundef @.str.4)
  %4779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4780 = load i32, ptr %4779, align 4, !tbaa !5
  %4781 = call ptr @s2n_strerror_debug(i32 noundef %4780, ptr noundef @.str.4)
  %4782 = call ptr @__errno_location() #12
  %4783 = load i32, ptr %4782, align 4, !tbaa !5
  %4784 = call ptr @strerror(i32 noundef %4783) #11
  %4785 = call ptr @__errno_location() #12
  %4786 = load i32, ptr %4785, align 4, !tbaa !5
  %4787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4774, ptr noundef @.str.5, i32 noundef %4775, ptr noundef @.str.37, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4778, ptr noundef %4781, ptr noundef %4784, i32 noundef %4786) #11
  br label %4788

4788:                                             ; preds = %4771, %4754
  call void @llvm.lifetime.end.p0(i64 4, ptr %126) #11
  br label %4789

4789:                                             ; preds = %4788
  br label %4790

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

4791:                                             ; No predecessors!
  br label %4792

4792:                                             ; preds = %4791
  br label %4793

4793:                                             ; preds = %4792, %4732
  br label %4794

4794:                                             ; preds = %4793
  br label %4795

4795:                                             ; preds = %4794
  br label %4796

4796:                                             ; preds = %4795
  %4797 = load i32, ptr @test_count, align 4, !tbaa !5
  %4798 = add nsw i32 %4797, 1
  store i32 %4798, ptr @test_count, align 4, !tbaa !5
  %4799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4800 = load i32, ptr %4799, align 4, !tbaa !5
  %4801 = icmp eq i32 %4800, 402653193
  br i1 %4801, label %4855, label %4802

4802:                                             ; preds = %4796
  br label %4803

4803:                                             ; preds = %4802
  br label %4804

4804:                                             ; preds = %4803
  call void @llvm.lifetime.start.p0(i64 4, ptr %127) #11
  %4805 = call ptr @__errno_location() #12
  %4806 = load i32, ptr %4805, align 4, !tbaa !5
  store i32 %4806, ptr %127, align 4, !tbaa !5
  %4807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4808 = call i32 @s2n_print_stacktrace(ptr noundef %4807)
  %4809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4810 = trunc i8 %4809 to i1
  br i1 %4810, label %4811, label %4833

4811:                                             ; preds = %4804
  %4812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4813 = call i32 @fileno(ptr noundef %4812) #11
  %4814 = call i32 @isatty(i32 noundef %4813) #11
  %4815 = icmp ne i32 %4814, 0
  br i1 %4815, label %4816, label %4833

4816:                                             ; preds = %4811
  %4817 = load i32, ptr %127, align 4, !tbaa !5
  %4818 = call ptr @__errno_location() #12
  store i32 %4817, ptr %4818, align 4, !tbaa !5
  %4819 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4820 = load i32, ptr @test_count, align 4, !tbaa !5
  %4821 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4822 = load i32, ptr %4821, align 4, !tbaa !5
  %4823 = call ptr @s2n_strerror(i32 noundef %4822, ptr noundef @.str.4)
  %4824 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4825 = load i32, ptr %4824, align 4, !tbaa !5
  %4826 = call ptr @s2n_strerror_debug(i32 noundef %4825, ptr noundef @.str.4)
  %4827 = call ptr @__errno_location() #12
  %4828 = load i32, ptr %4827, align 4, !tbaa !5
  %4829 = call ptr @strerror(i32 noundef %4828) #11
  %4830 = call ptr @__errno_location() #12
  %4831 = load i32, ptr %4830, align 4, !tbaa !5
  %4832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4819, ptr noundef @.str.2, i32 noundef %4820, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4823, ptr noundef %4826, ptr noundef %4829, i32 noundef %4831) #11
  br label %4850

4833:                                             ; preds = %4811, %4804
  %4834 = load i32, ptr %127, align 4, !tbaa !5
  %4835 = call ptr @__errno_location() #12
  store i32 %4834, ptr %4835, align 4, !tbaa !5
  %4836 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4837 = load i32, ptr @test_count, align 4, !tbaa !5
  %4838 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4839 = load i32, ptr %4838, align 4, !tbaa !5
  %4840 = call ptr @s2n_strerror(i32 noundef %4839, ptr noundef @.str.4)
  %4841 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4842 = load i32, ptr %4841, align 4, !tbaa !5
  %4843 = call ptr @s2n_strerror_debug(i32 noundef %4842, ptr noundef @.str.4)
  %4844 = call ptr @__errno_location() #12
  %4845 = load i32, ptr %4844, align 4, !tbaa !5
  %4846 = call ptr @strerror(i32 noundef %4845) #11
  %4847 = call ptr @__errno_location() #12
  %4848 = load i32, ptr %4847, align 4, !tbaa !5
  %4849 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4836, ptr noundef @.str.5, i32 noundef %4837, ptr noundef @.str.10, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4840, ptr noundef %4843, ptr noundef %4846, i32 noundef %4848) #11
  br label %4850

4850:                                             ; preds = %4833, %4816
  call void @llvm.lifetime.end.p0(i64 4, ptr %127) #11
  br label %4851

4851:                                             ; preds = %4850
  br label %4852

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

4853:                                             ; No predecessors!
  br label %4854

4854:                                             ; preds = %4853
  br label %4855

4855:                                             ; preds = %4854, %4796
  br label %4856

4856:                                             ; preds = %4855
  br label %4857

4857:                                             ; preds = %4856
  br label %4858

4858:                                             ; preds = %4857
  %4859 = load i32, ptr @test_count, align 4, !tbaa !5
  %4860 = add nsw i32 %4859, 1
  store i32 %4860, ptr @test_count, align 4, !tbaa !5
  %4861 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4862 = load i32, ptr %4861, align 4, !tbaa !5
  %4863 = call ptr @s2n_strerror_debug(i32 noundef %4862, ptr noundef @.str.4)
  %4864 = icmp eq ptr %4863, null
  br i1 %4864, label %4865, label %4918

4865:                                             ; preds = %4858
  br label %4866

4866:                                             ; preds = %4865
  br label %4867

4867:                                             ; preds = %4866
  call void @llvm.lifetime.start.p0(i64 4, ptr %128) #11
  %4868 = call ptr @__errno_location() #12
  %4869 = load i32, ptr %4868, align 4, !tbaa !5
  store i32 %4869, ptr %128, align 4, !tbaa !5
  %4870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4871 = call i32 @s2n_print_stacktrace(ptr noundef %4870)
  %4872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4873 = trunc i8 %4872 to i1
  br i1 %4873, label %4874, label %4896

4874:                                             ; preds = %4867
  %4875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4876 = call i32 @fileno(ptr noundef %4875) #11
  %4877 = call i32 @isatty(i32 noundef %4876) #11
  %4878 = icmp ne i32 %4877, 0
  br i1 %4878, label %4879, label %4896

4879:                                             ; preds = %4874
  %4880 = load i32, ptr %128, align 4, !tbaa !5
  %4881 = call ptr @__errno_location() #12
  store i32 %4880, ptr %4881, align 4, !tbaa !5
  %4882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4883 = load i32, ptr @test_count, align 4, !tbaa !5
  %4884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4885 = load i32, ptr %4884, align 4, !tbaa !5
  %4886 = call ptr @s2n_strerror(i32 noundef %4885, ptr noundef @.str.4)
  %4887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4888 = load i32, ptr %4887, align 4, !tbaa !5
  %4889 = call ptr @s2n_strerror_debug(i32 noundef %4888, ptr noundef @.str.4)
  %4890 = call ptr @__errno_location() #12
  %4891 = load i32, ptr %4890, align 4, !tbaa !5
  %4892 = call ptr @strerror(i32 noundef %4891) #11
  %4893 = call ptr @__errno_location() #12
  %4894 = load i32, ptr %4893, align 4, !tbaa !5
  %4895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4882, ptr noundef @.str.2, i32 noundef %4883, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4886, ptr noundef %4889, ptr noundef %4892, i32 noundef %4894) #11
  br label %4913

4896:                                             ; preds = %4874, %4867
  %4897 = load i32, ptr %128, align 4, !tbaa !5
  %4898 = call ptr @__errno_location() #12
  store i32 %4897, ptr %4898, align 4, !tbaa !5
  %4899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4900 = load i32, ptr @test_count, align 4, !tbaa !5
  %4901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4902 = load i32, ptr %4901, align 4, !tbaa !5
  %4903 = call ptr @s2n_strerror(i32 noundef %4902, ptr noundef @.str.4)
  %4904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4905 = load i32, ptr %4904, align 4, !tbaa !5
  %4906 = call ptr @s2n_strerror_debug(i32 noundef %4905, ptr noundef @.str.4)
  %4907 = call ptr @__errno_location() #12
  %4908 = load i32, ptr %4907, align 4, !tbaa !5
  %4909 = call ptr @strerror(i32 noundef %4908) #11
  %4910 = call ptr @__errno_location() #12
  %4911 = load i32, ptr %4910, align 4, !tbaa !5
  %4912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4899, ptr noundef @.str.5, i32 noundef %4900, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 220, ptr noundef %4903, ptr noundef %4906, ptr noundef %4909, i32 noundef %4911) #11
  br label %4913

4913:                                             ; preds = %4896, %4879
  call void @llvm.lifetime.end.p0(i64 4, ptr %128) #11
  br label %4914

4914:                                             ; preds = %4913
  br label %4915

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

4916:                                             ; No predecessors!
  br label %4917

4917:                                             ; preds = %4916
  br label %4918

4918:                                             ; preds = %4917, %4858
  br label %4919

4919:                                             ; preds = %4918
  br label %4920

4920:                                             ; preds = %4919
  br label %4921

4921:                                             ; preds = %4920
  br label %4922

4922:                                             ; preds = %4921
  br label %4923

4923:                                             ; preds = %4922
  %4924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %4924, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %4925 = call ptr @__errno_location() #12
  store i32 0, ptr %4925, align 4, !tbaa !5
  br label %4926

4926:                                             ; preds = %4923
  br label %4927

4927:                                             ; preds = %4926
  br label %4928

4928:                                             ; preds = %4927
  br label %4929

4929:                                             ; preds = %4928
  call void @llvm.lifetime.end.p0(i64 24, ptr %120) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %119) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %129) #11
  call void @llvm.memset.p0.i64(ptr align 8 %129, i8 0, i64 56, i1 false)
  br label %4930

4930:                                             ; preds = %4929
  %4931 = load i32, ptr @test_count, align 4, !tbaa !5
  %4932 = add nsw i32 %4931, 1
  store i32 %4932, ptr @test_count, align 4, !tbaa !5
  %4933 = call i32 @s2n_test_hash_state_new(ptr noundef %129)
  %4934 = getelementptr inbounds %struct.s2n_result, ptr %130, i32 0, i32 0
  store i32 %4933, ptr %4934, align 4
  %4935 = getelementptr inbounds %struct.s2n_result, ptr %130, i32 0, i32 0
  %4936 = load i32, ptr %4935, align 4
  %4937 = call zeroext i1 @s2n_result_is_ok(i32 %4936)
  br i1 %4937, label %4991, label %4938

4938:                                             ; preds = %4930
  br label %4939

4939:                                             ; preds = %4938
  br label %4940

4940:                                             ; preds = %4939
  call void @llvm.lifetime.start.p0(i64 4, ptr %131) #11
  %4941 = call ptr @__errno_location() #12
  %4942 = load i32, ptr %4941, align 4, !tbaa !5
  store i32 %4942, ptr %131, align 4, !tbaa !5
  %4943 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4944 = call i32 @s2n_print_stacktrace(ptr noundef %4943)
  %4945 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4946 = trunc i8 %4945 to i1
  br i1 %4946, label %4947, label %4969

4947:                                             ; preds = %4940
  %4948 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4949 = call i32 @fileno(ptr noundef %4948) #11
  %4950 = call i32 @isatty(i32 noundef %4949) #11
  %4951 = icmp ne i32 %4950, 0
  br i1 %4951, label %4952, label %4969

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

4969:                                             ; preds = %4947, %4940
  %4970 = load i32, ptr %131, align 4, !tbaa !5
  %4971 = call ptr @__errno_location() #12
  store i32 %4970, ptr %4971, align 4, !tbaa !5
  %4972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4973 = load i32, ptr @test_count, align 4, !tbaa !5
  %4974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4975 = load i32, ptr %4974, align 4, !tbaa !5
  %4976 = call ptr @s2n_strerror(i32 noundef %4975, ptr noundef @.str.4)
  %4977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %4978 = load i32, ptr %4977, align 4, !tbaa !5
  %4979 = call ptr @s2n_strerror_debug(i32 noundef %4978, ptr noundef @.str.4)
  %4980 = call ptr @__errno_location() #12
  %4981 = load i32, ptr %4980, align 4, !tbaa !5
  %4982 = call ptr @strerror(i32 noundef %4981) #11
  %4983 = call ptr @__errno_location() #12
  %4984 = load i32, ptr %4983, align 4, !tbaa !5
  %4985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4972, ptr noundef @.str.5, i32 noundef %4973, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 226, ptr noundef %4976, ptr noundef %4979, ptr noundef %4982, i32 noundef %4984) #11
  br label %4986

4986:                                             ; preds = %4969, %4952
  call void @llvm.lifetime.end.p0(i64 4, ptr %131) #11
  br label %4987

4987:                                             ; preds = %4986
  br label %4988

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

4989:                                             ; No predecessors!
  br label %4990

4990:                                             ; preds = %4989
  br label %4991

4991:                                             ; preds = %4990, %4930
  br label %4992

4992:                                             ; preds = %4991
  br label %4993

4993:                                             ; preds = %4992
  call void @llvm.lifetime.start.p0(i64 24, ptr %132) #11
  %4994 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %132, i32 0, i32 0
  store i32 0, ptr %4994, align 8, !tbaa !18
  %4995 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %132, i32 0, i32 1
  store ptr null, ptr %4995, align 8, !tbaa !20
  %4996 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %132, i32 0, i32 2
  store ptr %129, ptr %4996, align 8, !tbaa !21
  br label %4997

4997:                                             ; preds = %4993
  %4998 = load i32, ptr @test_count, align 4, !tbaa !5
  %4999 = add nsw i32 %4998, 1
  store i32 %4999, ptr @test_count, align 4, !tbaa !5
  %5000 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %5001 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %132, ptr noundef %5000, i64 noundef 5)
  %5002 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  store i32 %5001, ptr %5002, align 4
  %5003 = getelementptr inbounds %struct.s2n_result, ptr %133, i32 0, i32 0
  %5004 = load i32, ptr %5003, align 4
  %5005 = call zeroext i1 @s2n_result_is_ok(i32 %5004)
  br i1 %5005, label %5059, label %5006

5006:                                             ; preds = %4997
  br label %5007

5007:                                             ; preds = %5006
  br label %5008

5008:                                             ; preds = %5007
  call void @llvm.lifetime.start.p0(i64 4, ptr %134) #11
  %5009 = call ptr @__errno_location() #12
  %5010 = load i32, ptr %5009, align 4, !tbaa !5
  store i32 %5010, ptr %134, align 4, !tbaa !5
  %5011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5012 = call i32 @s2n_print_stacktrace(ptr noundef %5011)
  %5013 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5014 = trunc i8 %5013 to i1
  br i1 %5014, label %5015, label %5037

5015:                                             ; preds = %5008
  %5016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5017 = call i32 @fileno(ptr noundef %5016) #11
  %5018 = call i32 @isatty(i32 noundef %5017) #11
  %5019 = icmp ne i32 %5018, 0
  br i1 %5019, label %5020, label %5037

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

5037:                                             ; preds = %5015, %5008
  %5038 = load i32, ptr %134, align 4, !tbaa !5
  %5039 = call ptr @__errno_location() #12
  store i32 %5038, ptr %5039, align 4, !tbaa !5
  %5040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5041 = load i32, ptr @test_count, align 4, !tbaa !5
  %5042 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5043 = load i32, ptr %5042, align 4, !tbaa !5
  %5044 = call ptr @s2n_strerror(i32 noundef %5043, ptr noundef @.str.4)
  %5045 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5046 = load i32, ptr %5045, align 4, !tbaa !5
  %5047 = call ptr @s2n_strerror_debug(i32 noundef %5046, ptr noundef @.str.4)
  %5048 = call ptr @__errno_location() #12
  %5049 = load i32, ptr %5048, align 4, !tbaa !5
  %5050 = call ptr @strerror(i32 noundef %5049) #11
  %5051 = call ptr @__errno_location() #12
  %5052 = load i32, ptr %5051, align 4, !tbaa !5
  %5053 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5040, ptr noundef @.str.5, i32 noundef %5041, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 229, ptr noundef %5044, ptr noundef %5047, ptr noundef %5050, i32 noundef %5052) #11
  br label %5054

5054:                                             ; preds = %5037, %5020
  call void @llvm.lifetime.end.p0(i64 4, ptr %134) #11
  br label %5055

5055:                                             ; preds = %5054
  br label %5056

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

5057:                                             ; No predecessors!
  br label %5058

5058:                                             ; preds = %5057
  br label %5059

5059:                                             ; preds = %5058, %4997
  br label %5060

5060:                                             ; preds = %5059
  br label %5061

5061:                                             ; preds = %5060
  br label %5062

5062:                                             ; preds = %5061
  %5063 = load i32, ptr @test_count, align 4, !tbaa !5
  %5064 = add nsw i32 %5063, 1
  store i32 %5064, ptr @test_count, align 4, !tbaa !5
  %5065 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %132, i32 0, i32 2
  %5066 = load ptr, ptr %5065, align 8, !tbaa !21
  %5067 = getelementptr inbounds %struct.s2n_hash_state, ptr %5066, i32 0, i32 3
  %5068 = load i64, ptr %5067, align 8, !tbaa !28
  %5069 = icmp eq i64 %5068, 5
  br i1 %5069, label %5123, label %5070

5070:                                             ; preds = %5062
  br label %5071

5071:                                             ; preds = %5070
  br label %5072

5072:                                             ; preds = %5071
  call void @llvm.lifetime.start.p0(i64 4, ptr %135) #11
  %5073 = call ptr @__errno_location() #12
  %5074 = load i32, ptr %5073, align 4, !tbaa !5
  store i32 %5074, ptr %135, align 4, !tbaa !5
  %5075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5076 = call i32 @s2n_print_stacktrace(ptr noundef %5075)
  %5077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5078 = trunc i8 %5077 to i1
  br i1 %5078, label %5079, label %5101

5079:                                             ; preds = %5072
  %5080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5081 = call i32 @fileno(ptr noundef %5080) #11
  %5082 = call i32 @isatty(i32 noundef %5081) #11
  %5083 = icmp ne i32 %5082, 0
  br i1 %5083, label %5084, label %5101

5084:                                             ; preds = %5079
  %5085 = load i32, ptr %135, align 4, !tbaa !5
  %5086 = call ptr @__errno_location() #12
  store i32 %5085, ptr %5086, align 4, !tbaa !5
  %5087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5088 = load i32, ptr @test_count, align 4, !tbaa !5
  %5089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5090 = load i32, ptr %5089, align 4, !tbaa !5
  %5091 = call ptr @s2n_strerror(i32 noundef %5090, ptr noundef @.str.4)
  %5092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5093 = load i32, ptr %5092, align 4, !tbaa !5
  %5094 = call ptr @s2n_strerror_debug(i32 noundef %5093, ptr noundef @.str.4)
  %5095 = call ptr @__errno_location() #12
  %5096 = load i32, ptr %5095, align 4, !tbaa !5
  %5097 = call ptr @strerror(i32 noundef %5096) #11
  %5098 = call ptr @__errno_location() #12
  %5099 = load i32, ptr %5098, align 4, !tbaa !5
  %5100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5087, ptr noundef @.str.2, i32 noundef %5088, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5091, ptr noundef %5094, ptr noundef %5097, i32 noundef %5099) #11
  br label %5118

5101:                                             ; preds = %5079, %5072
  %5102 = load i32, ptr %135, align 4, !tbaa !5
  %5103 = call ptr @__errno_location() #12
  store i32 %5102, ptr %5103, align 4, !tbaa !5
  %5104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5105 = load i32, ptr @test_count, align 4, !tbaa !5
  %5106 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5107 = load i32, ptr %5106, align 4, !tbaa !5
  %5108 = call ptr @s2n_strerror(i32 noundef %5107, ptr noundef @.str.4)
  %5109 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5110 = load i32, ptr %5109, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror_debug(i32 noundef %5110, ptr noundef @.str.4)
  %5112 = call ptr @__errno_location() #12
  %5113 = load i32, ptr %5112, align 4, !tbaa !5
  %5114 = call ptr @strerror(i32 noundef %5113) #11
  %5115 = call ptr @__errno_location() #12
  %5116 = load i32, ptr %5115, align 4, !tbaa !5
  %5117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5104, ptr noundef @.str.5, i32 noundef %5105, ptr noundef @.str.38, ptr noundef @.str.1, i32 noundef 230, ptr noundef %5108, ptr noundef %5111, ptr noundef %5114, i32 noundef %5116) #11
  br label %5118

5118:                                             ; preds = %5101, %5084
  call void @llvm.lifetime.end.p0(i64 4, ptr %135) #11
  br label %5119

5119:                                             ; preds = %5118
  br label %5120

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

5121:                                             ; No predecessors!
  br label %5122

5122:                                             ; preds = %5121
  br label %5123

5123:                                             ; preds = %5122, %5062
  br label %5124

5124:                                             ; preds = %5123
  br label %5125

5125:                                             ; preds = %5124
  call void @llvm.lifetime.start.p0(i64 32, ptr %136) #11
  call void @llvm.memset.p0.i64(ptr align 16 %136, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %137) #11
  call void @llvm.memset.p0.i64(ptr align 8 %137, i8 0, i64 24, i1 false)
  br label %5126

5126:                                             ; preds = %5125
  %5127 = load i32, ptr @test_count, align 4, !tbaa !5
  %5128 = add nsw i32 %5127, 1
  store i32 %5128, ptr @test_count, align 4, !tbaa !5
  %5129 = getelementptr inbounds [32 x i8], ptr %136, i64 0, i64 0
  %5130 = call i32 @s2n_blob_init(ptr noundef %137, ptr noundef %5129, i32 noundef 32)
  %5131 = icmp eq i32 %5130, -1
  br i1 %5131, label %5132, label %5185

5132:                                             ; preds = %5126
  br label %5133

5133:                                             ; preds = %5132
  br label %5134

5134:                                             ; preds = %5133
  call void @llvm.lifetime.start.p0(i64 4, ptr %138) #11
  %5135 = call ptr @__errno_location() #12
  %5136 = load i32, ptr %5135, align 4, !tbaa !5
  store i32 %5136, ptr %138, align 4, !tbaa !5
  %5137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5138 = call i32 @s2n_print_stacktrace(ptr noundef %5137)
  %5139 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5140 = trunc i8 %5139 to i1
  br i1 %5140, label %5141, label %5163

5141:                                             ; preds = %5134
  %5142 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5143 = call i32 @fileno(ptr noundef %5142) #11
  %5144 = call i32 @isatty(i32 noundef %5143) #11
  %5145 = icmp ne i32 %5144, 0
  br i1 %5145, label %5146, label %5163

5146:                                             ; preds = %5141
  %5147 = load i32, ptr %138, align 4, !tbaa !5
  %5148 = call ptr @__errno_location() #12
  store i32 %5147, ptr %5148, align 4, !tbaa !5
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = load i32, ptr @test_count, align 4, !tbaa !5
  %5151 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5152 = load i32, ptr %5151, align 4, !tbaa !5
  %5153 = call ptr @s2n_strerror(i32 noundef %5152, ptr noundef @.str.4)
  %5154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5155 = load i32, ptr %5154, align 4, !tbaa !5
  %5156 = call ptr @s2n_strerror_debug(i32 noundef %5155, ptr noundef @.str.4)
  %5157 = call ptr @__errno_location() #12
  %5158 = load i32, ptr %5157, align 4, !tbaa !5
  %5159 = call ptr @strerror(i32 noundef %5158) #11
  %5160 = call ptr @__errno_location() #12
  %5161 = load i32, ptr %5160, align 4, !tbaa !5
  %5162 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5149, ptr noundef @.str.2, i32 noundef %5150, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5153, ptr noundef %5156, ptr noundef %5159, i32 noundef %5161) #11
  br label %5180

5163:                                             ; preds = %5141, %5134
  %5164 = load i32, ptr %138, align 4, !tbaa !5
  %5165 = call ptr @__errno_location() #12
  store i32 %5164, ptr %5165, align 4, !tbaa !5
  %5166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5167 = load i32, ptr @test_count, align 4, !tbaa !5
  %5168 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5169 = load i32, ptr %5168, align 4, !tbaa !5
  %5170 = call ptr @s2n_strerror(i32 noundef %5169, ptr noundef @.str.4)
  %5171 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5172 = load i32, ptr %5171, align 4, !tbaa !5
  %5173 = call ptr @s2n_strerror_debug(i32 noundef %5172, ptr noundef @.str.4)
  %5174 = call ptr @__errno_location() #12
  %5175 = load i32, ptr %5174, align 4, !tbaa !5
  %5176 = call ptr @strerror(i32 noundef %5175) #11
  %5177 = call ptr @__errno_location() #12
  %5178 = load i32, ptr %5177, align 4, !tbaa !5
  %5179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5166, ptr noundef @.str.5, i32 noundef %5167, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 234, ptr noundef %5170, ptr noundef %5173, ptr noundef %5176, i32 noundef %5178) #11
  br label %5180

5180:                                             ; preds = %5163, %5146
  call void @llvm.lifetime.end.p0(i64 4, ptr %138) #11
  br label %5181

5181:                                             ; preds = %5180
  br label %5182

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

5183:                                             ; No predecessors!
  br label %5184

5184:                                             ; preds = %5183
  br label %5185

5185:                                             ; preds = %5184, %5126
  br label %5186

5186:                                             ; preds = %5185
  br label %5187

5187:                                             ; preds = %5186
  br label %5188

5188:                                             ; preds = %5187
  %5189 = load i32, ptr @test_count, align 4, !tbaa !5
  %5190 = add nsw i32 %5189, 1
  store i32 %5190, ptr @test_count, align 4, !tbaa !5
  %5191 = call i32 @s2n_fingerprint_hash_digest(ptr noundef %132, ptr noundef %137)
  %5192 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  store i32 %5191, ptr %5192, align 4
  %5193 = getelementptr inbounds %struct.s2n_result, ptr %139, i32 0, i32 0
  %5194 = load i32, ptr %5193, align 4
  %5195 = call zeroext i1 @s2n_result_is_ok(i32 %5194)
  br i1 %5195, label %5249, label %5196

5196:                                             ; preds = %5188
  br label %5197

5197:                                             ; preds = %5196
  br label %5198

5198:                                             ; preds = %5197
  call void @llvm.lifetime.start.p0(i64 4, ptr %140) #11
  %5199 = call ptr @__errno_location() #12
  %5200 = load i32, ptr %5199, align 4, !tbaa !5
  store i32 %5200, ptr %140, align 4, !tbaa !5
  %5201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5202 = call i32 @s2n_print_stacktrace(ptr noundef %5201)
  %5203 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5204 = trunc i8 %5203 to i1
  br i1 %5204, label %5205, label %5227

5205:                                             ; preds = %5198
  %5206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5207 = call i32 @fileno(ptr noundef %5206) #11
  %5208 = call i32 @isatty(i32 noundef %5207) #11
  %5209 = icmp ne i32 %5208, 0
  br i1 %5209, label %5210, label %5227

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

5227:                                             ; preds = %5205, %5198
  %5228 = load i32, ptr %140, align 4, !tbaa !5
  %5229 = call ptr @__errno_location() #12
  store i32 %5228, ptr %5229, align 4, !tbaa !5
  %5230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5231 = load i32, ptr @test_count, align 4, !tbaa !5
  %5232 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5233 = load i32, ptr %5232, align 4, !tbaa !5
  %5234 = call ptr @s2n_strerror(i32 noundef %5233, ptr noundef @.str.4)
  %5235 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5236 = load i32, ptr %5235, align 4, !tbaa !5
  %5237 = call ptr @s2n_strerror_debug(i32 noundef %5236, ptr noundef @.str.4)
  %5238 = call ptr @__errno_location() #12
  %5239 = load i32, ptr %5238, align 4, !tbaa !5
  %5240 = call ptr @strerror(i32 noundef %5239) #11
  %5241 = call ptr @__errno_location() #12
  %5242 = load i32, ptr %5241, align 4, !tbaa !5
  %5243 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5230, ptr noundef @.str.5, i32 noundef %5231, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 236, ptr noundef %5234, ptr noundef %5237, ptr noundef %5240, i32 noundef %5242) #11
  br label %5244

5244:                                             ; preds = %5227, %5210
  call void @llvm.lifetime.end.p0(i64 4, ptr %140) #11
  br label %5245

5245:                                             ; preds = %5244
  br label %5246

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

5247:                                             ; No predecessors!
  br label %5248

5248:                                             ; preds = %5247
  br label %5249

5249:                                             ; preds = %5248, %5188
  br label %5250

5250:                                             ; preds = %5249
  br label %5251

5251:                                             ; preds = %5250
  br label %5252

5252:                                             ; preds = %5251
  %5253 = getelementptr inbounds %struct.s2n_blob, ptr %137, i32 0, i32 1
  %5254 = load i32, ptr %5253, align 8, !tbaa !33
  %5255 = icmp ne i32 %5254, 0
  br i1 %5255, label %5256, label %5324

5256:                                             ; preds = %5252
  br label %5257

5257:                                             ; preds = %5256
  %5258 = load i32, ptr @test_count, align 4, !tbaa !5
  %5259 = add nsw i32 %5258, 1
  store i32 %5259, ptr @test_count, align 4, !tbaa !5
  %5260 = getelementptr inbounds [32 x i8], ptr %12, i64 0, i64 0
  %5261 = getelementptr inbounds %struct.s2n_blob, ptr %137, i32 0, i32 0
  %5262 = load ptr, ptr %5261, align 8, !tbaa !34
  %5263 = getelementptr inbounds %struct.s2n_blob, ptr %137, i32 0, i32 1
  %5264 = load i32, ptr %5263, align 8, !tbaa !33
  %5265 = zext i32 %5264 to i64
  %5266 = call i32 @memcmp(ptr noundef %5260, ptr noundef %5262, i64 noundef %5265) #14
  %5267 = icmp eq i32 %5266, 0
  br i1 %5267, label %5321, label %5268

5268:                                             ; preds = %5257
  br label %5269

5269:                                             ; preds = %5268
  br label %5270

5270:                                             ; preds = %5269
  call void @llvm.lifetime.start.p0(i64 4, ptr %141) #11
  %5271 = call ptr @__errno_location() #12
  %5272 = load i32, ptr %5271, align 4, !tbaa !5
  store i32 %5272, ptr %141, align 4, !tbaa !5
  %5273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5274 = call i32 @s2n_print_stacktrace(ptr noundef %5273)
  %5275 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5276 = trunc i8 %5275 to i1
  br i1 %5276, label %5277, label %5299

5277:                                             ; preds = %5270
  %5278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5279 = call i32 @fileno(ptr noundef %5278) #11
  %5280 = call i32 @isatty(i32 noundef %5279) #11
  %5281 = icmp ne i32 %5280, 0
  br i1 %5281, label %5282, label %5299

5282:                                             ; preds = %5277
  %5283 = load i32, ptr %141, align 4, !tbaa !5
  %5284 = call ptr @__errno_location() #12
  store i32 %5283, ptr %5284, align 4, !tbaa !5
  %5285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5286 = load i32, ptr @test_count, align 4, !tbaa !5
  %5287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5288 = load i32, ptr %5287, align 4, !tbaa !5
  %5289 = call ptr @s2n_strerror(i32 noundef %5288, ptr noundef @.str.4)
  %5290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5291 = load i32, ptr %5290, align 4, !tbaa !5
  %5292 = call ptr @s2n_strerror_debug(i32 noundef %5291, ptr noundef @.str.4)
  %5293 = call ptr @__errno_location() #12
  %5294 = load i32, ptr %5293, align 4, !tbaa !5
  %5295 = call ptr @strerror(i32 noundef %5294) #11
  %5296 = call ptr @__errno_location() #12
  %5297 = load i32, ptr %5296, align 4, !tbaa !5
  %5298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5285, ptr noundef @.str.2, i32 noundef %5286, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5289, ptr noundef %5292, ptr noundef %5295, i32 noundef %5297) #11
  br label %5316

5299:                                             ; preds = %5277, %5270
  %5300 = load i32, ptr %141, align 4, !tbaa !5
  %5301 = call ptr @__errno_location() #12
  store i32 %5300, ptr %5301, align 4, !tbaa !5
  %5302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5303 = load i32, ptr @test_count, align 4, !tbaa !5
  %5304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5305 = load i32, ptr %5304, align 4, !tbaa !5
  %5306 = call ptr @s2n_strerror(i32 noundef %5305, ptr noundef @.str.4)
  %5307 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5308 = load i32, ptr %5307, align 4, !tbaa !5
  %5309 = call ptr @s2n_strerror_debug(i32 noundef %5308, ptr noundef @.str.4)
  %5310 = call ptr @__errno_location() #12
  %5311 = load i32, ptr %5310, align 4, !tbaa !5
  %5312 = call ptr @strerror(i32 noundef %5311) #11
  %5313 = call ptr @__errno_location() #12
  %5314 = load i32, ptr %5313, align 4, !tbaa !5
  %5315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5302, ptr noundef @.str.5, i32 noundef %5303, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 237, ptr noundef %5306, ptr noundef %5309, ptr noundef %5312, i32 noundef %5314) #11
  br label %5316

5316:                                             ; preds = %5299, %5282
  call void @llvm.lifetime.end.p0(i64 4, ptr %141) #11
  br label %5317

5317:                                             ; preds = %5316
  br label %5318

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

5319:                                             ; No predecessors!
  br label %5320

5320:                                             ; preds = %5319
  br label %5321

5321:                                             ; preds = %5320, %5257
  br label %5322

5322:                                             ; preds = %5321
  br label %5323

5323:                                             ; preds = %5322
  br label %5324

5324:                                             ; preds = %5323, %5252
  br label %5325

5325:                                             ; preds = %5324
  br label %5326

5326:                                             ; preds = %5325
  br label %5327

5327:                                             ; preds = %5326
  %5328 = load i32, ptr @test_count, align 4, !tbaa !5
  %5329 = add nsw i32 %5328, 1
  store i32 %5329, ptr @test_count, align 4, !tbaa !5
  %5330 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %132, i32 0, i32 0
  %5331 = load i32, ptr %5330, align 8, !tbaa !18
  %5332 = zext i32 %5331 to i64
  %5333 = icmp eq i64 5, %5332
  br i1 %5333, label %5387, label %5334

5334:                                             ; preds = %5327
  br label %5335

5335:                                             ; preds = %5334
  br label %5336

5336:                                             ; preds = %5335
  call void @llvm.lifetime.start.p0(i64 4, ptr %142) #11
  %5337 = call ptr @__errno_location() #12
  %5338 = load i32, ptr %5337, align 4, !tbaa !5
  store i32 %5338, ptr %142, align 4, !tbaa !5
  %5339 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5340 = call i32 @s2n_print_stacktrace(ptr noundef %5339)
  %5341 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5342 = trunc i8 %5341 to i1
  br i1 %5342, label %5343, label %5365

5343:                                             ; preds = %5336
  %5344 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5345 = call i32 @fileno(ptr noundef %5344) #11
  %5346 = call i32 @isatty(i32 noundef %5345) #11
  %5347 = icmp ne i32 %5346, 0
  br i1 %5347, label %5348, label %5365

5348:                                             ; preds = %5343
  %5349 = load i32, ptr %142, align 4, !tbaa !5
  %5350 = call ptr @__errno_location() #12
  store i32 %5349, ptr %5350, align 4, !tbaa !5
  %5351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5352 = load i32, ptr @test_count, align 4, !tbaa !5
  %5353 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5354 = load i32, ptr %5353, align 4, !tbaa !5
  %5355 = call ptr @s2n_strerror(i32 noundef %5354, ptr noundef @.str.4)
  %5356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5357 = load i32, ptr %5356, align 4, !tbaa !5
  %5358 = call ptr @s2n_strerror_debug(i32 noundef %5357, ptr noundef @.str.4)
  %5359 = call ptr @__errno_location() #12
  %5360 = load i32, ptr %5359, align 4, !tbaa !5
  %5361 = call ptr @strerror(i32 noundef %5360) #11
  %5362 = call ptr @__errno_location() #12
  %5363 = load i32, ptr %5362, align 4, !tbaa !5
  %5364 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5351, ptr noundef @.str.2, i32 noundef %5352, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5355, ptr noundef %5358, ptr noundef %5361, i32 noundef %5363) #11
  br label %5382

5365:                                             ; preds = %5343, %5336
  %5366 = load i32, ptr %142, align 4, !tbaa !5
  %5367 = call ptr @__errno_location() #12
  store i32 %5366, ptr %5367, align 4, !tbaa !5
  %5368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5369 = load i32, ptr @test_count, align 4, !tbaa !5
  %5370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5371 = load i32, ptr %5370, align 4, !tbaa !5
  %5372 = call ptr @s2n_strerror(i32 noundef %5371, ptr noundef @.str.4)
  %5373 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5374 = load i32, ptr %5373, align 4, !tbaa !5
  %5375 = call ptr @s2n_strerror_debug(i32 noundef %5374, ptr noundef @.str.4)
  %5376 = call ptr @__errno_location() #12
  %5377 = load i32, ptr %5376, align 4, !tbaa !5
  %5378 = call ptr @strerror(i32 noundef %5377) #11
  %5379 = call ptr @__errno_location() #12
  %5380 = load i32, ptr %5379, align 4, !tbaa !5
  %5381 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5368, ptr noundef @.str.5, i32 noundef %5369, ptr noundef @.str.42, ptr noundef @.str.1, i32 noundef 238, ptr noundef %5372, ptr noundef %5375, ptr noundef %5378, i32 noundef %5380) #11
  br label %5382

5382:                                             ; preds = %5365, %5348
  call void @llvm.lifetime.end.p0(i64 4, ptr %142) #11
  br label %5383

5383:                                             ; preds = %5382
  br label %5384

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

5385:                                             ; No predecessors!
  br label %5386

5386:                                             ; preds = %5385
  br label %5387

5387:                                             ; preds = %5386, %5327
  br label %5388

5388:                                             ; preds = %5387
  br label %5389

5389:                                             ; preds = %5388
  call void @llvm.lifetime.end.p0(i64 24, ptr %137) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %136) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %132) #11
  %5390 = call i32 @s2n_hash_free(ptr noundef %129)
  call void @llvm.lifetime.end.p0(i64 56, ptr %129) #11
  call void @llvm.lifetime.start.p0(i64 56, ptr %143) #11
  call void @llvm.memset.p0.i64(ptr align 8 %143, i8 0, i64 56, i1 false)
  br label %5391

5391:                                             ; preds = %5389
  %5392 = load i32, ptr @test_count, align 4, !tbaa !5
  %5393 = add nsw i32 %5392, 1
  store i32 %5393, ptr @test_count, align 4, !tbaa !5
  %5394 = call i32 @s2n_test_hash_state_new(ptr noundef %143)
  %5395 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  store i32 %5394, ptr %5395, align 4
  %5396 = getelementptr inbounds %struct.s2n_result, ptr %144, i32 0, i32 0
  %5397 = load i32, ptr %5396, align 4
  %5398 = call zeroext i1 @s2n_result_is_ok(i32 %5397)
  br i1 %5398, label %5452, label %5399

5399:                                             ; preds = %5391
  br label %5400

5400:                                             ; preds = %5399
  br label %5401

5401:                                             ; preds = %5400
  call void @llvm.lifetime.start.p0(i64 4, ptr %145) #11
  %5402 = call ptr @__errno_location() #12
  %5403 = load i32, ptr %5402, align 4, !tbaa !5
  store i32 %5403, ptr %145, align 4, !tbaa !5
  %5404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5405 = call i32 @s2n_print_stacktrace(ptr noundef %5404)
  %5406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5407 = trunc i8 %5406 to i1
  br i1 %5407, label %5408, label %5430

5408:                                             ; preds = %5401
  %5409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5410 = call i32 @fileno(ptr noundef %5409) #11
  %5411 = call i32 @isatty(i32 noundef %5410) #11
  %5412 = icmp ne i32 %5411, 0
  br i1 %5412, label %5413, label %5430

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

5430:                                             ; preds = %5408, %5401
  %5431 = load i32, ptr %145, align 4, !tbaa !5
  %5432 = call ptr @__errno_location() #12
  store i32 %5431, ptr %5432, align 4, !tbaa !5
  %5433 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5434 = load i32, ptr @test_count, align 4, !tbaa !5
  %5435 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5436 = load i32, ptr %5435, align 4, !tbaa !5
  %5437 = call ptr @s2n_strerror(i32 noundef %5436, ptr noundef @.str.4)
  %5438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5439 = load i32, ptr %5438, align 4, !tbaa !5
  %5440 = call ptr @s2n_strerror_debug(i32 noundef %5439, ptr noundef @.str.4)
  %5441 = call ptr @__errno_location() #12
  %5442 = load i32, ptr %5441, align 4, !tbaa !5
  %5443 = call ptr @strerror(i32 noundef %5442) #11
  %5444 = call ptr @__errno_location() #12
  %5445 = load i32, ptr %5444, align 4, !tbaa !5
  %5446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5433, ptr noundef @.str.5, i32 noundef %5434, ptr noundef @.str.17, ptr noundef @.str.1, i32 noundef 244, ptr noundef %5437, ptr noundef %5440, ptr noundef %5443, i32 noundef %5445) #11
  br label %5447

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

5448:                                             ; preds = %5447
  br label %5449

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

5450:                                             ; No predecessors!
  br label %5451

5451:                                             ; preds = %5450
  br label %5452

5452:                                             ; preds = %5451, %5391
  br label %5453

5453:                                             ; preds = %5452
  br label %5454

5454:                                             ; preds = %5453
  call void @llvm.lifetime.start.p0(i64 24, ptr %146) #11
  %5455 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %146, i32 0, i32 0
  store i32 0, ptr %5455, align 8, !tbaa !18
  %5456 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %146, i32 0, i32 1
  store ptr null, ptr %5456, align 8, !tbaa !20
  %5457 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %146, i32 0, i32 2
  store ptr %143, ptr %5457, align 8, !tbaa !21
  call void @llvm.lifetime.start.p0(i64 8, ptr %147) #11
  store i64 10, ptr %147, align 8, !tbaa !16
  call void @llvm.lifetime.start.p0(i64 8, ptr %148) #11
  store i64 0, ptr %148, align 8, !tbaa !16
  br label %5458

5458:                                             ; preds = %5729, %5454
  %5459 = load i64, ptr %148, align 8, !tbaa !16
  %5460 = icmp ult i64 %5459, 10
  br i1 %5460, label %5462, label %5461

5461:                                             ; preds = %5458
  call void @llvm.lifetime.end.p0(i64 8, ptr %148) #11
  br label %5732

5462:                                             ; preds = %5458
  call void @llvm.lifetime.start.p0(i64 32, ptr %149) #11
  call void @llvm.memset.p0.i64(ptr align 16 %149, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr %150) #11
  call void @llvm.memset.p0.i64(ptr align 8 %150, i8 0, i64 24, i1 false)
  br label %5463

5463:                                             ; preds = %5462
  %5464 = load i32, ptr @test_count, align 4, !tbaa !5
  %5465 = add nsw i32 %5464, 1
  store i32 %5465, ptr @test_count, align 4, !tbaa !5
  %5466 = getelementptr inbounds [32 x i8], ptr %149, i64 0, i64 0
  %5467 = call i32 @s2n_blob_init(ptr noundef %150, ptr noundef %5466, i32 noundef 32)
  %5468 = icmp eq i32 %5467, -1
  br i1 %5468, label %5469, label %5522

5469:                                             ; preds = %5463
  br label %5470

5470:                                             ; preds = %5469
  br label %5471

5471:                                             ; preds = %5470
  call void @llvm.lifetime.start.p0(i64 4, ptr %151) #11
  %5472 = call ptr @__errno_location() #12
  %5473 = load i32, ptr %5472, align 4, !tbaa !5
  store i32 %5473, ptr %151, align 4, !tbaa !5
  %5474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5475 = call i32 @s2n_print_stacktrace(ptr noundef %5474)
  %5476 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5477 = trunc i8 %5476 to i1
  br i1 %5477, label %5478, label %5500

5478:                                             ; preds = %5471
  %5479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5480 = call i32 @fileno(ptr noundef %5479) #11
  %5481 = call i32 @isatty(i32 noundef %5480) #11
  %5482 = icmp ne i32 %5481, 0
  br i1 %5482, label %5483, label %5500

5483:                                             ; preds = %5478
  %5484 = load i32, ptr %151, align 4, !tbaa !5
  %5485 = call ptr @__errno_location() #12
  store i32 %5484, ptr %5485, align 4, !tbaa !5
  %5486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5487 = load i32, ptr @test_count, align 4, !tbaa !5
  %5488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5489 = load i32, ptr %5488, align 4, !tbaa !5
  %5490 = call ptr @s2n_strerror(i32 noundef %5489, ptr noundef @.str.4)
  %5491 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5492 = load i32, ptr %5491, align 4, !tbaa !5
  %5493 = call ptr @s2n_strerror_debug(i32 noundef %5492, ptr noundef @.str.4)
  %5494 = call ptr @__errno_location() #12
  %5495 = load i32, ptr %5494, align 4, !tbaa !5
  %5496 = call ptr @strerror(i32 noundef %5495) #11
  %5497 = call ptr @__errno_location() #12
  %5498 = load i32, ptr %5497, align 4, !tbaa !5
  %5499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5486, ptr noundef @.str.2, i32 noundef %5487, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 251, ptr noundef %5490, ptr noundef %5493, ptr noundef %5496, i32 noundef %5498) #11
  br label %5517

5500:                                             ; preds = %5478, %5471
  %5501 = load i32, ptr %151, align 4, !tbaa !5
  %5502 = call ptr @__errno_location() #12
  store i32 %5501, ptr %5502, align 4, !tbaa !5
  %5503 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5504 = load i32, ptr @test_count, align 4, !tbaa !5
  %5505 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5506 = load i32, ptr %5505, align 4, !tbaa !5
  %5507 = call ptr @s2n_strerror(i32 noundef %5506, ptr noundef @.str.4)
  %5508 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5509 = load i32, ptr %5508, align 4, !tbaa !5
  %5510 = call ptr @s2n_strerror_debug(i32 noundef %5509, ptr noundef @.str.4)
  %5511 = call ptr @__errno_location() #12
  %5512 = load i32, ptr %5511, align 4, !tbaa !5
  %5513 = call ptr @strerror(i32 noundef %5512) #11
  %5514 = call ptr @__errno_location() #12
  %5515 = load i32, ptr %5514, align 4, !tbaa !5
  %5516 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5503, ptr noundef @.str.5, i32 noundef %5504, ptr noundef @.str.39, ptr noundef @.str.1, i32 noundef 251, ptr noundef %5507, ptr noundef %5510, ptr noundef %5513, i32 noundef %5515) #11
  br label %5517

5517:                                             ; preds = %5500, %5483
  call void @llvm.lifetime.end.p0(i64 4, ptr %151) #11
  br label %5518

5518:                                             ; preds = %5517
  br label %5519

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

5520:                                             ; No predecessors!
  br label %5521

5521:                                             ; preds = %5520
  br label %5522

5522:                                             ; preds = %5521, %5463
  br label %5523

5523:                                             ; preds = %5522
  br label %5524

5524:                                             ; preds = %5523
  br label %5525

5525:                                             ; preds = %5524
  %5526 = load i32, ptr @test_count, align 4, !tbaa !5
  %5527 = add nsw i32 %5526, 1
  store i32 %5527, ptr @test_count, align 4, !tbaa !5
  %5528 = getelementptr inbounds [6 x i8], ptr %10, i64 0, i64 0
  %5529 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef %146, ptr noundef %5528, i64 noundef 5)
  %5530 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  store i32 %5529, ptr %5530, align 4
  %5531 = getelementptr inbounds %struct.s2n_result, ptr %152, i32 0, i32 0
  %5532 = load i32, ptr %5531, align 4
  %5533 = call zeroext i1 @s2n_result_is_ok(i32 %5532)
  br i1 %5533, label %5587, label %5534

5534:                                             ; preds = %5525
  br label %5535

5535:                                             ; preds = %5534
  br label %5536

5536:                                             ; preds = %5535
  call void @llvm.lifetime.start.p0(i64 4, ptr %153) #11
  %5537 = call ptr @__errno_location() #12
  %5538 = load i32, ptr %5537, align 4, !tbaa !5
  store i32 %5538, ptr %153, align 4, !tbaa !5
  %5539 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5540 = call i32 @s2n_print_stacktrace(ptr noundef %5539)
  %5541 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5542 = trunc i8 %5541 to i1
  br i1 %5542, label %5543, label %5565

5543:                                             ; preds = %5536
  %5544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5545 = call i32 @fileno(ptr noundef %5544) #11
  %5546 = call i32 @isatty(i32 noundef %5545) #11
  %5547 = icmp ne i32 %5546, 0
  br i1 %5547, label %5548, label %5565

5548:                                             ; preds = %5543
  %5549 = load i32, ptr %153, align 4, !tbaa !5
  %5550 = call ptr @__errno_location() #12
  store i32 %5549, ptr %5550, align 4, !tbaa !5
  %5551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5552 = load i32, ptr @test_count, align 4, !tbaa !5
  %5553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5554 = load i32, ptr %5553, align 4, !tbaa !5
  %5555 = call ptr @s2n_strerror(i32 noundef %5554, ptr noundef @.str.4)
  %5556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5557 = load i32, ptr %5556, align 4, !tbaa !5
  %5558 = call ptr @s2n_strerror_debug(i32 noundef %5557, ptr noundef @.str.4)
  %5559 = call ptr @__errno_location() #12
  %5560 = load i32, ptr %5559, align 4, !tbaa !5
  %5561 = call ptr @strerror(i32 noundef %5560) #11
  %5562 = call ptr @__errno_location() #12
  %5563 = load i32, ptr %5562, align 4, !tbaa !5
  %5564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5551, ptr noundef @.str.2, i32 noundef %5552, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 253, ptr noundef %5555, ptr noundef %5558, ptr noundef %5561, i32 noundef %5563) #11
  br label %5582

5565:                                             ; preds = %5543, %5536
  %5566 = load i32, ptr %153, align 4, !tbaa !5
  %5567 = call ptr @__errno_location() #12
  store i32 %5566, ptr %5567, align 4, !tbaa !5
  %5568 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5569 = load i32, ptr @test_count, align 4, !tbaa !5
  %5570 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5571 = load i32, ptr %5570, align 4, !tbaa !5
  %5572 = call ptr @s2n_strerror(i32 noundef %5571, ptr noundef @.str.4)
  %5573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5574 = load i32, ptr %5573, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror_debug(i32 noundef %5574, ptr noundef @.str.4)
  %5576 = call ptr @__errno_location() #12
  %5577 = load i32, ptr %5576, align 4, !tbaa !5
  %5578 = call ptr @strerror(i32 noundef %5577) #11
  %5579 = call ptr @__errno_location() #12
  %5580 = load i32, ptr %5579, align 4, !tbaa !5
  %5581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5568, ptr noundef @.str.5, i32 noundef %5569, ptr noundef @.str.27, ptr noundef @.str.1, i32 noundef 253, ptr noundef %5572, ptr noundef %5575, ptr noundef %5578, i32 noundef %5580) #11
  br label %5582

5582:                                             ; preds = %5565, %5548
  call void @llvm.lifetime.end.p0(i64 4, ptr %153) #11
  br label %5583

5583:                                             ; preds = %5582
  br label %5584

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

5585:                                             ; No predecessors!
  br label %5586

5586:                                             ; preds = %5585
  br label %5587

5587:                                             ; preds = %5586, %5525
  br label %5588

5588:                                             ; preds = %5587
  br label %5589

5589:                                             ; preds = %5588
  br label %5590

5590:                                             ; preds = %5589
  %5591 = load i32, ptr @test_count, align 4, !tbaa !5
  %5592 = add nsw i32 %5591, 1
  store i32 %5592, ptr @test_count, align 4, !tbaa !5
  %5593 = call i32 @s2n_fingerprint_hash_digest(ptr noundef %146, ptr noundef %150)
  %5594 = getelementptr inbounds %struct.s2n_result, ptr %154, i32 0, i32 0
  store i32 %5593, ptr %5594, align 4
  %5595 = getelementptr inbounds %struct.s2n_result, ptr %154, i32 0, i32 0
  %5596 = load i32, ptr %5595, align 4
  %5597 = call zeroext i1 @s2n_result_is_ok(i32 %5596)
  br i1 %5597, label %5651, label %5598

5598:                                             ; preds = %5590
  br label %5599

5599:                                             ; preds = %5598
  br label %5600

5600:                                             ; preds = %5599
  call void @llvm.lifetime.start.p0(i64 4, ptr %155) #11
  %5601 = call ptr @__errno_location() #12
  %5602 = load i32, ptr %5601, align 4, !tbaa !5
  store i32 %5602, ptr %155, align 4, !tbaa !5
  %5603 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5604 = call i32 @s2n_print_stacktrace(ptr noundef %5603)
  %5605 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5606 = trunc i8 %5605 to i1
  br i1 %5606, label %5607, label %5629

5607:                                             ; preds = %5600
  %5608 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5609 = call i32 @fileno(ptr noundef %5608) #11
  %5610 = call i32 @isatty(i32 noundef %5609) #11
  %5611 = icmp ne i32 %5610, 0
  br i1 %5611, label %5612, label %5629

5612:                                             ; preds = %5607
  %5613 = load i32, ptr %155, align 4, !tbaa !5
  %5614 = call ptr @__errno_location() #12
  store i32 %5613, ptr %5614, align 4, !tbaa !5
  %5615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5616 = load i32, ptr @test_count, align 4, !tbaa !5
  %5617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5618 = load i32, ptr %5617, align 4, !tbaa !5
  %5619 = call ptr @s2n_strerror(i32 noundef %5618, ptr noundef @.str.4)
  %5620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5621 = load i32, ptr %5620, align 4, !tbaa !5
  %5622 = call ptr @s2n_strerror_debug(i32 noundef %5621, ptr noundef @.str.4)
  %5623 = call ptr @__errno_location() #12
  %5624 = load i32, ptr %5623, align 4, !tbaa !5
  %5625 = call ptr @strerror(i32 noundef %5624) #11
  %5626 = call ptr @__errno_location() #12
  %5627 = load i32, ptr %5626, align 4, !tbaa !5
  %5628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5615, ptr noundef @.str.2, i32 noundef %5616, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 254, ptr noundef %5619, ptr noundef %5622, ptr noundef %5625, i32 noundef %5627) #11
  br label %5646

5629:                                             ; preds = %5607, %5600
  %5630 = load i32, ptr %155, align 4, !tbaa !5
  %5631 = call ptr @__errno_location() #12
  store i32 %5630, ptr %5631, align 4, !tbaa !5
  %5632 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5633 = load i32, ptr @test_count, align 4, !tbaa !5
  %5634 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5635 = load i32, ptr %5634, align 4, !tbaa !5
  %5636 = call ptr @s2n_strerror(i32 noundef %5635, ptr noundef @.str.4)
  %5637 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5638 = load i32, ptr %5637, align 4, !tbaa !5
  %5639 = call ptr @s2n_strerror_debug(i32 noundef %5638, ptr noundef @.str.4)
  %5640 = call ptr @__errno_location() #12
  %5641 = load i32, ptr %5640, align 4, !tbaa !5
  %5642 = call ptr @strerror(i32 noundef %5641) #11
  %5643 = call ptr @__errno_location() #12
  %5644 = load i32, ptr %5643, align 4, !tbaa !5
  %5645 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5632, ptr noundef @.str.5, i32 noundef %5633, ptr noundef @.str.40, ptr noundef @.str.1, i32 noundef 254, ptr noundef %5636, ptr noundef %5639, ptr noundef %5642, i32 noundef %5644) #11
  br label %5646

5646:                                             ; preds = %5629, %5612
  call void @llvm.lifetime.end.p0(i64 4, ptr %155) #11
  br label %5647

5647:                                             ; preds = %5646
  br label %5648

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

5649:                                             ; No predecessors!
  br label %5650

5650:                                             ; preds = %5649
  br label %5651

5651:                                             ; preds = %5650, %5590
  br label %5652

5652:                                             ; preds = %5651
  br label %5653

5653:                                             ; preds = %5652
  br label %5654

5654:                                             ; preds = %5653
  %5655 = getelementptr inbounds %struct.s2n_blob, ptr %150, i32 0, i32 1
  %5656 = load i32, ptr %5655, align 8, !tbaa !33
  %5657 = icmp ne i32 %5656, 0
  br i1 %5657, label %5658, label %5726

5658:                                             ; preds = %5654
  br label %5659

5659:                                             ; preds = %5658
  %5660 = load i32, ptr @test_count, align 4, !tbaa !5
  %5661 = add nsw i32 %5660, 1
  store i32 %5661, ptr @test_count, align 4, !tbaa !5
  %5662 = getelementptr inbounds [32 x i8], ptr %12, i64 0, i64 0
  %5663 = getelementptr inbounds %struct.s2n_blob, ptr %150, i32 0, i32 0
  %5664 = load ptr, ptr %5663, align 8, !tbaa !34
  %5665 = getelementptr inbounds %struct.s2n_blob, ptr %150, i32 0, i32 1
  %5666 = load i32, ptr %5665, align 8, !tbaa !33
  %5667 = zext i32 %5666 to i64
  %5668 = call i32 @memcmp(ptr noundef %5662, ptr noundef %5664, i64 noundef %5667) #14
  %5669 = icmp eq i32 %5668, 0
  br i1 %5669, label %5723, label %5670

5670:                                             ; preds = %5659
  br label %5671

5671:                                             ; preds = %5670
  br label %5672

5672:                                             ; preds = %5671
  call void @llvm.lifetime.start.p0(i64 4, ptr %156) #11
  %5673 = call ptr @__errno_location() #12
  %5674 = load i32, ptr %5673, align 4, !tbaa !5
  store i32 %5674, ptr %156, align 4, !tbaa !5
  %5675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5676 = call i32 @s2n_print_stacktrace(ptr noundef %5675)
  %5677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5678 = trunc i8 %5677 to i1
  br i1 %5678, label %5679, label %5701

5679:                                             ; preds = %5672
  %5680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5681 = call i32 @fileno(ptr noundef %5680) #11
  %5682 = call i32 @isatty(i32 noundef %5681) #11
  %5683 = icmp ne i32 %5682, 0
  br i1 %5683, label %5684, label %5701

5684:                                             ; preds = %5679
  %5685 = load i32, ptr %156, align 4, !tbaa !5
  %5686 = call ptr @__errno_location() #12
  store i32 %5685, ptr %5686, align 4, !tbaa !5
  %5687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5688 = load i32, ptr @test_count, align 4, !tbaa !5
  %5689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5690 = load i32, ptr %5689, align 4, !tbaa !5
  %5691 = call ptr @s2n_strerror(i32 noundef %5690, ptr noundef @.str.4)
  %5692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5693 = load i32, ptr %5692, align 4, !tbaa !5
  %5694 = call ptr @s2n_strerror_debug(i32 noundef %5693, ptr noundef @.str.4)
  %5695 = call ptr @__errno_location() #12
  %5696 = load i32, ptr %5695, align 4, !tbaa !5
  %5697 = call ptr @strerror(i32 noundef %5696) #11
  %5698 = call ptr @__errno_location() #12
  %5699 = load i32, ptr %5698, align 4, !tbaa !5
  %5700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5687, ptr noundef @.str.2, i32 noundef %5688, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 256, ptr noundef %5691, ptr noundef %5694, ptr noundef %5697, i32 noundef %5699) #11
  br label %5718

5701:                                             ; preds = %5679, %5672
  %5702 = load i32, ptr %156, align 4, !tbaa !5
  %5703 = call ptr @__errno_location() #12
  store i32 %5702, ptr %5703, align 4, !tbaa !5
  %5704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5705 = load i32, ptr @test_count, align 4, !tbaa !5
  %5706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5707 = load i32, ptr %5706, align 4, !tbaa !5
  %5708 = call ptr @s2n_strerror(i32 noundef %5707, ptr noundef @.str.4)
  %5709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5710 = load i32, ptr %5709, align 4, !tbaa !5
  %5711 = call ptr @s2n_strerror_debug(i32 noundef %5710, ptr noundef @.str.4)
  %5712 = call ptr @__errno_location() #12
  %5713 = load i32, ptr %5712, align 4, !tbaa !5
  %5714 = call ptr @strerror(i32 noundef %5713) #11
  %5715 = call ptr @__errno_location() #12
  %5716 = load i32, ptr %5715, align 4, !tbaa !5
  %5717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5704, ptr noundef @.str.5, i32 noundef %5705, ptr noundef @.str.41, ptr noundef @.str.1, i32 noundef 256, ptr noundef %5708, ptr noundef %5711, ptr noundef %5714, i32 noundef %5716) #11
  br label %5718

5718:                                             ; preds = %5701, %5684
  call void @llvm.lifetime.end.p0(i64 4, ptr %156) #11
  br label %5719

5719:                                             ; preds = %5718
  br label %5720

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

5721:                                             ; No predecessors!
  br label %5722

5722:                                             ; preds = %5721
  br label %5723

5723:                                             ; preds = %5722, %5659
  br label %5724

5724:                                             ; preds = %5723
  br label %5725

5725:                                             ; preds = %5724
  br label %5726

5726:                                             ; preds = %5725, %5654
  br label %5727

5727:                                             ; preds = %5726
  br label %5728

5728:                                             ; preds = %5727
  call void @llvm.lifetime.end.p0(i64 24, ptr %150) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %149) #11
  br label %5729

5729:                                             ; preds = %5728
  %5730 = load i64, ptr %148, align 8, !tbaa !16
  %5731 = add i64 %5730, 1
  store i64 %5731, ptr %148, align 8, !tbaa !16
  br label %5458, !llvm.loop !35

5732:                                             ; preds = %5461
  br label %5733

5733:                                             ; preds = %5732
  %5734 = load i32, ptr @test_count, align 4, !tbaa !5
  %5735 = add nsw i32 %5734, 1
  store i32 %5735, ptr @test_count, align 4, !tbaa !5
  %5736 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %146, i32 0, i32 0
  %5737 = load i32, ptr %5736, align 8, !tbaa !18
  %5738 = zext i32 %5737 to i64
  %5739 = icmp eq i64 %5738, 50
  br i1 %5739, label %5793, label %5740

5740:                                             ; preds = %5733
  br label %5741

5741:                                             ; preds = %5740
  br label %5742

5742:                                             ; preds = %5741
  call void @llvm.lifetime.start.p0(i64 4, ptr %157) #11
  %5743 = call ptr @__errno_location() #12
  %5744 = load i32, ptr %5743, align 4, !tbaa !5
  store i32 %5744, ptr %157, align 4, !tbaa !5
  %5745 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5746 = call i32 @s2n_print_stacktrace(ptr noundef %5745)
  %5747 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5748 = trunc i8 %5747 to i1
  br i1 %5748, label %5749, label %5771

5749:                                             ; preds = %5742
  %5750 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5751 = call i32 @fileno(ptr noundef %5750) #11
  %5752 = call i32 @isatty(i32 noundef %5751) #11
  %5753 = icmp ne i32 %5752, 0
  br i1 %5753, label %5754, label %5771

5754:                                             ; preds = %5749
  %5755 = load i32, ptr %157, align 4, !tbaa !5
  %5756 = call ptr @__errno_location() #12
  store i32 %5755, ptr %5756, align 4, !tbaa !5
  %5757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5758 = load i32, ptr @test_count, align 4, !tbaa !5
  %5759 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5760 = load i32, ptr %5759, align 4, !tbaa !5
  %5761 = call ptr @s2n_strerror(i32 noundef %5760, ptr noundef @.str.4)
  %5762 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5763 = load i32, ptr %5762, align 4, !tbaa !5
  %5764 = call ptr @s2n_strerror_debug(i32 noundef %5763, ptr noundef @.str.4)
  %5765 = call ptr @__errno_location() #12
  %5766 = load i32, ptr %5765, align 4, !tbaa !5
  %5767 = call ptr @strerror(i32 noundef %5766) #11
  %5768 = call ptr @__errno_location() #12
  %5769 = load i32, ptr %5768, align 4, !tbaa !5
  %5770 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5757, ptr noundef @.str.2, i32 noundef %5758, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 258, ptr noundef %5761, ptr noundef %5764, ptr noundef %5767, i32 noundef %5769) #11
  br label %5788

5771:                                             ; preds = %5749, %5742
  %5772 = load i32, ptr %157, align 4, !tbaa !5
  %5773 = call ptr @__errno_location() #12
  store i32 %5772, ptr %5773, align 4, !tbaa !5
  %5774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5775 = load i32, ptr @test_count, align 4, !tbaa !5
  %5776 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5777 = load i32, ptr %5776, align 4, !tbaa !5
  %5778 = call ptr @s2n_strerror(i32 noundef %5777, ptr noundef @.str.4)
  %5779 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5780 = load i32, ptr %5779, align 4, !tbaa !5
  %5781 = call ptr @s2n_strerror_debug(i32 noundef %5780, ptr noundef @.str.4)
  %5782 = call ptr @__errno_location() #12
  %5783 = load i32, ptr %5782, align 4, !tbaa !5
  %5784 = call ptr @strerror(i32 noundef %5783) #11
  %5785 = call ptr @__errno_location() #12
  %5786 = load i32, ptr %5785, align 4, !tbaa !5
  %5787 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5774, ptr noundef @.str.5, i32 noundef %5775, ptr noundef @.str.43, ptr noundef @.str.1, i32 noundef 258, ptr noundef %5778, ptr noundef %5781, ptr noundef %5784, i32 noundef %5786) #11
  br label %5788

5788:                                             ; preds = %5771, %5754
  call void @llvm.lifetime.end.p0(i64 4, ptr %157) #11
  br label %5789

5789:                                             ; preds = %5788
  br label %5790

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

5791:                                             ; No predecessors!
  br label %5792

5792:                                             ; preds = %5791
  br label %5793

5793:                                             ; preds = %5792, %5733
  br label %5794

5794:                                             ; preds = %5793
  br label %5795

5795:                                             ; preds = %5794
  call void @llvm.lifetime.end.p0(i64 8, ptr %147) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %146) #11
  %5796 = call i32 @s2n_hash_free(ptr noundef %143)
  call void @llvm.lifetime.end.p0(i64 56, ptr %143) #11
  br label %5797

5797:                                             ; preds = %5795
  %5798 = load i32, ptr @test_count, align 4, !tbaa !5
  %5799 = add nsw i32 %5798, 1
  store i32 %5799, ptr @test_count, align 4, !tbaa !5
  %5800 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef null)
  br i1 %5800, label %5801, label %5854

5801:                                             ; preds = %5797
  br label %5802

5802:                                             ; preds = %5801
  br label %5803

5803:                                             ; preds = %5802
  call void @llvm.lifetime.start.p0(i64 4, ptr %158) #11
  %5804 = call ptr @__errno_location() #12
  %5805 = load i32, ptr %5804, align 4, !tbaa !5
  store i32 %5805, ptr %158, align 4, !tbaa !5
  %5806 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5807 = call i32 @s2n_print_stacktrace(ptr noundef %5806)
  %5808 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5809 = trunc i8 %5808 to i1
  br i1 %5809, label %5810, label %5832

5810:                                             ; preds = %5803
  %5811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5812 = call i32 @fileno(ptr noundef %5811) #11
  %5813 = call i32 @isatty(i32 noundef %5812) #11
  %5814 = icmp ne i32 %5813, 0
  br i1 %5814, label %5815, label %5832

5815:                                             ; preds = %5810
  %5816 = load i32, ptr %158, align 4, !tbaa !5
  %5817 = call ptr @__errno_location() #12
  store i32 %5816, ptr %5817, align 4, !tbaa !5
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = load i32, ptr @test_count, align 4, !tbaa !5
  %5820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5821 = load i32, ptr %5820, align 4, !tbaa !5
  %5822 = call ptr @s2n_strerror(i32 noundef %5821, ptr noundef @.str.4)
  %5823 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5824 = load i32, ptr %5823, align 4, !tbaa !5
  %5825 = call ptr @s2n_strerror_debug(i32 noundef %5824, ptr noundef @.str.4)
  %5826 = call ptr @__errno_location() #12
  %5827 = load i32, ptr %5826, align 4, !tbaa !5
  %5828 = call ptr @strerror(i32 noundef %5827) #11
  %5829 = call ptr @__errno_location() #12
  %5830 = load i32, ptr %5829, align 4, !tbaa !5
  %5831 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5818, ptr noundef @.str.2, i32 noundef %5819, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5822, ptr noundef %5825, ptr noundef %5828, i32 noundef %5830) #11
  br label %5849

5832:                                             ; preds = %5810, %5803
  %5833 = load i32, ptr %158, align 4, !tbaa !5
  %5834 = call ptr @__errno_location() #12
  store i32 %5833, ptr %5834, align 4, !tbaa !5
  %5835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5836 = load i32, ptr @test_count, align 4, !tbaa !5
  %5837 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5838 = load i32, ptr %5837, align 4, !tbaa !5
  %5839 = call ptr @s2n_strerror(i32 noundef %5838, ptr noundef @.str.4)
  %5840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5841 = load i32, ptr %5840, align 4, !tbaa !5
  %5842 = call ptr @s2n_strerror_debug(i32 noundef %5841, ptr noundef @.str.4)
  %5843 = call ptr @__errno_location() #12
  %5844 = load i32, ptr %5843, align 4, !tbaa !5
  %5845 = call ptr @strerror(i32 noundef %5844) #11
  %5846 = call ptr @__errno_location() #12
  %5847 = load i32, ptr %5846, align 4, !tbaa !5
  %5848 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5835, ptr noundef @.str.5, i32 noundef %5836, ptr noundef @.str.44, ptr noundef @.str.1, i32 noundef 265, ptr noundef %5839, ptr noundef %5842, ptr noundef %5845, i32 noundef %5847) #11
  br label %5849

5849:                                             ; preds = %5832, %5815
  call void @llvm.lifetime.end.p0(i64 4, ptr %158) #11
  br label %5850

5850:                                             ; preds = %5849
  br label %5851

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

5852:                                             ; No predecessors!
  br label %5853

5853:                                             ; preds = %5852
  br label %5854

5854:                                             ; preds = %5853, %5797
  br label %5855

5855:                                             ; preds = %5854
  br label %5856

5856:                                             ; preds = %5855
  call void @llvm.lifetime.start.p0(i64 24, ptr %159) #11
  call void @llvm.memset.p0.i64(ptr align 8 %159, i8 0, i64 24, i1 false)
  br label %5857

5857:                                             ; preds = %5856
  %5858 = load i32, ptr @test_count, align 4, !tbaa !5
  %5859 = add nsw i32 %5858, 1
  store i32 %5859, ptr @test_count, align 4, !tbaa !5
  %5860 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef %159)
  br i1 %5860, label %5861, label %5914

5861:                                             ; preds = %5857
  br label %5862

5862:                                             ; preds = %5861
  br label %5863

5863:                                             ; preds = %5862
  call void @llvm.lifetime.start.p0(i64 4, ptr %160) #11
  %5864 = call ptr @__errno_location() #12
  %5865 = load i32, ptr %5864, align 4, !tbaa !5
  store i32 %5865, ptr %160, align 4, !tbaa !5
  %5866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5867 = call i32 @s2n_print_stacktrace(ptr noundef %5866)
  %5868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5869 = trunc i8 %5868 to i1
  br i1 %5869, label %5870, label %5892

5870:                                             ; preds = %5863
  %5871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5872 = call i32 @fileno(ptr noundef %5871) #11
  %5873 = call i32 @isatty(i32 noundef %5872) #11
  %5874 = icmp ne i32 %5873, 0
  br i1 %5874, label %5875, label %5892

5875:                                             ; preds = %5870
  %5876 = load i32, ptr %160, align 4, !tbaa !5
  %5877 = call ptr @__errno_location() #12
  store i32 %5876, ptr %5877, align 4, !tbaa !5
  %5878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5879 = load i32, ptr @test_count, align 4, !tbaa !5
  %5880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5881 = load i32, ptr %5880, align 4, !tbaa !5
  %5882 = call ptr @s2n_strerror(i32 noundef %5881, ptr noundef @.str.4)
  %5883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5884 = load i32, ptr %5883, align 4, !tbaa !5
  %5885 = call ptr @s2n_strerror_debug(i32 noundef %5884, ptr noundef @.str.4)
  %5886 = call ptr @__errno_location() #12
  %5887 = load i32, ptr %5886, align 4, !tbaa !5
  %5888 = call ptr @strerror(i32 noundef %5887) #11
  %5889 = call ptr @__errno_location() #12
  %5890 = load i32, ptr %5889, align 4, !tbaa !5
  %5891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5878, ptr noundef @.str.2, i32 noundef %5879, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5882, ptr noundef %5885, ptr noundef %5888, i32 noundef %5890) #11
  br label %5909

5892:                                             ; preds = %5870, %5863
  %5893 = load i32, ptr %160, align 4, !tbaa !5
  %5894 = call ptr @__errno_location() #12
  store i32 %5893, ptr %5894, align 4, !tbaa !5
  %5895 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5896 = load i32, ptr @test_count, align 4, !tbaa !5
  %5897 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5898 = load i32, ptr %5897, align 4, !tbaa !5
  %5899 = call ptr @s2n_strerror(i32 noundef %5898, ptr noundef @.str.4)
  %5900 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5901 = load i32, ptr %5900, align 4, !tbaa !5
  %5902 = call ptr @s2n_strerror_debug(i32 noundef %5901, ptr noundef @.str.4)
  %5903 = call ptr @__errno_location() #12
  %5904 = load i32, ptr %5903, align 4, !tbaa !5
  %5905 = call ptr @strerror(i32 noundef %5904) #11
  %5906 = call ptr @__errno_location() #12
  %5907 = load i32, ptr %5906, align 4, !tbaa !5
  %5908 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5895, ptr noundef @.str.5, i32 noundef %5896, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 268, ptr noundef %5899, ptr noundef %5902, ptr noundef %5905, i32 noundef %5907) #11
  br label %5909

5909:                                             ; preds = %5892, %5875
  call void @llvm.lifetime.end.p0(i64 4, ptr %160) #11
  br label %5910

5910:                                             ; preds = %5909
  br label %5911

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

5912:                                             ; No predecessors!
  br label %5913

5913:                                             ; preds = %5912
  br label %5914

5914:                                             ; preds = %5913, %5857
  br label %5915

5915:                                             ; preds = %5914
  br label %5916

5916:                                             ; preds = %5915
  call void @llvm.lifetime.start.p0(i64 40, ptr %161) #11
  call void @llvm.memset.p0.i64(ptr align 8 %161, i8 0, i64 40, i1 false)
  %5917 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %159, i32 0, i32 1
  store ptr %161, ptr %5917, align 8, !tbaa !20
  br label %5918

5918:                                             ; preds = %5916
  %5919 = load i32, ptr @test_count, align 4, !tbaa !5
  %5920 = add nsw i32 %5919, 1
  store i32 %5920, ptr @test_count, align 4, !tbaa !5
  %5921 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef %159)
  br i1 %5921, label %5922, label %5975

5922:                                             ; preds = %5918
  br label %5923

5923:                                             ; preds = %5922
  br label %5924

5924:                                             ; preds = %5923
  call void @llvm.lifetime.start.p0(i64 4, ptr %162) #11
  %5925 = call ptr @__errno_location() #12
  %5926 = load i32, ptr %5925, align 4, !tbaa !5
  store i32 %5926, ptr %162, align 4, !tbaa !5
  %5927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5928 = call i32 @s2n_print_stacktrace(ptr noundef %5927)
  %5929 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5930 = trunc i8 %5929 to i1
  br i1 %5930, label %5931, label %5953

5931:                                             ; preds = %5924
  %5932 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5933 = call i32 @fileno(ptr noundef %5932) #11
  %5934 = call i32 @isatty(i32 noundef %5933) #11
  %5935 = icmp ne i32 %5934, 0
  br i1 %5935, label %5936, label %5953

5936:                                             ; preds = %5931
  %5937 = load i32, ptr %162, align 4, !tbaa !5
  %5938 = call ptr @__errno_location() #12
  store i32 %5937, ptr %5938, align 4, !tbaa !5
  %5939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5940 = load i32, ptr @test_count, align 4, !tbaa !5
  %5941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5942 = load i32, ptr %5941, align 4, !tbaa !5
  %5943 = call ptr @s2n_strerror(i32 noundef %5942, ptr noundef @.str.4)
  %5944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5945 = load i32, ptr %5944, align 4, !tbaa !5
  %5946 = call ptr @s2n_strerror_debug(i32 noundef %5945, ptr noundef @.str.4)
  %5947 = call ptr @__errno_location() #12
  %5948 = load i32, ptr %5947, align 4, !tbaa !5
  %5949 = call ptr @strerror(i32 noundef %5948) #11
  %5950 = call ptr @__errno_location() #12
  %5951 = load i32, ptr %5950, align 4, !tbaa !5
  %5952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5939, ptr noundef @.str.2, i32 noundef %5940, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5943, ptr noundef %5946, ptr noundef %5949, i32 noundef %5951) #11
  br label %5970

5953:                                             ; preds = %5931, %5924
  %5954 = load i32, ptr %162, align 4, !tbaa !5
  %5955 = call ptr @__errno_location() #12
  store i32 %5954, ptr %5955, align 4, !tbaa !5
  %5956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5957 = load i32, ptr @test_count, align 4, !tbaa !5
  %5958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5959 = load i32, ptr %5958, align 4, !tbaa !5
  %5960 = call ptr @s2n_strerror(i32 noundef %5959, ptr noundef @.str.4)
  %5961 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %5962 = load i32, ptr %5961, align 4, !tbaa !5
  %5963 = call ptr @s2n_strerror_debug(i32 noundef %5962, ptr noundef @.str.4)
  %5964 = call ptr @__errno_location() #12
  %5965 = load i32, ptr %5964, align 4, !tbaa !5
  %5966 = call ptr @strerror(i32 noundef %5965) #11
  %5967 = call ptr @__errno_location() #12
  %5968 = load i32, ptr %5967, align 4, !tbaa !5
  %5969 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5956, ptr noundef @.str.5, i32 noundef %5957, ptr noundef @.str.45, ptr noundef @.str.1, i32 noundef 272, ptr noundef %5960, ptr noundef %5963, ptr noundef %5966, i32 noundef %5968) #11
  br label %5970

5970:                                             ; preds = %5953, %5936
  call void @llvm.lifetime.end.p0(i64 4, ptr %162) #11
  br label %5971

5971:                                             ; preds = %5970
  br label %5972

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

5973:                                             ; No predecessors!
  br label %5974

5974:                                             ; preds = %5973
  br label %5975

5975:                                             ; preds = %5974, %5918
  br label %5976

5976:                                             ; preds = %5975
  br label %5977

5977:                                             ; preds = %5976
  call void @llvm.lifetime.start.p0(i64 56, ptr %163) #11
  call void @llvm.memset.p0.i64(ptr align 8 %163, i8 0, i64 56, i1 false)
  %5978 = getelementptr inbounds %struct.s2n_fingerprint_hash, ptr %159, i32 0, i32 2
  store ptr %163, ptr %5978, align 8, !tbaa !21
  br label %5979

5979:                                             ; preds = %5977
  %5980 = load i32, ptr @test_count, align 4, !tbaa !5
  %5981 = add nsw i32 %5980, 1
  store i32 %5981, ptr @test_count, align 4, !tbaa !5
  %5982 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef %159)
  br i1 %5982, label %6036, label %5983

5983:                                             ; preds = %5979
  br label %5984

5984:                                             ; preds = %5983
  br label %5985

5985:                                             ; preds = %5984
  call void @llvm.lifetime.start.p0(i64 4, ptr %164) #11
  %5986 = call ptr @__errno_location() #12
  %5987 = load i32, ptr %5986, align 4, !tbaa !5
  store i32 %5987, ptr %164, align 4, !tbaa !5
  %5988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5989 = call i32 @s2n_print_stacktrace(ptr noundef %5988)
  %5990 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5991 = trunc i8 %5990 to i1
  br i1 %5991, label %5992, label %6014

5992:                                             ; preds = %5985
  %5993 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5994 = call i32 @fileno(ptr noundef %5993) #11
  %5995 = call i32 @isatty(i32 noundef %5994) #11
  %5996 = icmp ne i32 %5995, 0
  br i1 %5996, label %5997, label %6014

5997:                                             ; preds = %5992
  %5998 = load i32, ptr %164, align 4, !tbaa !5
  %5999 = call ptr @__errno_location() #12
  store i32 %5998, ptr %5999, align 4, !tbaa !5
  %6000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6001 = load i32, ptr @test_count, align 4, !tbaa !5
  %6002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6003 = load i32, ptr %6002, align 4, !tbaa !5
  %6004 = call ptr @s2n_strerror(i32 noundef %6003, ptr noundef @.str.4)
  %6005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6006 = load i32, ptr %6005, align 4, !tbaa !5
  %6007 = call ptr @s2n_strerror_debug(i32 noundef %6006, ptr noundef @.str.4)
  %6008 = call ptr @__errno_location() #12
  %6009 = load i32, ptr %6008, align 4, !tbaa !5
  %6010 = call ptr @strerror(i32 noundef %6009) #11
  %6011 = call ptr @__errno_location() #12
  %6012 = load i32, ptr %6011, align 4, !tbaa !5
  %6013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6000, ptr noundef @.str.2, i32 noundef %6001, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 276, ptr noundef %6004, ptr noundef %6007, ptr noundef %6010, i32 noundef %6012) #11
  br label %6031

6014:                                             ; preds = %5992, %5985
  %6015 = load i32, ptr %164, align 4, !tbaa !5
  %6016 = call ptr @__errno_location() #12
  store i32 %6015, ptr %6016, align 4, !tbaa !5
  %6017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6018 = load i32, ptr @test_count, align 4, !tbaa !5
  %6019 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6020 = load i32, ptr %6019, align 4, !tbaa !5
  %6021 = call ptr @s2n_strerror(i32 noundef %6020, ptr noundef @.str.4)
  %6022 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6023 = load i32, ptr %6022, align 4, !tbaa !5
  %6024 = call ptr @s2n_strerror_debug(i32 noundef %6023, ptr noundef @.str.4)
  %6025 = call ptr @__errno_location() #12
  %6026 = load i32, ptr %6025, align 4, !tbaa !5
  %6027 = call ptr @strerror(i32 noundef %6026) #11
  %6028 = call ptr @__errno_location() #12
  %6029 = load i32, ptr %6028, align 4, !tbaa !5
  %6030 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6017, ptr noundef @.str.5, i32 noundef %6018, ptr noundef @.str.46, ptr noundef @.str.1, i32 noundef 276, ptr noundef %6021, ptr noundef %6024, ptr noundef %6027, i32 noundef %6029) #11
  br label %6031

6031:                                             ; preds = %6014, %5997
  call void @llvm.lifetime.end.p0(i64 4, ptr %164) #11
  br label %6032

6032:                                             ; preds = %6031
  br label %6033

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

6034:                                             ; No predecessors!
  br label %6035

6035:                                             ; preds = %6034
  br label %6036

6036:                                             ; preds = %6035, %5979
  br label %6037

6037:                                             ; preds = %6036
  br label %6038

6038:                                             ; preds = %6037
  call void @llvm.lifetime.end.p0(i64 56, ptr %163) #11
  call void @llvm.lifetime.end.p0(i64 40, ptr %161) #11
  call void @llvm.lifetime.end.p0(i64 24, ptr %159) #11
  br label %6039

6039:                                             ; preds = %6038
  %6040 = load i32, ptr @test_count, align 4, !tbaa !5
  %6041 = add nsw i32 %6040, 1
  store i32 %6041, ptr @test_count, align 4, !tbaa !5
  %6042 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext 2570)
  br i1 %6042, label %6096, label %6043

6043:                                             ; preds = %6039
  br label %6044

6044:                                             ; preds = %6043
  br label %6045

6045:                                             ; preds = %6044
  call void @llvm.lifetime.start.p0(i64 4, ptr %165) #11
  %6046 = call ptr @__errno_location() #12
  %6047 = load i32, ptr %6046, align 4, !tbaa !5
  store i32 %6047, ptr %165, align 4, !tbaa !5
  %6048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6049 = call i32 @s2n_print_stacktrace(ptr noundef %6048)
  %6050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6051 = trunc i8 %6050 to i1
  br i1 %6051, label %6052, label %6074

6052:                                             ; preds = %6045
  %6053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6054 = call i32 @fileno(ptr noundef %6053) #11
  %6055 = call i32 @isatty(i32 noundef %6054) #11
  %6056 = icmp ne i32 %6055, 0
  br i1 %6056, label %6057, label %6074

6057:                                             ; preds = %6052
  %6058 = load i32, ptr %165, align 4, !tbaa !5
  %6059 = call ptr @__errno_location() #12
  store i32 %6058, ptr %6059, align 4, !tbaa !5
  %6060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6061 = load i32, ptr @test_count, align 4, !tbaa !5
  %6062 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6063 = load i32, ptr %6062, align 4, !tbaa !5
  %6064 = call ptr @s2n_strerror(i32 noundef %6063, ptr noundef @.str.4)
  %6065 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6066 = load i32, ptr %6065, align 4, !tbaa !5
  %6067 = call ptr @s2n_strerror_debug(i32 noundef %6066, ptr noundef @.str.4)
  %6068 = call ptr @__errno_location() #12
  %6069 = load i32, ptr %6068, align 4, !tbaa !5
  %6070 = call ptr @strerror(i32 noundef %6069) #11
  %6071 = call ptr @__errno_location() #12
  %6072 = load i32, ptr %6071, align 4, !tbaa !5
  %6073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6060, ptr noundef @.str.2, i32 noundef %6061, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 281, ptr noundef %6064, ptr noundef %6067, ptr noundef %6070, i32 noundef %6072) #11
  br label %6091

6074:                                             ; preds = %6052, %6045
  %6075 = load i32, ptr %165, align 4, !tbaa !5
  %6076 = call ptr @__errno_location() #12
  store i32 %6075, ptr %6076, align 4, !tbaa !5
  %6077 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6078 = load i32, ptr @test_count, align 4, !tbaa !5
  %6079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6080 = load i32, ptr %6079, align 4, !tbaa !5
  %6081 = call ptr @s2n_strerror(i32 noundef %6080, ptr noundef @.str.4)
  %6082 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6083 = load i32, ptr %6082, align 4, !tbaa !5
  %6084 = call ptr @s2n_strerror_debug(i32 noundef %6083, ptr noundef @.str.4)
  %6085 = call ptr @__errno_location() #12
  %6086 = load i32, ptr %6085, align 4, !tbaa !5
  %6087 = call ptr @strerror(i32 noundef %6086) #11
  %6088 = call ptr @__errno_location() #12
  %6089 = load i32, ptr %6088, align 4, !tbaa !5
  %6090 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6077, ptr noundef @.str.5, i32 noundef %6078, ptr noundef @.str.47, ptr noundef @.str.1, i32 noundef 281, ptr noundef %6081, ptr noundef %6084, ptr noundef %6087, i32 noundef %6089) #11
  br label %6091

6091:                                             ; preds = %6074, %6057
  call void @llvm.lifetime.end.p0(i64 4, ptr %165) #11
  br label %6092

6092:                                             ; preds = %6091
  br label %6093

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

6094:                                             ; No predecessors!
  br label %6095

6095:                                             ; preds = %6094
  br label %6096

6096:                                             ; preds = %6095, %6039
  br label %6097

6097:                                             ; preds = %6096
  br label %6098

6098:                                             ; preds = %6097
  br label %6099

6099:                                             ; preds = %6098
  %6100 = load i32, ptr @test_count, align 4, !tbaa !5
  %6101 = add nsw i32 %6100, 1
  store i32 %6101, ptr @test_count, align 4, !tbaa !5
  %6102 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext -1286)
  br i1 %6102, label %6156, label %6103

6103:                                             ; preds = %6099
  br label %6104

6104:                                             ; preds = %6103
  br label %6105

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

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

6117:                                             ; preds = %6112
  %6118 = load i32, ptr %166, align 4, !tbaa !5
  %6119 = call ptr @__errno_location() #12
  store i32 %6118, ptr %6119, align 4, !tbaa !5
  %6120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6121 = load i32, ptr @test_count, align 4, !tbaa !5
  %6122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6123 = load i32, ptr %6122, align 4, !tbaa !5
  %6124 = call ptr @s2n_strerror(i32 noundef %6123, ptr noundef @.str.4)
  %6125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6126 = load i32, ptr %6125, align 4, !tbaa !5
  %6127 = call ptr @s2n_strerror_debug(i32 noundef %6126, ptr noundef @.str.4)
  %6128 = call ptr @__errno_location() #12
  %6129 = load i32, ptr %6128, align 4, !tbaa !5
  %6130 = call ptr @strerror(i32 noundef %6129) #11
  %6131 = call ptr @__errno_location() #12
  %6132 = load i32, ptr %6131, align 4, !tbaa !5
  %6133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6120, ptr noundef @.str.2, i32 noundef %6121, ptr noundef @.str.48, ptr noundef @.str.1, i32 noundef 282, ptr noundef %6124, ptr noundef %6127, ptr noundef %6130, i32 noundef %6132) #11
  br label %6151

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

6151:                                             ; preds = %6134, %6117
  call void @llvm.lifetime.end.p0(i64 4, ptr %166) #11
  br label %6152

6152:                                             ; preds = %6151
  br label %6153

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

6154:                                             ; No predecessors!
  br label %6155

6155:                                             ; preds = %6154
  br label %6156

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

6157:                                             ; preds = %6156
  br label %6158

6158:                                             ; preds = %6157
  br label %6159

6159:                                             ; preds = %6158
  %6160 = load i32, ptr @test_count, align 4, !tbaa !5
  %6161 = add nsw i32 %6160, 1
  store i32 %6161, ptr @test_count, align 4, !tbaa !5
  %6162 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext 0)
  br i1 %6162, label %6163, label %6216

6163:                                             ; preds = %6159
  br label %6164

6164:                                             ; preds = %6163
  br label %6165

6165:                                             ; preds = %6164
  call void @llvm.lifetime.start.p0(i64 4, ptr %167) #11
  %6166 = call ptr @__errno_location() #12
  %6167 = load i32, ptr %6166, align 4, !tbaa !5
  store i32 %6167, ptr %167, align 4, !tbaa !5
  %6168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6169 = call i32 @s2n_print_stacktrace(ptr noundef %6168)
  %6170 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6171 = trunc i8 %6170 to i1
  br i1 %6171, label %6172, label %6194

6172:                                             ; preds = %6165
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = call i32 @fileno(ptr noundef %6173) #11
  %6175 = call i32 @isatty(i32 noundef %6174) #11
  %6176 = icmp ne i32 %6175, 0
  br i1 %6176, label %6177, label %6194

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

6194:                                             ; preds = %6172, %6165
  %6195 = load i32, ptr %167, align 4, !tbaa !5
  %6196 = call ptr @__errno_location() #12
  store i32 %6195, ptr %6196, align 4, !tbaa !5
  %6197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6198 = load i32, ptr @test_count, align 4, !tbaa !5
  %6199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6200 = load i32, ptr %6199, align 4, !tbaa !5
  %6201 = call ptr @s2n_strerror(i32 noundef %6200, ptr noundef @.str.4)
  %6202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6203 = load i32, ptr %6202, align 4, !tbaa !5
  %6204 = call ptr @s2n_strerror_debug(i32 noundef %6203, ptr noundef @.str.4)
  %6205 = call ptr @__errno_location() #12
  %6206 = load i32, ptr %6205, align 4, !tbaa !5
  %6207 = call ptr @strerror(i32 noundef %6206) #11
  %6208 = call ptr @__errno_location() #12
  %6209 = load i32, ptr %6208, align 4, !tbaa !5
  %6210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6197, ptr noundef @.str.5, i32 noundef %6198, ptr noundef @.str.49, ptr noundef @.str.1, i32 noundef 283, ptr noundef %6201, ptr noundef %6204, ptr noundef %6207, i32 noundef %6209) #11
  br label %6211

6211:                                             ; preds = %6194, %6177
  call void @llvm.lifetime.end.p0(i64 4, ptr %167) #11
  br label %6212

6212:                                             ; preds = %6211
  br label %6213

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

6214:                                             ; No predecessors!
  br label %6215

6215:                                             ; preds = %6214
  br label %6216

6216:                                             ; preds = %6215, %6159
  br label %6217

6217:                                             ; preds = %6216
  br label %6218

6218:                                             ; preds = %6217
  br label %6219

6219:                                             ; preds = %6218
  %6220 = load i32, ptr @test_count, align 4, !tbaa !5
  %6221 = add nsw i32 %6220, 1
  store i32 %6221, ptr @test_count, align 4, !tbaa !5
  %6222 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext 1)
  br i1 %6222, label %6223, label %6276

6223:                                             ; preds = %6219
  br label %6224

6224:                                             ; preds = %6223
  br label %6225

6225:                                             ; preds = %6224
  call void @llvm.lifetime.start.p0(i64 4, ptr %168) #11
  %6226 = call ptr @__errno_location() #12
  %6227 = load i32, ptr %6226, align 4, !tbaa !5
  store i32 %6227, ptr %168, align 4, !tbaa !5
  %6228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6229 = call i32 @s2n_print_stacktrace(ptr noundef %6228)
  %6230 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6231 = trunc i8 %6230 to i1
  br i1 %6231, label %6232, label %6254

6232:                                             ; preds = %6225
  %6233 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6234 = call i32 @fileno(ptr noundef %6233) #11
  %6235 = call i32 @isatty(i32 noundef %6234) #11
  %6236 = icmp ne i32 %6235, 0
  br i1 %6236, label %6237, label %6254

6237:                                             ; preds = %6232
  %6238 = load i32, ptr %168, align 4, !tbaa !5
  %6239 = call ptr @__errno_location() #12
  store i32 %6238, ptr %6239, align 4, !tbaa !5
  %6240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6241 = load i32, ptr @test_count, align 4, !tbaa !5
  %6242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6243 = load i32, ptr %6242, align 4, !tbaa !5
  %6244 = call ptr @s2n_strerror(i32 noundef %6243, ptr noundef @.str.4)
  %6245 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6246 = load i32, ptr %6245, align 4, !tbaa !5
  %6247 = call ptr @s2n_strerror_debug(i32 noundef %6246, ptr noundef @.str.4)
  %6248 = call ptr @__errno_location() #12
  %6249 = load i32, ptr %6248, align 4, !tbaa !5
  %6250 = call ptr @strerror(i32 noundef %6249) #11
  %6251 = call ptr @__errno_location() #12
  %6252 = load i32, ptr %6251, align 4, !tbaa !5
  %6253 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6240, ptr noundef @.str.2, i32 noundef %6241, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6244, ptr noundef %6247, ptr noundef %6250, i32 noundef %6252) #11
  br label %6271

6254:                                             ; preds = %6232, %6225
  %6255 = load i32, ptr %168, align 4, !tbaa !5
  %6256 = call ptr @__errno_location() #12
  store i32 %6255, ptr %6256, align 4, !tbaa !5
  %6257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6258 = load i32, ptr @test_count, align 4, !tbaa !5
  %6259 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6260 = load i32, ptr %6259, align 4, !tbaa !5
  %6261 = call ptr @s2n_strerror(i32 noundef %6260, ptr noundef @.str.4)
  %6262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6263 = load i32, ptr %6262, align 4, !tbaa !5
  %6264 = call ptr @s2n_strerror_debug(i32 noundef %6263, ptr noundef @.str.4)
  %6265 = call ptr @__errno_location() #12
  %6266 = load i32, ptr %6265, align 4, !tbaa !5
  %6267 = call ptr @strerror(i32 noundef %6266) #11
  %6268 = call ptr @__errno_location() #12
  %6269 = load i32, ptr %6268, align 4, !tbaa !5
  %6270 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6257, ptr noundef @.str.5, i32 noundef %6258, ptr noundef @.str.50, ptr noundef @.str.1, i32 noundef 284, ptr noundef %6261, ptr noundef %6264, ptr noundef %6267, i32 noundef %6269) #11
  br label %6271

6271:                                             ; preds = %6254, %6237
  call void @llvm.lifetime.end.p0(i64 4, ptr %168) #11
  br label %6272

6272:                                             ; preds = %6271
  br label %6273

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

6274:                                             ; No predecessors!
  br label %6275

6275:                                             ; preds = %6274
  br label %6276

6276:                                             ; preds = %6275, %6219
  br label %6277

6277:                                             ; preds = %6276
  br label %6278

6278:                                             ; preds = %6277
  br label %6279

6279:                                             ; preds = %6278
  br label %6280

6280:                                             ; preds = %6279
  br label %6281

6281:                                             ; preds = %6280
  %6282 = load i32, ptr @test_count, align 4, !tbaa !5
  %6283 = add nsw i32 %6282, 1
  store i32 %6283, ptr @test_count, align 4, !tbaa !5
  %6284 = call ptr @s2n_fingerprint_new(i32 noundef -1)
  %6285 = icmp eq ptr %6284, null
  br i1 %6285, label %6339, label %6286

6286:                                             ; preds = %6281
  br label %6287

6287:                                             ; preds = %6286
  br label %6288

6288:                                             ; preds = %6287
  call void @llvm.lifetime.start.p0(i64 4, ptr %169) #11
  %6289 = call ptr @__errno_location() #12
  %6290 = load i32, ptr %6289, align 4, !tbaa !5
  store i32 %6290, ptr %169, align 4, !tbaa !5
  %6291 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6292 = call i32 @s2n_print_stacktrace(ptr noundef %6291)
  %6293 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6294 = trunc i8 %6293 to i1
  br i1 %6294, label %6295, label %6317

6295:                                             ; preds = %6288
  %6296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6297 = call i32 @fileno(ptr noundef %6296) #11
  %6298 = call i32 @isatty(i32 noundef %6297) #11
  %6299 = icmp ne i32 %6298, 0
  br i1 %6299, label %6300, label %6317

6300:                                             ; preds = %6295
  %6301 = load i32, ptr %169, align 4, !tbaa !5
  %6302 = call ptr @__errno_location() #12
  store i32 %6301, ptr %6302, align 4, !tbaa !5
  %6303 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6304 = load i32, ptr @test_count, align 4, !tbaa !5
  %6305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6306 = load i32, ptr %6305, align 4, !tbaa !5
  %6307 = call ptr @s2n_strerror(i32 noundef %6306, ptr noundef @.str.4)
  %6308 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6309 = load i32, ptr %6308, align 4, !tbaa !5
  %6310 = call ptr @s2n_strerror_debug(i32 noundef %6309, ptr noundef @.str.4)
  %6311 = call ptr @__errno_location() #12
  %6312 = load i32, ptr %6311, align 4, !tbaa !5
  %6313 = call ptr @strerror(i32 noundef %6312) #11
  %6314 = call ptr @__errno_location() #12
  %6315 = load i32, ptr %6314, align 4, !tbaa !5
  %6316 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6303, ptr noundef @.str.2, i32 noundef %6304, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6307, ptr noundef %6310, ptr noundef %6313, i32 noundef %6315) #11
  br label %6334

6317:                                             ; preds = %6295, %6288
  %6318 = load i32, ptr %169, align 4, !tbaa !5
  %6319 = call ptr @__errno_location() #12
  store i32 %6318, ptr %6319, align 4, !tbaa !5
  %6320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6321 = load i32, ptr @test_count, align 4, !tbaa !5
  %6322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6323 = load i32, ptr %6322, align 4, !tbaa !5
  %6324 = call ptr @s2n_strerror(i32 noundef %6323, ptr noundef @.str.4)
  %6325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6326 = load i32, ptr %6325, align 4, !tbaa !5
  %6327 = call ptr @s2n_strerror_debug(i32 noundef %6326, ptr noundef @.str.4)
  %6328 = call ptr @__errno_location() #12
  %6329 = load i32, ptr %6328, align 4, !tbaa !5
  %6330 = call ptr @strerror(i32 noundef %6329) #11
  %6331 = call ptr @__errno_location() #12
  %6332 = load i32, ptr %6331, align 4, !tbaa !5
  %6333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6320, ptr noundef @.str.5, i32 noundef %6321, ptr noundef @.str.51, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6324, ptr noundef %6327, ptr noundef %6330, i32 noundef %6332) #11
  br label %6334

6334:                                             ; preds = %6317, %6300
  call void @llvm.lifetime.end.p0(i64 4, ptr %169) #11
  br label %6335

6335:                                             ; preds = %6334
  br label %6336

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

6337:                                             ; No predecessors!
  br label %6338

6338:                                             ; preds = %6337
  br label %6339

6339:                                             ; preds = %6338, %6281
  br label %6340

6340:                                             ; preds = %6339
  br label %6341

6341:                                             ; preds = %6340
  br label %6342

6342:                                             ; preds = %6341
  %6343 = load i32, ptr @test_count, align 4, !tbaa !5
  %6344 = add nsw i32 %6343, 1
  store i32 %6344, ptr @test_count, align 4, !tbaa !5
  %6345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6346 = load i32, ptr %6345, align 4, !tbaa !5
  %6347 = icmp eq i32 %6346, 469762089
  br i1 %6347, label %6401, label %6348

6348:                                             ; preds = %6342
  br label %6349

6349:                                             ; preds = %6348
  br label %6350

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

6357:                                             ; preds = %6350
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = call i32 @fileno(ptr noundef %6358) #11
  %6360 = call i32 @isatty(i32 noundef %6359) #11
  %6361 = icmp ne i32 %6360, 0
  br i1 %6361, label %6362, label %6379

6362:                                             ; preds = %6357
  %6363 = load i32, ptr %170, align 4, !tbaa !5
  %6364 = call ptr @__errno_location() #12
  store i32 %6363, ptr %6364, align 4, !tbaa !5
  %6365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6366 = load i32, ptr @test_count, align 4, !tbaa !5
  %6367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6368 = load i32, ptr %6367, align 4, !tbaa !5
  %6369 = call ptr @s2n_strerror(i32 noundef %6368, ptr noundef @.str.4)
  %6370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6371 = load i32, ptr %6370, align 4, !tbaa !5
  %6372 = call ptr @s2n_strerror_debug(i32 noundef %6371, ptr noundef @.str.4)
  %6373 = call ptr @__errno_location() #12
  %6374 = load i32, ptr %6373, align 4, !tbaa !5
  %6375 = call ptr @strerror(i32 noundef %6374) #11
  %6376 = call ptr @__errno_location() #12
  %6377 = load i32, ptr %6376, align 4, !tbaa !5
  %6378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6365, ptr noundef @.str.2, i32 noundef %6366, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6369, ptr noundef %6372, ptr noundef %6375, i32 noundef %6377) #11
  br label %6396

6379:                                             ; preds = %6357, %6350
  %6380 = load i32, ptr %170, align 4, !tbaa !5
  %6381 = call ptr @__errno_location() #12
  store i32 %6380, ptr %6381, align 4, !tbaa !5
  %6382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6383 = load i32, ptr @test_count, align 4, !tbaa !5
  %6384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6385 = load i32, ptr %6384, align 4, !tbaa !5
  %6386 = call ptr @s2n_strerror(i32 noundef %6385, ptr noundef @.str.4)
  %6387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6388 = load i32, ptr %6387, align 4, !tbaa !5
  %6389 = call ptr @s2n_strerror_debug(i32 noundef %6388, ptr noundef @.str.4)
  %6390 = call ptr @__errno_location() #12
  %6391 = load i32, ptr %6390, align 4, !tbaa !5
  %6392 = call ptr @strerror(i32 noundef %6391) #11
  %6393 = call ptr @__errno_location() #12
  %6394 = load i32, ptr %6393, align 4, !tbaa !5
  %6395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6382, ptr noundef @.str.5, i32 noundef %6383, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6386, ptr noundef %6389, ptr noundef %6392, i32 noundef %6394) #11
  br label %6396

6396:                                             ; preds = %6379, %6362
  call void @llvm.lifetime.end.p0(i64 4, ptr %170) #11
  br label %6397

6397:                                             ; preds = %6396
  br label %6398

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

6399:                                             ; No predecessors!
  br label %6400

6400:                                             ; preds = %6399
  br label %6401

6401:                                             ; preds = %6400, %6342
  br label %6402

6402:                                             ; preds = %6401
  br label %6403

6403:                                             ; preds = %6402
  br label %6404

6404:                                             ; preds = %6403
  %6405 = load i32, ptr @test_count, align 4, !tbaa !5
  %6406 = add nsw i32 %6405, 1
  store i32 %6406, ptr @test_count, align 4, !tbaa !5
  %6407 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6408 = load i32, ptr %6407, align 4, !tbaa !5
  %6409 = call ptr @s2n_strerror_debug(i32 noundef %6408, ptr noundef @.str.4)
  %6410 = icmp eq ptr %6409, null
  br i1 %6410, label %6411, label %6464

6411:                                             ; preds = %6404
  br label %6412

6412:                                             ; preds = %6411
  br label %6413

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

6420:                                             ; preds = %6413
  %6421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6422 = call i32 @fileno(ptr noundef %6421) #11
  %6423 = call i32 @isatty(i32 noundef %6422) #11
  %6424 = icmp ne i32 %6423, 0
  br i1 %6424, label %6425, label %6442

6425:                                             ; preds = %6420
  %6426 = load i32, ptr %171, align 4, !tbaa !5
  %6427 = call ptr @__errno_location() #12
  store i32 %6426, ptr %6427, align 4, !tbaa !5
  %6428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6429 = load i32, ptr @test_count, align 4, !tbaa !5
  %6430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6431 = load i32, ptr %6430, align 4, !tbaa !5
  %6432 = call ptr @s2n_strerror(i32 noundef %6431, ptr noundef @.str.4)
  %6433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6434 = load i32, ptr %6433, align 4, !tbaa !5
  %6435 = call ptr @s2n_strerror_debug(i32 noundef %6434, ptr noundef @.str.4)
  %6436 = call ptr @__errno_location() #12
  %6437 = load i32, ptr %6436, align 4, !tbaa !5
  %6438 = call ptr @strerror(i32 noundef %6437) #11
  %6439 = call ptr @__errno_location() #12
  %6440 = load i32, ptr %6439, align 4, !tbaa !5
  %6441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6428, ptr noundef @.str.2, i32 noundef %6429, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6432, ptr noundef %6435, ptr noundef %6438, i32 noundef %6440) #11
  br label %6459

6442:                                             ; preds = %6420, %6413
  %6443 = load i32, ptr %171, align 4, !tbaa !5
  %6444 = call ptr @__errno_location() #12
  store i32 %6443, ptr %6444, align 4, !tbaa !5
  %6445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6446 = load i32, ptr @test_count, align 4, !tbaa !5
  %6447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6448 = load i32, ptr %6447, align 4, !tbaa !5
  %6449 = call ptr @s2n_strerror(i32 noundef %6448, ptr noundef @.str.4)
  %6450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6451 = load i32, ptr %6450, align 4, !tbaa !5
  %6452 = call ptr @s2n_strerror_debug(i32 noundef %6451, ptr noundef @.str.4)
  %6453 = call ptr @__errno_location() #12
  %6454 = load i32, ptr %6453, align 4, !tbaa !5
  %6455 = call ptr @strerror(i32 noundef %6454) #11
  %6456 = call ptr @__errno_location() #12
  %6457 = load i32, ptr %6456, align 4, !tbaa !5
  %6458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6445, ptr noundef @.str.5, i32 noundef %6446, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 290, ptr noundef %6449, ptr noundef %6452, ptr noundef %6455, i32 noundef %6457) #11
  br label %6459

6459:                                             ; preds = %6442, %6425
  call void @llvm.lifetime.end.p0(i64 4, ptr %171) #11
  br label %6460

6460:                                             ; preds = %6459
  br label %6461

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

6462:                                             ; No predecessors!
  br label %6463

6463:                                             ; preds = %6462
  br label %6464

6464:                                             ; preds = %6463, %6404
  br label %6465

6465:                                             ; preds = %6464
  br label %6466

6466:                                             ; preds = %6465
  br label %6467

6467:                                             ; preds = %6466
  br label %6468

6468:                                             ; preds = %6467
  br label %6469

6469:                                             ; preds = %6468
  %6470 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %6470, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %6471 = call ptr @__errno_location() #12
  store i32 0, ptr %6471, align 4, !tbaa !5
  br label %6472

6472:                                             ; preds = %6469
  br label %6473

6473:                                             ; preds = %6472
  br label %6474

6474:                                             ; preds = %6473
  br label %6475

6475:                                             ; preds = %6474
  br label %6476

6476:                                             ; preds = %6475
  %6477 = load i32, ptr @test_count, align 4, !tbaa !5
  %6478 = add nsw i32 %6477, 1
  store i32 %6478, ptr @test_count, align 4, !tbaa !5
  %6479 = call i32 @s2n_fingerprint_free(ptr noundef null)
  %6480 = icmp eq i32 %6479, -1
  br i1 %6480, label %6481, label %6534

6481:                                             ; preds = %6476
  br label %6482

6482:                                             ; preds = %6481
  br label %6483

6483:                                             ; preds = %6482
  call void @llvm.lifetime.start.p0(i64 4, ptr %172) #11
  %6484 = call ptr @__errno_location() #12
  %6485 = load i32, ptr %6484, align 4, !tbaa !5
  store i32 %6485, ptr %172, align 4, !tbaa !5
  %6486 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6487 = call i32 @s2n_print_stacktrace(ptr noundef %6486)
  %6488 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6489 = trunc i8 %6488 to i1
  br i1 %6489, label %6490, label %6512

6490:                                             ; preds = %6483
  %6491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6492 = call i32 @fileno(ptr noundef %6491) #11
  %6493 = call i32 @isatty(i32 noundef %6492) #11
  %6494 = icmp ne i32 %6493, 0
  br i1 %6494, label %6495, label %6512

6495:                                             ; preds = %6490
  %6496 = load i32, ptr %172, align 4, !tbaa !5
  %6497 = call ptr @__errno_location() #12
  store i32 %6496, ptr %6497, align 4, !tbaa !5
  %6498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6499 = load i32, ptr @test_count, align 4, !tbaa !5
  %6500 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6501 = load i32, ptr %6500, align 4, !tbaa !5
  %6502 = call ptr @s2n_strerror(i32 noundef %6501, ptr noundef @.str.4)
  %6503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6504 = load i32, ptr %6503, align 4, !tbaa !5
  %6505 = call ptr @s2n_strerror_debug(i32 noundef %6504, ptr noundef @.str.4)
  %6506 = call ptr @__errno_location() #12
  %6507 = load i32, ptr %6506, align 4, !tbaa !5
  %6508 = call ptr @strerror(i32 noundef %6507) #11
  %6509 = call ptr @__errno_location() #12
  %6510 = load i32, ptr %6509, align 4, !tbaa !5
  %6511 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6498, ptr noundef @.str.2, i32 noundef %6499, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6502, ptr noundef %6505, ptr noundef %6508, i32 noundef %6510) #11
  br label %6529

6512:                                             ; preds = %6490, %6483
  %6513 = load i32, ptr %172, align 4, !tbaa !5
  %6514 = call ptr @__errno_location() #12
  store i32 %6513, ptr %6514, align 4, !tbaa !5
  %6515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6516 = load i32, ptr @test_count, align 4, !tbaa !5
  %6517 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6518 = load i32, ptr %6517, align 4, !tbaa !5
  %6519 = call ptr @s2n_strerror(i32 noundef %6518, ptr noundef @.str.4)
  %6520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6521 = load i32, ptr %6520, align 4, !tbaa !5
  %6522 = call ptr @s2n_strerror_debug(i32 noundef %6521, ptr noundef @.str.4)
  %6523 = call ptr @__errno_location() #12
  %6524 = load i32, ptr %6523, align 4, !tbaa !5
  %6525 = call ptr @strerror(i32 noundef %6524) #11
  %6526 = call ptr @__errno_location() #12
  %6527 = load i32, ptr %6526, align 4, !tbaa !5
  %6528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6515, ptr noundef @.str.5, i32 noundef %6516, ptr noundef @.str.53, ptr noundef @.str.1, i32 noundef 293, ptr noundef %6519, ptr noundef %6522, ptr noundef %6525, i32 noundef %6527) #11
  br label %6529

6529:                                             ; preds = %6512, %6495
  call void @llvm.lifetime.end.p0(i64 4, ptr %172) #11
  br label %6530

6530:                                             ; preds = %6529
  br label %6531

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

6532:                                             ; No predecessors!
  br label %6533

6533:                                             ; preds = %6532
  br label %6534

6534:                                             ; preds = %6533, %6476
  br label %6535

6535:                                             ; preds = %6534
  br label %6536

6536:                                             ; preds = %6535
  call void @llvm.lifetime.start.p0(i64 8, ptr %173) #11
  %6537 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %6537, ptr %173, align 8, !tbaa !9
  br label %6538

6538:                                             ; preds = %6536
  %6539 = load i32, ptr @test_count, align 4, !tbaa !5
  %6540 = add nsw i32 %6539, 1
  store i32 %6540, ptr @test_count, align 4, !tbaa !5
  %6541 = load ptr, ptr %173, align 8, !tbaa !9
  %6542 = icmp eq ptr %6541, null
  br i1 %6542, label %6543, label %6596

6543:                                             ; preds = %6538
  br label %6544

6544:                                             ; preds = %6543
  br label %6545

6545:                                             ; preds = %6544
  call void @llvm.lifetime.start.p0(i64 4, ptr %174) #11
  %6546 = call ptr @__errno_location() #12
  %6547 = load i32, ptr %6546, align 4, !tbaa !5
  store i32 %6547, ptr %174, align 4, !tbaa !5
  %6548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6549 = call i32 @s2n_print_stacktrace(ptr noundef %6548)
  %6550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6551 = trunc i8 %6550 to i1
  br i1 %6551, label %6552, label %6574

6552:                                             ; preds = %6545
  %6553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6554 = call i32 @fileno(ptr noundef %6553) #11
  %6555 = call i32 @isatty(i32 noundef %6554) #11
  %6556 = icmp ne i32 %6555, 0
  br i1 %6556, label %6557, label %6574

6557:                                             ; preds = %6552
  %6558 = load i32, ptr %174, align 4, !tbaa !5
  %6559 = call ptr @__errno_location() #12
  store i32 %6558, ptr %6559, align 4, !tbaa !5
  %6560 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6561 = load i32, ptr @test_count, align 4, !tbaa !5
  %6562 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6563 = load i32, ptr %6562, align 4, !tbaa !5
  %6564 = call ptr @s2n_strerror(i32 noundef %6563, ptr noundef @.str.4)
  %6565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6566 = load i32, ptr %6565, align 4, !tbaa !5
  %6567 = call ptr @s2n_strerror_debug(i32 noundef %6566, ptr noundef @.str.4)
  %6568 = call ptr @__errno_location() #12
  %6569 = load i32, ptr %6568, align 4, !tbaa !5
  %6570 = call ptr @strerror(i32 noundef %6569) #11
  %6571 = call ptr @__errno_location() #12
  %6572 = load i32, ptr %6571, align 4, !tbaa !5
  %6573 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6560, ptr noundef @.str.2, i32 noundef %6561, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6564, ptr noundef %6567, ptr noundef %6570, i32 noundef %6572) #11
  br label %6591

6574:                                             ; preds = %6552, %6545
  %6575 = load i32, ptr %174, align 4, !tbaa !5
  %6576 = call ptr @__errno_location() #12
  store i32 %6575, ptr %6576, align 4, !tbaa !5
  %6577 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6578 = load i32, ptr @test_count, align 4, !tbaa !5
  %6579 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6580 = load i32, ptr %6579, align 4, !tbaa !5
  %6581 = call ptr @s2n_strerror(i32 noundef %6580, ptr noundef @.str.4)
  %6582 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6583 = load i32, ptr %6582, align 4, !tbaa !5
  %6584 = call ptr @s2n_strerror_debug(i32 noundef %6583, ptr noundef @.str.4)
  %6585 = call ptr @__errno_location() #12
  %6586 = load i32, ptr %6585, align 4, !tbaa !5
  %6587 = call ptr @strerror(i32 noundef %6586) #11
  %6588 = call ptr @__errno_location() #12
  %6589 = load i32, ptr %6588, align 4, !tbaa !5
  %6590 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6577, ptr noundef @.str.5, i32 noundef %6578, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 297, ptr noundef %6581, ptr noundef %6584, ptr noundef %6587, i32 noundef %6589) #11
  br label %6591

6591:                                             ; preds = %6574, %6557
  call void @llvm.lifetime.end.p0(i64 4, ptr %174) #11
  br label %6592

6592:                                             ; preds = %6591
  br label %6593

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

6594:                                             ; No predecessors!
  br label %6595

6595:                                             ; preds = %6594
  br label %6596

6596:                                             ; preds = %6595, %6538
  br label %6597

6597:                                             ; preds = %6596
  br label %6598

6598:                                             ; preds = %6597
  br label %6599

6599:                                             ; preds = %6598
  %6600 = load i32, ptr @test_count, align 4, !tbaa !5
  %6601 = add nsw i32 %6600, 1
  store i32 %6601, ptr @test_count, align 4, !tbaa !5
  %6602 = load ptr, ptr %173, align 8, !tbaa !9
  %6603 = getelementptr inbounds %struct.s2n_fingerprint, ptr %6602, i32 0, i32 1
  %6604 = load ptr, ptr %6603, align 8, !tbaa !36
  %6605 = icmp eq ptr %6604, @ja3_fingerprint
  br i1 %6605, label %6659, label %6606

6606:                                             ; preds = %6599
  br label %6607

6607:                                             ; preds = %6606
  br label %6608

6608:                                             ; preds = %6607
  call void @llvm.lifetime.start.p0(i64 4, ptr %175) #11
  %6609 = call ptr @__errno_location() #12
  %6610 = load i32, ptr %6609, align 4, !tbaa !5
  store i32 %6610, ptr %175, align 4, !tbaa !5
  %6611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6612 = call i32 @s2n_print_stacktrace(ptr noundef %6611)
  %6613 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6614 = trunc i8 %6613 to i1
  br i1 %6614, label %6615, label %6637

6615:                                             ; preds = %6608
  %6616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6617 = call i32 @fileno(ptr noundef %6616) #11
  %6618 = call i32 @isatty(i32 noundef %6617) #11
  %6619 = icmp ne i32 %6618, 0
  br i1 %6619, label %6620, label %6637

6620:                                             ; preds = %6615
  %6621 = load i32, ptr %175, align 4, !tbaa !5
  %6622 = call ptr @__errno_location() #12
  store i32 %6621, ptr %6622, align 4, !tbaa !5
  %6623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6624 = load i32, ptr @test_count, align 4, !tbaa !5
  %6625 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6626 = load i32, ptr %6625, align 4, !tbaa !5
  %6627 = call ptr @s2n_strerror(i32 noundef %6626, ptr noundef @.str.4)
  %6628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6629 = load i32, ptr %6628, align 4, !tbaa !5
  %6630 = call ptr @s2n_strerror_debug(i32 noundef %6629, ptr noundef @.str.4)
  %6631 = call ptr @__errno_location() #12
  %6632 = load i32, ptr %6631, align 4, !tbaa !5
  %6633 = call ptr @strerror(i32 noundef %6632) #11
  %6634 = call ptr @__errno_location() #12
  %6635 = load i32, ptr %6634, align 4, !tbaa !5
  %6636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6623, ptr noundef @.str.2, i32 noundef %6624, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6627, ptr noundef %6630, ptr noundef %6633, i32 noundef %6635) #11
  br label %6654

6637:                                             ; preds = %6615, %6608
  %6638 = load i32, ptr %175, align 4, !tbaa !5
  %6639 = call ptr @__errno_location() #12
  store i32 %6638, ptr %6639, align 4, !tbaa !5
  %6640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6641 = load i32, ptr @test_count, align 4, !tbaa !5
  %6642 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6643 = load i32, ptr %6642, align 4, !tbaa !5
  %6644 = call ptr @s2n_strerror(i32 noundef %6643, ptr noundef @.str.4)
  %6645 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6646 = load i32, ptr %6645, align 4, !tbaa !5
  %6647 = call ptr @s2n_strerror_debug(i32 noundef %6646, ptr noundef @.str.4)
  %6648 = call ptr @__errno_location() #12
  %6649 = load i32, ptr %6648, align 4, !tbaa !5
  %6650 = call ptr @strerror(i32 noundef %6649) #11
  %6651 = call ptr @__errno_location() #12
  %6652 = load i32, ptr %6651, align 4, !tbaa !5
  %6653 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6640, ptr noundef @.str.5, i32 noundef %6641, ptr noundef @.str.55, ptr noundef @.str.1, i32 noundef 298, ptr noundef %6644, ptr noundef %6647, ptr noundef %6650, i32 noundef %6652) #11
  br label %6654

6654:                                             ; preds = %6637, %6620
  call void @llvm.lifetime.end.p0(i64 4, ptr %175) #11
  br label %6655

6655:                                             ; preds = %6654
  br label %6656

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

6657:                                             ; No predecessors!
  br label %6658

6658:                                             ; preds = %6657
  br label %6659

6659:                                             ; preds = %6658, %6599
  br label %6660

6660:                                             ; preds = %6659
  br label %6661

6661:                                             ; preds = %6660
  br label %6662

6662:                                             ; preds = %6661
  %6663 = load i32, ptr @test_count, align 4, !tbaa !5
  %6664 = add nsw i32 %6663, 1
  store i32 %6664, ptr @test_count, align 4, !tbaa !5
  %6665 = load ptr, ptr %173, align 8, !tbaa !9
  %6666 = getelementptr inbounds %struct.s2n_fingerprint, ptr %6665, i32 0, i32 3
  %6667 = call i32 @s2n_hash_is_ready_for_input(ptr noundef %6666)
  %6668 = icmp ne i32 %6667, 0
  br i1 %6668, label %6722, label %6669

6669:                                             ; preds = %6662
  br label %6670

6670:                                             ; preds = %6669
  br label %6671

6671:                                             ; preds = %6670
  call void @llvm.lifetime.start.p0(i64 4, ptr %176) #11
  %6672 = call ptr @__errno_location() #12
  %6673 = load i32, ptr %6672, align 4, !tbaa !5
  store i32 %6673, ptr %176, align 4, !tbaa !5
  %6674 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6675 = call i32 @s2n_print_stacktrace(ptr noundef %6674)
  %6676 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6677 = trunc i8 %6676 to i1
  br i1 %6677, label %6678, label %6700

6678:                                             ; preds = %6671
  %6679 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6680 = call i32 @fileno(ptr noundef %6679) #11
  %6681 = call i32 @isatty(i32 noundef %6680) #11
  %6682 = icmp ne i32 %6681, 0
  br i1 %6682, label %6683, label %6700

6683:                                             ; preds = %6678
  %6684 = load i32, ptr %176, align 4, !tbaa !5
  %6685 = call ptr @__errno_location() #12
  store i32 %6684, ptr %6685, align 4, !tbaa !5
  %6686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6687 = load i32, ptr @test_count, align 4, !tbaa !5
  %6688 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6689 = load i32, ptr %6688, align 4, !tbaa !5
  %6690 = call ptr @s2n_strerror(i32 noundef %6689, ptr noundef @.str.4)
  %6691 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6692 = load i32, ptr %6691, align 4, !tbaa !5
  %6693 = call ptr @s2n_strerror_debug(i32 noundef %6692, ptr noundef @.str.4)
  %6694 = call ptr @__errno_location() #12
  %6695 = load i32, ptr %6694, align 4, !tbaa !5
  %6696 = call ptr @strerror(i32 noundef %6695) #11
  %6697 = call ptr @__errno_location() #12
  %6698 = load i32, ptr %6697, align 4, !tbaa !5
  %6699 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6686, ptr noundef @.str.2, i32 noundef %6687, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6690, ptr noundef %6693, ptr noundef %6696, i32 noundef %6698) #11
  br label %6717

6700:                                             ; preds = %6678, %6671
  %6701 = load i32, ptr %176, align 4, !tbaa !5
  %6702 = call ptr @__errno_location() #12
  store i32 %6701, ptr %6702, align 4, !tbaa !5
  %6703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6704 = load i32, ptr @test_count, align 4, !tbaa !5
  %6705 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6706 = load i32, ptr %6705, align 4, !tbaa !5
  %6707 = call ptr @s2n_strerror(i32 noundef %6706, ptr noundef @.str.4)
  %6708 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6709 = load i32, ptr %6708, align 4, !tbaa !5
  %6710 = call ptr @s2n_strerror_debug(i32 noundef %6709, ptr noundef @.str.4)
  %6711 = call ptr @__errno_location() #12
  %6712 = load i32, ptr %6711, align 4, !tbaa !5
  %6713 = call ptr @strerror(i32 noundef %6712) #11
  %6714 = call ptr @__errno_location() #12
  %6715 = load i32, ptr %6714, align 4, !tbaa !5
  %6716 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6703, ptr noundef @.str.5, i32 noundef %6704, ptr noundef @.str.56, ptr noundef @.str.1, i32 noundef 299, ptr noundef %6707, ptr noundef %6710, ptr noundef %6713, i32 noundef %6715) #11
  br label %6717

6717:                                             ; preds = %6700, %6683
  call void @llvm.lifetime.end.p0(i64 4, ptr %176) #11
  br label %6718

6718:                                             ; preds = %6717
  br label %6719

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

6720:                                             ; No predecessors!
  br label %6721

6721:                                             ; preds = %6720
  br label %6722

6722:                                             ; preds = %6721, %6662
  br label %6723

6723:                                             ; preds = %6722
  br label %6724

6724:                                             ; preds = %6723
  br label %6725

6725:                                             ; preds = %6724
  %6726 = load i32, ptr @test_count, align 4, !tbaa !5
  %6727 = add nsw i32 %6726, 1
  store i32 %6727, ptr @test_count, align 4, !tbaa !5
  %6728 = load ptr, ptr %173, align 8, !tbaa !9
  %6729 = getelementptr inbounds %struct.s2n_fingerprint, ptr %6728, i32 0, i32 2
  %6730 = load ptr, ptr %6729, align 8, !tbaa !38
  %6731 = icmp eq ptr %6730, null
  br i1 %6731, label %6785, label %6732

6732:                                             ; preds = %6725
  br label %6733

6733:                                             ; preds = %6732
  br label %6734

6734:                                             ; preds = %6733
  call void @llvm.lifetime.start.p0(i64 4, ptr %177) #11
  %6735 = call ptr @__errno_location() #12
  %6736 = load i32, ptr %6735, align 4, !tbaa !5
  store i32 %6736, ptr %177, align 4, !tbaa !5
  %6737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6738 = call i32 @s2n_print_stacktrace(ptr noundef %6737)
  %6739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6740 = trunc i8 %6739 to i1
  br i1 %6740, label %6741, label %6763

6741:                                             ; preds = %6734
  %6742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6743 = call i32 @fileno(ptr noundef %6742) #11
  %6744 = call i32 @isatty(i32 noundef %6743) #11
  %6745 = icmp ne i32 %6744, 0
  br i1 %6745, label %6746, label %6763

6746:                                             ; preds = %6741
  %6747 = load i32, ptr %177, align 4, !tbaa !5
  %6748 = call ptr @__errno_location() #12
  store i32 %6747, ptr %6748, align 4, !tbaa !5
  %6749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6750 = load i32, ptr @test_count, align 4, !tbaa !5
  %6751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6752 = load i32, ptr %6751, align 4, !tbaa !5
  %6753 = call ptr @s2n_strerror(i32 noundef %6752, ptr noundef @.str.4)
  %6754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6755 = load i32, ptr %6754, align 4, !tbaa !5
  %6756 = call ptr @s2n_strerror_debug(i32 noundef %6755, ptr noundef @.str.4)
  %6757 = call ptr @__errno_location() #12
  %6758 = load i32, ptr %6757, align 4, !tbaa !5
  %6759 = call ptr @strerror(i32 noundef %6758) #11
  %6760 = call ptr @__errno_location() #12
  %6761 = load i32, ptr %6760, align 4, !tbaa !5
  %6762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6749, ptr noundef @.str.2, i32 noundef %6750, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6753, ptr noundef %6756, ptr noundef %6759, i32 noundef %6761) #11
  br label %6780

6763:                                             ; preds = %6741, %6734
  %6764 = load i32, ptr %177, align 4, !tbaa !5
  %6765 = call ptr @__errno_location() #12
  store i32 %6764, ptr %6765, align 4, !tbaa !5
  %6766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6767 = load i32, ptr @test_count, align 4, !tbaa !5
  %6768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6769 = load i32, ptr %6768, align 4, !tbaa !5
  %6770 = call ptr @s2n_strerror(i32 noundef %6769, ptr noundef @.str.4)
  %6771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6772 = load i32, ptr %6771, align 4, !tbaa !5
  %6773 = call ptr @s2n_strerror_debug(i32 noundef %6772, ptr noundef @.str.4)
  %6774 = call ptr @__errno_location() #12
  %6775 = load i32, ptr %6774, align 4, !tbaa !5
  %6776 = call ptr @strerror(i32 noundef %6775) #11
  %6777 = call ptr @__errno_location() #12
  %6778 = load i32, ptr %6777, align 4, !tbaa !5
  %6779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6766, ptr noundef @.str.5, i32 noundef %6767, ptr noundef @.str.57, ptr noundef @.str.1, i32 noundef 300, ptr noundef %6770, ptr noundef %6773, ptr noundef %6776, i32 noundef %6778) #11
  br label %6780

6780:                                             ; preds = %6763, %6746
  call void @llvm.lifetime.end.p0(i64 4, ptr %177) #11
  br label %6781

6781:                                             ; preds = %6780
  br label %6782

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

6783:                                             ; No predecessors!
  br label %6784

6784:                                             ; preds = %6783
  br label %6785

6785:                                             ; preds = %6784, %6725
  br label %6786

6786:                                             ; preds = %6785
  br label %6787

6787:                                             ; preds = %6786
  br label %6788

6788:                                             ; preds = %6787
  %6789 = load i32, ptr @test_count, align 4, !tbaa !5
  %6790 = add nsw i32 %6789, 1
  store i32 %6790, ptr @test_count, align 4, !tbaa !5
  %6791 = load ptr, ptr %173, align 8, !tbaa !9
  %6792 = getelementptr inbounds %struct.s2n_fingerprint, ptr %6791, i32 0, i32 0
  %6793 = load i64, ptr %6792, align 8, !tbaa !39
  %6794 = icmp eq i64 %6793, 0
  br i1 %6794, label %6848, label %6795

6795:                                             ; preds = %6788
  br label %6796

6796:                                             ; preds = %6795
  br label %6797

6797:                                             ; preds = %6796
  call void @llvm.lifetime.start.p0(i64 4, ptr %178) #11
  %6798 = call ptr @__errno_location() #12
  %6799 = load i32, ptr %6798, align 4, !tbaa !5
  store i32 %6799, ptr %178, align 4, !tbaa !5
  %6800 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6801 = call i32 @s2n_print_stacktrace(ptr noundef %6800)
  %6802 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6803 = trunc i8 %6802 to i1
  br i1 %6803, label %6804, label %6826

6804:                                             ; preds = %6797
  %6805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6806 = call i32 @fileno(ptr noundef %6805) #11
  %6807 = call i32 @isatty(i32 noundef %6806) #11
  %6808 = icmp ne i32 %6807, 0
  br i1 %6808, label %6809, label %6826

6809:                                             ; preds = %6804
  %6810 = load i32, ptr %178, align 4, !tbaa !5
  %6811 = call ptr @__errno_location() #12
  store i32 %6810, ptr %6811, align 4, !tbaa !5
  %6812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6813 = load i32, ptr @test_count, align 4, !tbaa !5
  %6814 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6815 = load i32, ptr %6814, align 4, !tbaa !5
  %6816 = call ptr @s2n_strerror(i32 noundef %6815, ptr noundef @.str.4)
  %6817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6818 = load i32, ptr %6817, align 4, !tbaa !5
  %6819 = call ptr @s2n_strerror_debug(i32 noundef %6818, ptr noundef @.str.4)
  %6820 = call ptr @__errno_location() #12
  %6821 = load i32, ptr %6820, align 4, !tbaa !5
  %6822 = call ptr @strerror(i32 noundef %6821) #11
  %6823 = call ptr @__errno_location() #12
  %6824 = load i32, ptr %6823, align 4, !tbaa !5
  %6825 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6812, ptr noundef @.str.2, i32 noundef %6813, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6816, ptr noundef %6819, ptr noundef %6822, i32 noundef %6824) #11
  br label %6843

6826:                                             ; preds = %6804, %6797
  %6827 = load i32, ptr %178, align 4, !tbaa !5
  %6828 = call ptr @__errno_location() #12
  store i32 %6827, ptr %6828, align 4, !tbaa !5
  %6829 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6830 = load i32, ptr @test_count, align 4, !tbaa !5
  %6831 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6832 = load i32, ptr %6831, align 4, !tbaa !5
  %6833 = call ptr @s2n_strerror(i32 noundef %6832, ptr noundef @.str.4)
  %6834 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6835 = load i32, ptr %6834, align 4, !tbaa !5
  %6836 = call ptr @s2n_strerror_debug(i32 noundef %6835, ptr noundef @.str.4)
  %6837 = call ptr @__errno_location() #12
  %6838 = load i32, ptr %6837, align 4, !tbaa !5
  %6839 = call ptr @strerror(i32 noundef %6838) #11
  %6840 = call ptr @__errno_location() #12
  %6841 = load i32, ptr %6840, align 4, !tbaa !5
  %6842 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6829, ptr noundef @.str.5, i32 noundef %6830, ptr noundef @.str.58, ptr noundef @.str.1, i32 noundef 301, ptr noundef %6833, ptr noundef %6836, ptr noundef %6839, i32 noundef %6841) #11
  br label %6843

6843:                                             ; preds = %6826, %6809
  call void @llvm.lifetime.end.p0(i64 4, ptr %178) #11
  br label %6844

6844:                                             ; preds = %6843
  br label %6845

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

6846:                                             ; No predecessors!
  br label %6847

6847:                                             ; preds = %6846
  br label %6848

6848:                                             ; preds = %6847, %6788
  br label %6849

6849:                                             ; preds = %6848
  br label %6850

6850:                                             ; preds = %6849
  br label %6851

6851:                                             ; preds = %6850
  %6852 = load i32, ptr @test_count, align 4, !tbaa !5
  %6853 = add nsw i32 %6852, 1
  store i32 %6853, ptr @test_count, align 4, !tbaa !5
  %6854 = call i32 @s2n_fingerprint_free(ptr noundef %173)
  %6855 = icmp eq i32 %6854, -1
  br i1 %6855, label %6856, label %6909

6856:                                             ; preds = %6851
  br label %6857

6857:                                             ; preds = %6856
  br label %6858

6858:                                             ; preds = %6857
  call void @llvm.lifetime.start.p0(i64 4, ptr %179) #11
  %6859 = call ptr @__errno_location() #12
  %6860 = load i32, ptr %6859, align 4, !tbaa !5
  store i32 %6860, ptr %179, align 4, !tbaa !5
  %6861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6862 = call i32 @s2n_print_stacktrace(ptr noundef %6861)
  %6863 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6864 = trunc i8 %6863 to i1
  br i1 %6864, label %6865, label %6887

6865:                                             ; preds = %6858
  %6866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6867 = call i32 @fileno(ptr noundef %6866) #11
  %6868 = call i32 @isatty(i32 noundef %6867) #11
  %6869 = icmp ne i32 %6868, 0
  br i1 %6869, label %6870, label %6887

6870:                                             ; preds = %6865
  %6871 = load i32, ptr %179, align 4, !tbaa !5
  %6872 = call ptr @__errno_location() #12
  store i32 %6871, ptr %6872, align 4, !tbaa !5
  %6873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6874 = load i32, ptr @test_count, align 4, !tbaa !5
  %6875 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6876 = load i32, ptr %6875, align 4, !tbaa !5
  %6877 = call ptr @s2n_strerror(i32 noundef %6876, ptr noundef @.str.4)
  %6878 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6879 = load i32, ptr %6878, align 4, !tbaa !5
  %6880 = call ptr @s2n_strerror_debug(i32 noundef %6879, ptr noundef @.str.4)
  %6881 = call ptr @__errno_location() #12
  %6882 = load i32, ptr %6881, align 4, !tbaa !5
  %6883 = call ptr @strerror(i32 noundef %6882) #11
  %6884 = call ptr @__errno_location() #12
  %6885 = load i32, ptr %6884, align 4, !tbaa !5
  %6886 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6873, ptr noundef @.str.2, i32 noundef %6874, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 304, ptr noundef %6877, ptr noundef %6880, ptr noundef %6883, i32 noundef %6885) #11
  br label %6904

6887:                                             ; preds = %6865, %6858
  %6888 = load i32, ptr %179, align 4, !tbaa !5
  %6889 = call ptr @__errno_location() #12
  store i32 %6888, ptr %6889, align 4, !tbaa !5
  %6890 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6891 = load i32, ptr @test_count, align 4, !tbaa !5
  %6892 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6893 = load i32, ptr %6892, align 4, !tbaa !5
  %6894 = call ptr @s2n_strerror(i32 noundef %6893, ptr noundef @.str.4)
  %6895 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6896 = load i32, ptr %6895, align 4, !tbaa !5
  %6897 = call ptr @s2n_strerror_debug(i32 noundef %6896, ptr noundef @.str.4)
  %6898 = call ptr @__errno_location() #12
  %6899 = load i32, ptr %6898, align 4, !tbaa !5
  %6900 = call ptr @strerror(i32 noundef %6899) #11
  %6901 = call ptr @__errno_location() #12
  %6902 = load i32, ptr %6901, align 4, !tbaa !5
  %6903 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6890, ptr noundef @.str.5, i32 noundef %6891, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 304, ptr noundef %6894, ptr noundef %6897, ptr noundef %6900, i32 noundef %6902) #11
  br label %6904

6904:                                             ; preds = %6887, %6870
  call void @llvm.lifetime.end.p0(i64 4, ptr %179) #11
  br label %6905

6905:                                             ; preds = %6904
  br label %6906

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

6907:                                             ; No predecessors!
  br label %6908

6908:                                             ; preds = %6907
  br label %6909

6909:                                             ; preds = %6908, %6851
  br label %6910

6910:                                             ; preds = %6909
  br label %6911

6911:                                             ; preds = %6910
  br label %6912

6912:                                             ; preds = %6911
  %6913 = load i32, ptr @test_count, align 4, !tbaa !5
  %6914 = add nsw i32 %6913, 1
  store i32 %6914, ptr @test_count, align 4, !tbaa !5
  %6915 = load ptr, ptr %173, align 8, !tbaa !9
  %6916 = icmp eq ptr %6915, null
  br i1 %6916, label %6970, label %6917

6917:                                             ; preds = %6912
  br label %6918

6918:                                             ; preds = %6917
  br label %6919

6919:                                             ; preds = %6918
  call void @llvm.lifetime.start.p0(i64 4, ptr %180) #11
  %6920 = call ptr @__errno_location() #12
  %6921 = load i32, ptr %6920, align 4, !tbaa !5
  store i32 %6921, ptr %180, align 4, !tbaa !5
  %6922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6923 = call i32 @s2n_print_stacktrace(ptr noundef %6922)
  %6924 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6925 = trunc i8 %6924 to i1
  br i1 %6925, label %6926, label %6948

6926:                                             ; preds = %6919
  %6927 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6928 = call i32 @fileno(ptr noundef %6927) #11
  %6929 = call i32 @isatty(i32 noundef %6928) #11
  %6930 = icmp ne i32 %6929, 0
  br i1 %6930, label %6931, label %6948

6931:                                             ; preds = %6926
  %6932 = load i32, ptr %180, align 4, !tbaa !5
  %6933 = call ptr @__errno_location() #12
  store i32 %6932, ptr %6933, align 4, !tbaa !5
  %6934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6935 = load i32, ptr @test_count, align 4, !tbaa !5
  %6936 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6937 = load i32, ptr %6936, align 4, !tbaa !5
  %6938 = call ptr @s2n_strerror(i32 noundef %6937, ptr noundef @.str.4)
  %6939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6940 = load i32, ptr %6939, align 4, !tbaa !5
  %6941 = call ptr @s2n_strerror_debug(i32 noundef %6940, ptr noundef @.str.4)
  %6942 = call ptr @__errno_location() #12
  %6943 = load i32, ptr %6942, align 4, !tbaa !5
  %6944 = call ptr @strerror(i32 noundef %6943) #11
  %6945 = call ptr @__errno_location() #12
  %6946 = load i32, ptr %6945, align 4, !tbaa !5
  %6947 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6934, ptr noundef @.str.2, i32 noundef %6935, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6938, ptr noundef %6941, ptr noundef %6944, i32 noundef %6946) #11
  br label %6965

6948:                                             ; preds = %6926, %6919
  %6949 = load i32, ptr %180, align 4, !tbaa !5
  %6950 = call ptr @__errno_location() #12
  store i32 %6949, ptr %6950, align 4, !tbaa !5
  %6951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6952 = load i32, ptr @test_count, align 4, !tbaa !5
  %6953 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6954 = load i32, ptr %6953, align 4, !tbaa !5
  %6955 = call ptr @s2n_strerror(i32 noundef %6954, ptr noundef @.str.4)
  %6956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6957 = load i32, ptr %6956, align 4, !tbaa !5
  %6958 = call ptr @s2n_strerror_debug(i32 noundef %6957, ptr noundef @.str.4)
  %6959 = call ptr @__errno_location() #12
  %6960 = load i32, ptr %6959, align 4, !tbaa !5
  %6961 = call ptr @strerror(i32 noundef %6960) #11
  %6962 = call ptr @__errno_location() #12
  %6963 = load i32, ptr %6962, align 4, !tbaa !5
  %6964 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6951, ptr noundef @.str.5, i32 noundef %6952, ptr noundef @.str.60, ptr noundef @.str.1, i32 noundef 305, ptr noundef %6955, ptr noundef %6958, ptr noundef %6961, i32 noundef %6963) #11
  br label %6965

6965:                                             ; preds = %6948, %6931
  call void @llvm.lifetime.end.p0(i64 4, ptr %180) #11
  br label %6966

6966:                                             ; preds = %6965
  br label %6967

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

6968:                                             ; No predecessors!
  br label %6969

6969:                                             ; preds = %6968
  br label %6970

6970:                                             ; preds = %6969, %6912
  br label %6971

6971:                                             ; preds = %6970
  br label %6972

6972:                                             ; preds = %6971
  br label %6973

6973:                                             ; preds = %6972
  %6974 = load i32, ptr @test_count, align 4, !tbaa !5
  %6975 = add nsw i32 %6974, 1
  store i32 %6975, ptr @test_count, align 4, !tbaa !5
  %6976 = call i32 @s2n_fingerprint_free(ptr noundef %173)
  %6977 = icmp eq i32 %6976, -1
  br i1 %6977, label %6978, label %7031

6978:                                             ; preds = %6973
  br label %6979

6979:                                             ; preds = %6978
  br label %6980

6980:                                             ; preds = %6979
  call void @llvm.lifetime.start.p0(i64 4, ptr %181) #11
  %6981 = call ptr @__errno_location() #12
  %6982 = load i32, ptr %6981, align 4, !tbaa !5
  store i32 %6982, ptr %181, align 4, !tbaa !5
  %6983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6984 = call i32 @s2n_print_stacktrace(ptr noundef %6983)
  %6985 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6986 = trunc i8 %6985 to i1
  br i1 %6986, label %6987, label %7009

6987:                                             ; preds = %6980
  %6988 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6989 = call i32 @fileno(ptr noundef %6988) #11
  %6990 = call i32 @isatty(i32 noundef %6989) #11
  %6991 = icmp ne i32 %6990, 0
  br i1 %6991, label %6992, label %7009

6992:                                             ; preds = %6987
  %6993 = load i32, ptr %181, align 4, !tbaa !5
  %6994 = call ptr @__errno_location() #12
  store i32 %6993, ptr %6994, align 4, !tbaa !5
  %6995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6996 = load i32, ptr @test_count, align 4, !tbaa !5
  %6997 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %6998 = load i32, ptr %6997, align 4, !tbaa !5
  %6999 = call ptr @s2n_strerror(i32 noundef %6998, ptr noundef @.str.4)
  %7000 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7001 = load i32, ptr %7000, align 4, !tbaa !5
  %7002 = call ptr @s2n_strerror_debug(i32 noundef %7001, ptr noundef @.str.4)
  %7003 = call ptr @__errno_location() #12
  %7004 = load i32, ptr %7003, align 4, !tbaa !5
  %7005 = call ptr @strerror(i32 noundef %7004) #11
  %7006 = call ptr @__errno_location() #12
  %7007 = load i32, ptr %7006, align 4, !tbaa !5
  %7008 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6995, ptr noundef @.str.2, i32 noundef %6996, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 308, ptr noundef %6999, ptr noundef %7002, ptr noundef %7005, i32 noundef %7007) #11
  br label %7026

7009:                                             ; preds = %6987, %6980
  %7010 = load i32, ptr %181, align 4, !tbaa !5
  %7011 = call ptr @__errno_location() #12
  store i32 %7010, ptr %7011, align 4, !tbaa !5
  %7012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7013 = load i32, ptr @test_count, align 4, !tbaa !5
  %7014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7015 = load i32, ptr %7014, align 4, !tbaa !5
  %7016 = call ptr @s2n_strerror(i32 noundef %7015, ptr noundef @.str.4)
  %7017 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7018 = load i32, ptr %7017, align 4, !tbaa !5
  %7019 = call ptr @s2n_strerror_debug(i32 noundef %7018, ptr noundef @.str.4)
  %7020 = call ptr @__errno_location() #12
  %7021 = load i32, ptr %7020, align 4, !tbaa !5
  %7022 = call ptr @strerror(i32 noundef %7021) #11
  %7023 = call ptr @__errno_location() #12
  %7024 = load i32, ptr %7023, align 4, !tbaa !5
  %7025 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7012, ptr noundef @.str.5, i32 noundef %7013, ptr noundef @.str.59, ptr noundef @.str.1, i32 noundef 308, ptr noundef %7016, ptr noundef %7019, ptr noundef %7022, i32 noundef %7024) #11
  br label %7026

7026:                                             ; preds = %7009, %6992
  call void @llvm.lifetime.end.p0(i64 4, ptr %181) #11
  br label %7027

7027:                                             ; preds = %7026
  br label %7028

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

7029:                                             ; No predecessors!
  br label %7030

7030:                                             ; preds = %7029
  br label %7031

7031:                                             ; preds = %7030, %6973
  br label %7032

7032:                                             ; preds = %7031
  br label %7033

7033:                                             ; preds = %7032
  call void @llvm.lifetime.end.p0(i64 8, ptr %173) #11
  br label %7034

7034:                                             ; preds = %7033
  br label %7035

7035:                                             ; preds = %7034
  br label %7036

7036:                                             ; preds = %7035
  %7037 = load i32, ptr @test_count, align 4, !tbaa !5
  %7038 = add nsw i32 %7037, 1
  store i32 %7038, ptr @test_count, align 4, !tbaa !5
  %7039 = call i32 @s2n_fingerprint_wipe(ptr noundef null)
  %7040 = icmp eq i32 %7039, -1
  br i1 %7040, label %7094, label %7041

7041:                                             ; preds = %7036
  br label %7042

7042:                                             ; preds = %7041
  br label %7043

7043:                                             ; preds = %7042
  call void @llvm.lifetime.start.p0(i64 4, ptr %182) #11
  %7044 = call ptr @__errno_location() #12
  %7045 = load i32, ptr %7044, align 4, !tbaa !5
  store i32 %7045, ptr %182, align 4, !tbaa !5
  %7046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7047 = call i32 @s2n_print_stacktrace(ptr noundef %7046)
  %7048 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7049 = trunc i8 %7048 to i1
  br i1 %7049, label %7050, label %7072

7050:                                             ; preds = %7043
  %7051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7052 = call i32 @fileno(ptr noundef %7051) #11
  %7053 = call i32 @isatty(i32 noundef %7052) #11
  %7054 = icmp ne i32 %7053, 0
  br i1 %7054, label %7055, label %7072

7055:                                             ; preds = %7050
  %7056 = load i32, ptr %182, align 4, !tbaa !5
  %7057 = call ptr @__errno_location() #12
  store i32 %7056, ptr %7057, align 4, !tbaa !5
  %7058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7059 = load i32, ptr @test_count, align 4, !tbaa !5
  %7060 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7061 = load i32, ptr %7060, align 4, !tbaa !5
  %7062 = call ptr @s2n_strerror(i32 noundef %7061, ptr noundef @.str.4)
  %7063 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7064 = load i32, ptr %7063, align 4, !tbaa !5
  %7065 = call ptr @s2n_strerror_debug(i32 noundef %7064, ptr noundef @.str.4)
  %7066 = call ptr @__errno_location() #12
  %7067 = load i32, ptr %7066, align 4, !tbaa !5
  %7068 = call ptr @strerror(i32 noundef %7067) #11
  %7069 = call ptr @__errno_location() #12
  %7070 = load i32, ptr %7069, align 4, !tbaa !5
  %7071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7058, ptr noundef @.str.2, i32 noundef %7059, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7062, ptr noundef %7065, ptr noundef %7068, i32 noundef %7070) #11
  br label %7089

7072:                                             ; preds = %7050, %7043
  %7073 = load i32, ptr %182, align 4, !tbaa !5
  %7074 = call ptr @__errno_location() #12
  store i32 %7073, ptr %7074, align 4, !tbaa !5
  %7075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7076 = load i32, ptr @test_count, align 4, !tbaa !5
  %7077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7078 = load i32, ptr %7077, align 4, !tbaa !5
  %7079 = call ptr @s2n_strerror(i32 noundef %7078, ptr noundef @.str.4)
  %7080 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7081 = load i32, ptr %7080, align 4, !tbaa !5
  %7082 = call ptr @s2n_strerror_debug(i32 noundef %7081, ptr noundef @.str.4)
  %7083 = call ptr @__errno_location() #12
  %7084 = load i32, ptr %7083, align 4, !tbaa !5
  %7085 = call ptr @strerror(i32 noundef %7084) #11
  %7086 = call ptr @__errno_location() #12
  %7087 = load i32, ptr %7086, align 4, !tbaa !5
  %7088 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7075, ptr noundef @.str.5, i32 noundef %7076, ptr noundef @.str.61, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7079, ptr noundef %7082, ptr noundef %7085, i32 noundef %7087) #11
  br label %7089

7089:                                             ; preds = %7072, %7055
  call void @llvm.lifetime.end.p0(i64 4, ptr %182) #11
  br label %7090

7090:                                             ; preds = %7089
  br label %7091

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

7092:                                             ; No predecessors!
  br label %7093

7093:                                             ; preds = %7092
  br label %7094

7094:                                             ; preds = %7093, %7036
  br label %7095

7095:                                             ; preds = %7094
  br label %7096

7096:                                             ; preds = %7095
  br label %7097

7097:                                             ; preds = %7096
  %7098 = load i32, ptr @test_count, align 4, !tbaa !5
  %7099 = add nsw i32 %7098, 1
  store i32 %7099, ptr @test_count, align 4, !tbaa !5
  %7100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7101 = load i32, ptr %7100, align 4, !tbaa !5
  %7102 = icmp eq i32 %7101, 469762089
  br i1 %7102, label %7156, label %7103

7103:                                             ; preds = %7097
  br label %7104

7104:                                             ; preds = %7103
  br label %7105

7105:                                             ; preds = %7104
  call void @llvm.lifetime.start.p0(i64 4, ptr %183) #11
  %7106 = call ptr @__errno_location() #12
  %7107 = load i32, ptr %7106, align 4, !tbaa !5
  store i32 %7107, ptr %183, align 4, !tbaa !5
  %7108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7109 = call i32 @s2n_print_stacktrace(ptr noundef %7108)
  %7110 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7111 = trunc i8 %7110 to i1
  br i1 %7111, label %7112, label %7134

7112:                                             ; preds = %7105
  %7113 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7114 = call i32 @fileno(ptr noundef %7113) #11
  %7115 = call i32 @isatty(i32 noundef %7114) #11
  %7116 = icmp ne i32 %7115, 0
  br i1 %7116, label %7117, label %7134

7117:                                             ; preds = %7112
  %7118 = load i32, ptr %183, align 4, !tbaa !5
  %7119 = call ptr @__errno_location() #12
  store i32 %7118, ptr %7119, align 4, !tbaa !5
  %7120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7121 = load i32, ptr @test_count, align 4, !tbaa !5
  %7122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7123 = load i32, ptr %7122, align 4, !tbaa !5
  %7124 = call ptr @s2n_strerror(i32 noundef %7123, ptr noundef @.str.4)
  %7125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7126 = load i32, ptr %7125, align 4, !tbaa !5
  %7127 = call ptr @s2n_strerror_debug(i32 noundef %7126, ptr noundef @.str.4)
  %7128 = call ptr @__errno_location() #12
  %7129 = load i32, ptr %7128, align 4, !tbaa !5
  %7130 = call ptr @strerror(i32 noundef %7129) #11
  %7131 = call ptr @__errno_location() #12
  %7132 = load i32, ptr %7131, align 4, !tbaa !5
  %7133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7120, ptr noundef @.str.2, i32 noundef %7121, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7124, ptr noundef %7127, ptr noundef %7130, i32 noundef %7132) #11
  br label %7151

7134:                                             ; preds = %7112, %7105
  %7135 = load i32, ptr %183, align 4, !tbaa !5
  %7136 = call ptr @__errno_location() #12
  store i32 %7135, ptr %7136, align 4, !tbaa !5
  %7137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7138 = load i32, ptr @test_count, align 4, !tbaa !5
  %7139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7140 = load i32, ptr %7139, align 4, !tbaa !5
  %7141 = call ptr @s2n_strerror(i32 noundef %7140, ptr noundef @.str.4)
  %7142 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7143 = load i32, ptr %7142, align 4, !tbaa !5
  %7144 = call ptr @s2n_strerror_debug(i32 noundef %7143, ptr noundef @.str.4)
  %7145 = call ptr @__errno_location() #12
  %7146 = load i32, ptr %7145, align 4, !tbaa !5
  %7147 = call ptr @strerror(i32 noundef %7146) #11
  %7148 = call ptr @__errno_location() #12
  %7149 = load i32, ptr %7148, align 4, !tbaa !5
  %7150 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7137, ptr noundef @.str.5, i32 noundef %7138, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7141, ptr noundef %7144, ptr noundef %7147, i32 noundef %7149) #11
  br label %7151

7151:                                             ; preds = %7134, %7117
  call void @llvm.lifetime.end.p0(i64 4, ptr %183) #11
  br label %7152

7152:                                             ; preds = %7151
  br label %7153

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

7154:                                             ; No predecessors!
  br label %7155

7155:                                             ; preds = %7154
  br label %7156

7156:                                             ; preds = %7155, %7097
  br label %7157

7157:                                             ; preds = %7156
  br label %7158

7158:                                             ; preds = %7157
  br label %7159

7159:                                             ; preds = %7158
  %7160 = load i32, ptr @test_count, align 4, !tbaa !5
  %7161 = add nsw i32 %7160, 1
  store i32 %7161, ptr @test_count, align 4, !tbaa !5
  %7162 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7163 = load i32, ptr %7162, align 4, !tbaa !5
  %7164 = call ptr @s2n_strerror_debug(i32 noundef %7163, ptr noundef @.str.4)
  %7165 = icmp eq ptr %7164, null
  br i1 %7165, label %7166, label %7219

7166:                                             ; preds = %7159
  br label %7167

7167:                                             ; preds = %7166
  br label %7168

7168:                                             ; preds = %7167
  call void @llvm.lifetime.start.p0(i64 4, ptr %184) #11
  %7169 = call ptr @__errno_location() #12
  %7170 = load i32, ptr %7169, align 4, !tbaa !5
  store i32 %7170, ptr %184, align 4, !tbaa !5
  %7171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7172 = call i32 @s2n_print_stacktrace(ptr noundef %7171)
  %7173 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7174 = trunc i8 %7173 to i1
  br i1 %7174, label %7175, label %7197

7175:                                             ; preds = %7168
  %7176 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7177 = call i32 @fileno(ptr noundef %7176) #11
  %7178 = call i32 @isatty(i32 noundef %7177) #11
  %7179 = icmp ne i32 %7178, 0
  br i1 %7179, label %7180, label %7197

7180:                                             ; preds = %7175
  %7181 = load i32, ptr %184, align 4, !tbaa !5
  %7182 = call ptr @__errno_location() #12
  store i32 %7181, ptr %7182, align 4, !tbaa !5
  %7183 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7184 = load i32, ptr @test_count, align 4, !tbaa !5
  %7185 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7186 = load i32, ptr %7185, align 4, !tbaa !5
  %7187 = call ptr @s2n_strerror(i32 noundef %7186, ptr noundef @.str.4)
  %7188 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7189 = load i32, ptr %7188, align 4, !tbaa !5
  %7190 = call ptr @s2n_strerror_debug(i32 noundef %7189, ptr noundef @.str.4)
  %7191 = call ptr @__errno_location() #12
  %7192 = load i32, ptr %7191, align 4, !tbaa !5
  %7193 = call ptr @strerror(i32 noundef %7192) #11
  %7194 = call ptr @__errno_location() #12
  %7195 = load i32, ptr %7194, align 4, !tbaa !5
  %7196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7183, ptr noundef @.str.2, i32 noundef %7184, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7187, ptr noundef %7190, ptr noundef %7193, i32 noundef %7195) #11
  br label %7214

7197:                                             ; preds = %7175, %7168
  %7198 = load i32, ptr %184, align 4, !tbaa !5
  %7199 = call ptr @__errno_location() #12
  store i32 %7198, ptr %7199, align 4, !tbaa !5
  %7200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7201 = load i32, ptr @test_count, align 4, !tbaa !5
  %7202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7203 = load i32, ptr %7202, align 4, !tbaa !5
  %7204 = call ptr @s2n_strerror(i32 noundef %7203, ptr noundef @.str.4)
  %7205 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7206 = load i32, ptr %7205, align 4, !tbaa !5
  %7207 = call ptr @s2n_strerror_debug(i32 noundef %7206, ptr noundef @.str.4)
  %7208 = call ptr @__errno_location() #12
  %7209 = load i32, ptr %7208, align 4, !tbaa !5
  %7210 = call ptr @strerror(i32 noundef %7209) #11
  %7211 = call ptr @__errno_location() #12
  %7212 = load i32, ptr %7211, align 4, !tbaa !5
  %7213 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7200, ptr noundef @.str.5, i32 noundef %7201, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 314, ptr noundef %7204, ptr noundef %7207, ptr noundef %7210, i32 noundef %7212) #11
  br label %7214

7214:                                             ; preds = %7197, %7180
  call void @llvm.lifetime.end.p0(i64 4, ptr %184) #11
  br label %7215

7215:                                             ; preds = %7214
  br label %7216

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

7217:                                             ; No predecessors!
  br label %7218

7218:                                             ; preds = %7217
  br label %7219

7219:                                             ; preds = %7218, %7159
  br label %7220

7220:                                             ; preds = %7219
  br label %7221

7221:                                             ; preds = %7220
  br label %7222

7222:                                             ; preds = %7221
  br label %7223

7223:                                             ; preds = %7222
  br label %7224

7224:                                             ; preds = %7223
  %7225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %7225, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %7226 = call ptr @__errno_location() #12
  store i32 0, ptr %7226, align 4, !tbaa !5
  br label %7227

7227:                                             ; preds = %7224
  br label %7228

7228:                                             ; preds = %7227
  br label %7229

7229:                                             ; preds = %7228
  br label %7230

7230:                                             ; preds = %7229
  call void @llvm.lifetime.start.p0(i64 120, ptr %185) #11
  call void @llvm.memset.p0.i64(ptr align 8 %185, i8 0, i64 120, i1 false)
  br label %7231

7231:                                             ; preds = %7230
  %7232 = load i32, ptr @test_count, align 4, !tbaa !5
  %7233 = add nsw i32 %7232, 1
  store i32 %7233, ptr @test_count, align 4, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %185, i8 1, i64 120, i1 false)
  %7234 = icmp eq ptr %185, null
  br i1 %7234, label %7235, label %7288

7235:                                             ; preds = %7231
  br label %7236

7236:                                             ; preds = %7235
  br label %7237

7237:                                             ; preds = %7236
  call void @llvm.lifetime.start.p0(i64 4, ptr %186) #11
  %7238 = call ptr @__errno_location() #12
  %7239 = load i32, ptr %7238, align 4, !tbaa !5
  store i32 %7239, ptr %186, align 4, !tbaa !5
  %7240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7241 = call i32 @s2n_print_stacktrace(ptr noundef %7240)
  %7242 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7243 = trunc i8 %7242 to i1
  br i1 %7243, label %7244, label %7266

7244:                                             ; preds = %7237
  %7245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7246 = call i32 @fileno(ptr noundef %7245) #11
  %7247 = call i32 @isatty(i32 noundef %7246) #11
  %7248 = icmp ne i32 %7247, 0
  br i1 %7248, label %7249, label %7266

7249:                                             ; preds = %7244
  %7250 = load i32, ptr %186, align 4, !tbaa !5
  %7251 = call ptr @__errno_location() #12
  store i32 %7250, ptr %7251, align 4, !tbaa !5
  %7252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7253 = load i32, ptr @test_count, align 4, !tbaa !5
  %7254 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7255 = load i32, ptr %7254, align 4, !tbaa !5
  %7256 = call ptr @s2n_strerror(i32 noundef %7255, ptr noundef @.str.4)
  %7257 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7258 = load i32, ptr %7257, align 4, !tbaa !5
  %7259 = call ptr @s2n_strerror_debug(i32 noundef %7258, ptr noundef @.str.4)
  %7260 = call ptr @__errno_location() #12
  %7261 = load i32, ptr %7260, align 4, !tbaa !5
  %7262 = call ptr @strerror(i32 noundef %7261) #11
  %7263 = call ptr @__errno_location() #12
  %7264 = load i32, ptr %7263, align 4, !tbaa !5
  %7265 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7252, ptr noundef @.str.2, i32 noundef %7253, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 318, ptr noundef %7256, ptr noundef %7259, ptr noundef %7262, i32 noundef %7264) #11
  br label %7283

7266:                                             ; preds = %7244, %7237
  %7267 = load i32, ptr %186, align 4, !tbaa !5
  %7268 = call ptr @__errno_location() #12
  store i32 %7267, ptr %7268, align 4, !tbaa !5
  %7269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7270 = load i32, ptr @test_count, align 4, !tbaa !5
  %7271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7272 = load i32, ptr %7271, align 4, !tbaa !5
  %7273 = call ptr @s2n_strerror(i32 noundef %7272, ptr noundef @.str.4)
  %7274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7275 = load i32, ptr %7274, align 4, !tbaa !5
  %7276 = call ptr @s2n_strerror_debug(i32 noundef %7275, ptr noundef @.str.4)
  %7277 = call ptr @__errno_location() #12
  %7278 = load i32, ptr %7277, align 4, !tbaa !5
  %7279 = call ptr @strerror(i32 noundef %7278) #11
  %7280 = call ptr @__errno_location() #12
  %7281 = load i32, ptr %7280, align 4, !tbaa !5
  %7282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7269, ptr noundef @.str.5, i32 noundef %7270, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 318, ptr noundef %7273, ptr noundef %7276, ptr noundef %7279, i32 noundef %7281) #11
  br label %7283

7283:                                             ; preds = %7266, %7249
  call void @llvm.lifetime.end.p0(i64 4, ptr %186) #11
  br label %7284

7284:                                             ; preds = %7283
  br label %7285

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

7286:                                             ; No predecessors!
  br label %7287

7287:                                             ; preds = %7286
  br label %7288

7288:                                             ; preds = %7287, %7231
  br label %7289

7289:                                             ; preds = %7288
  br label %7290

7290:                                             ; preds = %7289
  br label %7291

7291:                                             ; preds = %7290
  %7292 = load i32, ptr @test_count, align 4, !tbaa !5
  %7293 = add nsw i32 %7292, 1
  store i32 %7293, ptr @test_count, align 4, !tbaa !5
  %7294 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 1
  %7295 = load ptr, ptr %7294, align 8, !tbaa !36
  %7296 = icmp eq ptr %7295, null
  br i1 %7296, label %7297, label %7350

7297:                                             ; preds = %7291
  br label %7298

7298:                                             ; preds = %7297
  br label %7299

7299:                                             ; preds = %7298
  call void @llvm.lifetime.start.p0(i64 4, ptr %187) #11
  %7300 = call ptr @__errno_location() #12
  %7301 = load i32, ptr %7300, align 4, !tbaa !5
  store i32 %7301, ptr %187, align 4, !tbaa !5
  %7302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7303 = call i32 @s2n_print_stacktrace(ptr noundef %7302)
  %7304 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7305 = trunc i8 %7304 to i1
  br i1 %7305, label %7306, label %7328

7306:                                             ; preds = %7299
  %7307 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7308 = call i32 @fileno(ptr noundef %7307) #11
  %7309 = call i32 @isatty(i32 noundef %7308) #11
  %7310 = icmp ne i32 %7309, 0
  br i1 %7310, label %7311, label %7328

7311:                                             ; preds = %7306
  %7312 = load i32, ptr %187, align 4, !tbaa !5
  %7313 = call ptr @__errno_location() #12
  store i32 %7312, ptr %7313, align 4, !tbaa !5
  %7314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7315 = load i32, ptr @test_count, align 4, !tbaa !5
  %7316 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7317 = load i32, ptr %7316, align 4, !tbaa !5
  %7318 = call ptr @s2n_strerror(i32 noundef %7317, ptr noundef @.str.4)
  %7319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7320 = load i32, ptr %7319, align 4, !tbaa !5
  %7321 = call ptr @s2n_strerror_debug(i32 noundef %7320, ptr noundef @.str.4)
  %7322 = call ptr @__errno_location() #12
  %7323 = load i32, ptr %7322, align 4, !tbaa !5
  %7324 = call ptr @strerror(i32 noundef %7323) #11
  %7325 = call ptr @__errno_location() #12
  %7326 = load i32, ptr %7325, align 4, !tbaa !5
  %7327 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7314, ptr noundef @.str.2, i32 noundef %7315, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 319, ptr noundef %7318, ptr noundef %7321, ptr noundef %7324, i32 noundef %7326) #11
  br label %7345

7328:                                             ; preds = %7306, %7299
  %7329 = load i32, ptr %187, align 4, !tbaa !5
  %7330 = call ptr @__errno_location() #12
  store i32 %7329, ptr %7330, align 4, !tbaa !5
  %7331 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7332 = load i32, ptr @test_count, align 4, !tbaa !5
  %7333 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7334 = load i32, ptr %7333, align 4, !tbaa !5
  %7335 = call ptr @s2n_strerror(i32 noundef %7334, ptr noundef @.str.4)
  %7336 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7337 = load i32, ptr %7336, align 4, !tbaa !5
  %7338 = call ptr @s2n_strerror_debug(i32 noundef %7337, ptr noundef @.str.4)
  %7339 = call ptr @__errno_location() #12
  %7340 = load i32, ptr %7339, align 4, !tbaa !5
  %7341 = call ptr @strerror(i32 noundef %7340) #11
  %7342 = call ptr @__errno_location() #12
  %7343 = load i32, ptr %7342, align 4, !tbaa !5
  %7344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7331, ptr noundef @.str.5, i32 noundef %7332, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 319, ptr noundef %7335, ptr noundef %7338, ptr noundef %7341, i32 noundef %7343) #11
  br label %7345

7345:                                             ; preds = %7328, %7311
  call void @llvm.lifetime.end.p0(i64 4, ptr %187) #11
  br label %7346

7346:                                             ; preds = %7345
  br label %7347

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

7348:                                             ; No predecessors!
  br label %7349

7349:                                             ; preds = %7348
  br label %7350

7350:                                             ; preds = %7349, %7291
  br label %7351

7351:                                             ; preds = %7350
  br label %7352

7352:                                             ; preds = %7351
  br label %7353

7353:                                             ; preds = %7352
  %7354 = load i32, ptr @test_count, align 4, !tbaa !5
  %7355 = add nsw i32 %7354, 1
  store i32 %7355, ptr @test_count, align 4, !tbaa !5
  %7356 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 3
  %7357 = getelementptr inbounds %struct.s2n_hash_state, ptr %7356, i32 0, i32 2
  %7358 = load i8, ptr %7357, align 4, !tbaa !40
  %7359 = icmp ne i8 %7358, 0
  br i1 %7359, label %7413, label %7360

7360:                                             ; preds = %7353
  br label %7361

7361:                                             ; preds = %7360
  br label %7362

7362:                                             ; preds = %7361
  call void @llvm.lifetime.start.p0(i64 4, ptr %188) #11
  %7363 = call ptr @__errno_location() #12
  %7364 = load i32, ptr %7363, align 4, !tbaa !5
  store i32 %7364, ptr %188, align 4, !tbaa !5
  %7365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7366 = call i32 @s2n_print_stacktrace(ptr noundef %7365)
  %7367 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7368 = trunc i8 %7367 to i1
  br i1 %7368, label %7369, label %7391

7369:                                             ; preds = %7362
  %7370 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7371 = call i32 @fileno(ptr noundef %7370) #11
  %7372 = call i32 @isatty(i32 noundef %7371) #11
  %7373 = icmp ne i32 %7372, 0
  br i1 %7373, label %7374, label %7391

7374:                                             ; preds = %7369
  %7375 = load i32, ptr %188, align 4, !tbaa !5
  %7376 = call ptr @__errno_location() #12
  store i32 %7375, ptr %7376, align 4, !tbaa !5
  %7377 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7378 = load i32, ptr @test_count, align 4, !tbaa !5
  %7379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7380 = load i32, ptr %7379, align 4, !tbaa !5
  %7381 = call ptr @s2n_strerror(i32 noundef %7380, ptr noundef @.str.4)
  %7382 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7383 = load i32, ptr %7382, align 4, !tbaa !5
  %7384 = call ptr @s2n_strerror_debug(i32 noundef %7383, ptr noundef @.str.4)
  %7385 = call ptr @__errno_location() #12
  %7386 = load i32, ptr %7385, align 4, !tbaa !5
  %7387 = call ptr @strerror(i32 noundef %7386) #11
  %7388 = call ptr @__errno_location() #12
  %7389 = load i32, ptr %7388, align 4, !tbaa !5
  %7390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7377, ptr noundef @.str.2, i32 noundef %7378, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 320, ptr noundef %7381, ptr noundef %7384, ptr noundef %7387, i32 noundef %7389) #11
  br label %7408

7391:                                             ; preds = %7369, %7362
  %7392 = load i32, ptr %188, align 4, !tbaa !5
  %7393 = call ptr @__errno_location() #12
  store i32 %7392, ptr %7393, align 4, !tbaa !5
  %7394 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7395 = load i32, ptr @test_count, align 4, !tbaa !5
  %7396 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7397 = load i32, ptr %7396, align 4, !tbaa !5
  %7398 = call ptr @s2n_strerror(i32 noundef %7397, ptr noundef @.str.4)
  %7399 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7400 = load i32, ptr %7399, align 4, !tbaa !5
  %7401 = call ptr @s2n_strerror_debug(i32 noundef %7400, ptr noundef @.str.4)
  %7402 = call ptr @__errno_location() #12
  %7403 = load i32, ptr %7402, align 4, !tbaa !5
  %7404 = call ptr @strerror(i32 noundef %7403) #11
  %7405 = call ptr @__errno_location() #12
  %7406 = load i32, ptr %7405, align 4, !tbaa !5
  %7407 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7394, ptr noundef @.str.5, i32 noundef %7395, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 320, ptr noundef %7398, ptr noundef %7401, ptr noundef %7404, i32 noundef %7406) #11
  br label %7408

7408:                                             ; preds = %7391, %7374
  call void @llvm.lifetime.end.p0(i64 4, ptr %188) #11
  br label %7409

7409:                                             ; preds = %7408
  br label %7410

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

7411:                                             ; No predecessors!
  br label %7412

7412:                                             ; preds = %7411
  br label %7413

7413:                                             ; preds = %7412, %7353
  br label %7414

7414:                                             ; preds = %7413
  br label %7415

7415:                                             ; preds = %7414
  br label %7416

7416:                                             ; preds = %7415
  %7417 = load i32, ptr @test_count, align 4, !tbaa !5
  %7418 = add nsw i32 %7417, 1
  store i32 %7418, ptr @test_count, align 4, !tbaa !5
  %7419 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 2
  %7420 = load ptr, ptr %7419, align 8, !tbaa !38
  %7421 = icmp eq ptr %7420, null
  br i1 %7421, label %7422, label %7475

7422:                                             ; preds = %7416
  br label %7423

7423:                                             ; preds = %7422
  br label %7424

7424:                                             ; preds = %7423
  call void @llvm.lifetime.start.p0(i64 4, ptr %189) #11
  %7425 = call ptr @__errno_location() #12
  %7426 = load i32, ptr %7425, align 4, !tbaa !5
  store i32 %7426, ptr %189, align 4, !tbaa !5
  %7427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7428 = call i32 @s2n_print_stacktrace(ptr noundef %7427)
  %7429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7430 = trunc i8 %7429 to i1
  br i1 %7430, label %7431, label %7453

7431:                                             ; preds = %7424
  %7432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7433 = call i32 @fileno(ptr noundef %7432) #11
  %7434 = call i32 @isatty(i32 noundef %7433) #11
  %7435 = icmp ne i32 %7434, 0
  br i1 %7435, label %7436, label %7453

7436:                                             ; preds = %7431
  %7437 = load i32, ptr %189, align 4, !tbaa !5
  %7438 = call ptr @__errno_location() #12
  store i32 %7437, ptr %7438, align 4, !tbaa !5
  %7439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7440 = load i32, ptr @test_count, align 4, !tbaa !5
  %7441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7442 = load i32, ptr %7441, align 4, !tbaa !5
  %7443 = call ptr @s2n_strerror(i32 noundef %7442, ptr noundef @.str.4)
  %7444 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7445 = load i32, ptr %7444, align 4, !tbaa !5
  %7446 = call ptr @s2n_strerror_debug(i32 noundef %7445, ptr noundef @.str.4)
  %7447 = call ptr @__errno_location() #12
  %7448 = load i32, ptr %7447, align 4, !tbaa !5
  %7449 = call ptr @strerror(i32 noundef %7448) #11
  %7450 = call ptr @__errno_location() #12
  %7451 = load i32, ptr %7450, align 4, !tbaa !5
  %7452 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7439, ptr noundef @.str.2, i32 noundef %7440, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 321, ptr noundef %7443, ptr noundef %7446, ptr noundef %7449, i32 noundef %7451) #11
  br label %7470

7453:                                             ; preds = %7431, %7424
  %7454 = load i32, ptr %189, align 4, !tbaa !5
  %7455 = call ptr @__errno_location() #12
  store i32 %7454, ptr %7455, align 4, !tbaa !5
  %7456 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7457 = load i32, ptr @test_count, align 4, !tbaa !5
  %7458 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7459 = load i32, ptr %7458, align 4, !tbaa !5
  %7460 = call ptr @s2n_strerror(i32 noundef %7459, ptr noundef @.str.4)
  %7461 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7462 = load i32, ptr %7461, align 4, !tbaa !5
  %7463 = call ptr @s2n_strerror_debug(i32 noundef %7462, ptr noundef @.str.4)
  %7464 = call ptr @__errno_location() #12
  %7465 = load i32, ptr %7464, align 4, !tbaa !5
  %7466 = call ptr @strerror(i32 noundef %7465) #11
  %7467 = call ptr @__errno_location() #12
  %7468 = load i32, ptr %7467, align 4, !tbaa !5
  %7469 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7456, ptr noundef @.str.5, i32 noundef %7457, ptr noundef @.str.65, ptr noundef @.str.1, i32 noundef 321, ptr noundef %7460, ptr noundef %7463, ptr noundef %7466, i32 noundef %7468) #11
  br label %7470

7470:                                             ; preds = %7453, %7436
  call void @llvm.lifetime.end.p0(i64 4, ptr %189) #11
  br label %7471

7471:                                             ; preds = %7470
  br label %7472

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

7473:                                             ; No predecessors!
  br label %7474

7474:                                             ; preds = %7473
  br label %7475

7475:                                             ; preds = %7474, %7416
  br label %7476

7476:                                             ; preds = %7475
  br label %7477

7477:                                             ; preds = %7476
  br label %7478

7478:                                             ; preds = %7477
  %7479 = load i32, ptr @test_count, align 4, !tbaa !5
  %7480 = add nsw i32 %7479, 1
  store i32 %7480, ptr @test_count, align 4, !tbaa !5
  %7481 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 0
  %7482 = load i64, ptr %7481, align 8, !tbaa !39
  %7483 = icmp eq i64 %7482, 0
  br i1 %7483, label %7484, label %7537

7484:                                             ; preds = %7478
  br label %7485

7485:                                             ; preds = %7484
  br label %7486

7486:                                             ; preds = %7485
  call void @llvm.lifetime.start.p0(i64 4, ptr %190) #11
  %7487 = call ptr @__errno_location() #12
  %7488 = load i32, ptr %7487, align 4, !tbaa !5
  store i32 %7488, ptr %190, align 4, !tbaa !5
  %7489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7490 = call i32 @s2n_print_stacktrace(ptr noundef %7489)
  %7491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7492 = trunc i8 %7491 to i1
  br i1 %7492, label %7493, label %7515

7493:                                             ; preds = %7486
  %7494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7495 = call i32 @fileno(ptr noundef %7494) #11
  %7496 = call i32 @isatty(i32 noundef %7495) #11
  %7497 = icmp ne i32 %7496, 0
  br i1 %7497, label %7498, label %7515

7498:                                             ; preds = %7493
  %7499 = load i32, ptr %190, align 4, !tbaa !5
  %7500 = call ptr @__errno_location() #12
  store i32 %7499, ptr %7500, align 4, !tbaa !5
  %7501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7502 = load i32, ptr @test_count, align 4, !tbaa !5
  %7503 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7504 = load i32, ptr %7503, align 4, !tbaa !5
  %7505 = call ptr @s2n_strerror(i32 noundef %7504, ptr noundef @.str.4)
  %7506 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7507 = load i32, ptr %7506, align 4, !tbaa !5
  %7508 = call ptr @s2n_strerror_debug(i32 noundef %7507, ptr noundef @.str.4)
  %7509 = call ptr @__errno_location() #12
  %7510 = load i32, ptr %7509, align 4, !tbaa !5
  %7511 = call ptr @strerror(i32 noundef %7510) #11
  %7512 = call ptr @__errno_location() #12
  %7513 = load i32, ptr %7512, align 4, !tbaa !5
  %7514 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7501, ptr noundef @.str.2, i32 noundef %7502, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 322, ptr noundef %7505, ptr noundef %7508, ptr noundef %7511, i32 noundef %7513) #11
  br label %7532

7515:                                             ; preds = %7493, %7486
  %7516 = load i32, ptr %190, align 4, !tbaa !5
  %7517 = call ptr @__errno_location() #12
  store i32 %7516, ptr %7517, align 4, !tbaa !5
  %7518 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7519 = load i32, ptr @test_count, align 4, !tbaa !5
  %7520 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7521 = load i32, ptr %7520, align 4, !tbaa !5
  %7522 = call ptr @s2n_strerror(i32 noundef %7521, ptr noundef @.str.4)
  %7523 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7524 = load i32, ptr %7523, align 4, !tbaa !5
  %7525 = call ptr @s2n_strerror_debug(i32 noundef %7524, ptr noundef @.str.4)
  %7526 = call ptr @__errno_location() #12
  %7527 = load i32, ptr %7526, align 4, !tbaa !5
  %7528 = call ptr @strerror(i32 noundef %7527) #11
  %7529 = call ptr @__errno_location() #12
  %7530 = load i32, ptr %7529, align 4, !tbaa !5
  %7531 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7518, ptr noundef @.str.5, i32 noundef %7519, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 322, ptr noundef %7522, ptr noundef %7525, ptr noundef %7528, i32 noundef %7530) #11
  br label %7532

7532:                                             ; preds = %7515, %7498
  call void @llvm.lifetime.end.p0(i64 4, ptr %190) #11
  br label %7533

7533:                                             ; preds = %7532
  br label %7534

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

7535:                                             ; No predecessors!
  br label %7536

7536:                                             ; preds = %7535
  br label %7537

7537:                                             ; preds = %7536, %7478
  br label %7538

7538:                                             ; preds = %7537
  br label %7539

7539:                                             ; preds = %7538
  br label %7540

7540:                                             ; preds = %7539
  %7541 = load i32, ptr @test_count, align 4, !tbaa !5
  %7542 = add nsw i32 %7541, 1
  store i32 %7542, ptr @test_count, align 4, !tbaa !5
  %7543 = call i32 @s2n_fingerprint_wipe(ptr noundef %185)
  %7544 = icmp eq i32 %7543, -1
  br i1 %7544, label %7545, label %7598

7545:                                             ; preds = %7540
  br label %7546

7546:                                             ; preds = %7545
  br label %7547

7547:                                             ; preds = %7546
  call void @llvm.lifetime.start.p0(i64 4, ptr %191) #11
  %7548 = call ptr @__errno_location() #12
  %7549 = load i32, ptr %7548, align 4, !tbaa !5
  store i32 %7549, ptr %191, align 4, !tbaa !5
  %7550 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7551 = call i32 @s2n_print_stacktrace(ptr noundef %7550)
  %7552 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7553 = trunc i8 %7552 to i1
  br i1 %7553, label %7554, label %7576

7554:                                             ; preds = %7547
  %7555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7556 = call i32 @fileno(ptr noundef %7555) #11
  %7557 = call i32 @isatty(i32 noundef %7556) #11
  %7558 = icmp ne i32 %7557, 0
  br i1 %7558, label %7559, label %7576

7559:                                             ; preds = %7554
  %7560 = load i32, ptr %191, align 4, !tbaa !5
  %7561 = call ptr @__errno_location() #12
  store i32 %7560, ptr %7561, align 4, !tbaa !5
  %7562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7563 = load i32, ptr @test_count, align 4, !tbaa !5
  %7564 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7565 = load i32, ptr %7564, align 4, !tbaa !5
  %7566 = call ptr @s2n_strerror(i32 noundef %7565, ptr noundef @.str.4)
  %7567 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7568 = load i32, ptr %7567, align 4, !tbaa !5
  %7569 = call ptr @s2n_strerror_debug(i32 noundef %7568, ptr noundef @.str.4)
  %7570 = call ptr @__errno_location() #12
  %7571 = load i32, ptr %7570, align 4, !tbaa !5
  %7572 = call ptr @strerror(i32 noundef %7571) #11
  %7573 = call ptr @__errno_location() #12
  %7574 = load i32, ptr %7573, align 4, !tbaa !5
  %7575 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7562, ptr noundef @.str.2, i32 noundef %7563, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 325, ptr noundef %7566, ptr noundef %7569, ptr noundef %7572, i32 noundef %7574) #11
  br label %7593

7576:                                             ; preds = %7554, %7547
  %7577 = load i32, ptr %191, align 4, !tbaa !5
  %7578 = call ptr @__errno_location() #12
  store i32 %7577, ptr %7578, align 4, !tbaa !5
  %7579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7580 = load i32, ptr @test_count, align 4, !tbaa !5
  %7581 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7582 = load i32, ptr %7581, align 4, !tbaa !5
  %7583 = call ptr @s2n_strerror(i32 noundef %7582, ptr noundef @.str.4)
  %7584 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7585 = load i32, ptr %7584, align 4, !tbaa !5
  %7586 = call ptr @s2n_strerror_debug(i32 noundef %7585, ptr noundef @.str.4)
  %7587 = call ptr @__errno_location() #12
  %7588 = load i32, ptr %7587, align 4, !tbaa !5
  %7589 = call ptr @strerror(i32 noundef %7588) #11
  %7590 = call ptr @__errno_location() #12
  %7591 = load i32, ptr %7590, align 4, !tbaa !5
  %7592 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7579, ptr noundef @.str.5, i32 noundef %7580, ptr noundef @.str.67, ptr noundef @.str.1, i32 noundef 325, ptr noundef %7583, ptr noundef %7586, ptr noundef %7589, i32 noundef %7591) #11
  br label %7593

7593:                                             ; preds = %7576, %7559
  call void @llvm.lifetime.end.p0(i64 4, ptr %191) #11
  br label %7594

7594:                                             ; preds = %7593
  br label %7595

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

7596:                                             ; No predecessors!
  br label %7597

7597:                                             ; preds = %7596
  br label %7598

7598:                                             ; preds = %7597, %7540
  br label %7599

7599:                                             ; preds = %7598
  br label %7600

7600:                                             ; preds = %7599
  br label %7601

7601:                                             ; preds = %7600
  %7602 = load i32, ptr @test_count, align 4, !tbaa !5
  %7603 = add nsw i32 %7602, 1
  store i32 %7603, ptr @test_count, align 4, !tbaa !5
  %7604 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 1
  %7605 = load ptr, ptr %7604, align 8, !tbaa !36
  %7606 = icmp eq ptr %7605, null
  br i1 %7606, label %7607, label %7660

7607:                                             ; preds = %7601
  br label %7608

7608:                                             ; preds = %7607
  br label %7609

7609:                                             ; preds = %7608
  call void @llvm.lifetime.start.p0(i64 4, ptr %192) #11
  %7610 = call ptr @__errno_location() #12
  %7611 = load i32, ptr %7610, align 4, !tbaa !5
  store i32 %7611, ptr %192, align 4, !tbaa !5
  %7612 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7613 = call i32 @s2n_print_stacktrace(ptr noundef %7612)
  %7614 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7615 = trunc i8 %7614 to i1
  br i1 %7615, label %7616, label %7638

7616:                                             ; preds = %7609
  %7617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7618 = call i32 @fileno(ptr noundef %7617) #11
  %7619 = call i32 @isatty(i32 noundef %7618) #11
  %7620 = icmp ne i32 %7619, 0
  br i1 %7620, label %7621, label %7638

7621:                                             ; preds = %7616
  %7622 = load i32, ptr %192, align 4, !tbaa !5
  %7623 = call ptr @__errno_location() #12
  store i32 %7622, ptr %7623, align 4, !tbaa !5
  %7624 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7625 = load i32, ptr @test_count, align 4, !tbaa !5
  %7626 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7627 = load i32, ptr %7626, align 4, !tbaa !5
  %7628 = call ptr @s2n_strerror(i32 noundef %7627, ptr noundef @.str.4)
  %7629 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7630 = load i32, ptr %7629, align 4, !tbaa !5
  %7631 = call ptr @s2n_strerror_debug(i32 noundef %7630, ptr noundef @.str.4)
  %7632 = call ptr @__errno_location() #12
  %7633 = load i32, ptr %7632, align 4, !tbaa !5
  %7634 = call ptr @strerror(i32 noundef %7633) #11
  %7635 = call ptr @__errno_location() #12
  %7636 = load i32, ptr %7635, align 4, !tbaa !5
  %7637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7624, ptr noundef @.str.2, i32 noundef %7625, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 326, ptr noundef %7628, ptr noundef %7631, ptr noundef %7634, i32 noundef %7636) #11
  br label %7655

7638:                                             ; preds = %7616, %7609
  %7639 = load i32, ptr %192, align 4, !tbaa !5
  %7640 = call ptr @__errno_location() #12
  store i32 %7639, ptr %7640, align 4, !tbaa !5
  %7641 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7642 = load i32, ptr @test_count, align 4, !tbaa !5
  %7643 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7644 = load i32, ptr %7643, align 4, !tbaa !5
  %7645 = call ptr @s2n_strerror(i32 noundef %7644, ptr noundef @.str.4)
  %7646 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7647 = load i32, ptr %7646, align 4, !tbaa !5
  %7648 = call ptr @s2n_strerror_debug(i32 noundef %7647, ptr noundef @.str.4)
  %7649 = call ptr @__errno_location() #12
  %7650 = load i32, ptr %7649, align 4, !tbaa !5
  %7651 = call ptr @strerror(i32 noundef %7650) #11
  %7652 = call ptr @__errno_location() #12
  %7653 = load i32, ptr %7652, align 4, !tbaa !5
  %7654 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7641, ptr noundef @.str.5, i32 noundef %7642, ptr noundef @.str.63, ptr noundef @.str.1, i32 noundef 326, ptr noundef %7645, ptr noundef %7648, ptr noundef %7651, i32 noundef %7653) #11
  br label %7655

7655:                                             ; preds = %7638, %7621
  call void @llvm.lifetime.end.p0(i64 4, ptr %192) #11
  br label %7656

7656:                                             ; preds = %7655
  br label %7657

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

7658:                                             ; No predecessors!
  br label %7659

7659:                                             ; preds = %7658
  br label %7660

7660:                                             ; preds = %7659, %7601
  br label %7661

7661:                                             ; preds = %7660
  br label %7662

7662:                                             ; preds = %7661
  br label %7663

7663:                                             ; preds = %7662
  %7664 = load i32, ptr @test_count, align 4, !tbaa !5
  %7665 = add nsw i32 %7664, 1
  store i32 %7665, ptr @test_count, align 4, !tbaa !5
  %7666 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 3
  %7667 = getelementptr inbounds %struct.s2n_hash_state, ptr %7666, i32 0, i32 2
  %7668 = load i8, ptr %7667, align 4, !tbaa !40
  %7669 = icmp ne i8 %7668, 0
  br i1 %7669, label %7723, label %7670

7670:                                             ; preds = %7663
  br label %7671

7671:                                             ; preds = %7670
  br label %7672

7672:                                             ; preds = %7671
  call void @llvm.lifetime.start.p0(i64 4, ptr %193) #11
  %7673 = call ptr @__errno_location() #12
  %7674 = load i32, ptr %7673, align 4, !tbaa !5
  store i32 %7674, ptr %193, align 4, !tbaa !5
  %7675 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7676 = call i32 @s2n_print_stacktrace(ptr noundef %7675)
  %7677 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7678 = trunc i8 %7677 to i1
  br i1 %7678, label %7679, label %7701

7679:                                             ; preds = %7672
  %7680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7681 = call i32 @fileno(ptr noundef %7680) #11
  %7682 = call i32 @isatty(i32 noundef %7681) #11
  %7683 = icmp ne i32 %7682, 0
  br i1 %7683, label %7684, label %7701

7684:                                             ; preds = %7679
  %7685 = load i32, ptr %193, align 4, !tbaa !5
  %7686 = call ptr @__errno_location() #12
  store i32 %7685, ptr %7686, align 4, !tbaa !5
  %7687 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7688 = load i32, ptr @test_count, align 4, !tbaa !5
  %7689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7690 = load i32, ptr %7689, align 4, !tbaa !5
  %7691 = call ptr @s2n_strerror(i32 noundef %7690, ptr noundef @.str.4)
  %7692 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7693 = load i32, ptr %7692, align 4, !tbaa !5
  %7694 = call ptr @s2n_strerror_debug(i32 noundef %7693, ptr noundef @.str.4)
  %7695 = call ptr @__errno_location() #12
  %7696 = load i32, ptr %7695, align 4, !tbaa !5
  %7697 = call ptr @strerror(i32 noundef %7696) #11
  %7698 = call ptr @__errno_location() #12
  %7699 = load i32, ptr %7698, align 4, !tbaa !5
  %7700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7687, ptr noundef @.str.2, i32 noundef %7688, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 327, ptr noundef %7691, ptr noundef %7694, ptr noundef %7697, i32 noundef %7699) #11
  br label %7718

7701:                                             ; preds = %7679, %7672
  %7702 = load i32, ptr %193, align 4, !tbaa !5
  %7703 = call ptr @__errno_location() #12
  store i32 %7702, ptr %7703, align 4, !tbaa !5
  %7704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7705 = load i32, ptr @test_count, align 4, !tbaa !5
  %7706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7707 = load i32, ptr %7706, align 4, !tbaa !5
  %7708 = call ptr @s2n_strerror(i32 noundef %7707, ptr noundef @.str.4)
  %7709 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7710 = load i32, ptr %7709, align 4, !tbaa !5
  %7711 = call ptr @s2n_strerror_debug(i32 noundef %7710, ptr noundef @.str.4)
  %7712 = call ptr @__errno_location() #12
  %7713 = load i32, ptr %7712, align 4, !tbaa !5
  %7714 = call ptr @strerror(i32 noundef %7713) #11
  %7715 = call ptr @__errno_location() #12
  %7716 = load i32, ptr %7715, align 4, !tbaa !5
  %7717 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7704, ptr noundef @.str.5, i32 noundef %7705, ptr noundef @.str.64, ptr noundef @.str.1, i32 noundef 327, ptr noundef %7708, ptr noundef %7711, ptr noundef %7714, i32 noundef %7716) #11
  br label %7718

7718:                                             ; preds = %7701, %7684
  call void @llvm.lifetime.end.p0(i64 4, ptr %193) #11
  br label %7719

7719:                                             ; preds = %7718
  br label %7720

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

7721:                                             ; No predecessors!
  br label %7722

7722:                                             ; preds = %7721
  br label %7723

7723:                                             ; preds = %7722, %7663
  br label %7724

7724:                                             ; preds = %7723
  br label %7725

7725:                                             ; preds = %7724
  br label %7726

7726:                                             ; preds = %7725
  %7727 = load i32, ptr @test_count, align 4, !tbaa !5
  %7728 = add nsw i32 %7727, 1
  store i32 %7728, ptr @test_count, align 4, !tbaa !5
  %7729 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 2
  %7730 = load ptr, ptr %7729, align 8, !tbaa !38
  %7731 = icmp eq ptr %7730, null
  br i1 %7731, label %7785, label %7732

7732:                                             ; preds = %7726
  br label %7733

7733:                                             ; preds = %7732
  br label %7734

7734:                                             ; preds = %7733
  call void @llvm.lifetime.start.p0(i64 4, ptr %194) #11
  %7735 = call ptr @__errno_location() #12
  %7736 = load i32, ptr %7735, align 4, !tbaa !5
  store i32 %7736, ptr %194, align 4, !tbaa !5
  %7737 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7738 = call i32 @s2n_print_stacktrace(ptr noundef %7737)
  %7739 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7740 = trunc i8 %7739 to i1
  br i1 %7740, label %7741, label %7763

7741:                                             ; preds = %7734
  %7742 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7743 = call i32 @fileno(ptr noundef %7742) #11
  %7744 = call i32 @isatty(i32 noundef %7743) #11
  %7745 = icmp ne i32 %7744, 0
  br i1 %7745, label %7746, label %7763

7746:                                             ; preds = %7741
  %7747 = load i32, ptr %194, align 4, !tbaa !5
  %7748 = call ptr @__errno_location() #12
  store i32 %7747, ptr %7748, align 4, !tbaa !5
  %7749 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7750 = load i32, ptr @test_count, align 4, !tbaa !5
  %7751 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7752 = load i32, ptr %7751, align 4, !tbaa !5
  %7753 = call ptr @s2n_strerror(i32 noundef %7752, ptr noundef @.str.4)
  %7754 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7755 = load i32, ptr %7754, align 4, !tbaa !5
  %7756 = call ptr @s2n_strerror_debug(i32 noundef %7755, ptr noundef @.str.4)
  %7757 = call ptr @__errno_location() #12
  %7758 = load i32, ptr %7757, align 4, !tbaa !5
  %7759 = call ptr @strerror(i32 noundef %7758) #11
  %7760 = call ptr @__errno_location() #12
  %7761 = load i32, ptr %7760, align 4, !tbaa !5
  %7762 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7749, ptr noundef @.str.2, i32 noundef %7750, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7753, ptr noundef %7756, ptr noundef %7759, i32 noundef %7761) #11
  br label %7780

7763:                                             ; preds = %7741, %7734
  %7764 = load i32, ptr %194, align 4, !tbaa !5
  %7765 = call ptr @__errno_location() #12
  store i32 %7764, ptr %7765, align 4, !tbaa !5
  %7766 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7767 = load i32, ptr @test_count, align 4, !tbaa !5
  %7768 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7769 = load i32, ptr %7768, align 4, !tbaa !5
  %7770 = call ptr @s2n_strerror(i32 noundef %7769, ptr noundef @.str.4)
  %7771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7772 = load i32, ptr %7771, align 4, !tbaa !5
  %7773 = call ptr @s2n_strerror_debug(i32 noundef %7772, ptr noundef @.str.4)
  %7774 = call ptr @__errno_location() #12
  %7775 = load i32, ptr %7774, align 4, !tbaa !5
  %7776 = call ptr @strerror(i32 noundef %7775) #11
  %7777 = call ptr @__errno_location() #12
  %7778 = load i32, ptr %7777, align 4, !tbaa !5
  %7779 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7766, ptr noundef @.str.5, i32 noundef %7767, ptr noundef @.str.68, ptr noundef @.str.1, i32 noundef 328, ptr noundef %7770, ptr noundef %7773, ptr noundef %7776, i32 noundef %7778) #11
  br label %7780

7780:                                             ; preds = %7763, %7746
  call void @llvm.lifetime.end.p0(i64 4, ptr %194) #11
  br label %7781

7781:                                             ; preds = %7780
  br label %7782

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

7783:                                             ; No predecessors!
  br label %7784

7784:                                             ; preds = %7783
  br label %7785

7785:                                             ; preds = %7784, %7726
  br label %7786

7786:                                             ; preds = %7785
  br label %7787

7787:                                             ; preds = %7786
  br label %7788

7788:                                             ; preds = %7787
  %7789 = load i32, ptr @test_count, align 4, !tbaa !5
  %7790 = add nsw i32 %7789, 1
  store i32 %7790, ptr @test_count, align 4, !tbaa !5
  %7791 = getelementptr inbounds %struct.s2n_fingerprint, ptr %185, i32 0, i32 0
  %7792 = load i64, ptr %7791, align 8, !tbaa !39
  %7793 = icmp eq i64 %7792, 0
  br i1 %7793, label %7847, label %7794

7794:                                             ; preds = %7788
  br label %7795

7795:                                             ; preds = %7794
  br label %7796

7796:                                             ; preds = %7795
  call void @llvm.lifetime.start.p0(i64 4, ptr %195) #11
  %7797 = call ptr @__errno_location() #12
  %7798 = load i32, ptr %7797, align 4, !tbaa !5
  store i32 %7798, ptr %195, align 4, !tbaa !5
  %7799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7800 = call i32 @s2n_print_stacktrace(ptr noundef %7799)
  %7801 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7802 = trunc i8 %7801 to i1
  br i1 %7802, label %7803, label %7825

7803:                                             ; preds = %7796
  %7804 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7805 = call i32 @fileno(ptr noundef %7804) #11
  %7806 = call i32 @isatty(i32 noundef %7805) #11
  %7807 = icmp ne i32 %7806, 0
  br i1 %7807, label %7808, label %7825

7808:                                             ; preds = %7803
  %7809 = load i32, ptr %195, align 4, !tbaa !5
  %7810 = call ptr @__errno_location() #12
  store i32 %7809, ptr %7810, align 4, !tbaa !5
  %7811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7812 = load i32, ptr @test_count, align 4, !tbaa !5
  %7813 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7814 = load i32, ptr %7813, align 4, !tbaa !5
  %7815 = call ptr @s2n_strerror(i32 noundef %7814, ptr noundef @.str.4)
  %7816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7817 = load i32, ptr %7816, align 4, !tbaa !5
  %7818 = call ptr @s2n_strerror_debug(i32 noundef %7817, ptr noundef @.str.4)
  %7819 = call ptr @__errno_location() #12
  %7820 = load i32, ptr %7819, align 4, !tbaa !5
  %7821 = call ptr @strerror(i32 noundef %7820) #11
  %7822 = call ptr @__errno_location() #12
  %7823 = load i32, ptr %7822, align 4, !tbaa !5
  %7824 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7811, ptr noundef @.str.2, i32 noundef %7812, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 329, ptr noundef %7815, ptr noundef %7818, ptr noundef %7821, i32 noundef %7823) #11
  br label %7842

7825:                                             ; preds = %7803, %7796
  %7826 = load i32, ptr %195, align 4, !tbaa !5
  %7827 = call ptr @__errno_location() #12
  store i32 %7826, ptr %7827, align 4, !tbaa !5
  %7828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7829 = load i32, ptr @test_count, align 4, !tbaa !5
  %7830 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7831 = load i32, ptr %7830, align 4, !tbaa !5
  %7832 = call ptr @s2n_strerror(i32 noundef %7831, ptr noundef @.str.4)
  %7833 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7834 = load i32, ptr %7833, align 4, !tbaa !5
  %7835 = call ptr @s2n_strerror_debug(i32 noundef %7834, ptr noundef @.str.4)
  %7836 = call ptr @__errno_location() #12
  %7837 = load i32, ptr %7836, align 4, !tbaa !5
  %7838 = call ptr @strerror(i32 noundef %7837) #11
  %7839 = call ptr @__errno_location() #12
  %7840 = load i32, ptr %7839, align 4, !tbaa !5
  %7841 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7828, ptr noundef @.str.5, i32 noundef %7829, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 329, ptr noundef %7832, ptr noundef %7835, ptr noundef %7838, i32 noundef %7840) #11
  br label %7842

7842:                                             ; preds = %7825, %7808
  call void @llvm.lifetime.end.p0(i64 4, ptr %195) #11
  br label %7843

7843:                                             ; preds = %7842
  br label %7844

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

7845:                                             ; No predecessors!
  br label %7846

7846:                                             ; preds = %7845
  br label %7847

7847:                                             ; preds = %7846, %7788
  br label %7848

7848:                                             ; preds = %7847
  br label %7849

7849:                                             ; preds = %7848
  call void @llvm.lifetime.end.p0(i64 120, ptr %185) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr %196) #11
  call void @llvm.memset.p0.i64(ptr align 8 %196, i8 0, i64 120, i1 false)
  br label %7850

7850:                                             ; preds = %7849
  br label %7851

7851:                                             ; preds = %7850
  br label %7852

7852:                                             ; preds = %7851
  %7853 = load i32, ptr @test_count, align 4, !tbaa !5
  %7854 = add nsw i32 %7853, 1
  store i32 %7854, ptr @test_count, align 4, !tbaa !5
  %7855 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %196, ptr noundef null)
  %7856 = icmp eq i32 %7855, -1
  br i1 %7856, label %7910, label %7857

7857:                                             ; preds = %7852
  br label %7858

7858:                                             ; preds = %7857
  br label %7859

7859:                                             ; preds = %7858
  call void @llvm.lifetime.start.p0(i64 4, ptr %197) #11
  %7860 = call ptr @__errno_location() #12
  %7861 = load i32, ptr %7860, align 4, !tbaa !5
  store i32 %7861, ptr %197, align 4, !tbaa !5
  %7862 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7863 = call i32 @s2n_print_stacktrace(ptr noundef %7862)
  %7864 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7865 = trunc i8 %7864 to i1
  br i1 %7865, label %7866, label %7888

7866:                                             ; preds = %7859
  %7867 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7868 = call i32 @fileno(ptr noundef %7867) #11
  %7869 = call i32 @isatty(i32 noundef %7868) #11
  %7870 = icmp ne i32 %7869, 0
  br i1 %7870, label %7871, label %7888

7871:                                             ; preds = %7866
  %7872 = load i32, ptr %197, align 4, !tbaa !5
  %7873 = call ptr @__errno_location() #12
  store i32 %7872, ptr %7873, align 4, !tbaa !5
  %7874 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7875 = load i32, ptr @test_count, align 4, !tbaa !5
  %7876 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7877 = load i32, ptr %7876, align 4, !tbaa !5
  %7878 = call ptr @s2n_strerror(i32 noundef %7877, ptr noundef @.str.4)
  %7879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7880 = load i32, ptr %7879, align 4, !tbaa !5
  %7881 = call ptr @s2n_strerror_debug(i32 noundef %7880, ptr noundef @.str.4)
  %7882 = call ptr @__errno_location() #12
  %7883 = load i32, ptr %7882, align 4, !tbaa !5
  %7884 = call ptr @strerror(i32 noundef %7883) #11
  %7885 = call ptr @__errno_location() #12
  %7886 = load i32, ptr %7885, align 4, !tbaa !5
  %7887 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7874, ptr noundef @.str.2, i32 noundef %7875, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7878, ptr noundef %7881, ptr noundef %7884, i32 noundef %7886) #11
  br label %7905

7888:                                             ; preds = %7866, %7859
  %7889 = load i32, ptr %197, align 4, !tbaa !5
  %7890 = call ptr @__errno_location() #12
  store i32 %7889, ptr %7890, align 4, !tbaa !5
  %7891 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7892 = load i32, ptr @test_count, align 4, !tbaa !5
  %7893 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7894 = load i32, ptr %7893, align 4, !tbaa !5
  %7895 = call ptr @s2n_strerror(i32 noundef %7894, ptr noundef @.str.4)
  %7896 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7897 = load i32, ptr %7896, align 4, !tbaa !5
  %7898 = call ptr @s2n_strerror_debug(i32 noundef %7897, ptr noundef @.str.4)
  %7899 = call ptr @__errno_location() #12
  %7900 = load i32, ptr %7899, align 4, !tbaa !5
  %7901 = call ptr @strerror(i32 noundef %7900) #11
  %7902 = call ptr @__errno_location() #12
  %7903 = load i32, ptr %7902, align 4, !tbaa !5
  %7904 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7891, ptr noundef @.str.5, i32 noundef %7892, ptr noundef @.str.70, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7895, ptr noundef %7898, ptr noundef %7901, i32 noundef %7903) #11
  br label %7905

7905:                                             ; preds = %7888, %7871
  call void @llvm.lifetime.end.p0(i64 4, ptr %197) #11
  br label %7906

7906:                                             ; preds = %7905
  br label %7907

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

7908:                                             ; No predecessors!
  br label %7909

7909:                                             ; preds = %7908
  br label %7910

7910:                                             ; preds = %7909, %7852
  br label %7911

7911:                                             ; preds = %7910
  br label %7912

7912:                                             ; preds = %7911
  br label %7913

7913:                                             ; preds = %7912
  %7914 = load i32, ptr @test_count, align 4, !tbaa !5
  %7915 = add nsw i32 %7914, 1
  store i32 %7915, ptr @test_count, align 4, !tbaa !5
  %7916 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7917 = load i32, ptr %7916, align 4, !tbaa !5
  %7918 = icmp eq i32 %7917, 469762089
  br i1 %7918, label %7972, label %7919

7919:                                             ; preds = %7913
  br label %7920

7920:                                             ; preds = %7919
  br label %7921

7921:                                             ; preds = %7920
  call void @llvm.lifetime.start.p0(i64 4, ptr %198) #11
  %7922 = call ptr @__errno_location() #12
  %7923 = load i32, ptr %7922, align 4, !tbaa !5
  store i32 %7923, ptr %198, align 4, !tbaa !5
  %7924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7925 = call i32 @s2n_print_stacktrace(ptr noundef %7924)
  %7926 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7927 = trunc i8 %7926 to i1
  br i1 %7927, label %7928, label %7950

7928:                                             ; preds = %7921
  %7929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7930 = call i32 @fileno(ptr noundef %7929) #11
  %7931 = call i32 @isatty(i32 noundef %7930) #11
  %7932 = icmp ne i32 %7931, 0
  br i1 %7932, label %7933, label %7950

7933:                                             ; preds = %7928
  %7934 = load i32, ptr %198, align 4, !tbaa !5
  %7935 = call ptr @__errno_location() #12
  store i32 %7934, ptr %7935, align 4, !tbaa !5
  %7936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7937 = load i32, ptr @test_count, align 4, !tbaa !5
  %7938 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7939 = load i32, ptr %7938, align 4, !tbaa !5
  %7940 = call ptr @s2n_strerror(i32 noundef %7939, ptr noundef @.str.4)
  %7941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7942 = load i32, ptr %7941, align 4, !tbaa !5
  %7943 = call ptr @s2n_strerror_debug(i32 noundef %7942, ptr noundef @.str.4)
  %7944 = call ptr @__errno_location() #12
  %7945 = load i32, ptr %7944, align 4, !tbaa !5
  %7946 = call ptr @strerror(i32 noundef %7945) #11
  %7947 = call ptr @__errno_location() #12
  %7948 = load i32, ptr %7947, align 4, !tbaa !5
  %7949 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7936, ptr noundef @.str.2, i32 noundef %7937, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7940, ptr noundef %7943, ptr noundef %7946, i32 noundef %7948) #11
  br label %7967

7950:                                             ; preds = %7928, %7921
  %7951 = load i32, ptr %198, align 4, !tbaa !5
  %7952 = call ptr @__errno_location() #12
  store i32 %7951, ptr %7952, align 4, !tbaa !5
  %7953 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7954 = load i32, ptr @test_count, align 4, !tbaa !5
  %7955 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7956 = load i32, ptr %7955, align 4, !tbaa !5
  %7957 = call ptr @s2n_strerror(i32 noundef %7956, ptr noundef @.str.4)
  %7958 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7959 = load i32, ptr %7958, align 4, !tbaa !5
  %7960 = call ptr @s2n_strerror_debug(i32 noundef %7959, ptr noundef @.str.4)
  %7961 = call ptr @__errno_location() #12
  %7962 = load i32, ptr %7961, align 4, !tbaa !5
  %7963 = call ptr @strerror(i32 noundef %7962) #11
  %7964 = call ptr @__errno_location() #12
  %7965 = load i32, ptr %7964, align 4, !tbaa !5
  %7966 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7953, ptr noundef @.str.5, i32 noundef %7954, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 339, ptr noundef %7957, ptr noundef %7960, ptr noundef %7963, i32 noundef %7965) #11
  br label %7967

7967:                                             ; preds = %7950, %7933
  call void @llvm.lifetime.end.p0(i64 4, ptr %198) #11
  br label %7968

7968:                                             ; preds = %7967
  br label %7969

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

7970:                                             ; No predecessors!
  br label %7971

7971:                                             ; preds = %7970
  br label %7972

7972:                                             ; preds = %7971, %7913
  br label %7973

7973:                                             ; preds = %7972
  br label %7974

7974:                                             ; preds = %7973
  br label %7975

7975:                                             ; preds = %7974
  %7976 = load i32, ptr @test_count, align 4, !tbaa !5
  %7977 = add nsw i32 %7976, 1
  store i32 %7977, ptr @test_count, align 4, !tbaa !5
  %7978 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %7979 = load i32, ptr %7978, align 4, !tbaa !5
  %7980 = call ptr @s2n_strerror_debug(i32 noundef %7979, ptr noundef @.str.4)
  %7981 = icmp eq ptr %7980, null
  br i1 %7981, label %7982, label %8035

7982:                                             ; preds = %7975
  br label %7983

7983:                                             ; preds = %7982
  br label %7984

7984:                                             ; preds = %7983
  call void @llvm.lifetime.start.p0(i64 4, ptr %199) #11
  %7985 = call ptr @__errno_location() #12
  %7986 = load i32, ptr %7985, align 4, !tbaa !5
  store i32 %7986, ptr %199, align 4, !tbaa !5
  %7987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7988 = call i32 @s2n_print_stacktrace(ptr noundef %7987)
  %7989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %7990 = trunc i8 %7989 to i1
  br i1 %7990, label %7991, label %8013

7991:                                             ; preds = %7984
  %7992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %7993 = call i32 @fileno(ptr noundef %7992) #11
  %7994 = call i32 @isatty(i32 noundef %7993) #11
  %7995 = icmp ne i32 %7994, 0
  br i1 %7995, label %7996, label %8013

7996:                                             ; preds = %7991
  %7997 = load i32, ptr %199, align 4, !tbaa !5
  %7998 = call ptr @__errno_location() #12
  store i32 %7997, ptr %7998, align 4, !tbaa !5
  %7999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8000 = load i32, ptr @test_count, align 4, !tbaa !5
  %8001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8002 = load i32, ptr %8001, align 4, !tbaa !5
  %8003 = call ptr @s2n_strerror(i32 noundef %8002, ptr noundef @.str.4)
  %8004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8005 = load i32, ptr %8004, align 4, !tbaa !5
  %8006 = call ptr @s2n_strerror_debug(i32 noundef %8005, ptr noundef @.str.4)
  %8007 = call ptr @__errno_location() #12
  %8008 = load i32, ptr %8007, align 4, !tbaa !5
  %8009 = call ptr @strerror(i32 noundef %8008) #11
  %8010 = call ptr @__errno_location() #12
  %8011 = load i32, ptr %8010, align 4, !tbaa !5
  %8012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %7999, ptr noundef @.str.2, i32 noundef %8000, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 339, ptr noundef %8003, ptr noundef %8006, ptr noundef %8009, i32 noundef %8011) #11
  br label %8030

8013:                                             ; preds = %7991, %7984
  %8014 = load i32, ptr %199, align 4, !tbaa !5
  %8015 = call ptr @__errno_location() #12
  store i32 %8014, ptr %8015, align 4, !tbaa !5
  %8016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8017 = load i32, ptr @test_count, align 4, !tbaa !5
  %8018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8019 = load i32, ptr %8018, align 4, !tbaa !5
  %8020 = call ptr @s2n_strerror(i32 noundef %8019, ptr noundef @.str.4)
  %8021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8022 = load i32, ptr %8021, align 4, !tbaa !5
  %8023 = call ptr @s2n_strerror_debug(i32 noundef %8022, ptr noundef @.str.4)
  %8024 = call ptr @__errno_location() #12
  %8025 = load i32, ptr %8024, align 4, !tbaa !5
  %8026 = call ptr @strerror(i32 noundef %8025) #11
  %8027 = call ptr @__errno_location() #12
  %8028 = load i32, ptr %8027, align 4, !tbaa !5
  %8029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8016, ptr noundef @.str.5, i32 noundef %8017, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 339, ptr noundef %8020, ptr noundef %8023, ptr noundef %8026, i32 noundef %8028) #11
  br label %8030

8030:                                             ; preds = %8013, %7996
  call void @llvm.lifetime.end.p0(i64 4, ptr %199) #11
  br label %8031

8031:                                             ; preds = %8030
  br label %8032

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

8033:                                             ; No predecessors!
  br label %8034

8034:                                             ; preds = %8033
  br label %8035

8035:                                             ; preds = %8034, %7975
  br label %8036

8036:                                             ; preds = %8035
  br label %8037

8037:                                             ; preds = %8036
  br label %8038

8038:                                             ; preds = %8037
  br label %8039

8039:                                             ; preds = %8038
  br label %8040

8040:                                             ; preds = %8039
  %8041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8041, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8042 = call ptr @__errno_location() #12
  store i32 0, ptr %8042, align 4, !tbaa !5
  br label %8043

8043:                                             ; preds = %8040
  br label %8044

8044:                                             ; preds = %8043
  br label %8045

8045:                                             ; preds = %8044
  br label %8046

8046:                                             ; preds = %8045
  br label %8047

8047:                                             ; preds = %8046
  br label %8048

8048:                                             ; preds = %8047
  br label %8049

8049:                                             ; preds = %8048
  %8050 = load i32, ptr @test_count, align 4, !tbaa !5
  %8051 = add nsw i32 %8050, 1
  store i32 %8051, ptr @test_count, align 4, !tbaa !5
  %8052 = load ptr, ptr %14, align 8, !tbaa !9
  %8053 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef null, ptr noundef %8052)
  %8054 = icmp eq i32 %8053, -1
  br i1 %8054, label %8108, label %8055

8055:                                             ; preds = %8049
  br label %8056

8056:                                             ; preds = %8055
  br label %8057

8057:                                             ; preds = %8056
  call void @llvm.lifetime.start.p0(i64 4, ptr %200) #11
  %8058 = call ptr @__errno_location() #12
  %8059 = load i32, ptr %8058, align 4, !tbaa !5
  store i32 %8059, ptr %200, align 4, !tbaa !5
  %8060 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8061 = call i32 @s2n_print_stacktrace(ptr noundef %8060)
  %8062 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8063 = trunc i8 %8062 to i1
  br i1 %8063, label %8064, label %8086

8064:                                             ; preds = %8057
  %8065 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8066 = call i32 @fileno(ptr noundef %8065) #11
  %8067 = call i32 @isatty(i32 noundef %8066) #11
  %8068 = icmp ne i32 %8067, 0
  br i1 %8068, label %8069, label %8086

8069:                                             ; preds = %8064
  %8070 = load i32, ptr %200, align 4, !tbaa !5
  %8071 = call ptr @__errno_location() #12
  store i32 %8070, ptr %8071, align 4, !tbaa !5
  %8072 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8073 = load i32, ptr @test_count, align 4, !tbaa !5
  %8074 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8075 = load i32, ptr %8074, align 4, !tbaa !5
  %8076 = call ptr @s2n_strerror(i32 noundef %8075, ptr noundef @.str.4)
  %8077 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8078 = load i32, ptr %8077, align 4, !tbaa !5
  %8079 = call ptr @s2n_strerror_debug(i32 noundef %8078, ptr noundef @.str.4)
  %8080 = call ptr @__errno_location() #12
  %8081 = load i32, ptr %8080, align 4, !tbaa !5
  %8082 = call ptr @strerror(i32 noundef %8081) #11
  %8083 = call ptr @__errno_location() #12
  %8084 = load i32, ptr %8083, align 4, !tbaa !5
  %8085 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8072, ptr noundef @.str.2, i32 noundef %8073, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8076, ptr noundef %8079, ptr noundef %8082, i32 noundef %8084) #11
  br label %8103

8086:                                             ; preds = %8064, %8057
  %8087 = load i32, ptr %200, align 4, !tbaa !5
  %8088 = call ptr @__errno_location() #12
  store i32 %8087, ptr %8088, align 4, !tbaa !5
  %8089 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8090 = load i32, ptr @test_count, align 4, !tbaa !5
  %8091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8092 = load i32, ptr %8091, align 4, !tbaa !5
  %8093 = call ptr @s2n_strerror(i32 noundef %8092, ptr noundef @.str.4)
  %8094 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8095 = load i32, ptr %8094, align 4, !tbaa !5
  %8096 = call ptr @s2n_strerror_debug(i32 noundef %8095, ptr noundef @.str.4)
  %8097 = call ptr @__errno_location() #12
  %8098 = load i32, ptr %8097, align 4, !tbaa !5
  %8099 = call ptr @strerror(i32 noundef %8098) #11
  %8100 = call ptr @__errno_location() #12
  %8101 = load i32, ptr %8100, align 4, !tbaa !5
  %8102 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8089, ptr noundef @.str.5, i32 noundef %8090, ptr noundef @.str.71, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8093, ptr noundef %8096, ptr noundef %8099, i32 noundef %8101) #11
  br label %8103

8103:                                             ; preds = %8086, %8069
  call void @llvm.lifetime.end.p0(i64 4, ptr %200) #11
  br label %8104

8104:                                             ; preds = %8103
  br label %8105

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

8106:                                             ; No predecessors!
  br label %8107

8107:                                             ; preds = %8106
  br label %8108

8108:                                             ; preds = %8107, %8049
  br label %8109

8109:                                             ; preds = %8108
  br label %8110

8110:                                             ; preds = %8109
  br label %8111

8111:                                             ; preds = %8110
  %8112 = load i32, ptr @test_count, align 4, !tbaa !5
  %8113 = add nsw i32 %8112, 1
  store i32 %8113, ptr @test_count, align 4, !tbaa !5
  %8114 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8115 = load i32, ptr %8114, align 4, !tbaa !5
  %8116 = icmp eq i32 %8115, 469762089
  br i1 %8116, label %8170, label %8117

8117:                                             ; preds = %8111
  br label %8118

8118:                                             ; preds = %8117
  br label %8119

8119:                                             ; preds = %8118
  call void @llvm.lifetime.start.p0(i64 4, ptr %201) #11
  %8120 = call ptr @__errno_location() #12
  %8121 = load i32, ptr %8120, align 4, !tbaa !5
  store i32 %8121, ptr %201, align 4, !tbaa !5
  %8122 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8123 = call i32 @s2n_print_stacktrace(ptr noundef %8122)
  %8124 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8125 = trunc i8 %8124 to i1
  br i1 %8125, label %8126, label %8148

8126:                                             ; preds = %8119
  %8127 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8128 = call i32 @fileno(ptr noundef %8127) #11
  %8129 = call i32 @isatty(i32 noundef %8128) #11
  %8130 = icmp ne i32 %8129, 0
  br i1 %8130, label %8131, label %8148

8131:                                             ; preds = %8126
  %8132 = load i32, ptr %201, align 4, !tbaa !5
  %8133 = call ptr @__errno_location() #12
  store i32 %8132, ptr %8133, align 4, !tbaa !5
  %8134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8135 = load i32, ptr @test_count, align 4, !tbaa !5
  %8136 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8137 = load i32, ptr %8136, align 4, !tbaa !5
  %8138 = call ptr @s2n_strerror(i32 noundef %8137, ptr noundef @.str.4)
  %8139 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8140 = load i32, ptr %8139, align 4, !tbaa !5
  %8141 = call ptr @s2n_strerror_debug(i32 noundef %8140, ptr noundef @.str.4)
  %8142 = call ptr @__errno_location() #12
  %8143 = load i32, ptr %8142, align 4, !tbaa !5
  %8144 = call ptr @strerror(i32 noundef %8143) #11
  %8145 = call ptr @__errno_location() #12
  %8146 = load i32, ptr %8145, align 4, !tbaa !5
  %8147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8134, ptr noundef @.str.2, i32 noundef %8135, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8138, ptr noundef %8141, ptr noundef %8144, i32 noundef %8146) #11
  br label %8165

8148:                                             ; preds = %8126, %8119
  %8149 = load i32, ptr %201, align 4, !tbaa !5
  %8150 = call ptr @__errno_location() #12
  store i32 %8149, ptr %8150, align 4, !tbaa !5
  %8151 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8152 = load i32, ptr @test_count, align 4, !tbaa !5
  %8153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8154 = load i32, ptr %8153, align 4, !tbaa !5
  %8155 = call ptr @s2n_strerror(i32 noundef %8154, ptr noundef @.str.4)
  %8156 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8157 = load i32, ptr %8156, align 4, !tbaa !5
  %8158 = call ptr @s2n_strerror_debug(i32 noundef %8157, ptr noundef @.str.4)
  %8159 = call ptr @__errno_location() #12
  %8160 = load i32, ptr %8159, align 4, !tbaa !5
  %8161 = call ptr @strerror(i32 noundef %8160) #11
  %8162 = call ptr @__errno_location() #12
  %8163 = load i32, ptr %8162, align 4, !tbaa !5
  %8164 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8151, ptr noundef @.str.5, i32 noundef %8152, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8155, ptr noundef %8158, ptr noundef %8161, i32 noundef %8163) #11
  br label %8165

8165:                                             ; preds = %8148, %8131
  call void @llvm.lifetime.end.p0(i64 4, ptr %201) #11
  br label %8166

8166:                                             ; preds = %8165
  br label %8167

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

8168:                                             ; No predecessors!
  br label %8169

8169:                                             ; preds = %8168
  br label %8170

8170:                                             ; preds = %8169, %8111
  br label %8171

8171:                                             ; preds = %8170
  br label %8172

8172:                                             ; preds = %8171
  br label %8173

8173:                                             ; preds = %8172
  %8174 = load i32, ptr @test_count, align 4, !tbaa !5
  %8175 = add nsw i32 %8174, 1
  store i32 %8175, ptr @test_count, align 4, !tbaa !5
  %8176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8177 = load i32, ptr %8176, align 4, !tbaa !5
  %8178 = call ptr @s2n_strerror_debug(i32 noundef %8177, ptr noundef @.str.4)
  %8179 = icmp eq ptr %8178, null
  br i1 %8179, label %8180, label %8233

8180:                                             ; preds = %8173
  br label %8181

8181:                                             ; preds = %8180
  br label %8182

8182:                                             ; preds = %8181
  call void @llvm.lifetime.start.p0(i64 4, ptr %202) #11
  %8183 = call ptr @__errno_location() #12
  %8184 = load i32, ptr %8183, align 4, !tbaa !5
  store i32 %8184, ptr %202, align 4, !tbaa !5
  %8185 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8186 = call i32 @s2n_print_stacktrace(ptr noundef %8185)
  %8187 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8188 = trunc i8 %8187 to i1
  br i1 %8188, label %8189, label %8211

8189:                                             ; preds = %8182
  %8190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8191 = call i32 @fileno(ptr noundef %8190) #11
  %8192 = call i32 @isatty(i32 noundef %8191) #11
  %8193 = icmp ne i32 %8192, 0
  br i1 %8193, label %8194, label %8211

8194:                                             ; preds = %8189
  %8195 = load i32, ptr %202, align 4, !tbaa !5
  %8196 = call ptr @__errno_location() #12
  store i32 %8195, ptr %8196, align 4, !tbaa !5
  %8197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8198 = load i32, ptr @test_count, align 4, !tbaa !5
  %8199 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8200 = load i32, ptr %8199, align 4, !tbaa !5
  %8201 = call ptr @s2n_strerror(i32 noundef %8200, ptr noundef @.str.4)
  %8202 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8203 = load i32, ptr %8202, align 4, !tbaa !5
  %8204 = call ptr @s2n_strerror_debug(i32 noundef %8203, ptr noundef @.str.4)
  %8205 = call ptr @__errno_location() #12
  %8206 = load i32, ptr %8205, align 4, !tbaa !5
  %8207 = call ptr @strerror(i32 noundef %8206) #11
  %8208 = call ptr @__errno_location() #12
  %8209 = load i32, ptr %8208, align 4, !tbaa !5
  %8210 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8197, ptr noundef @.str.2, i32 noundef %8198, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8201, ptr noundef %8204, ptr noundef %8207, i32 noundef %8209) #11
  br label %8228

8211:                                             ; preds = %8189, %8182
  %8212 = load i32, ptr %202, align 4, !tbaa !5
  %8213 = call ptr @__errno_location() #12
  store i32 %8212, ptr %8213, align 4, !tbaa !5
  %8214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8215 = load i32, ptr @test_count, align 4, !tbaa !5
  %8216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8217 = load i32, ptr %8216, align 4, !tbaa !5
  %8218 = call ptr @s2n_strerror(i32 noundef %8217, ptr noundef @.str.4)
  %8219 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8220 = load i32, ptr %8219, align 4, !tbaa !5
  %8221 = call ptr @s2n_strerror_debug(i32 noundef %8220, ptr noundef @.str.4)
  %8222 = call ptr @__errno_location() #12
  %8223 = load i32, ptr %8222, align 4, !tbaa !5
  %8224 = call ptr @strerror(i32 noundef %8223) #11
  %8225 = call ptr @__errno_location() #12
  %8226 = load i32, ptr %8225, align 4, !tbaa !5
  %8227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8214, ptr noundef @.str.5, i32 noundef %8215, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 342, ptr noundef %8218, ptr noundef %8221, ptr noundef %8224, i32 noundef %8226) #11
  br label %8228

8228:                                             ; preds = %8211, %8194
  call void @llvm.lifetime.end.p0(i64 4, ptr %202) #11
  br label %8229

8229:                                             ; preds = %8228
  br label %8230

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

8231:                                             ; No predecessors!
  br label %8232

8232:                                             ; preds = %8231
  br label %8233

8233:                                             ; preds = %8232, %8173
  br label %8234

8234:                                             ; preds = %8233
  br label %8235

8235:                                             ; preds = %8234
  br label %8236

8236:                                             ; preds = %8235
  br label %8237

8237:                                             ; preds = %8236
  br label %8238

8238:                                             ; preds = %8237
  %8239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8239, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8240 = call ptr @__errno_location() #12
  store i32 0, ptr %8240, align 4, !tbaa !5
  br label %8241

8241:                                             ; preds = %8238
  br label %8242

8242:                                             ; preds = %8241
  br label %8243

8243:                                             ; preds = %8242
  br label %8244

8244:                                             ; preds = %8243
  call void @llvm.lifetime.end.p0(i64 120, ptr %196) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %203) #11
  %8245 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %8245, ptr %203, align 8, !tbaa !9
  br label %8246

8246:                                             ; preds = %8244
  %8247 = load i32, ptr @test_count, align 4, !tbaa !5
  %8248 = add nsw i32 %8247, 1
  store i32 %8248, ptr @test_count, align 4, !tbaa !5
  %8249 = load ptr, ptr %203, align 8, !tbaa !9
  %8250 = icmp eq ptr %8249, null
  br i1 %8250, label %8251, label %8304

8251:                                             ; preds = %8246
  br label %8252

8252:                                             ; preds = %8251
  br label %8253

8253:                                             ; preds = %8252
  call void @llvm.lifetime.start.p0(i64 4, ptr %204) #11
  %8254 = call ptr @__errno_location() #12
  %8255 = load i32, ptr %8254, align 4, !tbaa !5
  store i32 %8255, ptr %204, align 4, !tbaa !5
  %8256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8257 = call i32 @s2n_print_stacktrace(ptr noundef %8256)
  %8258 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8259 = trunc i8 %8258 to i1
  br i1 %8259, label %8260, label %8282

8260:                                             ; preds = %8253
  %8261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8262 = call i32 @fileno(ptr noundef %8261) #11
  %8263 = call i32 @isatty(i32 noundef %8262) #11
  %8264 = icmp ne i32 %8263, 0
  br i1 %8264, label %8265, label %8282

8265:                                             ; preds = %8260
  %8266 = load i32, ptr %204, align 4, !tbaa !5
  %8267 = call ptr @__errno_location() #12
  store i32 %8266, ptr %8267, align 4, !tbaa !5
  %8268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8269 = load i32, ptr @test_count, align 4, !tbaa !5
  %8270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8271 = load i32, ptr %8270, align 4, !tbaa !5
  %8272 = call ptr @s2n_strerror(i32 noundef %8271, ptr noundef @.str.4)
  %8273 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8274 = load i32, ptr %8273, align 4, !tbaa !5
  %8275 = call ptr @s2n_strerror_debug(i32 noundef %8274, ptr noundef @.str.4)
  %8276 = call ptr @__errno_location() #12
  %8277 = load i32, ptr %8276, align 4, !tbaa !5
  %8278 = call ptr @strerror(i32 noundef %8277) #11
  %8279 = call ptr @__errno_location() #12
  %8280 = load i32, ptr %8279, align 4, !tbaa !5
  %8281 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8268, ptr noundef @.str.2, i32 noundef %8269, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8272, ptr noundef %8275, ptr noundef %8278, i32 noundef %8280) #11
  br label %8299

8282:                                             ; preds = %8260, %8253
  %8283 = load i32, ptr %204, align 4, !tbaa !5
  %8284 = call ptr @__errno_location() #12
  store i32 %8283, ptr %8284, align 4, !tbaa !5
  %8285 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8286 = load i32, ptr @test_count, align 4, !tbaa !5
  %8287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8288 = load i32, ptr %8287, align 4, !tbaa !5
  %8289 = call ptr @s2n_strerror(i32 noundef %8288, ptr noundef @.str.4)
  %8290 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8291 = load i32, ptr %8290, align 4, !tbaa !5
  %8292 = call ptr @s2n_strerror_debug(i32 noundef %8291, ptr noundef @.str.4)
  %8293 = call ptr @__errno_location() #12
  %8294 = load i32, ptr %8293, align 4, !tbaa !5
  %8295 = call ptr @strerror(i32 noundef %8294) #11
  %8296 = call ptr @__errno_location() #12
  %8297 = load i32, ptr %8296, align 4, !tbaa !5
  %8298 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8285, ptr noundef @.str.5, i32 noundef %8286, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 349, ptr noundef %8289, ptr noundef %8292, ptr noundef %8295, i32 noundef %8297) #11
  br label %8299

8299:                                             ; preds = %8282, %8265
  call void @llvm.lifetime.end.p0(i64 4, ptr %204) #11
  br label %8300

8300:                                             ; preds = %8299
  br label %8301

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

8302:                                             ; No predecessors!
  br label %8303

8303:                                             ; preds = %8302
  br label %8304

8304:                                             ; preds = %8303, %8246
  br label %8305

8305:                                             ; preds = %8304
  br label %8306

8306:                                             ; preds = %8305
  call void @llvm.lifetime.start.p0(i64 808, ptr %205) #11
  %8307 = load ptr, ptr %14, align 8, !tbaa !9
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %205, ptr align 8 %8307, i64 808, i1 false), !tbaa.struct !41
  %8308 = getelementptr inbounds %struct.s2n_client_hello, ptr %205, i32 0, i32 7
  %8309 = load i8, ptr %8308, align 2
  %8310 = and i8 %8309, -33
  %8311 = or i8 %8310, 32
  store i8 %8311, ptr %8308, align 2
  br label %8312

8312:                                             ; preds = %8306
  br label %8313

8313:                                             ; preds = %8312
  br label %8314

8314:                                             ; preds = %8313
  %8315 = load i32, ptr @test_count, align 4, !tbaa !5
  %8316 = add nsw i32 %8315, 1
  store i32 %8316, ptr @test_count, align 4, !tbaa !5
  %8317 = load ptr, ptr %203, align 8, !tbaa !9
  %8318 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %8317, ptr noundef %205)
  %8319 = icmp eq i32 %8318, -1
  br i1 %8319, label %8373, label %8320

8320:                                             ; preds = %8314
  br label %8321

8321:                                             ; preds = %8320
  br label %8322

8322:                                             ; preds = %8321
  call void @llvm.lifetime.start.p0(i64 4, ptr %206) #11
  %8323 = call ptr @__errno_location() #12
  %8324 = load i32, ptr %8323, align 4, !tbaa !5
  store i32 %8324, ptr %206, align 4, !tbaa !5
  %8325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8326 = call i32 @s2n_print_stacktrace(ptr noundef %8325)
  %8327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8328 = trunc i8 %8327 to i1
  br i1 %8328, label %8329, label %8351

8329:                                             ; preds = %8322
  %8330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8331 = call i32 @fileno(ptr noundef %8330) #11
  %8332 = call i32 @isatty(i32 noundef %8331) #11
  %8333 = icmp ne i32 %8332, 0
  br i1 %8333, label %8334, label %8351

8334:                                             ; preds = %8329
  %8335 = load i32, ptr %206, align 4, !tbaa !5
  %8336 = call ptr @__errno_location() #12
  store i32 %8335, ptr %8336, align 4, !tbaa !5
  %8337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8338 = load i32, ptr @test_count, align 4, !tbaa !5
  %8339 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8340 = load i32, ptr %8339, align 4, !tbaa !5
  %8341 = call ptr @s2n_strerror(i32 noundef %8340, ptr noundef @.str.4)
  %8342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8343 = load i32, ptr %8342, align 4, !tbaa !5
  %8344 = call ptr @s2n_strerror_debug(i32 noundef %8343, ptr noundef @.str.4)
  %8345 = call ptr @__errno_location() #12
  %8346 = load i32, ptr %8345, align 4, !tbaa !5
  %8347 = call ptr @strerror(i32 noundef %8346) #11
  %8348 = call ptr @__errno_location() #12
  %8349 = load i32, ptr %8348, align 4, !tbaa !5
  %8350 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8337, ptr noundef @.str.2, i32 noundef %8338, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 356, ptr noundef %8341, ptr noundef %8344, ptr noundef %8347, i32 noundef %8349) #11
  br label %8368

8351:                                             ; preds = %8329, %8322
  %8352 = load i32, ptr %206, align 4, !tbaa !5
  %8353 = call ptr @__errno_location() #12
  store i32 %8352, ptr %8353, align 4, !tbaa !5
  %8354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8355 = load i32, ptr @test_count, align 4, !tbaa !5
  %8356 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8357 = load i32, ptr %8356, align 4, !tbaa !5
  %8358 = call ptr @s2n_strerror(i32 noundef %8357, ptr noundef @.str.4)
  %8359 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8360 = load i32, ptr %8359, align 4, !tbaa !5
  %8361 = call ptr @s2n_strerror_debug(i32 noundef %8360, ptr noundef @.str.4)
  %8362 = call ptr @__errno_location() #12
  %8363 = load i32, ptr %8362, align 4, !tbaa !5
  %8364 = call ptr @strerror(i32 noundef %8363) #11
  %8365 = call ptr @__errno_location() #12
  %8366 = load i32, ptr %8365, align 4, !tbaa !5
  %8367 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8354, ptr noundef @.str.5, i32 noundef %8355, ptr noundef @.str.72, ptr noundef @.str.1, i32 noundef 356, ptr noundef %8358, ptr noundef %8361, ptr noundef %8364, i32 noundef %8366) #11
  br label %8368

8368:                                             ; preds = %8351, %8334
  call void @llvm.lifetime.end.p0(i64 4, ptr %206) #11
  br label %8369

8369:                                             ; preds = %8368
  br label %8370

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

8371:                                             ; No predecessors!
  br label %8372

8372:                                             ; preds = %8371
  br label %8373

8373:                                             ; preds = %8372, %8314
  br label %8374

8374:                                             ; preds = %8373
  br label %8375

8375:                                             ; preds = %8374
  br label %8376

8376:                                             ; preds = %8375
  %8377 = load i32, ptr @test_count, align 4, !tbaa !5
  %8378 = add nsw i32 %8377, 1
  store i32 %8378, ptr @test_count, align 4, !tbaa !5
  %8379 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8380 = load i32, ptr %8379, align 4, !tbaa !5
  %8381 = icmp eq i32 %8380, 335544384
  br i1 %8381, label %8435, label %8382

8382:                                             ; preds = %8376
  br label %8383

8383:                                             ; preds = %8382
  br label %8384

8384:                                             ; preds = %8383
  call void @llvm.lifetime.start.p0(i64 4, ptr %207) #11
  %8385 = call ptr @__errno_location() #12
  %8386 = load i32, ptr %8385, align 4, !tbaa !5
  store i32 %8386, ptr %207, align 4, !tbaa !5
  %8387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8388 = call i32 @s2n_print_stacktrace(ptr noundef %8387)
  %8389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8390 = trunc i8 %8389 to i1
  br i1 %8390, label %8391, label %8413

8391:                                             ; preds = %8384
  %8392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8393 = call i32 @fileno(ptr noundef %8392) #11
  %8394 = call i32 @isatty(i32 noundef %8393) #11
  %8395 = icmp ne i32 %8394, 0
  br i1 %8395, label %8396, label %8413

8396:                                             ; preds = %8391
  %8397 = load i32, ptr %207, align 4, !tbaa !5
  %8398 = call ptr @__errno_location() #12
  store i32 %8397, ptr %8398, align 4, !tbaa !5
  %8399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8400 = load i32, ptr @test_count, align 4, !tbaa !5
  %8401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8402 = load i32, ptr %8401, align 4, !tbaa !5
  %8403 = call ptr @s2n_strerror(i32 noundef %8402, ptr noundef @.str.4)
  %8404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8405 = load i32, ptr %8404, align 4, !tbaa !5
  %8406 = call ptr @s2n_strerror_debug(i32 noundef %8405, ptr noundef @.str.4)
  %8407 = call ptr @__errno_location() #12
  %8408 = load i32, ptr %8407, align 4, !tbaa !5
  %8409 = call ptr @strerror(i32 noundef %8408) #11
  %8410 = call ptr @__errno_location() #12
  %8411 = load i32, ptr %8410, align 4, !tbaa !5
  %8412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8399, ptr noundef @.str.2, i32 noundef %8400, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 356, ptr noundef %8403, ptr noundef %8406, ptr noundef %8409, i32 noundef %8411) #11
  br label %8430

8413:                                             ; preds = %8391, %8384
  %8414 = load i32, ptr %207, align 4, !tbaa !5
  %8415 = call ptr @__errno_location() #12
  store i32 %8414, ptr %8415, align 4, !tbaa !5
  %8416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8417 = load i32, ptr @test_count, align 4, !tbaa !5
  %8418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8419 = load i32, ptr %8418, align 4, !tbaa !5
  %8420 = call ptr @s2n_strerror(i32 noundef %8419, ptr noundef @.str.4)
  %8421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8422 = load i32, ptr %8421, align 4, !tbaa !5
  %8423 = call ptr @s2n_strerror_debug(i32 noundef %8422, ptr noundef @.str.4)
  %8424 = call ptr @__errno_location() #12
  %8425 = load i32, ptr %8424, align 4, !tbaa !5
  %8426 = call ptr @strerror(i32 noundef %8425) #11
  %8427 = call ptr @__errno_location() #12
  %8428 = load i32, ptr %8427, align 4, !tbaa !5
  %8429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8416, ptr noundef @.str.5, i32 noundef %8417, ptr noundef @.str.73, ptr noundef @.str.1, i32 noundef 356, ptr noundef %8420, ptr noundef %8423, ptr noundef %8426, i32 noundef %8428) #11
  br label %8430

8430:                                             ; preds = %8413, %8396
  call void @llvm.lifetime.end.p0(i64 4, ptr %207) #11
  br label %8431

8431:                                             ; preds = %8430
  br label %8432

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

8433:                                             ; No predecessors!
  br label %8434

8434:                                             ; preds = %8433
  br label %8435

8435:                                             ; preds = %8434, %8376
  br label %8436

8436:                                             ; preds = %8435
  br label %8437

8437:                                             ; preds = %8436
  br label %8438

8438:                                             ; preds = %8437
  %8439 = load i32, ptr @test_count, align 4, !tbaa !5
  %8440 = add nsw i32 %8439, 1
  store i32 %8440, ptr @test_count, align 4, !tbaa !5
  %8441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8442 = load i32, ptr %8441, align 4, !tbaa !5
  %8443 = call ptr @s2n_strerror_debug(i32 noundef %8442, ptr noundef @.str.4)
  %8444 = icmp eq ptr %8443, null
  br i1 %8444, label %8445, label %8498

8445:                                             ; preds = %8438
  br label %8446

8446:                                             ; preds = %8445
  br label %8447

8447:                                             ; preds = %8446
  call void @llvm.lifetime.start.p0(i64 4, ptr %208) #11
  %8448 = call ptr @__errno_location() #12
  %8449 = load i32, ptr %8448, align 4, !tbaa !5
  store i32 %8449, ptr %208, align 4, !tbaa !5
  %8450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8451 = call i32 @s2n_print_stacktrace(ptr noundef %8450)
  %8452 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8453 = trunc i8 %8452 to i1
  br i1 %8453, label %8454, label %8476

8454:                                             ; preds = %8447
  %8455 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8456 = call i32 @fileno(ptr noundef %8455) #11
  %8457 = call i32 @isatty(i32 noundef %8456) #11
  %8458 = icmp ne i32 %8457, 0
  br i1 %8458, label %8459, label %8476

8459:                                             ; preds = %8454
  %8460 = load i32, ptr %208, align 4, !tbaa !5
  %8461 = call ptr @__errno_location() #12
  store i32 %8460, ptr %8461, align 4, !tbaa !5
  %8462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8463 = load i32, ptr @test_count, align 4, !tbaa !5
  %8464 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8465 = load i32, ptr %8464, align 4, !tbaa !5
  %8466 = call ptr @s2n_strerror(i32 noundef %8465, ptr noundef @.str.4)
  %8467 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8468 = load i32, ptr %8467, align 4, !tbaa !5
  %8469 = call ptr @s2n_strerror_debug(i32 noundef %8468, ptr noundef @.str.4)
  %8470 = call ptr @__errno_location() #12
  %8471 = load i32, ptr %8470, align 4, !tbaa !5
  %8472 = call ptr @strerror(i32 noundef %8471) #11
  %8473 = call ptr @__errno_location() #12
  %8474 = load i32, ptr %8473, align 4, !tbaa !5
  %8475 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8462, ptr noundef @.str.2, i32 noundef %8463, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 356, ptr noundef %8466, ptr noundef %8469, ptr noundef %8472, i32 noundef %8474) #11
  br label %8493

8476:                                             ; preds = %8454, %8447
  %8477 = load i32, ptr %208, align 4, !tbaa !5
  %8478 = call ptr @__errno_location() #12
  store i32 %8477, ptr %8478, align 4, !tbaa !5
  %8479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8480 = load i32, ptr @test_count, align 4, !tbaa !5
  %8481 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8482 = load i32, ptr %8481, align 4, !tbaa !5
  %8483 = call ptr @s2n_strerror(i32 noundef %8482, ptr noundef @.str.4)
  %8484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8485 = load i32, ptr %8484, align 4, !tbaa !5
  %8486 = call ptr @s2n_strerror_debug(i32 noundef %8485, ptr noundef @.str.4)
  %8487 = call ptr @__errno_location() #12
  %8488 = load i32, ptr %8487, align 4, !tbaa !5
  %8489 = call ptr @strerror(i32 noundef %8488) #11
  %8490 = call ptr @__errno_location() #12
  %8491 = load i32, ptr %8490, align 4, !tbaa !5
  %8492 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8479, ptr noundef @.str.5, i32 noundef %8480, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 356, ptr noundef %8483, ptr noundef %8486, ptr noundef %8489, i32 noundef %8491) #11
  br label %8493

8493:                                             ; preds = %8476, %8459
  call void @llvm.lifetime.end.p0(i64 4, ptr %208) #11
  br label %8494

8494:                                             ; preds = %8493
  br label %8495

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

8496:                                             ; No predecessors!
  br label %8497

8497:                                             ; preds = %8496
  br label %8498

8498:                                             ; preds = %8497, %8438
  br label %8499

8499:                                             ; preds = %8498
  br label %8500

8500:                                             ; preds = %8499
  br label %8501

8501:                                             ; preds = %8500
  br label %8502

8502:                                             ; preds = %8501
  br label %8503

8503:                                             ; preds = %8502
  %8504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %8504, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %8505 = call ptr @__errno_location() #12
  store i32 0, ptr %8505, align 4, !tbaa !5
  br label %8506

8506:                                             ; preds = %8503
  br label %8507

8507:                                             ; preds = %8506
  br label %8508

8508:                                             ; preds = %8507
  br label %8509

8509:                                             ; preds = %8508
  call void @llvm.lifetime.end.p0(i64 808, ptr %205) #11
  %8510 = call i32 @s2n_fingerprint_free(ptr noundef %203)
  call void @llvm.lifetime.end.p0(i64 8, ptr %203) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %209) #11
  %8511 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %8511, ptr %209, align 8, !tbaa !9
  br label %8512

8512:                                             ; preds = %8509
  %8513 = load i32, ptr @test_count, align 4, !tbaa !5
  %8514 = add nsw i32 %8513, 1
  store i32 %8514, ptr @test_count, align 4, !tbaa !5
  %8515 = load ptr, ptr %209, align 8, !tbaa !9
  %8516 = icmp eq ptr %8515, null
  br i1 %8516, label %8517, label %8570

8517:                                             ; preds = %8512
  br label %8518

8518:                                             ; preds = %8517
  br label %8519

8519:                                             ; preds = %8518
  call void @llvm.lifetime.start.p0(i64 4, ptr %210) #11
  %8520 = call ptr @__errno_location() #12
  %8521 = load i32, ptr %8520, align 4, !tbaa !5
  store i32 %8521, ptr %210, align 4, !tbaa !5
  %8522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8523 = call i32 @s2n_print_stacktrace(ptr noundef %8522)
  %8524 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8525 = trunc i8 %8524 to i1
  br i1 %8525, label %8526, label %8548

8526:                                             ; preds = %8519
  %8527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8528 = call i32 @fileno(ptr noundef %8527) #11
  %8529 = call i32 @isatty(i32 noundef %8528) #11
  %8530 = icmp ne i32 %8529, 0
  br i1 %8530, label %8531, label %8548

8531:                                             ; preds = %8526
  %8532 = load i32, ptr %210, align 4, !tbaa !5
  %8533 = call ptr @__errno_location() #12
  store i32 %8532, ptr %8533, align 4, !tbaa !5
  %8534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8535 = load i32, ptr @test_count, align 4, !tbaa !5
  %8536 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8537 = load i32, ptr %8536, align 4, !tbaa !5
  %8538 = call ptr @s2n_strerror(i32 noundef %8537, ptr noundef @.str.4)
  %8539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8540 = load i32, ptr %8539, align 4, !tbaa !5
  %8541 = call ptr @s2n_strerror_debug(i32 noundef %8540, ptr noundef @.str.4)
  %8542 = call ptr @__errno_location() #12
  %8543 = load i32, ptr %8542, align 4, !tbaa !5
  %8544 = call ptr @strerror(i32 noundef %8543) #11
  %8545 = call ptr @__errno_location() #12
  %8546 = load i32, ptr %8545, align 4, !tbaa !5
  %8547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8534, ptr noundef @.str.2, i32 noundef %8535, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 363, ptr noundef %8538, ptr noundef %8541, ptr noundef %8544, i32 noundef %8546) #11
  br label %8565

8548:                                             ; preds = %8526, %8519
  %8549 = load i32, ptr %210, align 4, !tbaa !5
  %8550 = call ptr @__errno_location() #12
  store i32 %8549, ptr %8550, align 4, !tbaa !5
  %8551 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8552 = load i32, ptr @test_count, align 4, !tbaa !5
  %8553 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8554 = load i32, ptr %8553, align 4, !tbaa !5
  %8555 = call ptr @s2n_strerror(i32 noundef %8554, ptr noundef @.str.4)
  %8556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8557 = load i32, ptr %8556, align 4, !tbaa !5
  %8558 = call ptr @s2n_strerror_debug(i32 noundef %8557, ptr noundef @.str.4)
  %8559 = call ptr @__errno_location() #12
  %8560 = load i32, ptr %8559, align 4, !tbaa !5
  %8561 = call ptr @strerror(i32 noundef %8560) #11
  %8562 = call ptr @__errno_location() #12
  %8563 = load i32, ptr %8562, align 4, !tbaa !5
  %8564 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8551, ptr noundef @.str.5, i32 noundef %8552, ptr noundef @.str.54, ptr noundef @.str.1, i32 noundef 363, ptr noundef %8555, ptr noundef %8558, ptr noundef %8561, i32 noundef %8563) #11
  br label %8565

8565:                                             ; preds = %8548, %8531
  call void @llvm.lifetime.end.p0(i64 4, ptr %210) #11
  br label %8566

8566:                                             ; preds = %8565
  br label %8567

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

8568:                                             ; No predecessors!
  br label %8569

8569:                                             ; preds = %8568
  br label %8570

8570:                                             ; preds = %8569, %8512
  br label %8571

8571:                                             ; preds = %8570
  br label %8572

8572:                                             ; preds = %8571
  br label %8573

8573:                                             ; preds = %8572
  %8574 = load i32, ptr @test_count, align 4, !tbaa !5
  %8575 = add nsw i32 %8574, 1
  store i32 %8575, ptr @test_count, align 4, !tbaa !5
  %8576 = load ptr, ptr %209, align 8, !tbaa !9
  %8577 = load ptr, ptr %14, align 8, !tbaa !9
  %8578 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %8576, ptr noundef %8577)
  %8579 = icmp eq i32 %8578, -1
  br i1 %8579, label %8580, label %8633

8580:                                             ; preds = %8573
  br label %8581

8581:                                             ; preds = %8580
  br label %8582

8582:                                             ; preds = %8581
  call void @llvm.lifetime.start.p0(i64 4, ptr %211) #11
  %8583 = call ptr @__errno_location() #12
  %8584 = load i32, ptr %8583, align 4, !tbaa !5
  store i32 %8584, ptr %211, align 4, !tbaa !5
  %8585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8586 = call i32 @s2n_print_stacktrace(ptr noundef %8585)
  %8587 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8588 = trunc i8 %8587 to i1
  br i1 %8588, label %8589, label %8611

8589:                                             ; preds = %8582
  %8590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8591 = call i32 @fileno(ptr noundef %8590) #11
  %8592 = call i32 @isatty(i32 noundef %8591) #11
  %8593 = icmp ne i32 %8592, 0
  br i1 %8593, label %8594, label %8611

8594:                                             ; preds = %8589
  %8595 = load i32, ptr %211, align 4, !tbaa !5
  %8596 = call ptr @__errno_location() #12
  store i32 %8595, ptr %8596, align 4, !tbaa !5
  %8597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8598 = load i32, ptr @test_count, align 4, !tbaa !5
  %8599 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8600 = load i32, ptr %8599, align 4, !tbaa !5
  %8601 = call ptr @s2n_strerror(i32 noundef %8600, ptr noundef @.str.4)
  %8602 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8603 = load i32, ptr %8602, align 4, !tbaa !5
  %8604 = call ptr @s2n_strerror_debug(i32 noundef %8603, ptr noundef @.str.4)
  %8605 = call ptr @__errno_location() #12
  %8606 = load i32, ptr %8605, align 4, !tbaa !5
  %8607 = call ptr @strerror(i32 noundef %8606) #11
  %8608 = call ptr @__errno_location() #12
  %8609 = load i32, ptr %8608, align 4, !tbaa !5
  %8610 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8597, ptr noundef @.str.2, i32 noundef %8598, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 364, ptr noundef %8601, ptr noundef %8604, ptr noundef %8607, i32 noundef %8609) #11
  br label %8628

8611:                                             ; preds = %8589, %8582
  %8612 = load i32, ptr %211, align 4, !tbaa !5
  %8613 = call ptr @__errno_location() #12
  store i32 %8612, ptr %8613, align 4, !tbaa !5
  %8614 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8615 = load i32, ptr @test_count, align 4, !tbaa !5
  %8616 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8617 = load i32, ptr %8616, align 4, !tbaa !5
  %8618 = call ptr @s2n_strerror(i32 noundef %8617, ptr noundef @.str.4)
  %8619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8620 = load i32, ptr %8619, align 4, !tbaa !5
  %8621 = call ptr @s2n_strerror_debug(i32 noundef %8620, ptr noundef @.str.4)
  %8622 = call ptr @__errno_location() #12
  %8623 = load i32, ptr %8622, align 4, !tbaa !5
  %8624 = call ptr @strerror(i32 noundef %8623) #11
  %8625 = call ptr @__errno_location() #12
  %8626 = load i32, ptr %8625, align 4, !tbaa !5
  %8627 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8614, ptr noundef @.str.5, i32 noundef %8615, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 364, ptr noundef %8618, ptr noundef %8621, ptr noundef %8624, i32 noundef %8626) #11
  br label %8628

8628:                                             ; preds = %8611, %8594
  call void @llvm.lifetime.end.p0(i64 4, ptr %211) #11
  br label %8629

8629:                                             ; preds = %8628
  br label %8630

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

8631:                                             ; No predecessors!
  br label %8632

8632:                                             ; preds = %8631
  br label %8633

8633:                                             ; preds = %8632, %8573
  br label %8634

8634:                                             ; preds = %8633
  br label %8635

8635:                                             ; preds = %8634
  br label %8636

8636:                                             ; preds = %8635
  %8637 = load i32, ptr @test_count, align 4, !tbaa !5
  %8638 = add nsw i32 %8637, 1
  store i32 %8638, ptr @test_count, align 4, !tbaa !5
  %8639 = load ptr, ptr %209, align 8, !tbaa !9
  %8640 = getelementptr inbounds %struct.s2n_fingerprint, ptr %8639, i32 0, i32 2
  %8641 = load ptr, ptr %8640, align 8, !tbaa !38
  %8642 = load ptr, ptr %14, align 8, !tbaa !9
  %8643 = icmp eq ptr %8641, %8642
  br i1 %8643, label %8697, label %8644

8644:                                             ; preds = %8636
  br label %8645

8645:                                             ; preds = %8644
  br label %8646

8646:                                             ; preds = %8645
  call void @llvm.lifetime.start.p0(i64 4, ptr %212) #11
  %8647 = call ptr @__errno_location() #12
  %8648 = load i32, ptr %8647, align 4, !tbaa !5
  store i32 %8648, ptr %212, align 4, !tbaa !5
  %8649 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8650 = call i32 @s2n_print_stacktrace(ptr noundef %8649)
  %8651 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8652 = trunc i8 %8651 to i1
  br i1 %8652, label %8653, label %8675

8653:                                             ; preds = %8646
  %8654 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8655 = call i32 @fileno(ptr noundef %8654) #11
  %8656 = call i32 @isatty(i32 noundef %8655) #11
  %8657 = icmp ne i32 %8656, 0
  br i1 %8657, label %8658, label %8675

8658:                                             ; preds = %8653
  %8659 = load i32, ptr %212, align 4, !tbaa !5
  %8660 = call ptr @__errno_location() #12
  store i32 %8659, ptr %8660, align 4, !tbaa !5
  %8661 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8662 = load i32, ptr @test_count, align 4, !tbaa !5
  %8663 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8664 = load i32, ptr %8663, align 4, !tbaa !5
  %8665 = call ptr @s2n_strerror(i32 noundef %8664, ptr noundef @.str.4)
  %8666 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8667 = load i32, ptr %8666, align 4, !tbaa !5
  %8668 = call ptr @s2n_strerror_debug(i32 noundef %8667, ptr noundef @.str.4)
  %8669 = call ptr @__errno_location() #12
  %8670 = load i32, ptr %8669, align 4, !tbaa !5
  %8671 = call ptr @strerror(i32 noundef %8670) #11
  %8672 = call ptr @__errno_location() #12
  %8673 = load i32, ptr %8672, align 4, !tbaa !5
  %8674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8661, ptr noundef @.str.2, i32 noundef %8662, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 365, ptr noundef %8665, ptr noundef %8668, ptr noundef %8671, i32 noundef %8673) #11
  br label %8692

8675:                                             ; preds = %8653, %8646
  %8676 = load i32, ptr %212, align 4, !tbaa !5
  %8677 = call ptr @__errno_location() #12
  store i32 %8676, ptr %8677, align 4, !tbaa !5
  %8678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8679 = load i32, ptr @test_count, align 4, !tbaa !5
  %8680 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8681 = load i32, ptr %8680, align 4, !tbaa !5
  %8682 = call ptr @s2n_strerror(i32 noundef %8681, ptr noundef @.str.4)
  %8683 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8684 = load i32, ptr %8683, align 4, !tbaa !5
  %8685 = call ptr @s2n_strerror_debug(i32 noundef %8684, ptr noundef @.str.4)
  %8686 = call ptr @__errno_location() #12
  %8687 = load i32, ptr %8686, align 4, !tbaa !5
  %8688 = call ptr @strerror(i32 noundef %8687) #11
  %8689 = call ptr @__errno_location() #12
  %8690 = load i32, ptr %8689, align 4, !tbaa !5
  %8691 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8678, ptr noundef @.str.5, i32 noundef %8679, ptr noundef @.str.75, ptr noundef @.str.1, i32 noundef 365, ptr noundef %8682, ptr noundef %8685, ptr noundef %8688, i32 noundef %8690) #11
  br label %8692

8692:                                             ; preds = %8675, %8658
  call void @llvm.lifetime.end.p0(i64 4, ptr %212) #11
  br label %8693

8693:                                             ; preds = %8692
  br label %8694

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

8695:                                             ; No predecessors!
  br label %8696

8696:                                             ; preds = %8695
  br label %8697

8697:                                             ; preds = %8696, %8636
  br label %8698

8698:                                             ; preds = %8697
  br label %8699

8699:                                             ; preds = %8698
  %8700 = call i32 @s2n_fingerprint_free(ptr noundef %209)
  call void @llvm.lifetime.end.p0(i64 8, ptr %209) #11
  call void @llvm.lifetime.start.p0(i64 120, ptr %213) #11
  call void @llvm.memset.p0.i64(ptr align 8 %213, i8 0, i64 120, i1 false)
  br label %8701

8701:                                             ; preds = %8699
  %8702 = load i32, ptr @test_count, align 4, !tbaa !5
  %8703 = add nsw i32 %8702, 1
  store i32 %8703, ptr @test_count, align 4, !tbaa !5
  call void @llvm.memset.p0.i64(ptr align 8 %213, i8 1, i64 120, i1 false)
  %8704 = icmp eq ptr %213, null
  br i1 %8704, label %8705, label %8758

8705:                                             ; preds = %8701
  br label %8706

8706:                                             ; preds = %8705
  br label %8707

8707:                                             ; preds = %8706
  call void @llvm.lifetime.start.p0(i64 4, ptr %214) #11
  %8708 = call ptr @__errno_location() #12
  %8709 = load i32, ptr %8708, align 4, !tbaa !5
  store i32 %8709, ptr %214, align 4, !tbaa !5
  %8710 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8711 = call i32 @s2n_print_stacktrace(ptr noundef %8710)
  %8712 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8713 = trunc i8 %8712 to i1
  br i1 %8713, label %8714, label %8736

8714:                                             ; preds = %8707
  %8715 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8716 = call i32 @fileno(ptr noundef %8715) #11
  %8717 = call i32 @isatty(i32 noundef %8716) #11
  %8718 = icmp ne i32 %8717, 0
  br i1 %8718, label %8719, label %8736

8719:                                             ; preds = %8714
  %8720 = load i32, ptr %214, align 4, !tbaa !5
  %8721 = call ptr @__errno_location() #12
  store i32 %8720, ptr %8721, align 4, !tbaa !5
  %8722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8723 = load i32, ptr @test_count, align 4, !tbaa !5
  %8724 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8725 = load i32, ptr %8724, align 4, !tbaa !5
  %8726 = call ptr @s2n_strerror(i32 noundef %8725, ptr noundef @.str.4)
  %8727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8728 = load i32, ptr %8727, align 4, !tbaa !5
  %8729 = call ptr @s2n_strerror_debug(i32 noundef %8728, ptr noundef @.str.4)
  %8730 = call ptr @__errno_location() #12
  %8731 = load i32, ptr %8730, align 4, !tbaa !5
  %8732 = call ptr @strerror(i32 noundef %8731) #11
  %8733 = call ptr @__errno_location() #12
  %8734 = load i32, ptr %8733, align 4, !tbaa !5
  %8735 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8722, ptr noundef @.str.2, i32 noundef %8723, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8726, ptr noundef %8729, ptr noundef %8732, i32 noundef %8734) #11
  br label %8753

8736:                                             ; preds = %8714, %8707
  %8737 = load i32, ptr %214, align 4, !tbaa !5
  %8738 = call ptr @__errno_location() #12
  store i32 %8737, ptr %8738, align 4, !tbaa !5
  %8739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8740 = load i32, ptr @test_count, align 4, !tbaa !5
  %8741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8742 = load i32, ptr %8741, align 4, !tbaa !5
  %8743 = call ptr @s2n_strerror(i32 noundef %8742, ptr noundef @.str.4)
  %8744 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8745 = load i32, ptr %8744, align 4, !tbaa !5
  %8746 = call ptr @s2n_strerror_debug(i32 noundef %8745, ptr noundef @.str.4)
  %8747 = call ptr @__errno_location() #12
  %8748 = load i32, ptr %8747, align 4, !tbaa !5
  %8749 = call ptr @strerror(i32 noundef %8748) #11
  %8750 = call ptr @__errno_location() #12
  %8751 = load i32, ptr %8750, align 4, !tbaa !5
  %8752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8739, ptr noundef @.str.5, i32 noundef %8740, ptr noundef @.str.62, ptr noundef @.str.1, i32 noundef 373, ptr noundef %8743, ptr noundef %8746, ptr noundef %8749, i32 noundef %8751) #11
  br label %8753

8753:                                             ; preds = %8736, %8719
  call void @llvm.lifetime.end.p0(i64 4, ptr %214) #11
  br label %8754

8754:                                             ; preds = %8753
  br label %8755

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

8756:                                             ; No predecessors!
  br label %8757

8757:                                             ; preds = %8756
  br label %8758

8758:                                             ; preds = %8757, %8701
  br label %8759

8759:                                             ; preds = %8758
  br label %8760

8760:                                             ; preds = %8759
  br label %8761

8761:                                             ; preds = %8760
  %8762 = load i32, ptr @test_count, align 4, !tbaa !5
  %8763 = add nsw i32 %8762, 1
  store i32 %8763, ptr @test_count, align 4, !tbaa !5
  %8764 = getelementptr inbounds %struct.s2n_fingerprint, ptr %213, i32 0, i32 2
  %8765 = load ptr, ptr %8764, align 8, !tbaa !38
  %8766 = load ptr, ptr %14, align 8, !tbaa !9
  %8767 = icmp eq ptr %8765, %8766
  br i1 %8767, label %8768, label %8821

8768:                                             ; preds = %8761
  br label %8769

8769:                                             ; preds = %8768
  br label %8770

8770:                                             ; preds = %8769
  call void @llvm.lifetime.start.p0(i64 4, ptr %215) #11
  %8771 = call ptr @__errno_location() #12
  %8772 = load i32, ptr %8771, align 4, !tbaa !5
  store i32 %8772, ptr %215, align 4, !tbaa !5
  %8773 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8774 = call i32 @s2n_print_stacktrace(ptr noundef %8773)
  %8775 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8776 = trunc i8 %8775 to i1
  br i1 %8776, label %8777, label %8799

8777:                                             ; preds = %8770
  %8778 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8779 = call i32 @fileno(ptr noundef %8778) #11
  %8780 = call i32 @isatty(i32 noundef %8779) #11
  %8781 = icmp ne i32 %8780, 0
  br i1 %8781, label %8782, label %8799

8782:                                             ; preds = %8777
  %8783 = load i32, ptr %215, align 4, !tbaa !5
  %8784 = call ptr @__errno_location() #12
  store i32 %8783, ptr %8784, align 4, !tbaa !5
  %8785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8786 = load i32, ptr @test_count, align 4, !tbaa !5
  %8787 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8788 = load i32, ptr %8787, align 4, !tbaa !5
  %8789 = call ptr @s2n_strerror(i32 noundef %8788, ptr noundef @.str.4)
  %8790 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8791 = load i32, ptr %8790, align 4, !tbaa !5
  %8792 = call ptr @s2n_strerror_debug(i32 noundef %8791, ptr noundef @.str.4)
  %8793 = call ptr @__errno_location() #12
  %8794 = load i32, ptr %8793, align 4, !tbaa !5
  %8795 = call ptr @strerror(i32 noundef %8794) #11
  %8796 = call ptr @__errno_location() #12
  %8797 = load i32, ptr %8796, align 4, !tbaa !5
  %8798 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8785, ptr noundef @.str.2, i32 noundef %8786, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8789, ptr noundef %8792, ptr noundef %8795, i32 noundef %8797) #11
  br label %8816

8799:                                             ; preds = %8777, %8770
  %8800 = load i32, ptr %215, align 4, !tbaa !5
  %8801 = call ptr @__errno_location() #12
  store i32 %8800, ptr %8801, align 4, !tbaa !5
  %8802 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8803 = load i32, ptr @test_count, align 4, !tbaa !5
  %8804 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8805 = load i32, ptr %8804, align 4, !tbaa !5
  %8806 = call ptr @s2n_strerror(i32 noundef %8805, ptr noundef @.str.4)
  %8807 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8808 = load i32, ptr %8807, align 4, !tbaa !5
  %8809 = call ptr @s2n_strerror_debug(i32 noundef %8808, ptr noundef @.str.4)
  %8810 = call ptr @__errno_location() #12
  %8811 = load i32, ptr %8810, align 4, !tbaa !5
  %8812 = call ptr @strerror(i32 noundef %8811) #11
  %8813 = call ptr @__errno_location() #12
  %8814 = load i32, ptr %8813, align 4, !tbaa !5
  %8815 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8802, ptr noundef @.str.5, i32 noundef %8803, ptr noundef @.str.76, ptr noundef @.str.1, i32 noundef 374, ptr noundef %8806, ptr noundef %8809, ptr noundef %8812, i32 noundef %8814) #11
  br label %8816

8816:                                             ; preds = %8799, %8782
  call void @llvm.lifetime.end.p0(i64 4, ptr %215) #11
  br label %8817

8817:                                             ; preds = %8816
  br label %8818

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

8819:                                             ; No predecessors!
  br label %8820

8820:                                             ; preds = %8819
  br label %8821

8821:                                             ; preds = %8820, %8761
  br label %8822

8822:                                             ; preds = %8821
  br label %8823

8823:                                             ; preds = %8822
  br label %8824

8824:                                             ; preds = %8823
  %8825 = load i32, ptr @test_count, align 4, !tbaa !5
  %8826 = add nsw i32 %8825, 1
  store i32 %8826, ptr @test_count, align 4, !tbaa !5
  %8827 = getelementptr inbounds %struct.s2n_fingerprint, ptr %213, i32 0, i32 0
  %8828 = load i64, ptr %8827, align 8, !tbaa !39
  %8829 = icmp eq i64 %8828, 0
  br i1 %8829, label %8830, label %8883

8830:                                             ; preds = %8824
  br label %8831

8831:                                             ; preds = %8830
  br label %8832

8832:                                             ; preds = %8831
  call void @llvm.lifetime.start.p0(i64 4, ptr %216) #11
  %8833 = call ptr @__errno_location() #12
  %8834 = load i32, ptr %8833, align 4, !tbaa !5
  store i32 %8834, ptr %216, align 4, !tbaa !5
  %8835 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8836 = call i32 @s2n_print_stacktrace(ptr noundef %8835)
  %8837 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8838 = trunc i8 %8837 to i1
  br i1 %8838, label %8839, label %8861

8839:                                             ; preds = %8832
  %8840 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8841 = call i32 @fileno(ptr noundef %8840) #11
  %8842 = call i32 @isatty(i32 noundef %8841) #11
  %8843 = icmp ne i32 %8842, 0
  br i1 %8843, label %8844, label %8861

8844:                                             ; preds = %8839
  %8845 = load i32, ptr %216, align 4, !tbaa !5
  %8846 = call ptr @__errno_location() #12
  store i32 %8845, ptr %8846, align 4, !tbaa !5
  %8847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8848 = load i32, ptr @test_count, align 4, !tbaa !5
  %8849 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8850 = load i32, ptr %8849, align 4, !tbaa !5
  %8851 = call ptr @s2n_strerror(i32 noundef %8850, ptr noundef @.str.4)
  %8852 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8853 = load i32, ptr %8852, align 4, !tbaa !5
  %8854 = call ptr @s2n_strerror_debug(i32 noundef %8853, ptr noundef @.str.4)
  %8855 = call ptr @__errno_location() #12
  %8856 = load i32, ptr %8855, align 4, !tbaa !5
  %8857 = call ptr @strerror(i32 noundef %8856) #11
  %8858 = call ptr @__errno_location() #12
  %8859 = load i32, ptr %8858, align 4, !tbaa !5
  %8860 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8847, ptr noundef @.str.2, i32 noundef %8848, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8851, ptr noundef %8854, ptr noundef %8857, i32 noundef %8859) #11
  br label %8878

8861:                                             ; preds = %8839, %8832
  %8862 = load i32, ptr %216, align 4, !tbaa !5
  %8863 = call ptr @__errno_location() #12
  store i32 %8862, ptr %8863, align 4, !tbaa !5
  %8864 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8865 = load i32, ptr @test_count, align 4, !tbaa !5
  %8866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8867 = load i32, ptr %8866, align 4, !tbaa !5
  %8868 = call ptr @s2n_strerror(i32 noundef %8867, ptr noundef @.str.4)
  %8869 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8870 = load i32, ptr %8869, align 4, !tbaa !5
  %8871 = call ptr @s2n_strerror_debug(i32 noundef %8870, ptr noundef @.str.4)
  %8872 = call ptr @__errno_location() #12
  %8873 = load i32, ptr %8872, align 4, !tbaa !5
  %8874 = call ptr @strerror(i32 noundef %8873) #11
  %8875 = call ptr @__errno_location() #12
  %8876 = load i32, ptr %8875, align 4, !tbaa !5
  %8877 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8864, ptr noundef @.str.5, i32 noundef %8865, ptr noundef @.str.66, ptr noundef @.str.1, i32 noundef 375, ptr noundef %8868, ptr noundef %8871, ptr noundef %8874, i32 noundef %8876) #11
  br label %8878

8878:                                             ; preds = %8861, %8844
  call void @llvm.lifetime.end.p0(i64 4, ptr %216) #11
  br label %8879

8879:                                             ; preds = %8878
  br label %8880

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

8881:                                             ; No predecessors!
  br label %8882

8882:                                             ; preds = %8881
  br label %8883

8883:                                             ; preds = %8882, %8824
  br label %8884

8884:                                             ; preds = %8883
  br label %8885

8885:                                             ; preds = %8884
  br label %8886

8886:                                             ; preds = %8885
  %8887 = load i32, ptr @test_count, align 4, !tbaa !5
  %8888 = add nsw i32 %8887, 1
  store i32 %8888, ptr @test_count, align 4, !tbaa !5
  %8889 = load ptr, ptr %14, align 8, !tbaa !9
  %8890 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %213, ptr noundef %8889)
  %8891 = icmp eq i32 %8890, -1
  br i1 %8891, label %8892, label %8945

8892:                                             ; preds = %8886
  br label %8893

8893:                                             ; preds = %8892
  br label %8894

8894:                                             ; preds = %8893
  call void @llvm.lifetime.start.p0(i64 4, ptr %217) #11
  %8895 = call ptr @__errno_location() #12
  %8896 = load i32, ptr %8895, align 4, !tbaa !5
  store i32 %8896, ptr %217, align 4, !tbaa !5
  %8897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8898 = call i32 @s2n_print_stacktrace(ptr noundef %8897)
  %8899 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8900 = trunc i8 %8899 to i1
  br i1 %8900, label %8901, label %8923

8901:                                             ; preds = %8894
  %8902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8903 = call i32 @fileno(ptr noundef %8902) #11
  %8904 = call i32 @isatty(i32 noundef %8903) #11
  %8905 = icmp ne i32 %8904, 0
  br i1 %8905, label %8906, label %8923

8906:                                             ; preds = %8901
  %8907 = load i32, ptr %217, align 4, !tbaa !5
  %8908 = call ptr @__errno_location() #12
  store i32 %8907, ptr %8908, align 4, !tbaa !5
  %8909 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8910 = load i32, ptr @test_count, align 4, !tbaa !5
  %8911 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8912 = load i32, ptr %8911, align 4, !tbaa !5
  %8913 = call ptr @s2n_strerror(i32 noundef %8912, ptr noundef @.str.4)
  %8914 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8915 = load i32, ptr %8914, align 4, !tbaa !5
  %8916 = call ptr @s2n_strerror_debug(i32 noundef %8915, ptr noundef @.str.4)
  %8917 = call ptr @__errno_location() #12
  %8918 = load i32, ptr %8917, align 4, !tbaa !5
  %8919 = call ptr @strerror(i32 noundef %8918) #11
  %8920 = call ptr @__errno_location() #12
  %8921 = load i32, ptr %8920, align 4, !tbaa !5
  %8922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8909, ptr noundef @.str.2, i32 noundef %8910, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 378, ptr noundef %8913, ptr noundef %8916, ptr noundef %8919, i32 noundef %8921) #11
  br label %8940

8923:                                             ; preds = %8901, %8894
  %8924 = load i32, ptr %217, align 4, !tbaa !5
  %8925 = call ptr @__errno_location() #12
  store i32 %8924, ptr %8925, align 4, !tbaa !5
  %8926 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8927 = load i32, ptr @test_count, align 4, !tbaa !5
  %8928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8929 = load i32, ptr %8928, align 4, !tbaa !5
  %8930 = call ptr @s2n_strerror(i32 noundef %8929, ptr noundef @.str.4)
  %8931 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8932 = load i32, ptr %8931, align 4, !tbaa !5
  %8933 = call ptr @s2n_strerror_debug(i32 noundef %8932, ptr noundef @.str.4)
  %8934 = call ptr @__errno_location() #12
  %8935 = load i32, ptr %8934, align 4, !tbaa !5
  %8936 = call ptr @strerror(i32 noundef %8935) #11
  %8937 = call ptr @__errno_location() #12
  %8938 = load i32, ptr %8937, align 4, !tbaa !5
  %8939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8926, ptr noundef @.str.5, i32 noundef %8927, ptr noundef @.str.77, ptr noundef @.str.1, i32 noundef 378, ptr noundef %8930, ptr noundef %8933, ptr noundef %8936, i32 noundef %8938) #11
  br label %8940

8940:                                             ; preds = %8923, %8906
  call void @llvm.lifetime.end.p0(i64 4, ptr %217) #11
  br label %8941

8941:                                             ; preds = %8940
  br label %8942

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

8943:                                             ; No predecessors!
  br label %8944

8944:                                             ; preds = %8943
  br label %8945

8945:                                             ; preds = %8944, %8886
  br label %8946

8946:                                             ; preds = %8945
  br label %8947

8947:                                             ; preds = %8946
  br label %8948

8948:                                             ; preds = %8947
  %8949 = load i32, ptr @test_count, align 4, !tbaa !5
  %8950 = add nsw i32 %8949, 1
  store i32 %8950, ptr @test_count, align 4, !tbaa !5
  %8951 = getelementptr inbounds %struct.s2n_fingerprint, ptr %213, i32 0, i32 2
  %8952 = load ptr, ptr %8951, align 8, !tbaa !38
  %8953 = load ptr, ptr %14, align 8, !tbaa !9
  %8954 = icmp eq ptr %8952, %8953
  br i1 %8954, label %9008, label %8955

8955:                                             ; preds = %8948
  br label %8956

8956:                                             ; preds = %8955
  br label %8957

8957:                                             ; preds = %8956
  call void @llvm.lifetime.start.p0(i64 4, ptr %218) #11
  %8958 = call ptr @__errno_location() #12
  %8959 = load i32, ptr %8958, align 4, !tbaa !5
  store i32 %8959, ptr %218, align 4, !tbaa !5
  %8960 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8961 = call i32 @s2n_print_stacktrace(ptr noundef %8960)
  %8962 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %8963 = trunc i8 %8962 to i1
  br i1 %8963, label %8964, label %8986

8964:                                             ; preds = %8957
  %8965 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8966 = call i32 @fileno(ptr noundef %8965) #11
  %8967 = call i32 @isatty(i32 noundef %8966) #11
  %8968 = icmp ne i32 %8967, 0
  br i1 %8968, label %8969, label %8986

8969:                                             ; preds = %8964
  %8970 = load i32, ptr %218, align 4, !tbaa !5
  %8971 = call ptr @__errno_location() #12
  store i32 %8970, ptr %8971, align 4, !tbaa !5
  %8972 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8973 = load i32, ptr @test_count, align 4, !tbaa !5
  %8974 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8975 = load i32, ptr %8974, align 4, !tbaa !5
  %8976 = call ptr @s2n_strerror(i32 noundef %8975, ptr noundef @.str.4)
  %8977 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8978 = load i32, ptr %8977, align 4, !tbaa !5
  %8979 = call ptr @s2n_strerror_debug(i32 noundef %8978, ptr noundef @.str.4)
  %8980 = call ptr @__errno_location() #12
  %8981 = load i32, ptr %8980, align 4, !tbaa !5
  %8982 = call ptr @strerror(i32 noundef %8981) #11
  %8983 = call ptr @__errno_location() #12
  %8984 = load i32, ptr %8983, align 4, !tbaa !5
  %8985 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8972, ptr noundef @.str.2, i32 noundef %8973, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 379, ptr noundef %8976, ptr noundef %8979, ptr noundef %8982, i32 noundef %8984) #11
  br label %9003

8986:                                             ; preds = %8964, %8957
  %8987 = load i32, ptr %218, align 4, !tbaa !5
  %8988 = call ptr @__errno_location() #12
  store i32 %8987, ptr %8988, align 4, !tbaa !5
  %8989 = load ptr, ptr @stderr, align 8, !tbaa !9
  %8990 = load i32, ptr @test_count, align 4, !tbaa !5
  %8991 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8992 = load i32, ptr %8991, align 4, !tbaa !5
  %8993 = call ptr @s2n_strerror(i32 noundef %8992, ptr noundef @.str.4)
  %8994 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %8995 = load i32, ptr %8994, align 4, !tbaa !5
  %8996 = call ptr @s2n_strerror_debug(i32 noundef %8995, ptr noundef @.str.4)
  %8997 = call ptr @__errno_location() #12
  %8998 = load i32, ptr %8997, align 4, !tbaa !5
  %8999 = call ptr @strerror(i32 noundef %8998) #11
  %9000 = call ptr @__errno_location() #12
  %9001 = load i32, ptr %9000, align 4, !tbaa !5
  %9002 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %8989, ptr noundef @.str.5, i32 noundef %8990, ptr noundef @.str.78, ptr noundef @.str.1, i32 noundef 379, ptr noundef %8993, ptr noundef %8996, ptr noundef %8999, i32 noundef %9001) #11
  br label %9003

9003:                                             ; preds = %8986, %8969
  call void @llvm.lifetime.end.p0(i64 4, ptr %218) #11
  br label %9004

9004:                                             ; preds = %9003
  br label %9005

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

9006:                                             ; No predecessors!
  br label %9007

9007:                                             ; preds = %9006
  br label %9008

9008:                                             ; preds = %9007, %8948
  br label %9009

9009:                                             ; preds = %9008
  br label %9010

9010:                                             ; preds = %9009
  br label %9011

9011:                                             ; preds = %9010
  %9012 = load i32, ptr @test_count, align 4, !tbaa !5
  %9013 = add nsw i32 %9012, 1
  store i32 %9013, ptr @test_count, align 4, !tbaa !5
  %9014 = getelementptr inbounds %struct.s2n_fingerprint, ptr %213, i32 0, i32 0
  %9015 = load i64, ptr %9014, align 8, !tbaa !39
  %9016 = icmp eq i64 %9015, 0
  br i1 %9016, label %9070, label %9017

9017:                                             ; preds = %9011
  br label %9018

9018:                                             ; preds = %9017
  br label %9019

9019:                                             ; preds = %9018
  call void @llvm.lifetime.start.p0(i64 4, ptr %219) #11
  %9020 = call ptr @__errno_location() #12
  %9021 = load i32, ptr %9020, align 4, !tbaa !5
  store i32 %9021, ptr %219, align 4, !tbaa !5
  %9022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9023 = call i32 @s2n_print_stacktrace(ptr noundef %9022)
  %9024 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9025 = trunc i8 %9024 to i1
  br i1 %9025, label %9026, label %9048

9026:                                             ; preds = %9019
  %9027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9028 = call i32 @fileno(ptr noundef %9027) #11
  %9029 = call i32 @isatty(i32 noundef %9028) #11
  %9030 = icmp ne i32 %9029, 0
  br i1 %9030, label %9031, label %9048

9031:                                             ; preds = %9026
  %9032 = load i32, ptr %219, align 4, !tbaa !5
  %9033 = call ptr @__errno_location() #12
  store i32 %9032, ptr %9033, align 4, !tbaa !5
  %9034 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9035 = load i32, ptr @test_count, align 4, !tbaa !5
  %9036 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9037 = load i32, ptr %9036, align 4, !tbaa !5
  %9038 = call ptr @s2n_strerror(i32 noundef %9037, ptr noundef @.str.4)
  %9039 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9040 = load i32, ptr %9039, align 4, !tbaa !5
  %9041 = call ptr @s2n_strerror_debug(i32 noundef %9040, ptr noundef @.str.4)
  %9042 = call ptr @__errno_location() #12
  %9043 = load i32, ptr %9042, align 4, !tbaa !5
  %9044 = call ptr @strerror(i32 noundef %9043) #11
  %9045 = call ptr @__errno_location() #12
  %9046 = load i32, ptr %9045, align 4, !tbaa !5
  %9047 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9034, ptr noundef @.str.2, i32 noundef %9035, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 380, ptr noundef %9038, ptr noundef %9041, ptr noundef %9044, i32 noundef %9046) #11
  br label %9065

9048:                                             ; preds = %9026, %9019
  %9049 = load i32, ptr %219, align 4, !tbaa !5
  %9050 = call ptr @__errno_location() #12
  store i32 %9049, ptr %9050, align 4, !tbaa !5
  %9051 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9052 = load i32, ptr @test_count, align 4, !tbaa !5
  %9053 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9054 = load i32, ptr %9053, align 4, !tbaa !5
  %9055 = call ptr @s2n_strerror(i32 noundef %9054, ptr noundef @.str.4)
  %9056 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9057 = load i32, ptr %9056, align 4, !tbaa !5
  %9058 = call ptr @s2n_strerror_debug(i32 noundef %9057, ptr noundef @.str.4)
  %9059 = call ptr @__errno_location() #12
  %9060 = load i32, ptr %9059, align 4, !tbaa !5
  %9061 = call ptr @strerror(i32 noundef %9060) #11
  %9062 = call ptr @__errno_location() #12
  %9063 = load i32, ptr %9062, align 4, !tbaa !5
  %9064 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9051, ptr noundef @.str.5, i32 noundef %9052, ptr noundef @.str.69, ptr noundef @.str.1, i32 noundef 380, ptr noundef %9055, ptr noundef %9058, ptr noundef %9061, i32 noundef %9063) #11
  br label %9065

9065:                                             ; preds = %9048, %9031
  call void @llvm.lifetime.end.p0(i64 4, ptr %219) #11
  br label %9066

9066:                                             ; preds = %9065
  br label %9067

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

9068:                                             ; No predecessors!
  br label %9069

9069:                                             ; preds = %9068
  br label %9070

9070:                                             ; preds = %9069, %9011
  br label %9071

9071:                                             ; preds = %9070
  br label %9072

9072:                                             ; preds = %9071
  call void @llvm.lifetime.end.p0(i64 120, ptr %213) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %220) #11
  %9073 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %9073, ptr %220, align 8, !tbaa !9
  br label %9074

9074:                                             ; preds = %9072
  br label %9075

9075:                                             ; preds = %9074
  br label %9076

9076:                                             ; preds = %9075
  %9077 = load i32, ptr @test_count, align 4, !tbaa !5
  %9078 = add nsw i32 %9077, 1
  store i32 %9078, ptr @test_count, align 4, !tbaa !5
  %9079 = load ptr, ptr %220, align 8, !tbaa !9
  %9080 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef %9079, ptr noundef null)
  %9081 = icmp eq i32 %9080, -1
  br i1 %9081, label %9135, label %9082

9082:                                             ; preds = %9076
  br label %9083

9083:                                             ; preds = %9082
  br label %9084

9084:                                             ; preds = %9083
  call void @llvm.lifetime.start.p0(i64 4, ptr %221) #11
  %9085 = call ptr @__errno_location() #12
  %9086 = load i32, ptr %9085, align 4, !tbaa !5
  store i32 %9086, ptr %221, align 4, !tbaa !5
  %9087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9088 = call i32 @s2n_print_stacktrace(ptr noundef %9087)
  %9089 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9090 = trunc i8 %9089 to i1
  br i1 %9090, label %9091, label %9113

9091:                                             ; preds = %9084
  %9092 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9093 = call i32 @fileno(ptr noundef %9092) #11
  %9094 = call i32 @isatty(i32 noundef %9093) #11
  %9095 = icmp ne i32 %9094, 0
  br i1 %9095, label %9096, label %9113

9096:                                             ; preds = %9091
  %9097 = load i32, ptr %221, align 4, !tbaa !5
  %9098 = call ptr @__errno_location() #12
  store i32 %9097, ptr %9098, align 4, !tbaa !5
  %9099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9100 = load i32, ptr @test_count, align 4, !tbaa !5
  %9101 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9102 = load i32, ptr %9101, align 4, !tbaa !5
  %9103 = call ptr @s2n_strerror(i32 noundef %9102, ptr noundef @.str.4)
  %9104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9105 = load i32, ptr %9104, align 4, !tbaa !5
  %9106 = call ptr @s2n_strerror_debug(i32 noundef %9105, ptr noundef @.str.4)
  %9107 = call ptr @__errno_location() #12
  %9108 = load i32, ptr %9107, align 4, !tbaa !5
  %9109 = call ptr @strerror(i32 noundef %9108) #11
  %9110 = call ptr @__errno_location() #12
  %9111 = load i32, ptr %9110, align 4, !tbaa !5
  %9112 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9099, ptr noundef @.str.2, i32 noundef %9100, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9103, ptr noundef %9106, ptr noundef %9109, i32 noundef %9111) #11
  br label %9130

9113:                                             ; preds = %9091, %9084
  %9114 = load i32, ptr %221, align 4, !tbaa !5
  %9115 = call ptr @__errno_location() #12
  store i32 %9114, ptr %9115, align 4, !tbaa !5
  %9116 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9117 = load i32, ptr @test_count, align 4, !tbaa !5
  %9118 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9119 = load i32, ptr %9118, align 4, !tbaa !5
  %9120 = call ptr @s2n_strerror(i32 noundef %9119, ptr noundef @.str.4)
  %9121 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9122 = load i32, ptr %9121, align 4, !tbaa !5
  %9123 = call ptr @s2n_strerror_debug(i32 noundef %9122, ptr noundef @.str.4)
  %9124 = call ptr @__errno_location() #12
  %9125 = load i32, ptr %9124, align 4, !tbaa !5
  %9126 = call ptr @strerror(i32 noundef %9125) #11
  %9127 = call ptr @__errno_location() #12
  %9128 = load i32, ptr %9127, align 4, !tbaa !5
  %9129 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9116, ptr noundef @.str.5, i32 noundef %9117, ptr noundef @.str.79, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9120, ptr noundef %9123, ptr noundef %9126, i32 noundef %9128) #11
  br label %9130

9130:                                             ; preds = %9113, %9096
  call void @llvm.lifetime.end.p0(i64 4, ptr %221) #11
  br label %9131

9131:                                             ; preds = %9130
  br label %9132

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

9133:                                             ; No predecessors!
  br label %9134

9134:                                             ; preds = %9133
  br label %9135

9135:                                             ; preds = %9134, %9076
  br label %9136

9136:                                             ; preds = %9135
  br label %9137

9137:                                             ; preds = %9136
  br label %9138

9138:                                             ; preds = %9137
  %9139 = load i32, ptr @test_count, align 4, !tbaa !5
  %9140 = add nsw i32 %9139, 1
  store i32 %9140, ptr @test_count, align 4, !tbaa !5
  %9141 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9142 = load i32, ptr %9141, align 4, !tbaa !5
  %9143 = icmp eq i32 %9142, 469762089
  br i1 %9143, label %9197, label %9144

9144:                                             ; preds = %9138
  br label %9145

9145:                                             ; preds = %9144
  br label %9146

9146:                                             ; preds = %9145
  call void @llvm.lifetime.start.p0(i64 4, ptr %222) #11
  %9147 = call ptr @__errno_location() #12
  %9148 = load i32, ptr %9147, align 4, !tbaa !5
  store i32 %9148, ptr %222, align 4, !tbaa !5
  %9149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9150 = call i32 @s2n_print_stacktrace(ptr noundef %9149)
  %9151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9152 = trunc i8 %9151 to i1
  br i1 %9152, label %9153, label %9175

9153:                                             ; preds = %9146
  %9154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9155 = call i32 @fileno(ptr noundef %9154) #11
  %9156 = call i32 @isatty(i32 noundef %9155) #11
  %9157 = icmp ne i32 %9156, 0
  br i1 %9157, label %9158, label %9175

9158:                                             ; preds = %9153
  %9159 = load i32, ptr %222, align 4, !tbaa !5
  %9160 = call ptr @__errno_location() #12
  store i32 %9159, ptr %9160, align 4, !tbaa !5
  %9161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9162 = load i32, ptr @test_count, align 4, !tbaa !5
  %9163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9164 = load i32, ptr %9163, align 4, !tbaa !5
  %9165 = call ptr @s2n_strerror(i32 noundef %9164, ptr noundef @.str.4)
  %9166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9167 = load i32, ptr %9166, align 4, !tbaa !5
  %9168 = call ptr @s2n_strerror_debug(i32 noundef %9167, ptr noundef @.str.4)
  %9169 = call ptr @__errno_location() #12
  %9170 = load i32, ptr %9169, align 4, !tbaa !5
  %9171 = call ptr @strerror(i32 noundef %9170) #11
  %9172 = call ptr @__errno_location() #12
  %9173 = load i32, ptr %9172, align 4, !tbaa !5
  %9174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9161, ptr noundef @.str.2, i32 noundef %9162, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9165, ptr noundef %9168, ptr noundef %9171, i32 noundef %9173) #11
  br label %9192

9175:                                             ; preds = %9153, %9146
  %9176 = load i32, ptr %222, align 4, !tbaa !5
  %9177 = call ptr @__errno_location() #12
  store i32 %9176, ptr %9177, align 4, !tbaa !5
  %9178 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9179 = load i32, ptr @test_count, align 4, !tbaa !5
  %9180 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9181 = load i32, ptr %9180, align 4, !tbaa !5
  %9182 = call ptr @s2n_strerror(i32 noundef %9181, ptr noundef @.str.4)
  %9183 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9184 = load i32, ptr %9183, align 4, !tbaa !5
  %9185 = call ptr @s2n_strerror_debug(i32 noundef %9184, ptr noundef @.str.4)
  %9186 = call ptr @__errno_location() #12
  %9187 = load i32, ptr %9186, align 4, !tbaa !5
  %9188 = call ptr @strerror(i32 noundef %9187) #11
  %9189 = call ptr @__errno_location() #12
  %9190 = load i32, ptr %9189, align 4, !tbaa !5
  %9191 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9178, ptr noundef @.str.5, i32 noundef %9179, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9182, ptr noundef %9185, ptr noundef %9188, i32 noundef %9190) #11
  br label %9192

9192:                                             ; preds = %9175, %9158
  call void @llvm.lifetime.end.p0(i64 4, ptr %222) #11
  br label %9193

9193:                                             ; preds = %9192
  br label %9194

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

9195:                                             ; No predecessors!
  br label %9196

9196:                                             ; preds = %9195
  br label %9197

9197:                                             ; preds = %9196, %9138
  br label %9198

9198:                                             ; preds = %9197
  br label %9199

9199:                                             ; preds = %9198
  br label %9200

9200:                                             ; preds = %9199
  %9201 = load i32, ptr @test_count, align 4, !tbaa !5
  %9202 = add nsw i32 %9201, 1
  store i32 %9202, ptr @test_count, align 4, !tbaa !5
  %9203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9204 = load i32, ptr %9203, align 4, !tbaa !5
  %9205 = call ptr @s2n_strerror_debug(i32 noundef %9204, ptr noundef @.str.4)
  %9206 = icmp eq ptr %9205, null
  br i1 %9206, label %9207, label %9260

9207:                                             ; preds = %9200
  br label %9208

9208:                                             ; preds = %9207
  br label %9209

9209:                                             ; preds = %9208
  call void @llvm.lifetime.start.p0(i64 4, ptr %223) #11
  %9210 = call ptr @__errno_location() #12
  %9211 = load i32, ptr %9210, align 4, !tbaa !5
  store i32 %9211, ptr %223, align 4, !tbaa !5
  %9212 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9213 = call i32 @s2n_print_stacktrace(ptr noundef %9212)
  %9214 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9215 = trunc i8 %9214 to i1
  br i1 %9215, label %9216, label %9238

9216:                                             ; preds = %9209
  %9217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9218 = call i32 @fileno(ptr noundef %9217) #11
  %9219 = call i32 @isatty(i32 noundef %9218) #11
  %9220 = icmp ne i32 %9219, 0
  br i1 %9220, label %9221, label %9238

9221:                                             ; preds = %9216
  %9222 = load i32, ptr %223, align 4, !tbaa !5
  %9223 = call ptr @__errno_location() #12
  store i32 %9222, ptr %9223, align 4, !tbaa !5
  %9224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9225 = load i32, ptr @test_count, align 4, !tbaa !5
  %9226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9227 = load i32, ptr %9226, align 4, !tbaa !5
  %9228 = call ptr @s2n_strerror(i32 noundef %9227, ptr noundef @.str.4)
  %9229 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9230 = load i32, ptr %9229, align 4, !tbaa !5
  %9231 = call ptr @s2n_strerror_debug(i32 noundef %9230, ptr noundef @.str.4)
  %9232 = call ptr @__errno_location() #12
  %9233 = load i32, ptr %9232, align 4, !tbaa !5
  %9234 = call ptr @strerror(i32 noundef %9233) #11
  %9235 = call ptr @__errno_location() #12
  %9236 = load i32, ptr %9235, align 4, !tbaa !5
  %9237 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9224, ptr noundef @.str.2, i32 noundef %9225, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9228, ptr noundef %9231, ptr noundef %9234, i32 noundef %9236) #11
  br label %9255

9238:                                             ; preds = %9216, %9209
  %9239 = load i32, ptr %223, align 4, !tbaa !5
  %9240 = call ptr @__errno_location() #12
  store i32 %9239, ptr %9240, align 4, !tbaa !5
  %9241 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9242 = load i32, ptr @test_count, align 4, !tbaa !5
  %9243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9244 = load i32, ptr %9243, align 4, !tbaa !5
  %9245 = call ptr @s2n_strerror(i32 noundef %9244, ptr noundef @.str.4)
  %9246 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9247 = load i32, ptr %9246, align 4, !tbaa !5
  %9248 = call ptr @s2n_strerror_debug(i32 noundef %9247, ptr noundef @.str.4)
  %9249 = call ptr @__errno_location() #12
  %9250 = load i32, ptr %9249, align 4, !tbaa !5
  %9251 = call ptr @strerror(i32 noundef %9250) #11
  %9252 = call ptr @__errno_location() #12
  %9253 = load i32, ptr %9252, align 4, !tbaa !5
  %9254 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9241, ptr noundef @.str.5, i32 noundef %9242, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 393, ptr noundef %9245, ptr noundef %9248, ptr noundef %9251, i32 noundef %9253) #11
  br label %9255

9255:                                             ; preds = %9238, %9221
  call void @llvm.lifetime.end.p0(i64 4, ptr %223) #11
  br label %9256

9256:                                             ; preds = %9255
  br label %9257

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

9258:                                             ; No predecessors!
  br label %9259

9259:                                             ; preds = %9258
  br label %9260

9260:                                             ; preds = %9259, %9200
  br label %9261

9261:                                             ; preds = %9260
  br label %9262

9262:                                             ; preds = %9261
  br label %9263

9263:                                             ; preds = %9262
  br label %9264

9264:                                             ; preds = %9263
  br label %9265

9265:                                             ; preds = %9264
  %9266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9266, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9267 = call ptr @__errno_location() #12
  store i32 0, ptr %9267, align 4, !tbaa !5
  br label %9268

9268:                                             ; preds = %9265
  br label %9269

9269:                                             ; preds = %9268
  br label %9270

9270:                                             ; preds = %9269
  br label %9271

9271:                                             ; preds = %9270
  call void @llvm.lifetime.start.p0(i64 4, ptr %224) #11
  store i32 0, ptr %224, align 4, !tbaa !5
  br label %9272

9272:                                             ; preds = %9271
  br label %9273

9273:                                             ; preds = %9272
  br label %9274

9274:                                             ; preds = %9273
  %9275 = load i32, ptr @test_count, align 4, !tbaa !5
  %9276 = add nsw i32 %9275, 1
  store i32 %9276, ptr @test_count, align 4, !tbaa !5
  %9277 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef null, ptr noundef %224)
  %9278 = icmp eq i32 %9277, -1
  br i1 %9278, label %9332, label %9279

9279:                                             ; preds = %9274
  br label %9280

9280:                                             ; preds = %9279
  br label %9281

9281:                                             ; preds = %9280
  call void @llvm.lifetime.start.p0(i64 4, ptr %225) #11
  %9282 = call ptr @__errno_location() #12
  %9283 = load i32, ptr %9282, align 4, !tbaa !5
  store i32 %9283, ptr %225, align 4, !tbaa !5
  %9284 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9285 = call i32 @s2n_print_stacktrace(ptr noundef %9284)
  %9286 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9287 = trunc i8 %9286 to i1
  br i1 %9287, label %9288, label %9310

9288:                                             ; preds = %9281
  %9289 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9290 = call i32 @fileno(ptr noundef %9289) #11
  %9291 = call i32 @isatty(i32 noundef %9290) #11
  %9292 = icmp ne i32 %9291, 0
  br i1 %9292, label %9293, label %9310

9293:                                             ; preds = %9288
  %9294 = load i32, ptr %225, align 4, !tbaa !5
  %9295 = call ptr @__errno_location() #12
  store i32 %9294, ptr %9295, align 4, !tbaa !5
  %9296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9297 = load i32, ptr @test_count, align 4, !tbaa !5
  %9298 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9299 = load i32, ptr %9298, align 4, !tbaa !5
  %9300 = call ptr @s2n_strerror(i32 noundef %9299, ptr noundef @.str.4)
  %9301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9302 = load i32, ptr %9301, align 4, !tbaa !5
  %9303 = call ptr @s2n_strerror_debug(i32 noundef %9302, ptr noundef @.str.4)
  %9304 = call ptr @__errno_location() #12
  %9305 = load i32, ptr %9304, align 4, !tbaa !5
  %9306 = call ptr @strerror(i32 noundef %9305) #11
  %9307 = call ptr @__errno_location() #12
  %9308 = load i32, ptr %9307, align 4, !tbaa !5
  %9309 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9296, ptr noundef @.str.2, i32 noundef %9297, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 398, ptr noundef %9300, ptr noundef %9303, ptr noundef %9306, i32 noundef %9308) #11
  br label %9327

9310:                                             ; preds = %9288, %9281
  %9311 = load i32, ptr %225, align 4, !tbaa !5
  %9312 = call ptr @__errno_location() #12
  store i32 %9311, ptr %9312, align 4, !tbaa !5
  %9313 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9314 = load i32, ptr @test_count, align 4, !tbaa !5
  %9315 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9316 = load i32, ptr %9315, align 4, !tbaa !5
  %9317 = call ptr @s2n_strerror(i32 noundef %9316, ptr noundef @.str.4)
  %9318 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9319 = load i32, ptr %9318, align 4, !tbaa !5
  %9320 = call ptr @s2n_strerror_debug(i32 noundef %9319, ptr noundef @.str.4)
  %9321 = call ptr @__errno_location() #12
  %9322 = load i32, ptr %9321, align 4, !tbaa !5
  %9323 = call ptr @strerror(i32 noundef %9322) #11
  %9324 = call ptr @__errno_location() #12
  %9325 = load i32, ptr %9324, align 4, !tbaa !5
  %9326 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9313, ptr noundef @.str.5, i32 noundef %9314, ptr noundef @.str.80, ptr noundef @.str.1, i32 noundef 398, ptr noundef %9317, ptr noundef %9320, ptr noundef %9323, i32 noundef %9325) #11
  br label %9327

9327:                                             ; preds = %9310, %9293
  call void @llvm.lifetime.end.p0(i64 4, ptr %225) #11
  br label %9328

9328:                                             ; preds = %9327
  br label %9329

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

9330:                                             ; No predecessors!
  br label %9331

9331:                                             ; preds = %9330
  br label %9332

9332:                                             ; preds = %9331, %9274
  br label %9333

9333:                                             ; preds = %9332
  br label %9334

9334:                                             ; preds = %9333
  br label %9335

9335:                                             ; preds = %9334
  %9336 = load i32, ptr @test_count, align 4, !tbaa !5
  %9337 = add nsw i32 %9336, 1
  store i32 %9337, ptr @test_count, align 4, !tbaa !5
  %9338 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9339 = load i32, ptr %9338, align 4, !tbaa !5
  %9340 = icmp eq i32 %9339, 469762089
  br i1 %9340, label %9394, label %9341

9341:                                             ; preds = %9335
  br label %9342

9342:                                             ; preds = %9341
  br label %9343

9343:                                             ; preds = %9342
  call void @llvm.lifetime.start.p0(i64 4, ptr %226) #11
  %9344 = call ptr @__errno_location() #12
  %9345 = load i32, ptr %9344, align 4, !tbaa !5
  store i32 %9345, ptr %226, align 4, !tbaa !5
  %9346 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9347 = call i32 @s2n_print_stacktrace(ptr noundef %9346)
  %9348 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9349 = trunc i8 %9348 to i1
  br i1 %9349, label %9350, label %9372

9350:                                             ; preds = %9343
  %9351 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9352 = call i32 @fileno(ptr noundef %9351) #11
  %9353 = call i32 @isatty(i32 noundef %9352) #11
  %9354 = icmp ne i32 %9353, 0
  br i1 %9354, label %9355, label %9372

9355:                                             ; preds = %9350
  %9356 = load i32, ptr %226, align 4, !tbaa !5
  %9357 = call ptr @__errno_location() #12
  store i32 %9356, ptr %9357, align 4, !tbaa !5
  %9358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9359 = load i32, ptr @test_count, align 4, !tbaa !5
  %9360 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9361 = load i32, ptr %9360, align 4, !tbaa !5
  %9362 = call ptr @s2n_strerror(i32 noundef %9361, ptr noundef @.str.4)
  %9363 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9364 = load i32, ptr %9363, align 4, !tbaa !5
  %9365 = call ptr @s2n_strerror_debug(i32 noundef %9364, ptr noundef @.str.4)
  %9366 = call ptr @__errno_location() #12
  %9367 = load i32, ptr %9366, align 4, !tbaa !5
  %9368 = call ptr @strerror(i32 noundef %9367) #11
  %9369 = call ptr @__errno_location() #12
  %9370 = load i32, ptr %9369, align 4, !tbaa !5
  %9371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9358, ptr noundef @.str.2, i32 noundef %9359, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 398, ptr noundef %9362, ptr noundef %9365, ptr noundef %9368, i32 noundef %9370) #11
  br label %9389

9372:                                             ; preds = %9350, %9343
  %9373 = load i32, ptr %226, align 4, !tbaa !5
  %9374 = call ptr @__errno_location() #12
  store i32 %9373, ptr %9374, align 4, !tbaa !5
  %9375 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9376 = load i32, ptr @test_count, align 4, !tbaa !5
  %9377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9378 = load i32, ptr %9377, align 4, !tbaa !5
  %9379 = call ptr @s2n_strerror(i32 noundef %9378, ptr noundef @.str.4)
  %9380 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9381 = load i32, ptr %9380, align 4, !tbaa !5
  %9382 = call ptr @s2n_strerror_debug(i32 noundef %9381, ptr noundef @.str.4)
  %9383 = call ptr @__errno_location() #12
  %9384 = load i32, ptr %9383, align 4, !tbaa !5
  %9385 = call ptr @strerror(i32 noundef %9384) #11
  %9386 = call ptr @__errno_location() #12
  %9387 = load i32, ptr %9386, align 4, !tbaa !5
  %9388 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9375, ptr noundef @.str.5, i32 noundef %9376, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 398, ptr noundef %9379, ptr noundef %9382, ptr noundef %9385, i32 noundef %9387) #11
  br label %9389

9389:                                             ; preds = %9372, %9355
  call void @llvm.lifetime.end.p0(i64 4, ptr %226) #11
  br label %9390

9390:                                             ; preds = %9389
  br label %9391

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

9392:                                             ; No predecessors!
  br label %9393

9393:                                             ; preds = %9392
  br label %9394

9394:                                             ; preds = %9393, %9335
  br label %9395

9395:                                             ; preds = %9394
  br label %9396

9396:                                             ; preds = %9395
  br label %9397

9397:                                             ; preds = %9396
  %9398 = load i32, ptr @test_count, align 4, !tbaa !5
  %9399 = add nsw i32 %9398, 1
  store i32 %9399, ptr @test_count, align 4, !tbaa !5
  %9400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9401 = load i32, ptr %9400, align 4, !tbaa !5
  %9402 = call ptr @s2n_strerror_debug(i32 noundef %9401, ptr noundef @.str.4)
  %9403 = icmp eq ptr %9402, null
  br i1 %9403, label %9404, label %9457

9404:                                             ; preds = %9397
  br label %9405

9405:                                             ; preds = %9404
  br label %9406

9406:                                             ; preds = %9405
  call void @llvm.lifetime.start.p0(i64 4, ptr %227) #11
  %9407 = call ptr @__errno_location() #12
  %9408 = load i32, ptr %9407, align 4, !tbaa !5
  store i32 %9408, ptr %227, align 4, !tbaa !5
  %9409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9410 = call i32 @s2n_print_stacktrace(ptr noundef %9409)
  %9411 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9412 = trunc i8 %9411 to i1
  br i1 %9412, label %9413, label %9435

9413:                                             ; preds = %9406
  %9414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9415 = call i32 @fileno(ptr noundef %9414) #11
  %9416 = call i32 @isatty(i32 noundef %9415) #11
  %9417 = icmp ne i32 %9416, 0
  br i1 %9417, label %9418, label %9435

9418:                                             ; preds = %9413
  %9419 = load i32, ptr %227, align 4, !tbaa !5
  %9420 = call ptr @__errno_location() #12
  store i32 %9419, ptr %9420, align 4, !tbaa !5
  %9421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9422 = load i32, ptr @test_count, align 4, !tbaa !5
  %9423 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9424 = load i32, ptr %9423, align 4, !tbaa !5
  %9425 = call ptr @s2n_strerror(i32 noundef %9424, ptr noundef @.str.4)
  %9426 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9427 = load i32, ptr %9426, align 4, !tbaa !5
  %9428 = call ptr @s2n_strerror_debug(i32 noundef %9427, ptr noundef @.str.4)
  %9429 = call ptr @__errno_location() #12
  %9430 = load i32, ptr %9429, align 4, !tbaa !5
  %9431 = call ptr @strerror(i32 noundef %9430) #11
  %9432 = call ptr @__errno_location() #12
  %9433 = load i32, ptr %9432, align 4, !tbaa !5
  %9434 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9421, ptr noundef @.str.2, i32 noundef %9422, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 398, ptr noundef %9425, ptr noundef %9428, ptr noundef %9431, i32 noundef %9433) #11
  br label %9452

9435:                                             ; preds = %9413, %9406
  %9436 = load i32, ptr %227, align 4, !tbaa !5
  %9437 = call ptr @__errno_location() #12
  store i32 %9436, ptr %9437, align 4, !tbaa !5
  %9438 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9439 = load i32, ptr @test_count, align 4, !tbaa !5
  %9440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9441 = load i32, ptr %9440, align 4, !tbaa !5
  %9442 = call ptr @s2n_strerror(i32 noundef %9441, ptr noundef @.str.4)
  %9443 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9444 = load i32, ptr %9443, align 4, !tbaa !5
  %9445 = call ptr @s2n_strerror_debug(i32 noundef %9444, ptr noundef @.str.4)
  %9446 = call ptr @__errno_location() #12
  %9447 = load i32, ptr %9446, align 4, !tbaa !5
  %9448 = call ptr @strerror(i32 noundef %9447) #11
  %9449 = call ptr @__errno_location() #12
  %9450 = load i32, ptr %9449, align 4, !tbaa !5
  %9451 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9438, ptr noundef @.str.5, i32 noundef %9439, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 398, ptr noundef %9442, ptr noundef %9445, ptr noundef %9448, i32 noundef %9450) #11
  br label %9452

9452:                                             ; preds = %9435, %9418
  call void @llvm.lifetime.end.p0(i64 4, ptr %227) #11
  br label %9453

9453:                                             ; preds = %9452
  br label %9454

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

9455:                                             ; No predecessors!
  br label %9456

9456:                                             ; preds = %9455
  br label %9457

9457:                                             ; preds = %9456, %9397
  br label %9458

9458:                                             ; preds = %9457
  br label %9459

9459:                                             ; preds = %9458
  br label %9460

9460:                                             ; preds = %9459
  br label %9461

9461:                                             ; preds = %9460
  br label %9462

9462:                                             ; preds = %9461
  %9463 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9463, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9464 = call ptr @__errno_location() #12
  store i32 0, ptr %9464, align 4, !tbaa !5
  br label %9465

9465:                                             ; preds = %9462
  br label %9466

9466:                                             ; preds = %9465
  br label %9467

9467:                                             ; preds = %9466
  br label %9468

9468:                                             ; preds = %9467
  call void @llvm.lifetime.end.p0(i64 4, ptr %224) #11
  %9469 = call i32 @s2n_fingerprint_free(ptr noundef %220)
  call void @llvm.lifetime.end.p0(i64 8, ptr %220) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %228) #11
  %9470 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %9470, ptr %228, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %229) #11
  store i32 0, ptr %229, align 4, !tbaa !5
  br label %9471

9471:                                             ; preds = %9468
  %9472 = load i32, ptr @test_count, align 4, !tbaa !5
  %9473 = add nsw i32 %9472, 1
  store i32 %9473, ptr @test_count, align 4, !tbaa !5
  %9474 = load ptr, ptr %228, align 8, !tbaa !9
  %9475 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef %9474, ptr noundef %229)
  %9476 = icmp eq i32 %9475, -1
  br i1 %9476, label %9477, label %9530

9477:                                             ; preds = %9471
  br label %9478

9478:                                             ; preds = %9477
  br label %9479

9479:                                             ; preds = %9478
  call void @llvm.lifetime.start.p0(i64 4, ptr %230) #11
  %9480 = call ptr @__errno_location() #12
  %9481 = load i32, ptr %9480, align 4, !tbaa !5
  store i32 %9481, ptr %230, align 4, !tbaa !5
  %9482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9483 = call i32 @s2n_print_stacktrace(ptr noundef %9482)
  %9484 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9485 = trunc i8 %9484 to i1
  br i1 %9485, label %9486, label %9508

9486:                                             ; preds = %9479
  %9487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9488 = call i32 @fileno(ptr noundef %9487) #11
  %9489 = call i32 @isatty(i32 noundef %9488) #11
  %9490 = icmp ne i32 %9489, 0
  br i1 %9490, label %9491, label %9508

9491:                                             ; preds = %9486
  %9492 = load i32, ptr %230, align 4, !tbaa !5
  %9493 = call ptr @__errno_location() #12
  store i32 %9492, ptr %9493, align 4, !tbaa !5
  %9494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9495 = load i32, ptr @test_count, align 4, !tbaa !5
  %9496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9497 = load i32, ptr %9496, align 4, !tbaa !5
  %9498 = call ptr @s2n_strerror(i32 noundef %9497, ptr noundef @.str.4)
  %9499 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9500 = load i32, ptr %9499, align 4, !tbaa !5
  %9501 = call ptr @s2n_strerror_debug(i32 noundef %9500, ptr noundef @.str.4)
  %9502 = call ptr @__errno_location() #12
  %9503 = load i32, ptr %9502, align 4, !tbaa !5
  %9504 = call ptr @strerror(i32 noundef %9503) #11
  %9505 = call ptr @__errno_location() #12
  %9506 = load i32, ptr %9505, align 4, !tbaa !5
  %9507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9494, ptr noundef @.str.2, i32 noundef %9495, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 406, ptr noundef %9498, ptr noundef %9501, ptr noundef %9504, i32 noundef %9506) #11
  br label %9525

9508:                                             ; preds = %9486, %9479
  %9509 = load i32, ptr %230, align 4, !tbaa !5
  %9510 = call ptr @__errno_location() #12
  store i32 %9509, ptr %9510, align 4, !tbaa !5
  %9511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9512 = load i32, ptr @test_count, align 4, !tbaa !5
  %9513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9514 = load i32, ptr %9513, align 4, !tbaa !5
  %9515 = call ptr @s2n_strerror(i32 noundef %9514, ptr noundef @.str.4)
  %9516 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9517 = load i32, ptr %9516, align 4, !tbaa !5
  %9518 = call ptr @s2n_strerror_debug(i32 noundef %9517, ptr noundef @.str.4)
  %9519 = call ptr @__errno_location() #12
  %9520 = load i32, ptr %9519, align 4, !tbaa !5
  %9521 = call ptr @strerror(i32 noundef %9520) #11
  %9522 = call ptr @__errno_location() #12
  %9523 = load i32, ptr %9522, align 4, !tbaa !5
  %9524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9511, ptr noundef @.str.5, i32 noundef %9512, ptr noundef @.str.81, ptr noundef @.str.1, i32 noundef 406, ptr noundef %9515, ptr noundef %9518, ptr noundef %9521, i32 noundef %9523) #11
  br label %9525

9525:                                             ; preds = %9508, %9491
  call void @llvm.lifetime.end.p0(i64 4, ptr %230) #11
  br label %9526

9526:                                             ; preds = %9525
  br label %9527

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

9528:                                             ; No predecessors!
  br label %9529

9529:                                             ; preds = %9528
  br label %9530

9530:                                             ; preds = %9529, %9471
  br label %9531

9531:                                             ; preds = %9530
  br label %9532

9532:                                             ; preds = %9531
  br label %9533

9533:                                             ; preds = %9532
  %9534 = load i32, ptr @test_count, align 4, !tbaa !5
  %9535 = add nsw i32 %9534, 1
  store i32 %9535, ptr @test_count, align 4, !tbaa !5
  %9536 = load i32, ptr %229, align 4, !tbaa !5
  %9537 = load i32, ptr getelementptr inbounds (%struct.s2n_fingerprint_method, ptr @ja3_fingerprint, i32 0, i32 1), align 4, !tbaa !44
  %9538 = icmp eq i32 %9536, %9537
  br i1 %9538, label %9592, label %9539

9539:                                             ; preds = %9533
  br label %9540

9540:                                             ; preds = %9539
  br label %9541

9541:                                             ; preds = %9540
  call void @llvm.lifetime.start.p0(i64 4, ptr %231) #11
  %9542 = call ptr @__errno_location() #12
  %9543 = load i32, ptr %9542, align 4, !tbaa !5
  store i32 %9543, ptr %231, align 4, !tbaa !5
  %9544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9545 = call i32 @s2n_print_stacktrace(ptr noundef %9544)
  %9546 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9547 = trunc i8 %9546 to i1
  br i1 %9547, label %9548, label %9570

9548:                                             ; preds = %9541
  %9549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9550 = call i32 @fileno(ptr noundef %9549) #11
  %9551 = call i32 @isatty(i32 noundef %9550) #11
  %9552 = icmp ne i32 %9551, 0
  br i1 %9552, label %9553, label %9570

9553:                                             ; preds = %9548
  %9554 = load i32, ptr %231, align 4, !tbaa !5
  %9555 = call ptr @__errno_location() #12
  store i32 %9554, ptr %9555, align 4, !tbaa !5
  %9556 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9557 = load i32, ptr @test_count, align 4, !tbaa !5
  %9558 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9559 = load i32, ptr %9558, align 4, !tbaa !5
  %9560 = call ptr @s2n_strerror(i32 noundef %9559, ptr noundef @.str.4)
  %9561 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9562 = load i32, ptr %9561, align 4, !tbaa !5
  %9563 = call ptr @s2n_strerror_debug(i32 noundef %9562, ptr noundef @.str.4)
  %9564 = call ptr @__errno_location() #12
  %9565 = load i32, ptr %9564, align 4, !tbaa !5
  %9566 = call ptr @strerror(i32 noundef %9565) #11
  %9567 = call ptr @__errno_location() #12
  %9568 = load i32, ptr %9567, align 4, !tbaa !5
  %9569 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9556, ptr noundef @.str.2, i32 noundef %9557, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 407, ptr noundef %9560, ptr noundef %9563, ptr noundef %9566, i32 noundef %9568) #11
  br label %9587

9570:                                             ; preds = %9548, %9541
  %9571 = load i32, ptr %231, align 4, !tbaa !5
  %9572 = call ptr @__errno_location() #12
  store i32 %9571, ptr %9572, align 4, !tbaa !5
  %9573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9574 = load i32, ptr @test_count, align 4, !tbaa !5
  %9575 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9576 = load i32, ptr %9575, align 4, !tbaa !5
  %9577 = call ptr @s2n_strerror(i32 noundef %9576, ptr noundef @.str.4)
  %9578 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9579 = load i32, ptr %9578, align 4, !tbaa !5
  %9580 = call ptr @s2n_strerror_debug(i32 noundef %9579, ptr noundef @.str.4)
  %9581 = call ptr @__errno_location() #12
  %9582 = load i32, ptr %9581, align 4, !tbaa !5
  %9583 = call ptr @strerror(i32 noundef %9582) #11
  %9584 = call ptr @__errno_location() #12
  %9585 = load i32, ptr %9584, align 4, !tbaa !5
  %9586 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9573, ptr noundef @.str.5, i32 noundef %9574, ptr noundef @.str.82, ptr noundef @.str.1, i32 noundef 407, ptr noundef %9577, ptr noundef %9580, ptr noundef %9583, i32 noundef %9585) #11
  br label %9587

9587:                                             ; preds = %9570, %9553
  call void @llvm.lifetime.end.p0(i64 4, ptr %231) #11
  br label %9588

9588:                                             ; preds = %9587
  br label %9589

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

9590:                                             ; No predecessors!
  br label %9591

9591:                                             ; preds = %9590
  br label %9592

9592:                                             ; preds = %9591, %9533
  br label %9593

9593:                                             ; preds = %9592
  br label %9594

9594:                                             ; preds = %9593
  call void @llvm.lifetime.end.p0(i64 4, ptr %229) #11
  %9595 = call i32 @s2n_fingerprint_free(ptr noundef %228)
  call void @llvm.lifetime.end.p0(i64 8, ptr %228) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %232) #11
  %9596 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %9596, ptr %232, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 100, ptr %233) #11
  call void @llvm.memset.p0.i64(ptr align 16 %233, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %234) #11
  store i32 0, ptr %234, align 4, !tbaa !5
  br label %9597

9597:                                             ; preds = %9594
  br label %9598

9598:                                             ; preds = %9597
  br label %9599

9599:                                             ; preds = %9598
  %9600 = load i32, ptr @test_count, align 4, !tbaa !5
  %9601 = add nsw i32 %9600, 1
  store i32 %9601, ptr @test_count, align 4, !tbaa !5
  %9602 = getelementptr inbounds [100 x i8], ptr %233, i64 0, i64 0
  %9603 = call i32 @s2n_fingerprint_get_hash(ptr noundef null, i32 noundef 100, ptr noundef %9602, ptr noundef %234)
  %9604 = icmp eq i32 %9603, -1
  br i1 %9604, label %9658, label %9605

9605:                                             ; preds = %9599
  br label %9606

9606:                                             ; preds = %9605
  br label %9607

9607:                                             ; preds = %9606
  call void @llvm.lifetime.start.p0(i64 4, ptr %235) #11
  %9608 = call ptr @__errno_location() #12
  %9609 = load i32, ptr %9608, align 4, !tbaa !5
  store i32 %9609, ptr %235, align 4, !tbaa !5
  %9610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9611 = call i32 @s2n_print_stacktrace(ptr noundef %9610)
  %9612 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9613 = trunc i8 %9612 to i1
  br i1 %9613, label %9614, label %9636

9614:                                             ; preds = %9607
  %9615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9616 = call i32 @fileno(ptr noundef %9615) #11
  %9617 = call i32 @isatty(i32 noundef %9616) #11
  %9618 = icmp ne i32 %9617, 0
  br i1 %9618, label %9619, label %9636

9619:                                             ; preds = %9614
  %9620 = load i32, ptr %235, align 4, !tbaa !5
  %9621 = call ptr @__errno_location() #12
  store i32 %9620, ptr %9621, align 4, !tbaa !5
  %9622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9623 = load i32, ptr @test_count, align 4, !tbaa !5
  %9624 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9625 = load i32, ptr %9624, align 4, !tbaa !5
  %9626 = call ptr @s2n_strerror(i32 noundef %9625, ptr noundef @.str.4)
  %9627 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9628 = load i32, ptr %9627, align 4, !tbaa !5
  %9629 = call ptr @s2n_strerror_debug(i32 noundef %9628, ptr noundef @.str.4)
  %9630 = call ptr @__errno_location() #12
  %9631 = load i32, ptr %9630, align 4, !tbaa !5
  %9632 = call ptr @strerror(i32 noundef %9631) #11
  %9633 = call ptr @__errno_location() #12
  %9634 = load i32, ptr %9633, align 4, !tbaa !5
  %9635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9622, ptr noundef @.str.2, i32 noundef %9623, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 422, ptr noundef %9626, ptr noundef %9629, ptr noundef %9632, i32 noundef %9634) #11
  br label %9653

9636:                                             ; preds = %9614, %9607
  %9637 = load i32, ptr %235, align 4, !tbaa !5
  %9638 = call ptr @__errno_location() #12
  store i32 %9637, ptr %9638, align 4, !tbaa !5
  %9639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9640 = load i32, ptr @test_count, align 4, !tbaa !5
  %9641 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9642 = load i32, ptr %9641, align 4, !tbaa !5
  %9643 = call ptr @s2n_strerror(i32 noundef %9642, ptr noundef @.str.4)
  %9644 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9645 = load i32, ptr %9644, align 4, !tbaa !5
  %9646 = call ptr @s2n_strerror_debug(i32 noundef %9645, ptr noundef @.str.4)
  %9647 = call ptr @__errno_location() #12
  %9648 = load i32, ptr %9647, align 4, !tbaa !5
  %9649 = call ptr @strerror(i32 noundef %9648) #11
  %9650 = call ptr @__errno_location() #12
  %9651 = load i32, ptr %9650, align 4, !tbaa !5
  %9652 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9639, ptr noundef @.str.5, i32 noundef %9640, ptr noundef @.str.83, ptr noundef @.str.1, i32 noundef 422, ptr noundef %9643, ptr noundef %9646, ptr noundef %9649, i32 noundef %9651) #11
  br label %9653

9653:                                             ; preds = %9636, %9619
  call void @llvm.lifetime.end.p0(i64 4, ptr %235) #11
  br label %9654

9654:                                             ; preds = %9653
  br label %9655

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

9656:                                             ; No predecessors!
  br label %9657

9657:                                             ; preds = %9656
  br label %9658

9658:                                             ; preds = %9657, %9599
  br label %9659

9659:                                             ; preds = %9658
  br label %9660

9660:                                             ; preds = %9659
  br label %9661

9661:                                             ; preds = %9660
  %9662 = load i32, ptr @test_count, align 4, !tbaa !5
  %9663 = add nsw i32 %9662, 1
  store i32 %9663, ptr @test_count, align 4, !tbaa !5
  %9664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9665 = load i32, ptr %9664, align 4, !tbaa !5
  %9666 = icmp eq i32 %9665, 469762089
  br i1 %9666, label %9720, label %9667

9667:                                             ; preds = %9661
  br label %9668

9668:                                             ; preds = %9667
  br label %9669

9669:                                             ; preds = %9668
  call void @llvm.lifetime.start.p0(i64 4, ptr %236) #11
  %9670 = call ptr @__errno_location() #12
  %9671 = load i32, ptr %9670, align 4, !tbaa !5
  store i32 %9671, ptr %236, align 4, !tbaa !5
  %9672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9673 = call i32 @s2n_print_stacktrace(ptr noundef %9672)
  %9674 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9675 = trunc i8 %9674 to i1
  br i1 %9675, label %9676, label %9698

9676:                                             ; preds = %9669
  %9677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9678 = call i32 @fileno(ptr noundef %9677) #11
  %9679 = call i32 @isatty(i32 noundef %9678) #11
  %9680 = icmp ne i32 %9679, 0
  br i1 %9680, label %9681, label %9698

9681:                                             ; preds = %9676
  %9682 = load i32, ptr %236, align 4, !tbaa !5
  %9683 = call ptr @__errno_location() #12
  store i32 %9682, ptr %9683, align 4, !tbaa !5
  %9684 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9685 = load i32, ptr @test_count, align 4, !tbaa !5
  %9686 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9687 = load i32, ptr %9686, align 4, !tbaa !5
  %9688 = call ptr @s2n_strerror(i32 noundef %9687, ptr noundef @.str.4)
  %9689 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9690 = load i32, ptr %9689, align 4, !tbaa !5
  %9691 = call ptr @s2n_strerror_debug(i32 noundef %9690, ptr noundef @.str.4)
  %9692 = call ptr @__errno_location() #12
  %9693 = load i32, ptr %9692, align 4, !tbaa !5
  %9694 = call ptr @strerror(i32 noundef %9693) #11
  %9695 = call ptr @__errno_location() #12
  %9696 = load i32, ptr %9695, align 4, !tbaa !5
  %9697 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9684, ptr noundef @.str.2, i32 noundef %9685, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 422, ptr noundef %9688, ptr noundef %9691, ptr noundef %9694, i32 noundef %9696) #11
  br label %9715

9698:                                             ; preds = %9676, %9669
  %9699 = load i32, ptr %236, align 4, !tbaa !5
  %9700 = call ptr @__errno_location() #12
  store i32 %9699, ptr %9700, align 4, !tbaa !5
  %9701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9702 = load i32, ptr @test_count, align 4, !tbaa !5
  %9703 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9704 = load i32, ptr %9703, align 4, !tbaa !5
  %9705 = call ptr @s2n_strerror(i32 noundef %9704, ptr noundef @.str.4)
  %9706 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9707 = load i32, ptr %9706, align 4, !tbaa !5
  %9708 = call ptr @s2n_strerror_debug(i32 noundef %9707, ptr noundef @.str.4)
  %9709 = call ptr @__errno_location() #12
  %9710 = load i32, ptr %9709, align 4, !tbaa !5
  %9711 = call ptr @strerror(i32 noundef %9710) #11
  %9712 = call ptr @__errno_location() #12
  %9713 = load i32, ptr %9712, align 4, !tbaa !5
  %9714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9701, ptr noundef @.str.5, i32 noundef %9702, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 422, ptr noundef %9705, ptr noundef %9708, ptr noundef %9711, i32 noundef %9713) #11
  br label %9715

9715:                                             ; preds = %9698, %9681
  call void @llvm.lifetime.end.p0(i64 4, ptr %236) #11
  br label %9716

9716:                                             ; preds = %9715
  br label %9717

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

9718:                                             ; No predecessors!
  br label %9719

9719:                                             ; preds = %9718
  br label %9720

9720:                                             ; preds = %9719, %9661
  br label %9721

9721:                                             ; preds = %9720
  br label %9722

9722:                                             ; preds = %9721
  br label %9723

9723:                                             ; preds = %9722
  %9724 = load i32, ptr @test_count, align 4, !tbaa !5
  %9725 = add nsw i32 %9724, 1
  store i32 %9725, ptr @test_count, align 4, !tbaa !5
  %9726 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9727 = load i32, ptr %9726, align 4, !tbaa !5
  %9728 = call ptr @s2n_strerror_debug(i32 noundef %9727, ptr noundef @.str.4)
  %9729 = icmp eq ptr %9728, null
  br i1 %9729, label %9730, label %9783

9730:                                             ; preds = %9723
  br label %9731

9731:                                             ; preds = %9730
  br label %9732

9732:                                             ; preds = %9731
  call void @llvm.lifetime.start.p0(i64 4, ptr %237) #11
  %9733 = call ptr @__errno_location() #12
  %9734 = load i32, ptr %9733, align 4, !tbaa !5
  store i32 %9734, ptr %237, align 4, !tbaa !5
  %9735 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9736 = call i32 @s2n_print_stacktrace(ptr noundef %9735)
  %9737 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9738 = trunc i8 %9737 to i1
  br i1 %9738, label %9739, label %9761

9739:                                             ; preds = %9732
  %9740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9741 = call i32 @fileno(ptr noundef %9740) #11
  %9742 = call i32 @isatty(i32 noundef %9741) #11
  %9743 = icmp ne i32 %9742, 0
  br i1 %9743, label %9744, label %9761

9744:                                             ; preds = %9739
  %9745 = load i32, ptr %237, align 4, !tbaa !5
  %9746 = call ptr @__errno_location() #12
  store i32 %9745, ptr %9746, align 4, !tbaa !5
  %9747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9748 = load i32, ptr @test_count, align 4, !tbaa !5
  %9749 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9750 = load i32, ptr %9749, align 4, !tbaa !5
  %9751 = call ptr @s2n_strerror(i32 noundef %9750, ptr noundef @.str.4)
  %9752 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9753 = load i32, ptr %9752, align 4, !tbaa !5
  %9754 = call ptr @s2n_strerror_debug(i32 noundef %9753, ptr noundef @.str.4)
  %9755 = call ptr @__errno_location() #12
  %9756 = load i32, ptr %9755, align 4, !tbaa !5
  %9757 = call ptr @strerror(i32 noundef %9756) #11
  %9758 = call ptr @__errno_location() #12
  %9759 = load i32, ptr %9758, align 4, !tbaa !5
  %9760 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9747, ptr noundef @.str.2, i32 noundef %9748, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 422, ptr noundef %9751, ptr noundef %9754, ptr noundef %9757, i32 noundef %9759) #11
  br label %9778

9761:                                             ; preds = %9739, %9732
  %9762 = load i32, ptr %237, align 4, !tbaa !5
  %9763 = call ptr @__errno_location() #12
  store i32 %9762, ptr %9763, align 4, !tbaa !5
  %9764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9765 = load i32, ptr @test_count, align 4, !tbaa !5
  %9766 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9767 = load i32, ptr %9766, align 4, !tbaa !5
  %9768 = call ptr @s2n_strerror(i32 noundef %9767, ptr noundef @.str.4)
  %9769 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9770 = load i32, ptr %9769, align 4, !tbaa !5
  %9771 = call ptr @s2n_strerror_debug(i32 noundef %9770, ptr noundef @.str.4)
  %9772 = call ptr @__errno_location() #12
  %9773 = load i32, ptr %9772, align 4, !tbaa !5
  %9774 = call ptr @strerror(i32 noundef %9773) #11
  %9775 = call ptr @__errno_location() #12
  %9776 = load i32, ptr %9775, align 4, !tbaa !5
  %9777 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9764, ptr noundef @.str.5, i32 noundef %9765, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 422, ptr noundef %9768, ptr noundef %9771, ptr noundef %9774, i32 noundef %9776) #11
  br label %9778

9778:                                             ; preds = %9761, %9744
  call void @llvm.lifetime.end.p0(i64 4, ptr %237) #11
  br label %9779

9779:                                             ; preds = %9778
  br label %9780

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

9781:                                             ; No predecessors!
  br label %9782

9782:                                             ; preds = %9781
  br label %9783

9783:                                             ; preds = %9782, %9723
  br label %9784

9784:                                             ; preds = %9783
  br label %9785

9785:                                             ; preds = %9784
  br label %9786

9786:                                             ; preds = %9785
  br label %9787

9787:                                             ; preds = %9786
  br label %9788

9788:                                             ; preds = %9787
  %9789 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9789, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9790 = call ptr @__errno_location() #12
  store i32 0, ptr %9790, align 4, !tbaa !5
  br label %9791

9791:                                             ; preds = %9788
  br label %9792

9792:                                             ; preds = %9791
  br label %9793

9793:                                             ; preds = %9792
  br label %9794

9794:                                             ; preds = %9793
  br label %9795

9795:                                             ; preds = %9794
  br label %9796

9796:                                             ; preds = %9795
  br label %9797

9797:                                             ; preds = %9796
  %9798 = load i32, ptr @test_count, align 4, !tbaa !5
  %9799 = add nsw i32 %9798, 1
  store i32 %9799, ptr @test_count, align 4, !tbaa !5
  %9800 = load ptr, ptr %232, align 8, !tbaa !9
  %9801 = call i32 @s2n_fingerprint_get_hash(ptr noundef %9800, i32 noundef 100, ptr noundef null, ptr noundef %234)
  %9802 = icmp eq i32 %9801, -1
  br i1 %9802, label %9856, label %9803

9803:                                             ; preds = %9797
  br label %9804

9804:                                             ; preds = %9803
  br label %9805

9805:                                             ; preds = %9804
  call void @llvm.lifetime.start.p0(i64 4, ptr %238) #11
  %9806 = call ptr @__errno_location() #12
  %9807 = load i32, ptr %9806, align 4, !tbaa !5
  store i32 %9807, ptr %238, align 4, !tbaa !5
  %9808 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9809 = call i32 @s2n_print_stacktrace(ptr noundef %9808)
  %9810 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9811 = trunc i8 %9810 to i1
  br i1 %9811, label %9812, label %9834

9812:                                             ; preds = %9805
  %9813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9814 = call i32 @fileno(ptr noundef %9813) #11
  %9815 = call i32 @isatty(i32 noundef %9814) #11
  %9816 = icmp ne i32 %9815, 0
  br i1 %9816, label %9817, label %9834

9817:                                             ; preds = %9812
  %9818 = load i32, ptr %238, align 4, !tbaa !5
  %9819 = call ptr @__errno_location() #12
  store i32 %9818, ptr %9819, align 4, !tbaa !5
  %9820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9821 = load i32, ptr @test_count, align 4, !tbaa !5
  %9822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9823 = load i32, ptr %9822, align 4, !tbaa !5
  %9824 = call ptr @s2n_strerror(i32 noundef %9823, ptr noundef @.str.4)
  %9825 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9826 = load i32, ptr %9825, align 4, !tbaa !5
  %9827 = call ptr @s2n_strerror_debug(i32 noundef %9826, ptr noundef @.str.4)
  %9828 = call ptr @__errno_location() #12
  %9829 = load i32, ptr %9828, align 4, !tbaa !5
  %9830 = call ptr @strerror(i32 noundef %9829) #11
  %9831 = call ptr @__errno_location() #12
  %9832 = load i32, ptr %9831, align 4, !tbaa !5
  %9833 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9820, ptr noundef @.str.2, i32 noundef %9821, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9824, ptr noundef %9827, ptr noundef %9830, i32 noundef %9832) #11
  br label %9851

9834:                                             ; preds = %9812, %9805
  %9835 = load i32, ptr %238, align 4, !tbaa !5
  %9836 = call ptr @__errno_location() #12
  store i32 %9835, ptr %9836, align 4, !tbaa !5
  %9837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9838 = load i32, ptr @test_count, align 4, !tbaa !5
  %9839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9840 = load i32, ptr %9839, align 4, !tbaa !5
  %9841 = call ptr @s2n_strerror(i32 noundef %9840, ptr noundef @.str.4)
  %9842 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9843 = load i32, ptr %9842, align 4, !tbaa !5
  %9844 = call ptr @s2n_strerror_debug(i32 noundef %9843, ptr noundef @.str.4)
  %9845 = call ptr @__errno_location() #12
  %9846 = load i32, ptr %9845, align 4, !tbaa !5
  %9847 = call ptr @strerror(i32 noundef %9846) #11
  %9848 = call ptr @__errno_location() #12
  %9849 = load i32, ptr %9848, align 4, !tbaa !5
  %9850 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9837, ptr noundef @.str.5, i32 noundef %9838, ptr noundef @.str.84, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9841, ptr noundef %9844, ptr noundef %9847, i32 noundef %9849) #11
  br label %9851

9851:                                             ; preds = %9834, %9817
  call void @llvm.lifetime.end.p0(i64 4, ptr %238) #11
  br label %9852

9852:                                             ; preds = %9851
  br label %9853

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

9854:                                             ; No predecessors!
  br label %9855

9855:                                             ; preds = %9854
  br label %9856

9856:                                             ; preds = %9855, %9797
  br label %9857

9857:                                             ; preds = %9856
  br label %9858

9858:                                             ; preds = %9857
  br label %9859

9859:                                             ; preds = %9858
  %9860 = load i32, ptr @test_count, align 4, !tbaa !5
  %9861 = add nsw i32 %9860, 1
  store i32 %9861, ptr @test_count, align 4, !tbaa !5
  %9862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9863 = load i32, ptr %9862, align 4, !tbaa !5
  %9864 = icmp eq i32 %9863, 469762089
  br i1 %9864, label %9918, label %9865

9865:                                             ; preds = %9859
  br label %9866

9866:                                             ; preds = %9865
  br label %9867

9867:                                             ; preds = %9866
  call void @llvm.lifetime.start.p0(i64 4, ptr %239) #11
  %9868 = call ptr @__errno_location() #12
  %9869 = load i32, ptr %9868, align 4, !tbaa !5
  store i32 %9869, ptr %239, align 4, !tbaa !5
  %9870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9871 = call i32 @s2n_print_stacktrace(ptr noundef %9870)
  %9872 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9873 = trunc i8 %9872 to i1
  br i1 %9873, label %9874, label %9896

9874:                                             ; preds = %9867
  %9875 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9876 = call i32 @fileno(ptr noundef %9875) #11
  %9877 = call i32 @isatty(i32 noundef %9876) #11
  %9878 = icmp ne i32 %9877, 0
  br i1 %9878, label %9879, label %9896

9879:                                             ; preds = %9874
  %9880 = load i32, ptr %239, align 4, !tbaa !5
  %9881 = call ptr @__errno_location() #12
  store i32 %9880, ptr %9881, align 4, !tbaa !5
  %9882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9883 = load i32, ptr @test_count, align 4, !tbaa !5
  %9884 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9885 = load i32, ptr %9884, align 4, !tbaa !5
  %9886 = call ptr @s2n_strerror(i32 noundef %9885, ptr noundef @.str.4)
  %9887 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9888 = load i32, ptr %9887, align 4, !tbaa !5
  %9889 = call ptr @s2n_strerror_debug(i32 noundef %9888, ptr noundef @.str.4)
  %9890 = call ptr @__errno_location() #12
  %9891 = load i32, ptr %9890, align 4, !tbaa !5
  %9892 = call ptr @strerror(i32 noundef %9891) #11
  %9893 = call ptr @__errno_location() #12
  %9894 = load i32, ptr %9893, align 4, !tbaa !5
  %9895 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9882, ptr noundef @.str.2, i32 noundef %9883, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9886, ptr noundef %9889, ptr noundef %9892, i32 noundef %9894) #11
  br label %9913

9896:                                             ; preds = %9874, %9867
  %9897 = load i32, ptr %239, align 4, !tbaa !5
  %9898 = call ptr @__errno_location() #12
  store i32 %9897, ptr %9898, align 4, !tbaa !5
  %9899 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9900 = load i32, ptr @test_count, align 4, !tbaa !5
  %9901 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9902 = load i32, ptr %9901, align 4, !tbaa !5
  %9903 = call ptr @s2n_strerror(i32 noundef %9902, ptr noundef @.str.4)
  %9904 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9905 = load i32, ptr %9904, align 4, !tbaa !5
  %9906 = call ptr @s2n_strerror_debug(i32 noundef %9905, ptr noundef @.str.4)
  %9907 = call ptr @__errno_location() #12
  %9908 = load i32, ptr %9907, align 4, !tbaa !5
  %9909 = call ptr @strerror(i32 noundef %9908) #11
  %9910 = call ptr @__errno_location() #12
  %9911 = load i32, ptr %9910, align 4, !tbaa !5
  %9912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9899, ptr noundef @.str.5, i32 noundef %9900, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9903, ptr noundef %9906, ptr noundef %9909, i32 noundef %9911) #11
  br label %9913

9913:                                             ; preds = %9896, %9879
  call void @llvm.lifetime.end.p0(i64 4, ptr %239) #11
  br label %9914

9914:                                             ; preds = %9913
  br label %9915

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

9916:                                             ; No predecessors!
  br label %9917

9917:                                             ; preds = %9916
  br label %9918

9918:                                             ; preds = %9917, %9859
  br label %9919

9919:                                             ; preds = %9918
  br label %9920

9920:                                             ; preds = %9919
  br label %9921

9921:                                             ; preds = %9920
  %9922 = load i32, ptr @test_count, align 4, !tbaa !5
  %9923 = add nsw i32 %9922, 1
  store i32 %9923, ptr @test_count, align 4, !tbaa !5
  %9924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9925 = load i32, ptr %9924, align 4, !tbaa !5
  %9926 = call ptr @s2n_strerror_debug(i32 noundef %9925, ptr noundef @.str.4)
  %9927 = icmp eq ptr %9926, null
  br i1 %9927, label %9928, label %9981

9928:                                             ; preds = %9921
  br label %9929

9929:                                             ; preds = %9928
  br label %9930

9930:                                             ; preds = %9929
  call void @llvm.lifetime.start.p0(i64 4, ptr %240) #11
  %9931 = call ptr @__errno_location() #12
  %9932 = load i32, ptr %9931, align 4, !tbaa !5
  store i32 %9932, ptr %240, align 4, !tbaa !5
  %9933 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9934 = call i32 @s2n_print_stacktrace(ptr noundef %9933)
  %9935 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %9936 = trunc i8 %9935 to i1
  br i1 %9936, label %9937, label %9959

9937:                                             ; preds = %9930
  %9938 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9939 = call i32 @fileno(ptr noundef %9938) #11
  %9940 = call i32 @isatty(i32 noundef %9939) #11
  %9941 = icmp ne i32 %9940, 0
  br i1 %9941, label %9942, label %9959

9942:                                             ; preds = %9937
  %9943 = load i32, ptr %240, align 4, !tbaa !5
  %9944 = call ptr @__errno_location() #12
  store i32 %9943, ptr %9944, align 4, !tbaa !5
  %9945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9946 = load i32, ptr @test_count, align 4, !tbaa !5
  %9947 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9948 = load i32, ptr %9947, align 4, !tbaa !5
  %9949 = call ptr @s2n_strerror(i32 noundef %9948, ptr noundef @.str.4)
  %9950 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9951 = load i32, ptr %9950, align 4, !tbaa !5
  %9952 = call ptr @s2n_strerror_debug(i32 noundef %9951, ptr noundef @.str.4)
  %9953 = call ptr @__errno_location() #12
  %9954 = load i32, ptr %9953, align 4, !tbaa !5
  %9955 = call ptr @strerror(i32 noundef %9954) #11
  %9956 = call ptr @__errno_location() #12
  %9957 = load i32, ptr %9956, align 4, !tbaa !5
  %9958 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9945, ptr noundef @.str.2, i32 noundef %9946, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9949, ptr noundef %9952, ptr noundef %9955, i32 noundef %9957) #11
  br label %9976

9959:                                             ; preds = %9937, %9930
  %9960 = load i32, ptr %240, align 4, !tbaa !5
  %9961 = call ptr @__errno_location() #12
  store i32 %9960, ptr %9961, align 4, !tbaa !5
  %9962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %9963 = load i32, ptr @test_count, align 4, !tbaa !5
  %9964 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9965 = load i32, ptr %9964, align 4, !tbaa !5
  %9966 = call ptr @s2n_strerror(i32 noundef %9965, ptr noundef @.str.4)
  %9967 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %9968 = load i32, ptr %9967, align 4, !tbaa !5
  %9969 = call ptr @s2n_strerror_debug(i32 noundef %9968, ptr noundef @.str.4)
  %9970 = call ptr @__errno_location() #12
  %9971 = load i32, ptr %9970, align 4, !tbaa !5
  %9972 = call ptr @strerror(i32 noundef %9971) #11
  %9973 = call ptr @__errno_location() #12
  %9974 = load i32, ptr %9973, align 4, !tbaa !5
  %9975 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %9962, ptr noundef @.str.5, i32 noundef %9963, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 425, ptr noundef %9966, ptr noundef %9969, ptr noundef %9972, i32 noundef %9974) #11
  br label %9976

9976:                                             ; preds = %9959, %9942
  call void @llvm.lifetime.end.p0(i64 4, ptr %240) #11
  br label %9977

9977:                                             ; preds = %9976
  br label %9978

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

9979:                                             ; No predecessors!
  br label %9980

9980:                                             ; preds = %9979
  br label %9981

9981:                                             ; preds = %9980, %9921
  br label %9982

9982:                                             ; preds = %9981
  br label %9983

9983:                                             ; preds = %9982
  br label %9984

9984:                                             ; preds = %9983
  br label %9985

9985:                                             ; preds = %9984
  br label %9986

9986:                                             ; preds = %9985
  %9987 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %9987, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %9988 = call ptr @__errno_location() #12
  store i32 0, ptr %9988, align 4, !tbaa !5
  br label %9989

9989:                                             ; preds = %9986
  br label %9990

9990:                                             ; preds = %9989
  br label %9991

9991:                                             ; preds = %9990
  br label %9992

9992:                                             ; preds = %9991
  br label %9993

9993:                                             ; preds = %9992
  br label %9994

9994:                                             ; preds = %9993
  br label %9995

9995:                                             ; preds = %9994
  %9996 = load i32, ptr @test_count, align 4, !tbaa !5
  %9997 = add nsw i32 %9996, 1
  store i32 %9997, ptr @test_count, align 4, !tbaa !5
  %9998 = load ptr, ptr %232, align 8, !tbaa !9
  %9999 = getelementptr inbounds [100 x i8], ptr %233, i64 0, i64 0
  %10000 = call i32 @s2n_fingerprint_get_hash(ptr noundef %9998, i32 noundef 100, ptr noundef %9999, ptr noundef null)
  %10001 = icmp eq i32 %10000, -1
  br i1 %10001, label %10055, label %10002

10002:                                            ; preds = %9995
  br label %10003

10003:                                            ; preds = %10002
  br label %10004

10004:                                            ; preds = %10003
  call void @llvm.lifetime.start.p0(i64 4, ptr %241) #11
  %10005 = call ptr @__errno_location() #12
  %10006 = load i32, ptr %10005, align 4, !tbaa !5
  store i32 %10006, ptr %241, align 4, !tbaa !5
  %10007 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10008 = call i32 @s2n_print_stacktrace(ptr noundef %10007)
  %10009 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10010 = trunc i8 %10009 to i1
  br i1 %10010, label %10011, label %10033

10011:                                            ; preds = %10004
  %10012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10013 = call i32 @fileno(ptr noundef %10012) #11
  %10014 = call i32 @isatty(i32 noundef %10013) #11
  %10015 = icmp ne i32 %10014, 0
  br i1 %10015, label %10016, label %10033

10016:                                            ; preds = %10011
  %10017 = load i32, ptr %241, align 4, !tbaa !5
  %10018 = call ptr @__errno_location() #12
  store i32 %10017, ptr %10018, align 4, !tbaa !5
  %10019 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10020 = load i32, ptr @test_count, align 4, !tbaa !5
  %10021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10022 = load i32, ptr %10021, align 4, !tbaa !5
  %10023 = call ptr @s2n_strerror(i32 noundef %10022, ptr noundef @.str.4)
  %10024 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10025 = load i32, ptr %10024, align 4, !tbaa !5
  %10026 = call ptr @s2n_strerror_debug(i32 noundef %10025, ptr noundef @.str.4)
  %10027 = call ptr @__errno_location() #12
  %10028 = load i32, ptr %10027, align 4, !tbaa !5
  %10029 = call ptr @strerror(i32 noundef %10028) #11
  %10030 = call ptr @__errno_location() #12
  %10031 = load i32, ptr %10030, align 4, !tbaa !5
  %10032 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10019, ptr noundef @.str.2, i32 noundef %10020, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10023, ptr noundef %10026, ptr noundef %10029, i32 noundef %10031) #11
  br label %10050

10033:                                            ; preds = %10011, %10004
  %10034 = load i32, ptr %241, align 4, !tbaa !5
  %10035 = call ptr @__errno_location() #12
  store i32 %10034, ptr %10035, align 4, !tbaa !5
  %10036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10037 = load i32, ptr @test_count, align 4, !tbaa !5
  %10038 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10039 = load i32, ptr %10038, align 4, !tbaa !5
  %10040 = call ptr @s2n_strerror(i32 noundef %10039, ptr noundef @.str.4)
  %10041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10042 = load i32, ptr %10041, align 4, !tbaa !5
  %10043 = call ptr @s2n_strerror_debug(i32 noundef %10042, ptr noundef @.str.4)
  %10044 = call ptr @__errno_location() #12
  %10045 = load i32, ptr %10044, align 4, !tbaa !5
  %10046 = call ptr @strerror(i32 noundef %10045) #11
  %10047 = call ptr @__errno_location() #12
  %10048 = load i32, ptr %10047, align 4, !tbaa !5
  %10049 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10036, ptr noundef @.str.5, i32 noundef %10037, ptr noundef @.str.85, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10040, ptr noundef %10043, ptr noundef %10046, i32 noundef %10048) #11
  br label %10050

10050:                                            ; preds = %10033, %10016
  call void @llvm.lifetime.end.p0(i64 4, ptr %241) #11
  br label %10051

10051:                                            ; preds = %10050
  br label %10052

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

10053:                                            ; No predecessors!
  br label %10054

10054:                                            ; preds = %10053
  br label %10055

10055:                                            ; preds = %10054, %9995
  br label %10056

10056:                                            ; preds = %10055
  br label %10057

10057:                                            ; preds = %10056
  br label %10058

10058:                                            ; preds = %10057
  %10059 = load i32, ptr @test_count, align 4, !tbaa !5
  %10060 = add nsw i32 %10059, 1
  store i32 %10060, ptr @test_count, align 4, !tbaa !5
  %10061 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10062 = load i32, ptr %10061, align 4, !tbaa !5
  %10063 = icmp eq i32 %10062, 469762089
  br i1 %10063, label %10117, label %10064

10064:                                            ; preds = %10058
  br label %10065

10065:                                            ; preds = %10064
  br label %10066

10066:                                            ; preds = %10065
  call void @llvm.lifetime.start.p0(i64 4, ptr %242) #11
  %10067 = call ptr @__errno_location() #12
  %10068 = load i32, ptr %10067, align 4, !tbaa !5
  store i32 %10068, ptr %242, align 4, !tbaa !5
  %10069 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10070 = call i32 @s2n_print_stacktrace(ptr noundef %10069)
  %10071 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10072 = trunc i8 %10071 to i1
  br i1 %10072, label %10073, label %10095

10073:                                            ; preds = %10066
  %10074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10075 = call i32 @fileno(ptr noundef %10074) #11
  %10076 = call i32 @isatty(i32 noundef %10075) #11
  %10077 = icmp ne i32 %10076, 0
  br i1 %10077, label %10078, label %10095

10078:                                            ; preds = %10073
  %10079 = load i32, ptr %242, align 4, !tbaa !5
  %10080 = call ptr @__errno_location() #12
  store i32 %10079, ptr %10080, align 4, !tbaa !5
  %10081 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10082 = load i32, ptr @test_count, align 4, !tbaa !5
  %10083 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10084 = load i32, ptr %10083, align 4, !tbaa !5
  %10085 = call ptr @s2n_strerror(i32 noundef %10084, ptr noundef @.str.4)
  %10086 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10087 = load i32, ptr %10086, align 4, !tbaa !5
  %10088 = call ptr @s2n_strerror_debug(i32 noundef %10087, ptr noundef @.str.4)
  %10089 = call ptr @__errno_location() #12
  %10090 = load i32, ptr %10089, align 4, !tbaa !5
  %10091 = call ptr @strerror(i32 noundef %10090) #11
  %10092 = call ptr @__errno_location() #12
  %10093 = load i32, ptr %10092, align 4, !tbaa !5
  %10094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10081, ptr noundef @.str.2, i32 noundef %10082, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10085, ptr noundef %10088, ptr noundef %10091, i32 noundef %10093) #11
  br label %10112

10095:                                            ; preds = %10073, %10066
  %10096 = load i32, ptr %242, align 4, !tbaa !5
  %10097 = call ptr @__errno_location() #12
  store i32 %10096, ptr %10097, align 4, !tbaa !5
  %10098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10099 = load i32, ptr @test_count, align 4, !tbaa !5
  %10100 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10101 = load i32, ptr %10100, align 4, !tbaa !5
  %10102 = call ptr @s2n_strerror(i32 noundef %10101, ptr noundef @.str.4)
  %10103 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10104 = load i32, ptr %10103, align 4, !tbaa !5
  %10105 = call ptr @s2n_strerror_debug(i32 noundef %10104, ptr noundef @.str.4)
  %10106 = call ptr @__errno_location() #12
  %10107 = load i32, ptr %10106, align 4, !tbaa !5
  %10108 = call ptr @strerror(i32 noundef %10107) #11
  %10109 = call ptr @__errno_location() #12
  %10110 = load i32, ptr %10109, align 4, !tbaa !5
  %10111 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10098, ptr noundef @.str.5, i32 noundef %10099, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10102, ptr noundef %10105, ptr noundef %10108, i32 noundef %10110) #11
  br label %10112

10112:                                            ; preds = %10095, %10078
  call void @llvm.lifetime.end.p0(i64 4, ptr %242) #11
  br label %10113

10113:                                            ; preds = %10112
  br label %10114

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

10115:                                            ; No predecessors!
  br label %10116

10116:                                            ; preds = %10115
  br label %10117

10117:                                            ; preds = %10116, %10058
  br label %10118

10118:                                            ; preds = %10117
  br label %10119

10119:                                            ; preds = %10118
  br label %10120

10120:                                            ; preds = %10119
  %10121 = load i32, ptr @test_count, align 4, !tbaa !5
  %10122 = add nsw i32 %10121, 1
  store i32 %10122, ptr @test_count, align 4, !tbaa !5
  %10123 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10124 = load i32, ptr %10123, align 4, !tbaa !5
  %10125 = call ptr @s2n_strerror_debug(i32 noundef %10124, ptr noundef @.str.4)
  %10126 = icmp eq ptr %10125, null
  br i1 %10126, label %10127, label %10180

10127:                                            ; preds = %10120
  br label %10128

10128:                                            ; preds = %10127
  br label %10129

10129:                                            ; preds = %10128
  call void @llvm.lifetime.start.p0(i64 4, ptr %243) #11
  %10130 = call ptr @__errno_location() #12
  %10131 = load i32, ptr %10130, align 4, !tbaa !5
  store i32 %10131, ptr %243, align 4, !tbaa !5
  %10132 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10133 = call i32 @s2n_print_stacktrace(ptr noundef %10132)
  %10134 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10135 = trunc i8 %10134 to i1
  br i1 %10135, label %10136, label %10158

10136:                                            ; preds = %10129
  %10137 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10138 = call i32 @fileno(ptr noundef %10137) #11
  %10139 = call i32 @isatty(i32 noundef %10138) #11
  %10140 = icmp ne i32 %10139, 0
  br i1 %10140, label %10141, label %10158

10141:                                            ; preds = %10136
  %10142 = load i32, ptr %243, align 4, !tbaa !5
  %10143 = call ptr @__errno_location() #12
  store i32 %10142, ptr %10143, align 4, !tbaa !5
  %10144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10145 = load i32, ptr @test_count, align 4, !tbaa !5
  %10146 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10147 = load i32, ptr %10146, align 4, !tbaa !5
  %10148 = call ptr @s2n_strerror(i32 noundef %10147, ptr noundef @.str.4)
  %10149 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10150 = load i32, ptr %10149, align 4, !tbaa !5
  %10151 = call ptr @s2n_strerror_debug(i32 noundef %10150, ptr noundef @.str.4)
  %10152 = call ptr @__errno_location() #12
  %10153 = load i32, ptr %10152, align 4, !tbaa !5
  %10154 = call ptr @strerror(i32 noundef %10153) #11
  %10155 = call ptr @__errno_location() #12
  %10156 = load i32, ptr %10155, align 4, !tbaa !5
  %10157 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10144, ptr noundef @.str.2, i32 noundef %10145, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10148, ptr noundef %10151, ptr noundef %10154, i32 noundef %10156) #11
  br label %10175

10158:                                            ; preds = %10136, %10129
  %10159 = load i32, ptr %243, align 4, !tbaa !5
  %10160 = call ptr @__errno_location() #12
  store i32 %10159, ptr %10160, align 4, !tbaa !5
  %10161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10162 = load i32, ptr @test_count, align 4, !tbaa !5
  %10163 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10164 = load i32, ptr %10163, align 4, !tbaa !5
  %10165 = call ptr @s2n_strerror(i32 noundef %10164, ptr noundef @.str.4)
  %10166 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10167 = load i32, ptr %10166, align 4, !tbaa !5
  %10168 = call ptr @s2n_strerror_debug(i32 noundef %10167, ptr noundef @.str.4)
  %10169 = call ptr @__errno_location() #12
  %10170 = load i32, ptr %10169, align 4, !tbaa !5
  %10171 = call ptr @strerror(i32 noundef %10170) #11
  %10172 = call ptr @__errno_location() #12
  %10173 = load i32, ptr %10172, align 4, !tbaa !5
  %10174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10161, ptr noundef @.str.5, i32 noundef %10162, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 428, ptr noundef %10165, ptr noundef %10168, ptr noundef %10171, i32 noundef %10173) #11
  br label %10175

10175:                                            ; preds = %10158, %10141
  call void @llvm.lifetime.end.p0(i64 4, ptr %243) #11
  br label %10176

10176:                                            ; preds = %10175
  br label %10177

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

10178:                                            ; No predecessors!
  br label %10179

10179:                                            ; preds = %10178
  br label %10180

10180:                                            ; preds = %10179, %10120
  br label %10181

10181:                                            ; preds = %10180
  br label %10182

10182:                                            ; preds = %10181
  br label %10183

10183:                                            ; preds = %10182
  br label %10184

10184:                                            ; preds = %10183
  br label %10185

10185:                                            ; preds = %10184
  %10186 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10186, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10187 = call ptr @__errno_location() #12
  store i32 0, ptr %10187, align 4, !tbaa !5
  br label %10188

10188:                                            ; preds = %10185
  br label %10189

10189:                                            ; preds = %10188
  br label %10190

10190:                                            ; preds = %10189
  br label %10191

10191:                                            ; preds = %10190
  call void @llvm.lifetime.end.p0(i64 4, ptr %234) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %233) #11
  %10192 = call i32 @s2n_fingerprint_free(ptr noundef %232)
  call void @llvm.lifetime.end.p0(i64 8, ptr %232) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %244) #11
  %10193 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %10193, ptr %244, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 100, ptr %245) #11
  call void @llvm.memset.p0.i64(ptr align 16 %245, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %246) #11
  store i32 0, ptr %246, align 4, !tbaa !5
  br label %10194

10194:                                            ; preds = %10191
  br label %10195

10195:                                            ; preds = %10194
  br label %10196

10196:                                            ; preds = %10195
  %10197 = load i32, ptr @test_count, align 4, !tbaa !5
  %10198 = add nsw i32 %10197, 1
  store i32 %10198, ptr @test_count, align 4, !tbaa !5
  %10199 = load ptr, ptr %244, align 8, !tbaa !9
  %10200 = getelementptr inbounds [100 x i8], ptr %245, i64 0, i64 0
  %10201 = call i32 @s2n_fingerprint_get_hash(ptr noundef %10199, i32 noundef 100, ptr noundef %10200, ptr noundef %246)
  %10202 = icmp eq i32 %10201, -1
  br i1 %10202, label %10256, label %10203

10203:                                            ; preds = %10196
  br label %10204

10204:                                            ; preds = %10203
  br label %10205

10205:                                            ; preds = %10204
  call void @llvm.lifetime.start.p0(i64 4, ptr %247) #11
  %10206 = call ptr @__errno_location() #12
  %10207 = load i32, ptr %10206, align 4, !tbaa !5
  store i32 %10207, ptr %247, align 4, !tbaa !5
  %10208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10209 = call i32 @s2n_print_stacktrace(ptr noundef %10208)
  %10210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10211 = trunc i8 %10210 to i1
  br i1 %10211, label %10212, label %10234

10212:                                            ; preds = %10205
  %10213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10214 = call i32 @fileno(ptr noundef %10213) #11
  %10215 = call i32 @isatty(i32 noundef %10214) #11
  %10216 = icmp ne i32 %10215, 0
  br i1 %10216, label %10217, label %10234

10217:                                            ; preds = %10212
  %10218 = load i32, ptr %247, align 4, !tbaa !5
  %10219 = call ptr @__errno_location() #12
  store i32 %10218, ptr %10219, align 4, !tbaa !5
  %10220 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10221 = load i32, ptr @test_count, align 4, !tbaa !5
  %10222 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10223 = load i32, ptr %10222, align 4, !tbaa !5
  %10224 = call ptr @s2n_strerror(i32 noundef %10223, ptr noundef @.str.4)
  %10225 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10226 = load i32, ptr %10225, align 4, !tbaa !5
  %10227 = call ptr @s2n_strerror_debug(i32 noundef %10226, ptr noundef @.str.4)
  %10228 = call ptr @__errno_location() #12
  %10229 = load i32, ptr %10228, align 4, !tbaa !5
  %10230 = call ptr @strerror(i32 noundef %10229) #11
  %10231 = call ptr @__errno_location() #12
  %10232 = load i32, ptr %10231, align 4, !tbaa !5
  %10233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10220, ptr noundef @.str.2, i32 noundef %10221, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 440, ptr noundef %10224, ptr noundef %10227, ptr noundef %10230, i32 noundef %10232) #11
  br label %10251

10234:                                            ; preds = %10212, %10205
  %10235 = load i32, ptr %247, align 4, !tbaa !5
  %10236 = call ptr @__errno_location() #12
  store i32 %10235, ptr %10236, align 4, !tbaa !5
  %10237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10238 = load i32, ptr @test_count, align 4, !tbaa !5
  %10239 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10240 = load i32, ptr %10239, align 4, !tbaa !5
  %10241 = call ptr @s2n_strerror(i32 noundef %10240, ptr noundef @.str.4)
  %10242 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10243 = load i32, ptr %10242, align 4, !tbaa !5
  %10244 = call ptr @s2n_strerror_debug(i32 noundef %10243, ptr noundef @.str.4)
  %10245 = call ptr @__errno_location() #12
  %10246 = load i32, ptr %10245, align 4, !tbaa !5
  %10247 = call ptr @strerror(i32 noundef %10246) #11
  %10248 = call ptr @__errno_location() #12
  %10249 = load i32, ptr %10248, align 4, !tbaa !5
  %10250 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10237, ptr noundef @.str.5, i32 noundef %10238, ptr noundef @.str.86, ptr noundef @.str.1, i32 noundef 440, ptr noundef %10241, ptr noundef %10244, ptr noundef %10247, i32 noundef %10249) #11
  br label %10251

10251:                                            ; preds = %10234, %10217
  call void @llvm.lifetime.end.p0(i64 4, ptr %247) #11
  br label %10252

10252:                                            ; preds = %10251
  br label %10253

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

10254:                                            ; No predecessors!
  br label %10255

10255:                                            ; preds = %10254
  br label %10256

10256:                                            ; preds = %10255, %10196
  br label %10257

10257:                                            ; preds = %10256
  br label %10258

10258:                                            ; preds = %10257
  br label %10259

10259:                                            ; preds = %10258
  %10260 = load i32, ptr @test_count, align 4, !tbaa !5
  %10261 = add nsw i32 %10260, 1
  store i32 %10261, ptr @test_count, align 4, !tbaa !5
  %10262 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10263 = load i32, ptr %10262, align 4, !tbaa !5
  %10264 = icmp eq i32 %10263, 469762112
  br i1 %10264, label %10318, label %10265

10265:                                            ; preds = %10259
  br label %10266

10266:                                            ; preds = %10265
  br label %10267

10267:                                            ; preds = %10266
  call void @llvm.lifetime.start.p0(i64 4, ptr %248) #11
  %10268 = call ptr @__errno_location() #12
  %10269 = load i32, ptr %10268, align 4, !tbaa !5
  store i32 %10269, ptr %248, align 4, !tbaa !5
  %10270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10271 = call i32 @s2n_print_stacktrace(ptr noundef %10270)
  %10272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10273 = trunc i8 %10272 to i1
  br i1 %10273, label %10274, label %10296

10274:                                            ; preds = %10267
  %10275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10276 = call i32 @fileno(ptr noundef %10275) #11
  %10277 = call i32 @isatty(i32 noundef %10276) #11
  %10278 = icmp ne i32 %10277, 0
  br i1 %10278, label %10279, label %10296

10279:                                            ; preds = %10274
  %10280 = load i32, ptr %248, align 4, !tbaa !5
  %10281 = call ptr @__errno_location() #12
  store i32 %10280, ptr %10281, align 4, !tbaa !5
  %10282 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10283 = load i32, ptr @test_count, align 4, !tbaa !5
  %10284 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10285 = load i32, ptr %10284, align 4, !tbaa !5
  %10286 = call ptr @s2n_strerror(i32 noundef %10285, ptr noundef @.str.4)
  %10287 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10288 = load i32, ptr %10287, align 4, !tbaa !5
  %10289 = call ptr @s2n_strerror_debug(i32 noundef %10288, ptr noundef @.str.4)
  %10290 = call ptr @__errno_location() #12
  %10291 = load i32, ptr %10290, align 4, !tbaa !5
  %10292 = call ptr @strerror(i32 noundef %10291) #11
  %10293 = call ptr @__errno_location() #12
  %10294 = load i32, ptr %10293, align 4, !tbaa !5
  %10295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10282, ptr noundef @.str.2, i32 noundef %10283, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 440, ptr noundef %10286, ptr noundef %10289, ptr noundef %10292, i32 noundef %10294) #11
  br label %10313

10296:                                            ; preds = %10274, %10267
  %10297 = load i32, ptr %248, align 4, !tbaa !5
  %10298 = call ptr @__errno_location() #12
  store i32 %10297, ptr %10298, align 4, !tbaa !5
  %10299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10300 = load i32, ptr @test_count, align 4, !tbaa !5
  %10301 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10302 = load i32, ptr %10301, align 4, !tbaa !5
  %10303 = call ptr @s2n_strerror(i32 noundef %10302, ptr noundef @.str.4)
  %10304 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10305 = load i32, ptr %10304, align 4, !tbaa !5
  %10306 = call ptr @s2n_strerror_debug(i32 noundef %10305, ptr noundef @.str.4)
  %10307 = call ptr @__errno_location() #12
  %10308 = load i32, ptr %10307, align 4, !tbaa !5
  %10309 = call ptr @strerror(i32 noundef %10308) #11
  %10310 = call ptr @__errno_location() #12
  %10311 = load i32, ptr %10310, align 4, !tbaa !5
  %10312 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10299, ptr noundef @.str.5, i32 noundef %10300, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 440, ptr noundef %10303, ptr noundef %10306, ptr noundef %10309, i32 noundef %10311) #11
  br label %10313

10313:                                            ; preds = %10296, %10279
  call void @llvm.lifetime.end.p0(i64 4, ptr %248) #11
  br label %10314

10314:                                            ; preds = %10313
  br label %10315

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

10316:                                            ; No predecessors!
  br label %10317

10317:                                            ; preds = %10316
  br label %10318

10318:                                            ; preds = %10317, %10259
  br label %10319

10319:                                            ; preds = %10318
  br label %10320

10320:                                            ; preds = %10319
  br label %10321

10321:                                            ; preds = %10320
  %10322 = load i32, ptr @test_count, align 4, !tbaa !5
  %10323 = add nsw i32 %10322, 1
  store i32 %10323, ptr @test_count, align 4, !tbaa !5
  %10324 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10325 = load i32, ptr %10324, align 4, !tbaa !5
  %10326 = call ptr @s2n_strerror_debug(i32 noundef %10325, ptr noundef @.str.4)
  %10327 = icmp eq ptr %10326, null
  br i1 %10327, label %10328, label %10381

10328:                                            ; preds = %10321
  br label %10329

10329:                                            ; preds = %10328
  br label %10330

10330:                                            ; preds = %10329
  call void @llvm.lifetime.start.p0(i64 4, ptr %249) #11
  %10331 = call ptr @__errno_location() #12
  %10332 = load i32, ptr %10331, align 4, !tbaa !5
  store i32 %10332, ptr %249, align 4, !tbaa !5
  %10333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10334 = call i32 @s2n_print_stacktrace(ptr noundef %10333)
  %10335 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10336 = trunc i8 %10335 to i1
  br i1 %10336, label %10337, label %10359

10337:                                            ; preds = %10330
  %10338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10339 = call i32 @fileno(ptr noundef %10338) #11
  %10340 = call i32 @isatty(i32 noundef %10339) #11
  %10341 = icmp ne i32 %10340, 0
  br i1 %10341, label %10342, label %10359

10342:                                            ; preds = %10337
  %10343 = load i32, ptr %249, align 4, !tbaa !5
  %10344 = call ptr @__errno_location() #12
  store i32 %10343, ptr %10344, align 4, !tbaa !5
  %10345 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10346 = load i32, ptr @test_count, align 4, !tbaa !5
  %10347 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10348 = load i32, ptr %10347, align 4, !tbaa !5
  %10349 = call ptr @s2n_strerror(i32 noundef %10348, ptr noundef @.str.4)
  %10350 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10351 = load i32, ptr %10350, align 4, !tbaa !5
  %10352 = call ptr @s2n_strerror_debug(i32 noundef %10351, ptr noundef @.str.4)
  %10353 = call ptr @__errno_location() #12
  %10354 = load i32, ptr %10353, align 4, !tbaa !5
  %10355 = call ptr @strerror(i32 noundef %10354) #11
  %10356 = call ptr @__errno_location() #12
  %10357 = load i32, ptr %10356, align 4, !tbaa !5
  %10358 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10345, ptr noundef @.str.2, i32 noundef %10346, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 440, ptr noundef %10349, ptr noundef %10352, ptr noundef %10355, i32 noundef %10357) #11
  br label %10376

10359:                                            ; preds = %10337, %10330
  %10360 = load i32, ptr %249, align 4, !tbaa !5
  %10361 = call ptr @__errno_location() #12
  store i32 %10360, ptr %10361, align 4, !tbaa !5
  %10362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10363 = load i32, ptr @test_count, align 4, !tbaa !5
  %10364 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10365 = load i32, ptr %10364, align 4, !tbaa !5
  %10366 = call ptr @s2n_strerror(i32 noundef %10365, ptr noundef @.str.4)
  %10367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10368 = load i32, ptr %10367, align 4, !tbaa !5
  %10369 = call ptr @s2n_strerror_debug(i32 noundef %10368, ptr noundef @.str.4)
  %10370 = call ptr @__errno_location() #12
  %10371 = load i32, ptr %10370, align 4, !tbaa !5
  %10372 = call ptr @strerror(i32 noundef %10371) #11
  %10373 = call ptr @__errno_location() #12
  %10374 = load i32, ptr %10373, align 4, !tbaa !5
  %10375 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10362, ptr noundef @.str.5, i32 noundef %10363, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 440, ptr noundef %10366, ptr noundef %10369, ptr noundef %10372, i32 noundef %10374) #11
  br label %10376

10376:                                            ; preds = %10359, %10342
  call void @llvm.lifetime.end.p0(i64 4, ptr %249) #11
  br label %10377

10377:                                            ; preds = %10376
  br label %10378

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

10379:                                            ; No predecessors!
  br label %10380

10380:                                            ; preds = %10379
  br label %10381

10381:                                            ; preds = %10380, %10321
  br label %10382

10382:                                            ; preds = %10381
  br label %10383

10383:                                            ; preds = %10382
  br label %10384

10384:                                            ; preds = %10383
  br label %10385

10385:                                            ; preds = %10384
  br label %10386

10386:                                            ; preds = %10385
  %10387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10387, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10388 = call ptr @__errno_location() #12
  store i32 0, ptr %10388, align 4, !tbaa !5
  br label %10389

10389:                                            ; preds = %10386
  br label %10390

10390:                                            ; preds = %10389
  br label %10391

10391:                                            ; preds = %10390
  br label %10392

10392:                                            ; preds = %10391
  call void @llvm.lifetime.end.p0(i64 4, ptr %246) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %245) #11
  %10393 = call i32 @s2n_fingerprint_free(ptr noundef %244)
  call void @llvm.lifetime.end.p0(i64 8, ptr %244) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %250) #11
  %10394 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %10394, ptr %250, align 8, !tbaa !9
  br label %10395

10395:                                            ; preds = %10392
  %10396 = load i32, ptr @test_count, align 4, !tbaa !5
  %10397 = add nsw i32 %10396, 1
  store i32 %10397, ptr @test_count, align 4, !tbaa !5
  %10398 = load ptr, ptr %250, align 8, !tbaa !9
  %10399 = load ptr, ptr %14, align 8, !tbaa !9
  %10400 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %10398, ptr noundef %10399)
  %10401 = icmp eq i32 %10400, -1
  br i1 %10401, label %10402, label %10455

10402:                                            ; preds = %10395
  br label %10403

10403:                                            ; preds = %10402
  br label %10404

10404:                                            ; preds = %10403
  call void @llvm.lifetime.start.p0(i64 4, ptr %251) #11
  %10405 = call ptr @__errno_location() #12
  %10406 = load i32, ptr %10405, align 4, !tbaa !5
  store i32 %10406, ptr %251, align 4, !tbaa !5
  %10407 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10408 = call i32 @s2n_print_stacktrace(ptr noundef %10407)
  %10409 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10410 = trunc i8 %10409 to i1
  br i1 %10410, label %10411, label %10433

10411:                                            ; preds = %10404
  %10412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10413 = call i32 @fileno(ptr noundef %10412) #11
  %10414 = call i32 @isatty(i32 noundef %10413) #11
  %10415 = icmp ne i32 %10414, 0
  br i1 %10415, label %10416, label %10433

10416:                                            ; preds = %10411
  %10417 = load i32, ptr %251, align 4, !tbaa !5
  %10418 = call ptr @__errno_location() #12
  store i32 %10417, ptr %10418, align 4, !tbaa !5
  %10419 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10420 = load i32, ptr @test_count, align 4, !tbaa !5
  %10421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10422 = load i32, ptr %10421, align 4, !tbaa !5
  %10423 = call ptr @s2n_strerror(i32 noundef %10422, ptr noundef @.str.4)
  %10424 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10425 = load i32, ptr %10424, align 4, !tbaa !5
  %10426 = call ptr @s2n_strerror_debug(i32 noundef %10425, ptr noundef @.str.4)
  %10427 = call ptr @__errno_location() #12
  %10428 = load i32, ptr %10427, align 4, !tbaa !5
  %10429 = call ptr @strerror(i32 noundef %10428) #11
  %10430 = call ptr @__errno_location() #12
  %10431 = load i32, ptr %10430, align 4, !tbaa !5
  %10432 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10419, ptr noundef @.str.2, i32 noundef %10420, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 447, ptr noundef %10423, ptr noundef %10426, ptr noundef %10429, i32 noundef %10431) #11
  br label %10450

10433:                                            ; preds = %10411, %10404
  %10434 = load i32, ptr %251, align 4, !tbaa !5
  %10435 = call ptr @__errno_location() #12
  store i32 %10434, ptr %10435, align 4, !tbaa !5
  %10436 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10437 = load i32, ptr @test_count, align 4, !tbaa !5
  %10438 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10439 = load i32, ptr %10438, align 4, !tbaa !5
  %10440 = call ptr @s2n_strerror(i32 noundef %10439, ptr noundef @.str.4)
  %10441 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10442 = load i32, ptr %10441, align 4, !tbaa !5
  %10443 = call ptr @s2n_strerror_debug(i32 noundef %10442, ptr noundef @.str.4)
  %10444 = call ptr @__errno_location() #12
  %10445 = load i32, ptr %10444, align 4, !tbaa !5
  %10446 = call ptr @strerror(i32 noundef %10445) #11
  %10447 = call ptr @__errno_location() #12
  %10448 = load i32, ptr %10447, align 4, !tbaa !5
  %10449 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10436, ptr noundef @.str.5, i32 noundef %10437, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 447, ptr noundef %10440, ptr noundef %10443, ptr noundef %10446, i32 noundef %10448) #11
  br label %10450

10450:                                            ; preds = %10433, %10416
  call void @llvm.lifetime.end.p0(i64 4, ptr %251) #11
  br label %10451

10451:                                            ; preds = %10450
  br label %10452

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

10453:                                            ; No predecessors!
  br label %10454

10454:                                            ; preds = %10453
  br label %10455

10455:                                            ; preds = %10454, %10395
  br label %10456

10456:                                            ; preds = %10455
  br label %10457

10457:                                            ; preds = %10456
  call void @llvm.lifetime.start.p0(i64 100, ptr %252) #11
  call void @llvm.memset.p0.i64(ptr align 16 %252, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %253) #11
  store i32 0, ptr %253, align 4, !tbaa !5
  br label %10458

10458:                                            ; preds = %10457
  %10459 = load i32, ptr @test_count, align 4, !tbaa !5
  %10460 = add nsw i32 %10459, 1
  store i32 %10460, ptr @test_count, align 4, !tbaa !5
  %10461 = load ptr, ptr %250, align 8, !tbaa !9
  %10462 = getelementptr inbounds [100 x i8], ptr %252, i64 0, i64 0
  %10463 = call i32 @s2n_fingerprint_get_hash(ptr noundef %10461, i32 noundef 100, ptr noundef %10462, ptr noundef %253)
  %10464 = icmp eq i32 %10463, -1
  br i1 %10464, label %10465, label %10518

10465:                                            ; preds = %10458
  br label %10466

10466:                                            ; preds = %10465
  br label %10467

10467:                                            ; preds = %10466
  call void @llvm.lifetime.start.p0(i64 4, ptr %254) #11
  %10468 = call ptr @__errno_location() #12
  %10469 = load i32, ptr %10468, align 4, !tbaa !5
  store i32 %10469, ptr %254, align 4, !tbaa !5
  %10470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10471 = call i32 @s2n_print_stacktrace(ptr noundef %10470)
  %10472 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10473 = trunc i8 %10472 to i1
  br i1 %10473, label %10474, label %10496

10474:                                            ; preds = %10467
  %10475 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10476 = call i32 @fileno(ptr noundef %10475) #11
  %10477 = call i32 @isatty(i32 noundef %10476) #11
  %10478 = icmp ne i32 %10477, 0
  br i1 %10478, label %10479, label %10496

10479:                                            ; preds = %10474
  %10480 = load i32, ptr %254, align 4, !tbaa !5
  %10481 = call ptr @__errno_location() #12
  store i32 %10480, ptr %10481, align 4, !tbaa !5
  %10482 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10483 = load i32, ptr @test_count, align 4, !tbaa !5
  %10484 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10485 = load i32, ptr %10484, align 4, !tbaa !5
  %10486 = call ptr @s2n_strerror(i32 noundef %10485, ptr noundef @.str.4)
  %10487 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10488 = load i32, ptr %10487, align 4, !tbaa !5
  %10489 = call ptr @s2n_strerror_debug(i32 noundef %10488, ptr noundef @.str.4)
  %10490 = call ptr @__errno_location() #12
  %10491 = load i32, ptr %10490, align 4, !tbaa !5
  %10492 = call ptr @strerror(i32 noundef %10491) #11
  %10493 = call ptr @__errno_location() #12
  %10494 = load i32, ptr %10493, align 4, !tbaa !5
  %10495 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10482, ptr noundef @.str.2, i32 noundef %10483, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 452, ptr noundef %10486, ptr noundef %10489, ptr noundef %10492, i32 noundef %10494) #11
  br label %10513

10496:                                            ; preds = %10474, %10467
  %10497 = load i32, ptr %254, align 4, !tbaa !5
  %10498 = call ptr @__errno_location() #12
  store i32 %10497, ptr %10498, align 4, !tbaa !5
  %10499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10500 = load i32, ptr @test_count, align 4, !tbaa !5
  %10501 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10502 = load i32, ptr %10501, align 4, !tbaa !5
  %10503 = call ptr @s2n_strerror(i32 noundef %10502, ptr noundef @.str.4)
  %10504 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10505 = load i32, ptr %10504, align 4, !tbaa !5
  %10506 = call ptr @s2n_strerror_debug(i32 noundef %10505, ptr noundef @.str.4)
  %10507 = call ptr @__errno_location() #12
  %10508 = load i32, ptr %10507, align 4, !tbaa !5
  %10509 = call ptr @strerror(i32 noundef %10508) #11
  %10510 = call ptr @__errno_location() #12
  %10511 = load i32, ptr %10510, align 4, !tbaa !5
  %10512 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10499, ptr noundef @.str.5, i32 noundef %10500, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 452, ptr noundef %10503, ptr noundef %10506, ptr noundef %10509, i32 noundef %10511) #11
  br label %10513

10513:                                            ; preds = %10496, %10479
  call void @llvm.lifetime.end.p0(i64 4, ptr %254) #11
  br label %10514

10514:                                            ; preds = %10513
  br label %10515

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

10516:                                            ; No predecessors!
  br label %10517

10517:                                            ; preds = %10516
  br label %10518

10518:                                            ; preds = %10517, %10458
  br label %10519

10519:                                            ; preds = %10518
  br label %10520

10520:                                            ; preds = %10519
  br label %10521

10521:                                            ; preds = %10520
  %10522 = load i32, ptr @test_count, align 4, !tbaa !5
  %10523 = add nsw i32 %10522, 1
  store i32 %10523, ptr @test_count, align 4, !tbaa !5
  %10524 = load i32, ptr %253, align 4, !tbaa !5
  %10525 = load i32, ptr getelementptr inbounds (%struct.s2n_fingerprint_method, ptr @ja3_fingerprint, i32 0, i32 1), align 4, !tbaa !44
  %10526 = icmp eq i32 %10524, %10525
  br i1 %10526, label %10580, label %10527

10527:                                            ; preds = %10521
  br label %10528

10528:                                            ; preds = %10527
  br label %10529

10529:                                            ; preds = %10528
  call void @llvm.lifetime.start.p0(i64 4, ptr %255) #11
  %10530 = call ptr @__errno_location() #12
  %10531 = load i32, ptr %10530, align 4, !tbaa !5
  store i32 %10531, ptr %255, align 4, !tbaa !5
  %10532 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10533 = call i32 @s2n_print_stacktrace(ptr noundef %10532)
  %10534 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10535 = trunc i8 %10534 to i1
  br i1 %10535, label %10536, label %10558

10536:                                            ; preds = %10529
  %10537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10538 = call i32 @fileno(ptr noundef %10537) #11
  %10539 = call i32 @isatty(i32 noundef %10538) #11
  %10540 = icmp ne i32 %10539, 0
  br i1 %10540, label %10541, label %10558

10541:                                            ; preds = %10536
  %10542 = load i32, ptr %255, align 4, !tbaa !5
  %10543 = call ptr @__errno_location() #12
  store i32 %10542, ptr %10543, align 4, !tbaa !5
  %10544 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10545 = load i32, ptr @test_count, align 4, !tbaa !5
  %10546 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10547 = load i32, ptr %10546, align 4, !tbaa !5
  %10548 = call ptr @s2n_strerror(i32 noundef %10547, ptr noundef @.str.4)
  %10549 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10550 = load i32, ptr %10549, align 4, !tbaa !5
  %10551 = call ptr @s2n_strerror_debug(i32 noundef %10550, ptr noundef @.str.4)
  %10552 = call ptr @__errno_location() #12
  %10553 = load i32, ptr %10552, align 4, !tbaa !5
  %10554 = call ptr @strerror(i32 noundef %10553) #11
  %10555 = call ptr @__errno_location() #12
  %10556 = load i32, ptr %10555, align 4, !tbaa !5
  %10557 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10544, ptr noundef @.str.2, i32 noundef %10545, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 454, ptr noundef %10548, ptr noundef %10551, ptr noundef %10554, i32 noundef %10556) #11
  br label %10575

10558:                                            ; preds = %10536, %10529
  %10559 = load i32, ptr %255, align 4, !tbaa !5
  %10560 = call ptr @__errno_location() #12
  store i32 %10559, ptr %10560, align 4, !tbaa !5
  %10561 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10562 = load i32, ptr @test_count, align 4, !tbaa !5
  %10563 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10564 = load i32, ptr %10563, align 4, !tbaa !5
  %10565 = call ptr @s2n_strerror(i32 noundef %10564, ptr noundef @.str.4)
  %10566 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10567 = load i32, ptr %10566, align 4, !tbaa !5
  %10568 = call ptr @s2n_strerror_debug(i32 noundef %10567, ptr noundef @.str.4)
  %10569 = call ptr @__errno_location() #12
  %10570 = load i32, ptr %10569, align 4, !tbaa !5
  %10571 = call ptr @strerror(i32 noundef %10570) #11
  %10572 = call ptr @__errno_location() #12
  %10573 = load i32, ptr %10572, align 4, !tbaa !5
  %10574 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10561, ptr noundef @.str.5, i32 noundef %10562, ptr noundef @.str.89, ptr noundef @.str.1, i32 noundef 454, ptr noundef %10565, ptr noundef %10568, ptr noundef %10571, i32 noundef %10573) #11
  br label %10575

10575:                                            ; preds = %10558, %10541
  call void @llvm.lifetime.end.p0(i64 4, ptr %255) #11
  br label %10576

10576:                                            ; preds = %10575
  br label %10577

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

10578:                                            ; No predecessors!
  br label %10579

10579:                                            ; preds = %10578
  br label %10580

10580:                                            ; preds = %10579, %10521
  br label %10581

10581:                                            ; preds = %10580
  br label %10582

10582:                                            ; preds = %10581
  call void @llvm.lifetime.end.p0(i64 4, ptr %253) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %252) #11
  %10583 = call i32 @s2n_fingerprint_free(ptr noundef %250)
  call void @llvm.lifetime.end.p0(i64 8, ptr %250) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %256) #11
  %10584 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %10584, ptr %256, align 8, !tbaa !9
  br label %10585

10585:                                            ; preds = %10582
  %10586 = load i32, ptr @test_count, align 4, !tbaa !5
  %10587 = add nsw i32 %10586, 1
  store i32 %10587, ptr @test_count, align 4, !tbaa !5
  %10588 = load ptr, ptr %256, align 8, !tbaa !9
  %10589 = load ptr, ptr %14, align 8, !tbaa !9
  %10590 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %10588, ptr noundef %10589)
  %10591 = icmp eq i32 %10590, -1
  br i1 %10591, label %10592, label %10645

10592:                                            ; preds = %10585
  br label %10593

10593:                                            ; preds = %10592
  br label %10594

10594:                                            ; preds = %10593
  call void @llvm.lifetime.start.p0(i64 4, ptr %257) #11
  %10595 = call ptr @__errno_location() #12
  %10596 = load i32, ptr %10595, align 4, !tbaa !5
  store i32 %10596, ptr %257, align 4, !tbaa !5
  %10597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10598 = call i32 @s2n_print_stacktrace(ptr noundef %10597)
  %10599 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10600 = trunc i8 %10599 to i1
  br i1 %10600, label %10601, label %10623

10601:                                            ; preds = %10594
  %10602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10603 = call i32 @fileno(ptr noundef %10602) #11
  %10604 = call i32 @isatty(i32 noundef %10603) #11
  %10605 = icmp ne i32 %10604, 0
  br i1 %10605, label %10606, label %10623

10606:                                            ; preds = %10601
  %10607 = load i32, ptr %257, align 4, !tbaa !5
  %10608 = call ptr @__errno_location() #12
  store i32 %10607, ptr %10608, align 4, !tbaa !5
  %10609 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10610 = load i32, ptr @test_count, align 4, !tbaa !5
  %10611 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10612 = load i32, ptr %10611, align 4, !tbaa !5
  %10613 = call ptr @s2n_strerror(i32 noundef %10612, ptr noundef @.str.4)
  %10614 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10615 = load i32, ptr %10614, align 4, !tbaa !5
  %10616 = call ptr @s2n_strerror_debug(i32 noundef %10615, ptr noundef @.str.4)
  %10617 = call ptr @__errno_location() #12
  %10618 = load i32, ptr %10617, align 4, !tbaa !5
  %10619 = call ptr @strerror(i32 noundef %10618) #11
  %10620 = call ptr @__errno_location() #12
  %10621 = load i32, ptr %10620, align 4, !tbaa !5
  %10622 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10609, ptr noundef @.str.2, i32 noundef %10610, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 461, ptr noundef %10613, ptr noundef %10616, ptr noundef %10619, i32 noundef %10621) #11
  br label %10640

10623:                                            ; preds = %10601, %10594
  %10624 = load i32, ptr %257, align 4, !tbaa !5
  %10625 = call ptr @__errno_location() #12
  store i32 %10624, ptr %10625, align 4, !tbaa !5
  %10626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10627 = load i32, ptr @test_count, align 4, !tbaa !5
  %10628 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10629 = load i32, ptr %10628, align 4, !tbaa !5
  %10630 = call ptr @s2n_strerror(i32 noundef %10629, ptr noundef @.str.4)
  %10631 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10632 = load i32, ptr %10631, align 4, !tbaa !5
  %10633 = call ptr @s2n_strerror_debug(i32 noundef %10632, ptr noundef @.str.4)
  %10634 = call ptr @__errno_location() #12
  %10635 = load i32, ptr %10634, align 4, !tbaa !5
  %10636 = call ptr @strerror(i32 noundef %10635) #11
  %10637 = call ptr @__errno_location() #12
  %10638 = load i32, ptr %10637, align 4, !tbaa !5
  %10639 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10626, ptr noundef @.str.5, i32 noundef %10627, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 461, ptr noundef %10630, ptr noundef %10633, ptr noundef %10636, i32 noundef %10638) #11
  br label %10640

10640:                                            ; preds = %10623, %10606
  call void @llvm.lifetime.end.p0(i64 4, ptr %257) #11
  br label %10641

10641:                                            ; preds = %10640
  br label %10642

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

10643:                                            ; No predecessors!
  br label %10644

10644:                                            ; preds = %10643
  br label %10645

10645:                                            ; preds = %10644, %10585
  br label %10646

10646:                                            ; preds = %10645
  br label %10647

10647:                                            ; preds = %10646
  call void @llvm.lifetime.start.p0(i64 100, ptr %258) #11
  call void @llvm.memset.p0.i64(ptr align 16 %258, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %259) #11
  store i32 0, ptr %259, align 4, !tbaa !5
  br label %10648

10648:                                            ; preds = %10647
  %10649 = load i32, ptr @test_count, align 4, !tbaa !5
  %10650 = add nsw i32 %10649, 1
  store i32 %10650, ptr @test_count, align 4, !tbaa !5
  %10651 = load i32, ptr getelementptr inbounds (%struct.s2n_fingerprint_method, ptr @ja3_fingerprint, i32 0, i32 1), align 4, !tbaa !44
  %10652 = zext i32 %10651 to i64
  %10653 = icmp ule i64 %10652, 100
  br i1 %10653, label %10707, label %10654

10654:                                            ; preds = %10648
  br label %10655

10655:                                            ; preds = %10654
  br label %10656

10656:                                            ; preds = %10655
  call void @llvm.lifetime.start.p0(i64 4, ptr %260) #11
  %10657 = call ptr @__errno_location() #12
  %10658 = load i32, ptr %10657, align 4, !tbaa !5
  store i32 %10658, ptr %260, align 4, !tbaa !5
  %10659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10660 = call i32 @s2n_print_stacktrace(ptr noundef %10659)
  %10661 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10662 = trunc i8 %10661 to i1
  br i1 %10662, label %10663, label %10685

10663:                                            ; preds = %10656
  %10664 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10665 = call i32 @fileno(ptr noundef %10664) #11
  %10666 = call i32 @isatty(i32 noundef %10665) #11
  %10667 = icmp ne i32 %10666, 0
  br i1 %10667, label %10668, label %10685

10668:                                            ; preds = %10663
  %10669 = load i32, ptr %260, align 4, !tbaa !5
  %10670 = call ptr @__errno_location() #12
  store i32 %10669, ptr %10670, align 4, !tbaa !5
  %10671 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10672 = load i32, ptr @test_count, align 4, !tbaa !5
  %10673 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10674 = load i32, ptr %10673, align 4, !tbaa !5
  %10675 = call ptr @s2n_strerror(i32 noundef %10674, ptr noundef @.str.4)
  %10676 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10677 = load i32, ptr %10676, align 4, !tbaa !5
  %10678 = call ptr @s2n_strerror_debug(i32 noundef %10677, ptr noundef @.str.4)
  %10679 = call ptr @__errno_location() #12
  %10680 = load i32, ptr %10679, align 4, !tbaa !5
  %10681 = call ptr @strerror(i32 noundef %10680) #11
  %10682 = call ptr @__errno_location() #12
  %10683 = load i32, ptr %10682, align 4, !tbaa !5
  %10684 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10671, ptr noundef @.str.2, i32 noundef %10672, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 465, ptr noundef %10675, ptr noundef %10678, ptr noundef %10681, i32 noundef %10683) #11
  br label %10702

10685:                                            ; preds = %10663, %10656
  %10686 = load i32, ptr %260, align 4, !tbaa !5
  %10687 = call ptr @__errno_location() #12
  store i32 %10686, ptr %10687, align 4, !tbaa !5
  %10688 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10689 = load i32, ptr @test_count, align 4, !tbaa !5
  %10690 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10691 = load i32, ptr %10690, align 4, !tbaa !5
  %10692 = call ptr @s2n_strerror(i32 noundef %10691, ptr noundef @.str.4)
  %10693 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10694 = load i32, ptr %10693, align 4, !tbaa !5
  %10695 = call ptr @s2n_strerror_debug(i32 noundef %10694, ptr noundef @.str.4)
  %10696 = call ptr @__errno_location() #12
  %10697 = load i32, ptr %10696, align 4, !tbaa !5
  %10698 = call ptr @strerror(i32 noundef %10697) #11
  %10699 = call ptr @__errno_location() #12
  %10700 = load i32, ptr %10699, align 4, !tbaa !5
  %10701 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10688, ptr noundef @.str.5, i32 noundef %10689, ptr noundef @.str.90, ptr noundef @.str.1, i32 noundef 465, ptr noundef %10692, ptr noundef %10695, ptr noundef %10698, i32 noundef %10700) #11
  br label %10702

10702:                                            ; preds = %10685, %10668
  call void @llvm.lifetime.end.p0(i64 4, ptr %260) #11
  br label %10703

10703:                                            ; preds = %10702
  br label %10704

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

10705:                                            ; No predecessors!
  br label %10706

10706:                                            ; preds = %10705
  br label %10707

10707:                                            ; preds = %10706, %10648
  br label %10708

10708:                                            ; preds = %10707
  br label %10709

10709:                                            ; preds = %10708
  br label %10710

10710:                                            ; preds = %10709
  br label %10711

10711:                                            ; preds = %10710
  br label %10712

10712:                                            ; preds = %10711
  %10713 = load i32, ptr @test_count, align 4, !tbaa !5
  %10714 = add nsw i32 %10713, 1
  store i32 %10714, ptr @test_count, align 4, !tbaa !5
  %10715 = load ptr, ptr %256, align 8, !tbaa !9
  %10716 = getelementptr inbounds [100 x i8], ptr %258, i64 0, i64 0
  %10717 = call i32 @s2n_fingerprint_get_hash(ptr noundef %10715, i32 noundef 0, ptr noundef %10716, ptr noundef %259)
  %10718 = icmp eq i32 %10717, -1
  br i1 %10718, label %10772, label %10719

10719:                                            ; preds = %10712
  br label %10720

10720:                                            ; preds = %10719
  br label %10721

10721:                                            ; preds = %10720
  call void @llvm.lifetime.start.p0(i64 4, ptr %261) #11
  %10722 = call ptr @__errno_location() #12
  %10723 = load i32, ptr %10722, align 4, !tbaa !5
  store i32 %10723, ptr %261, align 4, !tbaa !5
  %10724 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10725 = call i32 @s2n_print_stacktrace(ptr noundef %10724)
  %10726 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10727 = trunc i8 %10726 to i1
  br i1 %10727, label %10728, label %10750

10728:                                            ; preds = %10721
  %10729 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10730 = call i32 @fileno(ptr noundef %10729) #11
  %10731 = call i32 @isatty(i32 noundef %10730) #11
  %10732 = icmp ne i32 %10731, 0
  br i1 %10732, label %10733, label %10750

10733:                                            ; preds = %10728
  %10734 = load i32, ptr %261, align 4, !tbaa !5
  %10735 = call ptr @__errno_location() #12
  store i32 %10734, ptr %10735, align 4, !tbaa !5
  %10736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10737 = load i32, ptr @test_count, align 4, !tbaa !5
  %10738 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10739 = load i32, ptr %10738, align 4, !tbaa !5
  %10740 = call ptr @s2n_strerror(i32 noundef %10739, ptr noundef @.str.4)
  %10741 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10742 = load i32, ptr %10741, align 4, !tbaa !5
  %10743 = call ptr @s2n_strerror_debug(i32 noundef %10742, ptr noundef @.str.4)
  %10744 = call ptr @__errno_location() #12
  %10745 = load i32, ptr %10744, align 4, !tbaa !5
  %10746 = call ptr @strerror(i32 noundef %10745) #11
  %10747 = call ptr @__errno_location() #12
  %10748 = load i32, ptr %10747, align 4, !tbaa !5
  %10749 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10736, ptr noundef @.str.2, i32 noundef %10737, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10740, ptr noundef %10743, ptr noundef %10746, i32 noundef %10748) #11
  br label %10767

10750:                                            ; preds = %10728, %10721
  %10751 = load i32, ptr %261, align 4, !tbaa !5
  %10752 = call ptr @__errno_location() #12
  store i32 %10751, ptr %10752, align 4, !tbaa !5
  %10753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10754 = load i32, ptr @test_count, align 4, !tbaa !5
  %10755 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10756 = load i32, ptr %10755, align 4, !tbaa !5
  %10757 = call ptr @s2n_strerror(i32 noundef %10756, ptr noundef @.str.4)
  %10758 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10759 = load i32, ptr %10758, align 4, !tbaa !5
  %10760 = call ptr @s2n_strerror_debug(i32 noundef %10759, ptr noundef @.str.4)
  %10761 = call ptr @__errno_location() #12
  %10762 = load i32, ptr %10761, align 4, !tbaa !5
  %10763 = call ptr @strerror(i32 noundef %10762) #11
  %10764 = call ptr @__errno_location() #12
  %10765 = load i32, ptr %10764, align 4, !tbaa !5
  %10766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10753, ptr noundef @.str.5, i32 noundef %10754, ptr noundef @.str.91, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10757, ptr noundef %10760, ptr noundef %10763, i32 noundef %10765) #11
  br label %10767

10767:                                            ; preds = %10750, %10733
  call void @llvm.lifetime.end.p0(i64 4, ptr %261) #11
  br label %10768

10768:                                            ; preds = %10767
  br label %10769

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

10770:                                            ; No predecessors!
  br label %10771

10771:                                            ; preds = %10770
  br label %10772

10772:                                            ; preds = %10771, %10712
  br label %10773

10773:                                            ; preds = %10772
  br label %10774

10774:                                            ; preds = %10773
  br label %10775

10775:                                            ; preds = %10774
  %10776 = load i32, ptr @test_count, align 4, !tbaa !5
  %10777 = add nsw i32 %10776, 1
  store i32 %10777, ptr @test_count, align 4, !tbaa !5
  %10778 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10779 = load i32, ptr %10778, align 4, !tbaa !5
  %10780 = icmp eq i32 %10779, 469762120
  br i1 %10780, label %10834, label %10781

10781:                                            ; preds = %10775
  br label %10782

10782:                                            ; preds = %10781
  br label %10783

10783:                                            ; preds = %10782
  call void @llvm.lifetime.start.p0(i64 4, ptr %262) #11
  %10784 = call ptr @__errno_location() #12
  %10785 = load i32, ptr %10784, align 4, !tbaa !5
  store i32 %10785, ptr %262, align 4, !tbaa !5
  %10786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10787 = call i32 @s2n_print_stacktrace(ptr noundef %10786)
  %10788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10789 = trunc i8 %10788 to i1
  br i1 %10789, label %10790, label %10812

10790:                                            ; preds = %10783
  %10791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10792 = call i32 @fileno(ptr noundef %10791) #11
  %10793 = call i32 @isatty(i32 noundef %10792) #11
  %10794 = icmp ne i32 %10793, 0
  br i1 %10794, label %10795, label %10812

10795:                                            ; preds = %10790
  %10796 = load i32, ptr %262, align 4, !tbaa !5
  %10797 = call ptr @__errno_location() #12
  store i32 %10796, ptr %10797, align 4, !tbaa !5
  %10798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10799 = load i32, ptr @test_count, align 4, !tbaa !5
  %10800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10801 = load i32, ptr %10800, align 4, !tbaa !5
  %10802 = call ptr @s2n_strerror(i32 noundef %10801, ptr noundef @.str.4)
  %10803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10804 = load i32, ptr %10803, align 4, !tbaa !5
  %10805 = call ptr @s2n_strerror_debug(i32 noundef %10804, ptr noundef @.str.4)
  %10806 = call ptr @__errno_location() #12
  %10807 = load i32, ptr %10806, align 4, !tbaa !5
  %10808 = call ptr @strerror(i32 noundef %10807) #11
  %10809 = call ptr @__errno_location() #12
  %10810 = load i32, ptr %10809, align 4, !tbaa !5
  %10811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10798, ptr noundef @.str.2, i32 noundef %10799, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10802, ptr noundef %10805, ptr noundef %10808, i32 noundef %10810) #11
  br label %10829

10812:                                            ; preds = %10790, %10783
  %10813 = load i32, ptr %262, align 4, !tbaa !5
  %10814 = call ptr @__errno_location() #12
  store i32 %10813, ptr %10814, align 4, !tbaa !5
  %10815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10816 = load i32, ptr @test_count, align 4, !tbaa !5
  %10817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10818 = load i32, ptr %10817, align 4, !tbaa !5
  %10819 = call ptr @s2n_strerror(i32 noundef %10818, ptr noundef @.str.4)
  %10820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10821 = load i32, ptr %10820, align 4, !tbaa !5
  %10822 = call ptr @s2n_strerror_debug(i32 noundef %10821, ptr noundef @.str.4)
  %10823 = call ptr @__errno_location() #12
  %10824 = load i32, ptr %10823, align 4, !tbaa !5
  %10825 = call ptr @strerror(i32 noundef %10824) #11
  %10826 = call ptr @__errno_location() #12
  %10827 = load i32, ptr %10826, align 4, !tbaa !5
  %10828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10815, ptr noundef @.str.5, i32 noundef %10816, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10819, ptr noundef %10822, ptr noundef %10825, i32 noundef %10827) #11
  br label %10829

10829:                                            ; preds = %10812, %10795
  call void @llvm.lifetime.end.p0(i64 4, ptr %262) #11
  br label %10830

10830:                                            ; preds = %10829
  br label %10831

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

10832:                                            ; No predecessors!
  br label %10833

10833:                                            ; preds = %10832
  br label %10834

10834:                                            ; preds = %10833, %10775
  br label %10835

10835:                                            ; preds = %10834
  br label %10836

10836:                                            ; preds = %10835
  br label %10837

10837:                                            ; preds = %10836
  %10838 = load i32, ptr @test_count, align 4, !tbaa !5
  %10839 = add nsw i32 %10838, 1
  store i32 %10839, ptr @test_count, align 4, !tbaa !5
  %10840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10841 = load i32, ptr %10840, align 4, !tbaa !5
  %10842 = call ptr @s2n_strerror_debug(i32 noundef %10841, ptr noundef @.str.4)
  %10843 = icmp eq ptr %10842, null
  br i1 %10843, label %10844, label %10897

10844:                                            ; preds = %10837
  br label %10845

10845:                                            ; preds = %10844
  br label %10846

10846:                                            ; preds = %10845
  call void @llvm.lifetime.start.p0(i64 4, ptr %263) #11
  %10847 = call ptr @__errno_location() #12
  %10848 = load i32, ptr %10847, align 4, !tbaa !5
  store i32 %10848, ptr %263, align 4, !tbaa !5
  %10849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10850 = call i32 @s2n_print_stacktrace(ptr noundef %10849)
  %10851 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10852 = trunc i8 %10851 to i1
  br i1 %10852, label %10853, label %10875

10853:                                            ; preds = %10846
  %10854 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10855 = call i32 @fileno(ptr noundef %10854) #11
  %10856 = call i32 @isatty(i32 noundef %10855) #11
  %10857 = icmp ne i32 %10856, 0
  br i1 %10857, label %10858, label %10875

10858:                                            ; preds = %10853
  %10859 = load i32, ptr %263, align 4, !tbaa !5
  %10860 = call ptr @__errno_location() #12
  store i32 %10859, ptr %10860, align 4, !tbaa !5
  %10861 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10862 = load i32, ptr @test_count, align 4, !tbaa !5
  %10863 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10864 = load i32, ptr %10863, align 4, !tbaa !5
  %10865 = call ptr @s2n_strerror(i32 noundef %10864, ptr noundef @.str.4)
  %10866 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10867 = load i32, ptr %10866, align 4, !tbaa !5
  %10868 = call ptr @s2n_strerror_debug(i32 noundef %10867, ptr noundef @.str.4)
  %10869 = call ptr @__errno_location() #12
  %10870 = load i32, ptr %10869, align 4, !tbaa !5
  %10871 = call ptr @strerror(i32 noundef %10870) #11
  %10872 = call ptr @__errno_location() #12
  %10873 = load i32, ptr %10872, align 4, !tbaa !5
  %10874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10861, ptr noundef @.str.2, i32 noundef %10862, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10865, ptr noundef %10868, ptr noundef %10871, i32 noundef %10873) #11
  br label %10892

10875:                                            ; preds = %10853, %10846
  %10876 = load i32, ptr %263, align 4, !tbaa !5
  %10877 = call ptr @__errno_location() #12
  store i32 %10876, ptr %10877, align 4, !tbaa !5
  %10878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10879 = load i32, ptr @test_count, align 4, !tbaa !5
  %10880 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10881 = load i32, ptr %10880, align 4, !tbaa !5
  %10882 = call ptr @s2n_strerror(i32 noundef %10881, ptr noundef @.str.4)
  %10883 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10884 = load i32, ptr %10883, align 4, !tbaa !5
  %10885 = call ptr @s2n_strerror_debug(i32 noundef %10884, ptr noundef @.str.4)
  %10886 = call ptr @__errno_location() #12
  %10887 = load i32, ptr %10886, align 4, !tbaa !5
  %10888 = call ptr @strerror(i32 noundef %10887) #11
  %10889 = call ptr @__errno_location() #12
  %10890 = load i32, ptr %10889, align 4, !tbaa !5
  %10891 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10878, ptr noundef @.str.5, i32 noundef %10879, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 469, ptr noundef %10882, ptr noundef %10885, ptr noundef %10888, i32 noundef %10890) #11
  br label %10892

10892:                                            ; preds = %10875, %10858
  call void @llvm.lifetime.end.p0(i64 4, ptr %263) #11
  br label %10893

10893:                                            ; preds = %10892
  br label %10894

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

10895:                                            ; No predecessors!
  br label %10896

10896:                                            ; preds = %10895
  br label %10897

10897:                                            ; preds = %10896, %10837
  br label %10898

10898:                                            ; preds = %10897
  br label %10899

10899:                                            ; preds = %10898
  br label %10900

10900:                                            ; preds = %10899
  br label %10901

10901:                                            ; preds = %10900
  br label %10902

10902:                                            ; preds = %10901
  %10903 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %10903, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %10904 = call ptr @__errno_location() #12
  store i32 0, ptr %10904, align 4, !tbaa !5
  br label %10905

10905:                                            ; preds = %10902
  br label %10906

10906:                                            ; preds = %10905
  br label %10907

10907:                                            ; preds = %10906
  br label %10908

10908:                                            ; preds = %10907
  br label %10909

10909:                                            ; preds = %10908
  br label %10910

10910:                                            ; preds = %10909
  br label %10911

10911:                                            ; preds = %10910
  %10912 = load i32, ptr @test_count, align 4, !tbaa !5
  %10913 = add nsw i32 %10912, 1
  store i32 %10913, ptr @test_count, align 4, !tbaa !5
  %10914 = load ptr, ptr %256, align 8, !tbaa !9
  %10915 = load i32, ptr getelementptr inbounds (%struct.s2n_fingerprint_method, ptr @ja3_fingerprint, i32 0, i32 1), align 4, !tbaa !44
  %10916 = sub i32 %10915, 1
  %10917 = getelementptr inbounds [100 x i8], ptr %258, i64 0, i64 0
  %10918 = call i32 @s2n_fingerprint_get_hash(ptr noundef %10914, i32 noundef %10916, ptr noundef %10917, ptr noundef %259)
  %10919 = icmp eq i32 %10918, -1
  br i1 %10919, label %10973, label %10920

10920:                                            ; preds = %10911
  br label %10921

10921:                                            ; preds = %10920
  br label %10922

10922:                                            ; preds = %10921
  call void @llvm.lifetime.start.p0(i64 4, ptr %264) #11
  %10923 = call ptr @__errno_location() #12
  %10924 = load i32, ptr %10923, align 4, !tbaa !5
  store i32 %10924, ptr %264, align 4, !tbaa !5
  %10925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10926 = call i32 @s2n_print_stacktrace(ptr noundef %10925)
  %10927 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10928 = trunc i8 %10927 to i1
  br i1 %10928, label %10929, label %10951

10929:                                            ; preds = %10922
  %10930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10931 = call i32 @fileno(ptr noundef %10930) #11
  %10932 = call i32 @isatty(i32 noundef %10931) #11
  %10933 = icmp ne i32 %10932, 0
  br i1 %10933, label %10934, label %10951

10934:                                            ; preds = %10929
  %10935 = load i32, ptr %264, align 4, !tbaa !5
  %10936 = call ptr @__errno_location() #12
  store i32 %10935, ptr %10936, align 4, !tbaa !5
  %10937 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10938 = load i32, ptr @test_count, align 4, !tbaa !5
  %10939 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10940 = load i32, ptr %10939, align 4, !tbaa !5
  %10941 = call ptr @s2n_strerror(i32 noundef %10940, ptr noundef @.str.4)
  %10942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10943 = load i32, ptr %10942, align 4, !tbaa !5
  %10944 = call ptr @s2n_strerror_debug(i32 noundef %10943, ptr noundef @.str.4)
  %10945 = call ptr @__errno_location() #12
  %10946 = load i32, ptr %10945, align 4, !tbaa !5
  %10947 = call ptr @strerror(i32 noundef %10946) #11
  %10948 = call ptr @__errno_location() #12
  %10949 = load i32, ptr %10948, align 4, !tbaa !5
  %10950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10937, ptr noundef @.str.2, i32 noundef %10938, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 472, ptr noundef %10941, ptr noundef %10944, ptr noundef %10947, i32 noundef %10949) #11
  br label %10968

10951:                                            ; preds = %10929, %10922
  %10952 = load i32, ptr %264, align 4, !tbaa !5
  %10953 = call ptr @__errno_location() #12
  store i32 %10952, ptr %10953, align 4, !tbaa !5
  %10954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10955 = load i32, ptr @test_count, align 4, !tbaa !5
  %10956 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10957 = load i32, ptr %10956, align 4, !tbaa !5
  %10958 = call ptr @s2n_strerror(i32 noundef %10957, ptr noundef @.str.4)
  %10959 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10960 = load i32, ptr %10959, align 4, !tbaa !5
  %10961 = call ptr @s2n_strerror_debug(i32 noundef %10960, ptr noundef @.str.4)
  %10962 = call ptr @__errno_location() #12
  %10963 = load i32, ptr %10962, align 4, !tbaa !5
  %10964 = call ptr @strerror(i32 noundef %10963) #11
  %10965 = call ptr @__errno_location() #12
  %10966 = load i32, ptr %10965, align 4, !tbaa !5
  %10967 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10954, ptr noundef @.str.5, i32 noundef %10955, ptr noundef @.str.92, ptr noundef @.str.1, i32 noundef 472, ptr noundef %10958, ptr noundef %10961, ptr noundef %10964, i32 noundef %10966) #11
  br label %10968

10968:                                            ; preds = %10951, %10934
  call void @llvm.lifetime.end.p0(i64 4, ptr %264) #11
  br label %10969

10969:                                            ; preds = %10968
  br label %10970

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

10971:                                            ; No predecessors!
  br label %10972

10972:                                            ; preds = %10971
  br label %10973

10973:                                            ; preds = %10972, %10911
  br label %10974

10974:                                            ; preds = %10973
  br label %10975

10975:                                            ; preds = %10974
  br label %10976

10976:                                            ; preds = %10975
  %10977 = load i32, ptr @test_count, align 4, !tbaa !5
  %10978 = add nsw i32 %10977, 1
  store i32 %10978, ptr @test_count, align 4, !tbaa !5
  %10979 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %10980 = load i32, ptr %10979, align 4, !tbaa !5
  %10981 = icmp eq i32 %10980, 469762120
  br i1 %10981, label %11035, label %10982

10982:                                            ; preds = %10976
  br label %10983

10983:                                            ; preds = %10982
  br label %10984

10984:                                            ; preds = %10983
  call void @llvm.lifetime.start.p0(i64 4, ptr %265) #11
  %10985 = call ptr @__errno_location() #12
  %10986 = load i32, ptr %10985, align 4, !tbaa !5
  store i32 %10986, ptr %265, align 4, !tbaa !5
  %10987 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10988 = call i32 @s2n_print_stacktrace(ptr noundef %10987)
  %10989 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %10990 = trunc i8 %10989 to i1
  br i1 %10990, label %10991, label %11013

10991:                                            ; preds = %10984
  %10992 = load ptr, ptr @stderr, align 8, !tbaa !9
  %10993 = call i32 @fileno(ptr noundef %10992) #11
  %10994 = call i32 @isatty(i32 noundef %10993) #11
  %10995 = icmp ne i32 %10994, 0
  br i1 %10995, label %10996, label %11013

10996:                                            ; preds = %10991
  %10997 = load i32, ptr %265, align 4, !tbaa !5
  %10998 = call ptr @__errno_location() #12
  store i32 %10997, ptr %10998, align 4, !tbaa !5
  %10999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11000 = load i32, ptr @test_count, align 4, !tbaa !5
  %11001 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11002 = load i32, ptr %11001, align 4, !tbaa !5
  %11003 = call ptr @s2n_strerror(i32 noundef %11002, ptr noundef @.str.4)
  %11004 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11005 = load i32, ptr %11004, align 4, !tbaa !5
  %11006 = call ptr @s2n_strerror_debug(i32 noundef %11005, ptr noundef @.str.4)
  %11007 = call ptr @__errno_location() #12
  %11008 = load i32, ptr %11007, align 4, !tbaa !5
  %11009 = call ptr @strerror(i32 noundef %11008) #11
  %11010 = call ptr @__errno_location() #12
  %11011 = load i32, ptr %11010, align 4, !tbaa !5
  %11012 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %10999, ptr noundef @.str.2, i32 noundef %11000, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11003, ptr noundef %11006, ptr noundef %11009, i32 noundef %11011) #11
  br label %11030

11013:                                            ; preds = %10991, %10984
  %11014 = load i32, ptr %265, align 4, !tbaa !5
  %11015 = call ptr @__errno_location() #12
  store i32 %11014, ptr %11015, align 4, !tbaa !5
  %11016 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11017 = load i32, ptr @test_count, align 4, !tbaa !5
  %11018 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11019 = load i32, ptr %11018, align 4, !tbaa !5
  %11020 = call ptr @s2n_strerror(i32 noundef %11019, ptr noundef @.str.4)
  %11021 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11022 = load i32, ptr %11021, align 4, !tbaa !5
  %11023 = call ptr @s2n_strerror_debug(i32 noundef %11022, ptr noundef @.str.4)
  %11024 = call ptr @__errno_location() #12
  %11025 = load i32, ptr %11024, align 4, !tbaa !5
  %11026 = call ptr @strerror(i32 noundef %11025) #11
  %11027 = call ptr @__errno_location() #12
  %11028 = load i32, ptr %11027, align 4, !tbaa !5
  %11029 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11016, ptr noundef @.str.5, i32 noundef %11017, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11020, ptr noundef %11023, ptr noundef %11026, i32 noundef %11028) #11
  br label %11030

11030:                                            ; preds = %11013, %10996
  call void @llvm.lifetime.end.p0(i64 4, ptr %265) #11
  br label %11031

11031:                                            ; preds = %11030
  br label %11032

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

11033:                                            ; No predecessors!
  br label %11034

11034:                                            ; preds = %11033
  br label %11035

11035:                                            ; preds = %11034, %10976
  br label %11036

11036:                                            ; preds = %11035
  br label %11037

11037:                                            ; preds = %11036
  br label %11038

11038:                                            ; preds = %11037
  %11039 = load i32, ptr @test_count, align 4, !tbaa !5
  %11040 = add nsw i32 %11039, 1
  store i32 %11040, ptr @test_count, align 4, !tbaa !5
  %11041 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11042 = load i32, ptr %11041, align 4, !tbaa !5
  %11043 = call ptr @s2n_strerror_debug(i32 noundef %11042, ptr noundef @.str.4)
  %11044 = icmp eq ptr %11043, null
  br i1 %11044, label %11045, label %11098

11045:                                            ; preds = %11038
  br label %11046

11046:                                            ; preds = %11045
  br label %11047

11047:                                            ; preds = %11046
  call void @llvm.lifetime.start.p0(i64 4, ptr %266) #11
  %11048 = call ptr @__errno_location() #12
  %11049 = load i32, ptr %11048, align 4, !tbaa !5
  store i32 %11049, ptr %266, align 4, !tbaa !5
  %11050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11051 = call i32 @s2n_print_stacktrace(ptr noundef %11050)
  %11052 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11053 = trunc i8 %11052 to i1
  br i1 %11053, label %11054, label %11076

11054:                                            ; preds = %11047
  %11055 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11056 = call i32 @fileno(ptr noundef %11055) #11
  %11057 = call i32 @isatty(i32 noundef %11056) #11
  %11058 = icmp ne i32 %11057, 0
  br i1 %11058, label %11059, label %11076

11059:                                            ; preds = %11054
  %11060 = load i32, ptr %266, align 4, !tbaa !5
  %11061 = call ptr @__errno_location() #12
  store i32 %11060, ptr %11061, align 4, !tbaa !5
  %11062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11063 = load i32, ptr @test_count, align 4, !tbaa !5
  %11064 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11065 = load i32, ptr %11064, align 4, !tbaa !5
  %11066 = call ptr @s2n_strerror(i32 noundef %11065, ptr noundef @.str.4)
  %11067 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11068 = load i32, ptr %11067, align 4, !tbaa !5
  %11069 = call ptr @s2n_strerror_debug(i32 noundef %11068, ptr noundef @.str.4)
  %11070 = call ptr @__errno_location() #12
  %11071 = load i32, ptr %11070, align 4, !tbaa !5
  %11072 = call ptr @strerror(i32 noundef %11071) #11
  %11073 = call ptr @__errno_location() #12
  %11074 = load i32, ptr %11073, align 4, !tbaa !5
  %11075 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11062, ptr noundef @.str.2, i32 noundef %11063, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11066, ptr noundef %11069, ptr noundef %11072, i32 noundef %11074) #11
  br label %11093

11076:                                            ; preds = %11054, %11047
  %11077 = load i32, ptr %266, align 4, !tbaa !5
  %11078 = call ptr @__errno_location() #12
  store i32 %11077, ptr %11078, align 4, !tbaa !5
  %11079 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11080 = load i32, ptr @test_count, align 4, !tbaa !5
  %11081 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11082 = load i32, ptr %11081, align 4, !tbaa !5
  %11083 = call ptr @s2n_strerror(i32 noundef %11082, ptr noundef @.str.4)
  %11084 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11085 = load i32, ptr %11084, align 4, !tbaa !5
  %11086 = call ptr @s2n_strerror_debug(i32 noundef %11085, ptr noundef @.str.4)
  %11087 = call ptr @__errno_location() #12
  %11088 = load i32, ptr %11087, align 4, !tbaa !5
  %11089 = call ptr @strerror(i32 noundef %11088) #11
  %11090 = call ptr @__errno_location() #12
  %11091 = load i32, ptr %11090, align 4, !tbaa !5
  %11092 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11079, ptr noundef @.str.5, i32 noundef %11080, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 472, ptr noundef %11083, ptr noundef %11086, ptr noundef %11089, i32 noundef %11091) #11
  br label %11093

11093:                                            ; preds = %11076, %11059
  call void @llvm.lifetime.end.p0(i64 4, ptr %266) #11
  br label %11094

11094:                                            ; preds = %11093
  br label %11095

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

11096:                                            ; No predecessors!
  br label %11097

11097:                                            ; preds = %11096
  br label %11098

11098:                                            ; preds = %11097, %11038
  br label %11099

11099:                                            ; preds = %11098
  br label %11100

11100:                                            ; preds = %11099
  br label %11101

11101:                                            ; preds = %11100
  br label %11102

11102:                                            ; preds = %11101
  br label %11103

11103:                                            ; preds = %11102
  %11104 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11104, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11105 = call ptr @__errno_location() #12
  store i32 0, ptr %11105, align 4, !tbaa !5
  br label %11106

11106:                                            ; preds = %11103
  br label %11107

11107:                                            ; preds = %11106
  br label %11108

11108:                                            ; preds = %11107
  br label %11109

11109:                                            ; preds = %11108
  br label %11110

11110:                                            ; preds = %11109
  %11111 = load i32, ptr @test_count, align 4, !tbaa !5
  %11112 = add nsw i32 %11111, 1
  store i32 %11112, ptr @test_count, align 4, !tbaa !5
  %11113 = load ptr, ptr %256, align 8, !tbaa !9
  %11114 = load i32, ptr getelementptr inbounds (%struct.s2n_fingerprint_method, ptr @ja3_fingerprint, i32 0, i32 1), align 4, !tbaa !44
  %11115 = getelementptr inbounds [100 x i8], ptr %258, i64 0, i64 0
  %11116 = call i32 @s2n_fingerprint_get_hash(ptr noundef %11113, i32 noundef %11114, ptr noundef %11115, ptr noundef %259)
  %11117 = icmp eq i32 %11116, -1
  br i1 %11117, label %11118, label %11171

11118:                                            ; preds = %11110
  br label %11119

11119:                                            ; preds = %11118
  br label %11120

11120:                                            ; preds = %11119
  call void @llvm.lifetime.start.p0(i64 4, ptr %267) #11
  %11121 = call ptr @__errno_location() #12
  %11122 = load i32, ptr %11121, align 4, !tbaa !5
  store i32 %11122, ptr %267, align 4, !tbaa !5
  %11123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11124 = call i32 @s2n_print_stacktrace(ptr noundef %11123)
  %11125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11126 = trunc i8 %11125 to i1
  br i1 %11126, label %11127, label %11149

11127:                                            ; preds = %11120
  %11128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11129 = call i32 @fileno(ptr noundef %11128) #11
  %11130 = call i32 @isatty(i32 noundef %11129) #11
  %11131 = icmp ne i32 %11130, 0
  br i1 %11131, label %11132, label %11149

11132:                                            ; preds = %11127
  %11133 = load i32, ptr %267, align 4, !tbaa !5
  %11134 = call ptr @__errno_location() #12
  store i32 %11133, ptr %11134, align 4, !tbaa !5
  %11135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11136 = load i32, ptr @test_count, align 4, !tbaa !5
  %11137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11138 = load i32, ptr %11137, align 4, !tbaa !5
  %11139 = call ptr @s2n_strerror(i32 noundef %11138, ptr noundef @.str.4)
  %11140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11141 = load i32, ptr %11140, align 4, !tbaa !5
  %11142 = call ptr @s2n_strerror_debug(i32 noundef %11141, ptr noundef @.str.4)
  %11143 = call ptr @__errno_location() #12
  %11144 = load i32, ptr %11143, align 4, !tbaa !5
  %11145 = call ptr @strerror(i32 noundef %11144) #11
  %11146 = call ptr @__errno_location() #12
  %11147 = load i32, ptr %11146, align 4, !tbaa !5
  %11148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11135, ptr noundef @.str.2, i32 noundef %11136, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 474, ptr noundef %11139, ptr noundef %11142, ptr noundef %11145, i32 noundef %11147) #11
  br label %11166

11149:                                            ; preds = %11127, %11120
  %11150 = load i32, ptr %267, align 4, !tbaa !5
  %11151 = call ptr @__errno_location() #12
  store i32 %11150, ptr %11151, align 4, !tbaa !5
  %11152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11153 = load i32, ptr @test_count, align 4, !tbaa !5
  %11154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11155 = load i32, ptr %11154, align 4, !tbaa !5
  %11156 = call ptr @s2n_strerror(i32 noundef %11155, ptr noundef @.str.4)
  %11157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11158 = load i32, ptr %11157, align 4, !tbaa !5
  %11159 = call ptr @s2n_strerror_debug(i32 noundef %11158, ptr noundef @.str.4)
  %11160 = call ptr @__errno_location() #12
  %11161 = load i32, ptr %11160, align 4, !tbaa !5
  %11162 = call ptr @strerror(i32 noundef %11161) #11
  %11163 = call ptr @__errno_location() #12
  %11164 = load i32, ptr %11163, align 4, !tbaa !5
  %11165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11152, ptr noundef @.str.5, i32 noundef %11153, ptr noundef @.str.93, ptr noundef @.str.1, i32 noundef 474, ptr noundef %11156, ptr noundef %11159, ptr noundef %11162, i32 noundef %11164) #11
  br label %11166

11166:                                            ; preds = %11149, %11132
  call void @llvm.lifetime.end.p0(i64 4, ptr %267) #11
  br label %11167

11167:                                            ; preds = %11166
  br label %11168

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

11169:                                            ; No predecessors!
  br label %11170

11170:                                            ; preds = %11169
  br label %11171

11171:                                            ; preds = %11170, %11110
  br label %11172

11172:                                            ; preds = %11171
  br label %11173

11173:                                            ; preds = %11172
  call void @llvm.lifetime.end.p0(i64 4, ptr %259) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %258) #11
  %11174 = call i32 @s2n_fingerprint_free(ptr noundef %256)
  call void @llvm.lifetime.end.p0(i64 8, ptr %256) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %268) #11
  %11175 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %11175, ptr %268, align 8, !tbaa !9
  br label %11176

11176:                                            ; preds = %11173
  br label %11177

11177:                                            ; preds = %11176
  br label %11178

11178:                                            ; preds = %11177
  %11179 = load i32, ptr @test_count, align 4, !tbaa !5
  %11180 = add nsw i32 %11179, 1
  store i32 %11180, ptr @test_count, align 4, !tbaa !5
  %11181 = load ptr, ptr %268, align 8, !tbaa !9
  %11182 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %11181, ptr noundef null)
  %11183 = icmp eq i32 %11182, -1
  br i1 %11183, label %11237, label %11184

11184:                                            ; preds = %11178
  br label %11185

11185:                                            ; preds = %11184
  br label %11186

11186:                                            ; preds = %11185
  call void @llvm.lifetime.start.p0(i64 4, ptr %269) #11
  %11187 = call ptr @__errno_location() #12
  %11188 = load i32, ptr %11187, align 4, !tbaa !5
  store i32 %11188, ptr %269, align 4, !tbaa !5
  %11189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11190 = call i32 @s2n_print_stacktrace(ptr noundef %11189)
  %11191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11192 = trunc i8 %11191 to i1
  br i1 %11192, label %11193, label %11215

11193:                                            ; preds = %11186
  %11194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11195 = call i32 @fileno(ptr noundef %11194) #11
  %11196 = call i32 @isatty(i32 noundef %11195) #11
  %11197 = icmp ne i32 %11196, 0
  br i1 %11197, label %11198, label %11215

11198:                                            ; preds = %11193
  %11199 = load i32, ptr %269, align 4, !tbaa !5
  %11200 = call ptr @__errno_location() #12
  store i32 %11199, ptr %11200, align 4, !tbaa !5
  %11201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11202 = load i32, ptr @test_count, align 4, !tbaa !5
  %11203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11204 = load i32, ptr %11203, align 4, !tbaa !5
  %11205 = call ptr @s2n_strerror(i32 noundef %11204, ptr noundef @.str.4)
  %11206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11207 = load i32, ptr %11206, align 4, !tbaa !5
  %11208 = call ptr @s2n_strerror_debug(i32 noundef %11207, ptr noundef @.str.4)
  %11209 = call ptr @__errno_location() #12
  %11210 = load i32, ptr %11209, align 4, !tbaa !5
  %11211 = call ptr @strerror(i32 noundef %11210) #11
  %11212 = call ptr @__errno_location() #12
  %11213 = load i32, ptr %11212, align 4, !tbaa !5
  %11214 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11201, ptr noundef @.str.2, i32 noundef %11202, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11205, ptr noundef %11208, ptr noundef %11211, i32 noundef %11213) #11
  br label %11232

11215:                                            ; preds = %11193, %11186
  %11216 = load i32, ptr %269, align 4, !tbaa !5
  %11217 = call ptr @__errno_location() #12
  store i32 %11216, ptr %11217, align 4, !tbaa !5
  %11218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11219 = load i32, ptr @test_count, align 4, !tbaa !5
  %11220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11221 = load i32, ptr %11220, align 4, !tbaa !5
  %11222 = call ptr @s2n_strerror(i32 noundef %11221, ptr noundef @.str.4)
  %11223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11224 = load i32, ptr %11223, align 4, !tbaa !5
  %11225 = call ptr @s2n_strerror_debug(i32 noundef %11224, ptr noundef @.str.4)
  %11226 = call ptr @__errno_location() #12
  %11227 = load i32, ptr %11226, align 4, !tbaa !5
  %11228 = call ptr @strerror(i32 noundef %11227) #11
  %11229 = call ptr @__errno_location() #12
  %11230 = load i32, ptr %11229, align 4, !tbaa !5
  %11231 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11218, ptr noundef @.str.5, i32 noundef %11219, ptr noundef @.str.94, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11222, ptr noundef %11225, ptr noundef %11228, i32 noundef %11230) #11
  br label %11232

11232:                                            ; preds = %11215, %11198
  call void @llvm.lifetime.end.p0(i64 4, ptr %269) #11
  br label %11233

11233:                                            ; preds = %11232
  br label %11234

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

11235:                                            ; No predecessors!
  br label %11236

11236:                                            ; preds = %11235
  br label %11237

11237:                                            ; preds = %11236, %11178
  br label %11238

11238:                                            ; preds = %11237
  br label %11239

11239:                                            ; preds = %11238
  br label %11240

11240:                                            ; preds = %11239
  %11241 = load i32, ptr @test_count, align 4, !tbaa !5
  %11242 = add nsw i32 %11241, 1
  store i32 %11242, ptr @test_count, align 4, !tbaa !5
  %11243 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11244 = load i32, ptr %11243, align 4, !tbaa !5
  %11245 = icmp eq i32 %11244, 469762089
  br i1 %11245, label %11299, label %11246

11246:                                            ; preds = %11240
  br label %11247

11247:                                            ; preds = %11246
  br label %11248

11248:                                            ; preds = %11247
  call void @llvm.lifetime.start.p0(i64 4, ptr %270) #11
  %11249 = call ptr @__errno_location() #12
  %11250 = load i32, ptr %11249, align 4, !tbaa !5
  store i32 %11250, ptr %270, align 4, !tbaa !5
  %11251 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11252 = call i32 @s2n_print_stacktrace(ptr noundef %11251)
  %11253 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11254 = trunc i8 %11253 to i1
  br i1 %11254, label %11255, label %11277

11255:                                            ; preds = %11248
  %11256 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11257 = call i32 @fileno(ptr noundef %11256) #11
  %11258 = call i32 @isatty(i32 noundef %11257) #11
  %11259 = icmp ne i32 %11258, 0
  br i1 %11259, label %11260, label %11277

11260:                                            ; preds = %11255
  %11261 = load i32, ptr %270, align 4, !tbaa !5
  %11262 = call ptr @__errno_location() #12
  store i32 %11261, ptr %11262, align 4, !tbaa !5
  %11263 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11264 = load i32, ptr @test_count, align 4, !tbaa !5
  %11265 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11266 = load i32, ptr %11265, align 4, !tbaa !5
  %11267 = call ptr @s2n_strerror(i32 noundef %11266, ptr noundef @.str.4)
  %11268 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11269 = load i32, ptr %11268, align 4, !tbaa !5
  %11270 = call ptr @s2n_strerror_debug(i32 noundef %11269, ptr noundef @.str.4)
  %11271 = call ptr @__errno_location() #12
  %11272 = load i32, ptr %11271, align 4, !tbaa !5
  %11273 = call ptr @strerror(i32 noundef %11272) #11
  %11274 = call ptr @__errno_location() #12
  %11275 = load i32, ptr %11274, align 4, !tbaa !5
  %11276 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11263, ptr noundef @.str.2, i32 noundef %11264, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11267, ptr noundef %11270, ptr noundef %11273, i32 noundef %11275) #11
  br label %11294

11277:                                            ; preds = %11255, %11248
  %11278 = load i32, ptr %270, align 4, !tbaa !5
  %11279 = call ptr @__errno_location() #12
  store i32 %11278, ptr %11279, align 4, !tbaa !5
  %11280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11281 = load i32, ptr @test_count, align 4, !tbaa !5
  %11282 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11283 = load i32, ptr %11282, align 4, !tbaa !5
  %11284 = call ptr @s2n_strerror(i32 noundef %11283, ptr noundef @.str.4)
  %11285 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11286 = load i32, ptr %11285, align 4, !tbaa !5
  %11287 = call ptr @s2n_strerror_debug(i32 noundef %11286, ptr noundef @.str.4)
  %11288 = call ptr @__errno_location() #12
  %11289 = load i32, ptr %11288, align 4, !tbaa !5
  %11290 = call ptr @strerror(i32 noundef %11289) #11
  %11291 = call ptr @__errno_location() #12
  %11292 = load i32, ptr %11291, align 4, !tbaa !5
  %11293 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11280, ptr noundef @.str.5, i32 noundef %11281, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11284, ptr noundef %11287, ptr noundef %11290, i32 noundef %11292) #11
  br label %11294

11294:                                            ; preds = %11277, %11260
  call void @llvm.lifetime.end.p0(i64 4, ptr %270) #11
  br label %11295

11295:                                            ; preds = %11294
  br label %11296

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

11297:                                            ; No predecessors!
  br label %11298

11298:                                            ; preds = %11297
  br label %11299

11299:                                            ; preds = %11298, %11240
  br label %11300

11300:                                            ; preds = %11299
  br label %11301

11301:                                            ; preds = %11300
  br label %11302

11302:                                            ; preds = %11301
  %11303 = load i32, ptr @test_count, align 4, !tbaa !5
  %11304 = add nsw i32 %11303, 1
  store i32 %11304, ptr @test_count, align 4, !tbaa !5
  %11305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11306 = load i32, ptr %11305, align 4, !tbaa !5
  %11307 = call ptr @s2n_strerror_debug(i32 noundef %11306, ptr noundef @.str.4)
  %11308 = icmp eq ptr %11307, null
  br i1 %11308, label %11309, label %11362

11309:                                            ; preds = %11302
  br label %11310

11310:                                            ; preds = %11309
  br label %11311

11311:                                            ; preds = %11310
  call void @llvm.lifetime.start.p0(i64 4, ptr %271) #11
  %11312 = call ptr @__errno_location() #12
  %11313 = load i32, ptr %11312, align 4, !tbaa !5
  store i32 %11313, ptr %271, align 4, !tbaa !5
  %11314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11315 = call i32 @s2n_print_stacktrace(ptr noundef %11314)
  %11316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11317 = trunc i8 %11316 to i1
  br i1 %11317, label %11318, label %11340

11318:                                            ; preds = %11311
  %11319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11320 = call i32 @fileno(ptr noundef %11319) #11
  %11321 = call i32 @isatty(i32 noundef %11320) #11
  %11322 = icmp ne i32 %11321, 0
  br i1 %11322, label %11323, label %11340

11323:                                            ; preds = %11318
  %11324 = load i32, ptr %271, align 4, !tbaa !5
  %11325 = call ptr @__errno_location() #12
  store i32 %11324, ptr %11325, align 4, !tbaa !5
  %11326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11327 = load i32, ptr @test_count, align 4, !tbaa !5
  %11328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11329 = load i32, ptr %11328, align 4, !tbaa !5
  %11330 = call ptr @s2n_strerror(i32 noundef %11329, ptr noundef @.str.4)
  %11331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11332 = load i32, ptr %11331, align 4, !tbaa !5
  %11333 = call ptr @s2n_strerror_debug(i32 noundef %11332, ptr noundef @.str.4)
  %11334 = call ptr @__errno_location() #12
  %11335 = load i32, ptr %11334, align 4, !tbaa !5
  %11336 = call ptr @strerror(i32 noundef %11335) #11
  %11337 = call ptr @__errno_location() #12
  %11338 = load i32, ptr %11337, align 4, !tbaa !5
  %11339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11326, ptr noundef @.str.2, i32 noundef %11327, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11330, ptr noundef %11333, ptr noundef %11336, i32 noundef %11338) #11
  br label %11357

11340:                                            ; preds = %11318, %11311
  %11341 = load i32, ptr %271, align 4, !tbaa !5
  %11342 = call ptr @__errno_location() #12
  store i32 %11341, ptr %11342, align 4, !tbaa !5
  %11343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11344 = load i32, ptr @test_count, align 4, !tbaa !5
  %11345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11346 = load i32, ptr %11345, align 4, !tbaa !5
  %11347 = call ptr @s2n_strerror(i32 noundef %11346, ptr noundef @.str.4)
  %11348 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11349 = load i32, ptr %11348, align 4, !tbaa !5
  %11350 = call ptr @s2n_strerror_debug(i32 noundef %11349, ptr noundef @.str.4)
  %11351 = call ptr @__errno_location() #12
  %11352 = load i32, ptr %11351, align 4, !tbaa !5
  %11353 = call ptr @strerror(i32 noundef %11352) #11
  %11354 = call ptr @__errno_location() #12
  %11355 = load i32, ptr %11354, align 4, !tbaa !5
  %11356 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11343, ptr noundef @.str.5, i32 noundef %11344, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 487, ptr noundef %11347, ptr noundef %11350, ptr noundef %11353, i32 noundef %11355) #11
  br label %11357

11357:                                            ; preds = %11340, %11323
  call void @llvm.lifetime.end.p0(i64 4, ptr %271) #11
  br label %11358

11358:                                            ; preds = %11357
  br label %11359

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

11360:                                            ; No predecessors!
  br label %11361

11361:                                            ; preds = %11360
  br label %11362

11362:                                            ; preds = %11361, %11302
  br label %11363

11363:                                            ; preds = %11362
  br label %11364

11364:                                            ; preds = %11363
  br label %11365

11365:                                            ; preds = %11364
  br label %11366

11366:                                            ; preds = %11365
  br label %11367

11367:                                            ; preds = %11366
  %11368 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11368, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11369 = call ptr @__errno_location() #12
  store i32 0, ptr %11369, align 4, !tbaa !5
  br label %11370

11370:                                            ; preds = %11367
  br label %11371

11371:                                            ; preds = %11370
  br label %11372

11372:                                            ; preds = %11371
  br label %11373

11373:                                            ; preds = %11372
  call void @llvm.lifetime.start.p0(i64 4, ptr %272) #11
  store i32 0, ptr %272, align 4, !tbaa !5
  br label %11374

11374:                                            ; preds = %11373
  br label %11375

11375:                                            ; preds = %11374
  br label %11376

11376:                                            ; preds = %11375
  %11377 = load i32, ptr @test_count, align 4, !tbaa !5
  %11378 = add nsw i32 %11377, 1
  store i32 %11378, ptr @test_count, align 4, !tbaa !5
  %11379 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef null, ptr noundef %272)
  %11380 = icmp eq i32 %11379, -1
  br i1 %11380, label %11434, label %11381

11381:                                            ; preds = %11376
  br label %11382

11382:                                            ; preds = %11381
  br label %11383

11383:                                            ; preds = %11382
  call void @llvm.lifetime.start.p0(i64 4, ptr %273) #11
  %11384 = call ptr @__errno_location() #12
  %11385 = load i32, ptr %11384, align 4, !tbaa !5
  store i32 %11385, ptr %273, align 4, !tbaa !5
  %11386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11387 = call i32 @s2n_print_stacktrace(ptr noundef %11386)
  %11388 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11389 = trunc i8 %11388 to i1
  br i1 %11389, label %11390, label %11412

11390:                                            ; preds = %11383
  %11391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11392 = call i32 @fileno(ptr noundef %11391) #11
  %11393 = call i32 @isatty(i32 noundef %11392) #11
  %11394 = icmp ne i32 %11393, 0
  br i1 %11394, label %11395, label %11412

11395:                                            ; preds = %11390
  %11396 = load i32, ptr %273, align 4, !tbaa !5
  %11397 = call ptr @__errno_location() #12
  store i32 %11396, ptr %11397, align 4, !tbaa !5
  %11398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11399 = load i32, ptr @test_count, align 4, !tbaa !5
  %11400 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11401 = load i32, ptr %11400, align 4, !tbaa !5
  %11402 = call ptr @s2n_strerror(i32 noundef %11401, ptr noundef @.str.4)
  %11403 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11404 = load i32, ptr %11403, align 4, !tbaa !5
  %11405 = call ptr @s2n_strerror_debug(i32 noundef %11404, ptr noundef @.str.4)
  %11406 = call ptr @__errno_location() #12
  %11407 = load i32, ptr %11406, align 4, !tbaa !5
  %11408 = call ptr @strerror(i32 noundef %11407) #11
  %11409 = call ptr @__errno_location() #12
  %11410 = load i32, ptr %11409, align 4, !tbaa !5
  %11411 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11398, ptr noundef @.str.2, i32 noundef %11399, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 492, ptr noundef %11402, ptr noundef %11405, ptr noundef %11408, i32 noundef %11410) #11
  br label %11429

11412:                                            ; preds = %11390, %11383
  %11413 = load i32, ptr %273, align 4, !tbaa !5
  %11414 = call ptr @__errno_location() #12
  store i32 %11413, ptr %11414, align 4, !tbaa !5
  %11415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11416 = load i32, ptr @test_count, align 4, !tbaa !5
  %11417 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11418 = load i32, ptr %11417, align 4, !tbaa !5
  %11419 = call ptr @s2n_strerror(i32 noundef %11418, ptr noundef @.str.4)
  %11420 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11421 = load i32, ptr %11420, align 4, !tbaa !5
  %11422 = call ptr @s2n_strerror_debug(i32 noundef %11421, ptr noundef @.str.4)
  %11423 = call ptr @__errno_location() #12
  %11424 = load i32, ptr %11423, align 4, !tbaa !5
  %11425 = call ptr @strerror(i32 noundef %11424) #11
  %11426 = call ptr @__errno_location() #12
  %11427 = load i32, ptr %11426, align 4, !tbaa !5
  %11428 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11415, ptr noundef @.str.5, i32 noundef %11416, ptr noundef @.str.95, ptr noundef @.str.1, i32 noundef 492, ptr noundef %11419, ptr noundef %11422, ptr noundef %11425, i32 noundef %11427) #11
  br label %11429

11429:                                            ; preds = %11412, %11395
  call void @llvm.lifetime.end.p0(i64 4, ptr %273) #11
  br label %11430

11430:                                            ; preds = %11429
  br label %11431

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

11432:                                            ; No predecessors!
  br label %11433

11433:                                            ; preds = %11432
  br label %11434

11434:                                            ; preds = %11433, %11376
  br label %11435

11435:                                            ; preds = %11434
  br label %11436

11436:                                            ; preds = %11435
  br label %11437

11437:                                            ; preds = %11436
  %11438 = load i32, ptr @test_count, align 4, !tbaa !5
  %11439 = add nsw i32 %11438, 1
  store i32 %11439, ptr @test_count, align 4, !tbaa !5
  %11440 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11441 = load i32, ptr %11440, align 4, !tbaa !5
  %11442 = icmp eq i32 %11441, 469762089
  br i1 %11442, label %11496, label %11443

11443:                                            ; preds = %11437
  br label %11444

11444:                                            ; preds = %11443
  br label %11445

11445:                                            ; preds = %11444
  call void @llvm.lifetime.start.p0(i64 4, ptr %274) #11
  %11446 = call ptr @__errno_location() #12
  %11447 = load i32, ptr %11446, align 4, !tbaa !5
  store i32 %11447, ptr %274, align 4, !tbaa !5
  %11448 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11449 = call i32 @s2n_print_stacktrace(ptr noundef %11448)
  %11450 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11451 = trunc i8 %11450 to i1
  br i1 %11451, label %11452, label %11474

11452:                                            ; preds = %11445
  %11453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11454 = call i32 @fileno(ptr noundef %11453) #11
  %11455 = call i32 @isatty(i32 noundef %11454) #11
  %11456 = icmp ne i32 %11455, 0
  br i1 %11456, label %11457, label %11474

11457:                                            ; preds = %11452
  %11458 = load i32, ptr %274, align 4, !tbaa !5
  %11459 = call ptr @__errno_location() #12
  store i32 %11458, ptr %11459, align 4, !tbaa !5
  %11460 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11461 = load i32, ptr @test_count, align 4, !tbaa !5
  %11462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11463 = load i32, ptr %11462, align 4, !tbaa !5
  %11464 = call ptr @s2n_strerror(i32 noundef %11463, ptr noundef @.str.4)
  %11465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11466 = load i32, ptr %11465, align 4, !tbaa !5
  %11467 = call ptr @s2n_strerror_debug(i32 noundef %11466, ptr noundef @.str.4)
  %11468 = call ptr @__errno_location() #12
  %11469 = load i32, ptr %11468, align 4, !tbaa !5
  %11470 = call ptr @strerror(i32 noundef %11469) #11
  %11471 = call ptr @__errno_location() #12
  %11472 = load i32, ptr %11471, align 4, !tbaa !5
  %11473 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11460, ptr noundef @.str.2, i32 noundef %11461, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 492, ptr noundef %11464, ptr noundef %11467, ptr noundef %11470, i32 noundef %11472) #11
  br label %11491

11474:                                            ; preds = %11452, %11445
  %11475 = load i32, ptr %274, align 4, !tbaa !5
  %11476 = call ptr @__errno_location() #12
  store i32 %11475, ptr %11476, align 4, !tbaa !5
  %11477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11478 = load i32, ptr @test_count, align 4, !tbaa !5
  %11479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11480 = load i32, ptr %11479, align 4, !tbaa !5
  %11481 = call ptr @s2n_strerror(i32 noundef %11480, ptr noundef @.str.4)
  %11482 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11483 = load i32, ptr %11482, align 4, !tbaa !5
  %11484 = call ptr @s2n_strerror_debug(i32 noundef %11483, ptr noundef @.str.4)
  %11485 = call ptr @__errno_location() #12
  %11486 = load i32, ptr %11485, align 4, !tbaa !5
  %11487 = call ptr @strerror(i32 noundef %11486) #11
  %11488 = call ptr @__errno_location() #12
  %11489 = load i32, ptr %11488, align 4, !tbaa !5
  %11490 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11477, ptr noundef @.str.5, i32 noundef %11478, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 492, ptr noundef %11481, ptr noundef %11484, ptr noundef %11487, i32 noundef %11489) #11
  br label %11491

11491:                                            ; preds = %11474, %11457
  call void @llvm.lifetime.end.p0(i64 4, ptr %274) #11
  br label %11492

11492:                                            ; preds = %11491
  br label %11493

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

11494:                                            ; No predecessors!
  br label %11495

11495:                                            ; preds = %11494
  br label %11496

11496:                                            ; preds = %11495, %11437
  br label %11497

11497:                                            ; preds = %11496
  br label %11498

11498:                                            ; preds = %11497
  br label %11499

11499:                                            ; preds = %11498
  %11500 = load i32, ptr @test_count, align 4, !tbaa !5
  %11501 = add nsw i32 %11500, 1
  store i32 %11501, ptr @test_count, align 4, !tbaa !5
  %11502 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11503 = load i32, ptr %11502, align 4, !tbaa !5
  %11504 = call ptr @s2n_strerror_debug(i32 noundef %11503, ptr noundef @.str.4)
  %11505 = icmp eq ptr %11504, null
  br i1 %11505, label %11506, label %11559

11506:                                            ; preds = %11499
  br label %11507

11507:                                            ; preds = %11506
  br label %11508

11508:                                            ; preds = %11507
  call void @llvm.lifetime.start.p0(i64 4, ptr %275) #11
  %11509 = call ptr @__errno_location() #12
  %11510 = load i32, ptr %11509, align 4, !tbaa !5
  store i32 %11510, ptr %275, align 4, !tbaa !5
  %11511 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11512 = call i32 @s2n_print_stacktrace(ptr noundef %11511)
  %11513 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11514 = trunc i8 %11513 to i1
  br i1 %11514, label %11515, label %11537

11515:                                            ; preds = %11508
  %11516 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11517 = call i32 @fileno(ptr noundef %11516) #11
  %11518 = call i32 @isatty(i32 noundef %11517) #11
  %11519 = icmp ne i32 %11518, 0
  br i1 %11519, label %11520, label %11537

11520:                                            ; preds = %11515
  %11521 = load i32, ptr %275, align 4, !tbaa !5
  %11522 = call ptr @__errno_location() #12
  store i32 %11521, ptr %11522, align 4, !tbaa !5
  %11523 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11524 = load i32, ptr @test_count, align 4, !tbaa !5
  %11525 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11526 = load i32, ptr %11525, align 4, !tbaa !5
  %11527 = call ptr @s2n_strerror(i32 noundef %11526, ptr noundef @.str.4)
  %11528 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11529 = load i32, ptr %11528, align 4, !tbaa !5
  %11530 = call ptr @s2n_strerror_debug(i32 noundef %11529, ptr noundef @.str.4)
  %11531 = call ptr @__errno_location() #12
  %11532 = load i32, ptr %11531, align 4, !tbaa !5
  %11533 = call ptr @strerror(i32 noundef %11532) #11
  %11534 = call ptr @__errno_location() #12
  %11535 = load i32, ptr %11534, align 4, !tbaa !5
  %11536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11523, ptr noundef @.str.2, i32 noundef %11524, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 492, ptr noundef %11527, ptr noundef %11530, ptr noundef %11533, i32 noundef %11535) #11
  br label %11554

11537:                                            ; preds = %11515, %11508
  %11538 = load i32, ptr %275, align 4, !tbaa !5
  %11539 = call ptr @__errno_location() #12
  store i32 %11538, ptr %11539, align 4, !tbaa !5
  %11540 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11541 = load i32, ptr @test_count, align 4, !tbaa !5
  %11542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11543 = load i32, ptr %11542, align 4, !tbaa !5
  %11544 = call ptr @s2n_strerror(i32 noundef %11543, ptr noundef @.str.4)
  %11545 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11546 = load i32, ptr %11545, align 4, !tbaa !5
  %11547 = call ptr @s2n_strerror_debug(i32 noundef %11546, ptr noundef @.str.4)
  %11548 = call ptr @__errno_location() #12
  %11549 = load i32, ptr %11548, align 4, !tbaa !5
  %11550 = call ptr @strerror(i32 noundef %11549) #11
  %11551 = call ptr @__errno_location() #12
  %11552 = load i32, ptr %11551, align 4, !tbaa !5
  %11553 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11540, ptr noundef @.str.5, i32 noundef %11541, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 492, ptr noundef %11544, ptr noundef %11547, ptr noundef %11550, i32 noundef %11552) #11
  br label %11554

11554:                                            ; preds = %11537, %11520
  call void @llvm.lifetime.end.p0(i64 4, ptr %275) #11
  br label %11555

11555:                                            ; preds = %11554
  br label %11556

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

11557:                                            ; No predecessors!
  br label %11558

11558:                                            ; preds = %11557
  br label %11559

11559:                                            ; preds = %11558, %11499
  br label %11560

11560:                                            ; preds = %11559
  br label %11561

11561:                                            ; preds = %11560
  br label %11562

11562:                                            ; preds = %11561
  br label %11563

11563:                                            ; preds = %11562
  br label %11564

11564:                                            ; preds = %11563
  %11565 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11565, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11566 = call ptr @__errno_location() #12
  store i32 0, ptr %11566, align 4, !tbaa !5
  br label %11567

11567:                                            ; preds = %11564
  br label %11568

11568:                                            ; preds = %11567
  br label %11569

11569:                                            ; preds = %11568
  br label %11570

11570:                                            ; preds = %11569
  call void @llvm.lifetime.end.p0(i64 4, ptr %272) #11
  %11571 = call i32 @s2n_fingerprint_free(ptr noundef %268)
  call void @llvm.lifetime.end.p0(i64 8, ptr %268) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %276) #11
  %11572 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %11572, ptr %276, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %277) #11
  store i32 0, ptr %277, align 4, !tbaa !5
  br label %11573

11573:                                            ; preds = %11570
  br label %11574

11574:                                            ; preds = %11573
  br label %11575

11575:                                            ; preds = %11574
  %11576 = load i32, ptr @test_count, align 4, !tbaa !5
  %11577 = add nsw i32 %11576, 1
  store i32 %11577, ptr @test_count, align 4, !tbaa !5
  %11578 = load ptr, ptr %276, align 8, !tbaa !9
  %11579 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %11578, ptr noundef %277)
  %11580 = icmp eq i32 %11579, -1
  br i1 %11580, label %11634, label %11581

11581:                                            ; preds = %11575
  br label %11582

11582:                                            ; preds = %11581
  br label %11583

11583:                                            ; preds = %11582
  call void @llvm.lifetime.start.p0(i64 4, ptr %278) #11
  %11584 = call ptr @__errno_location() #12
  %11585 = load i32, ptr %11584, align 4, !tbaa !5
  store i32 %11585, ptr %278, align 4, !tbaa !5
  %11586 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11587 = call i32 @s2n_print_stacktrace(ptr noundef %11586)
  %11588 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11589 = trunc i8 %11588 to i1
  br i1 %11589, label %11590, label %11612

11590:                                            ; preds = %11583
  %11591 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11592 = call i32 @fileno(ptr noundef %11591) #11
  %11593 = call i32 @isatty(i32 noundef %11592) #11
  %11594 = icmp ne i32 %11593, 0
  br i1 %11594, label %11595, label %11612

11595:                                            ; preds = %11590
  %11596 = load i32, ptr %278, align 4, !tbaa !5
  %11597 = call ptr @__errno_location() #12
  store i32 %11596, ptr %11597, align 4, !tbaa !5
  %11598 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11599 = load i32, ptr @test_count, align 4, !tbaa !5
  %11600 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11601 = load i32, ptr %11600, align 4, !tbaa !5
  %11602 = call ptr @s2n_strerror(i32 noundef %11601, ptr noundef @.str.4)
  %11603 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11604 = load i32, ptr %11603, align 4, !tbaa !5
  %11605 = call ptr @s2n_strerror_debug(i32 noundef %11604, ptr noundef @.str.4)
  %11606 = call ptr @__errno_location() #12
  %11607 = load i32, ptr %11606, align 4, !tbaa !5
  %11608 = call ptr @strerror(i32 noundef %11607) #11
  %11609 = call ptr @__errno_location() #12
  %11610 = load i32, ptr %11609, align 4, !tbaa !5
  %11611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11598, ptr noundef @.str.2, i32 noundef %11599, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11602, ptr noundef %11605, ptr noundef %11608, i32 noundef %11610) #11
  br label %11629

11612:                                            ; preds = %11590, %11583
  %11613 = load i32, ptr %278, align 4, !tbaa !5
  %11614 = call ptr @__errno_location() #12
  store i32 %11613, ptr %11614, align 4, !tbaa !5
  %11615 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11616 = load i32, ptr @test_count, align 4, !tbaa !5
  %11617 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11618 = load i32, ptr %11617, align 4, !tbaa !5
  %11619 = call ptr @s2n_strerror(i32 noundef %11618, ptr noundef @.str.4)
  %11620 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11621 = load i32, ptr %11620, align 4, !tbaa !5
  %11622 = call ptr @s2n_strerror_debug(i32 noundef %11621, ptr noundef @.str.4)
  %11623 = call ptr @__errno_location() #12
  %11624 = load i32, ptr %11623, align 4, !tbaa !5
  %11625 = call ptr @strerror(i32 noundef %11624) #11
  %11626 = call ptr @__errno_location() #12
  %11627 = load i32, ptr %11626, align 4, !tbaa !5
  %11628 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11615, ptr noundef @.str.5, i32 noundef %11616, ptr noundef @.str.96, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11619, ptr noundef %11622, ptr noundef %11625, i32 noundef %11627) #11
  br label %11629

11629:                                            ; preds = %11612, %11595
  call void @llvm.lifetime.end.p0(i64 4, ptr %278) #11
  br label %11630

11630:                                            ; preds = %11629
  br label %11631

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

11632:                                            ; No predecessors!
  br label %11633

11633:                                            ; preds = %11632
  br label %11634

11634:                                            ; preds = %11633, %11575
  br label %11635

11635:                                            ; preds = %11634
  br label %11636

11636:                                            ; preds = %11635
  br label %11637

11637:                                            ; preds = %11636
  %11638 = load i32, ptr @test_count, align 4, !tbaa !5
  %11639 = add nsw i32 %11638, 1
  store i32 %11639, ptr @test_count, align 4, !tbaa !5
  %11640 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11641 = load i32, ptr %11640, align 4, !tbaa !5
  %11642 = icmp eq i32 %11641, 469762112
  br i1 %11642, label %11696, label %11643

11643:                                            ; preds = %11637
  br label %11644

11644:                                            ; preds = %11643
  br label %11645

11645:                                            ; preds = %11644
  call void @llvm.lifetime.start.p0(i64 4, ptr %279) #11
  %11646 = call ptr @__errno_location() #12
  %11647 = load i32, ptr %11646, align 4, !tbaa !5
  store i32 %11647, ptr %279, align 4, !tbaa !5
  %11648 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11649 = call i32 @s2n_print_stacktrace(ptr noundef %11648)
  %11650 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11651 = trunc i8 %11650 to i1
  br i1 %11651, label %11652, label %11674

11652:                                            ; preds = %11645
  %11653 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11654 = call i32 @fileno(ptr noundef %11653) #11
  %11655 = call i32 @isatty(i32 noundef %11654) #11
  %11656 = icmp ne i32 %11655, 0
  br i1 %11656, label %11657, label %11674

11657:                                            ; preds = %11652
  %11658 = load i32, ptr %279, align 4, !tbaa !5
  %11659 = call ptr @__errno_location() #12
  store i32 %11658, ptr %11659, align 4, !tbaa !5
  %11660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11661 = load i32, ptr @test_count, align 4, !tbaa !5
  %11662 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11663 = load i32, ptr %11662, align 4, !tbaa !5
  %11664 = call ptr @s2n_strerror(i32 noundef %11663, ptr noundef @.str.4)
  %11665 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11666 = load i32, ptr %11665, align 4, !tbaa !5
  %11667 = call ptr @s2n_strerror_debug(i32 noundef %11666, ptr noundef @.str.4)
  %11668 = call ptr @__errno_location() #12
  %11669 = load i32, ptr %11668, align 4, !tbaa !5
  %11670 = call ptr @strerror(i32 noundef %11669) #11
  %11671 = call ptr @__errno_location() #12
  %11672 = load i32, ptr %11671, align 4, !tbaa !5
  %11673 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11660, ptr noundef @.str.2, i32 noundef %11661, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11664, ptr noundef %11667, ptr noundef %11670, i32 noundef %11672) #11
  br label %11691

11674:                                            ; preds = %11652, %11645
  %11675 = load i32, ptr %279, align 4, !tbaa !5
  %11676 = call ptr @__errno_location() #12
  store i32 %11675, ptr %11676, align 4, !tbaa !5
  %11677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11678 = load i32, ptr @test_count, align 4, !tbaa !5
  %11679 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11680 = load i32, ptr %11679, align 4, !tbaa !5
  %11681 = call ptr @s2n_strerror(i32 noundef %11680, ptr noundef @.str.4)
  %11682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11683 = load i32, ptr %11682, align 4, !tbaa !5
  %11684 = call ptr @s2n_strerror_debug(i32 noundef %11683, ptr noundef @.str.4)
  %11685 = call ptr @__errno_location() #12
  %11686 = load i32, ptr %11685, align 4, !tbaa !5
  %11687 = call ptr @strerror(i32 noundef %11686) #11
  %11688 = call ptr @__errno_location() #12
  %11689 = load i32, ptr %11688, align 4, !tbaa !5
  %11690 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11677, ptr noundef @.str.5, i32 noundef %11678, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11681, ptr noundef %11684, ptr noundef %11687, i32 noundef %11689) #11
  br label %11691

11691:                                            ; preds = %11674, %11657
  call void @llvm.lifetime.end.p0(i64 4, ptr %279) #11
  br label %11692

11692:                                            ; preds = %11691
  br label %11693

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

11694:                                            ; No predecessors!
  br label %11695

11695:                                            ; preds = %11694
  br label %11696

11696:                                            ; preds = %11695, %11637
  br label %11697

11697:                                            ; preds = %11696
  br label %11698

11698:                                            ; preds = %11697
  br label %11699

11699:                                            ; preds = %11698
  %11700 = load i32, ptr @test_count, align 4, !tbaa !5
  %11701 = add nsw i32 %11700, 1
  store i32 %11701, ptr @test_count, align 4, !tbaa !5
  %11702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11703 = load i32, ptr %11702, align 4, !tbaa !5
  %11704 = call ptr @s2n_strerror_debug(i32 noundef %11703, ptr noundef @.str.4)
  %11705 = icmp eq ptr %11704, null
  br i1 %11705, label %11706, label %11759

11706:                                            ; preds = %11699
  br label %11707

11707:                                            ; preds = %11706
  br label %11708

11708:                                            ; preds = %11707
  call void @llvm.lifetime.start.p0(i64 4, ptr %280) #11
  %11709 = call ptr @__errno_location() #12
  %11710 = load i32, ptr %11709, align 4, !tbaa !5
  store i32 %11710, ptr %280, align 4, !tbaa !5
  %11711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11712 = call i32 @s2n_print_stacktrace(ptr noundef %11711)
  %11713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11714 = trunc i8 %11713 to i1
  br i1 %11714, label %11715, label %11737

11715:                                            ; preds = %11708
  %11716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11717 = call i32 @fileno(ptr noundef %11716) #11
  %11718 = call i32 @isatty(i32 noundef %11717) #11
  %11719 = icmp ne i32 %11718, 0
  br i1 %11719, label %11720, label %11737

11720:                                            ; preds = %11715
  %11721 = load i32, ptr %280, align 4, !tbaa !5
  %11722 = call ptr @__errno_location() #12
  store i32 %11721, ptr %11722, align 4, !tbaa !5
  %11723 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11724 = load i32, ptr @test_count, align 4, !tbaa !5
  %11725 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11726 = load i32, ptr %11725, align 4, !tbaa !5
  %11727 = call ptr @s2n_strerror(i32 noundef %11726, ptr noundef @.str.4)
  %11728 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11729 = load i32, ptr %11728, align 4, !tbaa !5
  %11730 = call ptr @s2n_strerror_debug(i32 noundef %11729, ptr noundef @.str.4)
  %11731 = call ptr @__errno_location() #12
  %11732 = load i32, ptr %11731, align 4, !tbaa !5
  %11733 = call ptr @strerror(i32 noundef %11732) #11
  %11734 = call ptr @__errno_location() #12
  %11735 = load i32, ptr %11734, align 4, !tbaa !5
  %11736 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11723, ptr noundef @.str.2, i32 noundef %11724, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11727, ptr noundef %11730, ptr noundef %11733, i32 noundef %11735) #11
  br label %11754

11737:                                            ; preds = %11715, %11708
  %11738 = load i32, ptr %280, align 4, !tbaa !5
  %11739 = call ptr @__errno_location() #12
  store i32 %11738, ptr %11739, align 4, !tbaa !5
  %11740 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11741 = load i32, ptr @test_count, align 4, !tbaa !5
  %11742 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11743 = load i32, ptr %11742, align 4, !tbaa !5
  %11744 = call ptr @s2n_strerror(i32 noundef %11743, ptr noundef @.str.4)
  %11745 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11746 = load i32, ptr %11745, align 4, !tbaa !5
  %11747 = call ptr @s2n_strerror_debug(i32 noundef %11746, ptr noundef @.str.4)
  %11748 = call ptr @__errno_location() #12
  %11749 = load i32, ptr %11748, align 4, !tbaa !5
  %11750 = call ptr @strerror(i32 noundef %11749) #11
  %11751 = call ptr @__errno_location() #12
  %11752 = load i32, ptr %11751, align 4, !tbaa !5
  %11753 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11740, ptr noundef @.str.5, i32 noundef %11741, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 502, ptr noundef %11744, ptr noundef %11747, ptr noundef %11750, i32 noundef %11752) #11
  br label %11754

11754:                                            ; preds = %11737, %11720
  call void @llvm.lifetime.end.p0(i64 4, ptr %280) #11
  br label %11755

11755:                                            ; preds = %11754
  br label %11756

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

11757:                                            ; No predecessors!
  br label %11758

11758:                                            ; preds = %11757
  br label %11759

11759:                                            ; preds = %11758, %11699
  br label %11760

11760:                                            ; preds = %11759
  br label %11761

11761:                                            ; preds = %11760
  br label %11762

11762:                                            ; preds = %11761
  br label %11763

11763:                                            ; preds = %11762
  br label %11764

11764:                                            ; preds = %11763
  %11765 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %11765, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %11766 = call ptr @__errno_location() #12
  store i32 0, ptr %11766, align 4, !tbaa !5
  br label %11767

11767:                                            ; preds = %11764
  br label %11768

11768:                                            ; preds = %11767
  br label %11769

11769:                                            ; preds = %11768
  br label %11770

11770:                                            ; preds = %11769
  call void @llvm.lifetime.end.p0(i64 4, ptr %277) #11
  %11771 = call i32 @s2n_fingerprint_free(ptr noundef %276)
  call void @llvm.lifetime.end.p0(i64 8, ptr %276) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %281) #11
  %11772 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %11772, ptr %281, align 8, !tbaa !9
  br label %11773

11773:                                            ; preds = %11770
  %11774 = load i32, ptr @test_count, align 4, !tbaa !5
  %11775 = add nsw i32 %11774, 1
  store i32 %11775, ptr @test_count, align 4, !tbaa !5
  %11776 = load ptr, ptr %281, align 8, !tbaa !9
  %11777 = load ptr, ptr %14, align 8, !tbaa !9
  %11778 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %11776, ptr noundef %11777)
  %11779 = icmp eq i32 %11778, -1
  br i1 %11779, label %11780, label %11833

11780:                                            ; preds = %11773
  br label %11781

11781:                                            ; preds = %11780
  br label %11782

11782:                                            ; preds = %11781
  call void @llvm.lifetime.start.p0(i64 4, ptr %282) #11
  %11783 = call ptr @__errno_location() #12
  %11784 = load i32, ptr %11783, align 4, !tbaa !5
  store i32 %11784, ptr %282, align 4, !tbaa !5
  %11785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11786 = call i32 @s2n_print_stacktrace(ptr noundef %11785)
  %11787 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11788 = trunc i8 %11787 to i1
  br i1 %11788, label %11789, label %11811

11789:                                            ; preds = %11782
  %11790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11791 = call i32 @fileno(ptr noundef %11790) #11
  %11792 = call i32 @isatty(i32 noundef %11791) #11
  %11793 = icmp ne i32 %11792, 0
  br i1 %11793, label %11794, label %11811

11794:                                            ; preds = %11789
  %11795 = load i32, ptr %282, align 4, !tbaa !5
  %11796 = call ptr @__errno_location() #12
  store i32 %11795, ptr %11796, align 4, !tbaa !5
  %11797 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11798 = load i32, ptr @test_count, align 4, !tbaa !5
  %11799 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11800 = load i32, ptr %11799, align 4, !tbaa !5
  %11801 = call ptr @s2n_strerror(i32 noundef %11800, ptr noundef @.str.4)
  %11802 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11803 = load i32, ptr %11802, align 4, !tbaa !5
  %11804 = call ptr @s2n_strerror_debug(i32 noundef %11803, ptr noundef @.str.4)
  %11805 = call ptr @__errno_location() #12
  %11806 = load i32, ptr %11805, align 4, !tbaa !5
  %11807 = call ptr @strerror(i32 noundef %11806) #11
  %11808 = call ptr @__errno_location() #12
  %11809 = load i32, ptr %11808, align 4, !tbaa !5
  %11810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11797, ptr noundef @.str.2, i32 noundef %11798, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 509, ptr noundef %11801, ptr noundef %11804, ptr noundef %11807, i32 noundef %11809) #11
  br label %11828

11811:                                            ; preds = %11789, %11782
  %11812 = load i32, ptr %282, align 4, !tbaa !5
  %11813 = call ptr @__errno_location() #12
  store i32 %11812, ptr %11813, align 4, !tbaa !5
  %11814 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11815 = load i32, ptr @test_count, align 4, !tbaa !5
  %11816 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11817 = load i32, ptr %11816, align 4, !tbaa !5
  %11818 = call ptr @s2n_strerror(i32 noundef %11817, ptr noundef @.str.4)
  %11819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11820 = load i32, ptr %11819, align 4, !tbaa !5
  %11821 = call ptr @s2n_strerror_debug(i32 noundef %11820, ptr noundef @.str.4)
  %11822 = call ptr @__errno_location() #12
  %11823 = load i32, ptr %11822, align 4, !tbaa !5
  %11824 = call ptr @strerror(i32 noundef %11823) #11
  %11825 = call ptr @__errno_location() #12
  %11826 = load i32, ptr %11825, align 4, !tbaa !5
  %11827 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11814, ptr noundef @.str.5, i32 noundef %11815, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 509, ptr noundef %11818, ptr noundef %11821, ptr noundef %11824, i32 noundef %11826) #11
  br label %11828

11828:                                            ; preds = %11811, %11794
  call void @llvm.lifetime.end.p0(i64 4, ptr %282) #11
  br label %11829

11829:                                            ; preds = %11828
  br label %11830

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

11831:                                            ; No predecessors!
  br label %11832

11832:                                            ; preds = %11831
  br label %11833

11833:                                            ; preds = %11832, %11773
  br label %11834

11834:                                            ; preds = %11833
  br label %11835

11835:                                            ; preds = %11834
  call void @llvm.lifetime.start.p0(i64 100, ptr %283) #11
  call void @llvm.memset.p0.i64(ptr align 16 %283, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %284) #11
  store i32 0, ptr %284, align 4, !tbaa !5
  br label %11836

11836:                                            ; preds = %11835
  %11837 = load i32, ptr @test_count, align 4, !tbaa !5
  %11838 = add nsw i32 %11837, 1
  store i32 %11838, ptr @test_count, align 4, !tbaa !5
  %11839 = load ptr, ptr %281, align 8, !tbaa !9
  %11840 = getelementptr inbounds [100 x i8], ptr %283, i64 0, i64 0
  %11841 = call i32 @s2n_fingerprint_get_hash(ptr noundef %11839, i32 noundef 100, ptr noundef %11840, ptr noundef %284)
  %11842 = icmp eq i32 %11841, -1
  br i1 %11842, label %11843, label %11896

11843:                                            ; preds = %11836
  br label %11844

11844:                                            ; preds = %11843
  br label %11845

11845:                                            ; preds = %11844
  call void @llvm.lifetime.start.p0(i64 4, ptr %285) #11
  %11846 = call ptr @__errno_location() #12
  %11847 = load i32, ptr %11846, align 4, !tbaa !5
  store i32 %11847, ptr %285, align 4, !tbaa !5
  %11848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11849 = call i32 @s2n_print_stacktrace(ptr noundef %11848)
  %11850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11851 = trunc i8 %11850 to i1
  br i1 %11851, label %11852, label %11874

11852:                                            ; preds = %11845
  %11853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11854 = call i32 @fileno(ptr noundef %11853) #11
  %11855 = call i32 @isatty(i32 noundef %11854) #11
  %11856 = icmp ne i32 %11855, 0
  br i1 %11856, label %11857, label %11874

11857:                                            ; preds = %11852
  %11858 = load i32, ptr %285, align 4, !tbaa !5
  %11859 = call ptr @__errno_location() #12
  store i32 %11858, ptr %11859, align 4, !tbaa !5
  %11860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11861 = load i32, ptr @test_count, align 4, !tbaa !5
  %11862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11863 = load i32, ptr %11862, align 4, !tbaa !5
  %11864 = call ptr @s2n_strerror(i32 noundef %11863, ptr noundef @.str.4)
  %11865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11866 = load i32, ptr %11865, align 4, !tbaa !5
  %11867 = call ptr @s2n_strerror_debug(i32 noundef %11866, ptr noundef @.str.4)
  %11868 = call ptr @__errno_location() #12
  %11869 = load i32, ptr %11868, align 4, !tbaa !5
  %11870 = call ptr @strerror(i32 noundef %11869) #11
  %11871 = call ptr @__errno_location() #12
  %11872 = load i32, ptr %11871, align 4, !tbaa !5
  %11873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11860, ptr noundef @.str.2, i32 noundef %11861, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 514, ptr noundef %11864, ptr noundef %11867, ptr noundef %11870, i32 noundef %11872) #11
  br label %11891

11874:                                            ; preds = %11852, %11845
  %11875 = load i32, ptr %285, align 4, !tbaa !5
  %11876 = call ptr @__errno_location() #12
  store i32 %11875, ptr %11876, align 4, !tbaa !5
  %11877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11878 = load i32, ptr @test_count, align 4, !tbaa !5
  %11879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11880 = load i32, ptr %11879, align 4, !tbaa !5
  %11881 = call ptr @s2n_strerror(i32 noundef %11880, ptr noundef @.str.4)
  %11882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11883 = load i32, ptr %11882, align 4, !tbaa !5
  %11884 = call ptr @s2n_strerror_debug(i32 noundef %11883, ptr noundef @.str.4)
  %11885 = call ptr @__errno_location() #12
  %11886 = load i32, ptr %11885, align 4, !tbaa !5
  %11887 = call ptr @strerror(i32 noundef %11886) #11
  %11888 = call ptr @__errno_location() #12
  %11889 = load i32, ptr %11888, align 4, !tbaa !5
  %11890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11877, ptr noundef @.str.5, i32 noundef %11878, ptr noundef @.str.97, ptr noundef @.str.1, i32 noundef 514, ptr noundef %11881, ptr noundef %11884, ptr noundef %11887, i32 noundef %11889) #11
  br label %11891

11891:                                            ; preds = %11874, %11857
  call void @llvm.lifetime.end.p0(i64 4, ptr %285) #11
  br label %11892

11892:                                            ; preds = %11891
  br label %11893

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

11894:                                            ; No predecessors!
  br label %11895

11895:                                            ; preds = %11894
  br label %11896

11896:                                            ; preds = %11895, %11836
  br label %11897

11897:                                            ; preds = %11896
  br label %11898

11898:                                            ; preds = %11897
  call void @llvm.lifetime.start.p0(i64 4, ptr %286) #11
  store i32 0, ptr %286, align 4, !tbaa !5
  br label %11899

11899:                                            ; preds = %11898
  %11900 = load i32, ptr @test_count, align 4, !tbaa !5
  %11901 = add nsw i32 %11900, 1
  store i32 %11901, ptr @test_count, align 4, !tbaa !5
  %11902 = load ptr, ptr %281, align 8, !tbaa !9
  %11903 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %11902, ptr noundef %286)
  %11904 = icmp eq i32 %11903, -1
  br i1 %11904, label %11905, label %11958

11905:                                            ; preds = %11899
  br label %11906

11906:                                            ; preds = %11905
  br label %11907

11907:                                            ; preds = %11906
  call void @llvm.lifetime.start.p0(i64 4, ptr %287) #11
  %11908 = call ptr @__errno_location() #12
  %11909 = load i32, ptr %11908, align 4, !tbaa !5
  store i32 %11909, ptr %287, align 4, !tbaa !5
  %11910 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11911 = call i32 @s2n_print_stacktrace(ptr noundef %11910)
  %11912 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11913 = trunc i8 %11912 to i1
  br i1 %11913, label %11914, label %11936

11914:                                            ; preds = %11907
  %11915 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11916 = call i32 @fileno(ptr noundef %11915) #11
  %11917 = call i32 @isatty(i32 noundef %11916) #11
  %11918 = icmp ne i32 %11917, 0
  br i1 %11918, label %11919, label %11936

11919:                                            ; preds = %11914
  %11920 = load i32, ptr %287, align 4, !tbaa !5
  %11921 = call ptr @__errno_location() #12
  store i32 %11920, ptr %11921, align 4, !tbaa !5
  %11922 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11923 = load i32, ptr @test_count, align 4, !tbaa !5
  %11924 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11925 = load i32, ptr %11924, align 4, !tbaa !5
  %11926 = call ptr @s2n_strerror(i32 noundef %11925, ptr noundef @.str.4)
  %11927 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11928 = load i32, ptr %11927, align 4, !tbaa !5
  %11929 = call ptr @s2n_strerror_debug(i32 noundef %11928, ptr noundef @.str.4)
  %11930 = call ptr @__errno_location() #12
  %11931 = load i32, ptr %11930, align 4, !tbaa !5
  %11932 = call ptr @strerror(i32 noundef %11931) #11
  %11933 = call ptr @__errno_location() #12
  %11934 = load i32, ptr %11933, align 4, !tbaa !5
  %11935 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11922, ptr noundef @.str.2, i32 noundef %11923, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11926, ptr noundef %11929, ptr noundef %11932, i32 noundef %11934) #11
  br label %11953

11936:                                            ; preds = %11914, %11907
  %11937 = load i32, ptr %287, align 4, !tbaa !5
  %11938 = call ptr @__errno_location() #12
  store i32 %11937, ptr %11938, align 4, !tbaa !5
  %11939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11940 = load i32, ptr @test_count, align 4, !tbaa !5
  %11941 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11942 = load i32, ptr %11941, align 4, !tbaa !5
  %11943 = call ptr @s2n_strerror(i32 noundef %11942, ptr noundef @.str.4)
  %11944 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11945 = load i32, ptr %11944, align 4, !tbaa !5
  %11946 = call ptr @s2n_strerror_debug(i32 noundef %11945, ptr noundef @.str.4)
  %11947 = call ptr @__errno_location() #12
  %11948 = load i32, ptr %11947, align 4, !tbaa !5
  %11949 = call ptr @strerror(i32 noundef %11948) #11
  %11950 = call ptr @__errno_location() #12
  %11951 = load i32, ptr %11950, align 4, !tbaa !5
  %11952 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11939, ptr noundef @.str.5, i32 noundef %11940, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 517, ptr noundef %11943, ptr noundef %11946, ptr noundef %11949, i32 noundef %11951) #11
  br label %11953

11953:                                            ; preds = %11936, %11919
  call void @llvm.lifetime.end.p0(i64 4, ptr %287) #11
  br label %11954

11954:                                            ; preds = %11953
  br label %11955

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

11956:                                            ; No predecessors!
  br label %11957

11957:                                            ; preds = %11956
  br label %11958

11958:                                            ; preds = %11957, %11899
  br label %11959

11959:                                            ; preds = %11958
  br label %11960

11960:                                            ; preds = %11959
  br label %11961

11961:                                            ; preds = %11960
  %11962 = load i32, ptr @test_count, align 4, !tbaa !5
  %11963 = add nsw i32 %11962, 1
  store i32 %11963, ptr @test_count, align 4, !tbaa !5
  %11964 = load i32, ptr %286, align 4, !tbaa !5
  %11965 = icmp eq i32 %11964, 12
  br i1 %11965, label %12019, label %11966

11966:                                            ; preds = %11961
  br label %11967

11967:                                            ; preds = %11966
  br label %11968

11968:                                            ; preds = %11967
  call void @llvm.lifetime.start.p0(i64 4, ptr %288) #11
  %11969 = call ptr @__errno_location() #12
  %11970 = load i32, ptr %11969, align 4, !tbaa !5
  store i32 %11970, ptr %288, align 4, !tbaa !5
  %11971 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11972 = call i32 @s2n_print_stacktrace(ptr noundef %11971)
  %11973 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %11974 = trunc i8 %11973 to i1
  br i1 %11974, label %11975, label %11997

11975:                                            ; preds = %11968
  %11976 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11977 = call i32 @fileno(ptr noundef %11976) #11
  %11978 = call i32 @isatty(i32 noundef %11977) #11
  %11979 = icmp ne i32 %11978, 0
  br i1 %11979, label %11980, label %11997

11980:                                            ; preds = %11975
  %11981 = load i32, ptr %288, align 4, !tbaa !5
  %11982 = call ptr @__errno_location() #12
  store i32 %11981, ptr %11982, align 4, !tbaa !5
  %11983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %11984 = load i32, ptr @test_count, align 4, !tbaa !5
  %11985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11986 = load i32, ptr %11985, align 4, !tbaa !5
  %11987 = call ptr @s2n_strerror(i32 noundef %11986, ptr noundef @.str.4)
  %11988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %11989 = load i32, ptr %11988, align 4, !tbaa !5
  %11990 = call ptr @s2n_strerror_debug(i32 noundef %11989, ptr noundef @.str.4)
  %11991 = call ptr @__errno_location() #12
  %11992 = load i32, ptr %11991, align 4, !tbaa !5
  %11993 = call ptr @strerror(i32 noundef %11992) #11
  %11994 = call ptr @__errno_location() #12
  %11995 = load i32, ptr %11994, align 4, !tbaa !5
  %11996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11983, ptr noundef @.str.2, i32 noundef %11984, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 518, ptr noundef %11987, ptr noundef %11990, ptr noundef %11993, i32 noundef %11995) #11
  br label %12014

11997:                                            ; preds = %11975, %11968
  %11998 = load i32, ptr %288, align 4, !tbaa !5
  %11999 = call ptr @__errno_location() #12
  store i32 %11998, ptr %11999, align 4, !tbaa !5
  %12000 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12001 = load i32, ptr @test_count, align 4, !tbaa !5
  %12002 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12003 = load i32, ptr %12002, align 4, !tbaa !5
  %12004 = call ptr @s2n_strerror(i32 noundef %12003, ptr noundef @.str.4)
  %12005 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12006 = load i32, ptr %12005, align 4, !tbaa !5
  %12007 = call ptr @s2n_strerror_debug(i32 noundef %12006, ptr noundef @.str.4)
  %12008 = call ptr @__errno_location() #12
  %12009 = load i32, ptr %12008, align 4, !tbaa !5
  %12010 = call ptr @strerror(i32 noundef %12009) #11
  %12011 = call ptr @__errno_location() #12
  %12012 = load i32, ptr %12011, align 4, !tbaa !5
  %12013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12000, ptr noundef @.str.5, i32 noundef %12001, ptr noundef @.str.99, ptr noundef @.str.1, i32 noundef 518, ptr noundef %12004, ptr noundef %12007, ptr noundef %12010, i32 noundef %12012) #11
  br label %12014

12014:                                            ; preds = %11997, %11980
  call void @llvm.lifetime.end.p0(i64 4, ptr %288) #11
  br label %12015

12015:                                            ; preds = %12014
  br label %12016

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

12017:                                            ; No predecessors!
  br label %12018

12018:                                            ; preds = %12017
  br label %12019

12019:                                            ; preds = %12018, %11961
  br label %12020

12020:                                            ; preds = %12019
  br label %12021

12021:                                            ; preds = %12020
  call void @llvm.lifetime.end.p0(i64 4, ptr %286) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %284) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %283) #11
  %12022 = call i32 @s2n_fingerprint_free(ptr noundef %281)
  call void @llvm.lifetime.end.p0(i64 8, ptr %281) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %289) #11
  %12023 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %12023, ptr %289, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 100, ptr %290) #11
  call void @llvm.memset.p0.i64(ptr align 16 %290, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %291) #11
  store i32 0, ptr %291, align 4, !tbaa !5
  br label %12024

12024:                                            ; preds = %12021
  br label %12025

12025:                                            ; preds = %12024
  br label %12026

12026:                                            ; preds = %12025
  %12027 = load i32, ptr @test_count, align 4, !tbaa !5
  %12028 = add nsw i32 %12027, 1
  store i32 %12028, ptr @test_count, align 4, !tbaa !5
  %12029 = getelementptr inbounds [100 x i8], ptr %290, i64 0, i64 0
  %12030 = call i32 @s2n_fingerprint_get_raw(ptr noundef null, i32 noundef 100, ptr noundef %12029, ptr noundef %291)
  %12031 = icmp eq i32 %12030, -1
  br i1 %12031, label %12085, label %12032

12032:                                            ; preds = %12026
  br label %12033

12033:                                            ; preds = %12032
  br label %12034

12034:                                            ; preds = %12033
  call void @llvm.lifetime.start.p0(i64 4, ptr %292) #11
  %12035 = call ptr @__errno_location() #12
  %12036 = load i32, ptr %12035, align 4, !tbaa !5
  store i32 %12036, ptr %292, align 4, !tbaa !5
  %12037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12038 = call i32 @s2n_print_stacktrace(ptr noundef %12037)
  %12039 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12040 = trunc i8 %12039 to i1
  br i1 %12040, label %12041, label %12063

12041:                                            ; preds = %12034
  %12042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12043 = call i32 @fileno(ptr noundef %12042) #11
  %12044 = call i32 @isatty(i32 noundef %12043) #11
  %12045 = icmp ne i32 %12044, 0
  br i1 %12045, label %12046, label %12063

12046:                                            ; preds = %12041
  %12047 = load i32, ptr %292, align 4, !tbaa !5
  %12048 = call ptr @__errno_location() #12
  store i32 %12047, ptr %12048, align 4, !tbaa !5
  %12049 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12050 = load i32, ptr @test_count, align 4, !tbaa !5
  %12051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12052 = load i32, ptr %12051, align 4, !tbaa !5
  %12053 = call ptr @s2n_strerror(i32 noundef %12052, ptr noundef @.str.4)
  %12054 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12055 = load i32, ptr %12054, align 4, !tbaa !5
  %12056 = call ptr @s2n_strerror_debug(i32 noundef %12055, ptr noundef @.str.4)
  %12057 = call ptr @__errno_location() #12
  %12058 = load i32, ptr %12057, align 4, !tbaa !5
  %12059 = call ptr @strerror(i32 noundef %12058) #11
  %12060 = call ptr @__errno_location() #12
  %12061 = load i32, ptr %12060, align 4, !tbaa !5
  %12062 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12049, ptr noundef @.str.2, i32 noundef %12050, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 533, ptr noundef %12053, ptr noundef %12056, ptr noundef %12059, i32 noundef %12061) #11
  br label %12080

12063:                                            ; preds = %12041, %12034
  %12064 = load i32, ptr %292, align 4, !tbaa !5
  %12065 = call ptr @__errno_location() #12
  store i32 %12064, ptr %12065, align 4, !tbaa !5
  %12066 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12067 = load i32, ptr @test_count, align 4, !tbaa !5
  %12068 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12069 = load i32, ptr %12068, align 4, !tbaa !5
  %12070 = call ptr @s2n_strerror(i32 noundef %12069, ptr noundef @.str.4)
  %12071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12072 = load i32, ptr %12071, align 4, !tbaa !5
  %12073 = call ptr @s2n_strerror_debug(i32 noundef %12072, ptr noundef @.str.4)
  %12074 = call ptr @__errno_location() #12
  %12075 = load i32, ptr %12074, align 4, !tbaa !5
  %12076 = call ptr @strerror(i32 noundef %12075) #11
  %12077 = call ptr @__errno_location() #12
  %12078 = load i32, ptr %12077, align 4, !tbaa !5
  %12079 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12066, ptr noundef @.str.5, i32 noundef %12067, ptr noundef @.str.100, ptr noundef @.str.1, i32 noundef 533, ptr noundef %12070, ptr noundef %12073, ptr noundef %12076, i32 noundef %12078) #11
  br label %12080

12080:                                            ; preds = %12063, %12046
  call void @llvm.lifetime.end.p0(i64 4, ptr %292) #11
  br label %12081

12081:                                            ; preds = %12080
  br label %12082

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

12083:                                            ; No predecessors!
  br label %12084

12084:                                            ; preds = %12083
  br label %12085

12085:                                            ; preds = %12084, %12026
  br label %12086

12086:                                            ; preds = %12085
  br label %12087

12087:                                            ; preds = %12086
  br label %12088

12088:                                            ; preds = %12087
  %12089 = load i32, ptr @test_count, align 4, !tbaa !5
  %12090 = add nsw i32 %12089, 1
  store i32 %12090, ptr @test_count, align 4, !tbaa !5
  %12091 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12092 = load i32, ptr %12091, align 4, !tbaa !5
  %12093 = icmp eq i32 %12092, 469762089
  br i1 %12093, label %12147, label %12094

12094:                                            ; preds = %12088
  br label %12095

12095:                                            ; preds = %12094
  br label %12096

12096:                                            ; preds = %12095
  call void @llvm.lifetime.start.p0(i64 4, ptr %293) #11
  %12097 = call ptr @__errno_location() #12
  %12098 = load i32, ptr %12097, align 4, !tbaa !5
  store i32 %12098, ptr %293, align 4, !tbaa !5
  %12099 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12100 = call i32 @s2n_print_stacktrace(ptr noundef %12099)
  %12101 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12102 = trunc i8 %12101 to i1
  br i1 %12102, label %12103, label %12125

12103:                                            ; preds = %12096
  %12104 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12105 = call i32 @fileno(ptr noundef %12104) #11
  %12106 = call i32 @isatty(i32 noundef %12105) #11
  %12107 = icmp ne i32 %12106, 0
  br i1 %12107, label %12108, label %12125

12108:                                            ; preds = %12103
  %12109 = load i32, ptr %293, align 4, !tbaa !5
  %12110 = call ptr @__errno_location() #12
  store i32 %12109, ptr %12110, align 4, !tbaa !5
  %12111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12112 = load i32, ptr @test_count, align 4, !tbaa !5
  %12113 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12114 = load i32, ptr %12113, align 4, !tbaa !5
  %12115 = call ptr @s2n_strerror(i32 noundef %12114, ptr noundef @.str.4)
  %12116 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12117 = load i32, ptr %12116, align 4, !tbaa !5
  %12118 = call ptr @s2n_strerror_debug(i32 noundef %12117, ptr noundef @.str.4)
  %12119 = call ptr @__errno_location() #12
  %12120 = load i32, ptr %12119, align 4, !tbaa !5
  %12121 = call ptr @strerror(i32 noundef %12120) #11
  %12122 = call ptr @__errno_location() #12
  %12123 = load i32, ptr %12122, align 4, !tbaa !5
  %12124 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12111, ptr noundef @.str.2, i32 noundef %12112, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 533, ptr noundef %12115, ptr noundef %12118, ptr noundef %12121, i32 noundef %12123) #11
  br label %12142

12125:                                            ; preds = %12103, %12096
  %12126 = load i32, ptr %293, align 4, !tbaa !5
  %12127 = call ptr @__errno_location() #12
  store i32 %12126, ptr %12127, align 4, !tbaa !5
  %12128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12129 = load i32, ptr @test_count, align 4, !tbaa !5
  %12130 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12131 = load i32, ptr %12130, align 4, !tbaa !5
  %12132 = call ptr @s2n_strerror(i32 noundef %12131, ptr noundef @.str.4)
  %12133 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12134 = load i32, ptr %12133, align 4, !tbaa !5
  %12135 = call ptr @s2n_strerror_debug(i32 noundef %12134, ptr noundef @.str.4)
  %12136 = call ptr @__errno_location() #12
  %12137 = load i32, ptr %12136, align 4, !tbaa !5
  %12138 = call ptr @strerror(i32 noundef %12137) #11
  %12139 = call ptr @__errno_location() #12
  %12140 = load i32, ptr %12139, align 4, !tbaa !5
  %12141 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12128, ptr noundef @.str.5, i32 noundef %12129, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 533, ptr noundef %12132, ptr noundef %12135, ptr noundef %12138, i32 noundef %12140) #11
  br label %12142

12142:                                            ; preds = %12125, %12108
  call void @llvm.lifetime.end.p0(i64 4, ptr %293) #11
  br label %12143

12143:                                            ; preds = %12142
  br label %12144

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

12145:                                            ; No predecessors!
  br label %12146

12146:                                            ; preds = %12145
  br label %12147

12147:                                            ; preds = %12146, %12088
  br label %12148

12148:                                            ; preds = %12147
  br label %12149

12149:                                            ; preds = %12148
  br label %12150

12150:                                            ; preds = %12149
  %12151 = load i32, ptr @test_count, align 4, !tbaa !5
  %12152 = add nsw i32 %12151, 1
  store i32 %12152, ptr @test_count, align 4, !tbaa !5
  %12153 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12154 = load i32, ptr %12153, align 4, !tbaa !5
  %12155 = call ptr @s2n_strerror_debug(i32 noundef %12154, ptr noundef @.str.4)
  %12156 = icmp eq ptr %12155, null
  br i1 %12156, label %12157, label %12210

12157:                                            ; preds = %12150
  br label %12158

12158:                                            ; preds = %12157
  br label %12159

12159:                                            ; preds = %12158
  call void @llvm.lifetime.start.p0(i64 4, ptr %294) #11
  %12160 = call ptr @__errno_location() #12
  %12161 = load i32, ptr %12160, align 4, !tbaa !5
  store i32 %12161, ptr %294, align 4, !tbaa !5
  %12162 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12163 = call i32 @s2n_print_stacktrace(ptr noundef %12162)
  %12164 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12165 = trunc i8 %12164 to i1
  br i1 %12165, label %12166, label %12188

12166:                                            ; preds = %12159
  %12167 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12168 = call i32 @fileno(ptr noundef %12167) #11
  %12169 = call i32 @isatty(i32 noundef %12168) #11
  %12170 = icmp ne i32 %12169, 0
  br i1 %12170, label %12171, label %12188

12171:                                            ; preds = %12166
  %12172 = load i32, ptr %294, align 4, !tbaa !5
  %12173 = call ptr @__errno_location() #12
  store i32 %12172, ptr %12173, align 4, !tbaa !5
  %12174 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12175 = load i32, ptr @test_count, align 4, !tbaa !5
  %12176 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12177 = load i32, ptr %12176, align 4, !tbaa !5
  %12178 = call ptr @s2n_strerror(i32 noundef %12177, ptr noundef @.str.4)
  %12179 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12180 = load i32, ptr %12179, align 4, !tbaa !5
  %12181 = call ptr @s2n_strerror_debug(i32 noundef %12180, ptr noundef @.str.4)
  %12182 = call ptr @__errno_location() #12
  %12183 = load i32, ptr %12182, align 4, !tbaa !5
  %12184 = call ptr @strerror(i32 noundef %12183) #11
  %12185 = call ptr @__errno_location() #12
  %12186 = load i32, ptr %12185, align 4, !tbaa !5
  %12187 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12174, ptr noundef @.str.2, i32 noundef %12175, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 533, ptr noundef %12178, ptr noundef %12181, ptr noundef %12184, i32 noundef %12186) #11
  br label %12205

12188:                                            ; preds = %12166, %12159
  %12189 = load i32, ptr %294, align 4, !tbaa !5
  %12190 = call ptr @__errno_location() #12
  store i32 %12189, ptr %12190, align 4, !tbaa !5
  %12191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12192 = load i32, ptr @test_count, align 4, !tbaa !5
  %12193 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12194 = load i32, ptr %12193, align 4, !tbaa !5
  %12195 = call ptr @s2n_strerror(i32 noundef %12194, ptr noundef @.str.4)
  %12196 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12197 = load i32, ptr %12196, align 4, !tbaa !5
  %12198 = call ptr @s2n_strerror_debug(i32 noundef %12197, ptr noundef @.str.4)
  %12199 = call ptr @__errno_location() #12
  %12200 = load i32, ptr %12199, align 4, !tbaa !5
  %12201 = call ptr @strerror(i32 noundef %12200) #11
  %12202 = call ptr @__errno_location() #12
  %12203 = load i32, ptr %12202, align 4, !tbaa !5
  %12204 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12191, ptr noundef @.str.5, i32 noundef %12192, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 533, ptr noundef %12195, ptr noundef %12198, ptr noundef %12201, i32 noundef %12203) #11
  br label %12205

12205:                                            ; preds = %12188, %12171
  call void @llvm.lifetime.end.p0(i64 4, ptr %294) #11
  br label %12206

12206:                                            ; preds = %12205
  br label %12207

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

12208:                                            ; No predecessors!
  br label %12209

12209:                                            ; preds = %12208
  br label %12210

12210:                                            ; preds = %12209, %12150
  br label %12211

12211:                                            ; preds = %12210
  br label %12212

12212:                                            ; preds = %12211
  br label %12213

12213:                                            ; preds = %12212
  br label %12214

12214:                                            ; preds = %12213
  br label %12215

12215:                                            ; preds = %12214
  %12216 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12216, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12217 = call ptr @__errno_location() #12
  store i32 0, ptr %12217, align 4, !tbaa !5
  br label %12218

12218:                                            ; preds = %12215
  br label %12219

12219:                                            ; preds = %12218
  br label %12220

12220:                                            ; preds = %12219
  br label %12221

12221:                                            ; preds = %12220
  br label %12222

12222:                                            ; preds = %12221
  br label %12223

12223:                                            ; preds = %12222
  br label %12224

12224:                                            ; preds = %12223
  %12225 = load i32, ptr @test_count, align 4, !tbaa !5
  %12226 = add nsw i32 %12225, 1
  store i32 %12226, ptr @test_count, align 4, !tbaa !5
  %12227 = load ptr, ptr %289, align 8, !tbaa !9
  %12228 = call i32 @s2n_fingerprint_get_raw(ptr noundef %12227, i32 noundef 100, ptr noundef null, ptr noundef %291)
  %12229 = icmp eq i32 %12228, -1
  br i1 %12229, label %12283, label %12230

12230:                                            ; preds = %12224
  br label %12231

12231:                                            ; preds = %12230
  br label %12232

12232:                                            ; preds = %12231
  call void @llvm.lifetime.start.p0(i64 4, ptr %295) #11
  %12233 = call ptr @__errno_location() #12
  %12234 = load i32, ptr %12233, align 4, !tbaa !5
  store i32 %12234, ptr %295, align 4, !tbaa !5
  %12235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12236 = call i32 @s2n_print_stacktrace(ptr noundef %12235)
  %12237 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12238 = trunc i8 %12237 to i1
  br i1 %12238, label %12239, label %12261

12239:                                            ; preds = %12232
  %12240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12241 = call i32 @fileno(ptr noundef %12240) #11
  %12242 = call i32 @isatty(i32 noundef %12241) #11
  %12243 = icmp ne i32 %12242, 0
  br i1 %12243, label %12244, label %12261

12244:                                            ; preds = %12239
  %12245 = load i32, ptr %295, align 4, !tbaa !5
  %12246 = call ptr @__errno_location() #12
  store i32 %12245, ptr %12246, align 4, !tbaa !5
  %12247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12248 = load i32, ptr @test_count, align 4, !tbaa !5
  %12249 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12250 = load i32, ptr %12249, align 4, !tbaa !5
  %12251 = call ptr @s2n_strerror(i32 noundef %12250, ptr noundef @.str.4)
  %12252 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12253 = load i32, ptr %12252, align 4, !tbaa !5
  %12254 = call ptr @s2n_strerror_debug(i32 noundef %12253, ptr noundef @.str.4)
  %12255 = call ptr @__errno_location() #12
  %12256 = load i32, ptr %12255, align 4, !tbaa !5
  %12257 = call ptr @strerror(i32 noundef %12256) #11
  %12258 = call ptr @__errno_location() #12
  %12259 = load i32, ptr %12258, align 4, !tbaa !5
  %12260 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12247, ptr noundef @.str.2, i32 noundef %12248, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12251, ptr noundef %12254, ptr noundef %12257, i32 noundef %12259) #11
  br label %12278

12261:                                            ; preds = %12239, %12232
  %12262 = load i32, ptr %295, align 4, !tbaa !5
  %12263 = call ptr @__errno_location() #12
  store i32 %12262, ptr %12263, align 4, !tbaa !5
  %12264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12265 = load i32, ptr @test_count, align 4, !tbaa !5
  %12266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12267 = load i32, ptr %12266, align 4, !tbaa !5
  %12268 = call ptr @s2n_strerror(i32 noundef %12267, ptr noundef @.str.4)
  %12269 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12270 = load i32, ptr %12269, align 4, !tbaa !5
  %12271 = call ptr @s2n_strerror_debug(i32 noundef %12270, ptr noundef @.str.4)
  %12272 = call ptr @__errno_location() #12
  %12273 = load i32, ptr %12272, align 4, !tbaa !5
  %12274 = call ptr @strerror(i32 noundef %12273) #11
  %12275 = call ptr @__errno_location() #12
  %12276 = load i32, ptr %12275, align 4, !tbaa !5
  %12277 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12264, ptr noundef @.str.5, i32 noundef %12265, ptr noundef @.str.101, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12268, ptr noundef %12271, ptr noundef %12274, i32 noundef %12276) #11
  br label %12278

12278:                                            ; preds = %12261, %12244
  call void @llvm.lifetime.end.p0(i64 4, ptr %295) #11
  br label %12279

12279:                                            ; preds = %12278
  br label %12280

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

12281:                                            ; No predecessors!
  br label %12282

12282:                                            ; preds = %12281
  br label %12283

12283:                                            ; preds = %12282, %12224
  br label %12284

12284:                                            ; preds = %12283
  br label %12285

12285:                                            ; preds = %12284
  br label %12286

12286:                                            ; preds = %12285
  %12287 = load i32, ptr @test_count, align 4, !tbaa !5
  %12288 = add nsw i32 %12287, 1
  store i32 %12288, ptr @test_count, align 4, !tbaa !5
  %12289 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12290 = load i32, ptr %12289, align 4, !tbaa !5
  %12291 = icmp eq i32 %12290, 469762089
  br i1 %12291, label %12345, label %12292

12292:                                            ; preds = %12286
  br label %12293

12293:                                            ; preds = %12292
  br label %12294

12294:                                            ; preds = %12293
  call void @llvm.lifetime.start.p0(i64 4, ptr %296) #11
  %12295 = call ptr @__errno_location() #12
  %12296 = load i32, ptr %12295, align 4, !tbaa !5
  store i32 %12296, ptr %296, align 4, !tbaa !5
  %12297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12298 = call i32 @s2n_print_stacktrace(ptr noundef %12297)
  %12299 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12300 = trunc i8 %12299 to i1
  br i1 %12300, label %12301, label %12323

12301:                                            ; preds = %12294
  %12302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12303 = call i32 @fileno(ptr noundef %12302) #11
  %12304 = call i32 @isatty(i32 noundef %12303) #11
  %12305 = icmp ne i32 %12304, 0
  br i1 %12305, label %12306, label %12323

12306:                                            ; preds = %12301
  %12307 = load i32, ptr %296, align 4, !tbaa !5
  %12308 = call ptr @__errno_location() #12
  store i32 %12307, ptr %12308, align 4, !tbaa !5
  %12309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12310 = load i32, ptr @test_count, align 4, !tbaa !5
  %12311 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12312 = load i32, ptr %12311, align 4, !tbaa !5
  %12313 = call ptr @s2n_strerror(i32 noundef %12312, ptr noundef @.str.4)
  %12314 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12315 = load i32, ptr %12314, align 4, !tbaa !5
  %12316 = call ptr @s2n_strerror_debug(i32 noundef %12315, ptr noundef @.str.4)
  %12317 = call ptr @__errno_location() #12
  %12318 = load i32, ptr %12317, align 4, !tbaa !5
  %12319 = call ptr @strerror(i32 noundef %12318) #11
  %12320 = call ptr @__errno_location() #12
  %12321 = load i32, ptr %12320, align 4, !tbaa !5
  %12322 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12309, ptr noundef @.str.2, i32 noundef %12310, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12313, ptr noundef %12316, ptr noundef %12319, i32 noundef %12321) #11
  br label %12340

12323:                                            ; preds = %12301, %12294
  %12324 = load i32, ptr %296, align 4, !tbaa !5
  %12325 = call ptr @__errno_location() #12
  store i32 %12324, ptr %12325, align 4, !tbaa !5
  %12326 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12327 = load i32, ptr @test_count, align 4, !tbaa !5
  %12328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12329 = load i32, ptr %12328, align 4, !tbaa !5
  %12330 = call ptr @s2n_strerror(i32 noundef %12329, ptr noundef @.str.4)
  %12331 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12332 = load i32, ptr %12331, align 4, !tbaa !5
  %12333 = call ptr @s2n_strerror_debug(i32 noundef %12332, ptr noundef @.str.4)
  %12334 = call ptr @__errno_location() #12
  %12335 = load i32, ptr %12334, align 4, !tbaa !5
  %12336 = call ptr @strerror(i32 noundef %12335) #11
  %12337 = call ptr @__errno_location() #12
  %12338 = load i32, ptr %12337, align 4, !tbaa !5
  %12339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12326, ptr noundef @.str.5, i32 noundef %12327, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12330, ptr noundef %12333, ptr noundef %12336, i32 noundef %12338) #11
  br label %12340

12340:                                            ; preds = %12323, %12306
  call void @llvm.lifetime.end.p0(i64 4, ptr %296) #11
  br label %12341

12341:                                            ; preds = %12340
  br label %12342

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

12343:                                            ; No predecessors!
  br label %12344

12344:                                            ; preds = %12343
  br label %12345

12345:                                            ; preds = %12344, %12286
  br label %12346

12346:                                            ; preds = %12345
  br label %12347

12347:                                            ; preds = %12346
  br label %12348

12348:                                            ; preds = %12347
  %12349 = load i32, ptr @test_count, align 4, !tbaa !5
  %12350 = add nsw i32 %12349, 1
  store i32 %12350, ptr @test_count, align 4, !tbaa !5
  %12351 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12352 = load i32, ptr %12351, align 4, !tbaa !5
  %12353 = call ptr @s2n_strerror_debug(i32 noundef %12352, ptr noundef @.str.4)
  %12354 = icmp eq ptr %12353, null
  br i1 %12354, label %12355, label %12408

12355:                                            ; preds = %12348
  br label %12356

12356:                                            ; preds = %12355
  br label %12357

12357:                                            ; preds = %12356
  call void @llvm.lifetime.start.p0(i64 4, ptr %297) #11
  %12358 = call ptr @__errno_location() #12
  %12359 = load i32, ptr %12358, align 4, !tbaa !5
  store i32 %12359, ptr %297, align 4, !tbaa !5
  %12360 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12361 = call i32 @s2n_print_stacktrace(ptr noundef %12360)
  %12362 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12363 = trunc i8 %12362 to i1
  br i1 %12363, label %12364, label %12386

12364:                                            ; preds = %12357
  %12365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12366 = call i32 @fileno(ptr noundef %12365) #11
  %12367 = call i32 @isatty(i32 noundef %12366) #11
  %12368 = icmp ne i32 %12367, 0
  br i1 %12368, label %12369, label %12386

12369:                                            ; preds = %12364
  %12370 = load i32, ptr %297, align 4, !tbaa !5
  %12371 = call ptr @__errno_location() #12
  store i32 %12370, ptr %12371, align 4, !tbaa !5
  %12372 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12373 = load i32, ptr @test_count, align 4, !tbaa !5
  %12374 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12375 = load i32, ptr %12374, align 4, !tbaa !5
  %12376 = call ptr @s2n_strerror(i32 noundef %12375, ptr noundef @.str.4)
  %12377 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12378 = load i32, ptr %12377, align 4, !tbaa !5
  %12379 = call ptr @s2n_strerror_debug(i32 noundef %12378, ptr noundef @.str.4)
  %12380 = call ptr @__errno_location() #12
  %12381 = load i32, ptr %12380, align 4, !tbaa !5
  %12382 = call ptr @strerror(i32 noundef %12381) #11
  %12383 = call ptr @__errno_location() #12
  %12384 = load i32, ptr %12383, align 4, !tbaa !5
  %12385 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12372, ptr noundef @.str.2, i32 noundef %12373, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12376, ptr noundef %12379, ptr noundef %12382, i32 noundef %12384) #11
  br label %12403

12386:                                            ; preds = %12364, %12357
  %12387 = load i32, ptr %297, align 4, !tbaa !5
  %12388 = call ptr @__errno_location() #12
  store i32 %12387, ptr %12388, align 4, !tbaa !5
  %12389 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12390 = load i32, ptr @test_count, align 4, !tbaa !5
  %12391 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12392 = load i32, ptr %12391, align 4, !tbaa !5
  %12393 = call ptr @s2n_strerror(i32 noundef %12392, ptr noundef @.str.4)
  %12394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12395 = load i32, ptr %12394, align 4, !tbaa !5
  %12396 = call ptr @s2n_strerror_debug(i32 noundef %12395, ptr noundef @.str.4)
  %12397 = call ptr @__errno_location() #12
  %12398 = load i32, ptr %12397, align 4, !tbaa !5
  %12399 = call ptr @strerror(i32 noundef %12398) #11
  %12400 = call ptr @__errno_location() #12
  %12401 = load i32, ptr %12400, align 4, !tbaa !5
  %12402 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12389, ptr noundef @.str.5, i32 noundef %12390, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 536, ptr noundef %12393, ptr noundef %12396, ptr noundef %12399, i32 noundef %12401) #11
  br label %12403

12403:                                            ; preds = %12386, %12369
  call void @llvm.lifetime.end.p0(i64 4, ptr %297) #11
  br label %12404

12404:                                            ; preds = %12403
  br label %12405

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

12406:                                            ; No predecessors!
  br label %12407

12407:                                            ; preds = %12406
  br label %12408

12408:                                            ; preds = %12407, %12348
  br label %12409

12409:                                            ; preds = %12408
  br label %12410

12410:                                            ; preds = %12409
  br label %12411

12411:                                            ; preds = %12410
  br label %12412

12412:                                            ; preds = %12411
  br label %12413

12413:                                            ; preds = %12412
  %12414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12414, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12415 = call ptr @__errno_location() #12
  store i32 0, ptr %12415, align 4, !tbaa !5
  br label %12416

12416:                                            ; preds = %12413
  br label %12417

12417:                                            ; preds = %12416
  br label %12418

12418:                                            ; preds = %12417
  br label %12419

12419:                                            ; preds = %12418
  br label %12420

12420:                                            ; preds = %12419
  br label %12421

12421:                                            ; preds = %12420
  br label %12422

12422:                                            ; preds = %12421
  %12423 = load i32, ptr @test_count, align 4, !tbaa !5
  %12424 = add nsw i32 %12423, 1
  store i32 %12424, ptr @test_count, align 4, !tbaa !5
  %12425 = load ptr, ptr %289, align 8, !tbaa !9
  %12426 = getelementptr inbounds [100 x i8], ptr %290, i64 0, i64 0
  %12427 = call i32 @s2n_fingerprint_get_raw(ptr noundef %12425, i32 noundef 100, ptr noundef %12426, ptr noundef null)
  %12428 = icmp eq i32 %12427, -1
  br i1 %12428, label %12482, label %12429

12429:                                            ; preds = %12422
  br label %12430

12430:                                            ; preds = %12429
  br label %12431

12431:                                            ; preds = %12430
  call void @llvm.lifetime.start.p0(i64 4, ptr %298) #11
  %12432 = call ptr @__errno_location() #12
  %12433 = load i32, ptr %12432, align 4, !tbaa !5
  store i32 %12433, ptr %298, align 4, !tbaa !5
  %12434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12435 = call i32 @s2n_print_stacktrace(ptr noundef %12434)
  %12436 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12437 = trunc i8 %12436 to i1
  br i1 %12437, label %12438, label %12460

12438:                                            ; preds = %12431
  %12439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12440 = call i32 @fileno(ptr noundef %12439) #11
  %12441 = call i32 @isatty(i32 noundef %12440) #11
  %12442 = icmp ne i32 %12441, 0
  br i1 %12442, label %12443, label %12460

12443:                                            ; preds = %12438
  %12444 = load i32, ptr %298, align 4, !tbaa !5
  %12445 = call ptr @__errno_location() #12
  store i32 %12444, ptr %12445, align 4, !tbaa !5
  %12446 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12447 = load i32, ptr @test_count, align 4, !tbaa !5
  %12448 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12449 = load i32, ptr %12448, align 4, !tbaa !5
  %12450 = call ptr @s2n_strerror(i32 noundef %12449, ptr noundef @.str.4)
  %12451 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12452 = load i32, ptr %12451, align 4, !tbaa !5
  %12453 = call ptr @s2n_strerror_debug(i32 noundef %12452, ptr noundef @.str.4)
  %12454 = call ptr @__errno_location() #12
  %12455 = load i32, ptr %12454, align 4, !tbaa !5
  %12456 = call ptr @strerror(i32 noundef %12455) #11
  %12457 = call ptr @__errno_location() #12
  %12458 = load i32, ptr %12457, align 4, !tbaa !5
  %12459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12446, ptr noundef @.str.2, i32 noundef %12447, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 539, ptr noundef %12450, ptr noundef %12453, ptr noundef %12456, i32 noundef %12458) #11
  br label %12477

12460:                                            ; preds = %12438, %12431
  %12461 = load i32, ptr %298, align 4, !tbaa !5
  %12462 = call ptr @__errno_location() #12
  store i32 %12461, ptr %12462, align 4, !tbaa !5
  %12463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12464 = load i32, ptr @test_count, align 4, !tbaa !5
  %12465 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12466 = load i32, ptr %12465, align 4, !tbaa !5
  %12467 = call ptr @s2n_strerror(i32 noundef %12466, ptr noundef @.str.4)
  %12468 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12469 = load i32, ptr %12468, align 4, !tbaa !5
  %12470 = call ptr @s2n_strerror_debug(i32 noundef %12469, ptr noundef @.str.4)
  %12471 = call ptr @__errno_location() #12
  %12472 = load i32, ptr %12471, align 4, !tbaa !5
  %12473 = call ptr @strerror(i32 noundef %12472) #11
  %12474 = call ptr @__errno_location() #12
  %12475 = load i32, ptr %12474, align 4, !tbaa !5
  %12476 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12463, ptr noundef @.str.5, i32 noundef %12464, ptr noundef @.str.102, ptr noundef @.str.1, i32 noundef 539, ptr noundef %12467, ptr noundef %12470, ptr noundef %12473, i32 noundef %12475) #11
  br label %12477

12477:                                            ; preds = %12460, %12443
  call void @llvm.lifetime.end.p0(i64 4, ptr %298) #11
  br label %12478

12478:                                            ; preds = %12477
  br label %12479

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

12480:                                            ; No predecessors!
  br label %12481

12481:                                            ; preds = %12480
  br label %12482

12482:                                            ; preds = %12481, %12422
  br label %12483

12483:                                            ; preds = %12482
  br label %12484

12484:                                            ; preds = %12483
  br label %12485

12485:                                            ; preds = %12484
  %12486 = load i32, ptr @test_count, align 4, !tbaa !5
  %12487 = add nsw i32 %12486, 1
  store i32 %12487, ptr @test_count, align 4, !tbaa !5
  %12488 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12489 = load i32, ptr %12488, align 4, !tbaa !5
  %12490 = icmp eq i32 %12489, 469762089
  br i1 %12490, label %12544, label %12491

12491:                                            ; preds = %12485
  br label %12492

12492:                                            ; preds = %12491
  br label %12493

12493:                                            ; preds = %12492
  call void @llvm.lifetime.start.p0(i64 4, ptr %299) #11
  %12494 = call ptr @__errno_location() #12
  %12495 = load i32, ptr %12494, align 4, !tbaa !5
  store i32 %12495, ptr %299, align 4, !tbaa !5
  %12496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12497 = call i32 @s2n_print_stacktrace(ptr noundef %12496)
  %12498 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12499 = trunc i8 %12498 to i1
  br i1 %12499, label %12500, label %12522

12500:                                            ; preds = %12493
  %12501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12502 = call i32 @fileno(ptr noundef %12501) #11
  %12503 = call i32 @isatty(i32 noundef %12502) #11
  %12504 = icmp ne i32 %12503, 0
  br i1 %12504, label %12505, label %12522

12505:                                            ; preds = %12500
  %12506 = load i32, ptr %299, align 4, !tbaa !5
  %12507 = call ptr @__errno_location() #12
  store i32 %12506, ptr %12507, align 4, !tbaa !5
  %12508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12509 = load i32, ptr @test_count, align 4, !tbaa !5
  %12510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12511 = load i32, ptr %12510, align 4, !tbaa !5
  %12512 = call ptr @s2n_strerror(i32 noundef %12511, ptr noundef @.str.4)
  %12513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12514 = load i32, ptr %12513, align 4, !tbaa !5
  %12515 = call ptr @s2n_strerror_debug(i32 noundef %12514, ptr noundef @.str.4)
  %12516 = call ptr @__errno_location() #12
  %12517 = load i32, ptr %12516, align 4, !tbaa !5
  %12518 = call ptr @strerror(i32 noundef %12517) #11
  %12519 = call ptr @__errno_location() #12
  %12520 = load i32, ptr %12519, align 4, !tbaa !5
  %12521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12508, ptr noundef @.str.2, i32 noundef %12509, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 539, ptr noundef %12512, ptr noundef %12515, ptr noundef %12518, i32 noundef %12520) #11
  br label %12539

12522:                                            ; preds = %12500, %12493
  %12523 = load i32, ptr %299, align 4, !tbaa !5
  %12524 = call ptr @__errno_location() #12
  store i32 %12523, ptr %12524, align 4, !tbaa !5
  %12525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12526 = load i32, ptr @test_count, align 4, !tbaa !5
  %12527 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12528 = load i32, ptr %12527, align 4, !tbaa !5
  %12529 = call ptr @s2n_strerror(i32 noundef %12528, ptr noundef @.str.4)
  %12530 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12531 = load i32, ptr %12530, align 4, !tbaa !5
  %12532 = call ptr @s2n_strerror_debug(i32 noundef %12531, ptr noundef @.str.4)
  %12533 = call ptr @__errno_location() #12
  %12534 = load i32, ptr %12533, align 4, !tbaa !5
  %12535 = call ptr @strerror(i32 noundef %12534) #11
  %12536 = call ptr @__errno_location() #12
  %12537 = load i32, ptr %12536, align 4, !tbaa !5
  %12538 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12525, ptr noundef @.str.5, i32 noundef %12526, ptr noundef @.str.52, ptr noundef @.str.1, i32 noundef 539, ptr noundef %12529, ptr noundef %12532, ptr noundef %12535, i32 noundef %12537) #11
  br label %12539

12539:                                            ; preds = %12522, %12505
  call void @llvm.lifetime.end.p0(i64 4, ptr %299) #11
  br label %12540

12540:                                            ; preds = %12539
  br label %12541

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

12542:                                            ; No predecessors!
  br label %12543

12543:                                            ; preds = %12542
  br label %12544

12544:                                            ; preds = %12543, %12485
  br label %12545

12545:                                            ; preds = %12544
  br label %12546

12546:                                            ; preds = %12545
  br label %12547

12547:                                            ; preds = %12546
  %12548 = load i32, ptr @test_count, align 4, !tbaa !5
  %12549 = add nsw i32 %12548, 1
  store i32 %12549, ptr @test_count, align 4, !tbaa !5
  %12550 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12551 = load i32, ptr %12550, align 4, !tbaa !5
  %12552 = call ptr @s2n_strerror_debug(i32 noundef %12551, ptr noundef @.str.4)
  %12553 = icmp eq ptr %12552, null
  br i1 %12553, label %12554, label %12607

12554:                                            ; preds = %12547
  br label %12555

12555:                                            ; preds = %12554
  br label %12556

12556:                                            ; preds = %12555
  call void @llvm.lifetime.start.p0(i64 4, ptr %300) #11
  %12557 = call ptr @__errno_location() #12
  %12558 = load i32, ptr %12557, align 4, !tbaa !5
  store i32 %12558, ptr %300, align 4, !tbaa !5
  %12559 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12560 = call i32 @s2n_print_stacktrace(ptr noundef %12559)
  %12561 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12562 = trunc i8 %12561 to i1
  br i1 %12562, label %12563, label %12585

12563:                                            ; preds = %12556
  %12564 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12565 = call i32 @fileno(ptr noundef %12564) #11
  %12566 = call i32 @isatty(i32 noundef %12565) #11
  %12567 = icmp ne i32 %12566, 0
  br i1 %12567, label %12568, label %12585

12568:                                            ; preds = %12563
  %12569 = load i32, ptr %300, align 4, !tbaa !5
  %12570 = call ptr @__errno_location() #12
  store i32 %12569, ptr %12570, align 4, !tbaa !5
  %12571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12572 = load i32, ptr @test_count, align 4, !tbaa !5
  %12573 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12574 = load i32, ptr %12573, align 4, !tbaa !5
  %12575 = call ptr @s2n_strerror(i32 noundef %12574, ptr noundef @.str.4)
  %12576 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12577 = load i32, ptr %12576, align 4, !tbaa !5
  %12578 = call ptr @s2n_strerror_debug(i32 noundef %12577, ptr noundef @.str.4)
  %12579 = call ptr @__errno_location() #12
  %12580 = load i32, ptr %12579, align 4, !tbaa !5
  %12581 = call ptr @strerror(i32 noundef %12580) #11
  %12582 = call ptr @__errno_location() #12
  %12583 = load i32, ptr %12582, align 4, !tbaa !5
  %12584 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12571, ptr noundef @.str.2, i32 noundef %12572, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 539, ptr noundef %12575, ptr noundef %12578, ptr noundef %12581, i32 noundef %12583) #11
  br label %12602

12585:                                            ; preds = %12563, %12556
  %12586 = load i32, ptr %300, align 4, !tbaa !5
  %12587 = call ptr @__errno_location() #12
  store i32 %12586, ptr %12587, align 4, !tbaa !5
  %12588 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12589 = load i32, ptr @test_count, align 4, !tbaa !5
  %12590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12591 = load i32, ptr %12590, align 4, !tbaa !5
  %12592 = call ptr @s2n_strerror(i32 noundef %12591, ptr noundef @.str.4)
  %12593 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12594 = load i32, ptr %12593, align 4, !tbaa !5
  %12595 = call ptr @s2n_strerror_debug(i32 noundef %12594, ptr noundef @.str.4)
  %12596 = call ptr @__errno_location() #12
  %12597 = load i32, ptr %12596, align 4, !tbaa !5
  %12598 = call ptr @strerror(i32 noundef %12597) #11
  %12599 = call ptr @__errno_location() #12
  %12600 = load i32, ptr %12599, align 4, !tbaa !5
  %12601 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12588, ptr noundef @.str.5, i32 noundef %12589, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 539, ptr noundef %12592, ptr noundef %12595, ptr noundef %12598, i32 noundef %12600) #11
  br label %12602

12602:                                            ; preds = %12585, %12568
  call void @llvm.lifetime.end.p0(i64 4, ptr %300) #11
  br label %12603

12603:                                            ; preds = %12602
  br label %12604

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

12605:                                            ; No predecessors!
  br label %12606

12606:                                            ; preds = %12605
  br label %12607

12607:                                            ; preds = %12606, %12547
  br label %12608

12608:                                            ; preds = %12607
  br label %12609

12609:                                            ; preds = %12608
  br label %12610

12610:                                            ; preds = %12609
  br label %12611

12611:                                            ; preds = %12610
  br label %12612

12612:                                            ; preds = %12611
  %12613 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %12613, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %12614 = call ptr @__errno_location() #12
  store i32 0, ptr %12614, align 4, !tbaa !5
  br label %12615

12615:                                            ; preds = %12612
  br label %12616

12616:                                            ; preds = %12615
  br label %12617

12617:                                            ; preds = %12616
  br label %12618

12618:                                            ; preds = %12617
  call void @llvm.lifetime.end.p0(i64 4, ptr %291) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %290) #11
  %12619 = call i32 @s2n_fingerprint_free(ptr noundef %289)
  call void @llvm.lifetime.end.p0(i64 8, ptr %289) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %301) #11
  %12620 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %12620, ptr %301, align 8, !tbaa !9
  br label %12621

12621:                                            ; preds = %12618
  %12622 = load i32, ptr @test_count, align 4, !tbaa !5
  %12623 = add nsw i32 %12622, 1
  store i32 %12623, ptr @test_count, align 4, !tbaa !5
  %12624 = load ptr, ptr %301, align 8, !tbaa !9
  %12625 = load ptr, ptr %14, align 8, !tbaa !9
  %12626 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %12624, ptr noundef %12625)
  %12627 = icmp eq i32 %12626, -1
  br i1 %12627, label %12628, label %12681

12628:                                            ; preds = %12621
  br label %12629

12629:                                            ; preds = %12628
  br label %12630

12630:                                            ; preds = %12629
  call void @llvm.lifetime.start.p0(i64 4, ptr %302) #11
  %12631 = call ptr @__errno_location() #12
  %12632 = load i32, ptr %12631, align 4, !tbaa !5
  store i32 %12632, ptr %302, align 4, !tbaa !5
  %12633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12634 = call i32 @s2n_print_stacktrace(ptr noundef %12633)
  %12635 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12636 = trunc i8 %12635 to i1
  br i1 %12636, label %12637, label %12659

12637:                                            ; preds = %12630
  %12638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12639 = call i32 @fileno(ptr noundef %12638) #11
  %12640 = call i32 @isatty(i32 noundef %12639) #11
  %12641 = icmp ne i32 %12640, 0
  br i1 %12641, label %12642, label %12659

12642:                                            ; preds = %12637
  %12643 = load i32, ptr %302, align 4, !tbaa !5
  %12644 = call ptr @__errno_location() #12
  store i32 %12643, ptr %12644, align 4, !tbaa !5
  %12645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12646 = load i32, ptr @test_count, align 4, !tbaa !5
  %12647 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12648 = load i32, ptr %12647, align 4, !tbaa !5
  %12649 = call ptr @s2n_strerror(i32 noundef %12648, ptr noundef @.str.4)
  %12650 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12651 = load i32, ptr %12650, align 4, !tbaa !5
  %12652 = call ptr @s2n_strerror_debug(i32 noundef %12651, ptr noundef @.str.4)
  %12653 = call ptr @__errno_location() #12
  %12654 = load i32, ptr %12653, align 4, !tbaa !5
  %12655 = call ptr @strerror(i32 noundef %12654) #11
  %12656 = call ptr @__errno_location() #12
  %12657 = load i32, ptr %12656, align 4, !tbaa !5
  %12658 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12645, ptr noundef @.str.2, i32 noundef %12646, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 546, ptr noundef %12649, ptr noundef %12652, ptr noundef %12655, i32 noundef %12657) #11
  br label %12676

12659:                                            ; preds = %12637, %12630
  %12660 = load i32, ptr %302, align 4, !tbaa !5
  %12661 = call ptr @__errno_location() #12
  store i32 %12660, ptr %12661, align 4, !tbaa !5
  %12662 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12663 = load i32, ptr @test_count, align 4, !tbaa !5
  %12664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12665 = load i32, ptr %12664, align 4, !tbaa !5
  %12666 = call ptr @s2n_strerror(i32 noundef %12665, ptr noundef @.str.4)
  %12667 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12668 = load i32, ptr %12667, align 4, !tbaa !5
  %12669 = call ptr @s2n_strerror_debug(i32 noundef %12668, ptr noundef @.str.4)
  %12670 = call ptr @__errno_location() #12
  %12671 = load i32, ptr %12670, align 4, !tbaa !5
  %12672 = call ptr @strerror(i32 noundef %12671) #11
  %12673 = call ptr @__errno_location() #12
  %12674 = load i32, ptr %12673, align 4, !tbaa !5
  %12675 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12662, ptr noundef @.str.5, i32 noundef %12663, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 546, ptr noundef %12666, ptr noundef %12669, ptr noundef %12672, i32 noundef %12674) #11
  br label %12676

12676:                                            ; preds = %12659, %12642
  call void @llvm.lifetime.end.p0(i64 4, ptr %302) #11
  br label %12677

12677:                                            ; preds = %12676
  br label %12678

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

12679:                                            ; No predecessors!
  br label %12680

12680:                                            ; preds = %12679
  br label %12681

12681:                                            ; preds = %12680, %12621
  br label %12682

12682:                                            ; preds = %12681
  br label %12683

12683:                                            ; preds = %12682
  call void @llvm.lifetime.start.p0(i64 100, ptr %303) #11
  call void @llvm.memset.p0.i64(ptr align 16 %303, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %304) #11
  store i32 0, ptr %304, align 4, !tbaa !5
  br label %12684

12684:                                            ; preds = %12683
  %12685 = load i32, ptr @test_count, align 4, !tbaa !5
  %12686 = add nsw i32 %12685, 1
  store i32 %12686, ptr @test_count, align 4, !tbaa !5
  %12687 = load ptr, ptr %301, align 8, !tbaa !9
  %12688 = getelementptr inbounds [100 x i8], ptr %303, i64 0, i64 0
  %12689 = call i32 @s2n_fingerprint_get_raw(ptr noundef %12687, i32 noundef 100, ptr noundef %12688, ptr noundef %304)
  %12690 = icmp eq i32 %12689, -1
  br i1 %12690, label %12691, label %12744

12691:                                            ; preds = %12684
  br label %12692

12692:                                            ; preds = %12691
  br label %12693

12693:                                            ; preds = %12692
  call void @llvm.lifetime.start.p0(i64 4, ptr %305) #11
  %12694 = call ptr @__errno_location() #12
  %12695 = load i32, ptr %12694, align 4, !tbaa !5
  store i32 %12695, ptr %305, align 4, !tbaa !5
  %12696 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12697 = call i32 @s2n_print_stacktrace(ptr noundef %12696)
  %12698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12699 = trunc i8 %12698 to i1
  br i1 %12699, label %12700, label %12722

12700:                                            ; preds = %12693
  %12701 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12702 = call i32 @fileno(ptr noundef %12701) #11
  %12703 = call i32 @isatty(i32 noundef %12702) #11
  %12704 = icmp ne i32 %12703, 0
  br i1 %12704, label %12705, label %12722

12705:                                            ; preds = %12700
  %12706 = load i32, ptr %305, align 4, !tbaa !5
  %12707 = call ptr @__errno_location() #12
  store i32 %12706, ptr %12707, align 4, !tbaa !5
  %12708 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12709 = load i32, ptr @test_count, align 4, !tbaa !5
  %12710 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12711 = load i32, ptr %12710, align 4, !tbaa !5
  %12712 = call ptr @s2n_strerror(i32 noundef %12711, ptr noundef @.str.4)
  %12713 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12714 = load i32, ptr %12713, align 4, !tbaa !5
  %12715 = call ptr @s2n_strerror_debug(i32 noundef %12714, ptr noundef @.str.4)
  %12716 = call ptr @__errno_location() #12
  %12717 = load i32, ptr %12716, align 4, !tbaa !5
  %12718 = call ptr @strerror(i32 noundef %12717) #11
  %12719 = call ptr @__errno_location() #12
  %12720 = load i32, ptr %12719, align 4, !tbaa !5
  %12721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12708, ptr noundef @.str.2, i32 noundef %12709, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 551, ptr noundef %12712, ptr noundef %12715, ptr noundef %12718, i32 noundef %12720) #11
  br label %12739

12722:                                            ; preds = %12700, %12693
  %12723 = load i32, ptr %305, align 4, !tbaa !5
  %12724 = call ptr @__errno_location() #12
  store i32 %12723, ptr %12724, align 4, !tbaa !5
  %12725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12726 = load i32, ptr @test_count, align 4, !tbaa !5
  %12727 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12728 = load i32, ptr %12727, align 4, !tbaa !5
  %12729 = call ptr @s2n_strerror(i32 noundef %12728, ptr noundef @.str.4)
  %12730 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12731 = load i32, ptr %12730, align 4, !tbaa !5
  %12732 = call ptr @s2n_strerror_debug(i32 noundef %12731, ptr noundef @.str.4)
  %12733 = call ptr @__errno_location() #12
  %12734 = load i32, ptr %12733, align 4, !tbaa !5
  %12735 = call ptr @strerror(i32 noundef %12734) #11
  %12736 = call ptr @__errno_location() #12
  %12737 = load i32, ptr %12736, align 4, !tbaa !5
  %12738 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12725, ptr noundef @.str.5, i32 noundef %12726, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 551, ptr noundef %12729, ptr noundef %12732, ptr noundef %12735, i32 noundef %12737) #11
  br label %12739

12739:                                            ; preds = %12722, %12705
  call void @llvm.lifetime.end.p0(i64 4, ptr %305) #11
  br label %12740

12740:                                            ; preds = %12739
  br label %12741

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

12742:                                            ; No predecessors!
  br label %12743

12743:                                            ; preds = %12742
  br label %12744

12744:                                            ; preds = %12743, %12684
  br label %12745

12745:                                            ; preds = %12744
  br label %12746

12746:                                            ; preds = %12745
  br label %12747

12747:                                            ; preds = %12746
  %12748 = load i32, ptr @test_count, align 4, !tbaa !5
  %12749 = add nsw i32 %12748, 1
  store i32 %12749, ptr @test_count, align 4, !tbaa !5
  %12750 = load i32, ptr %304, align 4, !tbaa !5
  %12751 = icmp eq i32 %12750, 12
  br i1 %12751, label %12805, label %12752

12752:                                            ; preds = %12747
  br label %12753

12753:                                            ; preds = %12752
  br label %12754

12754:                                            ; preds = %12753
  call void @llvm.lifetime.start.p0(i64 4, ptr %306) #11
  %12755 = call ptr @__errno_location() #12
  %12756 = load i32, ptr %12755, align 4, !tbaa !5
  store i32 %12756, ptr %306, align 4, !tbaa !5
  %12757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12758 = call i32 @s2n_print_stacktrace(ptr noundef %12757)
  %12759 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12760 = trunc i8 %12759 to i1
  br i1 %12760, label %12761, label %12783

12761:                                            ; preds = %12754
  %12762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12763 = call i32 @fileno(ptr noundef %12762) #11
  %12764 = call i32 @isatty(i32 noundef %12763) #11
  %12765 = icmp ne i32 %12764, 0
  br i1 %12765, label %12766, label %12783

12766:                                            ; preds = %12761
  %12767 = load i32, ptr %306, align 4, !tbaa !5
  %12768 = call ptr @__errno_location() #12
  store i32 %12767, ptr %12768, align 4, !tbaa !5
  %12769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12770 = load i32, ptr @test_count, align 4, !tbaa !5
  %12771 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12772 = load i32, ptr %12771, align 4, !tbaa !5
  %12773 = call ptr @s2n_strerror(i32 noundef %12772, ptr noundef @.str.4)
  %12774 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12775 = load i32, ptr %12774, align 4, !tbaa !5
  %12776 = call ptr @s2n_strerror_debug(i32 noundef %12775, ptr noundef @.str.4)
  %12777 = call ptr @__errno_location() #12
  %12778 = load i32, ptr %12777, align 4, !tbaa !5
  %12779 = call ptr @strerror(i32 noundef %12778) #11
  %12780 = call ptr @__errno_location() #12
  %12781 = load i32, ptr %12780, align 4, !tbaa !5
  %12782 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12769, ptr noundef @.str.2, i32 noundef %12770, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 553, ptr noundef %12773, ptr noundef %12776, ptr noundef %12779, i32 noundef %12781) #11
  br label %12800

12783:                                            ; preds = %12761, %12754
  %12784 = load i32, ptr %306, align 4, !tbaa !5
  %12785 = call ptr @__errno_location() #12
  store i32 %12784, ptr %12785, align 4, !tbaa !5
  %12786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12787 = load i32, ptr @test_count, align 4, !tbaa !5
  %12788 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12789 = load i32, ptr %12788, align 4, !tbaa !5
  %12790 = call ptr @s2n_strerror(i32 noundef %12789, ptr noundef @.str.4)
  %12791 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12792 = load i32, ptr %12791, align 4, !tbaa !5
  %12793 = call ptr @s2n_strerror_debug(i32 noundef %12792, ptr noundef @.str.4)
  %12794 = call ptr @__errno_location() #12
  %12795 = load i32, ptr %12794, align 4, !tbaa !5
  %12796 = call ptr @strerror(i32 noundef %12795) #11
  %12797 = call ptr @__errno_location() #12
  %12798 = load i32, ptr %12797, align 4, !tbaa !5
  %12799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12786, ptr noundef @.str.5, i32 noundef %12787, ptr noundef @.str.104, ptr noundef @.str.1, i32 noundef 553, ptr noundef %12790, ptr noundef %12793, ptr noundef %12796, i32 noundef %12798) #11
  br label %12800

12800:                                            ; preds = %12783, %12766
  call void @llvm.lifetime.end.p0(i64 4, ptr %306) #11
  br label %12801

12801:                                            ; preds = %12800
  br label %12802

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

12803:                                            ; No predecessors!
  br label %12804

12804:                                            ; preds = %12803
  br label %12805

12805:                                            ; preds = %12804, %12747
  br label %12806

12806:                                            ; preds = %12805
  br label %12807

12807:                                            ; preds = %12806
  call void @llvm.lifetime.end.p0(i64 4, ptr %304) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %303) #11
  %12808 = call i32 @s2n_fingerprint_free(ptr noundef %301)
  call void @llvm.lifetime.end.p0(i64 8, ptr %301) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %307) #11
  %12809 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %12809, ptr %307, align 8, !tbaa !9
  br label %12810

12810:                                            ; preds = %12807
  %12811 = load i32, ptr @test_count, align 4, !tbaa !5
  %12812 = add nsw i32 %12811, 1
  store i32 %12812, ptr @test_count, align 4, !tbaa !5
  %12813 = load ptr, ptr %307, align 8, !tbaa !9
  %12814 = load ptr, ptr %14, align 8, !tbaa !9
  %12815 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %12813, ptr noundef %12814)
  %12816 = icmp eq i32 %12815, -1
  br i1 %12816, label %12817, label %12870

12817:                                            ; preds = %12810
  br label %12818

12818:                                            ; preds = %12817
  br label %12819

12819:                                            ; preds = %12818
  call void @llvm.lifetime.start.p0(i64 4, ptr %308) #11
  %12820 = call ptr @__errno_location() #12
  %12821 = load i32, ptr %12820, align 4, !tbaa !5
  store i32 %12821, ptr %308, align 4, !tbaa !5
  %12822 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12823 = call i32 @s2n_print_stacktrace(ptr noundef %12822)
  %12824 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12825 = trunc i8 %12824 to i1
  br i1 %12825, label %12826, label %12848

12826:                                            ; preds = %12819
  %12827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12828 = call i32 @fileno(ptr noundef %12827) #11
  %12829 = call i32 @isatty(i32 noundef %12828) #11
  %12830 = icmp ne i32 %12829, 0
  br i1 %12830, label %12831, label %12848

12831:                                            ; preds = %12826
  %12832 = load i32, ptr %308, align 4, !tbaa !5
  %12833 = call ptr @__errno_location() #12
  store i32 %12832, ptr %12833, align 4, !tbaa !5
  %12834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12835 = load i32, ptr @test_count, align 4, !tbaa !5
  %12836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12837 = load i32, ptr %12836, align 4, !tbaa !5
  %12838 = call ptr @s2n_strerror(i32 noundef %12837, ptr noundef @.str.4)
  %12839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12840 = load i32, ptr %12839, align 4, !tbaa !5
  %12841 = call ptr @s2n_strerror_debug(i32 noundef %12840, ptr noundef @.str.4)
  %12842 = call ptr @__errno_location() #12
  %12843 = load i32, ptr %12842, align 4, !tbaa !5
  %12844 = call ptr @strerror(i32 noundef %12843) #11
  %12845 = call ptr @__errno_location() #12
  %12846 = load i32, ptr %12845, align 4, !tbaa !5
  %12847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12834, ptr noundef @.str.2, i32 noundef %12835, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 560, ptr noundef %12838, ptr noundef %12841, ptr noundef %12844, i32 noundef %12846) #11
  br label %12865

12848:                                            ; preds = %12826, %12819
  %12849 = load i32, ptr %308, align 4, !tbaa !5
  %12850 = call ptr @__errno_location() #12
  store i32 %12849, ptr %12850, align 4, !tbaa !5
  %12851 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12852 = load i32, ptr @test_count, align 4, !tbaa !5
  %12853 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12854 = load i32, ptr %12853, align 4, !tbaa !5
  %12855 = call ptr @s2n_strerror(i32 noundef %12854, ptr noundef @.str.4)
  %12856 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12857 = load i32, ptr %12856, align 4, !tbaa !5
  %12858 = call ptr @s2n_strerror_debug(i32 noundef %12857, ptr noundef @.str.4)
  %12859 = call ptr @__errno_location() #12
  %12860 = load i32, ptr %12859, align 4, !tbaa !5
  %12861 = call ptr @strerror(i32 noundef %12860) #11
  %12862 = call ptr @__errno_location() #12
  %12863 = load i32, ptr %12862, align 4, !tbaa !5
  %12864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12851, ptr noundef @.str.5, i32 noundef %12852, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 560, ptr noundef %12855, ptr noundef %12858, ptr noundef %12861, i32 noundef %12863) #11
  br label %12865

12865:                                            ; preds = %12848, %12831
  call void @llvm.lifetime.end.p0(i64 4, ptr %308) #11
  br label %12866

12866:                                            ; preds = %12865
  br label %12867

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

12868:                                            ; No predecessors!
  br label %12869

12869:                                            ; preds = %12868
  br label %12870

12870:                                            ; preds = %12869, %12810
  br label %12871

12871:                                            ; preds = %12870
  br label %12872

12872:                                            ; preds = %12871
  call void @llvm.lifetime.start.p0(i64 100, ptr %309) #11
  call void @llvm.memset.p0.i64(ptr align 16 %309, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %310) #11
  store i32 0, ptr %310, align 4, !tbaa !5
  br label %12873

12873:                                            ; preds = %12872
  %12874 = load i32, ptr @test_count, align 4, !tbaa !5
  %12875 = add nsw i32 %12874, 1
  store i32 %12875, ptr @test_count, align 4, !tbaa !5
  br label %12876

12876:                                            ; preds = %12873
  br label %12877

12877:                                            ; preds = %12876
  br label %12878

12878:                                            ; preds = %12877
  br label %12879

12879:                                            ; preds = %12878
  br label %12880

12880:                                            ; preds = %12879
  %12881 = load i32, ptr @test_count, align 4, !tbaa !5
  %12882 = add nsw i32 %12881, 1
  store i32 %12882, ptr @test_count, align 4, !tbaa !5
  %12883 = load ptr, ptr %307, align 8, !tbaa !9
  %12884 = getelementptr inbounds [100 x i8], ptr %309, i64 0, i64 0
  %12885 = call i32 @s2n_fingerprint_get_raw(ptr noundef %12883, i32 noundef 0, ptr noundef %12884, ptr noundef %310)
  %12886 = icmp eq i32 %12885, -1
  br i1 %12886, label %12940, label %12887

12887:                                            ; preds = %12880
  br label %12888

12888:                                            ; preds = %12887
  br label %12889

12889:                                            ; preds = %12888
  call void @llvm.lifetime.start.p0(i64 4, ptr %311) #11
  %12890 = call ptr @__errno_location() #12
  %12891 = load i32, ptr %12890, align 4, !tbaa !5
  store i32 %12891, ptr %311, align 4, !tbaa !5
  %12892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12893 = call i32 @s2n_print_stacktrace(ptr noundef %12892)
  %12894 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12895 = trunc i8 %12894 to i1
  br i1 %12895, label %12896, label %12918

12896:                                            ; preds = %12889
  %12897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12898 = call i32 @fileno(ptr noundef %12897) #11
  %12899 = call i32 @isatty(i32 noundef %12898) #11
  %12900 = icmp ne i32 %12899, 0
  br i1 %12900, label %12901, label %12918

12901:                                            ; preds = %12896
  %12902 = load i32, ptr %311, align 4, !tbaa !5
  %12903 = call ptr @__errno_location() #12
  store i32 %12902, ptr %12903, align 4, !tbaa !5
  %12904 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12905 = load i32, ptr @test_count, align 4, !tbaa !5
  %12906 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12907 = load i32, ptr %12906, align 4, !tbaa !5
  %12908 = call ptr @s2n_strerror(i32 noundef %12907, ptr noundef @.str.4)
  %12909 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12910 = load i32, ptr %12909, align 4, !tbaa !5
  %12911 = call ptr @s2n_strerror_debug(i32 noundef %12910, ptr noundef @.str.4)
  %12912 = call ptr @__errno_location() #12
  %12913 = load i32, ptr %12912, align 4, !tbaa !5
  %12914 = call ptr @strerror(i32 noundef %12913) #11
  %12915 = call ptr @__errno_location() #12
  %12916 = load i32, ptr %12915, align 4, !tbaa !5
  %12917 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12904, ptr noundef @.str.2, i32 noundef %12905, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12908, ptr noundef %12911, ptr noundef %12914, i32 noundef %12916) #11
  br label %12935

12918:                                            ; preds = %12896, %12889
  %12919 = load i32, ptr %311, align 4, !tbaa !5
  %12920 = call ptr @__errno_location() #12
  store i32 %12919, ptr %12920, align 4, !tbaa !5
  %12921 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12922 = load i32, ptr @test_count, align 4, !tbaa !5
  %12923 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12924 = load i32, ptr %12923, align 4, !tbaa !5
  %12925 = call ptr @s2n_strerror(i32 noundef %12924, ptr noundef @.str.4)
  %12926 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12927 = load i32, ptr %12926, align 4, !tbaa !5
  %12928 = call ptr @s2n_strerror_debug(i32 noundef %12927, ptr noundef @.str.4)
  %12929 = call ptr @__errno_location() #12
  %12930 = load i32, ptr %12929, align 4, !tbaa !5
  %12931 = call ptr @strerror(i32 noundef %12930) #11
  %12932 = call ptr @__errno_location() #12
  %12933 = load i32, ptr %12932, align 4, !tbaa !5
  %12934 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12921, ptr noundef @.str.5, i32 noundef %12922, ptr noundef @.str.105, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12925, ptr noundef %12928, ptr noundef %12931, i32 noundef %12933) #11
  br label %12935

12935:                                            ; preds = %12918, %12901
  call void @llvm.lifetime.end.p0(i64 4, ptr %311) #11
  br label %12936

12936:                                            ; preds = %12935
  br label %12937

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

12938:                                            ; No predecessors!
  br label %12939

12939:                                            ; preds = %12938
  br label %12940

12940:                                            ; preds = %12939, %12880
  br label %12941

12941:                                            ; preds = %12940
  br label %12942

12942:                                            ; preds = %12941
  br label %12943

12943:                                            ; preds = %12942
  %12944 = load i32, ptr @test_count, align 4, !tbaa !5
  %12945 = add nsw i32 %12944, 1
  store i32 %12945, ptr @test_count, align 4, !tbaa !5
  %12946 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12947 = load i32, ptr %12946, align 4, !tbaa !5
  %12948 = icmp eq i32 %12947, 469762120
  br i1 %12948, label %13002, label %12949

12949:                                            ; preds = %12943
  br label %12950

12950:                                            ; preds = %12949
  br label %12951

12951:                                            ; preds = %12950
  call void @llvm.lifetime.start.p0(i64 4, ptr %312) #11
  %12952 = call ptr @__errno_location() #12
  %12953 = load i32, ptr %12952, align 4, !tbaa !5
  store i32 %12953, ptr %312, align 4, !tbaa !5
  %12954 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12955 = call i32 @s2n_print_stacktrace(ptr noundef %12954)
  %12956 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %12957 = trunc i8 %12956 to i1
  br i1 %12957, label %12958, label %12980

12958:                                            ; preds = %12951
  %12959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12960 = call i32 @fileno(ptr noundef %12959) #11
  %12961 = call i32 @isatty(i32 noundef %12960) #11
  %12962 = icmp ne i32 %12961, 0
  br i1 %12962, label %12963, label %12980

12963:                                            ; preds = %12958
  %12964 = load i32, ptr %312, align 4, !tbaa !5
  %12965 = call ptr @__errno_location() #12
  store i32 %12964, ptr %12965, align 4, !tbaa !5
  %12966 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12967 = load i32, ptr @test_count, align 4, !tbaa !5
  %12968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12969 = load i32, ptr %12968, align 4, !tbaa !5
  %12970 = call ptr @s2n_strerror(i32 noundef %12969, ptr noundef @.str.4)
  %12971 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12972 = load i32, ptr %12971, align 4, !tbaa !5
  %12973 = call ptr @s2n_strerror_debug(i32 noundef %12972, ptr noundef @.str.4)
  %12974 = call ptr @__errno_location() #12
  %12975 = load i32, ptr %12974, align 4, !tbaa !5
  %12976 = call ptr @strerror(i32 noundef %12975) #11
  %12977 = call ptr @__errno_location() #12
  %12978 = load i32, ptr %12977, align 4, !tbaa !5
  %12979 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12966, ptr noundef @.str.2, i32 noundef %12967, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12970, ptr noundef %12973, ptr noundef %12976, i32 noundef %12978) #11
  br label %12997

12980:                                            ; preds = %12958, %12951
  %12981 = load i32, ptr %312, align 4, !tbaa !5
  %12982 = call ptr @__errno_location() #12
  store i32 %12981, ptr %12982, align 4, !tbaa !5
  %12983 = load ptr, ptr @stderr, align 8, !tbaa !9
  %12984 = load i32, ptr @test_count, align 4, !tbaa !5
  %12985 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12986 = load i32, ptr %12985, align 4, !tbaa !5
  %12987 = call ptr @s2n_strerror(i32 noundef %12986, ptr noundef @.str.4)
  %12988 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %12989 = load i32, ptr %12988, align 4, !tbaa !5
  %12990 = call ptr @s2n_strerror_debug(i32 noundef %12989, ptr noundef @.str.4)
  %12991 = call ptr @__errno_location() #12
  %12992 = load i32, ptr %12991, align 4, !tbaa !5
  %12993 = call ptr @strerror(i32 noundef %12992) #11
  %12994 = call ptr @__errno_location() #12
  %12995 = load i32, ptr %12994, align 4, !tbaa !5
  %12996 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %12983, ptr noundef @.str.5, i32 noundef %12984, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 568, ptr noundef %12987, ptr noundef %12990, ptr noundef %12993, i32 noundef %12995) #11
  br label %12997

12997:                                            ; preds = %12980, %12963
  call void @llvm.lifetime.end.p0(i64 4, ptr %312) #11
  br label %12998

12998:                                            ; preds = %12997
  br label %12999

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

13000:                                            ; No predecessors!
  br label %13001

13001:                                            ; preds = %13000
  br label %13002

13002:                                            ; preds = %13001, %12943
  br label %13003

13003:                                            ; preds = %13002
  br label %13004

13004:                                            ; preds = %13003
  br label %13005

13005:                                            ; preds = %13004
  %13006 = load i32, ptr @test_count, align 4, !tbaa !5
  %13007 = add nsw i32 %13006, 1
  store i32 %13007, ptr @test_count, align 4, !tbaa !5
  %13008 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13009 = load i32, ptr %13008, align 4, !tbaa !5
  %13010 = call ptr @s2n_strerror_debug(i32 noundef %13009, ptr noundef @.str.4)
  %13011 = icmp eq ptr %13010, null
  br i1 %13011, label %13012, label %13065

13012:                                            ; preds = %13005
  br label %13013

13013:                                            ; preds = %13012
  br label %13014

13014:                                            ; preds = %13013
  call void @llvm.lifetime.start.p0(i64 4, ptr %313) #11
  %13015 = call ptr @__errno_location() #12
  %13016 = load i32, ptr %13015, align 4, !tbaa !5
  store i32 %13016, ptr %313, align 4, !tbaa !5
  %13017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13018 = call i32 @s2n_print_stacktrace(ptr noundef %13017)
  %13019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13020 = trunc i8 %13019 to i1
  br i1 %13020, label %13021, label %13043

13021:                                            ; preds = %13014
  %13022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13023 = call i32 @fileno(ptr noundef %13022) #11
  %13024 = call i32 @isatty(i32 noundef %13023) #11
  %13025 = icmp ne i32 %13024, 0
  br i1 %13025, label %13026, label %13043

13026:                                            ; preds = %13021
  %13027 = load i32, ptr %313, align 4, !tbaa !5
  %13028 = call ptr @__errno_location() #12
  store i32 %13027, ptr %13028, align 4, !tbaa !5
  %13029 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13030 = load i32, ptr @test_count, align 4, !tbaa !5
  %13031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13032 = load i32, ptr %13031, align 4, !tbaa !5
  %13033 = call ptr @s2n_strerror(i32 noundef %13032, ptr noundef @.str.4)
  %13034 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13035 = load i32, ptr %13034, align 4, !tbaa !5
  %13036 = call ptr @s2n_strerror_debug(i32 noundef %13035, ptr noundef @.str.4)
  %13037 = call ptr @__errno_location() #12
  %13038 = load i32, ptr %13037, align 4, !tbaa !5
  %13039 = call ptr @strerror(i32 noundef %13038) #11
  %13040 = call ptr @__errno_location() #12
  %13041 = load i32, ptr %13040, align 4, !tbaa !5
  %13042 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13029, ptr noundef @.str.2, i32 noundef %13030, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 568, ptr noundef %13033, ptr noundef %13036, ptr noundef %13039, i32 noundef %13041) #11
  br label %13060

13043:                                            ; preds = %13021, %13014
  %13044 = load i32, ptr %313, align 4, !tbaa !5
  %13045 = call ptr @__errno_location() #12
  store i32 %13044, ptr %13045, align 4, !tbaa !5
  %13046 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13047 = load i32, ptr @test_count, align 4, !tbaa !5
  %13048 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13049 = load i32, ptr %13048, align 4, !tbaa !5
  %13050 = call ptr @s2n_strerror(i32 noundef %13049, ptr noundef @.str.4)
  %13051 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13052 = load i32, ptr %13051, align 4, !tbaa !5
  %13053 = call ptr @s2n_strerror_debug(i32 noundef %13052, ptr noundef @.str.4)
  %13054 = call ptr @__errno_location() #12
  %13055 = load i32, ptr %13054, align 4, !tbaa !5
  %13056 = call ptr @strerror(i32 noundef %13055) #11
  %13057 = call ptr @__errno_location() #12
  %13058 = load i32, ptr %13057, align 4, !tbaa !5
  %13059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13046, ptr noundef @.str.5, i32 noundef %13047, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 568, ptr noundef %13050, ptr noundef %13053, ptr noundef %13056, i32 noundef %13058) #11
  br label %13060

13060:                                            ; preds = %13043, %13026
  call void @llvm.lifetime.end.p0(i64 4, ptr %313) #11
  br label %13061

13061:                                            ; preds = %13060
  br label %13062

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

13063:                                            ; No predecessors!
  br label %13064

13064:                                            ; preds = %13063
  br label %13065

13065:                                            ; preds = %13064, %13005
  br label %13066

13066:                                            ; preds = %13065
  br label %13067

13067:                                            ; preds = %13066
  br label %13068

13068:                                            ; preds = %13067
  br label %13069

13069:                                            ; preds = %13068
  br label %13070

13070:                                            ; preds = %13069
  %13071 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13071, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13072 = call ptr @__errno_location() #12
  store i32 0, ptr %13072, align 4, !tbaa !5
  br label %13073

13073:                                            ; preds = %13070
  br label %13074

13074:                                            ; preds = %13073
  br label %13075

13075:                                            ; preds = %13074
  br label %13076

13076:                                            ; preds = %13075
  br label %13077

13077:                                            ; preds = %13076
  br label %13078

13078:                                            ; preds = %13077
  br label %13079

13079:                                            ; preds = %13078
  %13080 = load i32, ptr @test_count, align 4, !tbaa !5
  %13081 = add nsw i32 %13080, 1
  store i32 %13081, ptr @test_count, align 4, !tbaa !5
  %13082 = load ptr, ptr %307, align 8, !tbaa !9
  %13083 = getelementptr inbounds [100 x i8], ptr %309, i64 0, i64 0
  %13084 = call i32 @s2n_fingerprint_get_raw(ptr noundef %13082, i32 noundef 11, ptr noundef %13083, ptr noundef %310)
  %13085 = icmp eq i32 %13084, -1
  br i1 %13085, label %13139, label %13086

13086:                                            ; preds = %13079
  br label %13087

13087:                                            ; preds = %13086
  br label %13088

13088:                                            ; preds = %13087
  call void @llvm.lifetime.start.p0(i64 4, ptr %314) #11
  %13089 = call ptr @__errno_location() #12
  %13090 = load i32, ptr %13089, align 4, !tbaa !5
  store i32 %13090, ptr %314, align 4, !tbaa !5
  %13091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13092 = call i32 @s2n_print_stacktrace(ptr noundef %13091)
  %13093 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13094 = trunc i8 %13093 to i1
  br i1 %13094, label %13095, label %13117

13095:                                            ; preds = %13088
  %13096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13097 = call i32 @fileno(ptr noundef %13096) #11
  %13098 = call i32 @isatty(i32 noundef %13097) #11
  %13099 = icmp ne i32 %13098, 0
  br i1 %13099, label %13100, label %13117

13100:                                            ; preds = %13095
  %13101 = load i32, ptr %314, align 4, !tbaa !5
  %13102 = call ptr @__errno_location() #12
  store i32 %13101, ptr %13102, align 4, !tbaa !5
  %13103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13104 = load i32, ptr @test_count, align 4, !tbaa !5
  %13105 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13106 = load i32, ptr %13105, align 4, !tbaa !5
  %13107 = call ptr @s2n_strerror(i32 noundef %13106, ptr noundef @.str.4)
  %13108 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13109 = load i32, ptr %13108, align 4, !tbaa !5
  %13110 = call ptr @s2n_strerror_debug(i32 noundef %13109, ptr noundef @.str.4)
  %13111 = call ptr @__errno_location() #12
  %13112 = load i32, ptr %13111, align 4, !tbaa !5
  %13113 = call ptr @strerror(i32 noundef %13112) #11
  %13114 = call ptr @__errno_location() #12
  %13115 = load i32, ptr %13114, align 4, !tbaa !5
  %13116 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13103, ptr noundef @.str.2, i32 noundef %13104, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 571, ptr noundef %13107, ptr noundef %13110, ptr noundef %13113, i32 noundef %13115) #11
  br label %13134

13117:                                            ; preds = %13095, %13088
  %13118 = load i32, ptr %314, align 4, !tbaa !5
  %13119 = call ptr @__errno_location() #12
  store i32 %13118, ptr %13119, align 4, !tbaa !5
  %13120 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13121 = load i32, ptr @test_count, align 4, !tbaa !5
  %13122 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13123 = load i32, ptr %13122, align 4, !tbaa !5
  %13124 = call ptr @s2n_strerror(i32 noundef %13123, ptr noundef @.str.4)
  %13125 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13126 = load i32, ptr %13125, align 4, !tbaa !5
  %13127 = call ptr @s2n_strerror_debug(i32 noundef %13126, ptr noundef @.str.4)
  %13128 = call ptr @__errno_location() #12
  %13129 = load i32, ptr %13128, align 4, !tbaa !5
  %13130 = call ptr @strerror(i32 noundef %13129) #11
  %13131 = call ptr @__errno_location() #12
  %13132 = load i32, ptr %13131, align 4, !tbaa !5
  %13133 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13120, ptr noundef @.str.5, i32 noundef %13121, ptr noundef @.str.106, ptr noundef @.str.1, i32 noundef 571, ptr noundef %13124, ptr noundef %13127, ptr noundef %13130, i32 noundef %13132) #11
  br label %13134

13134:                                            ; preds = %13117, %13100
  call void @llvm.lifetime.end.p0(i64 4, ptr %314) #11
  br label %13135

13135:                                            ; preds = %13134
  br label %13136

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

13137:                                            ; No predecessors!
  br label %13138

13138:                                            ; preds = %13137
  br label %13139

13139:                                            ; preds = %13138, %13079
  br label %13140

13140:                                            ; preds = %13139
  br label %13141

13141:                                            ; preds = %13140
  br label %13142

13142:                                            ; preds = %13141
  %13143 = load i32, ptr @test_count, align 4, !tbaa !5
  %13144 = add nsw i32 %13143, 1
  store i32 %13144, ptr @test_count, align 4, !tbaa !5
  %13145 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13146 = load i32, ptr %13145, align 4, !tbaa !5
  %13147 = icmp eq i32 %13146, 469762120
  br i1 %13147, label %13201, label %13148

13148:                                            ; preds = %13142
  br label %13149

13149:                                            ; preds = %13148
  br label %13150

13150:                                            ; preds = %13149
  call void @llvm.lifetime.start.p0(i64 4, ptr %315) #11
  %13151 = call ptr @__errno_location() #12
  %13152 = load i32, ptr %13151, align 4, !tbaa !5
  store i32 %13152, ptr %315, align 4, !tbaa !5
  %13153 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13154 = call i32 @s2n_print_stacktrace(ptr noundef %13153)
  %13155 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13156 = trunc i8 %13155 to i1
  br i1 %13156, label %13157, label %13179

13157:                                            ; preds = %13150
  %13158 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13159 = call i32 @fileno(ptr noundef %13158) #11
  %13160 = call i32 @isatty(i32 noundef %13159) #11
  %13161 = icmp ne i32 %13160, 0
  br i1 %13161, label %13162, label %13179

13162:                                            ; preds = %13157
  %13163 = load i32, ptr %315, align 4, !tbaa !5
  %13164 = call ptr @__errno_location() #12
  store i32 %13163, ptr %13164, align 4, !tbaa !5
  %13165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13166 = load i32, ptr @test_count, align 4, !tbaa !5
  %13167 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13168 = load i32, ptr %13167, align 4, !tbaa !5
  %13169 = call ptr @s2n_strerror(i32 noundef %13168, ptr noundef @.str.4)
  %13170 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13171 = load i32, ptr %13170, align 4, !tbaa !5
  %13172 = call ptr @s2n_strerror_debug(i32 noundef %13171, ptr noundef @.str.4)
  %13173 = call ptr @__errno_location() #12
  %13174 = load i32, ptr %13173, align 4, !tbaa !5
  %13175 = call ptr @strerror(i32 noundef %13174) #11
  %13176 = call ptr @__errno_location() #12
  %13177 = load i32, ptr %13176, align 4, !tbaa !5
  %13178 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13165, ptr noundef @.str.2, i32 noundef %13166, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 571, ptr noundef %13169, ptr noundef %13172, ptr noundef %13175, i32 noundef %13177) #11
  br label %13196

13179:                                            ; preds = %13157, %13150
  %13180 = load i32, ptr %315, align 4, !tbaa !5
  %13181 = call ptr @__errno_location() #12
  store i32 %13180, ptr %13181, align 4, !tbaa !5
  %13182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13183 = load i32, ptr @test_count, align 4, !tbaa !5
  %13184 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13185 = load i32, ptr %13184, align 4, !tbaa !5
  %13186 = call ptr @s2n_strerror(i32 noundef %13185, ptr noundef @.str.4)
  %13187 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13188 = load i32, ptr %13187, align 4, !tbaa !5
  %13189 = call ptr @s2n_strerror_debug(i32 noundef %13188, ptr noundef @.str.4)
  %13190 = call ptr @__errno_location() #12
  %13191 = load i32, ptr %13190, align 4, !tbaa !5
  %13192 = call ptr @strerror(i32 noundef %13191) #11
  %13193 = call ptr @__errno_location() #12
  %13194 = load i32, ptr %13193, align 4, !tbaa !5
  %13195 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13182, ptr noundef @.str.5, i32 noundef %13183, ptr noundef @.str.20, ptr noundef @.str.1, i32 noundef 571, ptr noundef %13186, ptr noundef %13189, ptr noundef %13192, i32 noundef %13194) #11
  br label %13196

13196:                                            ; preds = %13179, %13162
  call void @llvm.lifetime.end.p0(i64 4, ptr %315) #11
  br label %13197

13197:                                            ; preds = %13196
  br label %13198

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

13199:                                            ; No predecessors!
  br label %13200

13200:                                            ; preds = %13199
  br label %13201

13201:                                            ; preds = %13200, %13142
  br label %13202

13202:                                            ; preds = %13201
  br label %13203

13203:                                            ; preds = %13202
  br label %13204

13204:                                            ; preds = %13203
  %13205 = load i32, ptr @test_count, align 4, !tbaa !5
  %13206 = add nsw i32 %13205, 1
  store i32 %13206, ptr @test_count, align 4, !tbaa !5
  %13207 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13208 = load i32, ptr %13207, align 4, !tbaa !5
  %13209 = call ptr @s2n_strerror_debug(i32 noundef %13208, ptr noundef @.str.4)
  %13210 = icmp eq ptr %13209, null
  br i1 %13210, label %13211, label %13264

13211:                                            ; preds = %13204
  br label %13212

13212:                                            ; preds = %13211
  br label %13213

13213:                                            ; preds = %13212
  call void @llvm.lifetime.start.p0(i64 4, ptr %316) #11
  %13214 = call ptr @__errno_location() #12
  %13215 = load i32, ptr %13214, align 4, !tbaa !5
  store i32 %13215, ptr %316, align 4, !tbaa !5
  %13216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13217 = call i32 @s2n_print_stacktrace(ptr noundef %13216)
  %13218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13219 = trunc i8 %13218 to i1
  br i1 %13219, label %13220, label %13242

13220:                                            ; preds = %13213
  %13221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13222 = call i32 @fileno(ptr noundef %13221) #11
  %13223 = call i32 @isatty(i32 noundef %13222) #11
  %13224 = icmp ne i32 %13223, 0
  br i1 %13224, label %13225, label %13242

13225:                                            ; preds = %13220
  %13226 = load i32, ptr %316, align 4, !tbaa !5
  %13227 = call ptr @__errno_location() #12
  store i32 %13226, ptr %13227, align 4, !tbaa !5
  %13228 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13229 = load i32, ptr @test_count, align 4, !tbaa !5
  %13230 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13231 = load i32, ptr %13230, align 4, !tbaa !5
  %13232 = call ptr @s2n_strerror(i32 noundef %13231, ptr noundef @.str.4)
  %13233 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13234 = load i32, ptr %13233, align 4, !tbaa !5
  %13235 = call ptr @s2n_strerror_debug(i32 noundef %13234, ptr noundef @.str.4)
  %13236 = call ptr @__errno_location() #12
  %13237 = load i32, ptr %13236, align 4, !tbaa !5
  %13238 = call ptr @strerror(i32 noundef %13237) #11
  %13239 = call ptr @__errno_location() #12
  %13240 = load i32, ptr %13239, align 4, !tbaa !5
  %13241 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13228, ptr noundef @.str.2, i32 noundef %13229, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 571, ptr noundef %13232, ptr noundef %13235, ptr noundef %13238, i32 noundef %13240) #11
  br label %13259

13242:                                            ; preds = %13220, %13213
  %13243 = load i32, ptr %316, align 4, !tbaa !5
  %13244 = call ptr @__errno_location() #12
  store i32 %13243, ptr %13244, align 4, !tbaa !5
  %13245 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13246 = load i32, ptr @test_count, align 4, !tbaa !5
  %13247 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13248 = load i32, ptr %13247, align 4, !tbaa !5
  %13249 = call ptr @s2n_strerror(i32 noundef %13248, ptr noundef @.str.4)
  %13250 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13251 = load i32, ptr %13250, align 4, !tbaa !5
  %13252 = call ptr @s2n_strerror_debug(i32 noundef %13251, ptr noundef @.str.4)
  %13253 = call ptr @__errno_location() #12
  %13254 = load i32, ptr %13253, align 4, !tbaa !5
  %13255 = call ptr @strerror(i32 noundef %13254) #11
  %13256 = call ptr @__errno_location() #12
  %13257 = load i32, ptr %13256, align 4, !tbaa !5
  %13258 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13245, ptr noundef @.str.5, i32 noundef %13246, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 571, ptr noundef %13249, ptr noundef %13252, ptr noundef %13255, i32 noundef %13257) #11
  br label %13259

13259:                                            ; preds = %13242, %13225
  call void @llvm.lifetime.end.p0(i64 4, ptr %316) #11
  br label %13260

13260:                                            ; preds = %13259
  br label %13261

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

13262:                                            ; No predecessors!
  br label %13263

13263:                                            ; preds = %13262
  br label %13264

13264:                                            ; preds = %13263, %13204
  br label %13265

13265:                                            ; preds = %13264
  br label %13266

13266:                                            ; preds = %13265
  br label %13267

13267:                                            ; preds = %13266
  br label %13268

13268:                                            ; preds = %13267
  br label %13269

13269:                                            ; preds = %13268
  %13270 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %13270, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %13271 = call ptr @__errno_location() #12
  store i32 0, ptr %13271, align 4, !tbaa !5
  br label %13272

13272:                                            ; preds = %13269
  br label %13273

13273:                                            ; preds = %13272
  br label %13274

13274:                                            ; preds = %13273
  br label %13275

13275:                                            ; preds = %13274
  br label %13276

13276:                                            ; preds = %13275
  %13277 = load i32, ptr @test_count, align 4, !tbaa !5
  %13278 = add nsw i32 %13277, 1
  store i32 %13278, ptr @test_count, align 4, !tbaa !5
  %13279 = load ptr, ptr %307, align 8, !tbaa !9
  %13280 = getelementptr inbounds [100 x i8], ptr %309, i64 0, i64 0
  %13281 = call i32 @s2n_fingerprint_get_raw(ptr noundef %13279, i32 noundef 12, ptr noundef %13280, ptr noundef %310)
  %13282 = icmp eq i32 %13281, -1
  br i1 %13282, label %13283, label %13336

13283:                                            ; preds = %13276
  br label %13284

13284:                                            ; preds = %13283
  br label %13285

13285:                                            ; preds = %13284
  call void @llvm.lifetime.start.p0(i64 4, ptr %317) #11
  %13286 = call ptr @__errno_location() #12
  %13287 = load i32, ptr %13286, align 4, !tbaa !5
  store i32 %13287, ptr %317, align 4, !tbaa !5
  %13288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13289 = call i32 @s2n_print_stacktrace(ptr noundef %13288)
  %13290 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13291 = trunc i8 %13290 to i1
  br i1 %13291, label %13292, label %13314

13292:                                            ; preds = %13285
  %13293 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13294 = call i32 @fileno(ptr noundef %13293) #11
  %13295 = call i32 @isatty(i32 noundef %13294) #11
  %13296 = icmp ne i32 %13295, 0
  br i1 %13296, label %13297, label %13314

13297:                                            ; preds = %13292
  %13298 = load i32, ptr %317, align 4, !tbaa !5
  %13299 = call ptr @__errno_location() #12
  store i32 %13298, ptr %13299, align 4, !tbaa !5
  %13300 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13301 = load i32, ptr @test_count, align 4, !tbaa !5
  %13302 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13303 = load i32, ptr %13302, align 4, !tbaa !5
  %13304 = call ptr @s2n_strerror(i32 noundef %13303, ptr noundef @.str.4)
  %13305 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13306 = load i32, ptr %13305, align 4, !tbaa !5
  %13307 = call ptr @s2n_strerror_debug(i32 noundef %13306, ptr noundef @.str.4)
  %13308 = call ptr @__errno_location() #12
  %13309 = load i32, ptr %13308, align 4, !tbaa !5
  %13310 = call ptr @strerror(i32 noundef %13309) #11
  %13311 = call ptr @__errno_location() #12
  %13312 = load i32, ptr %13311, align 4, !tbaa !5
  %13313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13300, ptr noundef @.str.2, i32 noundef %13301, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 573, ptr noundef %13304, ptr noundef %13307, ptr noundef %13310, i32 noundef %13312) #11
  br label %13331

13314:                                            ; preds = %13292, %13285
  %13315 = load i32, ptr %317, align 4, !tbaa !5
  %13316 = call ptr @__errno_location() #12
  store i32 %13315, ptr %13316, align 4, !tbaa !5
  %13317 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13318 = load i32, ptr @test_count, align 4, !tbaa !5
  %13319 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13320 = load i32, ptr %13319, align 4, !tbaa !5
  %13321 = call ptr @s2n_strerror(i32 noundef %13320, ptr noundef @.str.4)
  %13322 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13323 = load i32, ptr %13322, align 4, !tbaa !5
  %13324 = call ptr @s2n_strerror_debug(i32 noundef %13323, ptr noundef @.str.4)
  %13325 = call ptr @__errno_location() #12
  %13326 = load i32, ptr %13325, align 4, !tbaa !5
  %13327 = call ptr @strerror(i32 noundef %13326) #11
  %13328 = call ptr @__errno_location() #12
  %13329 = load i32, ptr %13328, align 4, !tbaa !5
  %13330 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13317, ptr noundef @.str.5, i32 noundef %13318, ptr noundef @.str.107, ptr noundef @.str.1, i32 noundef 573, ptr noundef %13321, ptr noundef %13324, ptr noundef %13327, i32 noundef %13329) #11
  br label %13331

13331:                                            ; preds = %13314, %13297
  call void @llvm.lifetime.end.p0(i64 4, ptr %317) #11
  br label %13332

13332:                                            ; preds = %13331
  br label %13333

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

13334:                                            ; No predecessors!
  br label %13335

13335:                                            ; preds = %13334
  br label %13336

13336:                                            ; preds = %13335, %13276
  br label %13337

13337:                                            ; preds = %13336
  br label %13338

13338:                                            ; preds = %13337
  call void @llvm.lifetime.end.p0(i64 4, ptr %310) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %309) #11
  %13339 = call i32 @s2n_fingerprint_free(ptr noundef %307)
  call void @llvm.lifetime.end.p0(i64 8, ptr %307) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %318) #11
  %13340 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %13340, ptr %318, align 8, !tbaa !9
  br label %13341

13341:                                            ; preds = %13338
  %13342 = load i32, ptr @test_count, align 4, !tbaa !5
  %13343 = add nsw i32 %13342, 1
  store i32 %13343, ptr @test_count, align 4, !tbaa !5
  %13344 = load ptr, ptr %318, align 8, !tbaa !9
  %13345 = load ptr, ptr %14, align 8, !tbaa !9
  %13346 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %13344, ptr noundef %13345)
  %13347 = icmp eq i32 %13346, -1
  br i1 %13347, label %13348, label %13401

13348:                                            ; preds = %13341
  br label %13349

13349:                                            ; preds = %13348
  br label %13350

13350:                                            ; preds = %13349
  call void @llvm.lifetime.start.p0(i64 4, ptr %319) #11
  %13351 = call ptr @__errno_location() #12
  %13352 = load i32, ptr %13351, align 4, !tbaa !5
  store i32 %13352, ptr %319, align 4, !tbaa !5
  %13353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13354 = call i32 @s2n_print_stacktrace(ptr noundef %13353)
  %13355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13356 = trunc i8 %13355 to i1
  br i1 %13356, label %13357, label %13379

13357:                                            ; preds = %13350
  %13358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13359 = call i32 @fileno(ptr noundef %13358) #11
  %13360 = call i32 @isatty(i32 noundef %13359) #11
  %13361 = icmp ne i32 %13360, 0
  br i1 %13361, label %13362, label %13379

13362:                                            ; preds = %13357
  %13363 = load i32, ptr %319, align 4, !tbaa !5
  %13364 = call ptr @__errno_location() #12
  store i32 %13363, ptr %13364, align 4, !tbaa !5
  %13365 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13366 = load i32, ptr @test_count, align 4, !tbaa !5
  %13367 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13368 = load i32, ptr %13367, align 4, !tbaa !5
  %13369 = call ptr @s2n_strerror(i32 noundef %13368, ptr noundef @.str.4)
  %13370 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13371 = load i32, ptr %13370, align 4, !tbaa !5
  %13372 = call ptr @s2n_strerror_debug(i32 noundef %13371, ptr noundef @.str.4)
  %13373 = call ptr @__errno_location() #12
  %13374 = load i32, ptr %13373, align 4, !tbaa !5
  %13375 = call ptr @strerror(i32 noundef %13374) #11
  %13376 = call ptr @__errno_location() #12
  %13377 = load i32, ptr %13376, align 4, !tbaa !5
  %13378 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13365, ptr noundef @.str.2, i32 noundef %13366, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13369, ptr noundef %13372, ptr noundef %13375, i32 noundef %13377) #11
  br label %13396

13379:                                            ; preds = %13357, %13350
  %13380 = load i32, ptr %319, align 4, !tbaa !5
  %13381 = call ptr @__errno_location() #12
  store i32 %13380, ptr %13381, align 4, !tbaa !5
  %13382 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13383 = load i32, ptr @test_count, align 4, !tbaa !5
  %13384 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13385 = load i32, ptr %13384, align 4, !tbaa !5
  %13386 = call ptr @s2n_strerror(i32 noundef %13385, ptr noundef @.str.4)
  %13387 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13388 = load i32, ptr %13387, align 4, !tbaa !5
  %13389 = call ptr @s2n_strerror_debug(i32 noundef %13388, ptr noundef @.str.4)
  %13390 = call ptr @__errno_location() #12
  %13391 = load i32, ptr %13390, align 4, !tbaa !5
  %13392 = call ptr @strerror(i32 noundef %13391) #11
  %13393 = call ptr @__errno_location() #12
  %13394 = load i32, ptr %13393, align 4, !tbaa !5
  %13395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13382, ptr noundef @.str.5, i32 noundef %13383, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 581, ptr noundef %13386, ptr noundef %13389, ptr noundef %13392, i32 noundef %13394) #11
  br label %13396

13396:                                            ; preds = %13379, %13362
  call void @llvm.lifetime.end.p0(i64 4, ptr %319) #11
  br label %13397

13397:                                            ; preds = %13396
  br label %13398

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

13399:                                            ; No predecessors!
  br label %13400

13400:                                            ; preds = %13399
  br label %13401

13401:                                            ; preds = %13400, %13341
  br label %13402

13402:                                            ; preds = %13401
  br label %13403

13403:                                            ; preds = %13402
  call void @llvm.lifetime.start.p0(i64 100, ptr %320) #11
  call void @llvm.memset.p0.i64(ptr align 16 %320, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %321) #11
  store i32 0, ptr %321, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr %322) #11
  store i32 0, ptr %322, align 4, !tbaa !5
  br label %13404

13404:                                            ; preds = %13403
  %13405 = load i32, ptr @test_count, align 4, !tbaa !5
  %13406 = add nsw i32 %13405, 1
  store i32 %13406, ptr @test_count, align 4, !tbaa !5
  %13407 = load ptr, ptr %14, align 8, !tbaa !9
  %13408 = getelementptr inbounds [100 x i8], ptr %320, i64 0, i64 0
  %13409 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %13407, i32 noundef 0, i32 noundef 100, ptr noundef %13408, ptr noundef %321, ptr noundef %322)
  %13410 = icmp eq i32 %13409, -1
  br i1 %13410, label %13411, label %13464

13411:                                            ; preds = %13404
  br label %13412

13412:                                            ; preds = %13411
  br label %13413

13413:                                            ; preds = %13412
  call void @llvm.lifetime.start.p0(i64 4, ptr %323) #11
  %13414 = call ptr @__errno_location() #12
  %13415 = load i32, ptr %13414, align 4, !tbaa !5
  store i32 %13415, ptr %323, align 4, !tbaa !5
  %13416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13417 = call i32 @s2n_print_stacktrace(ptr noundef %13416)
  %13418 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13419 = trunc i8 %13418 to i1
  br i1 %13419, label %13420, label %13442

13420:                                            ; preds = %13413
  %13421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13422 = call i32 @fileno(ptr noundef %13421) #11
  %13423 = call i32 @isatty(i32 noundef %13422) #11
  %13424 = icmp ne i32 %13423, 0
  br i1 %13424, label %13425, label %13442

13425:                                            ; preds = %13420
  %13426 = load i32, ptr %323, align 4, !tbaa !5
  %13427 = call ptr @__errno_location() #12
  store i32 %13426, ptr %13427, align 4, !tbaa !5
  %13428 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13429 = load i32, ptr @test_count, align 4, !tbaa !5
  %13430 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13431 = load i32, ptr %13430, align 4, !tbaa !5
  %13432 = call ptr @s2n_strerror(i32 noundef %13431, ptr noundef @.str.4)
  %13433 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13434 = load i32, ptr %13433, align 4, !tbaa !5
  %13435 = call ptr @s2n_strerror_debug(i32 noundef %13434, ptr noundef @.str.4)
  %13436 = call ptr @__errno_location() #12
  %13437 = load i32, ptr %13436, align 4, !tbaa !5
  %13438 = call ptr @strerror(i32 noundef %13437) #11
  %13439 = call ptr @__errno_location() #12
  %13440 = load i32, ptr %13439, align 4, !tbaa !5
  %13441 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13428, ptr noundef @.str.2, i32 noundef %13429, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 587, ptr noundef %13432, ptr noundef %13435, ptr noundef %13438, i32 noundef %13440) #11
  br label %13459

13442:                                            ; preds = %13420, %13413
  %13443 = load i32, ptr %323, align 4, !tbaa !5
  %13444 = call ptr @__errno_location() #12
  store i32 %13443, ptr %13444, align 4, !tbaa !5
  %13445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13446 = load i32, ptr @test_count, align 4, !tbaa !5
  %13447 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13448 = load i32, ptr %13447, align 4, !tbaa !5
  %13449 = call ptr @s2n_strerror(i32 noundef %13448, ptr noundef @.str.4)
  %13450 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13451 = load i32, ptr %13450, align 4, !tbaa !5
  %13452 = call ptr @s2n_strerror_debug(i32 noundef %13451, ptr noundef @.str.4)
  %13453 = call ptr @__errno_location() #12
  %13454 = load i32, ptr %13453, align 4, !tbaa !5
  %13455 = call ptr @strerror(i32 noundef %13454) #11
  %13456 = call ptr @__errno_location() #12
  %13457 = load i32, ptr %13456, align 4, !tbaa !5
  %13458 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13445, ptr noundef @.str.5, i32 noundef %13446, ptr noundef @.str.108, ptr noundef @.str.1, i32 noundef 587, ptr noundef %13449, ptr noundef %13452, ptr noundef %13455, i32 noundef %13457) #11
  br label %13459

13459:                                            ; preds = %13442, %13425
  call void @llvm.lifetime.end.p0(i64 4, ptr %323) #11
  br label %13460

13460:                                            ; preds = %13459
  br label %13461

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

13462:                                            ; No predecessors!
  br label %13463

13463:                                            ; preds = %13462
  br label %13464

13464:                                            ; preds = %13463, %13404
  br label %13465

13465:                                            ; preds = %13464
  br label %13466

13466:                                            ; preds = %13465
  call void @llvm.lifetime.start.p0(i64 100, ptr %324) #11
  call void @llvm.memset.p0.i64(ptr align 16 %324, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %325) #11
  store i32 0, ptr %325, align 4, !tbaa !5
  br label %13467

13467:                                            ; preds = %13466
  %13468 = load i32, ptr @test_count, align 4, !tbaa !5
  %13469 = add nsw i32 %13468, 1
  store i32 %13469, ptr @test_count, align 4, !tbaa !5
  %13470 = load ptr, ptr %318, align 8, !tbaa !9
  %13471 = getelementptr inbounds [100 x i8], ptr %324, i64 0, i64 0
  %13472 = call i32 @s2n_fingerprint_get_hash(ptr noundef %13470, i32 noundef 100, ptr noundef %13471, ptr noundef %325)
  %13473 = icmp eq i32 %13472, -1
  br i1 %13473, label %13474, label %13527

13474:                                            ; preds = %13467
  br label %13475

13475:                                            ; preds = %13474
  br label %13476

13476:                                            ; preds = %13475
  call void @llvm.lifetime.start.p0(i64 4, ptr %326) #11
  %13477 = call ptr @__errno_location() #12
  %13478 = load i32, ptr %13477, align 4, !tbaa !5
  store i32 %13478, ptr %326, align 4, !tbaa !5
  %13479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13480 = call i32 @s2n_print_stacktrace(ptr noundef %13479)
  %13481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13482 = trunc i8 %13481 to i1
  br i1 %13482, label %13483, label %13505

13483:                                            ; preds = %13476
  %13484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13485 = call i32 @fileno(ptr noundef %13484) #11
  %13486 = call i32 @isatty(i32 noundef %13485) #11
  %13487 = icmp ne i32 %13486, 0
  br i1 %13487, label %13488, label %13505

13488:                                            ; preds = %13483
  %13489 = load i32, ptr %326, align 4, !tbaa !5
  %13490 = call ptr @__errno_location() #12
  store i32 %13489, ptr %13490, align 4, !tbaa !5
  %13491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13492 = load i32, ptr @test_count, align 4, !tbaa !5
  %13493 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13494 = load i32, ptr %13493, align 4, !tbaa !5
  %13495 = call ptr @s2n_strerror(i32 noundef %13494, ptr noundef @.str.4)
  %13496 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13497 = load i32, ptr %13496, align 4, !tbaa !5
  %13498 = call ptr @s2n_strerror_debug(i32 noundef %13497, ptr noundef @.str.4)
  %13499 = call ptr @__errno_location() #12
  %13500 = load i32, ptr %13499, align 4, !tbaa !5
  %13501 = call ptr @strerror(i32 noundef %13500) #11
  %13502 = call ptr @__errno_location() #12
  %13503 = load i32, ptr %13502, align 4, !tbaa !5
  %13504 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13491, ptr noundef @.str.2, i32 noundef %13492, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 594, ptr noundef %13495, ptr noundef %13498, ptr noundef %13501, i32 noundef %13503) #11
  br label %13522

13505:                                            ; preds = %13483, %13476
  %13506 = load i32, ptr %326, align 4, !tbaa !5
  %13507 = call ptr @__errno_location() #12
  store i32 %13506, ptr %13507, align 4, !tbaa !5
  %13508 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13509 = load i32, ptr @test_count, align 4, !tbaa !5
  %13510 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13511 = load i32, ptr %13510, align 4, !tbaa !5
  %13512 = call ptr @s2n_strerror(i32 noundef %13511, ptr noundef @.str.4)
  %13513 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13514 = load i32, ptr %13513, align 4, !tbaa !5
  %13515 = call ptr @s2n_strerror_debug(i32 noundef %13514, ptr noundef @.str.4)
  %13516 = call ptr @__errno_location() #12
  %13517 = load i32, ptr %13516, align 4, !tbaa !5
  %13518 = call ptr @strerror(i32 noundef %13517) #11
  %13519 = call ptr @__errno_location() #12
  %13520 = load i32, ptr %13519, align 4, !tbaa !5
  %13521 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13508, ptr noundef @.str.5, i32 noundef %13509, ptr noundef @.str.88, ptr noundef @.str.1, i32 noundef 594, ptr noundef %13512, ptr noundef %13515, ptr noundef %13518, i32 noundef %13520) #11
  br label %13522

13522:                                            ; preds = %13505, %13488
  call void @llvm.lifetime.end.p0(i64 4, ptr %326) #11
  br label %13523

13523:                                            ; preds = %13522
  br label %13524

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

13525:                                            ; No predecessors!
  br label %13526

13526:                                            ; preds = %13525
  br label %13527

13527:                                            ; preds = %13526, %13467
  br label %13528

13528:                                            ; preds = %13527
  br label %13529

13529:                                            ; preds = %13528
  call void @llvm.lifetime.start.p0(i64 40, ptr %327) #11
  call void @llvm.memset.p0.i64(ptr align 8 %327, i8 0, i64 40, i1 false)
  br label %13530

13530:                                            ; preds = %13529
  %13531 = load i32, ptr @test_count, align 4, !tbaa !5
  %13532 = add nsw i32 %13531, 1
  store i32 %13532, ptr @test_count, align 4, !tbaa !5
  %13533 = getelementptr inbounds %struct.s2n_stuffer, ptr %327, i32 0, i32 0
  %13534 = getelementptr inbounds [100 x i8], ptr %324, i64 0, i64 0
  %13535 = load i32, ptr %325, align 4, !tbaa !5
  %13536 = call i32 @s2n_blob_init(ptr noundef %13533, ptr noundef %13534, i32 noundef %13535)
  %13537 = icmp eq i32 %13536, -1
  br i1 %13537, label %13538, label %13591

13538:                                            ; preds = %13530
  br label %13539

13539:                                            ; preds = %13538
  br label %13540

13540:                                            ; preds = %13539
  call void @llvm.lifetime.start.p0(i64 4, ptr %328) #11
  %13541 = call ptr @__errno_location() #12
  %13542 = load i32, ptr %13541, align 4, !tbaa !5
  store i32 %13542, ptr %328, align 4, !tbaa !5
  %13543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13544 = call i32 @s2n_print_stacktrace(ptr noundef %13543)
  %13545 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13546 = trunc i8 %13545 to i1
  br i1 %13546, label %13547, label %13569

13547:                                            ; preds = %13540
  %13548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13549 = call i32 @fileno(ptr noundef %13548) #11
  %13550 = call i32 @isatty(i32 noundef %13549) #11
  %13551 = icmp ne i32 %13550, 0
  br i1 %13551, label %13552, label %13569

13552:                                            ; preds = %13547
  %13553 = load i32, ptr %328, align 4, !tbaa !5
  %13554 = call ptr @__errno_location() #12
  store i32 %13553, ptr %13554, align 4, !tbaa !5
  %13555 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13556 = load i32, ptr @test_count, align 4, !tbaa !5
  %13557 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13558 = load i32, ptr %13557, align 4, !tbaa !5
  %13559 = call ptr @s2n_strerror(i32 noundef %13558, ptr noundef @.str.4)
  %13560 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13561 = load i32, ptr %13560, align 4, !tbaa !5
  %13562 = call ptr @s2n_strerror_debug(i32 noundef %13561, ptr noundef @.str.4)
  %13563 = call ptr @__errno_location() #12
  %13564 = load i32, ptr %13563, align 4, !tbaa !5
  %13565 = call ptr @strerror(i32 noundef %13564) #11
  %13566 = call ptr @__errno_location() #12
  %13567 = load i32, ptr %13566, align 4, !tbaa !5
  %13568 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13555, ptr noundef @.str.2, i32 noundef %13556, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 597, ptr noundef %13559, ptr noundef %13562, ptr noundef %13565, i32 noundef %13567) #11
  br label %13586

13569:                                            ; preds = %13547, %13540
  %13570 = load i32, ptr %328, align 4, !tbaa !5
  %13571 = call ptr @__errno_location() #12
  store i32 %13570, ptr %13571, align 4, !tbaa !5
  %13572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13573 = load i32, ptr @test_count, align 4, !tbaa !5
  %13574 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13575 = load i32, ptr %13574, align 4, !tbaa !5
  %13576 = call ptr @s2n_strerror(i32 noundef %13575, ptr noundef @.str.4)
  %13577 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13578 = load i32, ptr %13577, align 4, !tbaa !5
  %13579 = call ptr @s2n_strerror_debug(i32 noundef %13578, ptr noundef @.str.4)
  %13580 = call ptr @__errno_location() #12
  %13581 = load i32, ptr %13580, align 4, !tbaa !5
  %13582 = call ptr @strerror(i32 noundef %13581) #11
  %13583 = call ptr @__errno_location() #12
  %13584 = load i32, ptr %13583, align 4, !tbaa !5
  %13585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13572, ptr noundef @.str.5, i32 noundef %13573, ptr noundef @.str.109, ptr noundef @.str.1, i32 noundef 597, ptr noundef %13576, ptr noundef %13579, ptr noundef %13582, i32 noundef %13584) #11
  br label %13586

13586:                                            ; preds = %13569, %13552
  call void @llvm.lifetime.end.p0(i64 4, ptr %328) #11
  br label %13587

13587:                                            ; preds = %13586
  br label %13588

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

13589:                                            ; No predecessors!
  br label %13590

13590:                                            ; preds = %13589
  br label %13591

13591:                                            ; preds = %13590, %13530
  br label %13592

13592:                                            ; preds = %13591
  br label %13593

13593:                                            ; preds = %13592
  br label %13594

13594:                                            ; preds = %13593
  %13595 = load i32, ptr @test_count, align 4, !tbaa !5
  %13596 = add nsw i32 %13595, 1
  store i32 %13596, ptr @test_count, align 4, !tbaa !5
  %13597 = load i32, ptr %325, align 4, !tbaa !5
  %13598 = call i32 @s2n_stuffer_skip_write(ptr noundef %327, i32 noundef %13597)
  %13599 = icmp eq i32 %13598, -1
  br i1 %13599, label %13600, label %13653

13600:                                            ; preds = %13594
  br label %13601

13601:                                            ; preds = %13600
  br label %13602

13602:                                            ; preds = %13601
  call void @llvm.lifetime.start.p0(i64 4, ptr %329) #11
  %13603 = call ptr @__errno_location() #12
  %13604 = load i32, ptr %13603, align 4, !tbaa !5
  store i32 %13604, ptr %329, align 4, !tbaa !5
  %13605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13606 = call i32 @s2n_print_stacktrace(ptr noundef %13605)
  %13607 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13608 = trunc i8 %13607 to i1
  br i1 %13608, label %13609, label %13631

13609:                                            ; preds = %13602
  %13610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13611 = call i32 @fileno(ptr noundef %13610) #11
  %13612 = call i32 @isatty(i32 noundef %13611) #11
  %13613 = icmp ne i32 %13612, 0
  br i1 %13613, label %13614, label %13631

13614:                                            ; preds = %13609
  %13615 = load i32, ptr %329, align 4, !tbaa !5
  %13616 = call ptr @__errno_location() #12
  store i32 %13615, ptr %13616, align 4, !tbaa !5
  %13617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13618 = load i32, ptr @test_count, align 4, !tbaa !5
  %13619 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13620 = load i32, ptr %13619, align 4, !tbaa !5
  %13621 = call ptr @s2n_strerror(i32 noundef %13620, ptr noundef @.str.4)
  %13622 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13623 = load i32, ptr %13622, align 4, !tbaa !5
  %13624 = call ptr @s2n_strerror_debug(i32 noundef %13623, ptr noundef @.str.4)
  %13625 = call ptr @__errno_location() #12
  %13626 = load i32, ptr %13625, align 4, !tbaa !5
  %13627 = call ptr @strerror(i32 noundef %13626) #11
  %13628 = call ptr @__errno_location() #12
  %13629 = load i32, ptr %13628, align 4, !tbaa !5
  %13630 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13617, ptr noundef @.str.2, i32 noundef %13618, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 598, ptr noundef %13621, ptr noundef %13624, ptr noundef %13627, i32 noundef %13629) #11
  br label %13648

13631:                                            ; preds = %13609, %13602
  %13632 = load i32, ptr %329, align 4, !tbaa !5
  %13633 = call ptr @__errno_location() #12
  store i32 %13632, ptr %13633, align 4, !tbaa !5
  %13634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13635 = load i32, ptr @test_count, align 4, !tbaa !5
  %13636 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13637 = load i32, ptr %13636, align 4, !tbaa !5
  %13638 = call ptr @s2n_strerror(i32 noundef %13637, ptr noundef @.str.4)
  %13639 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13640 = load i32, ptr %13639, align 4, !tbaa !5
  %13641 = call ptr @s2n_strerror_debug(i32 noundef %13640, ptr noundef @.str.4)
  %13642 = call ptr @__errno_location() #12
  %13643 = load i32, ptr %13642, align 4, !tbaa !5
  %13644 = call ptr @strerror(i32 noundef %13643) #11
  %13645 = call ptr @__errno_location() #12
  %13646 = load i32, ptr %13645, align 4, !tbaa !5
  %13647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13634, ptr noundef @.str.5, i32 noundef %13635, ptr noundef @.str.110, ptr noundef @.str.1, i32 noundef 598, ptr noundef %13638, ptr noundef %13641, ptr noundef %13644, i32 noundef %13646) #11
  br label %13648

13648:                                            ; preds = %13631, %13614
  call void @llvm.lifetime.end.p0(i64 4, ptr %329) #11
  br label %13649

13649:                                            ; preds = %13648
  br label %13650

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

13651:                                            ; No predecessors!
  br label %13652

13652:                                            ; preds = %13651
  br label %13653

13653:                                            ; preds = %13652, %13594
  br label %13654

13654:                                            ; preds = %13653
  br label %13655

13655:                                            ; preds = %13654
  br label %13656

13656:                                            ; preds = %13655
  %13657 = load i32, ptr @test_count, align 4, !tbaa !5
  %13658 = add nsw i32 %13657, 1
  store i32 %13658, ptr @test_count, align 4, !tbaa !5
  %13659 = load i32, ptr %325, align 4, !tbaa !5
  %13660 = load i32, ptr %321, align 4, !tbaa !5
  %13661 = mul i32 %13660, 2
  %13662 = icmp eq i32 %13659, %13661
  br i1 %13662, label %13716, label %13663

13663:                                            ; preds = %13656
  br label %13664

13664:                                            ; preds = %13663
  br label %13665

13665:                                            ; preds = %13664
  call void @llvm.lifetime.start.p0(i64 4, ptr %330) #11
  %13666 = call ptr @__errno_location() #12
  %13667 = load i32, ptr %13666, align 4, !tbaa !5
  store i32 %13667, ptr %330, align 4, !tbaa !5
  %13668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13669 = call i32 @s2n_print_stacktrace(ptr noundef %13668)
  %13670 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13671 = trunc i8 %13670 to i1
  br i1 %13671, label %13672, label %13694

13672:                                            ; preds = %13665
  %13673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13674 = call i32 @fileno(ptr noundef %13673) #11
  %13675 = call i32 @isatty(i32 noundef %13674) #11
  %13676 = icmp ne i32 %13675, 0
  br i1 %13676, label %13677, label %13694

13677:                                            ; preds = %13672
  %13678 = load i32, ptr %330, align 4, !tbaa !5
  %13679 = call ptr @__errno_location() #12
  store i32 %13678, ptr %13679, align 4, !tbaa !5
  %13680 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13681 = load i32, ptr @test_count, align 4, !tbaa !5
  %13682 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13683 = load i32, ptr %13682, align 4, !tbaa !5
  %13684 = call ptr @s2n_strerror(i32 noundef %13683, ptr noundef @.str.4)
  %13685 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13686 = load i32, ptr %13685, align 4, !tbaa !5
  %13687 = call ptr @s2n_strerror_debug(i32 noundef %13686, ptr noundef @.str.4)
  %13688 = call ptr @__errno_location() #12
  %13689 = load i32, ptr %13688, align 4, !tbaa !5
  %13690 = call ptr @strerror(i32 noundef %13689) #11
  %13691 = call ptr @__errno_location() #12
  %13692 = load i32, ptr %13691, align 4, !tbaa !5
  %13693 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13680, ptr noundef @.str.2, i32 noundef %13681, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 601, ptr noundef %13684, ptr noundef %13687, ptr noundef %13690, i32 noundef %13692) #11
  br label %13711

13694:                                            ; preds = %13672, %13665
  %13695 = load i32, ptr %330, align 4, !tbaa !5
  %13696 = call ptr @__errno_location() #12
  store i32 %13695, ptr %13696, align 4, !tbaa !5
  %13697 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13698 = load i32, ptr @test_count, align 4, !tbaa !5
  %13699 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13700 = load i32, ptr %13699, align 4, !tbaa !5
  %13701 = call ptr @s2n_strerror(i32 noundef %13700, ptr noundef @.str.4)
  %13702 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13703 = load i32, ptr %13702, align 4, !tbaa !5
  %13704 = call ptr @s2n_strerror_debug(i32 noundef %13703, ptr noundef @.str.4)
  %13705 = call ptr @__errno_location() #12
  %13706 = load i32, ptr %13705, align 4, !tbaa !5
  %13707 = call ptr @strerror(i32 noundef %13706) #11
  %13708 = call ptr @__errno_location() #12
  %13709 = load i32, ptr %13708, align 4, !tbaa !5
  %13710 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13697, ptr noundef @.str.5, i32 noundef %13698, ptr noundef @.str.111, ptr noundef @.str.1, i32 noundef 601, ptr noundef %13701, ptr noundef %13704, ptr noundef %13707, i32 noundef %13709) #11
  br label %13711

13711:                                            ; preds = %13694, %13677
  call void @llvm.lifetime.end.p0(i64 4, ptr %330) #11
  br label %13712

13712:                                            ; preds = %13711
  br label %13713

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

13714:                                            ; No predecessors!
  br label %13715

13715:                                            ; preds = %13714
  br label %13716

13716:                                            ; preds = %13715, %13656
  br label %13717

13717:                                            ; preds = %13716
  br label %13718

13718:                                            ; preds = %13717
  call void @llvm.lifetime.start.p0(i64 8, ptr %331) #11
  store i64 0, ptr %331, align 8, !tbaa !16
  br label %13719

13719:                                            ; preds = %13856, %13718
  %13720 = load i64, ptr %331, align 8, !tbaa !16
  %13721 = load i32, ptr %321, align 4, !tbaa !5
  %13722 = zext i32 %13721 to i64
  %13723 = icmp ult i64 %13720, %13722
  br i1 %13723, label %13725, label %13724

13724:                                            ; preds = %13719
  call void @llvm.lifetime.end.p0(i64 8, ptr %331) #11
  br label %13859

13725:                                            ; preds = %13719
  call void @llvm.lifetime.start.p0(i64 1, ptr %332) #11
  store i8 0, ptr %332, align 1, !tbaa !15
  br label %13726

13726:                                            ; preds = %13725
  %13727 = load i32, ptr @test_count, align 4, !tbaa !5
  %13728 = add nsw i32 %13727, 1
  store i32 %13728, ptr @test_count, align 4, !tbaa !5
  %13729 = call i32 @s2n_stuffer_read_uint8_hex(ptr noundef %327, ptr noundef %332)
  %13730 = getelementptr inbounds %struct.s2n_result, ptr %333, i32 0, i32 0
  store i32 %13729, ptr %13730, align 4
  %13731 = getelementptr inbounds %struct.s2n_result, ptr %333, i32 0, i32 0
  %13732 = load i32, ptr %13731, align 4
  %13733 = call zeroext i1 @s2n_result_is_ok(i32 %13732)
  br i1 %13733, label %13787, label %13734

13734:                                            ; preds = %13726
  br label %13735

13735:                                            ; preds = %13734
  br label %13736

13736:                                            ; preds = %13735
  call void @llvm.lifetime.start.p0(i64 4, ptr %334) #11
  %13737 = call ptr @__errno_location() #12
  %13738 = load i32, ptr %13737, align 4, !tbaa !5
  store i32 %13738, ptr %334, align 4, !tbaa !5
  %13739 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13740 = call i32 @s2n_print_stacktrace(ptr noundef %13739)
  %13741 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13742 = trunc i8 %13741 to i1
  br i1 %13742, label %13743, label %13765

13743:                                            ; preds = %13736
  %13744 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13745 = call i32 @fileno(ptr noundef %13744) #11
  %13746 = call i32 @isatty(i32 noundef %13745) #11
  %13747 = icmp ne i32 %13746, 0
  br i1 %13747, label %13748, label %13765

13748:                                            ; preds = %13743
  %13749 = load i32, ptr %334, align 4, !tbaa !5
  %13750 = call ptr @__errno_location() #12
  store i32 %13749, ptr %13750, align 4, !tbaa !5
  %13751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13752 = load i32, ptr @test_count, align 4, !tbaa !5
  %13753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13754 = load i32, ptr %13753, align 4, !tbaa !5
  %13755 = call ptr @s2n_strerror(i32 noundef %13754, ptr noundef @.str.4)
  %13756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13757 = load i32, ptr %13756, align 4, !tbaa !5
  %13758 = call ptr @s2n_strerror_debug(i32 noundef %13757, ptr noundef @.str.4)
  %13759 = call ptr @__errno_location() #12
  %13760 = load i32, ptr %13759, align 4, !tbaa !5
  %13761 = call ptr @strerror(i32 noundef %13760) #11
  %13762 = call ptr @__errno_location() #12
  %13763 = load i32, ptr %13762, align 4, !tbaa !5
  %13764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13751, ptr noundef @.str.2, i32 noundef %13752, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 604, ptr noundef %13755, ptr noundef %13758, ptr noundef %13761, i32 noundef %13763) #11
  br label %13782

13765:                                            ; preds = %13743, %13736
  %13766 = load i32, ptr %334, align 4, !tbaa !5
  %13767 = call ptr @__errno_location() #12
  store i32 %13766, ptr %13767, align 4, !tbaa !5
  %13768 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13769 = load i32, ptr @test_count, align 4, !tbaa !5
  %13770 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13771 = load i32, ptr %13770, align 4, !tbaa !5
  %13772 = call ptr @s2n_strerror(i32 noundef %13771, ptr noundef @.str.4)
  %13773 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13774 = load i32, ptr %13773, align 4, !tbaa !5
  %13775 = call ptr @s2n_strerror_debug(i32 noundef %13774, ptr noundef @.str.4)
  %13776 = call ptr @__errno_location() #12
  %13777 = load i32, ptr %13776, align 4, !tbaa !5
  %13778 = call ptr @strerror(i32 noundef %13777) #11
  %13779 = call ptr @__errno_location() #12
  %13780 = load i32, ptr %13779, align 4, !tbaa !5
  %13781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13768, ptr noundef @.str.5, i32 noundef %13769, ptr noundef @.str.112, ptr noundef @.str.1, i32 noundef 604, ptr noundef %13772, ptr noundef %13775, ptr noundef %13778, i32 noundef %13780) #11
  br label %13782

13782:                                            ; preds = %13765, %13748
  call void @llvm.lifetime.end.p0(i64 4, ptr %334) #11
  br label %13783

13783:                                            ; preds = %13782
  br label %13784

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

13785:                                            ; No predecessors!
  br label %13786

13786:                                            ; preds = %13785
  br label %13787

13787:                                            ; preds = %13786, %13726
  br label %13788

13788:                                            ; preds = %13787
  br label %13789

13789:                                            ; preds = %13788
  br label %13790

13790:                                            ; preds = %13789
  %13791 = load i32, ptr @test_count, align 4, !tbaa !5
  %13792 = add nsw i32 %13791, 1
  store i32 %13792, ptr @test_count, align 4, !tbaa !5
  %13793 = load i8, ptr %332, align 1, !tbaa !15
  %13794 = zext i8 %13793 to i32
  %13795 = load i64, ptr %331, align 8, !tbaa !16
  %13796 = getelementptr inbounds [100 x i8], ptr %320, i64 0, i64 %13795
  %13797 = load i8, ptr %13796, align 1, !tbaa !15
  %13798 = zext i8 %13797 to i32
  %13799 = icmp eq i32 %13794, %13798
  br i1 %13799, label %13853, label %13800

13800:                                            ; preds = %13790
  br label %13801

13801:                                            ; preds = %13800
  br label %13802

13802:                                            ; preds = %13801
  call void @llvm.lifetime.start.p0(i64 4, ptr %335) #11
  %13803 = call ptr @__errno_location() #12
  %13804 = load i32, ptr %13803, align 4, !tbaa !5
  store i32 %13804, ptr %335, align 4, !tbaa !5
  %13805 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13806 = call i32 @s2n_print_stacktrace(ptr noundef %13805)
  %13807 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13808 = trunc i8 %13807 to i1
  br i1 %13808, label %13809, label %13831

13809:                                            ; preds = %13802
  %13810 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13811 = call i32 @fileno(ptr noundef %13810) #11
  %13812 = call i32 @isatty(i32 noundef %13811) #11
  %13813 = icmp ne i32 %13812, 0
  br i1 %13813, label %13814, label %13831

13814:                                            ; preds = %13809
  %13815 = load i32, ptr %335, align 4, !tbaa !5
  %13816 = call ptr @__errno_location() #12
  store i32 %13815, ptr %13816, align 4, !tbaa !5
  %13817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13818 = load i32, ptr @test_count, align 4, !tbaa !5
  %13819 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13820 = load i32, ptr %13819, align 4, !tbaa !5
  %13821 = call ptr @s2n_strerror(i32 noundef %13820, ptr noundef @.str.4)
  %13822 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13823 = load i32, ptr %13822, align 4, !tbaa !5
  %13824 = call ptr @s2n_strerror_debug(i32 noundef %13823, ptr noundef @.str.4)
  %13825 = call ptr @__errno_location() #12
  %13826 = load i32, ptr %13825, align 4, !tbaa !5
  %13827 = call ptr @strerror(i32 noundef %13826) #11
  %13828 = call ptr @__errno_location() #12
  %13829 = load i32, ptr %13828, align 4, !tbaa !5
  %13830 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13817, ptr noundef @.str.2, i32 noundef %13818, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 605, ptr noundef %13821, ptr noundef %13824, ptr noundef %13827, i32 noundef %13829) #11
  br label %13848

13831:                                            ; preds = %13809, %13802
  %13832 = load i32, ptr %335, align 4, !tbaa !5
  %13833 = call ptr @__errno_location() #12
  store i32 %13832, ptr %13833, align 4, !tbaa !5
  %13834 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13835 = load i32, ptr @test_count, align 4, !tbaa !5
  %13836 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13837 = load i32, ptr %13836, align 4, !tbaa !5
  %13838 = call ptr @s2n_strerror(i32 noundef %13837, ptr noundef @.str.4)
  %13839 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13840 = load i32, ptr %13839, align 4, !tbaa !5
  %13841 = call ptr @s2n_strerror_debug(i32 noundef %13840, ptr noundef @.str.4)
  %13842 = call ptr @__errno_location() #12
  %13843 = load i32, ptr %13842, align 4, !tbaa !5
  %13844 = call ptr @strerror(i32 noundef %13843) #11
  %13845 = call ptr @__errno_location() #12
  %13846 = load i32, ptr %13845, align 4, !tbaa !5
  %13847 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13834, ptr noundef @.str.5, i32 noundef %13835, ptr noundef @.str.113, ptr noundef @.str.1, i32 noundef 605, ptr noundef %13838, ptr noundef %13841, ptr noundef %13844, i32 noundef %13846) #11
  br label %13848

13848:                                            ; preds = %13831, %13814
  call void @llvm.lifetime.end.p0(i64 4, ptr %335) #11
  br label %13849

13849:                                            ; preds = %13848
  br label %13850

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

13851:                                            ; No predecessors!
  br label %13852

13852:                                            ; preds = %13851
  br label %13853

13853:                                            ; preds = %13852, %13790
  br label %13854

13854:                                            ; preds = %13853
  br label %13855

13855:                                            ; preds = %13854
  call void @llvm.lifetime.end.p0(i64 1, ptr %332) #11
  br label %13856

13856:                                            ; preds = %13855
  %13857 = load i64, ptr %331, align 8, !tbaa !16
  %13858 = add i64 %13857, 1
  store i64 %13858, ptr %331, align 8, !tbaa !16
  br label %13719, !llvm.loop !46

13859:                                            ; preds = %13724
  call void @llvm.lifetime.end.p0(i64 40, ptr %327) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %325) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %324) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %336) #11
  store i32 0, ptr %336, align 4, !tbaa !5
  br label %13860

13860:                                            ; preds = %13859
  %13861 = load i32, ptr @test_count, align 4, !tbaa !5
  %13862 = add nsw i32 %13861, 1
  store i32 %13862, ptr @test_count, align 4, !tbaa !5
  %13863 = load ptr, ptr %318, align 8, !tbaa !9
  %13864 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef %13863, ptr noundef %336)
  %13865 = icmp eq i32 %13864, -1
  br i1 %13865, label %13866, label %13919

13866:                                            ; preds = %13860
  br label %13867

13867:                                            ; preds = %13866
  br label %13868

13868:                                            ; preds = %13867
  call void @llvm.lifetime.start.p0(i64 4, ptr %337) #11
  %13869 = call ptr @__errno_location() #12
  %13870 = load i32, ptr %13869, align 4, !tbaa !5
  store i32 %13870, ptr %337, align 4, !tbaa !5
  %13871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13872 = call i32 @s2n_print_stacktrace(ptr noundef %13871)
  %13873 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13874 = trunc i8 %13873 to i1
  br i1 %13874, label %13875, label %13897

13875:                                            ; preds = %13868
  %13876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13877 = call i32 @fileno(ptr noundef %13876) #11
  %13878 = call i32 @isatty(i32 noundef %13877) #11
  %13879 = icmp ne i32 %13878, 0
  br i1 %13879, label %13880, label %13897

13880:                                            ; preds = %13875
  %13881 = load i32, ptr %337, align 4, !tbaa !5
  %13882 = call ptr @__errno_location() #12
  store i32 %13881, ptr %13882, align 4, !tbaa !5
  %13883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13884 = load i32, ptr @test_count, align 4, !tbaa !5
  %13885 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13886 = load i32, ptr %13885, align 4, !tbaa !5
  %13887 = call ptr @s2n_strerror(i32 noundef %13886, ptr noundef @.str.4)
  %13888 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13889 = load i32, ptr %13888, align 4, !tbaa !5
  %13890 = call ptr @s2n_strerror_debug(i32 noundef %13889, ptr noundef @.str.4)
  %13891 = call ptr @__errno_location() #12
  %13892 = load i32, ptr %13891, align 4, !tbaa !5
  %13893 = call ptr @strerror(i32 noundef %13892) #11
  %13894 = call ptr @__errno_location() #12
  %13895 = load i32, ptr %13894, align 4, !tbaa !5
  %13896 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13883, ptr noundef @.str.2, i32 noundef %13884, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 612, ptr noundef %13887, ptr noundef %13890, ptr noundef %13893, i32 noundef %13895) #11
  br label %13914

13897:                                            ; preds = %13875, %13868
  %13898 = load i32, ptr %337, align 4, !tbaa !5
  %13899 = call ptr @__errno_location() #12
  store i32 %13898, ptr %13899, align 4, !tbaa !5
  %13900 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13901 = load i32, ptr @test_count, align 4, !tbaa !5
  %13902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13903 = load i32, ptr %13902, align 4, !tbaa !5
  %13904 = call ptr @s2n_strerror(i32 noundef %13903, ptr noundef @.str.4)
  %13905 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13906 = load i32, ptr %13905, align 4, !tbaa !5
  %13907 = call ptr @s2n_strerror_debug(i32 noundef %13906, ptr noundef @.str.4)
  %13908 = call ptr @__errno_location() #12
  %13909 = load i32, ptr %13908, align 4, !tbaa !5
  %13910 = call ptr @strerror(i32 noundef %13909) #11
  %13911 = call ptr @__errno_location() #12
  %13912 = load i32, ptr %13911, align 4, !tbaa !5
  %13913 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13900, ptr noundef @.str.5, i32 noundef %13901, ptr noundef @.str.114, ptr noundef @.str.1, i32 noundef 612, ptr noundef %13904, ptr noundef %13907, ptr noundef %13910, i32 noundef %13912) #11
  br label %13914

13914:                                            ; preds = %13897, %13880
  call void @llvm.lifetime.end.p0(i64 4, ptr %337) #11
  br label %13915

13915:                                            ; preds = %13914
  br label %13916

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

13917:                                            ; No predecessors!
  br label %13918

13918:                                            ; preds = %13917
  br label %13919

13919:                                            ; preds = %13918, %13860
  br label %13920

13920:                                            ; preds = %13919
  br label %13921

13921:                                            ; preds = %13920
  br label %13922

13922:                                            ; preds = %13921
  %13923 = load i32, ptr @test_count, align 4, !tbaa !5
  %13924 = add nsw i32 %13923, 1
  store i32 %13924, ptr @test_count, align 4, !tbaa !5
  %13925 = load i32, ptr %336, align 4, !tbaa !5
  %13926 = load i32, ptr %321, align 4, !tbaa !5
  %13927 = mul i32 %13926, 2
  %13928 = icmp eq i32 %13925, %13927
  br i1 %13928, label %13982, label %13929

13929:                                            ; preds = %13922
  br label %13930

13930:                                            ; preds = %13929
  br label %13931

13931:                                            ; preds = %13930
  call void @llvm.lifetime.start.p0(i64 4, ptr %338) #11
  %13932 = call ptr @__errno_location() #12
  %13933 = load i32, ptr %13932, align 4, !tbaa !5
  store i32 %13933, ptr %338, align 4, !tbaa !5
  %13934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13935 = call i32 @s2n_print_stacktrace(ptr noundef %13934)
  %13936 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13937 = trunc i8 %13936 to i1
  br i1 %13937, label %13938, label %13960

13938:                                            ; preds = %13931
  %13939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13940 = call i32 @fileno(ptr noundef %13939) #11
  %13941 = call i32 @isatty(i32 noundef %13940) #11
  %13942 = icmp ne i32 %13941, 0
  br i1 %13942, label %13943, label %13960

13943:                                            ; preds = %13938
  %13944 = load i32, ptr %338, align 4, !tbaa !5
  %13945 = call ptr @__errno_location() #12
  store i32 %13944, ptr %13945, align 4, !tbaa !5
  %13946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13947 = load i32, ptr @test_count, align 4, !tbaa !5
  %13948 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13949 = load i32, ptr %13948, align 4, !tbaa !5
  %13950 = call ptr @s2n_strerror(i32 noundef %13949, ptr noundef @.str.4)
  %13951 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13952 = load i32, ptr %13951, align 4, !tbaa !5
  %13953 = call ptr @s2n_strerror_debug(i32 noundef %13952, ptr noundef @.str.4)
  %13954 = call ptr @__errno_location() #12
  %13955 = load i32, ptr %13954, align 4, !tbaa !5
  %13956 = call ptr @strerror(i32 noundef %13955) #11
  %13957 = call ptr @__errno_location() #12
  %13958 = load i32, ptr %13957, align 4, !tbaa !5
  %13959 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13946, ptr noundef @.str.2, i32 noundef %13947, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 613, ptr noundef %13950, ptr noundef %13953, ptr noundef %13956, i32 noundef %13958) #11
  br label %13977

13960:                                            ; preds = %13938, %13931
  %13961 = load i32, ptr %338, align 4, !tbaa !5
  %13962 = call ptr @__errno_location() #12
  store i32 %13961, ptr %13962, align 4, !tbaa !5
  %13963 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13964 = load i32, ptr @test_count, align 4, !tbaa !5
  %13965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13966 = load i32, ptr %13965, align 4, !tbaa !5
  %13967 = call ptr @s2n_strerror(i32 noundef %13966, ptr noundef @.str.4)
  %13968 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %13969 = load i32, ptr %13968, align 4, !tbaa !5
  %13970 = call ptr @s2n_strerror_debug(i32 noundef %13969, ptr noundef @.str.4)
  %13971 = call ptr @__errno_location() #12
  %13972 = load i32, ptr %13971, align 4, !tbaa !5
  %13973 = call ptr @strerror(i32 noundef %13972) #11
  %13974 = call ptr @__errno_location() #12
  %13975 = load i32, ptr %13974, align 4, !tbaa !5
  %13976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13963, ptr noundef @.str.5, i32 noundef %13964, ptr noundef @.str.115, ptr noundef @.str.1, i32 noundef 613, ptr noundef %13967, ptr noundef %13970, ptr noundef %13973, i32 noundef %13975) #11
  br label %13977

13977:                                            ; preds = %13960, %13943
  call void @llvm.lifetime.end.p0(i64 4, ptr %338) #11
  br label %13978

13978:                                            ; preds = %13977
  br label %13979

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

13980:                                            ; No predecessors!
  br label %13981

13981:                                            ; preds = %13980
  br label %13982

13982:                                            ; preds = %13981, %13922
  br label %13983

13983:                                            ; preds = %13982
  br label %13984

13984:                                            ; preds = %13983
  call void @llvm.lifetime.end.p0(i64 4, ptr %336) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %339) #11
  store i32 0, ptr %339, align 4, !tbaa !5
  br label %13985

13985:                                            ; preds = %13984
  %13986 = load i32, ptr @test_count, align 4, !tbaa !5
  %13987 = add nsw i32 %13986, 1
  store i32 %13987, ptr @test_count, align 4, !tbaa !5
  %13988 = load ptr, ptr %318, align 8, !tbaa !9
  %13989 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %13988, ptr noundef %339)
  %13990 = icmp eq i32 %13989, -1
  br i1 %13990, label %13991, label %14044

13991:                                            ; preds = %13985
  br label %13992

13992:                                            ; preds = %13991
  br label %13993

13993:                                            ; preds = %13992
  call void @llvm.lifetime.start.p0(i64 4, ptr %340) #11
  %13994 = call ptr @__errno_location() #12
  %13995 = load i32, ptr %13994, align 4, !tbaa !5
  store i32 %13995, ptr %340, align 4, !tbaa !5
  %13996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %13997 = call i32 @s2n_print_stacktrace(ptr noundef %13996)
  %13998 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %13999 = trunc i8 %13998 to i1
  br i1 %13999, label %14000, label %14022

14000:                                            ; preds = %13993
  %14001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14002 = call i32 @fileno(ptr noundef %14001) #11
  %14003 = call i32 @isatty(i32 noundef %14002) #11
  %14004 = icmp ne i32 %14003, 0
  br i1 %14004, label %14005, label %14022

14005:                                            ; preds = %14000
  %14006 = load i32, ptr %340, align 4, !tbaa !5
  %14007 = call ptr @__errno_location() #12
  store i32 %14006, ptr %14007, align 4, !tbaa !5
  %14008 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14009 = load i32, ptr @test_count, align 4, !tbaa !5
  %14010 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14011 = load i32, ptr %14010, align 4, !tbaa !5
  %14012 = call ptr @s2n_strerror(i32 noundef %14011, ptr noundef @.str.4)
  %14013 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14014 = load i32, ptr %14013, align 4, !tbaa !5
  %14015 = call ptr @s2n_strerror_debug(i32 noundef %14014, ptr noundef @.str.4)
  %14016 = call ptr @__errno_location() #12
  %14017 = load i32, ptr %14016, align 4, !tbaa !5
  %14018 = call ptr @strerror(i32 noundef %14017) #11
  %14019 = call ptr @__errno_location() #12
  %14020 = load i32, ptr %14019, align 4, !tbaa !5
  %14021 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14008, ptr noundef @.str.2, i32 noundef %14009, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 619, ptr noundef %14012, ptr noundef %14015, ptr noundef %14018, i32 noundef %14020) #11
  br label %14039

14022:                                            ; preds = %14000, %13993
  %14023 = load i32, ptr %340, align 4, !tbaa !5
  %14024 = call ptr @__errno_location() #12
  store i32 %14023, ptr %14024, align 4, !tbaa !5
  %14025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14026 = load i32, ptr @test_count, align 4, !tbaa !5
  %14027 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14028 = load i32, ptr %14027, align 4, !tbaa !5
  %14029 = call ptr @s2n_strerror(i32 noundef %14028, ptr noundef @.str.4)
  %14030 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14031 = load i32, ptr %14030, align 4, !tbaa !5
  %14032 = call ptr @s2n_strerror_debug(i32 noundef %14031, ptr noundef @.str.4)
  %14033 = call ptr @__errno_location() #12
  %14034 = load i32, ptr %14033, align 4, !tbaa !5
  %14035 = call ptr @strerror(i32 noundef %14034) #11
  %14036 = call ptr @__errno_location() #12
  %14037 = load i32, ptr %14036, align 4, !tbaa !5
  %14038 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14025, ptr noundef @.str.5, i32 noundef %14026, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 619, ptr noundef %14029, ptr noundef %14032, ptr noundef %14035, i32 noundef %14037) #11
  br label %14039

14039:                                            ; preds = %14022, %14005
  call void @llvm.lifetime.end.p0(i64 4, ptr %340) #11
  br label %14040

14040:                                            ; preds = %14039
  br label %14041

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

14042:                                            ; No predecessors!
  br label %14043

14043:                                            ; preds = %14042
  br label %14044

14044:                                            ; preds = %14043, %13985
  br label %14045

14045:                                            ; preds = %14044
  br label %14046

14046:                                            ; preds = %14045
  br label %14047

14047:                                            ; preds = %14046
  %14048 = load i32, ptr @test_count, align 4, !tbaa !5
  %14049 = add nsw i32 %14048, 1
  store i32 %14049, ptr @test_count, align 4, !tbaa !5
  %14050 = load i32, ptr %339, align 4, !tbaa !5
  %14051 = load i32, ptr %322, align 4, !tbaa !5
  %14052 = icmp eq i32 %14050, %14051
  br i1 %14052, label %14106, label %14053

14053:                                            ; preds = %14047
  br label %14054

14054:                                            ; preds = %14053
  br label %14055

14055:                                            ; preds = %14054
  call void @llvm.lifetime.start.p0(i64 4, ptr %341) #11
  %14056 = call ptr @__errno_location() #12
  %14057 = load i32, ptr %14056, align 4, !tbaa !5
  store i32 %14057, ptr %341, align 4, !tbaa !5
  %14058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14059 = call i32 @s2n_print_stacktrace(ptr noundef %14058)
  %14060 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14061 = trunc i8 %14060 to i1
  br i1 %14061, label %14062, label %14084

14062:                                            ; preds = %14055
  %14063 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14064 = call i32 @fileno(ptr noundef %14063) #11
  %14065 = call i32 @isatty(i32 noundef %14064) #11
  %14066 = icmp ne i32 %14065, 0
  br i1 %14066, label %14067, label %14084

14067:                                            ; preds = %14062
  %14068 = load i32, ptr %341, align 4, !tbaa !5
  %14069 = call ptr @__errno_location() #12
  store i32 %14068, ptr %14069, align 4, !tbaa !5
  %14070 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14071 = load i32, ptr @test_count, align 4, !tbaa !5
  %14072 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14073 = load i32, ptr %14072, align 4, !tbaa !5
  %14074 = call ptr @s2n_strerror(i32 noundef %14073, ptr noundef @.str.4)
  %14075 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14076 = load i32, ptr %14075, align 4, !tbaa !5
  %14077 = call ptr @s2n_strerror_debug(i32 noundef %14076, ptr noundef @.str.4)
  %14078 = call ptr @__errno_location() #12
  %14079 = load i32, ptr %14078, align 4, !tbaa !5
  %14080 = call ptr @strerror(i32 noundef %14079) #11
  %14081 = call ptr @__errno_location() #12
  %14082 = load i32, ptr %14081, align 4, !tbaa !5
  %14083 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14070, ptr noundef @.str.2, i32 noundef %14071, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 620, ptr noundef %14074, ptr noundef %14077, ptr noundef %14080, i32 noundef %14082) #11
  br label %14101

14084:                                            ; preds = %14062, %14055
  %14085 = load i32, ptr %341, align 4, !tbaa !5
  %14086 = call ptr @__errno_location() #12
  store i32 %14085, ptr %14086, align 4, !tbaa !5
  %14087 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14088 = load i32, ptr @test_count, align 4, !tbaa !5
  %14089 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14090 = load i32, ptr %14089, align 4, !tbaa !5
  %14091 = call ptr @s2n_strerror(i32 noundef %14090, ptr noundef @.str.4)
  %14092 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14093 = load i32, ptr %14092, align 4, !tbaa !5
  %14094 = call ptr @s2n_strerror_debug(i32 noundef %14093, ptr noundef @.str.4)
  %14095 = call ptr @__errno_location() #12
  %14096 = load i32, ptr %14095, align 4, !tbaa !5
  %14097 = call ptr @strerror(i32 noundef %14096) #11
  %14098 = call ptr @__errno_location() #12
  %14099 = load i32, ptr %14098, align 4, !tbaa !5
  %14100 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14087, ptr noundef @.str.5, i32 noundef %14088, ptr noundef @.str.116, ptr noundef @.str.1, i32 noundef 620, ptr noundef %14091, ptr noundef %14094, ptr noundef %14097, i32 noundef %14099) #11
  br label %14101

14101:                                            ; preds = %14084, %14067
  call void @llvm.lifetime.end.p0(i64 4, ptr %341) #11
  br label %14102

14102:                                            ; preds = %14101
  br label %14103

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

14104:                                            ; No predecessors!
  br label %14105

14105:                                            ; preds = %14104
  br label %14106

14106:                                            ; preds = %14105, %14047
  br label %14107

14107:                                            ; preds = %14106
  br label %14108

14108:                                            ; preds = %14107
  call void @llvm.lifetime.end.p0(i64 4, ptr %339) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %322) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %321) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %320) #11
  %14109 = call i32 @s2n_fingerprint_free(ptr noundef %318)
  call void @llvm.lifetime.end.p0(i64 8, ptr %318) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %342) #11
  %14110 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %14110, ptr %342, align 8, !tbaa !9
  br label %14111

14111:                                            ; preds = %14108
  %14112 = load i32, ptr @test_count, align 4, !tbaa !5
  %14113 = add nsw i32 %14112, 1
  store i32 %14113, ptr @test_count, align 4, !tbaa !5
  %14114 = load ptr, ptr %342, align 8, !tbaa !9
  %14115 = load ptr, ptr %14, align 8, !tbaa !9
  %14116 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %14114, ptr noundef %14115)
  %14117 = icmp eq i32 %14116, -1
  br i1 %14117, label %14118, label %14171

14118:                                            ; preds = %14111
  br label %14119

14119:                                            ; preds = %14118
  br label %14120

14120:                                            ; preds = %14119
  call void @llvm.lifetime.start.p0(i64 4, ptr %343) #11
  %14121 = call ptr @__errno_location() #12
  %14122 = load i32, ptr %14121, align 4, !tbaa !5
  store i32 %14122, ptr %343, align 4, !tbaa !5
  %14123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14124 = call i32 @s2n_print_stacktrace(ptr noundef %14123)
  %14125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14126 = trunc i8 %14125 to i1
  br i1 %14126, label %14127, label %14149

14127:                                            ; preds = %14120
  %14128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14129 = call i32 @fileno(ptr noundef %14128) #11
  %14130 = call i32 @isatty(i32 noundef %14129) #11
  %14131 = icmp ne i32 %14130, 0
  br i1 %14131, label %14132, label %14149

14132:                                            ; preds = %14127
  %14133 = load i32, ptr %343, align 4, !tbaa !5
  %14134 = call ptr @__errno_location() #12
  store i32 %14133, ptr %14134, align 4, !tbaa !5
  %14135 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14136 = load i32, ptr @test_count, align 4, !tbaa !5
  %14137 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14138 = load i32, ptr %14137, align 4, !tbaa !5
  %14139 = call ptr @s2n_strerror(i32 noundef %14138, ptr noundef @.str.4)
  %14140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14141 = load i32, ptr %14140, align 4, !tbaa !5
  %14142 = call ptr @s2n_strerror_debug(i32 noundef %14141, ptr noundef @.str.4)
  %14143 = call ptr @__errno_location() #12
  %14144 = load i32, ptr %14143, align 4, !tbaa !5
  %14145 = call ptr @strerror(i32 noundef %14144) #11
  %14146 = call ptr @__errno_location() #12
  %14147 = load i32, ptr %14146, align 4, !tbaa !5
  %14148 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14135, ptr noundef @.str.2, i32 noundef %14136, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 628, ptr noundef %14139, ptr noundef %14142, ptr noundef %14145, i32 noundef %14147) #11
  br label %14166

14149:                                            ; preds = %14127, %14120
  %14150 = load i32, ptr %343, align 4, !tbaa !5
  %14151 = call ptr @__errno_location() #12
  store i32 %14150, ptr %14151, align 4, !tbaa !5
  %14152 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14153 = load i32, ptr @test_count, align 4, !tbaa !5
  %14154 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14155 = load i32, ptr %14154, align 4, !tbaa !5
  %14156 = call ptr @s2n_strerror(i32 noundef %14155, ptr noundef @.str.4)
  %14157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14158 = load i32, ptr %14157, align 4, !tbaa !5
  %14159 = call ptr @s2n_strerror_debug(i32 noundef %14158, ptr noundef @.str.4)
  %14160 = call ptr @__errno_location() #12
  %14161 = load i32, ptr %14160, align 4, !tbaa !5
  %14162 = call ptr @strerror(i32 noundef %14161) #11
  %14163 = call ptr @__errno_location() #12
  %14164 = load i32, ptr %14163, align 4, !tbaa !5
  %14165 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14152, ptr noundef @.str.5, i32 noundef %14153, ptr noundef @.str.74, ptr noundef @.str.1, i32 noundef 628, ptr noundef %14156, ptr noundef %14159, ptr noundef %14162, i32 noundef %14164) #11
  br label %14166

14166:                                            ; preds = %14149, %14132
  call void @llvm.lifetime.end.p0(i64 4, ptr %343) #11
  br label %14167

14167:                                            ; preds = %14166
  br label %14168

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

14169:                                            ; No predecessors!
  br label %14170

14170:                                            ; preds = %14169
  br label %14171

14171:                                            ; preds = %14170, %14111
  br label %14172

14172:                                            ; preds = %14171
  br label %14173

14173:                                            ; preds = %14172
  call void @llvm.lifetime.start.p0(i64 100, ptr %344) #11
  call void @llvm.memset.p0.i64(ptr align 16 %344, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %345) #11
  store i32 0, ptr %345, align 4, !tbaa !5
  br label %14174

14174:                                            ; preds = %14173
  %14175 = load i32, ptr @test_count, align 4, !tbaa !5
  %14176 = add nsw i32 %14175, 1
  store i32 %14176, ptr @test_count, align 4, !tbaa !5
  %14177 = load ptr, ptr %14, align 8, !tbaa !9
  %14178 = getelementptr inbounds [100 x i8], ptr %344, i64 0, i64 0
  %14179 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %14177, i32 noundef 0, i32 noundef 100, ptr noundef %14178, ptr noundef %345)
  %14180 = icmp eq i32 %14179, -1
  br i1 %14180, label %14181, label %14234

14181:                                            ; preds = %14174
  br label %14182

14182:                                            ; preds = %14181
  br label %14183

14183:                                            ; preds = %14182
  call void @llvm.lifetime.start.p0(i64 4, ptr %346) #11
  %14184 = call ptr @__errno_location() #12
  %14185 = load i32, ptr %14184, align 4, !tbaa !5
  store i32 %14185, ptr %346, align 4, !tbaa !5
  %14186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14187 = call i32 @s2n_print_stacktrace(ptr noundef %14186)
  %14188 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14189 = trunc i8 %14188 to i1
  br i1 %14189, label %14190, label %14212

14190:                                            ; preds = %14183
  %14191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14192 = call i32 @fileno(ptr noundef %14191) #11
  %14193 = call i32 @isatty(i32 noundef %14192) #11
  %14194 = icmp ne i32 %14193, 0
  br i1 %14194, label %14195, label %14212

14195:                                            ; preds = %14190
  %14196 = load i32, ptr %346, align 4, !tbaa !5
  %14197 = call ptr @__errno_location() #12
  store i32 %14196, ptr %14197, align 4, !tbaa !5
  %14198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14199 = load i32, ptr @test_count, align 4, !tbaa !5
  %14200 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14201 = load i32, ptr %14200, align 4, !tbaa !5
  %14202 = call ptr @s2n_strerror(i32 noundef %14201, ptr noundef @.str.4)
  %14203 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14204 = load i32, ptr %14203, align 4, !tbaa !5
  %14205 = call ptr @s2n_strerror_debug(i32 noundef %14204, ptr noundef @.str.4)
  %14206 = call ptr @__errno_location() #12
  %14207 = load i32, ptr %14206, align 4, !tbaa !5
  %14208 = call ptr @strerror(i32 noundef %14207) #11
  %14209 = call ptr @__errno_location() #12
  %14210 = load i32, ptr %14209, align 4, !tbaa !5
  %14211 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14198, ptr noundef @.str.2, i32 noundef %14199, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 633, ptr noundef %14202, ptr noundef %14205, ptr noundef %14208, i32 noundef %14210) #11
  br label %14229

14212:                                            ; preds = %14190, %14183
  %14213 = load i32, ptr %346, align 4, !tbaa !5
  %14214 = call ptr @__errno_location() #12
  store i32 %14213, ptr %14214, align 4, !tbaa !5
  %14215 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14216 = load i32, ptr @test_count, align 4, !tbaa !5
  %14217 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14218 = load i32, ptr %14217, align 4, !tbaa !5
  %14219 = call ptr @s2n_strerror(i32 noundef %14218, ptr noundef @.str.4)
  %14220 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14221 = load i32, ptr %14220, align 4, !tbaa !5
  %14222 = call ptr @s2n_strerror_debug(i32 noundef %14221, ptr noundef @.str.4)
  %14223 = call ptr @__errno_location() #12
  %14224 = load i32, ptr %14223, align 4, !tbaa !5
  %14225 = call ptr @strerror(i32 noundef %14224) #11
  %14226 = call ptr @__errno_location() #12
  %14227 = load i32, ptr %14226, align 4, !tbaa !5
  %14228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14215, ptr noundef @.str.5, i32 noundef %14216, ptr noundef @.str.117, ptr noundef @.str.1, i32 noundef 633, ptr noundef %14219, ptr noundef %14222, ptr noundef %14225, i32 noundef %14227) #11
  br label %14229

14229:                                            ; preds = %14212, %14195
  call void @llvm.lifetime.end.p0(i64 4, ptr %346) #11
  br label %14230

14230:                                            ; preds = %14229
  br label %14231

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

14232:                                            ; No predecessors!
  br label %14233

14233:                                            ; preds = %14232
  br label %14234

14234:                                            ; preds = %14233, %14174
  br label %14235

14235:                                            ; preds = %14234
  br label %14236

14236:                                            ; preds = %14235
  call void @llvm.lifetime.start.p0(i64 100, ptr %347) #11
  call void @llvm.memset.p0.i64(ptr align 16 %347, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr %348) #11
  store i32 0, ptr %348, align 4, !tbaa !5
  br label %14237

14237:                                            ; preds = %14236
  %14238 = load i32, ptr @test_count, align 4, !tbaa !5
  %14239 = add nsw i32 %14238, 1
  store i32 %14239, ptr @test_count, align 4, !tbaa !5
  %14240 = load ptr, ptr %342, align 8, !tbaa !9
  %14241 = getelementptr inbounds [100 x i8], ptr %347, i64 0, i64 0
  %14242 = call i32 @s2n_fingerprint_get_raw(ptr noundef %14240, i32 noundef 100, ptr noundef %14241, ptr noundef %348)
  %14243 = icmp eq i32 %14242, -1
  br i1 %14243, label %14244, label %14297

14244:                                            ; preds = %14237
  br label %14245

14245:                                            ; preds = %14244
  br label %14246

14246:                                            ; preds = %14245
  call void @llvm.lifetime.start.p0(i64 4, ptr %349) #11
  %14247 = call ptr @__errno_location() #12
  %14248 = load i32, ptr %14247, align 4, !tbaa !5
  store i32 %14248, ptr %349, align 4, !tbaa !5
  %14249 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14250 = call i32 @s2n_print_stacktrace(ptr noundef %14249)
  %14251 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14252 = trunc i8 %14251 to i1
  br i1 %14252, label %14253, label %14275

14253:                                            ; preds = %14246
  %14254 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14255 = call i32 @fileno(ptr noundef %14254) #11
  %14256 = call i32 @isatty(i32 noundef %14255) #11
  %14257 = icmp ne i32 %14256, 0
  br i1 %14257, label %14258, label %14275

14258:                                            ; preds = %14253
  %14259 = load i32, ptr %349, align 4, !tbaa !5
  %14260 = call ptr @__errno_location() #12
  store i32 %14259, ptr %14260, align 4, !tbaa !5
  %14261 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14262 = load i32, ptr @test_count, align 4, !tbaa !5
  %14263 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14264 = load i32, ptr %14263, align 4, !tbaa !5
  %14265 = call ptr @s2n_strerror(i32 noundef %14264, ptr noundef @.str.4)
  %14266 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14267 = load i32, ptr %14266, align 4, !tbaa !5
  %14268 = call ptr @s2n_strerror_debug(i32 noundef %14267, ptr noundef @.str.4)
  %14269 = call ptr @__errno_location() #12
  %14270 = load i32, ptr %14269, align 4, !tbaa !5
  %14271 = call ptr @strerror(i32 noundef %14270) #11
  %14272 = call ptr @__errno_location() #12
  %14273 = load i32, ptr %14272, align 4, !tbaa !5
  %14274 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14261, ptr noundef @.str.2, i32 noundef %14262, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 640, ptr noundef %14265, ptr noundef %14268, ptr noundef %14271, i32 noundef %14273) #11
  br label %14292

14275:                                            ; preds = %14253, %14246
  %14276 = load i32, ptr %349, align 4, !tbaa !5
  %14277 = call ptr @__errno_location() #12
  store i32 %14276, ptr %14277, align 4, !tbaa !5
  %14278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14279 = load i32, ptr @test_count, align 4, !tbaa !5
  %14280 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14281 = load i32, ptr %14280, align 4, !tbaa !5
  %14282 = call ptr @s2n_strerror(i32 noundef %14281, ptr noundef @.str.4)
  %14283 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14284 = load i32, ptr %14283, align 4, !tbaa !5
  %14285 = call ptr @s2n_strerror_debug(i32 noundef %14284, ptr noundef @.str.4)
  %14286 = call ptr @__errno_location() #12
  %14287 = load i32, ptr %14286, align 4, !tbaa !5
  %14288 = call ptr @strerror(i32 noundef %14287) #11
  %14289 = call ptr @__errno_location() #12
  %14290 = load i32, ptr %14289, align 4, !tbaa !5
  %14291 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14278, ptr noundef @.str.5, i32 noundef %14279, ptr noundef @.str.103, ptr noundef @.str.1, i32 noundef 640, ptr noundef %14282, ptr noundef %14285, ptr noundef %14288, i32 noundef %14290) #11
  br label %14292

14292:                                            ; preds = %14275, %14258
  call void @llvm.lifetime.end.p0(i64 4, ptr %349) #11
  br label %14293

14293:                                            ; preds = %14292
  br label %14294

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

14295:                                            ; No predecessors!
  br label %14296

14296:                                            ; preds = %14295
  br label %14297

14297:                                            ; preds = %14296, %14237
  br label %14298

14298:                                            ; preds = %14297
  br label %14299

14299:                                            ; preds = %14298
  br label %14300

14300:                                            ; preds = %14299
  %14301 = load i32, ptr @test_count, align 4, !tbaa !5
  %14302 = add nsw i32 %14301, 1
  store i32 %14302, ptr @test_count, align 4, !tbaa !5
  %14303 = load i32, ptr %348, align 4, !tbaa !5
  %14304 = load i32, ptr %345, align 4, !tbaa !5
  %14305 = icmp eq i32 %14303, %14304
  br i1 %14305, label %14359, label %14306

14306:                                            ; preds = %14300
  br label %14307

14307:                                            ; preds = %14306
  br label %14308

14308:                                            ; preds = %14307
  call void @llvm.lifetime.start.p0(i64 4, ptr %350) #11
  %14309 = call ptr @__errno_location() #12
  %14310 = load i32, ptr %14309, align 4, !tbaa !5
  store i32 %14310, ptr %350, align 4, !tbaa !5
  %14311 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14312 = call i32 @s2n_print_stacktrace(ptr noundef %14311)
  %14313 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14314 = trunc i8 %14313 to i1
  br i1 %14314, label %14315, label %14337

14315:                                            ; preds = %14308
  %14316 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14317 = call i32 @fileno(ptr noundef %14316) #11
  %14318 = call i32 @isatty(i32 noundef %14317) #11
  %14319 = icmp ne i32 %14318, 0
  br i1 %14319, label %14320, label %14337

14320:                                            ; preds = %14315
  %14321 = load i32, ptr %350, align 4, !tbaa !5
  %14322 = call ptr @__errno_location() #12
  store i32 %14321, ptr %14322, align 4, !tbaa !5
  %14323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14324 = load i32, ptr @test_count, align 4, !tbaa !5
  %14325 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14326 = load i32, ptr %14325, align 4, !tbaa !5
  %14327 = call ptr @s2n_strerror(i32 noundef %14326, ptr noundef @.str.4)
  %14328 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14329 = load i32, ptr %14328, align 4, !tbaa !5
  %14330 = call ptr @s2n_strerror_debug(i32 noundef %14329, ptr noundef @.str.4)
  %14331 = call ptr @__errno_location() #12
  %14332 = load i32, ptr %14331, align 4, !tbaa !5
  %14333 = call ptr @strerror(i32 noundef %14332) #11
  %14334 = call ptr @__errno_location() #12
  %14335 = load i32, ptr %14334, align 4, !tbaa !5
  %14336 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14323, ptr noundef @.str.2, i32 noundef %14324, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 642, ptr noundef %14327, ptr noundef %14330, ptr noundef %14333, i32 noundef %14335) #11
  br label %14354

14337:                                            ; preds = %14315, %14308
  %14338 = load i32, ptr %350, align 4, !tbaa !5
  %14339 = call ptr @__errno_location() #12
  store i32 %14338, ptr %14339, align 4, !tbaa !5
  %14340 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14341 = load i32, ptr @test_count, align 4, !tbaa !5
  %14342 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14343 = load i32, ptr %14342, align 4, !tbaa !5
  %14344 = call ptr @s2n_strerror(i32 noundef %14343, ptr noundef @.str.4)
  %14345 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14346 = load i32, ptr %14345, align 4, !tbaa !5
  %14347 = call ptr @s2n_strerror_debug(i32 noundef %14346, ptr noundef @.str.4)
  %14348 = call ptr @__errno_location() #12
  %14349 = load i32, ptr %14348, align 4, !tbaa !5
  %14350 = call ptr @strerror(i32 noundef %14349) #11
  %14351 = call ptr @__errno_location() #12
  %14352 = load i32, ptr %14351, align 4, !tbaa !5
  %14353 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14340, ptr noundef @.str.5, i32 noundef %14341, ptr noundef @.str.118, ptr noundef @.str.1, i32 noundef 642, ptr noundef %14344, ptr noundef %14347, ptr noundef %14350, i32 noundef %14352) #11
  br label %14354

14354:                                            ; preds = %14337, %14320
  call void @llvm.lifetime.end.p0(i64 4, ptr %350) #11
  br label %14355

14355:                                            ; preds = %14354
  br label %14356

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

14357:                                            ; No predecessors!
  br label %14358

14358:                                            ; preds = %14357
  br label %14359

14359:                                            ; preds = %14358, %14300
  br label %14360

14360:                                            ; preds = %14359
  br label %14361

14361:                                            ; preds = %14360
  br label %14362

14362:                                            ; preds = %14361
  %14363 = load i32, ptr %345, align 4, !tbaa !5
  %14364 = icmp ne i32 %14363, 0
  br i1 %14364, label %14365, label %14431

14365:                                            ; preds = %14362
  br label %14366

14366:                                            ; preds = %14365
  %14367 = load i32, ptr @test_count, align 4, !tbaa !5
  %14368 = add nsw i32 %14367, 1
  store i32 %14368, ptr @test_count, align 4, !tbaa !5
  %14369 = getelementptr inbounds [100 x i8], ptr %347, i64 0, i64 0
  %14370 = getelementptr inbounds [100 x i8], ptr %344, i64 0, i64 0
  %14371 = load i32, ptr %345, align 4, !tbaa !5
  %14372 = zext i32 %14371 to i64
  %14373 = call i32 @memcmp(ptr noundef %14369, ptr noundef %14370, i64 noundef %14372) #14
  %14374 = icmp eq i32 %14373, 0
  br i1 %14374, label %14428, label %14375

14375:                                            ; preds = %14366
  br label %14376

14376:                                            ; preds = %14375
  br label %14377

14377:                                            ; preds = %14376
  call void @llvm.lifetime.start.p0(i64 4, ptr %351) #11
  %14378 = call ptr @__errno_location() #12
  %14379 = load i32, ptr %14378, align 4, !tbaa !5
  store i32 %14379, ptr %351, align 4, !tbaa !5
  %14380 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14381 = call i32 @s2n_print_stacktrace(ptr noundef %14380)
  %14382 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14383 = trunc i8 %14382 to i1
  br i1 %14383, label %14384, label %14406

14384:                                            ; preds = %14377
  %14385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14386 = call i32 @fileno(ptr noundef %14385) #11
  %14387 = call i32 @isatty(i32 noundef %14386) #11
  %14388 = icmp ne i32 %14387, 0
  br i1 %14388, label %14389, label %14406

14389:                                            ; preds = %14384
  %14390 = load i32, ptr %351, align 4, !tbaa !5
  %14391 = call ptr @__errno_location() #12
  store i32 %14390, ptr %14391, align 4, !tbaa !5
  %14392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14393 = load i32, ptr @test_count, align 4, !tbaa !5
  %14394 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14395 = load i32, ptr %14394, align 4, !tbaa !5
  %14396 = call ptr @s2n_strerror(i32 noundef %14395, ptr noundef @.str.4)
  %14397 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14398 = load i32, ptr %14397, align 4, !tbaa !5
  %14399 = call ptr @s2n_strerror_debug(i32 noundef %14398, ptr noundef @.str.4)
  %14400 = call ptr @__errno_location() #12
  %14401 = load i32, ptr %14400, align 4, !tbaa !5
  %14402 = call ptr @strerror(i32 noundef %14401) #11
  %14403 = call ptr @__errno_location() #12
  %14404 = load i32, ptr %14403, align 4, !tbaa !5
  %14405 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14392, ptr noundef @.str.2, i32 noundef %14393, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 643, ptr noundef %14396, ptr noundef %14399, ptr noundef %14402, i32 noundef %14404) #11
  br label %14423

14406:                                            ; preds = %14384, %14377
  %14407 = load i32, ptr %351, align 4, !tbaa !5
  %14408 = call ptr @__errno_location() #12
  store i32 %14407, ptr %14408, align 4, !tbaa !5
  %14409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14410 = load i32, ptr @test_count, align 4, !tbaa !5
  %14411 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14412 = load i32, ptr %14411, align 4, !tbaa !5
  %14413 = call ptr @s2n_strerror(i32 noundef %14412, ptr noundef @.str.4)
  %14414 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14415 = load i32, ptr %14414, align 4, !tbaa !5
  %14416 = call ptr @s2n_strerror_debug(i32 noundef %14415, ptr noundef @.str.4)
  %14417 = call ptr @__errno_location() #12
  %14418 = load i32, ptr %14417, align 4, !tbaa !5
  %14419 = call ptr @strerror(i32 noundef %14418) #11
  %14420 = call ptr @__errno_location() #12
  %14421 = load i32, ptr %14420, align 4, !tbaa !5
  %14422 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14409, ptr noundef @.str.5, i32 noundef %14410, ptr noundef @.str.119, ptr noundef @.str.1, i32 noundef 643, ptr noundef %14413, ptr noundef %14416, ptr noundef %14419, i32 noundef %14421) #11
  br label %14423

14423:                                            ; preds = %14406, %14389
  call void @llvm.lifetime.end.p0(i64 4, ptr %351) #11
  br label %14424

14424:                                            ; preds = %14423
  br label %14425

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

14426:                                            ; No predecessors!
  br label %14427

14427:                                            ; preds = %14426
  br label %14428

14428:                                            ; preds = %14427, %14366
  br label %14429

14429:                                            ; preds = %14428
  br label %14430

14430:                                            ; preds = %14429
  br label %14431

14431:                                            ; preds = %14430, %14362
  br label %14432

14432:                                            ; preds = %14431
  br label %14433

14433:                                            ; preds = %14432
  call void @llvm.lifetime.end.p0(i64 4, ptr %348) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %347) #11
  call void @llvm.lifetime.start.p0(i64 4, ptr %352) #11
  store i32 0, ptr %352, align 4, !tbaa !5
  br label %14434

14434:                                            ; preds = %14433
  %14435 = load i32, ptr @test_count, align 4, !tbaa !5
  %14436 = add nsw i32 %14435, 1
  store i32 %14436, ptr @test_count, align 4, !tbaa !5
  %14437 = load ptr, ptr %342, align 8, !tbaa !9
  %14438 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %14437, ptr noundef %352)
  %14439 = icmp eq i32 %14438, -1
  br i1 %14439, label %14440, label %14493

14440:                                            ; preds = %14434
  br label %14441

14441:                                            ; preds = %14440
  br label %14442

14442:                                            ; preds = %14441
  call void @llvm.lifetime.start.p0(i64 4, ptr %353) #11
  %14443 = call ptr @__errno_location() #12
  %14444 = load i32, ptr %14443, align 4, !tbaa !5
  store i32 %14444, ptr %353, align 4, !tbaa !5
  %14445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14446 = call i32 @s2n_print_stacktrace(ptr noundef %14445)
  %14447 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14448 = trunc i8 %14447 to i1
  br i1 %14448, label %14449, label %14471

14449:                                            ; preds = %14442
  %14450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14451 = call i32 @fileno(ptr noundef %14450) #11
  %14452 = call i32 @isatty(i32 noundef %14451) #11
  %14453 = icmp ne i32 %14452, 0
  br i1 %14453, label %14454, label %14471

14454:                                            ; preds = %14449
  %14455 = load i32, ptr %353, align 4, !tbaa !5
  %14456 = call ptr @__errno_location() #12
  store i32 %14455, ptr %14456, align 4, !tbaa !5
  %14457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14458 = load i32, ptr @test_count, align 4, !tbaa !5
  %14459 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14460 = load i32, ptr %14459, align 4, !tbaa !5
  %14461 = call ptr @s2n_strerror(i32 noundef %14460, ptr noundef @.str.4)
  %14462 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14463 = load i32, ptr %14462, align 4, !tbaa !5
  %14464 = call ptr @s2n_strerror_debug(i32 noundef %14463, ptr noundef @.str.4)
  %14465 = call ptr @__errno_location() #12
  %14466 = load i32, ptr %14465, align 4, !tbaa !5
  %14467 = call ptr @strerror(i32 noundef %14466) #11
  %14468 = call ptr @__errno_location() #12
  %14469 = load i32, ptr %14468, align 4, !tbaa !5
  %14470 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14457, ptr noundef @.str.2, i32 noundef %14458, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 649, ptr noundef %14461, ptr noundef %14464, ptr noundef %14467, i32 noundef %14469) #11
  br label %14488

14471:                                            ; preds = %14449, %14442
  %14472 = load i32, ptr %353, align 4, !tbaa !5
  %14473 = call ptr @__errno_location() #12
  store i32 %14472, ptr %14473, align 4, !tbaa !5
  %14474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14475 = load i32, ptr @test_count, align 4, !tbaa !5
  %14476 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14477 = load i32, ptr %14476, align 4, !tbaa !5
  %14478 = call ptr @s2n_strerror(i32 noundef %14477, ptr noundef @.str.4)
  %14479 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14480 = load i32, ptr %14479, align 4, !tbaa !5
  %14481 = call ptr @s2n_strerror_debug(i32 noundef %14480, ptr noundef @.str.4)
  %14482 = call ptr @__errno_location() #12
  %14483 = load i32, ptr %14482, align 4, !tbaa !5
  %14484 = call ptr @strerror(i32 noundef %14483) #11
  %14485 = call ptr @__errno_location() #12
  %14486 = load i32, ptr %14485, align 4, !tbaa !5
  %14487 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14474, ptr noundef @.str.5, i32 noundef %14475, ptr noundef @.str.98, ptr noundef @.str.1, i32 noundef 649, ptr noundef %14478, ptr noundef %14481, ptr noundef %14484, i32 noundef %14486) #11
  br label %14488

14488:                                            ; preds = %14471, %14454
  call void @llvm.lifetime.end.p0(i64 4, ptr %353) #11
  br label %14489

14489:                                            ; preds = %14488
  br label %14490

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

14491:                                            ; No predecessors!
  br label %14492

14492:                                            ; preds = %14491
  br label %14493

14493:                                            ; preds = %14492, %14434
  br label %14494

14494:                                            ; preds = %14493
  br label %14495

14495:                                            ; preds = %14494
  br label %14496

14496:                                            ; preds = %14495
  %14497 = load i32, ptr @test_count, align 4, !tbaa !5
  %14498 = add nsw i32 %14497, 1
  store i32 %14498, ptr @test_count, align 4, !tbaa !5
  %14499 = load i32, ptr %352, align 4, !tbaa !5
  %14500 = load i32, ptr %345, align 4, !tbaa !5
  %14501 = icmp eq i32 %14499, %14500
  br i1 %14501, label %14555, label %14502

14502:                                            ; preds = %14496
  br label %14503

14503:                                            ; preds = %14502
  br label %14504

14504:                                            ; preds = %14503
  call void @llvm.lifetime.start.p0(i64 4, ptr %354) #11
  %14505 = call ptr @__errno_location() #12
  %14506 = load i32, ptr %14505, align 4, !tbaa !5
  store i32 %14506, ptr %354, align 4, !tbaa !5
  %14507 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14508 = call i32 @s2n_print_stacktrace(ptr noundef %14507)
  %14509 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14510 = trunc i8 %14509 to i1
  br i1 %14510, label %14511, label %14533

14511:                                            ; preds = %14504
  %14512 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14513 = call i32 @fileno(ptr noundef %14512) #11
  %14514 = call i32 @isatty(i32 noundef %14513) #11
  %14515 = icmp ne i32 %14514, 0
  br i1 %14515, label %14516, label %14533

14516:                                            ; preds = %14511
  %14517 = load i32, ptr %354, align 4, !tbaa !5
  %14518 = call ptr @__errno_location() #12
  store i32 %14517, ptr %14518, align 4, !tbaa !5
  %14519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14520 = load i32, ptr @test_count, align 4, !tbaa !5
  %14521 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14522 = load i32, ptr %14521, align 4, !tbaa !5
  %14523 = call ptr @s2n_strerror(i32 noundef %14522, ptr noundef @.str.4)
  %14524 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14525 = load i32, ptr %14524, align 4, !tbaa !5
  %14526 = call ptr @s2n_strerror_debug(i32 noundef %14525, ptr noundef @.str.4)
  %14527 = call ptr @__errno_location() #12
  %14528 = load i32, ptr %14527, align 4, !tbaa !5
  %14529 = call ptr @strerror(i32 noundef %14528) #11
  %14530 = call ptr @__errno_location() #12
  %14531 = load i32, ptr %14530, align 4, !tbaa !5
  %14532 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14519, ptr noundef @.str.2, i32 noundef %14520, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 650, ptr noundef %14523, ptr noundef %14526, ptr noundef %14529, i32 noundef %14531) #11
  br label %14550

14533:                                            ; preds = %14511, %14504
  %14534 = load i32, ptr %354, align 4, !tbaa !5
  %14535 = call ptr @__errno_location() #12
  store i32 %14534, ptr %14535, align 4, !tbaa !5
  %14536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14537 = load i32, ptr @test_count, align 4, !tbaa !5
  %14538 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14539 = load i32, ptr %14538, align 4, !tbaa !5
  %14540 = call ptr @s2n_strerror(i32 noundef %14539, ptr noundef @.str.4)
  %14541 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14542 = load i32, ptr %14541, align 4, !tbaa !5
  %14543 = call ptr @s2n_strerror_debug(i32 noundef %14542, ptr noundef @.str.4)
  %14544 = call ptr @__errno_location() #12
  %14545 = load i32, ptr %14544, align 4, !tbaa !5
  %14546 = call ptr @strerror(i32 noundef %14545) #11
  %14547 = call ptr @__errno_location() #12
  %14548 = load i32, ptr %14547, align 4, !tbaa !5
  %14549 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14536, ptr noundef @.str.5, i32 noundef %14537, ptr noundef @.str.120, ptr noundef @.str.1, i32 noundef 650, ptr noundef %14540, ptr noundef %14543, ptr noundef %14546, i32 noundef %14548) #11
  br label %14550

14550:                                            ; preds = %14533, %14516
  call void @llvm.lifetime.end.p0(i64 4, ptr %354) #11
  br label %14551

14551:                                            ; preds = %14550
  br label %14552

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

14553:                                            ; No predecessors!
  br label %14554

14554:                                            ; preds = %14553
  br label %14555

14555:                                            ; preds = %14554, %14496
  br label %14556

14556:                                            ; preds = %14555
  br label %14557

14557:                                            ; preds = %14556
  call void @llvm.lifetime.end.p0(i64 4, ptr %352) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %345) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %344) #11
  %14558 = call i32 @s2n_fingerprint_free(ptr noundef %342)
  call void @llvm.lifetime.end.p0(i64 8, ptr %342) #11
  call void @llvm.lifetime.start.p0(i64 8, ptr %355) #11
  %14559 = call ptr @s2n_fingerprint_new(i32 noundef 0)
  store ptr %14559, ptr %355, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 47, ptr %356) #11
  call void @llvm.memset.p0.i64(ptr align 16 %356, i8 0, i64 47, i1 false)
  br label %14560

14560:                                            ; preds = %14557
  call void @llvm.lifetime.start.p0(i64 8, ptr %357) #11
  store i64 47, ptr %357, align 8, !tbaa !16
  %14561 = load i64, ptr %357, align 8, !tbaa !16
  %14562 = icmp ne i64 %14561, 0
  br i1 %14562, label %14563, label %14622

14563:                                            ; preds = %14560
  %14564 = getelementptr inbounds [47 x i8], ptr %356, i64 0, i64 0
  %14565 = getelementptr inbounds [47 x i8], ptr %13, i64 0, i64 0
  %14566 = load i64, ptr %357, align 8, !tbaa !16
  call void @llvm.memmove.p0.p0.i64(ptr align 16 %14564, ptr align 16 %14565, i64 %14566, i1 false)
  %14567 = icmp eq ptr %14564, null
  br i1 %14567, label %14568, label %14621

14568:                                            ; preds = %14563
  br label %14569

14569:                                            ; preds = %14568
  br label %14570

14570:                                            ; preds = %14569
  call void @llvm.lifetime.start.p0(i64 4, ptr %358) #11
  %14571 = call ptr @__errno_location() #12
  %14572 = load i32, ptr %14571, align 4, !tbaa !5
  store i32 %14572, ptr %358, align 4, !tbaa !5
  %14573 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14574 = call i32 @s2n_print_stacktrace(ptr noundef %14573)
  %14575 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14576 = trunc i8 %14575 to i1
  br i1 %14576, label %14577, label %14599

14577:                                            ; preds = %14570
  %14578 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14579 = call i32 @fileno(ptr noundef %14578) #11
  %14580 = call i32 @isatty(i32 noundef %14579) #11
  %14581 = icmp ne i32 %14580, 0
  br i1 %14581, label %14582, label %14599

14582:                                            ; preds = %14577
  %14583 = load i32, ptr %358, align 4, !tbaa !5
  %14584 = call ptr @__errno_location() #12
  store i32 %14583, ptr %14584, align 4, !tbaa !5
  %14585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14586 = load i32, ptr @test_count, align 4, !tbaa !5
  %14587 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14588 = load i32, ptr %14587, align 4, !tbaa !5
  %14589 = call ptr @s2n_strerror(i32 noundef %14588, ptr noundef @.str.4)
  %14590 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14591 = load i32, ptr %14590, align 4, !tbaa !5
  %14592 = call ptr @s2n_strerror_debug(i32 noundef %14591, ptr noundef @.str.4)
  %14593 = call ptr @__errno_location() #12
  %14594 = load i32, ptr %14593, align 4, !tbaa !5
  %14595 = call ptr @strerror(i32 noundef %14594) #11
  %14596 = call ptr @__errno_location() #12
  %14597 = load i32, ptr %14596, align 4, !tbaa !5
  %14598 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14585, ptr noundef @.str.2, i32 noundef %14586, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 660, ptr noundef %14589, ptr noundef %14592, ptr noundef %14595, i32 noundef %14597) #11
  br label %14616

14599:                                            ; preds = %14577, %14570
  %14600 = load i32, ptr %358, align 4, !tbaa !5
  %14601 = call ptr @__errno_location() #12
  store i32 %14600, ptr %14601, align 4, !tbaa !5
  %14602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14603 = load i32, ptr @test_count, align 4, !tbaa !5
  %14604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14605 = load i32, ptr %14604, align 4, !tbaa !5
  %14606 = call ptr @s2n_strerror(i32 noundef %14605, ptr noundef @.str.4)
  %14607 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14608 = load i32, ptr %14607, align 4, !tbaa !5
  %14609 = call ptr @s2n_strerror_debug(i32 noundef %14608, ptr noundef @.str.4)
  %14610 = call ptr @__errno_location() #12
  %14611 = load i32, ptr %14610, align 4, !tbaa !5
  %14612 = call ptr @strerror(i32 noundef %14611) #11
  %14613 = call ptr @__errno_location() #12
  %14614 = load i32, ptr %14613, align 4, !tbaa !5
  %14615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14602, ptr noundef @.str.5, i32 noundef %14603, ptr noundef @.str.121, ptr noundef @.str.1, i32 noundef 660, ptr noundef %14606, ptr noundef %14609, ptr noundef %14612, i32 noundef %14614) #11
  br label %14616

14616:                                            ; preds = %14599, %14582
  call void @llvm.lifetime.end.p0(i64 4, ptr %358) #11
  br label %14617

14617:                                            ; preds = %14616
  br label %14618

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

14619:                                            ; No predecessors!
  br label %14620

14620:                                            ; preds = %14619
  br label %14621

14621:                                            ; preds = %14620, %14563
  br label %14622

14622:                                            ; preds = %14621, %14560
  call void @llvm.lifetime.end.p0(i64 8, ptr %357) #11
  br label %14623

14623:                                            ; preds = %14622
  br label %14624

14624:                                            ; preds = %14623
  %14625 = getelementptr inbounds [47 x i8], ptr %356, i64 0, i64 5
  store i8 4, ptr %14625, align 1, !tbaa !15
  call void @llvm.lifetime.start.p0(i64 8, ptr %359) #11
  store ptr null, ptr %359, align 8, !tbaa !9
  %14626 = getelementptr inbounds [47 x i8], ptr %356, i64 0, i64 0
  %14627 = call ptr @s2n_client_hello_parse_message(ptr noundef %14626, i32 noundef 47)
  store ptr %14627, ptr %359, align 8, !tbaa !9
  br label %14628

14628:                                            ; preds = %14624
  %14629 = load i32, ptr @test_count, align 4, !tbaa !5
  %14630 = add nsw i32 %14629, 1
  store i32 %14630, ptr @test_count, align 4, !tbaa !5
  %14631 = load ptr, ptr %359, align 8, !tbaa !9
  %14632 = icmp eq ptr %14631, null
  br i1 %14632, label %14633, label %14686

14633:                                            ; preds = %14628
  br label %14634

14634:                                            ; preds = %14633
  br label %14635

14635:                                            ; preds = %14634
  call void @llvm.lifetime.start.p0(i64 4, ptr %360) #11
  %14636 = call ptr @__errno_location() #12
  %14637 = load i32, ptr %14636, align 4, !tbaa !5
  store i32 %14637, ptr %360, align 4, !tbaa !5
  %14638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14639 = call i32 @s2n_print_stacktrace(ptr noundef %14638)
  %14640 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14641 = trunc i8 %14640 to i1
  br i1 %14641, label %14642, label %14664

14642:                                            ; preds = %14635
  %14643 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14644 = call i32 @fileno(ptr noundef %14643) #11
  %14645 = call i32 @isatty(i32 noundef %14644) #11
  %14646 = icmp ne i32 %14645, 0
  br i1 %14646, label %14647, label %14664

14647:                                            ; preds = %14642
  %14648 = load i32, ptr %360, align 4, !tbaa !5
  %14649 = call ptr @__errno_location() #12
  store i32 %14648, ptr %14649, align 4, !tbaa !5
  %14650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14651 = load i32, ptr @test_count, align 4, !tbaa !5
  %14652 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14653 = load i32, ptr %14652, align 4, !tbaa !5
  %14654 = call ptr @s2n_strerror(i32 noundef %14653, ptr noundef @.str.4)
  %14655 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14656 = load i32, ptr %14655, align 4, !tbaa !5
  %14657 = call ptr @s2n_strerror_debug(i32 noundef %14656, ptr noundef @.str.4)
  %14658 = call ptr @__errno_location() #12
  %14659 = load i32, ptr %14658, align 4, !tbaa !5
  %14660 = call ptr @strerror(i32 noundef %14659) #11
  %14661 = call ptr @__errno_location() #12
  %14662 = load i32, ptr %14661, align 4, !tbaa !5
  %14663 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14650, ptr noundef @.str.2, i32 noundef %14651, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 667, ptr noundef %14654, ptr noundef %14657, ptr noundef %14660, i32 noundef %14662) #11
  br label %14681

14664:                                            ; preds = %14642, %14635
  %14665 = load i32, ptr %360, align 4, !tbaa !5
  %14666 = call ptr @__errno_location() #12
  store i32 %14665, ptr %14666, align 4, !tbaa !5
  %14667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14668 = load i32, ptr @test_count, align 4, !tbaa !5
  %14669 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14670 = load i32, ptr %14669, align 4, !tbaa !5
  %14671 = call ptr @s2n_strerror(i32 noundef %14670, ptr noundef @.str.4)
  %14672 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14673 = load i32, ptr %14672, align 4, !tbaa !5
  %14674 = call ptr @s2n_strerror_debug(i32 noundef %14673, ptr noundef @.str.4)
  %14675 = call ptr @__errno_location() #12
  %14676 = load i32, ptr %14675, align 4, !tbaa !5
  %14677 = call ptr @strerror(i32 noundef %14676) #11
  %14678 = call ptr @__errno_location() #12
  %14679 = load i32, ptr %14678, align 4, !tbaa !5
  %14680 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14667, ptr noundef @.str.5, i32 noundef %14668, ptr noundef @.str.122, ptr noundef @.str.1, i32 noundef 667, ptr noundef %14671, ptr noundef %14674, ptr noundef %14677, i32 noundef %14679) #11
  br label %14681

14681:                                            ; preds = %14664, %14647
  call void @llvm.lifetime.end.p0(i64 4, ptr %360) #11
  br label %14682

14682:                                            ; preds = %14681
  br label %14683

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

14684:                                            ; No predecessors!
  br label %14685

14685:                                            ; preds = %14684
  br label %14686

14686:                                            ; preds = %14685, %14628
  br label %14687

14687:                                            ; preds = %14686
  br label %14688

14688:                                            ; preds = %14687
  call void @llvm.lifetime.start.p0(i64 432, ptr %361) #11
  call void @llvm.memset.p0.i64(ptr align 16 %361, i8 0, i64 432, i1 false)
  %14689 = getelementptr inbounds %struct.s2n_test_hello, ptr %361, i32 0, i32 0
  %14690 = load ptr, ptr %14, align 8, !tbaa !9
  store ptr %14690, ptr %14689, align 8, !tbaa !47
  %14691 = getelementptr inbounds %struct.s2n_test_hello, ptr %361, i32 0, i32 1
  %14692 = getelementptr inbounds %struct.s2n_test_hello, ptr %361, i32 0, i32 2
  %14693 = getelementptr inbounds %struct.s2n_test_hello, ptr %361, i32 0, i32 3
  %14694 = getelementptr inbounds %struct.s2n_test_hello, ptr %361, i64 1
  %14695 = getelementptr inbounds %struct.s2n_test_hello, ptr %14694, i32 0, i32 0
  %14696 = load ptr, ptr %359, align 8, !tbaa !9
  store ptr %14696, ptr %14695, align 8, !tbaa !47
  %14697 = getelementptr inbounds %struct.s2n_test_hello, ptr %14694, i32 0, i32 1
  %14698 = getelementptr inbounds %struct.s2n_test_hello, ptr %14694, i32 0, i32 2
  %14699 = getelementptr inbounds %struct.s2n_test_hello, ptr %14694, i32 0, i32 3
  call void @llvm.lifetime.start.p0(i64 8, ptr %362) #11
  store i64 0, ptr %362, align 8, !tbaa !16
  br label %14700

14700:                                            ; preds = %15438, %14688
  %14701 = load i64, ptr %362, align 8, !tbaa !16
  %14702 = icmp ult i64 %14701, 10
  br i1 %14702, label %14704, label %14703

14703:                                            ; preds = %14700
  call void @llvm.lifetime.end.p0(i64 8, ptr %362) #11
  br label %15441

14704:                                            ; preds = %14700
  call void @llvm.lifetime.start.p0(i64 8, ptr %363) #11
  %14705 = load i64, ptr %362, align 8, !tbaa !16
  %14706 = urem i64 %14705, 2
  %14707 = getelementptr inbounds [2 x %struct.s2n_test_hello], ptr %361, i64 0, i64 %14706
  store ptr %14707, ptr %363, align 8, !tbaa !9
  br label %14708

14708:                                            ; preds = %14704
  %14709 = load i32, ptr @test_count, align 4, !tbaa !5
  %14710 = add nsw i32 %14709, 1
  store i32 %14710, ptr @test_count, align 4, !tbaa !5
  %14711 = load ptr, ptr %355, align 8, !tbaa !9
  %14712 = load ptr, ptr %363, align 8, !tbaa !9
  %14713 = getelementptr inbounds %struct.s2n_test_hello, ptr %14712, i32 0, i32 0
  %14714 = load ptr, ptr %14713, align 8, !tbaa !47
  %14715 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %14711, ptr noundef %14714)
  %14716 = icmp eq i32 %14715, -1
  br i1 %14716, label %14717, label %14770

14717:                                            ; preds = %14708
  br label %14718

14718:                                            ; preds = %14717
  br label %14719

14719:                                            ; preds = %14718
  call void @llvm.lifetime.start.p0(i64 4, ptr %364) #11
  %14720 = call ptr @__errno_location() #12
  %14721 = load i32, ptr %14720, align 4, !tbaa !5
  store i32 %14721, ptr %364, align 4, !tbaa !5
  %14722 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14723 = call i32 @s2n_print_stacktrace(ptr noundef %14722)
  %14724 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14725 = trunc i8 %14724 to i1
  br i1 %14725, label %14726, label %14748

14726:                                            ; preds = %14719
  %14727 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14728 = call i32 @fileno(ptr noundef %14727) #11
  %14729 = call i32 @isatty(i32 noundef %14728) #11
  %14730 = icmp ne i32 %14729, 0
  br i1 %14730, label %14731, label %14748

14731:                                            ; preds = %14726
  %14732 = load i32, ptr %364, align 4, !tbaa !5
  %14733 = call ptr @__errno_location() #12
  store i32 %14732, ptr %14733, align 4, !tbaa !5
  %14734 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14735 = load i32, ptr @test_count, align 4, !tbaa !5
  %14736 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14737 = load i32, ptr %14736, align 4, !tbaa !5
  %14738 = call ptr @s2n_strerror(i32 noundef %14737, ptr noundef @.str.4)
  %14739 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14740 = load i32, ptr %14739, align 4, !tbaa !5
  %14741 = call ptr @s2n_strerror_debug(i32 noundef %14740, ptr noundef @.str.4)
  %14742 = call ptr @__errno_location() #12
  %14743 = load i32, ptr %14742, align 4, !tbaa !5
  %14744 = call ptr @strerror(i32 noundef %14743) #11
  %14745 = call ptr @__errno_location() #12
  %14746 = load i32, ptr %14745, align 4, !tbaa !5
  %14747 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14734, ptr noundef @.str.2, i32 noundef %14735, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 681, ptr noundef %14738, ptr noundef %14741, ptr noundef %14744, i32 noundef %14746) #11
  br label %14765

14748:                                            ; preds = %14726, %14719
  %14749 = load i32, ptr %364, align 4, !tbaa !5
  %14750 = call ptr @__errno_location() #12
  store i32 %14749, ptr %14750, align 4, !tbaa !5
  %14751 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14752 = load i32, ptr @test_count, align 4, !tbaa !5
  %14753 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14754 = load i32, ptr %14753, align 4, !tbaa !5
  %14755 = call ptr @s2n_strerror(i32 noundef %14754, ptr noundef @.str.4)
  %14756 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14757 = load i32, ptr %14756, align 4, !tbaa !5
  %14758 = call ptr @s2n_strerror_debug(i32 noundef %14757, ptr noundef @.str.4)
  %14759 = call ptr @__errno_location() #12
  %14760 = load i32, ptr %14759, align 4, !tbaa !5
  %14761 = call ptr @strerror(i32 noundef %14760) #11
  %14762 = call ptr @__errno_location() #12
  %14763 = load i32, ptr %14762, align 4, !tbaa !5
  %14764 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14751, ptr noundef @.str.5, i32 noundef %14752, ptr noundef @.str.123, ptr noundef @.str.1, i32 noundef 681, ptr noundef %14755, ptr noundef %14758, ptr noundef %14761, i32 noundef %14763) #11
  br label %14765

14765:                                            ; preds = %14748, %14731
  call void @llvm.lifetime.end.p0(i64 4, ptr %364) #11
  br label %14766

14766:                                            ; preds = %14765
  br label %14767

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

14768:                                            ; No predecessors!
  br label %14769

14769:                                            ; preds = %14768
  br label %14770

14770:                                            ; preds = %14769, %14708
  br label %14771

14771:                                            ; preds = %14770
  br label %14772

14772:                                            ; preds = %14771
  call void @llvm.lifetime.start.p0(i64 4, ptr %365) #11
  store i32 0, ptr %365, align 4, !tbaa !5
  br label %14773

14773:                                            ; preds = %14772
  br label %14774

14774:                                            ; preds = %14773
  br label %14775

14775:                                            ; preds = %14774
  %14776 = load i32, ptr @test_count, align 4, !tbaa !5
  %14777 = add nsw i32 %14776, 1
  store i32 %14777, ptr @test_count, align 4, !tbaa !5
  %14778 = load ptr, ptr %355, align 8, !tbaa !9
  %14779 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %14778, ptr noundef %365)
  %14780 = icmp eq i32 %14779, -1
  br i1 %14780, label %14834, label %14781

14781:                                            ; preds = %14775
  br label %14782

14782:                                            ; preds = %14781
  br label %14783

14783:                                            ; preds = %14782
  call void @llvm.lifetime.start.p0(i64 4, ptr %366) #11
  %14784 = call ptr @__errno_location() #12
  %14785 = load i32, ptr %14784, align 4, !tbaa !5
  store i32 %14785, ptr %366, align 4, !tbaa !5
  %14786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14787 = call i32 @s2n_print_stacktrace(ptr noundef %14786)
  %14788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14789 = trunc i8 %14788 to i1
  br i1 %14789, label %14790, label %14812

14790:                                            ; preds = %14783
  %14791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14792 = call i32 @fileno(ptr noundef %14791) #11
  %14793 = call i32 @isatty(i32 noundef %14792) #11
  %14794 = icmp ne i32 %14793, 0
  br i1 %14794, label %14795, label %14812

14795:                                            ; preds = %14790
  %14796 = load i32, ptr %366, align 4, !tbaa !5
  %14797 = call ptr @__errno_location() #12
  store i32 %14796, ptr %14797, align 4, !tbaa !5
  %14798 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14799 = load i32, ptr @test_count, align 4, !tbaa !5
  %14800 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14801 = load i32, ptr %14800, align 4, !tbaa !5
  %14802 = call ptr @s2n_strerror(i32 noundef %14801, ptr noundef @.str.4)
  %14803 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14804 = load i32, ptr %14803, align 4, !tbaa !5
  %14805 = call ptr @s2n_strerror_debug(i32 noundef %14804, ptr noundef @.str.4)
  %14806 = call ptr @__errno_location() #12
  %14807 = load i32, ptr %14806, align 4, !tbaa !5
  %14808 = call ptr @strerror(i32 noundef %14807) #11
  %14809 = call ptr @__errno_location() #12
  %14810 = load i32, ptr %14809, align 4, !tbaa !5
  %14811 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14798, ptr noundef @.str.2, i32 noundef %14799, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14802, ptr noundef %14805, ptr noundef %14808, i32 noundef %14810) #11
  br label %14829

14812:                                            ; preds = %14790, %14783
  %14813 = load i32, ptr %366, align 4, !tbaa !5
  %14814 = call ptr @__errno_location() #12
  store i32 %14813, ptr %14814, align 4, !tbaa !5
  %14815 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14816 = load i32, ptr @test_count, align 4, !tbaa !5
  %14817 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14818 = load i32, ptr %14817, align 4, !tbaa !5
  %14819 = call ptr @s2n_strerror(i32 noundef %14818, ptr noundef @.str.4)
  %14820 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14821 = load i32, ptr %14820, align 4, !tbaa !5
  %14822 = call ptr @s2n_strerror_debug(i32 noundef %14821, ptr noundef @.str.4)
  %14823 = call ptr @__errno_location() #12
  %14824 = load i32, ptr %14823, align 4, !tbaa !5
  %14825 = call ptr @strerror(i32 noundef %14824) #11
  %14826 = call ptr @__errno_location() #12
  %14827 = load i32, ptr %14826, align 4, !tbaa !5
  %14828 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14815, ptr noundef @.str.5, i32 noundef %14816, ptr noundef @.str.124, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14819, ptr noundef %14822, ptr noundef %14825, i32 noundef %14827) #11
  br label %14829

14829:                                            ; preds = %14812, %14795
  call void @llvm.lifetime.end.p0(i64 4, ptr %366) #11
  br label %14830

14830:                                            ; preds = %14829
  br label %14831

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

14832:                                            ; No predecessors!
  br label %14833

14833:                                            ; preds = %14832
  br label %14834

14834:                                            ; preds = %14833, %14775
  br label %14835

14835:                                            ; preds = %14834
  br label %14836

14836:                                            ; preds = %14835
  br label %14837

14837:                                            ; preds = %14836
  %14838 = load i32, ptr @test_count, align 4, !tbaa !5
  %14839 = add nsw i32 %14838, 1
  store i32 %14839, ptr @test_count, align 4, !tbaa !5
  %14840 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14841 = load i32, ptr %14840, align 4, !tbaa !5
  %14842 = icmp eq i32 %14841, 469762112
  br i1 %14842, label %14896, label %14843

14843:                                            ; preds = %14837
  br label %14844

14844:                                            ; preds = %14843
  br label %14845

14845:                                            ; preds = %14844
  call void @llvm.lifetime.start.p0(i64 4, ptr %367) #11
  %14846 = call ptr @__errno_location() #12
  %14847 = load i32, ptr %14846, align 4, !tbaa !5
  store i32 %14847, ptr %367, align 4, !tbaa !5
  %14848 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14849 = call i32 @s2n_print_stacktrace(ptr noundef %14848)
  %14850 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14851 = trunc i8 %14850 to i1
  br i1 %14851, label %14852, label %14874

14852:                                            ; preds = %14845
  %14853 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14854 = call i32 @fileno(ptr noundef %14853) #11
  %14855 = call i32 @isatty(i32 noundef %14854) #11
  %14856 = icmp ne i32 %14855, 0
  br i1 %14856, label %14857, label %14874

14857:                                            ; preds = %14852
  %14858 = load i32, ptr %367, align 4, !tbaa !5
  %14859 = call ptr @__errno_location() #12
  store i32 %14858, ptr %14859, align 4, !tbaa !5
  %14860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14861 = load i32, ptr @test_count, align 4, !tbaa !5
  %14862 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14863 = load i32, ptr %14862, align 4, !tbaa !5
  %14864 = call ptr @s2n_strerror(i32 noundef %14863, ptr noundef @.str.4)
  %14865 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14866 = load i32, ptr %14865, align 4, !tbaa !5
  %14867 = call ptr @s2n_strerror_debug(i32 noundef %14866, ptr noundef @.str.4)
  %14868 = call ptr @__errno_location() #12
  %14869 = load i32, ptr %14868, align 4, !tbaa !5
  %14870 = call ptr @strerror(i32 noundef %14869) #11
  %14871 = call ptr @__errno_location() #12
  %14872 = load i32, ptr %14871, align 4, !tbaa !5
  %14873 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14860, ptr noundef @.str.2, i32 noundef %14861, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14864, ptr noundef %14867, ptr noundef %14870, i32 noundef %14872) #11
  br label %14891

14874:                                            ; preds = %14852, %14845
  %14875 = load i32, ptr %367, align 4, !tbaa !5
  %14876 = call ptr @__errno_location() #12
  store i32 %14875, ptr %14876, align 4, !tbaa !5
  %14877 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14878 = load i32, ptr @test_count, align 4, !tbaa !5
  %14879 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14880 = load i32, ptr %14879, align 4, !tbaa !5
  %14881 = call ptr @s2n_strerror(i32 noundef %14880, ptr noundef @.str.4)
  %14882 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14883 = load i32, ptr %14882, align 4, !tbaa !5
  %14884 = call ptr @s2n_strerror_debug(i32 noundef %14883, ptr noundef @.str.4)
  %14885 = call ptr @__errno_location() #12
  %14886 = load i32, ptr %14885, align 4, !tbaa !5
  %14887 = call ptr @strerror(i32 noundef %14886) #11
  %14888 = call ptr @__errno_location() #12
  %14889 = load i32, ptr %14888, align 4, !tbaa !5
  %14890 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14877, ptr noundef @.str.5, i32 noundef %14878, ptr noundef @.str.87, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14881, ptr noundef %14884, ptr noundef %14887, i32 noundef %14889) #11
  br label %14891

14891:                                            ; preds = %14874, %14857
  call void @llvm.lifetime.end.p0(i64 4, ptr %367) #11
  br label %14892

14892:                                            ; preds = %14891
  br label %14893

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

14894:                                            ; No predecessors!
  br label %14895

14895:                                            ; preds = %14894
  br label %14896

14896:                                            ; preds = %14895, %14837
  br label %14897

14897:                                            ; preds = %14896
  br label %14898

14898:                                            ; preds = %14897
  br label %14899

14899:                                            ; preds = %14898
  %14900 = load i32, ptr @test_count, align 4, !tbaa !5
  %14901 = add nsw i32 %14900, 1
  store i32 %14901, ptr @test_count, align 4, !tbaa !5
  %14902 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14903 = load i32, ptr %14902, align 4, !tbaa !5
  %14904 = call ptr @s2n_strerror_debug(i32 noundef %14903, ptr noundef @.str.4)
  %14905 = icmp eq ptr %14904, null
  br i1 %14905, label %14906, label %14959

14906:                                            ; preds = %14899
  br label %14907

14907:                                            ; preds = %14906
  br label %14908

14908:                                            ; preds = %14907
  call void @llvm.lifetime.start.p0(i64 4, ptr %368) #11
  %14909 = call ptr @__errno_location() #12
  %14910 = load i32, ptr %14909, align 4, !tbaa !5
  store i32 %14910, ptr %368, align 4, !tbaa !5
  %14911 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14912 = call i32 @s2n_print_stacktrace(ptr noundef %14911)
  %14913 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %14914 = trunc i8 %14913 to i1
  br i1 %14914, label %14915, label %14937

14915:                                            ; preds = %14908
  %14916 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14917 = call i32 @fileno(ptr noundef %14916) #11
  %14918 = call i32 @isatty(i32 noundef %14917) #11
  %14919 = icmp ne i32 %14918, 0
  br i1 %14919, label %14920, label %14937

14920:                                            ; preds = %14915
  %14921 = load i32, ptr %368, align 4, !tbaa !5
  %14922 = call ptr @__errno_location() #12
  store i32 %14921, ptr %14922, align 4, !tbaa !5
  %14923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14924 = load i32, ptr @test_count, align 4, !tbaa !5
  %14925 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14926 = load i32, ptr %14925, align 4, !tbaa !5
  %14927 = call ptr @s2n_strerror(i32 noundef %14926, ptr noundef @.str.4)
  %14928 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14929 = load i32, ptr %14928, align 4, !tbaa !5
  %14930 = call ptr @s2n_strerror_debug(i32 noundef %14929, ptr noundef @.str.4)
  %14931 = call ptr @__errno_location() #12
  %14932 = load i32, ptr %14931, align 4, !tbaa !5
  %14933 = call ptr @strerror(i32 noundef %14932) #11
  %14934 = call ptr @__errno_location() #12
  %14935 = load i32, ptr %14934, align 4, !tbaa !5
  %14936 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14923, ptr noundef @.str.2, i32 noundef %14924, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14927, ptr noundef %14930, ptr noundef %14933, i32 noundef %14935) #11
  br label %14954

14937:                                            ; preds = %14915, %14908
  %14938 = load i32, ptr %368, align 4, !tbaa !5
  %14939 = call ptr @__errno_location() #12
  store i32 %14938, ptr %14939, align 4, !tbaa !5
  %14940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14941 = load i32, ptr @test_count, align 4, !tbaa !5
  %14942 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14943 = load i32, ptr %14942, align 4, !tbaa !5
  %14944 = call ptr @s2n_strerror(i32 noundef %14943, ptr noundef @.str.4)
  %14945 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %14946 = load i32, ptr %14945, align 4, !tbaa !5
  %14947 = call ptr @s2n_strerror_debug(i32 noundef %14946, ptr noundef @.str.4)
  %14948 = call ptr @__errno_location() #12
  %14949 = load i32, ptr %14948, align 4, !tbaa !5
  %14950 = call ptr @strerror(i32 noundef %14949) #11
  %14951 = call ptr @__errno_location() #12
  %14952 = load i32, ptr %14951, align 4, !tbaa !5
  %14953 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %14940, ptr noundef @.str.5, i32 noundef %14941, ptr noundef @.str.11, ptr noundef @.str.1, i32 noundef 687, ptr noundef %14944, ptr noundef %14947, ptr noundef %14950, i32 noundef %14952) #11
  br label %14954

14954:                                            ; preds = %14937, %14920
  call void @llvm.lifetime.end.p0(i64 4, ptr %368) #11
  br label %14955

14955:                                            ; preds = %14954
  br label %14956

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

14957:                                            ; No predecessors!
  br label %14958

14958:                                            ; preds = %14957
  br label %14959

14959:                                            ; preds = %14958, %14899
  br label %14960

14960:                                            ; preds = %14959
  br label %14961

14961:                                            ; preds = %14960
  br label %14962

14962:                                            ; preds = %14961
  br label %14963

14963:                                            ; preds = %14962
  br label %14964

14964:                                            ; preds = %14963
  %14965 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  store i32 0, ptr %14965, align 4, !tbaa !5
  call void @s2n_debug_info_reset()
  %14966 = call ptr @__errno_location() #12
  store i32 0, ptr %14966, align 4, !tbaa !5
  br label %14967

14967:                                            ; preds = %14964
  br label %14968

14968:                                            ; preds = %14967
  br label %14969

14969:                                            ; preds = %14968
  br label %14970

14970:                                            ; preds = %14969
  %14971 = load ptr, ptr %363, align 8, !tbaa !9
  %14972 = getelementptr inbounds %struct.s2n_test_hello, ptr %14971, i32 0, i32 3
  %14973 = load i8, ptr %14972, align 8
  %14974 = and i8 %14973, 1
  %14975 = zext i8 %14974 to i32
  %14976 = icmp eq i32 %14975, 0
  br i1 %14976, label %14977, label %15113

14977:                                            ; preds = %14970
  %14978 = load ptr, ptr %363, align 8, !tbaa !9
  %14979 = getelementptr inbounds %struct.s2n_test_hello, ptr %14978, i32 0, i32 3
  %14980 = load i8, ptr %14979, align 8
  %14981 = and i8 %14980, -2
  %14982 = or i8 %14981, 1
  store i8 %14982, ptr %14979, align 8
  br label %14983

14983:                                            ; preds = %14977
  %14984 = load i32, ptr @test_count, align 4, !tbaa !5
  %14985 = add nsw i32 %14984, 1
  store i32 %14985, ptr @test_count, align 4, !tbaa !5
  %14986 = load ptr, ptr %355, align 8, !tbaa !9
  %14987 = load ptr, ptr %363, align 8, !tbaa !9
  %14988 = getelementptr inbounds %struct.s2n_test_hello, ptr %14987, i32 0, i32 1
  %14989 = getelementptr inbounds [100 x i8], ptr %14988, i64 0, i64 0
  %14990 = call i32 @s2n_fingerprint_get_hash(ptr noundef %14986, i32 noundef 100, ptr noundef %14989, ptr noundef %365)
  %14991 = icmp eq i32 %14990, -1
  br i1 %14991, label %14992, label %15045

14992:                                            ; preds = %14983
  br label %14993

14993:                                            ; preds = %14992
  br label %14994

14994:                                            ; preds = %14993
  call void @llvm.lifetime.start.p0(i64 4, ptr %369) #11
  %14995 = call ptr @__errno_location() #12
  %14996 = load i32, ptr %14995, align 4, !tbaa !5
  store i32 %14996, ptr %369, align 4, !tbaa !5
  %14997 = load ptr, ptr @stderr, align 8, !tbaa !9
  %14998 = call i32 @s2n_print_stacktrace(ptr noundef %14997)
  %14999 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15000 = trunc i8 %14999 to i1
  br i1 %15000, label %15001, label %15023

15001:                                            ; preds = %14994
  %15002 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15003 = call i32 @fileno(ptr noundef %15002) #11
  %15004 = call i32 @isatty(i32 noundef %15003) #11
  %15005 = icmp ne i32 %15004, 0
  br i1 %15005, label %15006, label %15023

15006:                                            ; preds = %15001
  %15007 = load i32, ptr %369, align 4, !tbaa !5
  %15008 = call ptr @__errno_location() #12
  store i32 %15007, ptr %15008, align 4, !tbaa !5
  %15009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15010 = load i32, ptr @test_count, align 4, !tbaa !5
  %15011 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15012 = load i32, ptr %15011, align 4, !tbaa !5
  %15013 = call ptr @s2n_strerror(i32 noundef %15012, ptr noundef @.str.4)
  %15014 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15015 = load i32, ptr %15014, align 4, !tbaa !5
  %15016 = call ptr @s2n_strerror_debug(i32 noundef %15015, ptr noundef @.str.4)
  %15017 = call ptr @__errno_location() #12
  %15018 = load i32, ptr %15017, align 4, !tbaa !5
  %15019 = call ptr @strerror(i32 noundef %15018) #11
  %15020 = call ptr @__errno_location() #12
  %15021 = load i32, ptr %15020, align 4, !tbaa !5
  %15022 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15009, ptr noundef @.str.2, i32 noundef %15010, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 693, ptr noundef %15013, ptr noundef %15016, ptr noundef %15019, i32 noundef %15021) #11
  br label %15040

15023:                                            ; preds = %15001, %14994
  %15024 = load i32, ptr %369, align 4, !tbaa !5
  %15025 = call ptr @__errno_location() #12
  store i32 %15024, ptr %15025, align 4, !tbaa !5
  %15026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15027 = load i32, ptr @test_count, align 4, !tbaa !5
  %15028 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15029 = load i32, ptr %15028, align 4, !tbaa !5
  %15030 = call ptr @s2n_strerror(i32 noundef %15029, ptr noundef @.str.4)
  %15031 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15032 = load i32, ptr %15031, align 4, !tbaa !5
  %15033 = call ptr @s2n_strerror_debug(i32 noundef %15032, ptr noundef @.str.4)
  %15034 = call ptr @__errno_location() #12
  %15035 = load i32, ptr %15034, align 4, !tbaa !5
  %15036 = call ptr @strerror(i32 noundef %15035) #11
  %15037 = call ptr @__errno_location() #12
  %15038 = load i32, ptr %15037, align 4, !tbaa !5
  %15039 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15026, ptr noundef @.str.5, i32 noundef %15027, ptr noundef @.str.125, ptr noundef @.str.1, i32 noundef 693, ptr noundef %15030, ptr noundef %15033, ptr noundef %15036, i32 noundef %15038) #11
  br label %15040

15040:                                            ; preds = %15023, %15006
  call void @llvm.lifetime.end.p0(i64 4, ptr %369) #11
  br label %15041

15041:                                            ; preds = %15040
  br label %15042

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

15043:                                            ; No predecessors!
  br label %15044

15044:                                            ; preds = %15043
  br label %15045

15045:                                            ; preds = %15044, %14983
  br label %15046

15046:                                            ; preds = %15045
  br label %15047

15047:                                            ; preds = %15046
  br label %15048

15048:                                            ; preds = %15047
  %15049 = load i32, ptr @test_count, align 4, !tbaa !5
  %15050 = add nsw i32 %15049, 1
  store i32 %15050, ptr @test_count, align 4, !tbaa !5
  %15051 = load ptr, ptr %355, align 8, !tbaa !9
  %15052 = load ptr, ptr %363, align 8, !tbaa !9
  %15053 = getelementptr inbounds %struct.s2n_test_hello, ptr %15052, i32 0, i32 2
  %15054 = getelementptr inbounds [100 x i8], ptr %15053, i64 0, i64 0
  %15055 = call i32 @s2n_fingerprint_get_raw(ptr noundef %15051, i32 noundef 100, ptr noundef %15054, ptr noundef %365)
  %15056 = icmp eq i32 %15055, -1
  br i1 %15056, label %15057, label %15110

15057:                                            ; preds = %15048
  br label %15058

15058:                                            ; preds = %15057
  br label %15059

15059:                                            ; preds = %15058
  call void @llvm.lifetime.start.p0(i64 4, ptr %370) #11
  %15060 = call ptr @__errno_location() #12
  %15061 = load i32, ptr %15060, align 4, !tbaa !5
  store i32 %15061, ptr %370, align 4, !tbaa !5
  %15062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15063 = call i32 @s2n_print_stacktrace(ptr noundef %15062)
  %15064 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15065 = trunc i8 %15064 to i1
  br i1 %15065, label %15066, label %15088

15066:                                            ; preds = %15059
  %15067 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15068 = call i32 @fileno(ptr noundef %15067) #11
  %15069 = call i32 @isatty(i32 noundef %15068) #11
  %15070 = icmp ne i32 %15069, 0
  br i1 %15070, label %15071, label %15088

15071:                                            ; preds = %15066
  %15072 = load i32, ptr %370, align 4, !tbaa !5
  %15073 = call ptr @__errno_location() #12
  store i32 %15072, ptr %15073, align 4, !tbaa !5
  %15074 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15075 = load i32, ptr @test_count, align 4, !tbaa !5
  %15076 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15077 = load i32, ptr %15076, align 4, !tbaa !5
  %15078 = call ptr @s2n_strerror(i32 noundef %15077, ptr noundef @.str.4)
  %15079 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15080 = load i32, ptr %15079, align 4, !tbaa !5
  %15081 = call ptr @s2n_strerror_debug(i32 noundef %15080, ptr noundef @.str.4)
  %15082 = call ptr @__errno_location() #12
  %15083 = load i32, ptr %15082, align 4, !tbaa !5
  %15084 = call ptr @strerror(i32 noundef %15083) #11
  %15085 = call ptr @__errno_location() #12
  %15086 = load i32, ptr %15085, align 4, !tbaa !5
  %15087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15074, ptr noundef @.str.2, i32 noundef %15075, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 695, ptr noundef %15078, ptr noundef %15081, ptr noundef %15084, i32 noundef %15086) #11
  br label %15105

15088:                                            ; preds = %15066, %15059
  %15089 = load i32, ptr %370, align 4, !tbaa !5
  %15090 = call ptr @__errno_location() #12
  store i32 %15089, ptr %15090, align 4, !tbaa !5
  %15091 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15092 = load i32, ptr @test_count, align 4, !tbaa !5
  %15093 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15094 = load i32, ptr %15093, align 4, !tbaa !5
  %15095 = call ptr @s2n_strerror(i32 noundef %15094, ptr noundef @.str.4)
  %15096 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15097 = load i32, ptr %15096, align 4, !tbaa !5
  %15098 = call ptr @s2n_strerror_debug(i32 noundef %15097, ptr noundef @.str.4)
  %15099 = call ptr @__errno_location() #12
  %15100 = load i32, ptr %15099, align 4, !tbaa !5
  %15101 = call ptr @strerror(i32 noundef %15100) #11
  %15102 = call ptr @__errno_location() #12
  %15103 = load i32, ptr %15102, align 4, !tbaa !5
  %15104 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15091, ptr noundef @.str.5, i32 noundef %15092, ptr noundef @.str.126, ptr noundef @.str.1, i32 noundef 695, ptr noundef %15095, ptr noundef %15098, ptr noundef %15101, i32 noundef %15103) #11
  br label %15105

15105:                                            ; preds = %15088, %15071
  call void @llvm.lifetime.end.p0(i64 4, ptr %370) #11
  br label %15106

15106:                                            ; preds = %15105
  br label %15107

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

15108:                                            ; No predecessors!
  br label %15109

15109:                                            ; preds = %15108
  br label %15110

15110:                                            ; preds = %15109, %15048
  br label %15111

15111:                                            ; preds = %15110
  br label %15112

15112:                                            ; preds = %15111
  br label %15113

15113:                                            ; preds = %15112, %14970
  call void @llvm.lifetime.start.p0(i64 100, ptr %371) #11
  call void @llvm.memset.p0.i64(ptr align 16 %371, i8 0, i64 100, i1 false)
  br label %15114

15114:                                            ; preds = %15113
  %15115 = load i32, ptr @test_count, align 4, !tbaa !5
  %15116 = add nsw i32 %15115, 1
  store i32 %15116, ptr @test_count, align 4, !tbaa !5
  %15117 = load ptr, ptr %355, align 8, !tbaa !9
  %15118 = getelementptr inbounds [100 x i8], ptr %371, i64 0, i64 0
  %15119 = call i32 @s2n_fingerprint_get_hash(ptr noundef %15117, i32 noundef 100, ptr noundef %15118, ptr noundef %365)
  %15120 = icmp eq i32 %15119, -1
  br i1 %15120, label %15121, label %15174

15121:                                            ; preds = %15114
  br label %15122

15122:                                            ; preds = %15121
  br label %15123

15123:                                            ; preds = %15122
  call void @llvm.lifetime.start.p0(i64 4, ptr %372) #11
  %15124 = call ptr @__errno_location() #12
  %15125 = load i32, ptr %15124, align 4, !tbaa !5
  store i32 %15125, ptr %372, align 4, !tbaa !5
  %15126 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15127 = call i32 @s2n_print_stacktrace(ptr noundef %15126)
  %15128 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15129 = trunc i8 %15128 to i1
  br i1 %15129, label %15130, label %15152

15130:                                            ; preds = %15123
  %15131 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15132 = call i32 @fileno(ptr noundef %15131) #11
  %15133 = call i32 @isatty(i32 noundef %15132) #11
  %15134 = icmp ne i32 %15133, 0
  br i1 %15134, label %15135, label %15152

15135:                                            ; preds = %15130
  %15136 = load i32, ptr %372, align 4, !tbaa !5
  %15137 = call ptr @__errno_location() #12
  store i32 %15136, ptr %15137, align 4, !tbaa !5
  %15138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15139 = load i32, ptr @test_count, align 4, !tbaa !5
  %15140 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15141 = load i32, ptr %15140, align 4, !tbaa !5
  %15142 = call ptr @s2n_strerror(i32 noundef %15141, ptr noundef @.str.4)
  %15143 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15144 = load i32, ptr %15143, align 4, !tbaa !5
  %15145 = call ptr @s2n_strerror_debug(i32 noundef %15144, ptr noundef @.str.4)
  %15146 = call ptr @__errno_location() #12
  %15147 = load i32, ptr %15146, align 4, !tbaa !5
  %15148 = call ptr @strerror(i32 noundef %15147) #11
  %15149 = call ptr @__errno_location() #12
  %15150 = load i32, ptr %15149, align 4, !tbaa !5
  %15151 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15138, ptr noundef @.str.2, i32 noundef %15139, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 701, ptr noundef %15142, ptr noundef %15145, ptr noundef %15148, i32 noundef %15150) #11
  br label %15169

15152:                                            ; preds = %15130, %15123
  %15153 = load i32, ptr %372, align 4, !tbaa !5
  %15154 = call ptr @__errno_location() #12
  store i32 %15153, ptr %15154, align 4, !tbaa !5
  %15155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15156 = load i32, ptr @test_count, align 4, !tbaa !5
  %15157 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15158 = load i32, ptr %15157, align 4, !tbaa !5
  %15159 = call ptr @s2n_strerror(i32 noundef %15158, ptr noundef @.str.4)
  %15160 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15161 = load i32, ptr %15160, align 4, !tbaa !5
  %15162 = call ptr @s2n_strerror_debug(i32 noundef %15161, ptr noundef @.str.4)
  %15163 = call ptr @__errno_location() #12
  %15164 = load i32, ptr %15163, align 4, !tbaa !5
  %15165 = call ptr @strerror(i32 noundef %15164) #11
  %15166 = call ptr @__errno_location() #12
  %15167 = load i32, ptr %15166, align 4, !tbaa !5
  %15168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15155, ptr noundef @.str.5, i32 noundef %15156, ptr noundef @.str.127, ptr noundef @.str.1, i32 noundef 701, ptr noundef %15159, ptr noundef %15162, ptr noundef %15165, i32 noundef %15167) #11
  br label %15169

15169:                                            ; preds = %15152, %15135
  call void @llvm.lifetime.end.p0(i64 4, ptr %372) #11
  br label %15170

15170:                                            ; preds = %15169
  br label %15171

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

15172:                                            ; No predecessors!
  br label %15173

15173:                                            ; preds = %15172
  br label %15174

15174:                                            ; preds = %15173, %15114
  br label %15175

15175:                                            ; preds = %15174
  br label %15176

15176:                                            ; preds = %15175
  br label %15177

15177:                                            ; preds = %15176
  br label %15178

15178:                                            ; preds = %15177
  %15179 = load i32, ptr @test_count, align 4, !tbaa !5
  %15180 = add nsw i32 %15179, 1
  store i32 %15180, ptr @test_count, align 4, !tbaa !5
  %15181 = getelementptr inbounds [100 x i8], ptr %371, i64 0, i64 0
  %15182 = load ptr, ptr %363, align 8, !tbaa !9
  %15183 = getelementptr inbounds %struct.s2n_test_hello, ptr %15182, i32 0, i32 1
  %15184 = getelementptr inbounds [100 x i8], ptr %15183, i64 0, i64 0
  %15185 = call i32 @memcmp(ptr noundef %15181, ptr noundef %15184, i64 noundef 100) #14
  %15186 = icmp eq i32 %15185, 0
  br i1 %15186, label %15240, label %15187

15187:                                            ; preds = %15178
  br label %15188

15188:                                            ; preds = %15187
  br label %15189

15189:                                            ; preds = %15188
  call void @llvm.lifetime.start.p0(i64 4, ptr %373) #11
  %15190 = call ptr @__errno_location() #12
  %15191 = load i32, ptr %15190, align 4, !tbaa !5
  store i32 %15191, ptr %373, align 4, !tbaa !5
  %15192 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15193 = call i32 @s2n_print_stacktrace(ptr noundef %15192)
  %15194 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15195 = trunc i8 %15194 to i1
  br i1 %15195, label %15196, label %15218

15196:                                            ; preds = %15189
  %15197 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15198 = call i32 @fileno(ptr noundef %15197) #11
  %15199 = call i32 @isatty(i32 noundef %15198) #11
  %15200 = icmp ne i32 %15199, 0
  br i1 %15200, label %15201, label %15218

15201:                                            ; preds = %15196
  %15202 = load i32, ptr %373, align 4, !tbaa !5
  %15203 = call ptr @__errno_location() #12
  store i32 %15202, ptr %15203, align 4, !tbaa !5
  %15204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15205 = load i32, ptr @test_count, align 4, !tbaa !5
  %15206 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15207 = load i32, ptr %15206, align 4, !tbaa !5
  %15208 = call ptr @s2n_strerror(i32 noundef %15207, ptr noundef @.str.4)
  %15209 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15210 = load i32, ptr %15209, align 4, !tbaa !5
  %15211 = call ptr @s2n_strerror_debug(i32 noundef %15210, ptr noundef @.str.4)
  %15212 = call ptr @__errno_location() #12
  %15213 = load i32, ptr %15212, align 4, !tbaa !5
  %15214 = call ptr @strerror(i32 noundef %15213) #11
  %15215 = call ptr @__errno_location() #12
  %15216 = load i32, ptr %15215, align 4, !tbaa !5
  %15217 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15204, ptr noundef @.str.2, i32 noundef %15205, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 702, ptr noundef %15208, ptr noundef %15211, ptr noundef %15214, i32 noundef %15216) #11
  br label %15235

15218:                                            ; preds = %15196, %15189
  %15219 = load i32, ptr %373, align 4, !tbaa !5
  %15220 = call ptr @__errno_location() #12
  store i32 %15219, ptr %15220, align 4, !tbaa !5
  %15221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15222 = load i32, ptr @test_count, align 4, !tbaa !5
  %15223 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15224 = load i32, ptr %15223, align 4, !tbaa !5
  %15225 = call ptr @s2n_strerror(i32 noundef %15224, ptr noundef @.str.4)
  %15226 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15227 = load i32, ptr %15226, align 4, !tbaa !5
  %15228 = call ptr @s2n_strerror_debug(i32 noundef %15227, ptr noundef @.str.4)
  %15229 = call ptr @__errno_location() #12
  %15230 = load i32, ptr %15229, align 4, !tbaa !5
  %15231 = call ptr @strerror(i32 noundef %15230) #11
  %15232 = call ptr @__errno_location() #12
  %15233 = load i32, ptr %15232, align 4, !tbaa !5
  %15234 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15221, ptr noundef @.str.5, i32 noundef %15222, ptr noundef @.str.128, ptr noundef @.str.1, i32 noundef 702, ptr noundef %15225, ptr noundef %15228, ptr noundef %15231, i32 noundef %15233) #11
  br label %15235

15235:                                            ; preds = %15218, %15201
  call void @llvm.lifetime.end.p0(i64 4, ptr %373) #11
  br label %15236

15236:                                            ; preds = %15235
  br label %15237

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

15238:                                            ; No predecessors!
  br label %15239

15239:                                            ; preds = %15238
  br label %15240

15240:                                            ; preds = %15239, %15178
  br label %15241

15241:                                            ; preds = %15240
  br label %15242

15242:                                            ; preds = %15241
  br label %15243

15243:                                            ; preds = %15242
  br label %15244

15244:                                            ; preds = %15243
  call void @llvm.lifetime.start.p0(i64 100, ptr %374) #11
  call void @llvm.memset.p0.i64(ptr align 16 %374, i8 0, i64 100, i1 false)
  br label %15245

15245:                                            ; preds = %15244
  %15246 = load i32, ptr @test_count, align 4, !tbaa !5
  %15247 = add nsw i32 %15246, 1
  store i32 %15247, ptr @test_count, align 4, !tbaa !5
  %15248 = load ptr, ptr %355, align 8, !tbaa !9
  %15249 = getelementptr inbounds [100 x i8], ptr %374, i64 0, i64 0
  %15250 = call i32 @s2n_fingerprint_get_raw(ptr noundef %15248, i32 noundef 100, ptr noundef %15249, ptr noundef %365)
  %15251 = icmp eq i32 %15250, -1
  br i1 %15251, label %15252, label %15305

15252:                                            ; preds = %15245
  br label %15253

15253:                                            ; preds = %15252
  br label %15254

15254:                                            ; preds = %15253
  call void @llvm.lifetime.start.p0(i64 4, ptr %375) #11
  %15255 = call ptr @__errno_location() #12
  %15256 = load i32, ptr %15255, align 4, !tbaa !5
  store i32 %15256, ptr %375, align 4, !tbaa !5
  %15257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15258 = call i32 @s2n_print_stacktrace(ptr noundef %15257)
  %15259 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15260 = trunc i8 %15259 to i1
  br i1 %15260, label %15261, label %15283

15261:                                            ; preds = %15254
  %15262 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15263 = call i32 @fileno(ptr noundef %15262) #11
  %15264 = call i32 @isatty(i32 noundef %15263) #11
  %15265 = icmp ne i32 %15264, 0
  br i1 %15265, label %15266, label %15283

15266:                                            ; preds = %15261
  %15267 = load i32, ptr %375, align 4, !tbaa !5
  %15268 = call ptr @__errno_location() #12
  store i32 %15267, ptr %15268, align 4, !tbaa !5
  %15269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15270 = load i32, ptr @test_count, align 4, !tbaa !5
  %15271 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15272 = load i32, ptr %15271, align 4, !tbaa !5
  %15273 = call ptr @s2n_strerror(i32 noundef %15272, ptr noundef @.str.4)
  %15274 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15275 = load i32, ptr %15274, align 4, !tbaa !5
  %15276 = call ptr @s2n_strerror_debug(i32 noundef %15275, ptr noundef @.str.4)
  %15277 = call ptr @__errno_location() #12
  %15278 = load i32, ptr %15277, align 4, !tbaa !5
  %15279 = call ptr @strerror(i32 noundef %15278) #11
  %15280 = call ptr @__errno_location() #12
  %15281 = load i32, ptr %15280, align 4, !tbaa !5
  %15282 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15269, ptr noundef @.str.2, i32 noundef %15270, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 707, ptr noundef %15273, ptr noundef %15276, ptr noundef %15279, i32 noundef %15281) #11
  br label %15300

15283:                                            ; preds = %15261, %15254
  %15284 = load i32, ptr %375, align 4, !tbaa !5
  %15285 = call ptr @__errno_location() #12
  store i32 %15284, ptr %15285, align 4, !tbaa !5
  %15286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15287 = load i32, ptr @test_count, align 4, !tbaa !5
  %15288 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15289 = load i32, ptr %15288, align 4, !tbaa !5
  %15290 = call ptr @s2n_strerror(i32 noundef %15289, ptr noundef @.str.4)
  %15291 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15292 = load i32, ptr %15291, align 4, !tbaa !5
  %15293 = call ptr @s2n_strerror_debug(i32 noundef %15292, ptr noundef @.str.4)
  %15294 = call ptr @__errno_location() #12
  %15295 = load i32, ptr %15294, align 4, !tbaa !5
  %15296 = call ptr @strerror(i32 noundef %15295) #11
  %15297 = call ptr @__errno_location() #12
  %15298 = load i32, ptr %15297, align 4, !tbaa !5
  %15299 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15286, ptr noundef @.str.5, i32 noundef %15287, ptr noundef @.str.129, ptr noundef @.str.1, i32 noundef 707, ptr noundef %15290, ptr noundef %15293, ptr noundef %15296, i32 noundef %15298) #11
  br label %15300

15300:                                            ; preds = %15283, %15266
  call void @llvm.lifetime.end.p0(i64 4, ptr %375) #11
  br label %15301

15301:                                            ; preds = %15300
  br label %15302

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

15303:                                            ; No predecessors!
  br label %15304

15304:                                            ; preds = %15303
  br label %15305

15305:                                            ; preds = %15304, %15245
  br label %15306

15306:                                            ; preds = %15305
  br label %15307

15307:                                            ; preds = %15306
  br label %15308

15308:                                            ; preds = %15307
  br label %15309

15309:                                            ; preds = %15308
  %15310 = load i32, ptr @test_count, align 4, !tbaa !5
  %15311 = add nsw i32 %15310, 1
  store i32 %15311, ptr @test_count, align 4, !tbaa !5
  %15312 = getelementptr inbounds [100 x i8], ptr %374, i64 0, i64 0
  %15313 = load ptr, ptr %363, align 8, !tbaa !9
  %15314 = getelementptr inbounds %struct.s2n_test_hello, ptr %15313, i32 0, i32 2
  %15315 = getelementptr inbounds [100 x i8], ptr %15314, i64 0, i64 0
  %15316 = call i32 @memcmp(ptr noundef %15312, ptr noundef %15315, i64 noundef 100) #14
  %15317 = icmp eq i32 %15316, 0
  br i1 %15317, label %15371, label %15318

15318:                                            ; preds = %15309
  br label %15319

15319:                                            ; preds = %15318
  br label %15320

15320:                                            ; preds = %15319
  call void @llvm.lifetime.start.p0(i64 4, ptr %376) #11
  %15321 = call ptr @__errno_location() #12
  %15322 = load i32, ptr %15321, align 4, !tbaa !5
  store i32 %15322, ptr %376, align 4, !tbaa !5
  %15323 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15324 = call i32 @s2n_print_stacktrace(ptr noundef %15323)
  %15325 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15326 = trunc i8 %15325 to i1
  br i1 %15326, label %15327, label %15349

15327:                                            ; preds = %15320
  %15328 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15329 = call i32 @fileno(ptr noundef %15328) #11
  %15330 = call i32 @isatty(i32 noundef %15329) #11
  %15331 = icmp ne i32 %15330, 0
  br i1 %15331, label %15332, label %15349

15332:                                            ; preds = %15327
  %15333 = load i32, ptr %376, align 4, !tbaa !5
  %15334 = call ptr @__errno_location() #12
  store i32 %15333, ptr %15334, align 4, !tbaa !5
  %15335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15336 = load i32, ptr @test_count, align 4, !tbaa !5
  %15337 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15338 = load i32, ptr %15337, align 4, !tbaa !5
  %15339 = call ptr @s2n_strerror(i32 noundef %15338, ptr noundef @.str.4)
  %15340 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15341 = load i32, ptr %15340, align 4, !tbaa !5
  %15342 = call ptr @s2n_strerror_debug(i32 noundef %15341, ptr noundef @.str.4)
  %15343 = call ptr @__errno_location() #12
  %15344 = load i32, ptr %15343, align 4, !tbaa !5
  %15345 = call ptr @strerror(i32 noundef %15344) #11
  %15346 = call ptr @__errno_location() #12
  %15347 = load i32, ptr %15346, align 4, !tbaa !5
  %15348 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15335, ptr noundef @.str.2, i32 noundef %15336, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 708, ptr noundef %15339, ptr noundef %15342, ptr noundef %15345, i32 noundef %15347) #11
  br label %15366

15349:                                            ; preds = %15327, %15320
  %15350 = load i32, ptr %376, align 4, !tbaa !5
  %15351 = call ptr @__errno_location() #12
  store i32 %15350, ptr %15351, align 4, !tbaa !5
  %15352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15353 = load i32, ptr @test_count, align 4, !tbaa !5
  %15354 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15355 = load i32, ptr %15354, align 4, !tbaa !5
  %15356 = call ptr @s2n_strerror(i32 noundef %15355, ptr noundef @.str.4)
  %15357 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15358 = load i32, ptr %15357, align 4, !tbaa !5
  %15359 = call ptr @s2n_strerror_debug(i32 noundef %15358, ptr noundef @.str.4)
  %15360 = call ptr @__errno_location() #12
  %15361 = load i32, ptr %15360, align 4, !tbaa !5
  %15362 = call ptr @strerror(i32 noundef %15361) #11
  %15363 = call ptr @__errno_location() #12
  %15364 = load i32, ptr %15363, align 4, !tbaa !5
  %15365 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15352, ptr noundef @.str.5, i32 noundef %15353, ptr noundef @.str.130, ptr noundef @.str.1, i32 noundef 708, ptr noundef %15356, ptr noundef %15359, ptr noundef %15362, i32 noundef %15364) #11
  br label %15366

15366:                                            ; preds = %15349, %15332
  call void @llvm.lifetime.end.p0(i64 4, ptr %376) #11
  br label %15367

15367:                                            ; preds = %15366
  br label %15368

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

15369:                                            ; No predecessors!
  br label %15370

15370:                                            ; preds = %15369
  br label %15371

15371:                                            ; preds = %15370, %15309
  br label %15372

15372:                                            ; preds = %15371
  br label %15373

15373:                                            ; preds = %15372
  br label %15374

15374:                                            ; preds = %15373
  br label %15375

15375:                                            ; preds = %15374
  br label %15376

15376:                                            ; preds = %15375
  %15377 = load i32, ptr @test_count, align 4, !tbaa !5
  %15378 = add nsw i32 %15377, 1
  store i32 %15378, ptr @test_count, align 4, !tbaa !5
  %15379 = load ptr, ptr %355, align 8, !tbaa !9
  %15380 = call i32 @s2n_fingerprint_wipe(ptr noundef %15379)
  %15381 = icmp eq i32 %15380, -1
  br i1 %15381, label %15382, label %15435

15382:                                            ; preds = %15376
  br label %15383

15383:                                            ; preds = %15382
  br label %15384

15384:                                            ; preds = %15383
  call void @llvm.lifetime.start.p0(i64 4, ptr %377) #11
  %15385 = call ptr @__errno_location() #12
  %15386 = load i32, ptr %15385, align 4, !tbaa !5
  store i32 %15386, ptr %377, align 4, !tbaa !5
  %15387 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15388 = call i32 @s2n_print_stacktrace(ptr noundef %15387)
  %15389 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15390 = trunc i8 %15389 to i1
  br i1 %15390, label %15391, label %15413

15391:                                            ; preds = %15384
  %15392 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15393 = call i32 @fileno(ptr noundef %15392) #11
  %15394 = call i32 @isatty(i32 noundef %15393) #11
  %15395 = icmp ne i32 %15394, 0
  br i1 %15395, label %15396, label %15413

15396:                                            ; preds = %15391
  %15397 = load i32, ptr %377, align 4, !tbaa !5
  %15398 = call ptr @__errno_location() #12
  store i32 %15397, ptr %15398, align 4, !tbaa !5
  %15399 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15400 = load i32, ptr @test_count, align 4, !tbaa !5
  %15401 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15402 = load i32, ptr %15401, align 4, !tbaa !5
  %15403 = call ptr @s2n_strerror(i32 noundef %15402, ptr noundef @.str.4)
  %15404 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15405 = load i32, ptr %15404, align 4, !tbaa !5
  %15406 = call ptr @s2n_strerror_debug(i32 noundef %15405, ptr noundef @.str.4)
  %15407 = call ptr @__errno_location() #12
  %15408 = load i32, ptr %15407, align 4, !tbaa !5
  %15409 = call ptr @strerror(i32 noundef %15408) #11
  %15410 = call ptr @__errno_location() #12
  %15411 = load i32, ptr %15410, align 4, !tbaa !5
  %15412 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15399, ptr noundef @.str.2, i32 noundef %15400, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 711, ptr noundef %15403, ptr noundef %15406, ptr noundef %15409, i32 noundef %15411) #11
  br label %15430

15413:                                            ; preds = %15391, %15384
  %15414 = load i32, ptr %377, align 4, !tbaa !5
  %15415 = call ptr @__errno_location() #12
  store i32 %15414, ptr %15415, align 4, !tbaa !5
  %15416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15417 = load i32, ptr @test_count, align 4, !tbaa !5
  %15418 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15419 = load i32, ptr %15418, align 4, !tbaa !5
  %15420 = call ptr @s2n_strerror(i32 noundef %15419, ptr noundef @.str.4)
  %15421 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15422 = load i32, ptr %15421, align 4, !tbaa !5
  %15423 = call ptr @s2n_strerror_debug(i32 noundef %15422, ptr noundef @.str.4)
  %15424 = call ptr @__errno_location() #12
  %15425 = load i32, ptr %15424, align 4, !tbaa !5
  %15426 = call ptr @strerror(i32 noundef %15425) #11
  %15427 = call ptr @__errno_location() #12
  %15428 = load i32, ptr %15427, align 4, !tbaa !5
  %15429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15416, ptr noundef @.str.5, i32 noundef %15417, ptr noundef @.str.131, ptr noundef @.str.1, i32 noundef 711, ptr noundef %15420, ptr noundef %15423, ptr noundef %15426, i32 noundef %15428) #11
  br label %15430

15430:                                            ; preds = %15413, %15396
  call void @llvm.lifetime.end.p0(i64 4, ptr %377) #11
  br label %15431

15431:                                            ; preds = %15430
  br label %15432

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

15433:                                            ; No predecessors!
  br label %15434

15434:                                            ; preds = %15433
  br label %15435

15435:                                            ; preds = %15434, %15376
  br label %15436

15436:                                            ; preds = %15435
  br label %15437

15437:                                            ; preds = %15436
  call void @llvm.lifetime.end.p0(i64 100, ptr %374) #11
  call void @llvm.lifetime.end.p0(i64 100, ptr %371) #11
  call void @llvm.lifetime.end.p0(i64 4, ptr %365) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %363) #11
  br label %15438

15438:                                            ; preds = %15437
  %15439 = load i64, ptr %362, align 8, !tbaa !16
  %15440 = add i64 %15439, 1
  store i64 %15440, ptr %362, align 8, !tbaa !16
  br label %14700, !llvm.loop !49

15441:                                            ; preds = %14703
  br label %15442

15442:                                            ; preds = %15441
  %15443 = load i32, ptr @test_count, align 4, !tbaa !5
  %15444 = add nsw i32 %15443, 1
  store i32 %15444, ptr @test_count, align 4, !tbaa !5
  %15445 = getelementptr inbounds [2 x %struct.s2n_test_hello], ptr %361, i64 0, i64 0
  %15446 = getelementptr inbounds %struct.s2n_test_hello, ptr %15445, i32 0, i32 1
  %15447 = getelementptr inbounds [100 x i8], ptr %15446, i64 0, i64 0
  %15448 = getelementptr inbounds [2 x %struct.s2n_test_hello], ptr %361, i64 0, i64 1
  %15449 = getelementptr inbounds %struct.s2n_test_hello, ptr %15448, i32 0, i32 1
  %15450 = getelementptr inbounds [100 x i8], ptr %15449, i64 0, i64 0
  %15451 = call i32 @memcmp(ptr noundef %15447, ptr noundef %15450, i64 noundef 100) #14
  %15452 = icmp eq i32 %15451, 0
  br i1 %15452, label %15453, label %15506

15453:                                            ; preds = %15442
  br label %15454

15454:                                            ; preds = %15453
  br label %15455

15455:                                            ; preds = %15454
  call void @llvm.lifetime.start.p0(i64 4, ptr %378) #11
  %15456 = call ptr @__errno_location() #12
  %15457 = load i32, ptr %15456, align 4, !tbaa !5
  store i32 %15457, ptr %378, align 4, !tbaa !5
  %15458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15459 = call i32 @s2n_print_stacktrace(ptr noundef %15458)
  %15460 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15461 = trunc i8 %15460 to i1
  br i1 %15461, label %15462, label %15484

15462:                                            ; preds = %15455
  %15463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15464 = call i32 @fileno(ptr noundef %15463) #11
  %15465 = call i32 @isatty(i32 noundef %15464) #11
  %15466 = icmp ne i32 %15465, 0
  br i1 %15466, label %15467, label %15484

15467:                                            ; preds = %15462
  %15468 = load i32, ptr %378, align 4, !tbaa !5
  %15469 = call ptr @__errno_location() #12
  store i32 %15468, ptr %15469, align 4, !tbaa !5
  %15470 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15471 = load i32, ptr @test_count, align 4, !tbaa !5
  %15472 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15473 = load i32, ptr %15472, align 4, !tbaa !5
  %15474 = call ptr @s2n_strerror(i32 noundef %15473, ptr noundef @.str.4)
  %15475 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15476 = load i32, ptr %15475, align 4, !tbaa !5
  %15477 = call ptr @s2n_strerror_debug(i32 noundef %15476, ptr noundef @.str.4)
  %15478 = call ptr @__errno_location() #12
  %15479 = load i32, ptr %15478, align 4, !tbaa !5
  %15480 = call ptr @strerror(i32 noundef %15479) #11
  %15481 = call ptr @__errno_location() #12
  %15482 = load i32, ptr %15481, align 4, !tbaa !5
  %15483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15470, ptr noundef @.str.2, i32 noundef %15471, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 715, ptr noundef %15474, ptr noundef %15477, ptr noundef %15480, i32 noundef %15482) #11
  br label %15501

15484:                                            ; preds = %15462, %15455
  %15485 = load i32, ptr %378, align 4, !tbaa !5
  %15486 = call ptr @__errno_location() #12
  store i32 %15485, ptr %15486, align 4, !tbaa !5
  %15487 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15488 = load i32, ptr @test_count, align 4, !tbaa !5
  %15489 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15490 = load i32, ptr %15489, align 4, !tbaa !5
  %15491 = call ptr @s2n_strerror(i32 noundef %15490, ptr noundef @.str.4)
  %15492 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15493 = load i32, ptr %15492, align 4, !tbaa !5
  %15494 = call ptr @s2n_strerror_debug(i32 noundef %15493, ptr noundef @.str.4)
  %15495 = call ptr @__errno_location() #12
  %15496 = load i32, ptr %15495, align 4, !tbaa !5
  %15497 = call ptr @strerror(i32 noundef %15496) #11
  %15498 = call ptr @__errno_location() #12
  %15499 = load i32, ptr %15498, align 4, !tbaa !5
  %15500 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15487, ptr noundef @.str.5, i32 noundef %15488, ptr noundef @.str.132, ptr noundef @.str.1, i32 noundef 715, ptr noundef %15491, ptr noundef %15494, ptr noundef %15497, i32 noundef %15499) #11
  br label %15501

15501:                                            ; preds = %15484, %15467
  call void @llvm.lifetime.end.p0(i64 4, ptr %378) #11
  br label %15502

15502:                                            ; preds = %15501
  br label %15503

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

15504:                                            ; No predecessors!
  br label %15505

15505:                                            ; preds = %15504
  br label %15506

15506:                                            ; preds = %15505, %15442
  br label %15507

15507:                                            ; preds = %15506
  br label %15508

15508:                                            ; preds = %15507
  br label %15509

15509:                                            ; preds = %15508
  %15510 = load i32, ptr @test_count, align 4, !tbaa !5
  %15511 = add nsw i32 %15510, 1
  store i32 %15511, ptr @test_count, align 4, !tbaa !5
  %15512 = getelementptr inbounds [2 x %struct.s2n_test_hello], ptr %361, i64 0, i64 0
  %15513 = getelementptr inbounds %struct.s2n_test_hello, ptr %15512, i32 0, i32 2
  %15514 = getelementptr inbounds [100 x i8], ptr %15513, i64 0, i64 0
  %15515 = getelementptr inbounds [2 x %struct.s2n_test_hello], ptr %361, i64 0, i64 1
  %15516 = getelementptr inbounds %struct.s2n_test_hello, ptr %15515, i32 0, i32 2
  %15517 = getelementptr inbounds [100 x i8], ptr %15516, i64 0, i64 0
  %15518 = call i32 @memcmp(ptr noundef %15514, ptr noundef %15517, i64 noundef 100) #14
  %15519 = icmp eq i32 %15518, 0
  br i1 %15519, label %15520, label %15573

15520:                                            ; preds = %15509
  br label %15521

15521:                                            ; preds = %15520
  br label %15522

15522:                                            ; preds = %15521
  call void @llvm.lifetime.start.p0(i64 4, ptr %379) #11
  %15523 = call ptr @__errno_location() #12
  %15524 = load i32, ptr %15523, align 4, !tbaa !5
  store i32 %15524, ptr %379, align 4, !tbaa !5
  %15525 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15526 = call i32 @s2n_print_stacktrace(ptr noundef %15525)
  %15527 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15528 = trunc i8 %15527 to i1
  br i1 %15528, label %15529, label %15551

15529:                                            ; preds = %15522
  %15530 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15531 = call i32 @fileno(ptr noundef %15530) #11
  %15532 = call i32 @isatty(i32 noundef %15531) #11
  %15533 = icmp ne i32 %15532, 0
  br i1 %15533, label %15534, label %15551

15534:                                            ; preds = %15529
  %15535 = load i32, ptr %379, align 4, !tbaa !5
  %15536 = call ptr @__errno_location() #12
  store i32 %15535, ptr %15536, align 4, !tbaa !5
  %15537 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15538 = load i32, ptr @test_count, align 4, !tbaa !5
  %15539 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15540 = load i32, ptr %15539, align 4, !tbaa !5
  %15541 = call ptr @s2n_strerror(i32 noundef %15540, ptr noundef @.str.4)
  %15542 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15543 = load i32, ptr %15542, align 4, !tbaa !5
  %15544 = call ptr @s2n_strerror_debug(i32 noundef %15543, ptr noundef @.str.4)
  %15545 = call ptr @__errno_location() #12
  %15546 = load i32, ptr %15545, align 4, !tbaa !5
  %15547 = call ptr @strerror(i32 noundef %15546) #11
  %15548 = call ptr @__errno_location() #12
  %15549 = load i32, ptr %15548, align 4, !tbaa !5
  %15550 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15537, ptr noundef @.str.2, i32 noundef %15538, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 716, ptr noundef %15541, ptr noundef %15544, ptr noundef %15547, i32 noundef %15549) #11
  br label %15568

15551:                                            ; preds = %15529, %15522
  %15552 = load i32, ptr %379, align 4, !tbaa !5
  %15553 = call ptr @__errno_location() #12
  store i32 %15552, ptr %15553, align 4, !tbaa !5
  %15554 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15555 = load i32, ptr @test_count, align 4, !tbaa !5
  %15556 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15557 = load i32, ptr %15556, align 4, !tbaa !5
  %15558 = call ptr @s2n_strerror(i32 noundef %15557, ptr noundef @.str.4)
  %15559 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15560 = load i32, ptr %15559, align 4, !tbaa !5
  %15561 = call ptr @s2n_strerror_debug(i32 noundef %15560, ptr noundef @.str.4)
  %15562 = call ptr @__errno_location() #12
  %15563 = load i32, ptr %15562, align 4, !tbaa !5
  %15564 = call ptr @strerror(i32 noundef %15563) #11
  %15565 = call ptr @__errno_location() #12
  %15566 = load i32, ptr %15565, align 4, !tbaa !5
  %15567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15554, ptr noundef @.str.5, i32 noundef %15555, ptr noundef @.str.133, ptr noundef @.str.1, i32 noundef 716, ptr noundef %15558, ptr noundef %15561, ptr noundef %15564, i32 noundef %15566) #11
  br label %15568

15568:                                            ; preds = %15551, %15534
  call void @llvm.lifetime.end.p0(i64 4, ptr %379) #11
  br label %15569

15569:                                            ; preds = %15568
  br label %15570

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

15571:                                            ; No predecessors!
  br label %15572

15572:                                            ; preds = %15571
  br label %15573

15573:                                            ; preds = %15572, %15509
  br label %15574

15574:                                            ; preds = %15573
  br label %15575

15575:                                            ; preds = %15574
  call void @llvm.lifetime.end.p0(i64 432, ptr %361) #11
  %15576 = call i32 @s2n_client_hello_free(ptr noundef %359)
  call void @llvm.lifetime.end.p0(i64 8, ptr %359) #11
  call void @llvm.lifetime.end.p0(i64 47, ptr %356) #11
  %15577 = call i32 @s2n_fingerprint_free(ptr noundef %355)
  call void @llvm.lifetime.end.p0(i64 8, ptr %355) #11
  br label %15578

15578:                                            ; preds = %15575
  br label %15579

15579:                                            ; preds = %15578
  %15580 = call i32 @s2n_cleanup()
  %15581 = icmp eq i32 %15580, -1
  br i1 %15581, label %15582, label %15635

15582:                                            ; preds = %15579
  br label %15583

15583:                                            ; preds = %15582
  br label %15584

15584:                                            ; preds = %15583
  call void @llvm.lifetime.start.p0(i64 4, ptr %380) #11
  %15585 = call ptr @__errno_location() #12
  %15586 = load i32, ptr %15585, align 4, !tbaa !5
  store i32 %15586, ptr %380, align 4, !tbaa !5
  %15587 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15588 = call i32 @s2n_print_stacktrace(ptr noundef %15587)
  %15589 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15590 = trunc i8 %15589 to i1
  br i1 %15590, label %15591, label %15613

15591:                                            ; preds = %15584
  %15592 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15593 = call i32 @fileno(ptr noundef %15592) #11
  %15594 = call i32 @isatty(i32 noundef %15593) #11
  %15595 = icmp ne i32 %15594, 0
  br i1 %15595, label %15596, label %15613

15596:                                            ; preds = %15591
  %15597 = load i32, ptr %380, align 4, !tbaa !5
  %15598 = call ptr @__errno_location() #12
  store i32 %15597, ptr %15598, align 4, !tbaa !5
  %15599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15600 = load i32, ptr @test_count, align 4, !tbaa !5
  %15601 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15602 = load i32, ptr %15601, align 4, !tbaa !5
  %15603 = call ptr @s2n_strerror(i32 noundef %15602, ptr noundef @.str.4)
  %15604 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15605 = load i32, ptr %15604, align 4, !tbaa !5
  %15606 = call ptr @s2n_strerror_debug(i32 noundef %15605, ptr noundef @.str.4)
  %15607 = call ptr @__errno_location() #12
  %15608 = load i32, ptr %15607, align 4, !tbaa !5
  %15609 = call ptr @strerror(i32 noundef %15608) #11
  %15610 = call ptr @__errno_location() #12
  %15611 = load i32, ptr %15610, align 4, !tbaa !5
  %15612 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15599, ptr noundef @.str.2, i32 noundef %15600, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 719, ptr noundef %15603, ptr noundef %15606, ptr noundef %15609, i32 noundef %15611) #11
  br label %15630

15613:                                            ; preds = %15591, %15584
  %15614 = load i32, ptr %380, align 4, !tbaa !5
  %15615 = call ptr @__errno_location() #12
  store i32 %15614, ptr %15615, align 4, !tbaa !5
  %15616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15617 = load i32, ptr @test_count, align 4, !tbaa !5
  %15618 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15619 = load i32, ptr %15618, align 4, !tbaa !5
  %15620 = call ptr @s2n_strerror(i32 noundef %15619, ptr noundef @.str.4)
  %15621 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15622 = load i32, ptr %15621, align 4, !tbaa !5
  %15623 = call ptr @s2n_strerror_debug(i32 noundef %15622, ptr noundef @.str.4)
  %15624 = call ptr @__errno_location() #12
  %15625 = load i32, ptr %15624, align 4, !tbaa !5
  %15626 = call ptr @strerror(i32 noundef %15625) #11
  %15627 = call ptr @__errno_location() #12
  %15628 = load i32, ptr %15627, align 4, !tbaa !5
  %15629 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15616, ptr noundef @.str.5, i32 noundef %15617, ptr noundef @.str.134, ptr noundef @.str.1, i32 noundef 719, ptr noundef %15620, ptr noundef %15623, ptr noundef %15626, i32 noundef %15628) #11
  br label %15630

15630:                                            ; preds = %15613, %15596
  call void @llvm.lifetime.end.p0(i64 4, ptr %380) #11
  br label %15631

15631:                                            ; preds = %15630
  br label %15632

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

15633:                                            ; No predecessors!
  br label %15634

15634:                                            ; preds = %15633
  br label %15635

15635:                                            ; preds = %15634, %15579
  br label %15636

15636:                                            ; preds = %15635
  br label %15637

15637:                                            ; preds = %15636
  br label %15638

15638:                                            ; preds = %15637
  br label %15639

15639:                                            ; preds = %15638
  %15640 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false)
  %15641 = icmp eq i32 %15640, -1
  br i1 %15641, label %15642, label %15695

15642:                                            ; preds = %15639
  br label %15643

15643:                                            ; preds = %15642
  br label %15644

15644:                                            ; preds = %15643
  call void @llvm.lifetime.start.p0(i64 4, ptr %381) #11
  %15645 = call ptr @__errno_location() #12
  %15646 = load i32, ptr %15645, align 4, !tbaa !5
  store i32 %15646, ptr %381, align 4, !tbaa !5
  %15647 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15648 = call i32 @s2n_print_stacktrace(ptr noundef %15647)
  %15649 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15650 = trunc i8 %15649 to i1
  br i1 %15650, label %15651, label %15673

15651:                                            ; preds = %15644
  %15652 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15653 = call i32 @fileno(ptr noundef %15652) #11
  %15654 = call i32 @isatty(i32 noundef %15653) #11
  %15655 = icmp ne i32 %15654, 0
  br i1 %15655, label %15656, label %15673

15656:                                            ; preds = %15651
  %15657 = load i32, ptr %381, align 4, !tbaa !5
  %15658 = call ptr @__errno_location() #12
  store i32 %15657, ptr %15658, align 4, !tbaa !5
  %15659 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15660 = load i32, ptr @test_count, align 4, !tbaa !5
  %15661 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15662 = load i32, ptr %15661, align 4, !tbaa !5
  %15663 = call ptr @s2n_strerror(i32 noundef %15662, ptr noundef @.str.4)
  %15664 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15665 = load i32, ptr %15664, align 4, !tbaa !5
  %15666 = call ptr @s2n_strerror_debug(i32 noundef %15665, ptr noundef @.str.4)
  %15667 = call ptr @__errno_location() #12
  %15668 = load i32, ptr %15667, align 4, !tbaa !5
  %15669 = call ptr @strerror(i32 noundef %15668) #11
  %15670 = call ptr @__errno_location() #12
  %15671 = load i32, ptr %15670, align 4, !tbaa !5
  %15672 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15659, ptr noundef @.str.2, i32 noundef %15660, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 719, ptr noundef %15663, ptr noundef %15666, ptr noundef %15669, i32 noundef %15671) #11
  br label %15690

15673:                                            ; preds = %15651, %15644
  %15674 = load i32, ptr %381, align 4, !tbaa !5
  %15675 = call ptr @__errno_location() #12
  store i32 %15674, ptr %15675, align 4, !tbaa !5
  %15676 = load ptr, ptr @stderr, align 8, !tbaa !9
  %15677 = load i32, ptr @test_count, align 4, !tbaa !5
  %15678 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15679 = load i32, ptr %15678, align 4, !tbaa !5
  %15680 = call ptr @s2n_strerror(i32 noundef %15679, ptr noundef @.str.4)
  %15681 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %15682 = load i32, ptr %15681, align 4, !tbaa !5
  %15683 = call ptr @s2n_strerror_debug(i32 noundef %15682, ptr noundef @.str.4)
  %15684 = call ptr @__errno_location() #12
  %15685 = load i32, ptr %15684, align 4, !tbaa !5
  %15686 = call ptr @strerror(i32 noundef %15685) #11
  %15687 = call ptr @__errno_location() #12
  %15688 = load i32, ptr %15687, align 4, !tbaa !5
  %15689 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15676, ptr noundef @.str.5, i32 noundef %15677, ptr noundef @.str.135, ptr noundef @.str.1, i32 noundef 719, ptr noundef %15680, ptr noundef %15683, ptr noundef %15686, i32 noundef %15688) #11
  br label %15690

15690:                                            ; preds = %15673, %15656
  call void @llvm.lifetime.end.p0(i64 4, ptr %381) #11
  br label %15691

15691:                                            ; preds = %15690
  br label %15692

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

15693:                                            ; No predecessors!
  br label %15694

15694:                                            ; preds = %15693
  br label %15695

15695:                                            ; preds = %15694, %15639
  br label %15696

15696:                                            ; preds = %15695
  br label %15697

15697:                                            ; preds = %15696
  %15698 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %15699 = trunc i8 %15698 to i1
  br i1 %15699, label %15700, label %15716

15700:                                            ; preds = %15697
  %15701 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15702 = call i32 @fileno(ptr noundef %15701) #11
  %15703 = call i32 @isatty(i32 noundef %15702) #11
  %15704 = icmp ne i32 %15703, 0
  br i1 %15704, label %15705, label %15716

15705:                                            ; preds = %15700
  %15706 = load i32, ptr @test_count, align 4, !tbaa !5
  %15707 = icmp ne i32 %15706, 0
  br i1 %15707, label %15708, label %15712

15708:                                            ; preds = %15705
  %15709 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15710 = load i32, ptr @test_count, align 4, !tbaa !5
  %15711 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15709, ptr noundef @.str.136, i32 noundef %15710) #11
  br label %15715

15712:                                            ; preds = %15705
  %15713 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15714 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15713, ptr noundef @.str.137) #11
  br label %15715

15715:                                            ; preds = %15712, %15708
  br label %15727

15716:                                            ; preds = %15700, %15697
  %15717 = load i32, ptr @test_count, align 4, !tbaa !5
  %15718 = icmp ne i32 %15717, 0
  br i1 %15718, label %15719, label %15723

15719:                                            ; preds = %15716
  %15720 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15721 = load i32, ptr @test_count, align 4, !tbaa !5
  %15722 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15720, ptr noundef @.str.138, i32 noundef %15721) #11
  br label %15726

15723:                                            ; preds = %15716
  %15724 = load ptr, ptr @stdout, align 8, !tbaa !9
  %15725 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %15724, ptr noundef @.str.139) #11
  br label %15726

15726:                                            ; preds = %15723, %15719
  br label %15727

15727:                                            ; preds = %15726, %15715
  store i32 0, ptr %3, align 4
  store i32 1, ptr %382, align 4
  br label %15732

15728:                                            ; No predecessors!
  br label %15729

15729:                                            ; preds = %15728
  br label %15730

15730:                                            ; preds = %15729
  br label %15731

15731:                                            ; preds = %15730
  store i32 0, ptr %382, align 4
  br label %15732

15732:                                            ; preds = %15731, %15727
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #11
  %15733 = call i32 @s2n_client_hello_free(ptr noundef %14)
  call void @llvm.lifetime.end.p0(i64 8, ptr %14) #11
  call void @llvm.lifetime.end.p0(i64 47, ptr %13) #11
  call void @llvm.lifetime.end.p0(i64 32, ptr %12) #11
  call void @llvm.lifetime.end.p0(i64 8, ptr %11) #11
  call void @llvm.lifetime.end.p0(i64 6, ptr %10) #11
  call void @llvm.lifetime.end.p0(i64 1, ptr %9) #11
  %15734 = load i32, ptr %382, align 4
  switch i32 %15734, label %15737 [
    i32 0, label %15735
    i32 1, label %15735
  ]

15735:                                            ; preds = %15732, %15732
  %15736 = load i32, ptr %3, align 4
  ret i32 %15736

15737:                                            ; preds = %15732
  unreachable
}

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

declare i32 @fflush(ptr noundef) #2

declare i32 @s2n_in_unit_test_set(i1 noundef zeroext) #2

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

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

declare i32 @s2n_print_stacktrace(ptr noundef) #2

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

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

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

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

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

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

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

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

declare i32 @s2n_enable_atexit() #2

declare i32 @s2n_init() #2

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

declare i32 @s2n_client_hello_free(ptr noundef) #2

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

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

declare i32 @s2n_fingerprint_hash_add_char(ptr noundef, i8 noundef signext) #2

declare void @s2n_debug_info_reset() #2

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

declare i32 @s2n_stuffer_free(ptr noundef) #2

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

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

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

declare i32 @s2n_hash_free(ptr noundef) #2

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

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

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

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

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

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

declare zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef) #2

declare zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext) #2

declare ptr @s2n_fingerprint_new(i32 noundef) #2

declare i32 @s2n_fingerprint_free(ptr noundef) #2

declare i32 @s2n_hash_is_ready_for_input(ptr noundef) #2

declare i32 @s2n_fingerprint_wipe(ptr noundef) #2

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

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

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

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

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

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

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

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

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

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

declare i32 @s2n_cleanup() #2

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!7, !7, i64 0}
!16 = !{!17, !17, i64 0}
!17 = !{!"long", !7, i64 0}
!18 = !{!19, !6, i64 0}
!19 = !{!"s2n_fingerprint_hash", !6, i64 0, !10, i64 8, !10, i64 16}
!20 = !{!19, !10, i64 8}
!21 = !{!19, !10, i64 16}
!22 = !{!23, !6, i64 28}
!23 = !{!"s2n_stuffer", !24, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!24 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!25 = !{!23, !6, i64 24}
!26 = distinct !{!26, !27}
!27 = !{!"llvm.loop.mustprogress"}
!28 = !{!29, !17, i64 16}
!29 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !17, i64 16, !7, i64 24}
!30 = distinct !{!30, !27}
!31 = distinct !{!31, !27}
!32 = distinct !{!32, !27}
!33 = !{!24, !6, i64 8}
!34 = !{!24, !10, i64 0}
!35 = distinct !{!35, !27}
!36 = !{!37, !10, i64 8}
!37 = !{!"s2n_fingerprint", !17, i64 0, !10, i64 8, !10, i64 16, !29, i64 24, !23, i64 80}
!38 = !{!37, !10, i64 16}
!39 = !{!37, !17, i64 0}
!40 = !{!37, !7, i64 36}
!41 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !15, i64 24, i64 672, !15, i64 696, i64 8, !9, i64 704, i64 4, !5, i64 708, i64 4, !5, i64 712, i64 1, !15, i64 720, i64 2, !42, i64 728, i64 8, !9, i64 736, i64 4, !5, i64 740, i64 4, !5, i64 744, i64 1, !15, i64 752, i64 8, !9, i64 760, i64 4, !5, i64 764, i64 4, !5, i64 768, i64 1, !15, i64 776, i64 8, !9, i64 784, i64 4, !5, i64 788, i64 4, !5, i64 792, i64 1, !15, i64 800, i64 1, !15, i64 801, i64 1, !15, i64 802, i64 1, !15}
!42 = !{!43, !43, i64 0}
!43 = !{!"short", !7, i64 0}
!44 = !{!45, !6, i64 4}
!45 = !{!"s2n_fingerprint_method", !6, i64 0, !6, i64 4, !10, i64 8}
!46 = distinct !{!46, !27}
!47 = !{!48, !10, i64 0}
!48 = !{!"s2n_test_hello", !10, i64 0, !7, i64 8, !7, i64 108, !6, i64 208}
!49 = distinct !{!49, !27}


; 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_fingerprint_method = type { i32, i32, ptr }
%struct.s2n_stuffer = type { %struct.s2n_blob, i32, i32, i32, i8 }
%struct.s2n_blob = type { ptr, i32, i32, i8 }
%struct.s2n_fingerprint_hash = type { i32, ptr, ptr }
%struct.s2n_hash_state = type { ptr, i32, i8, i64, %union.anon }
%union.anon = type { %struct.s2n_hash_evp_digest }
%struct.s2n_hash_evp_digest = type { %struct.s2n_evp_digest, %struct.s2n_evp_digest }
%struct.s2n_evp_digest = type { ptr, ptr }
%struct.s2n_fingerprint = type { i64, ptr, ptr, %struct.s2n_hash_state, %struct.s2n_stuffer }
%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_test_hello = type { ptr, [100 x i8], [100 x i8], 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 [79 x i8], align 1
@stderr = external local_unnamed_addr global ptr, align 8
@.str.2 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.3 = external hidden unnamed_addr constant [52 x i8], align 1
@s2n_errno = external thread_local local_unnamed_addr global i32, align 4
@.str.4 = external hidden unnamed_addr constant [3 x i8], align 1
@.str.5 = external hidden unnamed_addr constant [90 x i8], align 1
@.str.6 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.7 = external hidden unnamed_addr constant [39 x i8], align 1
@__const.main.test_str = external hidden unnamed_addr constant [6 x i8], align 1
@__const.main.test_str_digest = external hidden unnamed_addr constant [32 x i8], align 16
@__const.main.raw_client_hello = external hidden unnamed_addr constant [47 x i8], align 16
@.str.8 = external hidden unnamed_addr constant [47 x i8], align 1
@.str.9 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.10 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.11 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.12 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.13 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.14 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.15 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.16 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.17 = external hidden unnamed_addr constant [68 x i8], align 1
@.str.18 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.19 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.20 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.21 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.22 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.23 = external hidden unnamed_addr constant [60 x i8], align 1
@.str.24 = external hidden unnamed_addr constant [86 x i8], align 1
@.str.25 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.26 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.27 = external hidden unnamed_addr constant [91 x i8], align 1
@.str.28 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.29 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.30 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.31 = external hidden unnamed_addr constant [66 x i8], align 1
@.str.32 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.33 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.34 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.35 = external hidden unnamed_addr constant [69 x i8], align 1
@.str.36 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.37 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.38 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.39 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.40 = external hidden unnamed_addr constant [82 x i8], align 1
@.str.41 = external hidden unnamed_addr constant [94 x i8], align 1
@.str.42 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.43 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.44 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.45 = external hidden unnamed_addr constant [54 x i8], align 1
@.str.46 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.47 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.48 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.49 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.50 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.51 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.52 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.53 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.54 = external hidden unnamed_addr constant [46 x i8], align 1
@ja3_fingerprint = external global %struct.s2n_fingerprint_method, align 8
@.str.55 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.56 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.57 = external hidden unnamed_addr constant [57 x i8], align 1
@.str.58 = external hidden unnamed_addr constant [44 x i8], align 1
@.str.59 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.60 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.61 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.63 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.64 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.67 = external hidden unnamed_addr constant [63 x i8], align 1
@.str.68 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.69 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.70 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.71 = external hidden unnamed_addr constant [84 x i8], align 1
@.str.72 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.73 = external hidden unnamed_addr constant [67 x i8], align 1
@.str.74 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.75 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.76 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.77 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.78 = external hidden unnamed_addr constant [58 x i8], align 1
@.str.79 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.80 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.81 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.82 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.83 = external hidden unnamed_addr constant [100 x i8], align 1
@.str.84 = external hidden unnamed_addr constant [105 x i8], align 1
@.str.85 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.86 = external hidden unnamed_addr constant [101 x i8], align 1
@.str.87 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.88 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.89 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.90 = external hidden unnamed_addr constant [61 x i8], align 1
@.str.91 = external hidden unnamed_addr constant [88 x i8], align 1
@.str.92 = external hidden unnamed_addr constant [120 x i8], align 1
@.str.93 = external hidden unnamed_addr constant [119 x i8], align 1
@.str.94 = external hidden unnamed_addr constant [79 x i8], align 1
@.str.95 = external hidden unnamed_addr constant [73 x i8], align 1
@.str.96 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.97 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.98 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.99 = external hidden unnamed_addr constant [56 x i8], align 1
@.str.100 = external hidden unnamed_addr constant [99 x i8], align 1
@.str.101 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.102 = external hidden unnamed_addr constant [98 x i8], align 1
@.str.103 = external hidden unnamed_addr constant [103 x i8], align 1
@.str.104 = external hidden unnamed_addr constant [59 x i8], align 1
@.str.105 = external hidden unnamed_addr constant [87 x i8], align 1
@.str.106 = external hidden unnamed_addr constant [116 x i8], align 1
@.str.107 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.108 = external hidden unnamed_addr constant [178 x i8], align 1
@.str.109 = external hidden unnamed_addr constant [85 x i8], align 1
@.str.110 = external hidden unnamed_addr constant [81 x i8], align 1
@.str.111 = external hidden unnamed_addr constant [55 x i8], align 1
@.str.112 = external hidden unnamed_addr constant [89 x i8], align 1
@.str.113 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.114 = external hidden unnamed_addr constant [83 x i8], align 1
@.str.115 = external hidden unnamed_addr constant [53 x i8], align 1
@.str.116 = external hidden unnamed_addr constant [45 x i8], align 1
@.str.117 = external hidden unnamed_addr constant [162 x i8], align 1
@.str.118 = external hidden unnamed_addr constant [51 x i8], align 1
@.str.119 = external hidden unnamed_addr constant [80 x i8], align 1
@.str.120 = external hidden unnamed_addr constant [48 x i8], align 1
@.str.122 = external hidden unnamed_addr constant [49 x i8], align 1
@.str.123 = external hidden unnamed_addr constant [92 x i8], align 1
@.str.124 = external hidden unnamed_addr constant [74 x i8], align 1
@.str.125 = external hidden unnamed_addr constant [115 x i8], align 1
@.str.126 = external hidden unnamed_addr constant [112 x i8], align 1
@.str.127 = external hidden unnamed_addr constant [107 x i8], align 1
@.str.128 = external hidden unnamed_addr constant [72 x i8], align 1
@.str.129 = external hidden unnamed_addr constant [104 x i8], align 1
@.str.130 = external hidden unnamed_addr constant [70 x i8], align 1
@.str.131 = external hidden unnamed_addr constant [62 x i8], align 1
@.str.132 = external hidden unnamed_addr constant [77 x i8], align 1
@.str.133 = external hidden unnamed_addr constant [75 x i8], align 1
@.str.134 = external hidden unnamed_addr constant [42 x i8], align 1
@.str.135 = external hidden unnamed_addr constant [52 x i8], align 1
@.str.136 = external hidden unnamed_addr constant [30 x i8], align 1
@.str.137 = external hidden unnamed_addr constant [36 x i8], align 1
@.str.138 = external hidden unnamed_addr constant [19 x i8], align 1
@.str.139 = 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 [6 x i8], align 1
  %4 = alloca [47 x i8], align 16
  %5 = alloca ptr, align 8
  %6 = alloca %struct.s2n_stuffer, align 8
  %7 = alloca %struct.s2n_fingerprint_hash, align 8
  %8 = alloca i8, align 1
  %9 = alloca %struct.s2n_hash_state, align 8
  %10 = alloca %struct.s2n_fingerprint_hash, align 8
  %11 = alloca %struct.s2n_stuffer, align 8
  %12 = alloca %struct.s2n_fingerprint_hash, align 8
  %13 = alloca %struct.s2n_stuffer, align 8
  %14 = alloca %struct.s2n_fingerprint_hash, align 8
  %15 = alloca %struct.s2n_hash_state, align 8
  %16 = alloca %struct.s2n_fingerprint_hash, align 8
  %17 = alloca %struct.s2n_stuffer, align 8
  %18 = alloca %struct.s2n_fingerprint_hash, align 8
  %19 = alloca [6 x i8], align 1
  %20 = alloca %struct.s2n_hash_state, align 8
  %21 = alloca %struct.s2n_fingerprint_hash, align 8
  %22 = alloca %struct.s2n_stuffer, align 8
  %23 = alloca %struct.s2n_fingerprint_hash, align 8
  %24 = alloca %struct.s2n_fingerprint_hash, align 8
  %25 = alloca %struct.s2n_blob, align 8
  %26 = alloca %struct.s2n_hash_state, align 8
  %27 = alloca %struct.s2n_fingerprint_hash, align 8
  %28 = alloca [32 x i8], align 16
  %29 = alloca %struct.s2n_blob, align 8
  %30 = alloca %struct.s2n_hash_state, align 8
  %31 = alloca %struct.s2n_fingerprint_hash, align 8
  %32 = alloca [32 x i8], align 16
  %33 = alloca %struct.s2n_blob, align 8
  %34 = alloca %struct.s2n_fingerprint_hash, align 8
  %35 = alloca %struct.s2n_stuffer, align 8
  %36 = alloca %struct.s2n_hash_state, align 8
  %37 = alloca ptr, align 8
  %38 = alloca %struct.s2n_fingerprint, align 8
  %39 = alloca %struct.s2n_fingerprint, align 8
  %40 = alloca ptr, align 8
  %41 = alloca %struct.s2n_client_hello, align 8
  %42 = alloca ptr, align 8
  %43 = alloca %struct.s2n_fingerprint, align 8
  %44 = alloca ptr, align 8
  %45 = alloca i32, align 4
  %46 = alloca ptr, align 8
  %47 = alloca i32, align 4
  %48 = alloca ptr, align 8
  %49 = alloca [100 x i8], align 16
  %50 = alloca i32, align 4
  %51 = alloca ptr, align 8
  %52 = alloca [100 x i8], align 16
  %53 = alloca i32, align 4
  %54 = alloca ptr, align 8
  %55 = alloca [100 x i8], align 16
  %56 = alloca i32, align 4
  %57 = alloca ptr, align 8
  %58 = alloca [100 x i8], align 16
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  %62 = alloca ptr, align 8
  %63 = alloca i32, align 4
  %64 = alloca ptr, align 8
  %65 = alloca [100 x i8], align 16
  %66 = alloca i32, align 4
  %67 = alloca i32, align 4
  %68 = alloca ptr, align 8
  %69 = alloca [100 x i8], align 16
  %70 = alloca i32, align 4
  %71 = alloca ptr, align 8
  %72 = alloca [100 x i8], align 16
  %73 = alloca i32, align 4
  %74 = alloca ptr, align 8
  %75 = alloca [100 x i8], align 16
  %76 = alloca i32, align 4
  %77 = alloca ptr, align 8
  %78 = alloca [100 x i8], align 16
  %79 = alloca i32, align 4
  %80 = alloca i32, align 4
  %81 = alloca [100 x i8], align 16
  %82 = alloca i32, align 4
  %83 = alloca %struct.s2n_stuffer, align 8
  %84 = alloca i8, align 1
  %85 = alloca i32, align 4
  %86 = alloca i32, align 4
  %87 = alloca ptr, align 8
  %88 = alloca [100 x i8], align 16
  %89 = alloca i32, align 4
  %90 = alloca [100 x i8], align 16
  %91 = alloca i32, align 4
  %92 = alloca i32, align 4
  %93 = alloca ptr, align 8
  %94 = alloca [47 x i8], align 16
  %95 = alloca ptr, align 8
  %96 = alloca [2 x %struct.s2n_test_hello], align 16
  %97 = alloca i32, align 4
  %98 = alloca [100 x i8], align 16
  %99 = alloca [100 x i8], align 16
  store i32 0, ptr @test_count, align 4, !tbaa !5
  %100 = load ptr, ptr @stdout, align 8, !tbaa !9
  %101 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %100, ptr noundef nonnull @.str, ptr noundef nonnull @.str.1) #12
  %102 = load ptr, ptr @stdout, align 8, !tbaa !9
  %103 = tail call i32 @fflush(ptr noundef %102)
  %104 = tail call i32 @s2n_in_unit_test_set(i1 noundef zeroext true) #12
  %105 = icmp eq i32 %104, -1
  br i1 %105, label %106, label %130

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

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

117:                                              ; preds = %113, %106
  br label %118

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

130:                                              ; preds = %2
  %131 = load i32, ptr @test_count, align 4, !tbaa !5
  %132 = add nsw i32 %131, 1
  store i32 %132, ptr @test_count, align 4, !tbaa !5
  %133 = tail call i32 @s2n_enable_atexit() #12
  %134 = icmp eq i32 %133, -1
  br i1 %134, label %135, label %159

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

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

146:                                              ; preds = %142, %135
  br label %147

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

159:                                              ; preds = %130
  %160 = tail call i32 @s2n_init() #12
  %161 = icmp eq i32 %160, -1
  br i1 %161, label %162, label %186

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

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

173:                                              ; preds = %169, %162
  br label %174

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

186:                                              ; preds = %159
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %3) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %3, ptr noundef nonnull align 1 dereferenceable(6) @__const.main.test_str, i64 6, i1 false)
  %187 = load i32, ptr @test_count, align 4, !tbaa !5
  %188 = add nsw i32 %187, 1
  store i32 %188, ptr @test_count, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 47, ptr nonnull %4) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(47) %4, ptr noundef nonnull align 16 dereferenceable(47) @__const.main.raw_client_hello, i64 47, i1 false)
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #12
  %189 = call ptr @s2n_client_hello_parse_message(ptr noundef nonnull %4, i32 noundef 47) #12
  store ptr %189, ptr %5, align 8, !tbaa !9
  %190 = load i32, ptr @test_count, align 4, !tbaa !5
  %191 = add nsw i32 %190, 1
  store i32 %191, ptr @test_count, align 4, !tbaa !5
  %192 = icmp eq ptr %189, null
  br i1 %192, label %193, label %217

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

200:                                              ; preds = %193
  %201 = load ptr, ptr @stderr, align 8, !tbaa !9
  %202 = call i32 @fileno(ptr noundef %201) #12
  %203 = call i32 @isatty(i32 noundef %202) #12
  %.not778 = icmp eq i32 %203, 0
  br i1 %.not778, label %204, label %205

204:                                              ; preds = %200, %193
  br label %205

205:                                              ; preds = %200, %204
  %.str.5.sink830 = phi ptr [ @.str.5, %204 ], [ @.str.2, %200 ]
  store i32 %195, ptr %194, align 4, !tbaa !5
  %206 = load ptr, ptr @stderr, align 8, !tbaa !9
  %207 = load i32, ptr @test_count, align 4, !tbaa !5
  %208 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %209 = load i32, ptr %208, align 4, !tbaa !5
  %210 = call ptr @s2n_strerror(i32 noundef %209, ptr noundef nonnull @.str.4) #12
  %211 = load i32, ptr %208, align 4, !tbaa !5
  %212 = call ptr @s2n_strerror_debug(i32 noundef %211, ptr noundef nonnull @.str.4) #12
  %213 = load i32, ptr %194, align 4, !tbaa !5
  %214 = call ptr @strerror(i32 noundef %213) #12
  %215 = load i32, ptr %194, align 4, !tbaa !5
  %216 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %206, ptr noundef nonnull %.str.5.sink830, i32 noundef %207, ptr noundef nonnull @.str.8, ptr noundef nonnull @.str.1, i32 noundef 76, ptr noundef %210, ptr noundef %212, ptr noundef %214, i32 noundef %215) #14
  call void @exit(i32 noundef 1) #15
  unreachable

217:                                              ; preds = %186
  %218 = add nsw i32 %190, 2
  store i32 %218, ptr @test_count, align 4, !tbaa !5
  %219 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef null, i8 noundef signext 33) #12
  %220 = call zeroext i1 @s2n_result_is_error(i32 %219)
  br i1 %220, label %245, label %221

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

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

232:                                              ; preds = %228, %221
  br label %233

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

245:                                              ; preds = %217
  %246 = load i32, ptr @test_count, align 4, !tbaa !5
  %247 = add nsw i32 %246, 1
  store i32 %247, ptr @test_count, align 4, !tbaa !5
  %248 = call align 4 ptr @llvm.threadlocal.address.p0(ptr align 4 @s2n_errno)
  %249 = load i32, ptr %248, align 4, !tbaa !5
  %250 = icmp eq i32 %249, 402653193
  br i1 %250, label %274, label %251

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

258:                                              ; preds = %251
  %259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %260 = call i32 @fileno(ptr noundef %259) #12
  %261 = call i32 @isatty(i32 noundef %260) #12
  %.not535 = icmp eq i32 %261, 0
  br i1 %.not535, label %262, label %263

262:                                              ; preds = %258, %251
  br label %263

263:                                              ; preds = %258, %262
  %.str.5.sink852 = phi ptr [ @.str.5, %262 ], [ @.str.2, %258 ]
  store i32 %253, ptr %252, align 4, !tbaa !5
  %264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %265 = load i32, ptr @test_count, align 4, !tbaa !5
  %266 = load i32, ptr %248, align 4, !tbaa !5
  %267 = call ptr @s2n_strerror(i32 noundef %266, ptr noundef nonnull @.str.4) #12
  %268 = load i32, ptr %248, align 4, !tbaa !5
  %269 = call ptr @s2n_strerror_debug(i32 noundef %268, ptr noundef nonnull @.str.4) #12
  %270 = load i32, ptr %252, align 4, !tbaa !5
  %271 = call ptr @strerror(i32 noundef %270) #12
  %272 = load i32, ptr %252, align 4, !tbaa !5
  %273 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %264, ptr noundef nonnull %.str.5.sink852, i32 noundef %265, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 83, ptr noundef %267, ptr noundef %269, ptr noundef %271, i32 noundef %272) #14
  call void @exit(i32 noundef 1) #15
  unreachable

274:                                              ; preds = %245
  %275 = add nsw i32 %246, 2
  store i32 %275, ptr @test_count, align 4, !tbaa !5
  %276 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %277 = icmp eq ptr %276, null
  br i1 %277, label %278, label %301

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

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

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

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

301:                                              ; preds = %274
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  %302 = tail call ptr @__errno_location() #13
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, i8 0, i64 40, i1 false)
  %303 = load i32, ptr @test_count, align 4, !tbaa !5
  %304 = add nsw i32 %303, 1
  store i32 %304, ptr @test_count, align 4, !tbaa !5
  %305 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %6, i32 noundef 10) #12
  %306 = icmp eq i32 %305, -1
  br i1 %306, label %307, label %329

307:                                              ; preds = %301
  %308 = load i32, ptr %302, align 4, !tbaa !5
  %309 = load ptr, ptr @stderr, align 8, !tbaa !9
  %310 = call i32 @s2n_print_stacktrace(ptr noundef %309) #12
  %311 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %312 = trunc nuw i8 %311 to i1
  br i1 %312, label %313, label %317

313:                                              ; preds = %307
  %314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %315 = call i32 @fileno(ptr noundef %314) #12
  %316 = call i32 @isatty(i32 noundef %315) #12
  %.not776 = icmp eq i32 %316, 0
  br i1 %.not776, label %317, label %318

317:                                              ; preds = %313, %307
  br label %318

318:                                              ; preds = %313, %317
  %.str.5.sink870 = phi ptr [ @.str.5, %317 ], [ @.str.2, %313 ]
  store i32 %308, ptr %302, align 4, !tbaa !5
  %319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %320 = load i32, ptr @test_count, align 4, !tbaa !5
  %321 = load i32, ptr %248, align 4, !tbaa !5
  %322 = call ptr @s2n_strerror(i32 noundef %321, ptr noundef nonnull @.str.4) #12
  %323 = load i32, ptr %248, align 4, !tbaa !5
  %324 = call ptr @s2n_strerror_debug(i32 noundef %323, ptr noundef nonnull @.str.4) #12
  %325 = load i32, ptr %302, align 4, !tbaa !5
  %326 = call ptr @strerror(i32 noundef %325) #12
  %327 = load i32, ptr %302, align 4, !tbaa !5
  %328 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %319, ptr noundef nonnull %.str.5.sink870, i32 noundef %320, ptr noundef nonnull @.str.12, ptr noundef nonnull @.str.1, i32 noundef 88, ptr noundef %322, ptr noundef %324, ptr noundef %326, i32 noundef %327) #14
  call void @exit(i32 noundef 1) #15
  unreachable

329:                                              ; preds = %301
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) #12
  store i32 0, ptr %7, align 8, !tbaa !15
  %330 = getelementptr inbounds i8, ptr %7, i64 8
  store ptr %6, ptr %330, align 8, !tbaa !17
  %331 = getelementptr inbounds i8, ptr %7, i64 16
  store ptr null, ptr %331, align 8, !tbaa !18
  %332 = getelementptr inbounds i8, ptr %6, i64 28
  %333 = getelementptr inbounds i8, ptr %6, i64 24
  %.pre = load i32, ptr @test_count, align 4, !tbaa !5
  br label %340

334:                                              ; preds = %449
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) #12
  %335 = call i32 @s2n_stuffer_free(ptr noundef nonnull %6) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %6) #12
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %9) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %9, i8 0, i64 56, i1 false)
  %336 = load i32, ptr @test_count, align 4, !tbaa !5
  %337 = add nsw i32 %336, 1
  store i32 %337, ptr @test_count, align 4, !tbaa !5
  %338 = call i32 @s2n_test_hash_state_new(ptr noundef nonnull %9)
  %339 = call zeroext i1 @s2n_result_is_ok(i32 %338)
  br i1 %339, label %473, label %451

340:                                              ; preds = %329, %449
  %341 = phi i32 [ %.pre, %329 ], [ %424, %449 ]
  %.0782 = phi i64 [ 1, %329 ], [ %450, %449 ]
  %342 = add nsw i32 %341, 1
  store i32 %342, ptr @test_count, align 4, !tbaa !5
  %343 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %7, i8 noundef signext 33) #12
  %344 = call zeroext i1 @s2n_result_is_ok(i32 %343)
  br i1 %344, label %367, label %345

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

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

355:                                              ; preds = %351, %345
  br label %356

356:                                              ; preds = %351, %355
  %.str.5.sink879 = phi ptr [ @.str.5, %355 ], [ @.str.2, %351 ]
  store i32 %346, ptr %302, align 4, !tbaa !5
  %357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %358 = load i32, ptr @test_count, align 4, !tbaa !5
  %359 = load i32, ptr %248, align 4, !tbaa !5
  %360 = call ptr @s2n_strerror(i32 noundef %359, ptr noundef nonnull @.str.4) #12
  %361 = load i32, ptr %248, align 4, !tbaa !5
  %362 = call ptr @s2n_strerror_debug(i32 noundef %361, ptr noundef nonnull @.str.4) #12
  %363 = load i32, ptr %302, align 4, !tbaa !5
  %364 = call ptr @strerror(i32 noundef %363) #12
  %365 = load i32, ptr %302, align 4, !tbaa !5
  %366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %357, ptr noundef nonnull %.str.5.sink879, i32 noundef %358, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 92, ptr noundef %360, ptr noundef %362, ptr noundef %364, i32 noundef %365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

367:                                              ; preds = %340
  %368 = load i32, ptr @test_count, align 4, !tbaa !5
  %369 = add nsw i32 %368, 1
  store i32 %369, ptr @test_count, align 4, !tbaa !5
  %370 = load i32, ptr %332, align 4, !tbaa !19
  %371 = load i32, ptr %333, align 8, !tbaa !22
  %372 = sub i32 %370, %371
  %373 = icmp eq i32 %372, 1
  br i1 %373, label %396, label %374

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

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

384:                                              ; preds = %380, %374
  br label %385

385:                                              ; preds = %380, %384
  %.str.5.sink888 = phi ptr [ @.str.5, %384 ], [ @.str.2, %380 ]
  store i32 %375, ptr %302, align 4, !tbaa !5
  %386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %387 = load i32, ptr @test_count, align 4, !tbaa !5
  %388 = load i32, ptr %248, align 4, !tbaa !5
  %389 = call ptr @s2n_strerror(i32 noundef %388, ptr noundef nonnull @.str.4) #12
  %390 = load i32, ptr %248, align 4, !tbaa !5
  %391 = call ptr @s2n_strerror_debug(i32 noundef %390, ptr noundef nonnull @.str.4) #12
  %392 = load i32, ptr %302, align 4, !tbaa !5
  %393 = call ptr @strerror(i32 noundef %392) #12
  %394 = load i32, ptr %302, align 4, !tbaa !5
  %395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %386, ptr noundef nonnull %.str.5.sink888, i32 noundef %387, ptr noundef nonnull @.str.14, ptr noundef nonnull @.str.1, i32 noundef 93, ptr noundef %389, ptr noundef %391, ptr noundef %393, i32 noundef %394) #14
  call void @exit(i32 noundef 1) #15
  unreachable

396:                                              ; preds = %367
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %8) #12
  store i8 0, ptr %8, align 1, !tbaa !23
  %397 = add nsw i32 %368, 2
  store i32 %397, ptr @test_count, align 4, !tbaa !5
  %398 = call i32 @s2n_stuffer_read_uint8(ptr noundef nonnull %6, ptr noundef nonnull %8) #12
  %399 = icmp eq i32 %398, -1
  br i1 %399, label %400, label %422

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

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

410:                                              ; preds = %406, %400
  br label %411

411:                                              ; preds = %406, %410
  %.str.5.sink897 = phi ptr [ @.str.5, %410 ], [ @.str.2, %406 ]
  store i32 %401, ptr %302, align 4, !tbaa !5
  %412 = load ptr, ptr @stderr, align 8, !tbaa !9
  %413 = load i32, ptr @test_count, align 4, !tbaa !5
  %414 = load i32, ptr %248, align 4, !tbaa !5
  %415 = call ptr @s2n_strerror(i32 noundef %414, ptr noundef nonnull @.str.4) #12
  %416 = load i32, ptr %248, align 4, !tbaa !5
  %417 = call ptr @s2n_strerror_debug(i32 noundef %416, ptr noundef nonnull @.str.4) #12
  %418 = load i32, ptr %302, align 4, !tbaa !5
  %419 = call ptr @strerror(i32 noundef %418) #12
  %420 = load i32, ptr %302, align 4, !tbaa !5
  %421 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %412, ptr noundef nonnull %.str.5.sink897, i32 noundef %413, ptr noundef nonnull @.str.15, ptr noundef nonnull @.str.1, i32 noundef 96, ptr noundef %415, ptr noundef %417, ptr noundef %419, i32 noundef %420) #14
  call void @exit(i32 noundef 1) #15
  unreachable

422:                                              ; preds = %396
  %423 = load i32, ptr @test_count, align 4, !tbaa !5
  %424 = add nsw i32 %423, 1
  store i32 %424, ptr @test_count, align 4, !tbaa !5
  %425 = load i8, ptr %8, align 1, !tbaa !23
  %426 = icmp eq i8 %425, 33
  br i1 %426, label %449, label %427

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

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

437:                                              ; preds = %433, %427
  br label %438

438:                                              ; preds = %433, %437
  %.str.5.sink906 = phi ptr [ @.str.5, %437 ], [ @.str.2, %433 ]
  store i32 %428, ptr %302, align 4, !tbaa !5
  %439 = load ptr, ptr @stderr, align 8, !tbaa !9
  %440 = load i32, ptr @test_count, align 4, !tbaa !5
  %441 = load i32, ptr %248, align 4, !tbaa !5
  %442 = call ptr @s2n_strerror(i32 noundef %441, ptr noundef nonnull @.str.4) #12
  %443 = load i32, ptr %248, align 4, !tbaa !5
  %444 = call ptr @s2n_strerror_debug(i32 noundef %443, ptr noundef nonnull @.str.4) #12
  %445 = load i32, ptr %302, align 4, !tbaa !5
  %446 = call ptr @strerror(i32 noundef %445) #12
  %447 = load i32, ptr %302, align 4, !tbaa !5
  %448 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %439, ptr noundef nonnull %.str.5.sink906, i32 noundef %440, ptr noundef nonnull @.str.16, ptr noundef nonnull @.str.1, i32 noundef 97, ptr noundef %442, ptr noundef %444, ptr noundef %446, i32 noundef %447) #14
  call void @exit(i32 noundef 1) #15
  unreachable

449:                                              ; preds = %422
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %8) #12
  %450 = add nuw nsw i64 %.0782, 1
  %exitcond.not = icmp eq i64 %450, 11
  br i1 %exitcond.not, label %334, label %340, !llvm.loop !24

451:                                              ; preds = %334
  %452 = load i32, ptr %302, align 4, !tbaa !5
  %453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %454 = call i32 @s2n_print_stacktrace(ptr noundef %453) #12
  %455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %456 = trunc nuw i8 %455 to i1
  br i1 %456, label %457, label %461

457:                                              ; preds = %451
  %458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %459 = call i32 @fileno(ptr noundef %458) #12
  %460 = call i32 @isatty(i32 noundef %459) #12
  %.not536 = icmp eq i32 %460, 0
  br i1 %.not536, label %461, label %462

461:                                              ; preds = %457, %451
  br label %462

462:                                              ; preds = %457, %461
  %.str.5.sink915 = phi ptr [ @.str.5, %461 ], [ @.str.2, %457 ]
  store i32 %452, ptr %302, align 4, !tbaa !5
  %463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %464 = load i32, ptr @test_count, align 4, !tbaa !5
  %465 = load i32, ptr %248, align 4, !tbaa !5
  %466 = call ptr @s2n_strerror(i32 noundef %465, ptr noundef nonnull @.str.4) #12
  %467 = load i32, ptr %248, align 4, !tbaa !5
  %468 = call ptr @s2n_strerror_debug(i32 noundef %467, ptr noundef nonnull @.str.4) #12
  %469 = load i32, ptr %302, align 4, !tbaa !5
  %470 = call ptr @strerror(i32 noundef %469) #12
  %471 = load i32, ptr %302, align 4, !tbaa !5
  %472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %463, ptr noundef nonnull %.str.5.sink915, i32 noundef %464, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 104, ptr noundef %466, ptr noundef %468, ptr noundef %470, i32 noundef %471) #14
  call void @exit(i32 noundef 1) #15
  unreachable

473:                                              ; preds = %334
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %10) #12
  store i32 0, ptr %10, align 8, !tbaa !15
  %474 = getelementptr inbounds i8, ptr %10, i64 8
  store ptr null, ptr %474, align 8, !tbaa !17
  %475 = getelementptr inbounds i8, ptr %10, i64 16
  store ptr %9, ptr %475, align 8, !tbaa !18
  %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 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %479 = call zeroext i1 @s2n_result_is_ok(i32 %478)
  br i1 %479, label %609, label %587

480:                                              ; preds = %609
  %481 = add nsw i32 %610, 2
  store i32 %481, ptr @test_count, align 4, !tbaa !5
  %482 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %483 = call zeroext i1 @s2n_result_is_ok(i32 %482)
  br i1 %483, label %484, label %587

484:                                              ; preds = %480
  %485 = load i32, ptr @test_count, align 4, !tbaa !5
  %486 = add nsw i32 %485, 1
  store i32 %486, ptr @test_count, align 4, !tbaa !5
  %487 = load ptr, ptr %475, align 8, !tbaa !18
  %488 = getelementptr inbounds i8, ptr %487, i64 16
  %489 = load i64, ptr %488, align 8, !tbaa !26
  %490 = icmp eq i64 %489, 2
  br i1 %490, label %491, label %616

491:                                              ; preds = %484
  %492 = add nsw i32 %485, 2
  store i32 %492, ptr @test_count, align 4, !tbaa !5
  %493 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %494 = call zeroext i1 @s2n_result_is_ok(i32 %493)
  br i1 %494, label %495, label %587

495:                                              ; preds = %491
  %496 = load i32, ptr @test_count, align 4, !tbaa !5
  %497 = add nsw i32 %496, 1
  store i32 %497, ptr @test_count, align 4, !tbaa !5
  %498 = load ptr, ptr %475, align 8, !tbaa !18
  %499 = getelementptr inbounds i8, ptr %498, i64 16
  %500 = load i64, ptr %499, align 8, !tbaa !26
  %501 = icmp eq i64 %500, 3
  br i1 %501, label %502, label %616

502:                                              ; preds = %495
  %503 = add nsw i32 %496, 2
  store i32 %503, ptr @test_count, align 4, !tbaa !5
  %504 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %505 = call zeroext i1 @s2n_result_is_ok(i32 %504)
  br i1 %505, label %506, label %587

506:                                              ; preds = %502
  %507 = load i32, ptr @test_count, align 4, !tbaa !5
  %508 = add nsw i32 %507, 1
  store i32 %508, ptr @test_count, align 4, !tbaa !5
  %509 = load ptr, ptr %475, align 8, !tbaa !18
  %510 = getelementptr inbounds i8, ptr %509, i64 16
  %511 = load i64, ptr %510, align 8, !tbaa !26
  %512 = icmp eq i64 %511, 4
  br i1 %512, label %513, label %616

513:                                              ; preds = %506
  %514 = add nsw i32 %507, 2
  store i32 %514, ptr @test_count, align 4, !tbaa !5
  %515 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %516 = call zeroext i1 @s2n_result_is_ok(i32 %515)
  br i1 %516, label %517, label %587

517:                                              ; preds = %513
  %518 = load i32, ptr @test_count, align 4, !tbaa !5
  %519 = add nsw i32 %518, 1
  store i32 %519, ptr @test_count, align 4, !tbaa !5
  %520 = load ptr, ptr %475, align 8, !tbaa !18
  %521 = getelementptr inbounds i8, ptr %520, i64 16
  %522 = load i64, ptr %521, align 8, !tbaa !26
  %523 = icmp eq i64 %522, 5
  br i1 %523, label %524, label %616

524:                                              ; preds = %517
  %525 = add nsw i32 %518, 2
  store i32 %525, ptr @test_count, align 4, !tbaa !5
  %526 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %527 = call zeroext i1 @s2n_result_is_ok(i32 %526)
  br i1 %527, label %528, label %587

528:                                              ; preds = %524
  %529 = load i32, ptr @test_count, align 4, !tbaa !5
  %530 = add nsw i32 %529, 1
  store i32 %530, ptr @test_count, align 4, !tbaa !5
  %531 = load ptr, ptr %475, align 8, !tbaa !18
  %532 = getelementptr inbounds i8, ptr %531, i64 16
  %533 = load i64, ptr %532, align 8, !tbaa !26
  %534 = icmp eq i64 %533, 6
  br i1 %534, label %535, label %616

535:                                              ; preds = %528
  %536 = add nsw i32 %529, 2
  store i32 %536, ptr @test_count, align 4, !tbaa !5
  %537 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %538 = call zeroext i1 @s2n_result_is_ok(i32 %537)
  br i1 %538, label %539, label %587

539:                                              ; preds = %535
  %540 = load i32, ptr @test_count, align 4, !tbaa !5
  %541 = add nsw i32 %540, 1
  store i32 %541, ptr @test_count, align 4, !tbaa !5
  %542 = load ptr, ptr %475, align 8, !tbaa !18
  %543 = getelementptr inbounds i8, ptr %542, i64 16
  %544 = load i64, ptr %543, align 8, !tbaa !26
  %545 = icmp eq i64 %544, 7
  br i1 %545, label %546, label %616

546:                                              ; preds = %539
  %547 = add nsw i32 %540, 2
  store i32 %547, ptr @test_count, align 4, !tbaa !5
  %548 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %549 = call zeroext i1 @s2n_result_is_ok(i32 %548)
  br i1 %549, label %550, label %587

550:                                              ; preds = %546
  %551 = load i32, ptr @test_count, align 4, !tbaa !5
  %552 = add nsw i32 %551, 1
  store i32 %552, ptr @test_count, align 4, !tbaa !5
  %553 = load ptr, ptr %475, align 8, !tbaa !18
  %554 = getelementptr inbounds i8, ptr %553, i64 16
  %555 = load i64, ptr %554, align 8, !tbaa !26
  %556 = icmp eq i64 %555, 8
  br i1 %556, label %557, label %616

557:                                              ; preds = %550
  %558 = add nsw i32 %551, 2
  store i32 %558, ptr @test_count, align 4, !tbaa !5
  %559 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %560 = call zeroext i1 @s2n_result_is_ok(i32 %559)
  br i1 %560, label %561, label %587

561:                                              ; preds = %557
  %562 = load i32, ptr @test_count, align 4, !tbaa !5
  %563 = add nsw i32 %562, 1
  store i32 %563, ptr @test_count, align 4, !tbaa !5
  %564 = load ptr, ptr %475, align 8, !tbaa !18
  %565 = getelementptr inbounds i8, ptr %564, i64 16
  %566 = load i64, ptr %565, align 8, !tbaa !26
  %567 = icmp eq i64 %566, 9
  br i1 %567, label %568, label %616

568:                                              ; preds = %561
  %569 = add nsw i32 %562, 2
  store i32 %569, ptr @test_count, align 4, !tbaa !5
  %570 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %10, i8 noundef signext 33) #12
  %571 = call zeroext i1 @s2n_result_is_ok(i32 %570)
  br i1 %571, label %572, label %587

572:                                              ; preds = %568
  %573 = load i32, ptr @test_count, align 4, !tbaa !5
  %574 = add nsw i32 %573, 1
  store i32 %574, ptr @test_count, align 4, !tbaa !5
  %575 = load ptr, ptr %475, align 8, !tbaa !18
  %576 = getelementptr inbounds i8, ptr %575, i64 16
  %577 = load i64, ptr %576, align 8, !tbaa !26
  %578 = icmp eq i64 %577, 10
  br i1 %578, label %579, label %616

579:                                              ; preds = %572
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10) #12
  %580 = call i32 @s2n_hash_free(ptr noundef nonnull %9) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %11, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) #12
  store i32 0, ptr %12, align 8, !tbaa !15
  %581 = getelementptr inbounds i8, ptr %12, i64 8
  store ptr %11, ptr %581, align 8, !tbaa !17
  %582 = getelementptr inbounds i8, ptr %12, i64 16
  store ptr null, ptr %582, align 8, !tbaa !18
  %583 = load i32, ptr @test_count, align 4, !tbaa !5
  %584 = add nsw i32 %583, 1
  store i32 %584, ptr @test_count, align 4, !tbaa !5
  %585 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %12, i8 noundef signext 33) #12
  %586 = call zeroext i1 @s2n_result_is_error(i32 %585)
  br i1 %586, label %660, label %638

587:                                              ; preds = %568, %557, %546, %535, %524, %513, %502, %491, %480, %473
  %588 = load i32, ptr %302, align 4, !tbaa !5
  %589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %590 = call i32 @s2n_print_stacktrace(ptr noundef %589) #12
  %591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %592 = trunc nuw i8 %591 to i1
  br i1 %592, label %593, label %597

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

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

598:                                              ; preds = %593, %597
  %.str.5.sink924 = phi ptr [ @.str.5, %597 ], [ @.str.2, %593 ]
  store i32 %588, ptr %302, align 4, !tbaa !5
  %599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %600 = load i32, ptr @test_count, align 4, !tbaa !5
  %601 = load i32, ptr %248, align 4, !tbaa !5
  %602 = call ptr @s2n_strerror(i32 noundef %601, ptr noundef nonnull @.str.4) #12
  %603 = load i32, ptr %248, align 4, !tbaa !5
  %604 = call ptr @s2n_strerror_debug(i32 noundef %603, ptr noundef nonnull @.str.4) #12
  %605 = load i32, ptr %302, align 4, !tbaa !5
  %606 = call ptr @strerror(i32 noundef %605) #12
  %607 = load i32, ptr %302, align 4, !tbaa !5
  %608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %599, ptr noundef nonnull %.str.5.sink924, i32 noundef %600, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 108, ptr noundef %602, ptr noundef %604, ptr noundef %606, i32 noundef %607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

609:                                              ; preds = %473
  %610 = load i32, ptr @test_count, align 4, !tbaa !5
  %611 = add nsw i32 %610, 1
  store i32 %611, ptr @test_count, align 4, !tbaa !5
  %612 = load ptr, ptr %475, align 8, !tbaa !18
  %613 = getelementptr inbounds i8, ptr %612, i64 16
  %614 = load i64, ptr %613, align 8, !tbaa !26
  %615 = icmp eq i64 %614, 1
  br i1 %615, label %480, label %616

616:                                              ; preds = %572, %561, %550, %539, %528, %517, %506, %495, %484, %609
  %617 = load i32, ptr %302, align 4, !tbaa !5
  %618 = load ptr, ptr @stderr, align 8, !tbaa !9
  %619 = call i32 @s2n_print_stacktrace(ptr noundef %618) #12
  %620 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %621 = trunc nuw i8 %620 to i1
  br i1 %621, label %622, label %626

622:                                              ; preds = %616
  %623 = load ptr, ptr @stderr, align 8, !tbaa !9
  %624 = call i32 @fileno(ptr noundef %623) #12
  %625 = call i32 @isatty(i32 noundef %624) #12
  %.not771 = icmp eq i32 %625, 0
  br i1 %.not771, label %626, label %627

626:                                              ; preds = %622, %616
  br label %627

627:                                              ; preds = %622, %626
  %.str.5.sink933 = phi ptr [ @.str.5, %626 ], [ @.str.2, %622 ]
  store i32 %617, ptr %302, align 4, !tbaa !5
  %628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %629 = load i32, ptr @test_count, align 4, !tbaa !5
  %630 = load i32, ptr %248, align 4, !tbaa !5
  %631 = call ptr @s2n_strerror(i32 noundef %630, ptr noundef nonnull @.str.4) #12
  %632 = load i32, ptr %248, align 4, !tbaa !5
  %633 = call ptr @s2n_strerror_debug(i32 noundef %632, ptr noundef nonnull @.str.4) #12
  %634 = load i32, ptr %302, align 4, !tbaa !5
  %635 = call ptr @strerror(i32 noundef %634) #12
  %636 = load i32, ptr %302, align 4, !tbaa !5
  %637 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %628, ptr noundef nonnull %.str.5.sink933, i32 noundef %629, ptr noundef nonnull @.str.18, ptr noundef nonnull @.str.1, i32 noundef 109, ptr noundef %631, ptr noundef %633, ptr noundef %635, i32 noundef %636) #14
  call void @exit(i32 noundef 1) #15
  unreachable

638:                                              ; preds = %579
  %639 = load i32, ptr %302, align 4, !tbaa !5
  %640 = load ptr, ptr @stderr, align 8, !tbaa !9
  %641 = call i32 @s2n_print_stacktrace(ptr noundef %640) #12
  %642 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %643 = trunc nuw i8 %642 to i1
  br i1 %643, label %644, label %648

644:                                              ; preds = %638
  %645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %646 = call i32 @fileno(ptr noundef %645) #12
  %647 = call i32 @isatty(i32 noundef %646) #12
  %.not537 = icmp eq i32 %647, 0
  br i1 %.not537, label %648, label %649

648:                                              ; preds = %644, %638
  br label %649

649:                                              ; preds = %644, %648
  %.str.5.sink942 = phi ptr [ @.str.5, %648 ], [ @.str.2, %644 ]
  store i32 %639, ptr %302, align 4, !tbaa !5
  %650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %651 = load i32, ptr @test_count, align 4, !tbaa !5
  %652 = load i32, ptr %248, align 4, !tbaa !5
  %653 = call ptr @s2n_strerror(i32 noundef %652, ptr noundef nonnull @.str.4) #12
  %654 = load i32, ptr %248, align 4, !tbaa !5
  %655 = call ptr @s2n_strerror_debug(i32 noundef %654, ptr noundef nonnull @.str.4) #12
  %656 = load i32, ptr %302, align 4, !tbaa !5
  %657 = call ptr @strerror(i32 noundef %656) #12
  %658 = load i32, ptr %302, align 4, !tbaa !5
  %659 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %650, ptr noundef nonnull %.str.5.sink942, i32 noundef %651, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %653, ptr noundef %655, ptr noundef %657, i32 noundef %658) #14
  call void @exit(i32 noundef 1) #15
  unreachable

660:                                              ; preds = %579
  %661 = load i32, ptr @test_count, align 4, !tbaa !5
  %662 = add nsw i32 %661, 1
  store i32 %662, ptr @test_count, align 4, !tbaa !5
  %663 = load i32, ptr %248, align 4, !tbaa !5
  %664 = icmp eq i32 %663, 469762120
  br i1 %664, label %687, label %665

665:                                              ; preds = %660
  %666 = load i32, ptr %302, align 4, !tbaa !5
  %667 = load ptr, ptr @stderr, align 8, !tbaa !9
  %668 = call i32 @s2n_print_stacktrace(ptr noundef %667) #12
  %669 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %670 = trunc nuw i8 %669 to i1
  br i1 %670, label %671, label %675

671:                                              ; preds = %665
  %672 = load ptr, ptr @stderr, align 8, !tbaa !9
  %673 = call i32 @fileno(ptr noundef %672) #12
  %674 = call i32 @isatty(i32 noundef %673) #12
  %.not538 = icmp eq i32 %674, 0
  br i1 %.not538, label %675, label %676

675:                                              ; preds = %671, %665
  br label %676

676:                                              ; preds = %671, %675
  %.str.5.sink951 = phi ptr [ @.str.5, %675 ], [ @.str.2, %671 ]
  store i32 %666, ptr %302, align 4, !tbaa !5
  %677 = load ptr, ptr @stderr, align 8, !tbaa !9
  %678 = load i32, ptr @test_count, align 4, !tbaa !5
  %679 = load i32, ptr %248, align 4, !tbaa !5
  %680 = call ptr @s2n_strerror(i32 noundef %679, ptr noundef nonnull @.str.4) #12
  %681 = load i32, ptr %248, align 4, !tbaa !5
  %682 = call ptr @s2n_strerror_debug(i32 noundef %681, ptr noundef nonnull @.str.4) #12
  %683 = load i32, ptr %302, align 4, !tbaa !5
  %684 = call ptr @strerror(i32 noundef %683) #12
  %685 = load i32, ptr %302, align 4, !tbaa !5
  %686 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %677, ptr noundef nonnull %.str.5.sink951, i32 noundef %678, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %680, ptr noundef %682, ptr noundef %684, i32 noundef %685) #14
  call void @exit(i32 noundef 1) #15
  unreachable

687:                                              ; preds = %660
  %688 = add nsw i32 %661, 2
  store i32 %688, ptr @test_count, align 4, !tbaa !5
  %689 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %690 = icmp eq ptr %689, null
  br i1 %690, label %691, label %713

691:                                              ; preds = %687
  %692 = load i32, ptr %302, align 4, !tbaa !5
  %693 = load ptr, ptr @stderr, align 8, !tbaa !9
  %694 = call i32 @s2n_print_stacktrace(ptr noundef %693) #12
  %695 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %696 = trunc nuw i8 %695 to i1
  br i1 %696, label %697, label %701

697:                                              ; preds = %691
  %698 = load ptr, ptr @stderr, align 8, !tbaa !9
  %699 = call i32 @fileno(ptr noundef %698) #12
  %700 = call i32 @isatty(i32 noundef %699) #12
  %.not769 = icmp eq i32 %700, 0
  br i1 %.not769, label %701, label %702

701:                                              ; preds = %697, %691
  br label %702

702:                                              ; preds = %697, %701
  %.str.5.sink960 = phi ptr [ @.str.5, %701 ], [ @.str.2, %697 ]
  store i32 %692, ptr %302, align 4, !tbaa !5
  %703 = load ptr, ptr @stderr, align 8, !tbaa !9
  %704 = load i32, ptr @test_count, align 4, !tbaa !5
  %705 = load i32, ptr %248, align 4, !tbaa !5
  %706 = call ptr @s2n_strerror(i32 noundef %705, ptr noundef nonnull @.str.4) #12
  %707 = load i32, ptr %248, align 4, !tbaa !5
  %708 = call ptr @s2n_strerror_debug(i32 noundef %707, ptr noundef nonnull @.str.4) #12
  %709 = load i32, ptr %302, align 4, !tbaa !5
  %710 = call ptr @strerror(i32 noundef %709) #12
  %711 = load i32, ptr %302, align 4, !tbaa !5
  %712 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %703, ptr noundef nonnull %.str.5.sink960, i32 noundef %704, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 118, ptr noundef %706, ptr noundef %708, ptr noundef %710, i32 noundef %711) #14
  call void @exit(i32 noundef 1) #15
  unreachable

713:                                              ; preds = %687
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %714 = load i32, ptr @test_count, align 4, !tbaa !5
  %715 = add nsw i32 %714, 1
  store i32 %715, ptr @test_count, align 4, !tbaa !5
  %716 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %11, i32 noundef 1) #12
  %717 = icmp eq i32 %716, -1
  br i1 %717, label %718, label %740

718:                                              ; preds = %713
  %719 = load i32, ptr %302, align 4, !tbaa !5
  %720 = load ptr, ptr @stderr, align 8, !tbaa !9
  %721 = call i32 @s2n_print_stacktrace(ptr noundef %720) #12
  %722 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %723 = trunc nuw i8 %722 to i1
  br i1 %723, label %724, label %728

724:                                              ; preds = %718
  %725 = load ptr, ptr @stderr, align 8, !tbaa !9
  %726 = call i32 @fileno(ptr noundef %725) #12
  %727 = call i32 @isatty(i32 noundef %726) #12
  %.not768 = icmp eq i32 %727, 0
  br i1 %.not768, label %728, label %729

728:                                              ; preds = %724, %718
  br label %729

729:                                              ; preds = %724, %728
  %.str.5.sink969 = phi ptr [ @.str.5, %728 ], [ @.str.2, %724 ]
  store i32 %719, ptr %302, align 4, !tbaa !5
  %730 = load ptr, ptr @stderr, align 8, !tbaa !9
  %731 = load i32, ptr @test_count, align 4, !tbaa !5
  %732 = load i32, ptr %248, align 4, !tbaa !5
  %733 = call ptr @s2n_strerror(i32 noundef %732, ptr noundef nonnull @.str.4) #12
  %734 = load i32, ptr %248, align 4, !tbaa !5
  %735 = call ptr @s2n_strerror_debug(i32 noundef %734, ptr noundef nonnull @.str.4) #12
  %736 = load i32, ptr %302, align 4, !tbaa !5
  %737 = call ptr @strerror(i32 noundef %736) #12
  %738 = load i32, ptr %302, align 4, !tbaa !5
  %739 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %730, ptr noundef nonnull %.str.5.sink969, i32 noundef %731, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 120, ptr noundef %733, ptr noundef %735, ptr noundef %737, i32 noundef %738) #14
  call void @exit(i32 noundef 1) #15
  unreachable

740:                                              ; preds = %713
  %741 = load i32, ptr @test_count, align 4, !tbaa !5
  %742 = add nsw i32 %741, 1
  store i32 %742, ptr @test_count, align 4, !tbaa !5
  %743 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %12, i8 noundef signext 33) #12
  %744 = call zeroext i1 @s2n_result_is_ok(i32 %743)
  br i1 %744, label %767, label %745

745:                                              ; preds = %740
  %746 = load i32, ptr %302, align 4, !tbaa !5
  %747 = load ptr, ptr @stderr, align 8, !tbaa !9
  %748 = call i32 @s2n_print_stacktrace(ptr noundef %747) #12
  %749 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %750 = trunc nuw i8 %749 to i1
  br i1 %750, label %751, label %755

751:                                              ; preds = %745
  %752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %753 = call i32 @fileno(ptr noundef %752) #12
  %754 = call i32 @isatty(i32 noundef %753) #12
  %.not539 = icmp eq i32 %754, 0
  br i1 %.not539, label %755, label %756

755:                                              ; preds = %751, %745
  br label %756

756:                                              ; preds = %751, %755
  %.str.5.sink978 = phi ptr [ @.str.5, %755 ], [ @.str.2, %751 ]
  store i32 %746, ptr %302, align 4, !tbaa !5
  %757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %758 = load i32, ptr @test_count, align 4, !tbaa !5
  %759 = load i32, ptr %248, align 4, !tbaa !5
  %760 = call ptr @s2n_strerror(i32 noundef %759, ptr noundef nonnull @.str.4) #12
  %761 = load i32, ptr %248, align 4, !tbaa !5
  %762 = call ptr @s2n_strerror_debug(i32 noundef %761, ptr noundef nonnull @.str.4) #12
  %763 = load i32, ptr %302, align 4, !tbaa !5
  %764 = call ptr @strerror(i32 noundef %763) #12
  %765 = load i32, ptr %302, align 4, !tbaa !5
  %766 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %757, ptr noundef nonnull %.str.5.sink978, i32 noundef %758, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 121, ptr noundef %760, ptr noundef %762, ptr noundef %764, i32 noundef %765) #14
  call void @exit(i32 noundef 1) #15
  unreachable

767:                                              ; preds = %740
  %768 = load i32, ptr @test_count, align 4, !tbaa !5
  %769 = add nsw i32 %768, 1
  store i32 %769, ptr @test_count, align 4, !tbaa !5
  %770 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %12, i8 noundef signext 33) #12
  %771 = call zeroext i1 @s2n_result_is_error(i32 %770)
  br i1 %771, label %794, label %772

772:                                              ; preds = %767
  %773 = load i32, ptr %302, align 4, !tbaa !5
  %774 = load ptr, ptr @stderr, align 8, !tbaa !9
  %775 = call i32 @s2n_print_stacktrace(ptr noundef %774) #12
  %776 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %777 = trunc nuw i8 %776 to i1
  br i1 %777, label %778, label %782

778:                                              ; preds = %772
  %779 = load ptr, ptr @stderr, align 8, !tbaa !9
  %780 = call i32 @fileno(ptr noundef %779) #12
  %781 = call i32 @isatty(i32 noundef %780) #12
  %.not540 = icmp eq i32 %781, 0
  br i1 %.not540, label %782, label %783

782:                                              ; preds = %778, %772
  br label %783

783:                                              ; preds = %778, %782
  %.str.5.sink987 = phi ptr [ @.str.5, %782 ], [ @.str.2, %778 ]
  store i32 %773, ptr %302, align 4, !tbaa !5
  %784 = load ptr, ptr @stderr, align 8, !tbaa !9
  %785 = load i32, ptr @test_count, align 4, !tbaa !5
  %786 = load i32, ptr %248, align 4, !tbaa !5
  %787 = call ptr @s2n_strerror(i32 noundef %786, ptr noundef nonnull @.str.4) #12
  %788 = load i32, ptr %248, align 4, !tbaa !5
  %789 = call ptr @s2n_strerror_debug(i32 noundef %788, ptr noundef nonnull @.str.4) #12
  %790 = load i32, ptr %302, align 4, !tbaa !5
  %791 = call ptr @strerror(i32 noundef %790) #12
  %792 = load i32, ptr %302, align 4, !tbaa !5
  %793 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %784, ptr noundef nonnull %.str.5.sink987, i32 noundef %785, ptr noundef nonnull @.str.19, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %787, ptr noundef %789, ptr noundef %791, i32 noundef %792) #14
  call void @exit(i32 noundef 1) #15
  unreachable

794:                                              ; preds = %767
  %795 = load i32, ptr @test_count, align 4, !tbaa !5
  %796 = add nsw i32 %795, 1
  store i32 %796, ptr @test_count, align 4, !tbaa !5
  %797 = load i32, ptr %248, align 4, !tbaa !5
  %798 = icmp eq i32 %797, 469762120
  br i1 %798, label %821, label %799

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

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

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

810:                                              ; preds = %805, %809
  %.str.5.sink996 = phi ptr [ @.str.5, %809 ], [ @.str.2, %805 ]
  store i32 %800, ptr %302, align 4, !tbaa !5
  %811 = load ptr, ptr @stderr, align 8, !tbaa !9
  %812 = load i32, ptr @test_count, align 4, !tbaa !5
  %813 = load i32, ptr %248, align 4, !tbaa !5
  %814 = call ptr @s2n_strerror(i32 noundef %813, ptr noundef nonnull @.str.4) #12
  %815 = load i32, ptr %248, align 4, !tbaa !5
  %816 = call ptr @s2n_strerror_debug(i32 noundef %815, ptr noundef nonnull @.str.4) #12
  %817 = load i32, ptr %302, align 4, !tbaa !5
  %818 = call ptr @strerror(i32 noundef %817) #12
  %819 = load i32, ptr %302, align 4, !tbaa !5
  %820 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %811, ptr noundef nonnull %.str.5.sink996, i32 noundef %812, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %814, ptr noundef %816, ptr noundef %818, i32 noundef %819) #14
  call void @exit(i32 noundef 1) #15
  unreachable

821:                                              ; preds = %794
  %822 = add nsw i32 %795, 2
  store i32 %822, ptr @test_count, align 4, !tbaa !5
  %823 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %824 = icmp eq ptr %823, null
  br i1 %824, label %825, label %847

825:                                              ; preds = %821
  %826 = load i32, ptr %302, align 4, !tbaa !5
  %827 = load ptr, ptr @stderr, align 8, !tbaa !9
  %828 = call i32 @s2n_print_stacktrace(ptr noundef %827) #12
  %829 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %830 = trunc nuw i8 %829 to i1
  br i1 %830, label %831, label %835

831:                                              ; preds = %825
  %832 = load ptr, ptr @stderr, align 8, !tbaa !9
  %833 = call i32 @fileno(ptr noundef %832) #12
  %834 = call i32 @isatty(i32 noundef %833) #12
  %.not767 = icmp eq i32 %834, 0
  br i1 %.not767, label %835, label %836

835:                                              ; preds = %831, %825
  br label %836

836:                                              ; preds = %831, %835
  %.str.5.sink1005 = phi ptr [ @.str.5, %835 ], [ @.str.2, %831 ]
  store i32 %826, ptr %302, align 4, !tbaa !5
  %837 = load ptr, ptr @stderr, align 8, !tbaa !9
  %838 = load i32, ptr @test_count, align 4, !tbaa !5
  %839 = load i32, ptr %248, align 4, !tbaa !5
  %840 = call ptr @s2n_strerror(i32 noundef %839, ptr noundef nonnull @.str.4) #12
  %841 = load i32, ptr %248, align 4, !tbaa !5
  %842 = call ptr @s2n_strerror_debug(i32 noundef %841, ptr noundef nonnull @.str.4) #12
  %843 = load i32, ptr %302, align 4, !tbaa !5
  %844 = call ptr @strerror(i32 noundef %843) #12
  %845 = load i32, ptr %302, align 4, !tbaa !5
  %846 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %837, ptr noundef nonnull %.str.5.sink1005, i32 noundef %838, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 123, ptr noundef %840, ptr noundef %842, ptr noundef %844, i32 noundef %845) #14
  call void @exit(i32 noundef 1) #15
  unreachable

847:                                              ; preds = %821
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %12) #12
  %848 = call i32 @s2n_stuffer_free(ptr noundef nonnull %11) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %11) #12
  %849 = load i32, ptr @test_count, align 4, !tbaa !5
  %850 = add nsw i32 %849, 1
  store i32 %850, ptr @test_count, align 4, !tbaa !5
  %851 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef null, ptr noundef nonnull %3, i64 noundef 0) #12
  %852 = call zeroext i1 @s2n_result_is_error(i32 %851)
  br i1 %852, label %875, label %853

853:                                              ; preds = %847
  %854 = load i32, ptr %302, align 4, !tbaa !5
  %855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %856 = call i32 @s2n_print_stacktrace(ptr noundef %855) #12
  %857 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %858 = trunc nuw i8 %857 to i1
  br i1 %858, label %859, label %863

859:                                              ; preds = %853
  %860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %861 = call i32 @fileno(ptr noundef %860) #12
  %862 = call i32 @isatty(i32 noundef %861) #12
  %.not542 = icmp eq i32 %862, 0
  br i1 %.not542, label %863, label %864

863:                                              ; preds = %859, %853
  br label %864

864:                                              ; preds = %859, %863
  %.str.5.sink1014 = phi ptr [ @.str.5, %863 ], [ @.str.2, %859 ]
  store i32 %854, ptr %302, align 4, !tbaa !5
  %865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %866 = load i32, ptr @test_count, align 4, !tbaa !5
  %867 = load i32, ptr %248, align 4, !tbaa !5
  %868 = call ptr @s2n_strerror(i32 noundef %867, ptr noundef nonnull @.str.4) #12
  %869 = load i32, ptr %248, align 4, !tbaa !5
  %870 = call ptr @s2n_strerror_debug(i32 noundef %869, ptr noundef nonnull @.str.4) #12
  %871 = load i32, ptr %302, align 4, !tbaa !5
  %872 = call ptr @strerror(i32 noundef %871) #12
  %873 = load i32, ptr %302, align 4, !tbaa !5
  %874 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %865, ptr noundef nonnull %.str.5.sink1014, i32 noundef %866, ptr noundef nonnull @.str.22, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %868, ptr noundef %870, ptr noundef %872, i32 noundef %873) #14
  call void @exit(i32 noundef 1) #15
  unreachable

875:                                              ; preds = %847
  %876 = load i32, ptr @test_count, align 4, !tbaa !5
  %877 = add nsw i32 %876, 1
  store i32 %877, ptr @test_count, align 4, !tbaa !5
  %878 = load i32, ptr %248, align 4, !tbaa !5
  %879 = icmp eq i32 %878, 402653193
  br i1 %879, label %902, label %880

880:                                              ; preds = %875
  %881 = load i32, ptr %302, align 4, !tbaa !5
  %882 = load ptr, ptr @stderr, align 8, !tbaa !9
  %883 = call i32 @s2n_print_stacktrace(ptr noundef %882) #12
  %884 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %885 = trunc nuw i8 %884 to i1
  br i1 %885, label %886, label %890

886:                                              ; preds = %880
  %887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %888 = call i32 @fileno(ptr noundef %887) #12
  %889 = call i32 @isatty(i32 noundef %888) #12
  %.not543 = icmp eq i32 %889, 0
  br i1 %.not543, label %890, label %891

890:                                              ; preds = %886, %880
  br label %891

891:                                              ; preds = %886, %890
  %.str.5.sink1023 = phi ptr [ @.str.5, %890 ], [ @.str.2, %886 ]
  store i32 %881, ptr %302, align 4, !tbaa !5
  %892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %893 = load i32, ptr @test_count, align 4, !tbaa !5
  %894 = load i32, ptr %248, align 4, !tbaa !5
  %895 = call ptr @s2n_strerror(i32 noundef %894, ptr noundef nonnull @.str.4) #12
  %896 = load i32, ptr %248, align 4, !tbaa !5
  %897 = call ptr @s2n_strerror_debug(i32 noundef %896, ptr noundef nonnull @.str.4) #12
  %898 = load i32, ptr %302, align 4, !tbaa !5
  %899 = call ptr @strerror(i32 noundef %898) #12
  %900 = load i32, ptr %302, align 4, !tbaa !5
  %901 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %892, ptr noundef nonnull %.str.5.sink1023, i32 noundef %893, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %895, ptr noundef %897, ptr noundef %899, i32 noundef %900) #14
  call void @exit(i32 noundef 1) #15
  unreachable

902:                                              ; preds = %875
  %903 = add nsw i32 %876, 2
  store i32 %903, ptr @test_count, align 4, !tbaa !5
  %904 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %905 = icmp eq ptr %904, null
  br i1 %905, label %906, label %928

906:                                              ; preds = %902
  %907 = load i32, ptr %302, align 4, !tbaa !5
  %908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %909 = call i32 @s2n_print_stacktrace(ptr noundef %908) #12
  %910 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %911 = trunc nuw i8 %910 to i1
  br i1 %911, label %912, label %916

912:                                              ; preds = %906
  %913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %914 = call i32 @fileno(ptr noundef %913) #12
  %915 = call i32 @isatty(i32 noundef %914) #12
  %.not766 = icmp eq i32 %915, 0
  br i1 %.not766, label %916, label %917

916:                                              ; preds = %912, %906
  br label %917

917:                                              ; preds = %912, %916
  %.str.5.sink1032 = phi ptr [ @.str.5, %916 ], [ @.str.2, %912 ]
  store i32 %907, ptr %302, align 4, !tbaa !5
  %918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %919 = load i32, ptr @test_count, align 4, !tbaa !5
  %920 = load i32, ptr %248, align 4, !tbaa !5
  %921 = call ptr @s2n_strerror(i32 noundef %920, ptr noundef nonnull @.str.4) #12
  %922 = load i32, ptr %248, align 4, !tbaa !5
  %923 = call ptr @s2n_strerror_debug(i32 noundef %922, ptr noundef nonnull @.str.4) #12
  %924 = load i32, ptr %302, align 4, !tbaa !5
  %925 = call ptr @strerror(i32 noundef %924) #12
  %926 = load i32, ptr %302, align 4, !tbaa !5
  %927 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %918, ptr noundef nonnull %.str.5.sink1032, i32 noundef %919, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 133, ptr noundef %921, ptr noundef %923, ptr noundef %925, i32 noundef %926) #14
  call void @exit(i32 noundef 1) #15
  unreachable

928:                                              ; preds = %902
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %13, i8 0, i64 40, i1 false)
  %929 = load i32, ptr @test_count, align 4, !tbaa !5
  %930 = add nsw i32 %929, 1
  store i32 %930, ptr @test_count, align 4, !tbaa !5
  %931 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %13, i32 noundef 100) #12
  %932 = icmp eq i32 %931, -1
  br i1 %932, label %933, label %955

933:                                              ; preds = %928
  %934 = load i32, ptr %302, align 4, !tbaa !5
  %935 = load ptr, ptr @stderr, align 8, !tbaa !9
  %936 = call i32 @s2n_print_stacktrace(ptr noundef %935) #12
  %937 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %938 = trunc nuw i8 %937 to i1
  br i1 %938, label %939, label %943

939:                                              ; preds = %933
  %940 = load ptr, ptr @stderr, align 8, !tbaa !9
  %941 = call i32 @fileno(ptr noundef %940) #12
  %942 = call i32 @isatty(i32 noundef %941) #12
  %.not765 = icmp eq i32 %942, 0
  br i1 %.not765, label %943, label %944

943:                                              ; preds = %939, %933
  br label %944

944:                                              ; preds = %939, %943
  %.str.5.sink1041 = phi ptr [ @.str.5, %943 ], [ @.str.2, %939 ]
  store i32 %934, ptr %302, align 4, !tbaa !5
  %945 = load ptr, ptr @stderr, align 8, !tbaa !9
  %946 = load i32, ptr @test_count, align 4, !tbaa !5
  %947 = load i32, ptr %248, align 4, !tbaa !5
  %948 = call ptr @s2n_strerror(i32 noundef %947, ptr noundef nonnull @.str.4) #12
  %949 = load i32, ptr %248, align 4, !tbaa !5
  %950 = call ptr @s2n_strerror_debug(i32 noundef %949, ptr noundef nonnull @.str.4) #12
  %951 = load i32, ptr %302, align 4, !tbaa !5
  %952 = call ptr @strerror(i32 noundef %951) #12
  %953 = load i32, ptr %302, align 4, !tbaa !5
  %954 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %945, ptr noundef nonnull %.str.5.sink1041, i32 noundef %946, ptr noundef nonnull @.str.23, ptr noundef nonnull @.str.1, i32 noundef 138, ptr noundef %948, ptr noundef %950, ptr noundef %952, i32 noundef %953) #14
  call void @exit(i32 noundef 1) #15
  unreachable

955:                                              ; preds = %928
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %14) #12
  store i32 0, ptr %14, align 8, !tbaa !15
  %956 = getelementptr inbounds i8, ptr %14, i64 8
  store ptr %13, ptr %956, align 8, !tbaa !17
  %957 = getelementptr inbounds i8, ptr %14, i64 16
  store ptr null, ptr %957, align 8, !tbaa !18
  %958 = load i32, ptr @test_count, align 4, !tbaa !5
  %959 = add nsw i32 %958, 1
  store i32 %959, ptr @test_count, align 4, !tbaa !5
  %960 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %14, ptr noundef null, i64 noundef 10) #12
  %961 = call zeroext i1 @s2n_result_is_error(i32 %960)
  br i1 %961, label %984, label %962

962:                                              ; preds = %955
  %963 = load i32, ptr %302, align 4, !tbaa !5
  %964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %965 = call i32 @s2n_print_stacktrace(ptr noundef %964) #12
  %966 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %967 = trunc nuw i8 %966 to i1
  br i1 %967, label %968, label %972

968:                                              ; preds = %962
  %969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %970 = call i32 @fileno(ptr noundef %969) #12
  %971 = call i32 @isatty(i32 noundef %970) #12
  %.not544 = icmp eq i32 %971, 0
  br i1 %.not544, label %972, label %973

972:                                              ; preds = %968, %962
  br label %973

973:                                              ; preds = %968, %972
  %.str.5.sink1050 = phi ptr [ @.str.5, %972 ], [ @.str.2, %968 ]
  store i32 %963, ptr %302, align 4, !tbaa !5
  %974 = load ptr, ptr @stderr, align 8, !tbaa !9
  %975 = load i32, ptr @test_count, align 4, !tbaa !5
  %976 = load i32, ptr %248, align 4, !tbaa !5
  %977 = call ptr @s2n_strerror(i32 noundef %976, ptr noundef nonnull @.str.4) #12
  %978 = load i32, ptr %248, align 4, !tbaa !5
  %979 = call ptr @s2n_strerror_debug(i32 noundef %978, ptr noundef nonnull @.str.4) #12
  %980 = load i32, ptr %302, align 4, !tbaa !5
  %981 = call ptr @strerror(i32 noundef %980) #12
  %982 = load i32, ptr %302, align 4, !tbaa !5
  %983 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %974, ptr noundef nonnull %.str.5.sink1050, i32 noundef %975, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %977, ptr noundef %979, ptr noundef %981, i32 noundef %982) #14
  call void @exit(i32 noundef 1) #15
  unreachable

984:                                              ; preds = %955
  %985 = load i32, ptr @test_count, align 4, !tbaa !5
  %986 = add nsw i32 %985, 1
  store i32 %986, ptr @test_count, align 4, !tbaa !5
  %987 = load i32, ptr %248, align 4, !tbaa !5
  %988 = icmp eq i32 %987, 402653193
  br i1 %988, label %1011, label %989

989:                                              ; preds = %984
  %990 = load i32, ptr %302, align 4, !tbaa !5
  %991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %992 = call i32 @s2n_print_stacktrace(ptr noundef %991) #12
  %993 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %994 = trunc nuw i8 %993 to i1
  br i1 %994, label %995, label %999

995:                                              ; preds = %989
  %996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %997 = call i32 @fileno(ptr noundef %996) #12
  %998 = call i32 @isatty(i32 noundef %997) #12
  %.not545 = icmp eq i32 %998, 0
  br i1 %.not545, label %999, label %1000

999:                                              ; preds = %995, %989
  br label %1000

1000:                                             ; preds = %995, %999
  %.str.5.sink1059 = phi ptr [ @.str.5, %999 ], [ @.str.2, %995 ]
  store i32 %990, ptr %302, align 4, !tbaa !5
  %1001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1002 = load i32, ptr @test_count, align 4, !tbaa !5
  %1003 = load i32, ptr %248, align 4, !tbaa !5
  %1004 = call ptr @s2n_strerror(i32 noundef %1003, ptr noundef nonnull @.str.4) #12
  %1005 = load i32, ptr %248, align 4, !tbaa !5
  %1006 = call ptr @s2n_strerror_debug(i32 noundef %1005, ptr noundef nonnull @.str.4) #12
  %1007 = load i32, ptr %302, align 4, !tbaa !5
  %1008 = call ptr @strerror(i32 noundef %1007) #12
  %1009 = load i32, ptr %302, align 4, !tbaa !5
  %1010 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1001, ptr noundef nonnull %.str.5.sink1059, i32 noundef %1002, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1004, ptr noundef %1006, ptr noundef %1008, i32 noundef %1009) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1011:                                             ; preds = %984
  %1012 = add nsw i32 %985, 2
  store i32 %1012, ptr @test_count, align 4, !tbaa !5
  %1013 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %1014 = icmp eq ptr %1013, null
  br i1 %1014, label %1015, label %1037

1015:                                             ; preds = %1011
  %1016 = load i32, ptr %302, align 4, !tbaa !5
  %1017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1018 = call i32 @s2n_print_stacktrace(ptr noundef %1017) #12
  %1019 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1020 = trunc nuw i8 %1019 to i1
  br i1 %1020, label %1021, label %1025

1021:                                             ; preds = %1015
  %1022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1023 = call i32 @fileno(ptr noundef %1022) #12
  %1024 = call i32 @isatty(i32 noundef %1023) #12
  %.not764 = icmp eq i32 %1024, 0
  br i1 %.not764, label %1025, label %1026

1025:                                             ; preds = %1021, %1015
  br label %1026

1026:                                             ; preds = %1021, %1025
  %.str.5.sink1068 = phi ptr [ @.str.5, %1025 ], [ @.str.2, %1021 ]
  store i32 %1016, ptr %302, align 4, !tbaa !5
  %1027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1028 = load i32, ptr @test_count, align 4, !tbaa !5
  %1029 = load i32, ptr %248, align 4, !tbaa !5
  %1030 = call ptr @s2n_strerror(i32 noundef %1029, ptr noundef nonnull @.str.4) #12
  %1031 = load i32, ptr %248, align 4, !tbaa !5
  %1032 = call ptr @s2n_strerror_debug(i32 noundef %1031, ptr noundef nonnull @.str.4) #12
  %1033 = load i32, ptr %302, align 4, !tbaa !5
  %1034 = call ptr @strerror(i32 noundef %1033) #12
  %1035 = load i32, ptr %302, align 4, !tbaa !5
  %1036 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1027, ptr noundef nonnull %.str.5.sink1068, i32 noundef %1028, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 141, ptr noundef %1030, ptr noundef %1032, ptr noundef %1034, i32 noundef %1035) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1037:                                             ; preds = %1011
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %1038 = load i32, ptr @test_count, align 4, !tbaa !5
  %1039 = add nsw i32 %1038, 1
  store i32 %1039, ptr @test_count, align 4, !tbaa !5
  %1040 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %14, ptr noundef null, i64 noundef 0) #12
  %1041 = call zeroext i1 @s2n_result_is_ok(i32 %1040)
  br i1 %1041, label %1064, label %1042

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

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

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

1053:                                             ; preds = %1048, %1052
  %.str.5.sink1077 = phi ptr [ @.str.5, %1052 ], [ @.str.2, %1048 ]
  store i32 %1043, ptr %302, align 4, !tbaa !5
  %1054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1055 = load i32, ptr @test_count, align 4, !tbaa !5
  %1056 = load i32, ptr %248, align 4, !tbaa !5
  %1057 = call ptr @s2n_strerror(i32 noundef %1056, ptr noundef nonnull @.str.4) #12
  %1058 = load i32, ptr %248, align 4, !tbaa !5
  %1059 = call ptr @s2n_strerror_debug(i32 noundef %1058, ptr noundef nonnull @.str.4) #12
  %1060 = load i32, ptr %302, align 4, !tbaa !5
  %1061 = call ptr @strerror(i32 noundef %1060) #12
  %1062 = load i32, ptr %302, align 4, !tbaa !5
  %1063 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1054, ptr noundef nonnull %.str.5.sink1077, i32 noundef %1055, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 142, ptr noundef %1057, ptr noundef %1059, ptr noundef %1061, i32 noundef %1062) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1064:                                             ; preds = %1037
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %14) #12
  %1065 = call i32 @s2n_stuffer_free(ptr noundef nonnull %13) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #12
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %15) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %15, i8 0, i64 56, i1 false)
  %1066 = load i32, ptr @test_count, align 4, !tbaa !5
  %1067 = add nsw i32 %1066, 1
  store i32 %1067, ptr @test_count, align 4, !tbaa !5
  %1068 = call i32 @s2n_test_hash_state_new(ptr noundef nonnull %15)
  %1069 = call zeroext i1 @s2n_result_is_ok(i32 %1068)
  br i1 %1069, label %1092, label %1070

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

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

1080:                                             ; preds = %1076, %1070
  br label %1081

1081:                                             ; preds = %1076, %1080
  %.str.5.sink1086 = phi ptr [ @.str.5, %1080 ], [ @.str.2, %1076 ]
  store i32 %1071, ptr %302, align 4, !tbaa !5
  %1082 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1083 = load i32, ptr @test_count, align 4, !tbaa !5
  %1084 = load i32, ptr %248, align 4, !tbaa !5
  %1085 = call ptr @s2n_strerror(i32 noundef %1084, ptr noundef nonnull @.str.4) #12
  %1086 = load i32, ptr %248, align 4, !tbaa !5
  %1087 = call ptr @s2n_strerror_debug(i32 noundef %1086, ptr noundef nonnull @.str.4) #12
  %1088 = load i32, ptr %302, align 4, !tbaa !5
  %1089 = call ptr @strerror(i32 noundef %1088) #12
  %1090 = load i32, ptr %302, align 4, !tbaa !5
  %1091 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1082, ptr noundef nonnull %.str.5.sink1086, i32 noundef %1083, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 148, ptr noundef %1085, ptr noundef %1087, ptr noundef %1089, i32 noundef %1090) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1092:                                             ; preds = %1064
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %16) #12
  store i32 0, ptr %16, align 8, !tbaa !15
  %1093 = getelementptr inbounds i8, ptr %16, i64 8
  store ptr null, ptr %1093, align 8, !tbaa !17
  %1094 = getelementptr inbounds i8, ptr %16, i64 16
  store ptr %15, ptr %1094, align 8, !tbaa !18
  %1095 = load i32, ptr @test_count, align 4, !tbaa !5
  %1096 = add nsw i32 %1095, 1
  store i32 %1096, ptr @test_count, align 4, !tbaa !5
  %1097 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %16, ptr noundef null, i64 noundef 10) #12
  %1098 = call zeroext i1 @s2n_result_is_error(i32 %1097)
  br i1 %1098, label %1121, label %1099

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

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

1109:                                             ; preds = %1105, %1099
  br label %1110

1110:                                             ; preds = %1105, %1109
  %.str.5.sink1095 = phi ptr [ @.str.5, %1109 ], [ @.str.2, %1105 ]
  store i32 %1100, ptr %302, align 4, !tbaa !5
  %1111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1112 = load i32, ptr @test_count, align 4, !tbaa !5
  %1113 = load i32, ptr %248, align 4, !tbaa !5
  %1114 = call ptr @s2n_strerror(i32 noundef %1113, ptr noundef nonnull @.str.4) #12
  %1115 = load i32, ptr %248, align 4, !tbaa !5
  %1116 = call ptr @s2n_strerror_debug(i32 noundef %1115, ptr noundef nonnull @.str.4) #12
  %1117 = load i32, ptr %302, align 4, !tbaa !5
  %1118 = call ptr @strerror(i32 noundef %1117) #12
  %1119 = load i32, ptr %302, align 4, !tbaa !5
  %1120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1111, ptr noundef nonnull %.str.5.sink1095, i32 noundef %1112, ptr noundef nonnull @.str.24, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1114, ptr noundef %1116, ptr noundef %1118, i32 noundef %1119) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1121:                                             ; preds = %1092
  %1122 = load i32, ptr @test_count, align 4, !tbaa !5
  %1123 = add nsw i32 %1122, 1
  store i32 %1123, ptr @test_count, align 4, !tbaa !5
  %1124 = load i32, ptr %248, align 4, !tbaa !5
  %1125 = icmp eq i32 %1124, 402653193
  br i1 %1125, label %1148, label %1126

1126:                                             ; preds = %1121
  %1127 = load i32, ptr %302, align 4, !tbaa !5
  %1128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1129 = call i32 @s2n_print_stacktrace(ptr noundef %1128) #12
  %1130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1131 = trunc nuw i8 %1130 to i1
  br i1 %1131, label %1132, label %1136

1132:                                             ; preds = %1126
  %1133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1134 = call i32 @fileno(ptr noundef %1133) #12
  %1135 = call i32 @isatty(i32 noundef %1134) #12
  %.not549 = icmp eq i32 %1135, 0
  br i1 %.not549, label %1136, label %1137

1136:                                             ; preds = %1132, %1126
  br label %1137

1137:                                             ; preds = %1132, %1136
  %.str.5.sink1104 = phi ptr [ @.str.5, %1136 ], [ @.str.2, %1132 ]
  store i32 %1127, ptr %302, align 4, !tbaa !5
  %1138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1139 = load i32, ptr @test_count, align 4, !tbaa !5
  %1140 = load i32, ptr %248, align 4, !tbaa !5
  %1141 = call ptr @s2n_strerror(i32 noundef %1140, ptr noundef nonnull @.str.4) #12
  %1142 = load i32, ptr %248, align 4, !tbaa !5
  %1143 = call ptr @s2n_strerror_debug(i32 noundef %1142, ptr noundef nonnull @.str.4) #12
  %1144 = load i32, ptr %302, align 4, !tbaa !5
  %1145 = call ptr @strerror(i32 noundef %1144) #12
  %1146 = load i32, ptr %302, align 4, !tbaa !5
  %1147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1138, ptr noundef nonnull %.str.5.sink1104, i32 noundef %1139, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1141, ptr noundef %1143, ptr noundef %1145, i32 noundef %1146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1148:                                             ; preds = %1121
  %1149 = add nsw i32 %1122, 2
  store i32 %1149, ptr @test_count, align 4, !tbaa !5
  %1150 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %1151 = icmp eq ptr %1150, null
  br i1 %1151, label %1152, label %1174

1152:                                             ; preds = %1148
  %1153 = load i32, ptr %302, align 4, !tbaa !5
  %1154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1155 = call i32 @s2n_print_stacktrace(ptr noundef %1154) #12
  %1156 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1157 = trunc nuw i8 %1156 to i1
  br i1 %1157, label %1158, label %1162

1158:                                             ; preds = %1152
  %1159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1160 = call i32 @fileno(ptr noundef %1159) #12
  %1161 = call i32 @isatty(i32 noundef %1160) #12
  %.not763 = icmp eq i32 %1161, 0
  br i1 %.not763, label %1162, label %1163

1162:                                             ; preds = %1158, %1152
  br label %1163

1163:                                             ; preds = %1158, %1162
  %.str.5.sink1113 = phi ptr [ @.str.5, %1162 ], [ @.str.2, %1158 ]
  store i32 %1153, ptr %302, align 4, !tbaa !5
  %1164 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1165 = load i32, ptr @test_count, align 4, !tbaa !5
  %1166 = load i32, ptr %248, align 4, !tbaa !5
  %1167 = call ptr @s2n_strerror(i32 noundef %1166, ptr noundef nonnull @.str.4) #12
  %1168 = load i32, ptr %248, align 4, !tbaa !5
  %1169 = call ptr @s2n_strerror_debug(i32 noundef %1168, ptr noundef nonnull @.str.4) #12
  %1170 = load i32, ptr %302, align 4, !tbaa !5
  %1171 = call ptr @strerror(i32 noundef %1170) #12
  %1172 = load i32, ptr %302, align 4, !tbaa !5
  %1173 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1164, ptr noundef nonnull %.str.5.sink1113, i32 noundef %1165, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 151, ptr noundef %1167, ptr noundef %1169, ptr noundef %1171, i32 noundef %1172) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1174:                                             ; preds = %1148
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %1175 = load i32, ptr @test_count, align 4, !tbaa !5
  %1176 = add nsw i32 %1175, 1
  store i32 %1176, ptr @test_count, align 4, !tbaa !5
  %1177 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %16, ptr noundef null, i64 noundef 0) #12
  %1178 = call zeroext i1 @s2n_result_is_ok(i32 %1177)
  br i1 %1178, label %1201, label %1179

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

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

1189:                                             ; preds = %1185, %1179
  br label %1190

1190:                                             ; preds = %1185, %1189
  %.str.5.sink1122 = phi ptr [ @.str.5, %1189 ], [ @.str.2, %1185 ]
  store i32 %1180, ptr %302, align 4, !tbaa !5
  %1191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1192 = load i32, ptr @test_count, align 4, !tbaa !5
  %1193 = load i32, ptr %248, align 4, !tbaa !5
  %1194 = call ptr @s2n_strerror(i32 noundef %1193, ptr noundef nonnull @.str.4) #12
  %1195 = load i32, ptr %248, align 4, !tbaa !5
  %1196 = call ptr @s2n_strerror_debug(i32 noundef %1195, ptr noundef nonnull @.str.4) #12
  %1197 = load i32, ptr %302, align 4, !tbaa !5
  %1198 = call ptr @strerror(i32 noundef %1197) #12
  %1199 = load i32, ptr %302, align 4, !tbaa !5
  %1200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1191, ptr noundef nonnull %.str.5.sink1122, i32 noundef %1192, ptr noundef nonnull @.str.25, ptr noundef nonnull @.str.1, i32 noundef 152, ptr noundef %1194, ptr noundef %1196, ptr noundef %1198, i32 noundef %1199) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1201:                                             ; preds = %1174
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %16) #12
  %1202 = call i32 @s2n_hash_free(ptr noundef nonnull %15) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %15) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %17, i8 0, i64 40, i1 false)
  %1203 = load i32, ptr @test_count, align 4, !tbaa !5
  %1204 = add nsw i32 %1203, 1
  store i32 %1204, ptr @test_count, align 4, !tbaa !5
  %1205 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %17, i32 noundef 50) #12
  %1206 = icmp eq i32 %1205, -1
  br i1 %1206, label %1207, label %1229

1207:                                             ; preds = %1201
  %1208 = load i32, ptr %302, align 4, !tbaa !5
  %1209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1210 = call i32 @s2n_print_stacktrace(ptr noundef %1209) #12
  %1211 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1212 = trunc nuw i8 %1211 to i1
  br i1 %1212, label %1213, label %1217

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

1217:                                             ; preds = %1213, %1207
  br label %1218

1218:                                             ; preds = %1213, %1217
  %.str.5.sink1131 = phi ptr [ @.str.5, %1217 ], [ @.str.2, %1213 ]
  store i32 %1208, ptr %302, align 4, !tbaa !5
  %1219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1220 = load i32, ptr @test_count, align 4, !tbaa !5
  %1221 = load i32, ptr %248, align 4, !tbaa !5
  %1222 = call ptr @s2n_strerror(i32 noundef %1221, ptr noundef nonnull @.str.4) #12
  %1223 = load i32, ptr %248, align 4, !tbaa !5
  %1224 = call ptr @s2n_strerror_debug(i32 noundef %1223, ptr noundef nonnull @.str.4) #12
  %1225 = load i32, ptr %302, align 4, !tbaa !5
  %1226 = call ptr @strerror(i32 noundef %1225) #12
  %1227 = load i32, ptr %302, align 4, !tbaa !5
  %1228 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1219, ptr noundef nonnull %.str.5.sink1131, i32 noundef %1220, ptr noundef nonnull @.str.26, ptr noundef nonnull @.str.1, i32 noundef 159, ptr noundef %1222, ptr noundef %1224, ptr noundef %1226, i32 noundef %1227) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1229:                                             ; preds = %1201
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %18) #12
  store i32 0, ptr %18, align 8, !tbaa !15
  %1230 = getelementptr inbounds i8, ptr %18, i64 8
  store ptr %17, ptr %1230, align 8, !tbaa !17
  %1231 = getelementptr inbounds i8, ptr %18, i64 16
  store ptr null, ptr %1231, align 8, !tbaa !18
  %1232 = getelementptr inbounds i8, ptr %17, i64 28
  %1233 = getelementptr inbounds i8, ptr %17, i64 24
  %.pre795 = load i32, ptr @test_count, align 4, !tbaa !5
  br label %1240

1234:                                             ; preds = %1348
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %18) #12
  %1235 = call i32 @s2n_stuffer_free(ptr noundef nonnull %17) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %17) #12
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %20) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %20, i8 0, i64 56, i1 false)
  %1236 = load i32, ptr @test_count, align 4, !tbaa !5
  %1237 = add nsw i32 %1236, 1
  store i32 %1237, ptr @test_count, align 4, !tbaa !5
  %1238 = call i32 @s2n_test_hash_state_new(ptr noundef nonnull %20)
  %1239 = call zeroext i1 @s2n_result_is_ok(i32 %1238)
  br i1 %1239, label %1372, label %1350

1240:                                             ; preds = %1229, %1348
  %1241 = phi i32 [ %.pre795, %1229 ], [ %1324, %1348 ]
  %.0527784 = phi i64 [ 1, %1229 ], [ %1349, %1348 ]
  %1242 = add nsw i32 %1241, 1
  store i32 %1242, ptr @test_count, align 4, !tbaa !5
  %1243 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %18, ptr noundef nonnull %3, i64 noundef 5) #12
  %1244 = call zeroext i1 @s2n_result_is_ok(i32 %1243)
  br i1 %1244, label %1267, label %1245

1245:                                             ; preds = %1240
  %1246 = load i32, ptr %302, align 4, !tbaa !5
  %1247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1248 = call i32 @s2n_print_stacktrace(ptr noundef %1247) #12
  %1249 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1250 = trunc nuw i8 %1249 to i1
  br i1 %1250, label %1251, label %1255

1251:                                             ; preds = %1245
  %1252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1253 = call i32 @fileno(ptr noundef %1252) #12
  %1254 = call i32 @isatty(i32 noundef %1253) #12
  %.not757 = icmp eq i32 %1254, 0
  br i1 %.not757, label %1255, label %1256

1255:                                             ; preds = %1251, %1245
  br label %1256

1256:                                             ; preds = %1251, %1255
  %.str.5.sink1140 = phi ptr [ @.str.5, %1255 ], [ @.str.2, %1251 ]
  store i32 %1246, ptr %302, align 4, !tbaa !5
  %1257 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1258 = load i32, ptr @test_count, align 4, !tbaa !5
  %1259 = load i32, ptr %248, align 4, !tbaa !5
  %1260 = call ptr @s2n_strerror(i32 noundef %1259, ptr noundef nonnull @.str.4) #12
  %1261 = load i32, ptr %248, align 4, !tbaa !5
  %1262 = call ptr @s2n_strerror_debug(i32 noundef %1261, ptr noundef nonnull @.str.4) #12
  %1263 = load i32, ptr %302, align 4, !tbaa !5
  %1264 = call ptr @strerror(i32 noundef %1263) #12
  %1265 = load i32, ptr %302, align 4, !tbaa !5
  %1266 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1257, ptr noundef nonnull %.str.5.sink1140, i32 noundef %1258, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 163, ptr noundef %1260, ptr noundef %1262, ptr noundef %1264, i32 noundef %1265) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1267:                                             ; preds = %1240
  %1268 = load i32, ptr @test_count, align 4, !tbaa !5
  %1269 = add nsw i32 %1268, 1
  store i32 %1269, ptr @test_count, align 4, !tbaa !5
  %1270 = load i32, ptr %1232, align 4, !tbaa !19
  %1271 = load i32, ptr %1233, align 8, !tbaa !22
  %1272 = sub i32 %1270, %1271
  %1273 = icmp eq i32 %1272, 5
  br i1 %1273, label %1296, label %1274

1274:                                             ; preds = %1267
  %1275 = load i32, ptr %302, align 4, !tbaa !5
  %1276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1277 = call i32 @s2n_print_stacktrace(ptr noundef %1276) #12
  %1278 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1279 = trunc nuw i8 %1278 to i1
  br i1 %1279, label %1280, label %1284

1280:                                             ; preds = %1274
  %1281 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1282 = call i32 @fileno(ptr noundef %1281) #12
  %1283 = call i32 @isatty(i32 noundef %1282) #12
  %.not758 = icmp eq i32 %1283, 0
  br i1 %.not758, label %1284, label %1285

1284:                                             ; preds = %1280, %1274
  br label %1285

1285:                                             ; preds = %1280, %1284
  %.str.5.sink1149 = phi ptr [ @.str.5, %1284 ], [ @.str.2, %1280 ]
  store i32 %1275, ptr %302, align 4, !tbaa !5
  %1286 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1287 = load i32, ptr @test_count, align 4, !tbaa !5
  %1288 = load i32, ptr %248, align 4, !tbaa !5
  %1289 = call ptr @s2n_strerror(i32 noundef %1288, ptr noundef nonnull @.str.4) #12
  %1290 = load i32, ptr %248, align 4, !tbaa !5
  %1291 = call ptr @s2n_strerror_debug(i32 noundef %1290, ptr noundef nonnull @.str.4) #12
  %1292 = load i32, ptr %302, align 4, !tbaa !5
  %1293 = call ptr @strerror(i32 noundef %1292) #12
  %1294 = load i32, ptr %302, align 4, !tbaa !5
  %1295 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1286, ptr noundef nonnull %.str.5.sink1149, i32 noundef %1287, ptr noundef nonnull @.str.28, ptr noundef nonnull @.str.1, i32 noundef 164, ptr noundef %1289, ptr noundef %1291, ptr noundef %1293, i32 noundef %1294) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1296:                                             ; preds = %1267
  call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %19) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(6) %19, i8 0, i64 6, i1 false)
  %1297 = add nsw i32 %1268, 2
  store i32 %1297, ptr @test_count, align 4, !tbaa !5
  %1298 = call i32 @s2n_stuffer_read_bytes(ptr noundef nonnull %17, ptr noundef nonnull %19, i32 noundef 5) #12
  %1299 = icmp eq i32 %1298, -1
  br i1 %1299, label %1300, label %1322

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

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

1310:                                             ; preds = %1306, %1300
  br label %1311

1311:                                             ; preds = %1306, %1310
  %.str.5.sink1158 = phi ptr [ @.str.5, %1310 ], [ @.str.2, %1306 ]
  store i32 %1301, ptr %302, align 4, !tbaa !5
  %1312 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1313 = load i32, ptr @test_count, align 4, !tbaa !5
  %1314 = load i32, ptr %248, align 4, !tbaa !5
  %1315 = call ptr @s2n_strerror(i32 noundef %1314, ptr noundef nonnull @.str.4) #12
  %1316 = load i32, ptr %248, align 4, !tbaa !5
  %1317 = call ptr @s2n_strerror_debug(i32 noundef %1316, ptr noundef nonnull @.str.4) #12
  %1318 = load i32, ptr %302, align 4, !tbaa !5
  %1319 = call ptr @strerror(i32 noundef %1318) #12
  %1320 = load i32, ptr %302, align 4, !tbaa !5
  %1321 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1312, ptr noundef nonnull %.str.5.sink1158, i32 noundef %1313, ptr noundef nonnull @.str.29, ptr noundef nonnull @.str.1, i32 noundef 167, ptr noundef %1315, ptr noundef %1317, ptr noundef %1319, i32 noundef %1320) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1322:                                             ; preds = %1296
  %1323 = load i32, ptr @test_count, align 4, !tbaa !5
  %1324 = add nsw i32 %1323, 1
  store i32 %1324, ptr @test_count, align 4, !tbaa !5
  %bcmp759 = call i32 @bcmp(ptr noundef nonnull dereferenceable(5) %19, ptr noundef nonnull dereferenceable(5) %3, i64 5)
  %1325 = icmp eq i32 %bcmp759, 0
  br i1 %1325, label %1348, label %1326

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

1332:                                             ; preds = %1326
  %1333 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1334 = call i32 @fileno(ptr noundef %1333) #12
  %1335 = call i32 @isatty(i32 noundef %1334) #12
  %.not760 = icmp eq i32 %1335, 0
  br i1 %.not760, label %1336, label %1337

1336:                                             ; preds = %1332, %1326
  br label %1337

1337:                                             ; preds = %1332, %1336
  %.str.5.sink1167 = phi ptr [ @.str.5, %1336 ], [ @.str.2, %1332 ]
  store i32 %1327, ptr %302, align 4, !tbaa !5
  %1338 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1339 = load i32, ptr @test_count, align 4, !tbaa !5
  %1340 = load i32, ptr %248, align 4, !tbaa !5
  %1341 = call ptr @s2n_strerror(i32 noundef %1340, ptr noundef nonnull @.str.4) #12
  %1342 = load i32, ptr %248, align 4, !tbaa !5
  %1343 = call ptr @s2n_strerror_debug(i32 noundef %1342, ptr noundef nonnull @.str.4) #12
  %1344 = load i32, ptr %302, align 4, !tbaa !5
  %1345 = call ptr @strerror(i32 noundef %1344) #12
  %1346 = load i32, ptr %302, align 4, !tbaa !5
  %1347 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1338, ptr noundef nonnull %.str.5.sink1167, i32 noundef %1339, ptr noundef nonnull @.str.30, ptr noundef nonnull @.str.1, i32 noundef 168, ptr noundef %1341, ptr noundef %1343, ptr noundef %1345, i32 noundef %1346) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1348:                                             ; preds = %1322
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %19) #12
  %1349 = add nuw nsw i64 %.0527784, 1
  %exitcond791.not = icmp eq i64 %1349, 11
  br i1 %exitcond791.not, label %1234, label %1240, !llvm.loop !29

1350:                                             ; preds = %1234
  %1351 = load i32, ptr %302, align 4, !tbaa !5
  %1352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1353 = call i32 @s2n_print_stacktrace(ptr noundef %1352) #12
  %1354 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1355 = trunc nuw i8 %1354 to i1
  br i1 %1355, label %1356, label %1360

1356:                                             ; preds = %1350
  %1357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1358 = call i32 @fileno(ptr noundef %1357) #12
  %1359 = call i32 @isatty(i32 noundef %1358) #12
  %.not551 = icmp eq i32 %1359, 0
  br i1 %.not551, label %1360, label %1361

1360:                                             ; preds = %1356, %1350
  br label %1361

1361:                                             ; preds = %1356, %1360
  %.str.5.sink1176 = phi ptr [ @.str.5, %1360 ], [ @.str.2, %1356 ]
  store i32 %1351, ptr %302, align 4, !tbaa !5
  %1362 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1363 = load i32, ptr @test_count, align 4, !tbaa !5
  %1364 = load i32, ptr %248, align 4, !tbaa !5
  %1365 = call ptr @s2n_strerror(i32 noundef %1364, ptr noundef nonnull @.str.4) #12
  %1366 = load i32, ptr %248, align 4, !tbaa !5
  %1367 = call ptr @s2n_strerror_debug(i32 noundef %1366, ptr noundef nonnull @.str.4) #12
  %1368 = load i32, ptr %302, align 4, !tbaa !5
  %1369 = call ptr @strerror(i32 noundef %1368) #12
  %1370 = load i32, ptr %302, align 4, !tbaa !5
  %1371 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1362, ptr noundef nonnull %.str.5.sink1176, i32 noundef %1363, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 175, ptr noundef %1365, ptr noundef %1367, ptr noundef %1369, i32 noundef %1370) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1372:                                             ; preds = %1234
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21) #12
  store i32 0, ptr %21, align 8, !tbaa !15
  %1373 = getelementptr inbounds i8, ptr %21, i64 8
  store ptr null, ptr %1373, align 8, !tbaa !17
  %1374 = getelementptr inbounds i8, ptr %21, i64 16
  store ptr %20, ptr %1374, align 8, !tbaa !18
  %1375 = load i32, ptr @test_count, align 4, !tbaa !5
  %1376 = add nsw i32 %1375, 1
  store i32 %1376, ptr @test_count, align 4, !tbaa !5
  %1377 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1378 = call zeroext i1 @s2n_result_is_ok(i32 %1377)
  br i1 %1378, label %1508, label %1486

1379:                                             ; preds = %1508
  %1380 = add nsw i32 %1509, 2
  store i32 %1380, ptr @test_count, align 4, !tbaa !5
  %1381 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1382 = call zeroext i1 @s2n_result_is_ok(i32 %1381)
  br i1 %1382, label %1383, label %1486

1383:                                             ; preds = %1379
  %1384 = load i32, ptr @test_count, align 4, !tbaa !5
  %1385 = add nsw i32 %1384, 1
  store i32 %1385, ptr @test_count, align 4, !tbaa !5
  %1386 = load ptr, ptr %1374, align 8, !tbaa !18
  %1387 = getelementptr inbounds i8, ptr %1386, i64 16
  %1388 = load i64, ptr %1387, align 8, !tbaa !26
  %1389 = icmp eq i64 %1388, 10
  br i1 %1389, label %1390, label %1515

1390:                                             ; preds = %1383
  %1391 = add nsw i32 %1384, 2
  store i32 %1391, ptr @test_count, align 4, !tbaa !5
  %1392 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1393 = call zeroext i1 @s2n_result_is_ok(i32 %1392)
  br i1 %1393, label %1394, label %1486

1394:                                             ; preds = %1390
  %1395 = load i32, ptr @test_count, align 4, !tbaa !5
  %1396 = add nsw i32 %1395, 1
  store i32 %1396, ptr @test_count, align 4, !tbaa !5
  %1397 = load ptr, ptr %1374, align 8, !tbaa !18
  %1398 = getelementptr inbounds i8, ptr %1397, i64 16
  %1399 = load i64, ptr %1398, align 8, !tbaa !26
  %1400 = icmp eq i64 %1399, 15
  br i1 %1400, label %1401, label %1515

1401:                                             ; preds = %1394
  %1402 = add nsw i32 %1395, 2
  store i32 %1402, ptr @test_count, align 4, !tbaa !5
  %1403 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1404 = call zeroext i1 @s2n_result_is_ok(i32 %1403)
  br i1 %1404, label %1405, label %1486

1405:                                             ; preds = %1401
  %1406 = load i32, ptr @test_count, align 4, !tbaa !5
  %1407 = add nsw i32 %1406, 1
  store i32 %1407, ptr @test_count, align 4, !tbaa !5
  %1408 = load ptr, ptr %1374, align 8, !tbaa !18
  %1409 = getelementptr inbounds i8, ptr %1408, i64 16
  %1410 = load i64, ptr %1409, align 8, !tbaa !26
  %1411 = icmp eq i64 %1410, 20
  br i1 %1411, label %1412, label %1515

1412:                                             ; preds = %1405
  %1413 = add nsw i32 %1406, 2
  store i32 %1413, ptr @test_count, align 4, !tbaa !5
  %1414 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1415 = call zeroext i1 @s2n_result_is_ok(i32 %1414)
  br i1 %1415, label %1416, label %1486

1416:                                             ; preds = %1412
  %1417 = load i32, ptr @test_count, align 4, !tbaa !5
  %1418 = add nsw i32 %1417, 1
  store i32 %1418, ptr @test_count, align 4, !tbaa !5
  %1419 = load ptr, ptr %1374, align 8, !tbaa !18
  %1420 = getelementptr inbounds i8, ptr %1419, i64 16
  %1421 = load i64, ptr %1420, align 8, !tbaa !26
  %1422 = icmp eq i64 %1421, 25
  br i1 %1422, label %1423, label %1515

1423:                                             ; preds = %1416
  %1424 = add nsw i32 %1417, 2
  store i32 %1424, ptr @test_count, align 4, !tbaa !5
  %1425 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1426 = call zeroext i1 @s2n_result_is_ok(i32 %1425)
  br i1 %1426, label %1427, label %1486

1427:                                             ; preds = %1423
  %1428 = load i32, ptr @test_count, align 4, !tbaa !5
  %1429 = add nsw i32 %1428, 1
  store i32 %1429, ptr @test_count, align 4, !tbaa !5
  %1430 = load ptr, ptr %1374, align 8, !tbaa !18
  %1431 = getelementptr inbounds i8, ptr %1430, i64 16
  %1432 = load i64, ptr %1431, align 8, !tbaa !26
  %1433 = icmp eq i64 %1432, 30
  br i1 %1433, label %1434, label %1515

1434:                                             ; preds = %1427
  %1435 = add nsw i32 %1428, 2
  store i32 %1435, ptr @test_count, align 4, !tbaa !5
  %1436 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1437 = call zeroext i1 @s2n_result_is_ok(i32 %1436)
  br i1 %1437, label %1438, label %1486

1438:                                             ; preds = %1434
  %1439 = load i32, ptr @test_count, align 4, !tbaa !5
  %1440 = add nsw i32 %1439, 1
  store i32 %1440, ptr @test_count, align 4, !tbaa !5
  %1441 = load ptr, ptr %1374, align 8, !tbaa !18
  %1442 = getelementptr inbounds i8, ptr %1441, i64 16
  %1443 = load i64, ptr %1442, align 8, !tbaa !26
  %1444 = icmp eq i64 %1443, 35
  br i1 %1444, label %1445, label %1515

1445:                                             ; preds = %1438
  %1446 = add nsw i32 %1439, 2
  store i32 %1446, ptr @test_count, align 4, !tbaa !5
  %1447 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1448 = call zeroext i1 @s2n_result_is_ok(i32 %1447)
  br i1 %1448, label %1449, label %1486

1449:                                             ; preds = %1445
  %1450 = load i32, ptr @test_count, align 4, !tbaa !5
  %1451 = add nsw i32 %1450, 1
  store i32 %1451, ptr @test_count, align 4, !tbaa !5
  %1452 = load ptr, ptr %1374, align 8, !tbaa !18
  %1453 = getelementptr inbounds i8, ptr %1452, i64 16
  %1454 = load i64, ptr %1453, align 8, !tbaa !26
  %1455 = icmp eq i64 %1454, 40
  br i1 %1455, label %1456, label %1515

1456:                                             ; preds = %1449
  %1457 = add nsw i32 %1450, 2
  store i32 %1457, ptr @test_count, align 4, !tbaa !5
  %1458 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1459 = call zeroext i1 @s2n_result_is_ok(i32 %1458)
  br i1 %1459, label %1460, label %1486

1460:                                             ; preds = %1456
  %1461 = load i32, ptr @test_count, align 4, !tbaa !5
  %1462 = add nsw i32 %1461, 1
  store i32 %1462, ptr @test_count, align 4, !tbaa !5
  %1463 = load ptr, ptr %1374, align 8, !tbaa !18
  %1464 = getelementptr inbounds i8, ptr %1463, i64 16
  %1465 = load i64, ptr %1464, align 8, !tbaa !26
  %1466 = icmp eq i64 %1465, 45
  br i1 %1466, label %1467, label %1515

1467:                                             ; preds = %1460
  %1468 = add nsw i32 %1461, 2
  store i32 %1468, ptr @test_count, align 4, !tbaa !5
  %1469 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %21, ptr noundef nonnull %3, i64 noundef 5) #12
  %1470 = call zeroext i1 @s2n_result_is_ok(i32 %1469)
  br i1 %1470, label %1471, label %1486

1471:                                             ; preds = %1467
  %1472 = load i32, ptr @test_count, align 4, !tbaa !5
  %1473 = add nsw i32 %1472, 1
  store i32 %1473, ptr @test_count, align 4, !tbaa !5
  %1474 = load ptr, ptr %1374, align 8, !tbaa !18
  %1475 = getelementptr inbounds i8, ptr %1474, i64 16
  %1476 = load i64, ptr %1475, align 8, !tbaa !26
  %1477 = icmp eq i64 %1476, 50
  br i1 %1477, label %1478, label %1515

1478:                                             ; preds = %1471
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %21) #12
  %1479 = call i32 @s2n_hash_free(ptr noundef nonnull %20) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %20) #12
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %22, i8 0, i64 40, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %23) #12
  store i32 0, ptr %23, align 8, !tbaa !15
  %1480 = getelementptr inbounds i8, ptr %23, i64 8
  store ptr %22, ptr %1480, align 8, !tbaa !17
  %1481 = getelementptr inbounds i8, ptr %23, i64 16
  store ptr null, ptr %1481, align 8, !tbaa !18
  %1482 = load i32, ptr @test_count, align 4, !tbaa !5
  %1483 = add nsw i32 %1482, 1
  store i32 %1483, ptr @test_count, align 4, !tbaa !5
  %1484 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %23, ptr noundef nonnull %3, i64 noundef 5) #12
  %1485 = call zeroext i1 @s2n_result_is_error(i32 %1484)
  br i1 %1485, label %1559, label %1537

1486:                                             ; preds = %1467, %1456, %1445, %1434, %1423, %1412, %1401, %1390, %1379, %1372
  %1487 = load i32, ptr %302, align 4, !tbaa !5
  %1488 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1489 = call i32 @s2n_print_stacktrace(ptr noundef %1488) #12
  %1490 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1491 = trunc nuw i8 %1490 to i1
  br i1 %1491, label %1492, label %1496

1492:                                             ; preds = %1486
  %1493 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1494 = call i32 @fileno(ptr noundef %1493) #12
  %1495 = call i32 @isatty(i32 noundef %1494) #12
  %.not755 = icmp eq i32 %1495, 0
  br i1 %.not755, label %1496, label %1497

1496:                                             ; preds = %1492, %1486
  br label %1497

1497:                                             ; preds = %1492, %1496
  %.str.5.sink1185 = phi ptr [ @.str.5, %1496 ], [ @.str.2, %1492 ]
  store i32 %1487, ptr %302, align 4, !tbaa !5
  %1498 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1499 = load i32, ptr @test_count, align 4, !tbaa !5
  %1500 = load i32, ptr %248, align 4, !tbaa !5
  %1501 = call ptr @s2n_strerror(i32 noundef %1500, ptr noundef nonnull @.str.4) #12
  %1502 = load i32, ptr %248, align 4, !tbaa !5
  %1503 = call ptr @s2n_strerror_debug(i32 noundef %1502, ptr noundef nonnull @.str.4) #12
  %1504 = load i32, ptr %302, align 4, !tbaa !5
  %1505 = call ptr @strerror(i32 noundef %1504) #12
  %1506 = load i32, ptr %302, align 4, !tbaa !5
  %1507 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1498, ptr noundef nonnull %.str.5.sink1185, i32 noundef %1499, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 179, ptr noundef %1501, ptr noundef %1503, ptr noundef %1505, i32 noundef %1506) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1508:                                             ; preds = %1372
  %1509 = load i32, ptr @test_count, align 4, !tbaa !5
  %1510 = add nsw i32 %1509, 1
  store i32 %1510, ptr @test_count, align 4, !tbaa !5
  %1511 = load ptr, ptr %1374, align 8, !tbaa !18
  %1512 = getelementptr inbounds i8, ptr %1511, i64 16
  %1513 = load i64, ptr %1512, align 8, !tbaa !26
  %1514 = icmp eq i64 %1513, 5
  br i1 %1514, label %1379, label %1515

1515:                                             ; preds = %1471, %1460, %1449, %1438, %1427, %1416, %1405, %1394, %1383, %1508
  %1516 = load i32, ptr %302, align 4, !tbaa !5
  %1517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1518 = call i32 @s2n_print_stacktrace(ptr noundef %1517) #12
  %1519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1520 = trunc nuw i8 %1519 to i1
  br i1 %1520, label %1521, label %1525

1521:                                             ; preds = %1515
  %1522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1523 = call i32 @fileno(ptr noundef %1522) #12
  %1524 = call i32 @isatty(i32 noundef %1523) #12
  %.not756 = icmp eq i32 %1524, 0
  br i1 %.not756, label %1525, label %1526

1525:                                             ; preds = %1521, %1515
  br label %1526

1526:                                             ; preds = %1521, %1525
  %.str.5.sink1194 = phi ptr [ @.str.5, %1525 ], [ @.str.2, %1521 ]
  store i32 %1516, ptr %302, align 4, !tbaa !5
  %1527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1528 = load i32, ptr @test_count, align 4, !tbaa !5
  %1529 = load i32, ptr %248, align 4, !tbaa !5
  %1530 = call ptr @s2n_strerror(i32 noundef %1529, ptr noundef nonnull @.str.4) #12
  %1531 = load i32, ptr %248, align 4, !tbaa !5
  %1532 = call ptr @s2n_strerror_debug(i32 noundef %1531, ptr noundef nonnull @.str.4) #12
  %1533 = load i32, ptr %302, align 4, !tbaa !5
  %1534 = call ptr @strerror(i32 noundef %1533) #12
  %1535 = load i32, ptr %302, align 4, !tbaa !5
  %1536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1527, ptr noundef nonnull %.str.5.sink1194, i32 noundef %1528, ptr noundef nonnull @.str.31, ptr noundef nonnull @.str.1, i32 noundef 180, ptr noundef %1530, ptr noundef %1532, ptr noundef %1534, i32 noundef %1535) #14
  call void @exit(i32 noundef 1) #15
  unreachable

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

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

1547:                                             ; preds = %1543, %1537
  br label %1548

1548:                                             ; preds = %1543, %1547
  %.str.5.sink1203 = phi ptr [ @.str.5, %1547 ], [ @.str.2, %1543 ]
  store i32 %1538, ptr %302, align 4, !tbaa !5
  %1549 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1550 = load i32, ptr @test_count, align 4, !tbaa !5
  %1551 = load i32, ptr %248, align 4, !tbaa !5
  %1552 = call ptr @s2n_strerror(i32 noundef %1551, ptr noundef nonnull @.str.4) #12
  %1553 = load i32, ptr %248, align 4, !tbaa !5
  %1554 = call ptr @s2n_strerror_debug(i32 noundef %1553, ptr noundef nonnull @.str.4) #12
  %1555 = load i32, ptr %302, align 4, !tbaa !5
  %1556 = call ptr @strerror(i32 noundef %1555) #12
  %1557 = load i32, ptr %302, align 4, !tbaa !5
  %1558 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1549, ptr noundef nonnull %.str.5.sink1203, i32 noundef %1550, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1552, ptr noundef %1554, ptr noundef %1556, i32 noundef %1557) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1559:                                             ; preds = %1478
  %1560 = load i32, ptr @test_count, align 4, !tbaa !5
  %1561 = add nsw i32 %1560, 1
  store i32 %1561, ptr @test_count, align 4, !tbaa !5
  %1562 = load i32, ptr %248, align 4, !tbaa !5
  %1563 = icmp eq i32 %1562, 469762120
  br i1 %1563, label %1586, label %1564

1564:                                             ; preds = %1559
  %1565 = load i32, ptr %302, align 4, !tbaa !5
  %1566 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1567 = call i32 @s2n_print_stacktrace(ptr noundef %1566) #12
  %1568 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1569 = trunc nuw i8 %1568 to i1
  br i1 %1569, label %1570, label %1574

1570:                                             ; preds = %1564
  %1571 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1572 = call i32 @fileno(ptr noundef %1571) #12
  %1573 = call i32 @isatty(i32 noundef %1572) #12
  %.not553 = icmp eq i32 %1573, 0
  br i1 %.not553, label %1574, label %1575

1574:                                             ; preds = %1570, %1564
  br label %1575

1575:                                             ; preds = %1570, %1574
  %.str.5.sink1212 = phi ptr [ @.str.5, %1574 ], [ @.str.2, %1570 ]
  store i32 %1565, ptr %302, align 4, !tbaa !5
  %1576 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1577 = load i32, ptr @test_count, align 4, !tbaa !5
  %1578 = load i32, ptr %248, align 4, !tbaa !5
  %1579 = call ptr @s2n_strerror(i32 noundef %1578, ptr noundef nonnull @.str.4) #12
  %1580 = load i32, ptr %248, align 4, !tbaa !5
  %1581 = call ptr @s2n_strerror_debug(i32 noundef %1580, ptr noundef nonnull @.str.4) #12
  %1582 = load i32, ptr %302, align 4, !tbaa !5
  %1583 = call ptr @strerror(i32 noundef %1582) #12
  %1584 = load i32, ptr %302, align 4, !tbaa !5
  %1585 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1576, ptr noundef nonnull %.str.5.sink1212, i32 noundef %1577, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1579, ptr noundef %1581, ptr noundef %1583, i32 noundef %1584) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1586:                                             ; preds = %1559
  %1587 = add nsw i32 %1560, 2
  store i32 %1587, ptr @test_count, align 4, !tbaa !5
  %1588 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %1589 = icmp eq ptr %1588, null
  br i1 %1589, label %1590, label %1612

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

1596:                                             ; preds = %1590
  %1597 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1598 = call i32 @fileno(ptr noundef %1597) #12
  %1599 = call i32 @isatty(i32 noundef %1598) #12
  %.not754 = icmp eq i32 %1599, 0
  br i1 %.not754, label %1600, label %1601

1600:                                             ; preds = %1596, %1590
  br label %1601

1601:                                             ; preds = %1596, %1600
  %.str.5.sink1221 = phi ptr [ @.str.5, %1600 ], [ @.str.2, %1596 ]
  store i32 %1591, ptr %302, align 4, !tbaa !5
  %1602 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1603 = load i32, ptr @test_count, align 4, !tbaa !5
  %1604 = load i32, ptr %248, align 4, !tbaa !5
  %1605 = call ptr @s2n_strerror(i32 noundef %1604, ptr noundef nonnull @.str.4) #12
  %1606 = load i32, ptr %248, align 4, !tbaa !5
  %1607 = call ptr @s2n_strerror_debug(i32 noundef %1606, ptr noundef nonnull @.str.4) #12
  %1608 = load i32, ptr %302, align 4, !tbaa !5
  %1609 = call ptr @strerror(i32 noundef %1608) #12
  %1610 = load i32, ptr %302, align 4, !tbaa !5
  %1611 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1602, ptr noundef nonnull %.str.5.sink1221, i32 noundef %1603, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 190, ptr noundef %1605, ptr noundef %1607, ptr noundef %1609, i32 noundef %1610) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1612:                                             ; preds = %1586
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %1613 = load i32, ptr @test_count, align 4, !tbaa !5
  %1614 = add nsw i32 %1613, 1
  store i32 %1614, ptr @test_count, align 4, !tbaa !5
  %1615 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %22, i32 noundef 1) #12
  %1616 = icmp eq i32 %1615, -1
  br i1 %1616, label %1617, label %1639

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

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

1627:                                             ; preds = %1623, %1617
  br label %1628

1628:                                             ; preds = %1623, %1627
  %.str.5.sink1230 = phi ptr [ @.str.5, %1627 ], [ @.str.2, %1623 ]
  store i32 %1618, ptr %302, align 4, !tbaa !5
  %1629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1630 = load i32, ptr @test_count, align 4, !tbaa !5
  %1631 = load i32, ptr %248, align 4, !tbaa !5
  %1632 = call ptr @s2n_strerror(i32 noundef %1631, ptr noundef nonnull @.str.4) #12
  %1633 = load i32, ptr %248, align 4, !tbaa !5
  %1634 = call ptr @s2n_strerror_debug(i32 noundef %1633, ptr noundef nonnull @.str.4) #12
  %1635 = load i32, ptr %302, align 4, !tbaa !5
  %1636 = call ptr @strerror(i32 noundef %1635) #12
  %1637 = load i32, ptr %302, align 4, !tbaa !5
  %1638 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1629, ptr noundef nonnull %.str.5.sink1230, i32 noundef %1630, ptr noundef nonnull @.str.21, ptr noundef nonnull @.str.1, i32 noundef 192, ptr noundef %1632, ptr noundef %1634, ptr noundef %1636, i32 noundef %1637) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1639:                                             ; preds = %1612
  %1640 = load i32, ptr @test_count, align 4, !tbaa !5
  %1641 = add nsw i32 %1640, 1
  store i32 %1641, ptr @test_count, align 4, !tbaa !5
  %1642 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %23, ptr noundef nonnull %3, i64 noundef 5) #12
  %1643 = call zeroext i1 @s2n_result_is_error(i32 %1642)
  br i1 %1643, label %1666, label %1644

1644:                                             ; preds = %1639
  %1645 = load i32, ptr %302, align 4, !tbaa !5
  %1646 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1647 = call i32 @s2n_print_stacktrace(ptr noundef %1646) #12
  %1648 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1649 = trunc nuw i8 %1648 to i1
  br i1 %1649, label %1650, label %1654

1650:                                             ; preds = %1644
  %1651 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1652 = call i32 @fileno(ptr noundef %1651) #12
  %1653 = call i32 @isatty(i32 noundef %1652) #12
  %.not554 = icmp eq i32 %1653, 0
  br i1 %.not554, label %1654, label %1655

1654:                                             ; preds = %1650, %1644
  br label %1655

1655:                                             ; preds = %1650, %1654
  %.str.5.sink1239 = phi ptr [ @.str.5, %1654 ], [ @.str.2, %1650 ]
  store i32 %1645, ptr %302, align 4, !tbaa !5
  %1656 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1657 = load i32, ptr @test_count, align 4, !tbaa !5
  %1658 = load i32, ptr %248, align 4, !tbaa !5
  %1659 = call ptr @s2n_strerror(i32 noundef %1658, ptr noundef nonnull @.str.4) #12
  %1660 = load i32, ptr %248, align 4, !tbaa !5
  %1661 = call ptr @s2n_strerror_debug(i32 noundef %1660, ptr noundef nonnull @.str.4) #12
  %1662 = load i32, ptr %302, align 4, !tbaa !5
  %1663 = call ptr @strerror(i32 noundef %1662) #12
  %1664 = load i32, ptr %302, align 4, !tbaa !5
  %1665 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1656, ptr noundef nonnull %.str.5.sink1239, i32 noundef %1657, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1659, ptr noundef %1661, ptr noundef %1663, i32 noundef %1664) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1666:                                             ; preds = %1639
  %1667 = load i32, ptr @test_count, align 4, !tbaa !5
  %1668 = add nsw i32 %1667, 1
  store i32 %1668, ptr @test_count, align 4, !tbaa !5
  %1669 = load i32, ptr %248, align 4, !tbaa !5
  %1670 = icmp eq i32 %1669, 469762120
  br i1 %1670, label %1693, label %1671

1671:                                             ; preds = %1666
  %1672 = load i32, ptr %302, align 4, !tbaa !5
  %1673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1674 = call i32 @s2n_print_stacktrace(ptr noundef %1673) #12
  %1675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1676 = trunc nuw i8 %1675 to i1
  br i1 %1676, label %1677, label %1681

1677:                                             ; preds = %1671
  %1678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1679 = call i32 @fileno(ptr noundef %1678) #12
  %1680 = call i32 @isatty(i32 noundef %1679) #12
  %.not555 = icmp eq i32 %1680, 0
  br i1 %.not555, label %1681, label %1682

1681:                                             ; preds = %1677, %1671
  br label %1682

1682:                                             ; preds = %1677, %1681
  %.str.5.sink1248 = phi ptr [ @.str.5, %1681 ], [ @.str.2, %1677 ]
  store i32 %1672, ptr %302, align 4, !tbaa !5
  %1683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1684 = load i32, ptr @test_count, align 4, !tbaa !5
  %1685 = load i32, ptr %248, align 4, !tbaa !5
  %1686 = call ptr @s2n_strerror(i32 noundef %1685, ptr noundef nonnull @.str.4) #12
  %1687 = load i32, ptr %248, align 4, !tbaa !5
  %1688 = call ptr @s2n_strerror_debug(i32 noundef %1687, ptr noundef nonnull @.str.4) #12
  %1689 = load i32, ptr %302, align 4, !tbaa !5
  %1690 = call ptr @strerror(i32 noundef %1689) #12
  %1691 = load i32, ptr %302, align 4, !tbaa !5
  %1692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1683, ptr noundef nonnull %.str.5.sink1248, i32 noundef %1684, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1686, ptr noundef %1688, ptr noundef %1690, i32 noundef %1691) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1693:                                             ; preds = %1666
  %1694 = add nsw i32 %1667, 2
  store i32 %1694, ptr @test_count, align 4, !tbaa !5
  %1695 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %1696 = icmp eq ptr %1695, null
  br i1 %1696, label %1697, label %1719

1697:                                             ; preds = %1693
  %1698 = load i32, ptr %302, align 4, !tbaa !5
  %1699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1700 = call i32 @s2n_print_stacktrace(ptr noundef %1699) #12
  %1701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1702 = trunc nuw i8 %1701 to i1
  br i1 %1702, label %1703, label %1707

1703:                                             ; preds = %1697
  %1704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1705 = call i32 @fileno(ptr noundef %1704) #12
  %1706 = call i32 @isatty(i32 noundef %1705) #12
  %.not752 = icmp eq i32 %1706, 0
  br i1 %.not752, label %1707, label %1708

1707:                                             ; preds = %1703, %1697
  br label %1708

1708:                                             ; preds = %1703, %1707
  %.str.5.sink1257 = phi ptr [ @.str.5, %1707 ], [ @.str.2, %1703 ]
  store i32 %1698, ptr %302, align 4, !tbaa !5
  %1709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1710 = load i32, ptr @test_count, align 4, !tbaa !5
  %1711 = load i32, ptr %248, align 4, !tbaa !5
  %1712 = call ptr @s2n_strerror(i32 noundef %1711, ptr noundef nonnull @.str.4) #12
  %1713 = load i32, ptr %248, align 4, !tbaa !5
  %1714 = call ptr @s2n_strerror_debug(i32 noundef %1713, ptr noundef nonnull @.str.4) #12
  %1715 = load i32, ptr %302, align 4, !tbaa !5
  %1716 = call ptr @strerror(i32 noundef %1715) #12
  %1717 = load i32, ptr %302, align 4, !tbaa !5
  %1718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1709, ptr noundef nonnull %.str.5.sink1257, i32 noundef %1710, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 195, ptr noundef %1712, ptr noundef %1714, ptr noundef %1716, i32 noundef %1717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1719:                                             ; preds = %1693
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %1720 = load i32, ptr @test_count, align 4, !tbaa !5
  %1721 = add nsw i32 %1720, 1
  store i32 %1721, ptr @test_count, align 4, !tbaa !5
  %1722 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  %1723 = icmp eq i32 %1722, -1
  br i1 %1723, label %1724, label %1746

1724:                                             ; preds = %1719
  %1725 = load i32, ptr %302, align 4, !tbaa !5
  %1726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1727 = call i32 @s2n_print_stacktrace(ptr noundef %1726) #12
  %1728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1729 = trunc nuw i8 %1728 to i1
  br i1 %1729, label %1730, label %1734

1730:                                             ; preds = %1724
  %1731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1732 = call i32 @fileno(ptr noundef %1731) #12
  %1733 = call i32 @isatty(i32 noundef %1732) #12
  %.not751 = icmp eq i32 %1733, 0
  br i1 %.not751, label %1734, label %1735

1734:                                             ; preds = %1730, %1724
  br label %1735

1735:                                             ; preds = %1730, %1734
  %.str.5.sink1266 = phi ptr [ @.str.5, %1734 ], [ @.str.2, %1730 ]
  store i32 %1725, ptr %302, align 4, !tbaa !5
  %1736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1737 = load i32, ptr @test_count, align 4, !tbaa !5
  %1738 = load i32, ptr %248, align 4, !tbaa !5
  %1739 = call ptr @s2n_strerror(i32 noundef %1738, ptr noundef nonnull @.str.4) #12
  %1740 = load i32, ptr %248, align 4, !tbaa !5
  %1741 = call ptr @s2n_strerror_debug(i32 noundef %1740, ptr noundef nonnull @.str.4) #12
  %1742 = load i32, ptr %302, align 4, !tbaa !5
  %1743 = call ptr @strerror(i32 noundef %1742) #12
  %1744 = load i32, ptr %302, align 4, !tbaa !5
  %1745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1736, ptr noundef nonnull %.str.5.sink1266, i32 noundef %1737, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 196, ptr noundef %1739, ptr noundef %1741, ptr noundef %1743, i32 noundef %1744) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1746:                                             ; preds = %1719
  %1747 = load i32, ptr @test_count, align 4, !tbaa !5
  %1748 = add nsw i32 %1747, 1
  store i32 %1748, ptr @test_count, align 4, !tbaa !5
  %1749 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %22, i32 noundef 4) #12
  %1750 = icmp eq i32 %1749, -1
  br i1 %1750, label %1751, label %1773

1751:                                             ; preds = %1746
  %1752 = load i32, ptr %302, align 4, !tbaa !5
  %1753 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1754 = call i32 @s2n_print_stacktrace(ptr noundef %1753) #12
  %1755 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1756 = trunc nuw i8 %1755 to i1
  br i1 %1756, label %1757, label %1761

1757:                                             ; preds = %1751
  %1758 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1759 = call i32 @fileno(ptr noundef %1758) #12
  %1760 = call i32 @isatty(i32 noundef %1759) #12
  %.not750 = icmp eq i32 %1760, 0
  br i1 %.not750, label %1761, label %1762

1761:                                             ; preds = %1757, %1751
  br label %1762

1762:                                             ; preds = %1757, %1761
  %.str.5.sink1275 = phi ptr [ @.str.5, %1761 ], [ @.str.2, %1757 ]
  store i32 %1752, ptr %302, align 4, !tbaa !5
  %1763 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1764 = load i32, ptr @test_count, align 4, !tbaa !5
  %1765 = load i32, ptr %248, align 4, !tbaa !5
  %1766 = call ptr @s2n_strerror(i32 noundef %1765, ptr noundef nonnull @.str.4) #12
  %1767 = load i32, ptr %248, align 4, !tbaa !5
  %1768 = call ptr @s2n_strerror_debug(i32 noundef %1767, ptr noundef nonnull @.str.4) #12
  %1769 = load i32, ptr %302, align 4, !tbaa !5
  %1770 = call ptr @strerror(i32 noundef %1769) #12
  %1771 = load i32, ptr %302, align 4, !tbaa !5
  %1772 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1763, ptr noundef nonnull %.str.5.sink1275, i32 noundef %1764, ptr noundef nonnull @.str.34, ptr noundef nonnull @.str.1, i32 noundef 198, ptr noundef %1766, ptr noundef %1768, ptr noundef %1770, i32 noundef %1771) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1773:                                             ; preds = %1746
  %1774 = load i32, ptr @test_count, align 4, !tbaa !5
  %1775 = add nsw i32 %1774, 1
  store i32 %1775, ptr @test_count, align 4, !tbaa !5
  %1776 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %23, ptr noundef nonnull %3, i64 noundef 5) #12
  %1777 = call zeroext i1 @s2n_result_is_error(i32 %1776)
  br i1 %1777, label %1800, label %1778

1778:                                             ; preds = %1773
  %1779 = load i32, ptr %302, align 4, !tbaa !5
  %1780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1781 = call i32 @s2n_print_stacktrace(ptr noundef %1780) #12
  %1782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1783 = trunc nuw i8 %1782 to i1
  br i1 %1783, label %1784, label %1788

1784:                                             ; preds = %1778
  %1785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1786 = call i32 @fileno(ptr noundef %1785) #12
  %1787 = call i32 @isatty(i32 noundef %1786) #12
  %.not556 = icmp eq i32 %1787, 0
  br i1 %.not556, label %1788, label %1789

1788:                                             ; preds = %1784, %1778
  br label %1789

1789:                                             ; preds = %1784, %1788
  %.str.5.sink1284 = phi ptr [ @.str.5, %1788 ], [ @.str.2, %1784 ]
  store i32 %1779, ptr %302, align 4, !tbaa !5
  %1790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1791 = load i32, ptr @test_count, align 4, !tbaa !5
  %1792 = load i32, ptr %248, align 4, !tbaa !5
  %1793 = call ptr @s2n_strerror(i32 noundef %1792, ptr noundef nonnull @.str.4) #12
  %1794 = load i32, ptr %248, align 4, !tbaa !5
  %1795 = call ptr @s2n_strerror_debug(i32 noundef %1794, ptr noundef nonnull @.str.4) #12
  %1796 = load i32, ptr %302, align 4, !tbaa !5
  %1797 = call ptr @strerror(i32 noundef %1796) #12
  %1798 = load i32, ptr %302, align 4, !tbaa !5
  %1799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1790, ptr noundef nonnull %.str.5.sink1284, i32 noundef %1791, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1793, ptr noundef %1795, ptr noundef %1797, i32 noundef %1798) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1800:                                             ; preds = %1773
  %1801 = load i32, ptr @test_count, align 4, !tbaa !5
  %1802 = add nsw i32 %1801, 1
  store i32 %1802, ptr @test_count, align 4, !tbaa !5
  %1803 = load i32, ptr %248, align 4, !tbaa !5
  %1804 = icmp eq i32 %1803, 469762120
  br i1 %1804, label %1827, label %1805

1805:                                             ; preds = %1800
  %1806 = load i32, ptr %302, align 4, !tbaa !5
  %1807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1808 = call i32 @s2n_print_stacktrace(ptr noundef %1807) #12
  %1809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1810 = trunc nuw i8 %1809 to i1
  br i1 %1810, label %1811, label %1815

1811:                                             ; preds = %1805
  %1812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1813 = call i32 @fileno(ptr noundef %1812) #12
  %1814 = call i32 @isatty(i32 noundef %1813) #12
  %.not557 = icmp eq i32 %1814, 0
  br i1 %.not557, label %1815, label %1816

1815:                                             ; preds = %1811, %1805
  br label %1816

1816:                                             ; preds = %1811, %1815
  %.str.5.sink1293 = phi ptr [ @.str.5, %1815 ], [ @.str.2, %1811 ]
  store i32 %1806, ptr %302, align 4, !tbaa !5
  %1817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1818 = load i32, ptr @test_count, align 4, !tbaa !5
  %1819 = load i32, ptr %248, align 4, !tbaa !5
  %1820 = call ptr @s2n_strerror(i32 noundef %1819, ptr noundef nonnull @.str.4) #12
  %1821 = load i32, ptr %248, align 4, !tbaa !5
  %1822 = call ptr @s2n_strerror_debug(i32 noundef %1821, ptr noundef nonnull @.str.4) #12
  %1823 = load i32, ptr %302, align 4, !tbaa !5
  %1824 = call ptr @strerror(i32 noundef %1823) #12
  %1825 = load i32, ptr %302, align 4, !tbaa !5
  %1826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1817, ptr noundef nonnull %.str.5.sink1293, i32 noundef %1818, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1820, ptr noundef %1822, ptr noundef %1824, i32 noundef %1825) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1827:                                             ; preds = %1800
  %1828 = add nsw i32 %1801, 2
  store i32 %1828, ptr @test_count, align 4, !tbaa !5
  %1829 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %1830 = icmp eq ptr %1829, null
  br i1 %1830, label %1831, label %1853

1831:                                             ; preds = %1827
  %1832 = load i32, ptr %302, align 4, !tbaa !5
  %1833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1834 = call i32 @s2n_print_stacktrace(ptr noundef %1833) #12
  %1835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1836 = trunc nuw i8 %1835 to i1
  br i1 %1836, label %1837, label %1841

1837:                                             ; preds = %1831
  %1838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1839 = call i32 @fileno(ptr noundef %1838) #12
  %1840 = call i32 @isatty(i32 noundef %1839) #12
  %.not749 = icmp eq i32 %1840, 0
  br i1 %.not749, label %1841, label %1842

1841:                                             ; preds = %1837, %1831
  br label %1842

1842:                                             ; preds = %1837, %1841
  %.str.5.sink1302 = phi ptr [ @.str.5, %1841 ], [ @.str.2, %1837 ]
  store i32 %1832, ptr %302, align 4, !tbaa !5
  %1843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1844 = load i32, ptr @test_count, align 4, !tbaa !5
  %1845 = load i32, ptr %248, align 4, !tbaa !5
  %1846 = call ptr @s2n_strerror(i32 noundef %1845, ptr noundef nonnull @.str.4) #12
  %1847 = load i32, ptr %248, align 4, !tbaa !5
  %1848 = call ptr @s2n_strerror_debug(i32 noundef %1847, ptr noundef nonnull @.str.4) #12
  %1849 = load i32, ptr %302, align 4, !tbaa !5
  %1850 = call ptr @strerror(i32 noundef %1849) #12
  %1851 = load i32, ptr %302, align 4, !tbaa !5
  %1852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1843, ptr noundef nonnull %.str.5.sink1302, i32 noundef %1844, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 201, ptr noundef %1846, ptr noundef %1848, ptr noundef %1850, i32 noundef %1851) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1853:                                             ; preds = %1827
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %1854 = load i32, ptr @test_count, align 4, !tbaa !5
  %1855 = add nsw i32 %1854, 1
  store i32 %1855, ptr @test_count, align 4, !tbaa !5
  %1856 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  %1857 = icmp eq i32 %1856, -1
  br i1 %1857, label %1858, label %1880

1858:                                             ; preds = %1853
  %1859 = load i32, ptr %302, align 4, !tbaa !5
  %1860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1861 = call i32 @s2n_print_stacktrace(ptr noundef %1860) #12
  %1862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1863 = trunc nuw i8 %1862 to i1
  br i1 %1863, label %1864, label %1868

1864:                                             ; preds = %1858
  %1865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1866 = call i32 @fileno(ptr noundef %1865) #12
  %1867 = call i32 @isatty(i32 noundef %1866) #12
  %.not748 = icmp eq i32 %1867, 0
  br i1 %.not748, label %1868, label %1869

1868:                                             ; preds = %1864, %1858
  br label %1869

1869:                                             ; preds = %1864, %1868
  %.str.5.sink1311 = phi ptr [ @.str.5, %1868 ], [ @.str.2, %1864 ]
  store i32 %1859, ptr %302, align 4, !tbaa !5
  %1870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1871 = load i32, ptr @test_count, align 4, !tbaa !5
  %1872 = load i32, ptr %248, align 4, !tbaa !5
  %1873 = call ptr @s2n_strerror(i32 noundef %1872, ptr noundef nonnull @.str.4) #12
  %1874 = load i32, ptr %248, align 4, !tbaa !5
  %1875 = call ptr @s2n_strerror_debug(i32 noundef %1874, ptr noundef nonnull @.str.4) #12
  %1876 = load i32, ptr %302, align 4, !tbaa !5
  %1877 = call ptr @strerror(i32 noundef %1876) #12
  %1878 = load i32, ptr %302, align 4, !tbaa !5
  %1879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1870, ptr noundef nonnull %.str.5.sink1311, i32 noundef %1871, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 202, ptr noundef %1873, ptr noundef %1875, ptr noundef %1877, i32 noundef %1878) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1880:                                             ; preds = %1853
  %1881 = load i32, ptr @test_count, align 4, !tbaa !5
  %1882 = add nsw i32 %1881, 1
  store i32 %1882, ptr @test_count, align 4, !tbaa !5
  %1883 = call i32 @s2n_stuffer_alloc(ptr noundef nonnull %22, i32 noundef 5) #12
  %1884 = icmp eq i32 %1883, -1
  br i1 %1884, label %1885, label %1907

1885:                                             ; preds = %1880
  %1886 = load i32, ptr %302, align 4, !tbaa !5
  %1887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1888 = call i32 @s2n_print_stacktrace(ptr noundef %1887) #12
  %1889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1890 = trunc nuw i8 %1889 to i1
  br i1 %1890, label %1891, label %1895

1891:                                             ; preds = %1885
  %1892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1893 = call i32 @fileno(ptr noundef %1892) #12
  %1894 = call i32 @isatty(i32 noundef %1893) #12
  %.not747 = icmp eq i32 %1894, 0
  br i1 %.not747, label %1895, label %1896

1895:                                             ; preds = %1891, %1885
  br label %1896

1896:                                             ; preds = %1891, %1895
  %.str.5.sink1320 = phi ptr [ @.str.5, %1895 ], [ @.str.2, %1891 ]
  store i32 %1886, ptr %302, align 4, !tbaa !5
  %1897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1898 = load i32, ptr @test_count, align 4, !tbaa !5
  %1899 = load i32, ptr %248, align 4, !tbaa !5
  %1900 = call ptr @s2n_strerror(i32 noundef %1899, ptr noundef nonnull @.str.4) #12
  %1901 = load i32, ptr %248, align 4, !tbaa !5
  %1902 = call ptr @s2n_strerror_debug(i32 noundef %1901, ptr noundef nonnull @.str.4) #12
  %1903 = load i32, ptr %302, align 4, !tbaa !5
  %1904 = call ptr @strerror(i32 noundef %1903) #12
  %1905 = load i32, ptr %302, align 4, !tbaa !5
  %1906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1897, ptr noundef nonnull %.str.5.sink1320, i32 noundef %1898, ptr noundef nonnull @.str.35, ptr noundef nonnull @.str.1, i32 noundef 204, ptr noundef %1900, ptr noundef %1902, ptr noundef %1904, i32 noundef %1905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1907:                                             ; preds = %1880
  %1908 = load i32, ptr @test_count, align 4, !tbaa !5
  %1909 = add nsw i32 %1908, 1
  store i32 %1909, ptr @test_count, align 4, !tbaa !5
  %1910 = call i32 @s2n_fingerprint_hash_add_char(ptr noundef nonnull %23, i8 noundef signext 33) #12
  %1911 = call zeroext i1 @s2n_result_is_ok(i32 %1910)
  br i1 %1911, label %1934, label %1912

1912:                                             ; preds = %1907
  %1913 = load i32, ptr %302, align 4, !tbaa !5
  %1914 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1915 = call i32 @s2n_print_stacktrace(ptr noundef %1914) #12
  %1916 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1917 = trunc nuw i8 %1916 to i1
  br i1 %1917, label %1918, label %1922

1918:                                             ; preds = %1912
  %1919 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1920 = call i32 @fileno(ptr noundef %1919) #12
  %1921 = call i32 @isatty(i32 noundef %1920) #12
  %.not558 = icmp eq i32 %1921, 0
  br i1 %.not558, label %1922, label %1923

1922:                                             ; preds = %1918, %1912
  br label %1923

1923:                                             ; preds = %1918, %1922
  %.str.5.sink1329 = phi ptr [ @.str.5, %1922 ], [ @.str.2, %1918 ]
  store i32 %1913, ptr %302, align 4, !tbaa !5
  %1924 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1925 = load i32, ptr @test_count, align 4, !tbaa !5
  %1926 = load i32, ptr %248, align 4, !tbaa !5
  %1927 = call ptr @s2n_strerror(i32 noundef %1926, ptr noundef nonnull @.str.4) #12
  %1928 = load i32, ptr %248, align 4, !tbaa !5
  %1929 = call ptr @s2n_strerror_debug(i32 noundef %1928, ptr noundef nonnull @.str.4) #12
  %1930 = load i32, ptr %302, align 4, !tbaa !5
  %1931 = call ptr @strerror(i32 noundef %1930) #12
  %1932 = load i32, ptr %302, align 4, !tbaa !5
  %1933 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1924, ptr noundef nonnull %.str.5.sink1329, i32 noundef %1925, ptr noundef nonnull @.str.13, ptr noundef nonnull @.str.1, i32 noundef 205, ptr noundef %1927, ptr noundef %1929, ptr noundef %1931, i32 noundef %1932) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1934:                                             ; preds = %1907
  %1935 = load i32, ptr @test_count, align 4, !tbaa !5
  %1936 = add nsw i32 %1935, 1
  store i32 %1936, ptr @test_count, align 4, !tbaa !5
  %1937 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %23, ptr noundef nonnull %3, i64 noundef 5) #12
  %1938 = call zeroext i1 @s2n_result_is_error(i32 %1937)
  br i1 %1938, label %1961, label %1939

1939:                                             ; preds = %1934
  %1940 = load i32, ptr %302, align 4, !tbaa !5
  %1941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1942 = call i32 @s2n_print_stacktrace(ptr noundef %1941) #12
  %1943 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1944 = trunc nuw i8 %1943 to i1
  br i1 %1944, label %1945, label %1949

1945:                                             ; preds = %1939
  %1946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1947 = call i32 @fileno(ptr noundef %1946) #12
  %1948 = call i32 @isatty(i32 noundef %1947) #12
  %.not559 = icmp eq i32 %1948, 0
  br i1 %.not559, label %1949, label %1950

1949:                                             ; preds = %1945, %1939
  br label %1950

1950:                                             ; preds = %1945, %1949
  %.str.5.sink1338 = phi ptr [ @.str.5, %1949 ], [ @.str.2, %1945 ]
  store i32 %1940, ptr %302, align 4, !tbaa !5
  %1951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1952 = load i32, ptr @test_count, align 4, !tbaa !5
  %1953 = load i32, ptr %248, align 4, !tbaa !5
  %1954 = call ptr @s2n_strerror(i32 noundef %1953, ptr noundef nonnull @.str.4) #12
  %1955 = load i32, ptr %248, align 4, !tbaa !5
  %1956 = call ptr @s2n_strerror_debug(i32 noundef %1955, ptr noundef nonnull @.str.4) #12
  %1957 = load i32, ptr %302, align 4, !tbaa !5
  %1958 = call ptr @strerror(i32 noundef %1957) #12
  %1959 = load i32, ptr %302, align 4, !tbaa !5
  %1960 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1951, ptr noundef nonnull %.str.5.sink1338, i32 noundef %1952, ptr noundef nonnull @.str.32, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1954, ptr noundef %1956, ptr noundef %1958, i32 noundef %1959) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1961:                                             ; preds = %1934
  %1962 = load i32, ptr @test_count, align 4, !tbaa !5
  %1963 = add nsw i32 %1962, 1
  store i32 %1963, ptr @test_count, align 4, !tbaa !5
  %1964 = load i32, ptr %248, align 4, !tbaa !5
  %1965 = icmp eq i32 %1964, 469762120
  br i1 %1965, label %1988, label %1966

1966:                                             ; preds = %1961
  %1967 = load i32, ptr %302, align 4, !tbaa !5
  %1968 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1969 = call i32 @s2n_print_stacktrace(ptr noundef %1968) #12
  %1970 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1971 = trunc nuw i8 %1970 to i1
  br i1 %1971, label %1972, label %1976

1972:                                             ; preds = %1966
  %1973 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1974 = call i32 @fileno(ptr noundef %1973) #12
  %1975 = call i32 @isatty(i32 noundef %1974) #12
  %.not560 = icmp eq i32 %1975, 0
  br i1 %.not560, label %1976, label %1977

1976:                                             ; preds = %1972, %1966
  br label %1977

1977:                                             ; preds = %1972, %1976
  %.str.5.sink1347 = phi ptr [ @.str.5, %1976 ], [ @.str.2, %1972 ]
  store i32 %1967, ptr %302, align 4, !tbaa !5
  %1978 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1979 = load i32, ptr @test_count, align 4, !tbaa !5
  %1980 = load i32, ptr %248, align 4, !tbaa !5
  %1981 = call ptr @s2n_strerror(i32 noundef %1980, ptr noundef nonnull @.str.4) #12
  %1982 = load i32, ptr %248, align 4, !tbaa !5
  %1983 = call ptr @s2n_strerror_debug(i32 noundef %1982, ptr noundef nonnull @.str.4) #12
  %1984 = load i32, ptr %302, align 4, !tbaa !5
  %1985 = call ptr @strerror(i32 noundef %1984) #12
  %1986 = load i32, ptr %302, align 4, !tbaa !5
  %1987 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1978, ptr noundef nonnull %.str.5.sink1347, i32 noundef %1979, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %1981, ptr noundef %1983, ptr noundef %1985, i32 noundef %1986) #14
  call void @exit(i32 noundef 1) #15
  unreachable

1988:                                             ; preds = %1961
  %1989 = add nsw i32 %1962, 2
  store i32 %1989, ptr @test_count, align 4, !tbaa !5
  %1990 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %1991 = icmp eq ptr %1990, null
  br i1 %1991, label %1992, label %2014

1992:                                             ; preds = %1988
  %1993 = load i32, ptr %302, align 4, !tbaa !5
  %1994 = load ptr, ptr @stderr, align 8, !tbaa !9
  %1995 = call i32 @s2n_print_stacktrace(ptr noundef %1994) #12
  %1996 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %1997 = trunc nuw i8 %1996 to i1
  br i1 %1997, label %1998, label %2002

1998:                                             ; preds = %1992
  %1999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2000 = call i32 @fileno(ptr noundef %1999) #12
  %2001 = call i32 @isatty(i32 noundef %2000) #12
  %.not746 = icmp eq i32 %2001, 0
  br i1 %.not746, label %2002, label %2003

2002:                                             ; preds = %1998, %1992
  br label %2003

2003:                                             ; preds = %1998, %2002
  %.str.5.sink1356 = phi ptr [ @.str.5, %2002 ], [ @.str.2, %1998 ]
  store i32 %1993, ptr %302, align 4, !tbaa !5
  %2004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2005 = load i32, ptr @test_count, align 4, !tbaa !5
  %2006 = load i32, ptr %248, align 4, !tbaa !5
  %2007 = call ptr @s2n_strerror(i32 noundef %2006, ptr noundef nonnull @.str.4) #12
  %2008 = load i32, ptr %248, align 4, !tbaa !5
  %2009 = call ptr @s2n_strerror_debug(i32 noundef %2008, ptr noundef nonnull @.str.4) #12
  %2010 = load i32, ptr %302, align 4, !tbaa !5
  %2011 = call ptr @strerror(i32 noundef %2010) #12
  %2012 = load i32, ptr %302, align 4, !tbaa !5
  %2013 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2004, ptr noundef nonnull %.str.5.sink1356, i32 noundef %2005, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 208, ptr noundef %2007, ptr noundef %2009, ptr noundef %2011, i32 noundef %2012) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2014:                                             ; preds = %1988
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %2015 = load i32, ptr @test_count, align 4, !tbaa !5
  %2016 = add nsw i32 %2015, 1
  store i32 %2016, ptr @test_count, align 4, !tbaa !5
  %2017 = call i32 @s2n_stuffer_free(ptr noundef nonnull %22) #12
  %2018 = icmp eq i32 %2017, -1
  br i1 %2018, label %2019, label %2041

2019:                                             ; preds = %2014
  %2020 = load i32, ptr %302, align 4, !tbaa !5
  %2021 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2022 = call i32 @s2n_print_stacktrace(ptr noundef %2021) #12
  %2023 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2024 = trunc nuw i8 %2023 to i1
  br i1 %2024, label %2025, label %2029

2025:                                             ; preds = %2019
  %2026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2027 = call i32 @fileno(ptr noundef %2026) #12
  %2028 = call i32 @isatty(i32 noundef %2027) #12
  %.not745 = icmp eq i32 %2028, 0
  br i1 %.not745, label %2029, label %2030

2029:                                             ; preds = %2025, %2019
  br label %2030

2030:                                             ; preds = %2025, %2029
  %.str.5.sink1365 = phi ptr [ @.str.5, %2029 ], [ @.str.2, %2025 ]
  store i32 %2020, ptr %302, align 4, !tbaa !5
  %2031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2032 = load i32, ptr @test_count, align 4, !tbaa !5
  %2033 = load i32, ptr %248, align 4, !tbaa !5
  %2034 = call ptr @s2n_strerror(i32 noundef %2033, ptr noundef nonnull @.str.4) #12
  %2035 = load i32, ptr %248, align 4, !tbaa !5
  %2036 = call ptr @s2n_strerror_debug(i32 noundef %2035, ptr noundef nonnull @.str.4) #12
  %2037 = load i32, ptr %302, align 4, !tbaa !5
  %2038 = call ptr @strerror(i32 noundef %2037) #12
  %2039 = load i32, ptr %302, align 4, !tbaa !5
  %2040 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2031, ptr noundef nonnull %.str.5.sink1365, i32 noundef %2032, ptr noundef nonnull @.str.33, ptr noundef nonnull @.str.1, i32 noundef 209, ptr noundef %2034, ptr noundef %2036, ptr noundef %2038, i32 noundef %2039) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2041:                                             ; preds = %2014
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %23) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %22) #12
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %24, i8 0, i64 24, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %25, i8 0, i64 24, i1 false)
  %2042 = load i32, ptr @test_count, align 4, !tbaa !5
  %2043 = add nsw i32 %2042, 1
  store i32 %2043, ptr @test_count, align 4, !tbaa !5
  %2044 = call i32 @s2n_fingerprint_hash_digest(ptr noundef null, ptr noundef nonnull %25) #12
  %2045 = call zeroext i1 @s2n_result_is_error(i32 %2044)
  br i1 %2045, label %2068, label %2046

2046:                                             ; preds = %2041
  %2047 = load i32, ptr %302, align 4, !tbaa !5
  %2048 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2049 = call i32 @s2n_print_stacktrace(ptr noundef %2048) #12
  %2050 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2051 = trunc nuw i8 %2050 to i1
  br i1 %2051, label %2052, label %2056

2052:                                             ; preds = %2046
  %2053 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2054 = call i32 @fileno(ptr noundef %2053) #12
  %2055 = call i32 @isatty(i32 noundef %2054) #12
  %.not561 = icmp eq i32 %2055, 0
  br i1 %.not561, label %2056, label %2057

2056:                                             ; preds = %2052, %2046
  br label %2057

2057:                                             ; preds = %2052, %2056
  %.str.5.sink1374 = phi ptr [ @.str.5, %2056 ], [ @.str.2, %2052 ]
  store i32 %2047, ptr %302, align 4, !tbaa !5
  %2058 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2059 = load i32, ptr @test_count, align 4, !tbaa !5
  %2060 = load i32, ptr %248, align 4, !tbaa !5
  %2061 = call ptr @s2n_strerror(i32 noundef %2060, ptr noundef nonnull @.str.4) #12
  %2062 = load i32, ptr %248, align 4, !tbaa !5
  %2063 = call ptr @s2n_strerror_debug(i32 noundef %2062, ptr noundef nonnull @.str.4) #12
  %2064 = load i32, ptr %302, align 4, !tbaa !5
  %2065 = call ptr @strerror(i32 noundef %2064) #12
  %2066 = load i32, ptr %302, align 4, !tbaa !5
  %2067 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2058, ptr noundef nonnull %.str.5.sink1374, i32 noundef %2059, ptr noundef nonnull @.str.36, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2061, ptr noundef %2063, ptr noundef %2065, i32 noundef %2066) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2068:                                             ; preds = %2041
  %2069 = load i32, ptr @test_count, align 4, !tbaa !5
  %2070 = add nsw i32 %2069, 1
  store i32 %2070, ptr @test_count, align 4, !tbaa !5
  %2071 = load i32, ptr %248, align 4, !tbaa !5
  %2072 = icmp eq i32 %2071, 402653193
  br i1 %2072, label %2095, label %2073

2073:                                             ; preds = %2068
  %2074 = load i32, ptr %302, align 4, !tbaa !5
  %2075 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2076 = call i32 @s2n_print_stacktrace(ptr noundef %2075) #12
  %2077 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2078 = trunc nuw i8 %2077 to i1
  br i1 %2078, label %2079, label %2083

2079:                                             ; preds = %2073
  %2080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2081 = call i32 @fileno(ptr noundef %2080) #12
  %2082 = call i32 @isatty(i32 noundef %2081) #12
  %.not562 = icmp eq i32 %2082, 0
  br i1 %.not562, label %2083, label %2084

2083:                                             ; preds = %2079, %2073
  br label %2084

2084:                                             ; preds = %2079, %2083
  %.str.5.sink1383 = phi ptr [ @.str.5, %2083 ], [ @.str.2, %2079 ]
  store i32 %2074, ptr %302, align 4, !tbaa !5
  %2085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2086 = load i32, ptr @test_count, align 4, !tbaa !5
  %2087 = load i32, ptr %248, align 4, !tbaa !5
  %2088 = call ptr @s2n_strerror(i32 noundef %2087, ptr noundef nonnull @.str.4) #12
  %2089 = load i32, ptr %248, align 4, !tbaa !5
  %2090 = call ptr @s2n_strerror_debug(i32 noundef %2089, ptr noundef nonnull @.str.4) #12
  %2091 = load i32, ptr %302, align 4, !tbaa !5
  %2092 = call ptr @strerror(i32 noundef %2091) #12
  %2093 = load i32, ptr %302, align 4, !tbaa !5
  %2094 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2085, ptr noundef nonnull %.str.5.sink1383, i32 noundef %2086, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2088, ptr noundef %2090, ptr noundef %2092, i32 noundef %2093) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2095:                                             ; preds = %2068
  %2096 = add nsw i32 %2069, 2
  store i32 %2096, ptr @test_count, align 4, !tbaa !5
  %2097 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %2098 = icmp eq ptr %2097, null
  br i1 %2098, label %2099, label %2121

2099:                                             ; preds = %2095
  %2100 = load i32, ptr %302, align 4, !tbaa !5
  %2101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2102 = call i32 @s2n_print_stacktrace(ptr noundef %2101) #12
  %2103 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2104 = trunc nuw i8 %2103 to i1
  br i1 %2104, label %2105, label %2109

2105:                                             ; preds = %2099
  %2106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2107 = call i32 @fileno(ptr noundef %2106) #12
  %2108 = call i32 @isatty(i32 noundef %2107) #12
  %.not744 = icmp eq i32 %2108, 0
  br i1 %.not744, label %2109, label %2110

2109:                                             ; preds = %2105, %2099
  br label %2110

2110:                                             ; preds = %2105, %2109
  %.str.5.sink1392 = phi ptr [ @.str.5, %2109 ], [ @.str.2, %2105 ]
  store i32 %2100, ptr %302, align 4, !tbaa !5
  %2111 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2112 = load i32, ptr @test_count, align 4, !tbaa !5
  %2113 = load i32, ptr %248, align 4, !tbaa !5
  %2114 = call ptr @s2n_strerror(i32 noundef %2113, ptr noundef nonnull @.str.4) #12
  %2115 = load i32, ptr %248, align 4, !tbaa !5
  %2116 = call ptr @s2n_strerror_debug(i32 noundef %2115, ptr noundef nonnull @.str.4) #12
  %2117 = load i32, ptr %302, align 4, !tbaa !5
  %2118 = call ptr @strerror(i32 noundef %2117) #12
  %2119 = load i32, ptr %302, align 4, !tbaa !5
  %2120 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2111, ptr noundef nonnull %.str.5.sink1392, i32 noundef %2112, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 219, ptr noundef %2114, ptr noundef %2116, ptr noundef %2118, i32 noundef %2119) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2121:                                             ; preds = %2095
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %2122 = load i32, ptr @test_count, align 4, !tbaa !5
  %2123 = add nsw i32 %2122, 1
  store i32 %2123, ptr @test_count, align 4, !tbaa !5
  %2124 = call i32 @s2n_fingerprint_hash_digest(ptr noundef nonnull %24, ptr noundef null) #12
  %2125 = call zeroext i1 @s2n_result_is_error(i32 %2124)
  br i1 %2125, label %2148, label %2126

2126:                                             ; preds = %2121
  %2127 = load i32, ptr %302, align 4, !tbaa !5
  %2128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2129 = call i32 @s2n_print_stacktrace(ptr noundef %2128) #12
  %2130 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2131 = trunc nuw i8 %2130 to i1
  br i1 %2131, label %2132, label %2136

2132:                                             ; preds = %2126
  %2133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2134 = call i32 @fileno(ptr noundef %2133) #12
  %2135 = call i32 @isatty(i32 noundef %2134) #12
  %.not563 = icmp eq i32 %2135, 0
  br i1 %.not563, label %2136, label %2137

2136:                                             ; preds = %2132, %2126
  br label %2137

2137:                                             ; preds = %2132, %2136
  %.str.5.sink1401 = phi ptr [ @.str.5, %2136 ], [ @.str.2, %2132 ]
  store i32 %2127, ptr %302, align 4, !tbaa !5
  %2138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2139 = load i32, ptr @test_count, align 4, !tbaa !5
  %2140 = load i32, ptr %248, align 4, !tbaa !5
  %2141 = call ptr @s2n_strerror(i32 noundef %2140, ptr noundef nonnull @.str.4) #12
  %2142 = load i32, ptr %248, align 4, !tbaa !5
  %2143 = call ptr @s2n_strerror_debug(i32 noundef %2142, ptr noundef nonnull @.str.4) #12
  %2144 = load i32, ptr %302, align 4, !tbaa !5
  %2145 = call ptr @strerror(i32 noundef %2144) #12
  %2146 = load i32, ptr %302, align 4, !tbaa !5
  %2147 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2138, ptr noundef nonnull %.str.5.sink1401, i32 noundef %2139, ptr noundef nonnull @.str.37, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2141, ptr noundef %2143, ptr noundef %2145, i32 noundef %2146) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2148:                                             ; preds = %2121
  %2149 = load i32, ptr @test_count, align 4, !tbaa !5
  %2150 = add nsw i32 %2149, 1
  store i32 %2150, ptr @test_count, align 4, !tbaa !5
  %2151 = load i32, ptr %248, align 4, !tbaa !5
  %2152 = icmp eq i32 %2151, 402653193
  br i1 %2152, label %2175, label %2153

2153:                                             ; preds = %2148
  %2154 = load i32, ptr %302, align 4, !tbaa !5
  %2155 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2156 = call i32 @s2n_print_stacktrace(ptr noundef %2155) #12
  %2157 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2158 = trunc nuw i8 %2157 to i1
  br i1 %2158, label %2159, label %2163

2159:                                             ; preds = %2153
  %2160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2161 = call i32 @fileno(ptr noundef %2160) #12
  %2162 = call i32 @isatty(i32 noundef %2161) #12
  %.not564 = icmp eq i32 %2162, 0
  br i1 %.not564, label %2163, label %2164

2163:                                             ; preds = %2159, %2153
  br label %2164

2164:                                             ; preds = %2159, %2163
  %.str.5.sink1410 = phi ptr [ @.str.5, %2163 ], [ @.str.2, %2159 ]
  store i32 %2154, ptr %302, align 4, !tbaa !5
  %2165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2166 = load i32, ptr @test_count, align 4, !tbaa !5
  %2167 = load i32, ptr %248, align 4, !tbaa !5
  %2168 = call ptr @s2n_strerror(i32 noundef %2167, ptr noundef nonnull @.str.4) #12
  %2169 = load i32, ptr %248, align 4, !tbaa !5
  %2170 = call ptr @s2n_strerror_debug(i32 noundef %2169, ptr noundef nonnull @.str.4) #12
  %2171 = load i32, ptr %302, align 4, !tbaa !5
  %2172 = call ptr @strerror(i32 noundef %2171) #12
  %2173 = load i32, ptr %302, align 4, !tbaa !5
  %2174 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2165, ptr noundef nonnull %.str.5.sink1410, i32 noundef %2166, ptr noundef nonnull @.str.10, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2168, ptr noundef %2170, ptr noundef %2172, i32 noundef %2173) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2175:                                             ; preds = %2148
  %2176 = add nsw i32 %2149, 2
  store i32 %2176, ptr @test_count, align 4, !tbaa !5
  %2177 = call ptr @s2n_strerror_debug(i32 noundef 402653193, ptr noundef nonnull @.str.4) #12
  %2178 = icmp eq ptr %2177, null
  br i1 %2178, label %2179, label %2201

2179:                                             ; preds = %2175
  %2180 = load i32, ptr %302, align 4, !tbaa !5
  %2181 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2182 = call i32 @s2n_print_stacktrace(ptr noundef %2181) #12
  %2183 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2184 = trunc nuw i8 %2183 to i1
  br i1 %2184, label %2185, label %2189

2185:                                             ; preds = %2179
  %2186 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2187 = call i32 @fileno(ptr noundef %2186) #12
  %2188 = call i32 @isatty(i32 noundef %2187) #12
  %.not743 = icmp eq i32 %2188, 0
  br i1 %.not743, label %2189, label %2190

2189:                                             ; preds = %2185, %2179
  br label %2190

2190:                                             ; preds = %2185, %2189
  %.str.5.sink1419 = phi ptr [ @.str.5, %2189 ], [ @.str.2, %2185 ]
  store i32 %2180, ptr %302, align 4, !tbaa !5
  %2191 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2192 = load i32, ptr @test_count, align 4, !tbaa !5
  %2193 = load i32, ptr %248, align 4, !tbaa !5
  %2194 = call ptr @s2n_strerror(i32 noundef %2193, ptr noundef nonnull @.str.4) #12
  %2195 = load i32, ptr %248, align 4, !tbaa !5
  %2196 = call ptr @s2n_strerror_debug(i32 noundef %2195, ptr noundef nonnull @.str.4) #12
  %2197 = load i32, ptr %302, align 4, !tbaa !5
  %2198 = call ptr @strerror(i32 noundef %2197) #12
  %2199 = load i32, ptr %302, align 4, !tbaa !5
  %2200 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2191, ptr noundef nonnull %.str.5.sink1419, i32 noundef %2192, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 220, ptr noundef %2194, ptr noundef %2196, ptr noundef %2198, i32 noundef %2199) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2201:                                             ; preds = %2175
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %25) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %24) #12
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %26) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %26, i8 0, i64 56, i1 false)
  %2202 = load i32, ptr @test_count, align 4, !tbaa !5
  %2203 = add nsw i32 %2202, 1
  store i32 %2203, ptr @test_count, align 4, !tbaa !5
  %2204 = call i32 @s2n_test_hash_state_new(ptr noundef nonnull %26)
  %2205 = call zeroext i1 @s2n_result_is_ok(i32 %2204)
  br i1 %2205, label %2228, label %2206

2206:                                             ; preds = %2201
  %2207 = load i32, ptr %302, align 4, !tbaa !5
  %2208 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2209 = call i32 @s2n_print_stacktrace(ptr noundef %2208) #12
  %2210 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2211 = trunc nuw i8 %2210 to i1
  br i1 %2211, label %2212, label %2216

2212:                                             ; preds = %2206
  %2213 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2214 = call i32 @fileno(ptr noundef %2213) #12
  %2215 = call i32 @isatty(i32 noundef %2214) #12
  %.not565 = icmp eq i32 %2215, 0
  br i1 %.not565, label %2216, label %2217

2216:                                             ; preds = %2212, %2206
  br label %2217

2217:                                             ; preds = %2212, %2216
  %.str.5.sink1428 = phi ptr [ @.str.5, %2216 ], [ @.str.2, %2212 ]
  store i32 %2207, ptr %302, align 4, !tbaa !5
  %2218 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2219 = load i32, ptr @test_count, align 4, !tbaa !5
  %2220 = load i32, ptr %248, align 4, !tbaa !5
  %2221 = call ptr @s2n_strerror(i32 noundef %2220, ptr noundef nonnull @.str.4) #12
  %2222 = load i32, ptr %248, align 4, !tbaa !5
  %2223 = call ptr @s2n_strerror_debug(i32 noundef %2222, ptr noundef nonnull @.str.4) #12
  %2224 = load i32, ptr %302, align 4, !tbaa !5
  %2225 = call ptr @strerror(i32 noundef %2224) #12
  %2226 = load i32, ptr %302, align 4, !tbaa !5
  %2227 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2218, ptr noundef nonnull %.str.5.sink1428, i32 noundef %2219, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 226, ptr noundef %2221, ptr noundef %2223, ptr noundef %2225, i32 noundef %2226) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2228:                                             ; preds = %2201
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) #12
  store i32 0, ptr %27, align 8, !tbaa !15
  %2229 = getelementptr inbounds i8, ptr %27, i64 8
  store ptr null, ptr %2229, align 8, !tbaa !17
  %2230 = getelementptr inbounds i8, ptr %27, i64 16
  store ptr %26, ptr %2230, align 8, !tbaa !18
  %2231 = load i32, ptr @test_count, align 4, !tbaa !5
  %2232 = add nsw i32 %2231, 1
  store i32 %2232, ptr @test_count, align 4, !tbaa !5
  %2233 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %27, ptr noundef nonnull %3, i64 noundef 5) #12
  %2234 = call zeroext i1 @s2n_result_is_ok(i32 %2233)
  br i1 %2234, label %2257, label %2235

2235:                                             ; preds = %2228
  %2236 = load i32, ptr %302, align 4, !tbaa !5
  %2237 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2238 = call i32 @s2n_print_stacktrace(ptr noundef %2237) #12
  %2239 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2240 = trunc nuw i8 %2239 to i1
  br i1 %2240, label %2241, label %2245

2241:                                             ; preds = %2235
  %2242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2243 = call i32 @fileno(ptr noundef %2242) #12
  %2244 = call i32 @isatty(i32 noundef %2243) #12
  %.not566 = icmp eq i32 %2244, 0
  br i1 %.not566, label %2245, label %2246

2245:                                             ; preds = %2241, %2235
  br label %2246

2246:                                             ; preds = %2241, %2245
  %.str.5.sink1437 = phi ptr [ @.str.5, %2245 ], [ @.str.2, %2241 ]
  store i32 %2236, ptr %302, align 4, !tbaa !5
  %2247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2248 = load i32, ptr @test_count, align 4, !tbaa !5
  %2249 = load i32, ptr %248, align 4, !tbaa !5
  %2250 = call ptr @s2n_strerror(i32 noundef %2249, ptr noundef nonnull @.str.4) #12
  %2251 = load i32, ptr %248, align 4, !tbaa !5
  %2252 = call ptr @s2n_strerror_debug(i32 noundef %2251, ptr noundef nonnull @.str.4) #12
  %2253 = load i32, ptr %302, align 4, !tbaa !5
  %2254 = call ptr @strerror(i32 noundef %2253) #12
  %2255 = load i32, ptr %302, align 4, !tbaa !5
  %2256 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2247, ptr noundef nonnull %.str.5.sink1437, i32 noundef %2248, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 229, ptr noundef %2250, ptr noundef %2252, ptr noundef %2254, i32 noundef %2255) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2257:                                             ; preds = %2228
  %2258 = load i32, ptr @test_count, align 4, !tbaa !5
  %2259 = add nsw i32 %2258, 1
  store i32 %2259, ptr @test_count, align 4, !tbaa !5
  %2260 = load ptr, ptr %2230, align 8, !tbaa !18
  %2261 = getelementptr inbounds i8, ptr %2260, i64 16
  %2262 = load i64, ptr %2261, align 8, !tbaa !26
  %2263 = icmp eq i64 %2262, 5
  br i1 %2263, label %2286, label %2264

2264:                                             ; preds = %2257
  %2265 = load i32, ptr %302, align 4, !tbaa !5
  %2266 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2267 = call i32 @s2n_print_stacktrace(ptr noundef %2266) #12
  %2268 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2269 = trunc nuw i8 %2268 to i1
  br i1 %2269, label %2270, label %2274

2270:                                             ; preds = %2264
  %2271 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2272 = call i32 @fileno(ptr noundef %2271) #12
  %2273 = call i32 @isatty(i32 noundef %2272) #12
  %.not567 = icmp eq i32 %2273, 0
  br i1 %.not567, label %2274, label %2275

2274:                                             ; preds = %2270, %2264
  br label %2275

2275:                                             ; preds = %2270, %2274
  %.str.5.sink1446 = phi ptr [ @.str.5, %2274 ], [ @.str.2, %2270 ]
  store i32 %2265, ptr %302, align 4, !tbaa !5
  %2276 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2277 = load i32, ptr @test_count, align 4, !tbaa !5
  %2278 = load i32, ptr %248, align 4, !tbaa !5
  %2279 = call ptr @s2n_strerror(i32 noundef %2278, ptr noundef nonnull @.str.4) #12
  %2280 = load i32, ptr %248, align 4, !tbaa !5
  %2281 = call ptr @s2n_strerror_debug(i32 noundef %2280, ptr noundef nonnull @.str.4) #12
  %2282 = load i32, ptr %302, align 4, !tbaa !5
  %2283 = call ptr @strerror(i32 noundef %2282) #12
  %2284 = load i32, ptr %302, align 4, !tbaa !5
  %2285 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2276, ptr noundef nonnull %.str.5.sink1446, i32 noundef %2277, ptr noundef nonnull @.str.38, ptr noundef nonnull @.str.1, i32 noundef 230, ptr noundef %2279, ptr noundef %2281, ptr noundef %2283, i32 noundef %2284) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2286:                                             ; preds = %2257
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %28) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %28, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %29) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %29, i8 0, i64 24, i1 false)
  %2287 = add nsw i32 %2258, 2
  store i32 %2287, ptr @test_count, align 4, !tbaa !5
  %2288 = call i32 @s2n_blob_init(ptr noundef nonnull %29, ptr noundef nonnull %28, i32 noundef 32) #12
  %2289 = icmp eq i32 %2288, -1
  br i1 %2289, label %2290, label %2312

2290:                                             ; preds = %2286
  %2291 = load i32, ptr %302, align 4, !tbaa !5
  %2292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2293 = call i32 @s2n_print_stacktrace(ptr noundef %2292) #12
  %2294 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2295 = trunc nuw i8 %2294 to i1
  br i1 %2295, label %2296, label %2300

2296:                                             ; preds = %2290
  %2297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2298 = call i32 @fileno(ptr noundef %2297) #12
  %2299 = call i32 @isatty(i32 noundef %2298) #12
  %.not742 = icmp eq i32 %2299, 0
  br i1 %.not742, label %2300, label %2301

2300:                                             ; preds = %2296, %2290
  br label %2301

2301:                                             ; preds = %2296, %2300
  %.str.5.sink1455 = phi ptr [ @.str.5, %2300 ], [ @.str.2, %2296 ]
  store i32 %2291, ptr %302, align 4, !tbaa !5
  %2302 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2303 = load i32, ptr @test_count, align 4, !tbaa !5
  %2304 = load i32, ptr %248, align 4, !tbaa !5
  %2305 = call ptr @s2n_strerror(i32 noundef %2304, ptr noundef nonnull @.str.4) #12
  %2306 = load i32, ptr %248, align 4, !tbaa !5
  %2307 = call ptr @s2n_strerror_debug(i32 noundef %2306, ptr noundef nonnull @.str.4) #12
  %2308 = load i32, ptr %302, align 4, !tbaa !5
  %2309 = call ptr @strerror(i32 noundef %2308) #12
  %2310 = load i32, ptr %302, align 4, !tbaa !5
  %2311 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2302, ptr noundef nonnull %.str.5.sink1455, i32 noundef %2303, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 234, ptr noundef %2305, ptr noundef %2307, ptr noundef %2309, i32 noundef %2310) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2312:                                             ; preds = %2286
  %2313 = load i32, ptr @test_count, align 4, !tbaa !5
  %2314 = add nsw i32 %2313, 1
  store i32 %2314, ptr @test_count, align 4, !tbaa !5
  %2315 = call i32 @s2n_fingerprint_hash_digest(ptr noundef nonnull %27, ptr noundef nonnull %29) #12
  %2316 = call zeroext i1 @s2n_result_is_ok(i32 %2315)
  br i1 %2316, label %2339, label %2317

2317:                                             ; preds = %2312
  %2318 = load i32, ptr %302, align 4, !tbaa !5
  %2319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2320 = call i32 @s2n_print_stacktrace(ptr noundef %2319) #12
  %2321 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2322 = trunc nuw i8 %2321 to i1
  br i1 %2322, label %2323, label %2327

2323:                                             ; preds = %2317
  %2324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2325 = call i32 @fileno(ptr noundef %2324) #12
  %2326 = call i32 @isatty(i32 noundef %2325) #12
  %.not568 = icmp eq i32 %2326, 0
  br i1 %.not568, label %2327, label %2328

2327:                                             ; preds = %2323, %2317
  br label %2328

2328:                                             ; preds = %2323, %2327
  %.str.5.sink1464 = phi ptr [ @.str.5, %2327 ], [ @.str.2, %2323 ]
  store i32 %2318, ptr %302, align 4, !tbaa !5
  %2329 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2330 = load i32, ptr @test_count, align 4, !tbaa !5
  %2331 = load i32, ptr %248, align 4, !tbaa !5
  %2332 = call ptr @s2n_strerror(i32 noundef %2331, ptr noundef nonnull @.str.4) #12
  %2333 = load i32, ptr %248, align 4, !tbaa !5
  %2334 = call ptr @s2n_strerror_debug(i32 noundef %2333, ptr noundef nonnull @.str.4) #12
  %2335 = load i32, ptr %302, align 4, !tbaa !5
  %2336 = call ptr @strerror(i32 noundef %2335) #12
  %2337 = load i32, ptr %302, align 4, !tbaa !5
  %2338 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2329, ptr noundef nonnull %.str.5.sink1464, i32 noundef %2330, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 236, ptr noundef %2332, ptr noundef %2334, ptr noundef %2336, i32 noundef %2337) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2339:                                             ; preds = %2312
  %2340 = getelementptr inbounds i8, ptr %29, i64 8
  %2341 = load i32, ptr %2340, align 8, !tbaa !30
  %.not569 = icmp eq i32 %2341, 0
  %.pre796 = load i32, ptr @test_count, align 4, !tbaa !5
  br i1 %.not569, label %2369, label %2342

2342:                                             ; preds = %2339
  %2343 = add nsw i32 %.pre796, 1
  store i32 %2343, ptr @test_count, align 4, !tbaa !5
  %2344 = load ptr, ptr %29, align 8, !tbaa !31
  %2345 = zext i32 %2341 to i64
  %bcmp = call i32 @bcmp(ptr nonnull @__const.main.test_str_digest, ptr %2344, i64 %2345)
  %2346 = icmp eq i32 %bcmp, 0
  br i1 %2346, label %2369, label %2347

2347:                                             ; preds = %2342
  %2348 = load i32, ptr %302, align 4, !tbaa !5
  %2349 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2350 = call i32 @s2n_print_stacktrace(ptr noundef %2349) #12
  %2351 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2352 = trunc nuw i8 %2351 to i1
  br i1 %2352, label %2353, label %2357

2353:                                             ; preds = %2347
  %2354 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2355 = call i32 @fileno(ptr noundef %2354) #12
  %2356 = call i32 @isatty(i32 noundef %2355) #12
  %.not570 = icmp eq i32 %2356, 0
  br i1 %.not570, label %2357, label %2358

2357:                                             ; preds = %2353, %2347
  br label %2358

2358:                                             ; preds = %2353, %2357
  %.str.5.sink1473 = phi ptr [ @.str.5, %2357 ], [ @.str.2, %2353 ]
  store i32 %2348, ptr %302, align 4, !tbaa !5
  %2359 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2360 = load i32, ptr @test_count, align 4, !tbaa !5
  %2361 = load i32, ptr %248, align 4, !tbaa !5
  %2362 = call ptr @s2n_strerror(i32 noundef %2361, ptr noundef nonnull @.str.4) #12
  %2363 = load i32, ptr %248, align 4, !tbaa !5
  %2364 = call ptr @s2n_strerror_debug(i32 noundef %2363, ptr noundef nonnull @.str.4) #12
  %2365 = load i32, ptr %302, align 4, !tbaa !5
  %2366 = call ptr @strerror(i32 noundef %2365) #12
  %2367 = load i32, ptr %302, align 4, !tbaa !5
  %2368 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2359, ptr noundef nonnull %.str.5.sink1473, i32 noundef %2360, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 237, ptr noundef %2362, ptr noundef %2364, ptr noundef %2366, i32 noundef %2367) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2369:                                             ; preds = %2339, %2342
  %2370 = phi i32 [ %.pre796, %2339 ], [ %2343, %2342 ]
  %2371 = add nsw i32 %2370, 1
  store i32 %2371, ptr @test_count, align 4, !tbaa !5
  %2372 = load i32, ptr %27, align 8, !tbaa !15
  %2373 = icmp eq i32 %2372, 5
  br i1 %2373, label %2396, label %2374

2374:                                             ; preds = %2369
  %2375 = load i32, ptr %302, align 4, !tbaa !5
  %2376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2377 = call i32 @s2n_print_stacktrace(ptr noundef %2376) #12
  %2378 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2379 = trunc nuw i8 %2378 to i1
  br i1 %2379, label %2380, label %2384

2380:                                             ; preds = %2374
  %2381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2382 = call i32 @fileno(ptr noundef %2381) #12
  %2383 = call i32 @isatty(i32 noundef %2382) #12
  %.not571 = icmp eq i32 %2383, 0
  br i1 %.not571, label %2384, label %2385

2384:                                             ; preds = %2380, %2374
  br label %2385

2385:                                             ; preds = %2380, %2384
  %.str.5.sink1482 = phi ptr [ @.str.5, %2384 ], [ @.str.2, %2380 ]
  store i32 %2375, ptr %302, align 4, !tbaa !5
  %2386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2387 = load i32, ptr @test_count, align 4, !tbaa !5
  %2388 = load i32, ptr %248, align 4, !tbaa !5
  %2389 = call ptr @s2n_strerror(i32 noundef %2388, ptr noundef nonnull @.str.4) #12
  %2390 = load i32, ptr %248, align 4, !tbaa !5
  %2391 = call ptr @s2n_strerror_debug(i32 noundef %2390, ptr noundef nonnull @.str.4) #12
  %2392 = load i32, ptr %302, align 4, !tbaa !5
  %2393 = call ptr @strerror(i32 noundef %2392) #12
  %2394 = load i32, ptr %302, align 4, !tbaa !5
  %2395 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2386, ptr noundef nonnull %.str.5.sink1482, i32 noundef %2387, ptr noundef nonnull @.str.42, ptr noundef nonnull @.str.1, i32 noundef 238, ptr noundef %2389, ptr noundef %2391, ptr noundef %2393, i32 noundef %2394) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2396:                                             ; preds = %2369
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %29) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %28) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %27) #12
  %2397 = call i32 @s2n_hash_free(ptr noundef nonnull %26) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %26) #12
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %30) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %30, i8 0, i64 56, i1 false)
  %2398 = load i32, ptr @test_count, align 4, !tbaa !5
  %2399 = add nsw i32 %2398, 1
  store i32 %2399, ptr @test_count, align 4, !tbaa !5
  %2400 = call i32 @s2n_test_hash_state_new(ptr noundef nonnull %30)
  %2401 = call zeroext i1 @s2n_result_is_ok(i32 %2400)
  br i1 %2401, label %2424, label %2402

2402:                                             ; preds = %2396
  %2403 = load i32, ptr %302, align 4, !tbaa !5
  %2404 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2405 = call i32 @s2n_print_stacktrace(ptr noundef %2404) #12
  %2406 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2407 = trunc nuw i8 %2406 to i1
  br i1 %2407, label %2408, label %2412

2408:                                             ; preds = %2402
  %2409 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2410 = call i32 @fileno(ptr noundef %2409) #12
  %2411 = call i32 @isatty(i32 noundef %2410) #12
  %.not572 = icmp eq i32 %2411, 0
  br i1 %.not572, label %2412, label %2413

2412:                                             ; preds = %2408, %2402
  br label %2413

2413:                                             ; preds = %2408, %2412
  %.str.5.sink1491 = phi ptr [ @.str.5, %2412 ], [ @.str.2, %2408 ]
  store i32 %2403, ptr %302, align 4, !tbaa !5
  %2414 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2415 = load i32, ptr @test_count, align 4, !tbaa !5
  %2416 = load i32, ptr %248, align 4, !tbaa !5
  %2417 = call ptr @s2n_strerror(i32 noundef %2416, ptr noundef nonnull @.str.4) #12
  %2418 = load i32, ptr %248, align 4, !tbaa !5
  %2419 = call ptr @s2n_strerror_debug(i32 noundef %2418, ptr noundef nonnull @.str.4) #12
  %2420 = load i32, ptr %302, align 4, !tbaa !5
  %2421 = call ptr @strerror(i32 noundef %2420) #12
  %2422 = load i32, ptr %302, align 4, !tbaa !5
  %2423 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2414, ptr noundef nonnull %.str.5.sink1491, i32 noundef %2415, ptr noundef nonnull @.str.17, ptr noundef nonnull @.str.1, i32 noundef 244, ptr noundef %2417, ptr noundef %2419, ptr noundef %2421, i32 noundef %2422) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2424:                                             ; preds = %2396
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %31) #12
  store i32 0, ptr %31, align 8, !tbaa !15
  %2425 = getelementptr inbounds i8, ptr %31, i64 8
  store ptr null, ptr %2425, align 8, !tbaa !17
  %2426 = getelementptr inbounds i8, ptr %31, i64 16
  store ptr %30, ptr %2426, align 8, !tbaa !18
  %2427 = getelementptr inbounds i8, ptr %33, i64 8
  br label %2433

2428:                                             ; preds = %2544
  %2429 = load i32, ptr @test_count, align 4, !tbaa !5
  %2430 = add nsw i32 %2429, 1
  store i32 %2430, ptr @test_count, align 4, !tbaa !5
  %2431 = load i32, ptr %31, align 8, !tbaa !15
  %2432 = icmp eq i32 %2431, 50
  br i1 %2432, label %2568, label %2546

2433:                                             ; preds = %2424, %2544
  %.0529786 = phi i64 [ 0, %2424 ], [ %2545, %2544 ]
  call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %32) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %32, i8 0, i64 32, i1 false)
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %33) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %33, i8 0, i64 24, i1 false)
  %2434 = load i32, ptr @test_count, align 4, !tbaa !5
  %2435 = add nsw i32 %2434, 1
  store i32 %2435, ptr @test_count, align 4, !tbaa !5
  %2436 = call i32 @s2n_blob_init(ptr noundef nonnull %33, ptr noundef nonnull %32, i32 noundef 32) #12
  %2437 = icmp eq i32 %2436, -1
  br i1 %2437, label %2438, label %2460

2438:                                             ; preds = %2433
  %2439 = load i32, ptr %302, align 4, !tbaa !5
  %2440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2441 = call i32 @s2n_print_stacktrace(ptr noundef %2440) #12
  %2442 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2443 = trunc nuw i8 %2442 to i1
  br i1 %2443, label %2444, label %2448

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2446 = call i32 @fileno(ptr noundef %2445) #12
  %2447 = call i32 @isatty(i32 noundef %2446) #12
  %.not741 = icmp eq i32 %2447, 0
  br i1 %.not741, label %2448, label %2449

2448:                                             ; preds = %2444, %2438
  br label %2449

2449:                                             ; preds = %2444, %2448
  %.str.5.sink1500 = phi ptr [ @.str.5, %2448 ], [ @.str.2, %2444 ]
  store i32 %2439, ptr %302, align 4, !tbaa !5
  %2450 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2451 = load i32, ptr @test_count, align 4, !tbaa !5
  %2452 = load i32, ptr %248, align 4, !tbaa !5
  %2453 = call ptr @s2n_strerror(i32 noundef %2452, ptr noundef nonnull @.str.4) #12
  %2454 = load i32, ptr %248, align 4, !tbaa !5
  %2455 = call ptr @s2n_strerror_debug(i32 noundef %2454, ptr noundef nonnull @.str.4) #12
  %2456 = load i32, ptr %302, align 4, !tbaa !5
  %2457 = call ptr @strerror(i32 noundef %2456) #12
  %2458 = load i32, ptr %302, align 4, !tbaa !5
  %2459 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2450, ptr noundef nonnull %.str.5.sink1500, i32 noundef %2451, ptr noundef nonnull @.str.39, ptr noundef nonnull @.str.1, i32 noundef 251, ptr noundef %2453, ptr noundef %2455, ptr noundef %2457, i32 noundef %2458) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2460:                                             ; preds = %2433
  %2461 = load i32, ptr @test_count, align 4, !tbaa !5
  %2462 = add nsw i32 %2461, 1
  store i32 %2462, ptr @test_count, align 4, !tbaa !5
  %2463 = call i32 @s2n_fingerprint_hash_add_str(ptr noundef nonnull %31, ptr noundef nonnull %3, i64 noundef 5) #12
  %2464 = call zeroext i1 @s2n_result_is_ok(i32 %2463)
  br i1 %2464, label %2487, label %2465

2465:                                             ; preds = %2460
  %2466 = load i32, ptr %302, align 4, !tbaa !5
  %2467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2468 = call i32 @s2n_print_stacktrace(ptr noundef %2467) #12
  %2469 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2470 = trunc nuw i8 %2469 to i1
  br i1 %2470, label %2471, label %2475

2471:                                             ; preds = %2465
  %2472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2473 = call i32 @fileno(ptr noundef %2472) #12
  %2474 = call i32 @isatty(i32 noundef %2473) #12
  %.not736 = icmp eq i32 %2474, 0
  br i1 %.not736, label %2475, label %2476

2475:                                             ; preds = %2471, %2465
  br label %2476

2476:                                             ; preds = %2471, %2475
  %.str.5.sink1509 = phi ptr [ @.str.5, %2475 ], [ @.str.2, %2471 ]
  store i32 %2466, ptr %302, align 4, !tbaa !5
  %2477 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2478 = load i32, ptr @test_count, align 4, !tbaa !5
  %2479 = load i32, ptr %248, align 4, !tbaa !5
  %2480 = call ptr @s2n_strerror(i32 noundef %2479, ptr noundef nonnull @.str.4) #12
  %2481 = load i32, ptr %248, align 4, !tbaa !5
  %2482 = call ptr @s2n_strerror_debug(i32 noundef %2481, ptr noundef nonnull @.str.4) #12
  %2483 = load i32, ptr %302, align 4, !tbaa !5
  %2484 = call ptr @strerror(i32 noundef %2483) #12
  %2485 = load i32, ptr %302, align 4, !tbaa !5
  %2486 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2477, ptr noundef nonnull %.str.5.sink1509, i32 noundef %2478, ptr noundef nonnull @.str.27, ptr noundef nonnull @.str.1, i32 noundef 253, ptr noundef %2480, ptr noundef %2482, ptr noundef %2484, i32 noundef %2485) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2487:                                             ; preds = %2460
  %2488 = load i32, ptr @test_count, align 4, !tbaa !5
  %2489 = add nsw i32 %2488, 1
  store i32 %2489, ptr @test_count, align 4, !tbaa !5
  %2490 = call i32 @s2n_fingerprint_hash_digest(ptr noundef nonnull %31, ptr noundef nonnull %33) #12
  %2491 = call zeroext i1 @s2n_result_is_ok(i32 %2490)
  br i1 %2491, label %2514, label %2492

2492:                                             ; preds = %2487
  %2493 = load i32, ptr %302, align 4, !tbaa !5
  %2494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2495 = call i32 @s2n_print_stacktrace(ptr noundef %2494) #12
  %2496 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2497 = trunc nuw i8 %2496 to i1
  br i1 %2497, label %2498, label %2502

2498:                                             ; preds = %2492
  %2499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2500 = call i32 @fileno(ptr noundef %2499) #12
  %2501 = call i32 @isatty(i32 noundef %2500) #12
  %.not737 = icmp eq i32 %2501, 0
  br i1 %.not737, label %2502, label %2503

2502:                                             ; preds = %2498, %2492
  br label %2503

2503:                                             ; preds = %2498, %2502
  %.str.5.sink1518 = phi ptr [ @.str.5, %2502 ], [ @.str.2, %2498 ]
  store i32 %2493, ptr %302, align 4, !tbaa !5
  %2504 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2505 = load i32, ptr @test_count, align 4, !tbaa !5
  %2506 = load i32, ptr %248, align 4, !tbaa !5
  %2507 = call ptr @s2n_strerror(i32 noundef %2506, ptr noundef nonnull @.str.4) #12
  %2508 = load i32, ptr %248, align 4, !tbaa !5
  %2509 = call ptr @s2n_strerror_debug(i32 noundef %2508, ptr noundef nonnull @.str.4) #12
  %2510 = load i32, ptr %302, align 4, !tbaa !5
  %2511 = call ptr @strerror(i32 noundef %2510) #12
  %2512 = load i32, ptr %302, align 4, !tbaa !5
  %2513 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2504, ptr noundef nonnull %.str.5.sink1518, i32 noundef %2505, ptr noundef nonnull @.str.40, ptr noundef nonnull @.str.1, i32 noundef 254, ptr noundef %2507, ptr noundef %2509, ptr noundef %2511, i32 noundef %2512) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2514:                                             ; preds = %2487
  %2515 = load i32, ptr %2427, align 8, !tbaa !30
  %.not738 = icmp eq i32 %2515, 0
  br i1 %.not738, label %2544, label %2516

2516:                                             ; preds = %2514
  %2517 = load i32, ptr @test_count, align 4, !tbaa !5
  %2518 = add nsw i32 %2517, 1
  store i32 %2518, ptr @test_count, align 4, !tbaa !5
  %2519 = load ptr, ptr %33, align 8, !tbaa !31
  %2520 = zext i32 %2515 to i64
  %bcmp739 = call i32 @bcmp(ptr nonnull @__const.main.test_str_digest, ptr %2519, i64 %2520)
  %2521 = icmp eq i32 %bcmp739, 0
  br i1 %2521, label %2544, label %2522

2522:                                             ; preds = %2516
  %2523 = load i32, ptr %302, align 4, !tbaa !5
  %2524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2525 = call i32 @s2n_print_stacktrace(ptr noundef %2524) #12
  %2526 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2527 = trunc nuw i8 %2526 to i1
  br i1 %2527, label %2528, label %2532

2528:                                             ; preds = %2522
  %2529 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2530 = call i32 @fileno(ptr noundef %2529) #12
  %2531 = call i32 @isatty(i32 noundef %2530) #12
  %.not740 = icmp eq i32 %2531, 0
  br i1 %.not740, label %2532, label %2533

2532:                                             ; preds = %2528, %2522
  br label %2533

2533:                                             ; preds = %2528, %2532
  %.str.5.sink1527 = phi ptr [ @.str.5, %2532 ], [ @.str.2, %2528 ]
  store i32 %2523, ptr %302, align 4, !tbaa !5
  %2534 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2535 = load i32, ptr @test_count, align 4, !tbaa !5
  %2536 = load i32, ptr %248, align 4, !tbaa !5
  %2537 = call ptr @s2n_strerror(i32 noundef %2536, ptr noundef nonnull @.str.4) #12
  %2538 = load i32, ptr %248, align 4, !tbaa !5
  %2539 = call ptr @s2n_strerror_debug(i32 noundef %2538, ptr noundef nonnull @.str.4) #12
  %2540 = load i32, ptr %302, align 4, !tbaa !5
  %2541 = call ptr @strerror(i32 noundef %2540) #12
  %2542 = load i32, ptr %302, align 4, !tbaa !5
  %2543 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2534, ptr noundef nonnull %.str.5.sink1527, i32 noundef %2535, ptr noundef nonnull @.str.41, ptr noundef nonnull @.str.1, i32 noundef 256, ptr noundef %2537, ptr noundef %2539, ptr noundef %2541, i32 noundef %2542) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2544:                                             ; preds = %2516, %2514
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %33) #12
  call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %32) #12
  %2545 = add nuw nsw i64 %.0529786, 1
  %exitcond793.not = icmp eq i64 %2545, 10
  br i1 %exitcond793.not, label %2428, label %2433, !llvm.loop !32

2546:                                             ; preds = %2428
  %2547 = load i32, ptr %302, align 4, !tbaa !5
  %2548 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2549 = call i32 @s2n_print_stacktrace(ptr noundef %2548) #12
  %2550 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2551 = trunc nuw i8 %2550 to i1
  br i1 %2551, label %2552, label %2556

2552:                                             ; preds = %2546
  %2553 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2554 = call i32 @fileno(ptr noundef %2553) #12
  %2555 = call i32 @isatty(i32 noundef %2554) #12
  %.not573 = icmp eq i32 %2555, 0
  br i1 %.not573, label %2556, label %2557

2556:                                             ; preds = %2552, %2546
  br label %2557

2557:                                             ; preds = %2552, %2556
  %.str.5.sink1536 = phi ptr [ @.str.5, %2556 ], [ @.str.2, %2552 ]
  store i32 %2547, ptr %302, align 4, !tbaa !5
  %2558 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2559 = load i32, ptr @test_count, align 4, !tbaa !5
  %2560 = load i32, ptr %248, align 4, !tbaa !5
  %2561 = call ptr @s2n_strerror(i32 noundef %2560, ptr noundef nonnull @.str.4) #12
  %2562 = load i32, ptr %248, align 4, !tbaa !5
  %2563 = call ptr @s2n_strerror_debug(i32 noundef %2562, ptr noundef nonnull @.str.4) #12
  %2564 = load i32, ptr %302, align 4, !tbaa !5
  %2565 = call ptr @strerror(i32 noundef %2564) #12
  %2566 = load i32, ptr %302, align 4, !tbaa !5
  %2567 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2558, ptr noundef nonnull %.str.5.sink1536, i32 noundef %2559, ptr noundef nonnull @.str.43, ptr noundef nonnull @.str.1, i32 noundef 258, ptr noundef %2561, ptr noundef %2563, ptr noundef %2565, i32 noundef %2566) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2568:                                             ; preds = %2428
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %31) #12
  %2569 = call i32 @s2n_hash_free(ptr noundef nonnull %30) #12
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %30) #12
  %2570 = load i32, ptr @test_count, align 4, !tbaa !5
  %2571 = add nsw i32 %2570, 1
  store i32 %2571, ptr @test_count, align 4, !tbaa !5
  %2572 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef null) #12
  br i1 %2572, label %2573, label %2595

2573:                                             ; preds = %2568
  %2574 = load i32, ptr %302, align 4, !tbaa !5
  %2575 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2576 = call i32 @s2n_print_stacktrace(ptr noundef %2575) #12
  %2577 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2578 = trunc nuw i8 %2577 to i1
  br i1 %2578, label %2579, label %2583

2579:                                             ; preds = %2573
  %2580 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2581 = call i32 @fileno(ptr noundef %2580) #12
  %2582 = call i32 @isatty(i32 noundef %2581) #12
  %.not735 = icmp eq i32 %2582, 0
  br i1 %.not735, label %2583, label %2584

2583:                                             ; preds = %2579, %2573
  br label %2584

2584:                                             ; preds = %2579, %2583
  %.str.5.sink1545 = phi ptr [ @.str.5, %2583 ], [ @.str.2, %2579 ]
  store i32 %2574, ptr %302, align 4, !tbaa !5
  %2585 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2586 = load i32, ptr @test_count, align 4, !tbaa !5
  %2587 = load i32, ptr %248, align 4, !tbaa !5
  %2588 = call ptr @s2n_strerror(i32 noundef %2587, ptr noundef nonnull @.str.4) #12
  %2589 = load i32, ptr %248, align 4, !tbaa !5
  %2590 = call ptr @s2n_strerror_debug(i32 noundef %2589, ptr noundef nonnull @.str.4) #12
  %2591 = load i32, ptr %302, align 4, !tbaa !5
  %2592 = call ptr @strerror(i32 noundef %2591) #12
  %2593 = load i32, ptr %302, align 4, !tbaa !5
  %2594 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2585, ptr noundef nonnull %.str.5.sink1545, i32 noundef %2586, ptr noundef nonnull @.str.44, ptr noundef nonnull @.str.1, i32 noundef 265, ptr noundef %2588, ptr noundef %2590, ptr noundef %2592, i32 noundef %2593) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2595:                                             ; preds = %2568
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %34) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %34, i8 0, i64 24, i1 false)
  %2596 = load i32, ptr @test_count, align 4, !tbaa !5
  %2597 = add nsw i32 %2596, 1
  store i32 %2597, ptr @test_count, align 4, !tbaa !5
  %2598 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef nonnull %34) #12
  br i1 %2598, label %2599, label %2621

2599:                                             ; preds = %2595
  %2600 = load i32, ptr %302, align 4, !tbaa !5
  %2601 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2602 = call i32 @s2n_print_stacktrace(ptr noundef %2601) #12
  %2603 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2604 = trunc nuw i8 %2603 to i1
  br i1 %2604, label %2605, label %2609

2605:                                             ; preds = %2599
  %2606 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2607 = call i32 @fileno(ptr noundef %2606) #12
  %2608 = call i32 @isatty(i32 noundef %2607) #12
  %.not734 = icmp eq i32 %2608, 0
  br i1 %.not734, label %2609, label %2610

2609:                                             ; preds = %2605, %2599
  br label %2610

2610:                                             ; preds = %2605, %2609
  %.str.5.sink1554 = phi ptr [ @.str.5, %2609 ], [ @.str.2, %2605 ]
  store i32 %2600, ptr %302, align 4, !tbaa !5
  %2611 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2612 = load i32, ptr @test_count, align 4, !tbaa !5
  %2613 = load i32, ptr %248, align 4, !tbaa !5
  %2614 = call ptr @s2n_strerror(i32 noundef %2613, ptr noundef nonnull @.str.4) #12
  %2615 = load i32, ptr %248, align 4, !tbaa !5
  %2616 = call ptr @s2n_strerror_debug(i32 noundef %2615, ptr noundef nonnull @.str.4) #12
  %2617 = load i32, ptr %302, align 4, !tbaa !5
  %2618 = call ptr @strerror(i32 noundef %2617) #12
  %2619 = load i32, ptr %302, align 4, !tbaa !5
  %2620 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2611, ptr noundef nonnull %.str.5.sink1554, i32 noundef %2612, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 268, ptr noundef %2614, ptr noundef %2616, ptr noundef %2618, i32 noundef %2619) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2621:                                             ; preds = %2595
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %35) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %35, i8 0, i64 40, i1 false)
  %2622 = getelementptr inbounds i8, ptr %34, i64 8
  store ptr %35, ptr %2622, align 8, !tbaa !17
  %2623 = load i32, ptr @test_count, align 4, !tbaa !5
  %2624 = add nsw i32 %2623, 1
  store i32 %2624, ptr @test_count, align 4, !tbaa !5
  %2625 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef nonnull %34) #12
  br i1 %2625, label %2626, label %2648

2626:                                             ; preds = %2621
  %2627 = load i32, ptr %302, align 4, !tbaa !5
  %2628 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2629 = call i32 @s2n_print_stacktrace(ptr noundef %2628) #12
  %2630 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2631 = trunc nuw i8 %2630 to i1
  br i1 %2631, label %2632, label %2636

2632:                                             ; preds = %2626
  %2633 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2634 = call i32 @fileno(ptr noundef %2633) #12
  %2635 = call i32 @isatty(i32 noundef %2634) #12
  %.not733 = icmp eq i32 %2635, 0
  br i1 %.not733, label %2636, label %2637

2636:                                             ; preds = %2632, %2626
  br label %2637

2637:                                             ; preds = %2632, %2636
  %.str.5.sink1563 = phi ptr [ @.str.5, %2636 ], [ @.str.2, %2632 ]
  store i32 %2627, ptr %302, align 4, !tbaa !5
  %2638 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2639 = load i32, ptr @test_count, align 4, !tbaa !5
  %2640 = load i32, ptr %248, align 4, !tbaa !5
  %2641 = call ptr @s2n_strerror(i32 noundef %2640, ptr noundef nonnull @.str.4) #12
  %2642 = load i32, ptr %248, align 4, !tbaa !5
  %2643 = call ptr @s2n_strerror_debug(i32 noundef %2642, ptr noundef nonnull @.str.4) #12
  %2644 = load i32, ptr %302, align 4, !tbaa !5
  %2645 = call ptr @strerror(i32 noundef %2644) #12
  %2646 = load i32, ptr %302, align 4, !tbaa !5
  %2647 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2638, ptr noundef nonnull %.str.5.sink1563, i32 noundef %2639, ptr noundef nonnull @.str.45, ptr noundef nonnull @.str.1, i32 noundef 272, ptr noundef %2641, ptr noundef %2643, ptr noundef %2645, i32 noundef %2646) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2648:                                             ; preds = %2621
  call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %36) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %36, i8 0, i64 56, i1 false)
  %2649 = getelementptr inbounds i8, ptr %34, i64 16
  store ptr %36, ptr %2649, align 8, !tbaa !18
  %2650 = load i32, ptr @test_count, align 4, !tbaa !5
  %2651 = add nsw i32 %2650, 1
  store i32 %2651, ptr @test_count, align 4, !tbaa !5
  %2652 = call zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef nonnull %34) #12
  br i1 %2652, label %2675, label %2653

2653:                                             ; preds = %2648
  %2654 = load i32, ptr %302, align 4, !tbaa !5
  %2655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2656 = call i32 @s2n_print_stacktrace(ptr noundef %2655) #12
  %2657 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2658 = trunc nuw i8 %2657 to i1
  br i1 %2658, label %2659, label %2663

2659:                                             ; preds = %2653
  %2660 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2661 = call i32 @fileno(ptr noundef %2660) #12
  %2662 = call i32 @isatty(i32 noundef %2661) #12
  %.not574 = icmp eq i32 %2662, 0
  br i1 %.not574, label %2663, label %2664

2663:                                             ; preds = %2659, %2653
  br label %2664

2664:                                             ; preds = %2659, %2663
  %.str.5.sink1572 = phi ptr [ @.str.5, %2663 ], [ @.str.2, %2659 ]
  store i32 %2654, ptr %302, align 4, !tbaa !5
  %2665 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2666 = load i32, ptr @test_count, align 4, !tbaa !5
  %2667 = load i32, ptr %248, align 4, !tbaa !5
  %2668 = call ptr @s2n_strerror(i32 noundef %2667, ptr noundef nonnull @.str.4) #12
  %2669 = load i32, ptr %248, align 4, !tbaa !5
  %2670 = call ptr @s2n_strerror_debug(i32 noundef %2669, ptr noundef nonnull @.str.4) #12
  %2671 = load i32, ptr %302, align 4, !tbaa !5
  %2672 = call ptr @strerror(i32 noundef %2671) #12
  %2673 = load i32, ptr %302, align 4, !tbaa !5
  %2674 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2665, ptr noundef nonnull %.str.5.sink1572, i32 noundef %2666, ptr noundef nonnull @.str.46, ptr noundef nonnull @.str.1, i32 noundef 276, ptr noundef %2668, ptr noundef %2670, ptr noundef %2672, i32 noundef %2673) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2675:                                             ; preds = %2648
  call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %36) #12
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %35) #12
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %34) #12
  %2676 = load i32, ptr @test_count, align 4, !tbaa !5
  %2677 = add nsw i32 %2676, 1
  store i32 %2677, ptr @test_count, align 4, !tbaa !5
  %2678 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext 2570) #12
  br i1 %2678, label %2701, label %2679

2679:                                             ; preds = %2675
  %2680 = load i32, ptr %302, align 4, !tbaa !5
  %2681 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2682 = call i32 @s2n_print_stacktrace(ptr noundef %2681) #12
  %2683 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2684 = trunc nuw i8 %2683 to i1
  br i1 %2684, label %2685, label %2689

2685:                                             ; preds = %2679
  %2686 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2687 = call i32 @fileno(ptr noundef %2686) #12
  %2688 = call i32 @isatty(i32 noundef %2687) #12
  %.not575 = icmp eq i32 %2688, 0
  br i1 %.not575, label %2689, label %2690

2689:                                             ; preds = %2685, %2679
  br label %2690

2690:                                             ; preds = %2685, %2689
  %.str.5.sink1581 = phi ptr [ @.str.5, %2689 ], [ @.str.2, %2685 ]
  store i32 %2680, ptr %302, align 4, !tbaa !5
  %2691 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2692 = load i32, ptr @test_count, align 4, !tbaa !5
  %2693 = load i32, ptr %248, align 4, !tbaa !5
  %2694 = call ptr @s2n_strerror(i32 noundef %2693, ptr noundef nonnull @.str.4) #12
  %2695 = load i32, ptr %248, align 4, !tbaa !5
  %2696 = call ptr @s2n_strerror_debug(i32 noundef %2695, ptr noundef nonnull @.str.4) #12
  %2697 = load i32, ptr %302, align 4, !tbaa !5
  %2698 = call ptr @strerror(i32 noundef %2697) #12
  %2699 = load i32, ptr %302, align 4, !tbaa !5
  %2700 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2691, ptr noundef nonnull %.str.5.sink1581, i32 noundef %2692, ptr noundef nonnull @.str.47, ptr noundef nonnull @.str.1, i32 noundef 281, ptr noundef %2694, ptr noundef %2696, ptr noundef %2698, i32 noundef %2699) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2701:                                             ; preds = %2675
  %2702 = load i32, ptr @test_count, align 4, !tbaa !5
  %2703 = add nsw i32 %2702, 1
  store i32 %2703, ptr @test_count, align 4, !tbaa !5
  %2704 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext -1286) #12
  br i1 %2704, label %2727, label %2705

2705:                                             ; preds = %2701
  %2706 = load i32, ptr %302, align 4, !tbaa !5
  %2707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2708 = call i32 @s2n_print_stacktrace(ptr noundef %2707) #12
  %2709 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2710 = trunc nuw i8 %2709 to i1
  br i1 %2710, label %2711, label %2715

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

2715:                                             ; preds = %2711, %2705
  br label %2716

2716:                                             ; preds = %2711, %2715
  %.str.5.sink1590 = phi ptr [ @.str.5, %2715 ], [ @.str.2, %2711 ]
  store i32 %2706, ptr %302, align 4, !tbaa !5
  %2717 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2718 = load i32, ptr @test_count, align 4, !tbaa !5
  %2719 = load i32, ptr %248, align 4, !tbaa !5
  %2720 = call ptr @s2n_strerror(i32 noundef %2719, ptr noundef nonnull @.str.4) #12
  %2721 = load i32, ptr %248, align 4, !tbaa !5
  %2722 = call ptr @s2n_strerror_debug(i32 noundef %2721, ptr noundef nonnull @.str.4) #12
  %2723 = load i32, ptr %302, align 4, !tbaa !5
  %2724 = call ptr @strerror(i32 noundef %2723) #12
  %2725 = load i32, ptr %302, align 4, !tbaa !5
  %2726 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2717, ptr noundef nonnull %.str.5.sink1590, i32 noundef %2718, ptr noundef nonnull @.str.48, ptr noundef nonnull @.str.1, i32 noundef 282, ptr noundef %2720, ptr noundef %2722, ptr noundef %2724, i32 noundef %2725) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2727:                                             ; preds = %2701
  %2728 = load i32, ptr @test_count, align 4, !tbaa !5
  %2729 = add nsw i32 %2728, 1
  store i32 %2729, ptr @test_count, align 4, !tbaa !5
  %2730 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext 0) #12
  br i1 %2730, label %2731, label %2753

2731:                                             ; preds = %2727
  %2732 = load i32, ptr %302, align 4, !tbaa !5
  %2733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2734 = call i32 @s2n_print_stacktrace(ptr noundef %2733) #12
  %2735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2736 = trunc nuw i8 %2735 to i1
  br i1 %2736, label %2737, label %2741

2737:                                             ; preds = %2731
  %2738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2739 = call i32 @fileno(ptr noundef %2738) #12
  %2740 = call i32 @isatty(i32 noundef %2739) #12
  %.not732 = icmp eq i32 %2740, 0
  br i1 %.not732, label %2741, label %2742

2741:                                             ; preds = %2737, %2731
  br label %2742

2742:                                             ; preds = %2737, %2741
  %.str.5.sink1599 = phi ptr [ @.str.5, %2741 ], [ @.str.2, %2737 ]
  store i32 %2732, ptr %302, align 4, !tbaa !5
  %2743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2744 = load i32, ptr @test_count, align 4, !tbaa !5
  %2745 = load i32, ptr %248, align 4, !tbaa !5
  %2746 = call ptr @s2n_strerror(i32 noundef %2745, ptr noundef nonnull @.str.4) #12
  %2747 = load i32, ptr %248, align 4, !tbaa !5
  %2748 = call ptr @s2n_strerror_debug(i32 noundef %2747, ptr noundef nonnull @.str.4) #12
  %2749 = load i32, ptr %302, align 4, !tbaa !5
  %2750 = call ptr @strerror(i32 noundef %2749) #12
  %2751 = load i32, ptr %302, align 4, !tbaa !5
  %2752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2743, ptr noundef nonnull %.str.5.sink1599, i32 noundef %2744, ptr noundef nonnull @.str.49, ptr noundef nonnull @.str.1, i32 noundef 283, ptr noundef %2746, ptr noundef %2748, ptr noundef %2750, i32 noundef %2751) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2753:                                             ; preds = %2727
  %2754 = load i32, ptr @test_count, align 4, !tbaa !5
  %2755 = add nsw i32 %2754, 1
  store i32 %2755, ptr @test_count, align 4, !tbaa !5
  %2756 = call zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext 1) #12
  br i1 %2756, label %2757, label %2779

2757:                                             ; preds = %2753
  %2758 = load i32, ptr %302, align 4, !tbaa !5
  %2759 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2760 = call i32 @s2n_print_stacktrace(ptr noundef %2759) #12
  %2761 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2762 = trunc nuw i8 %2761 to i1
  br i1 %2762, label %2763, label %2767

2763:                                             ; preds = %2757
  %2764 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2765 = call i32 @fileno(ptr noundef %2764) #12
  %2766 = call i32 @isatty(i32 noundef %2765) #12
  %.not731 = icmp eq i32 %2766, 0
  br i1 %.not731, label %2767, label %2768

2767:                                             ; preds = %2763, %2757
  br label %2768

2768:                                             ; preds = %2763, %2767
  %.str.5.sink1608 = phi ptr [ @.str.5, %2767 ], [ @.str.2, %2763 ]
  store i32 %2758, ptr %302, align 4, !tbaa !5
  %2769 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2770 = load i32, ptr @test_count, align 4, !tbaa !5
  %2771 = load i32, ptr %248, align 4, !tbaa !5
  %2772 = call ptr @s2n_strerror(i32 noundef %2771, ptr noundef nonnull @.str.4) #12
  %2773 = load i32, ptr %248, align 4, !tbaa !5
  %2774 = call ptr @s2n_strerror_debug(i32 noundef %2773, ptr noundef nonnull @.str.4) #12
  %2775 = load i32, ptr %302, align 4, !tbaa !5
  %2776 = call ptr @strerror(i32 noundef %2775) #12
  %2777 = load i32, ptr %302, align 4, !tbaa !5
  %2778 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2769, ptr noundef nonnull %.str.5.sink1608, i32 noundef %2770, ptr noundef nonnull @.str.50, ptr noundef nonnull @.str.1, i32 noundef 284, ptr noundef %2772, ptr noundef %2774, ptr noundef %2776, i32 noundef %2777) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2779:                                             ; preds = %2753
  %2780 = load i32, ptr @test_count, align 4, !tbaa !5
  %2781 = add nsw i32 %2780, 1
  store i32 %2781, ptr @test_count, align 4, !tbaa !5
  %2782 = call ptr @s2n_fingerprint_new(i32 noundef -1) #12
  %2783 = icmp eq ptr %2782, null
  br i1 %2783, label %2806, label %2784

2784:                                             ; preds = %2779
  %2785 = load i32, ptr %302, align 4, !tbaa !5
  %2786 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2787 = call i32 @s2n_print_stacktrace(ptr noundef %2786) #12
  %2788 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2789 = trunc nuw i8 %2788 to i1
  br i1 %2789, label %2790, label %2794

2790:                                             ; preds = %2784
  %2791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2792 = call i32 @fileno(ptr noundef %2791) #12
  %2793 = call i32 @isatty(i32 noundef %2792) #12
  %.not577 = icmp eq i32 %2793, 0
  br i1 %.not577, label %2794, label %2795

2794:                                             ; preds = %2790, %2784
  br label %2795

2795:                                             ; preds = %2790, %2794
  %.str.5.sink1617 = phi ptr [ @.str.5, %2794 ], [ @.str.2, %2790 ]
  store i32 %2785, ptr %302, align 4, !tbaa !5
  %2796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2797 = load i32, ptr @test_count, align 4, !tbaa !5
  %2798 = load i32, ptr %248, align 4, !tbaa !5
  %2799 = call ptr @s2n_strerror(i32 noundef %2798, ptr noundef nonnull @.str.4) #12
  %2800 = load i32, ptr %248, align 4, !tbaa !5
  %2801 = call ptr @s2n_strerror_debug(i32 noundef %2800, ptr noundef nonnull @.str.4) #12
  %2802 = load i32, ptr %302, align 4, !tbaa !5
  %2803 = call ptr @strerror(i32 noundef %2802) #12
  %2804 = load i32, ptr %302, align 4, !tbaa !5
  %2805 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2796, ptr noundef nonnull %.str.5.sink1617, i32 noundef %2797, ptr noundef nonnull @.str.51, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2799, ptr noundef %2801, ptr noundef %2803, i32 noundef %2804) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2806:                                             ; preds = %2779
  %2807 = load i32, ptr @test_count, align 4, !tbaa !5
  %2808 = add nsw i32 %2807, 1
  store i32 %2808, ptr @test_count, align 4, !tbaa !5
  %2809 = load i32, ptr %248, align 4, !tbaa !5
  %2810 = icmp eq i32 %2809, 469762089
  br i1 %2810, label %2833, label %2811

2811:                                             ; preds = %2806
  %2812 = load i32, ptr %302, align 4, !tbaa !5
  %2813 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2814 = call i32 @s2n_print_stacktrace(ptr noundef %2813) #12
  %2815 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2816 = trunc nuw i8 %2815 to i1
  br i1 %2816, label %2817, label %2821

2817:                                             ; preds = %2811
  %2818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2819 = call i32 @fileno(ptr noundef %2818) #12
  %2820 = call i32 @isatty(i32 noundef %2819) #12
  %.not578 = icmp eq i32 %2820, 0
  br i1 %.not578, label %2821, label %2822

2821:                                             ; preds = %2817, %2811
  br label %2822

2822:                                             ; preds = %2817, %2821
  %.str.5.sink1626 = phi ptr [ @.str.5, %2821 ], [ @.str.2, %2817 ]
  store i32 %2812, ptr %302, align 4, !tbaa !5
  %2823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2824 = load i32, ptr @test_count, align 4, !tbaa !5
  %2825 = load i32, ptr %248, align 4, !tbaa !5
  %2826 = call ptr @s2n_strerror(i32 noundef %2825, ptr noundef nonnull @.str.4) #12
  %2827 = load i32, ptr %248, align 4, !tbaa !5
  %2828 = call ptr @s2n_strerror_debug(i32 noundef %2827, ptr noundef nonnull @.str.4) #12
  %2829 = load i32, ptr %302, align 4, !tbaa !5
  %2830 = call ptr @strerror(i32 noundef %2829) #12
  %2831 = load i32, ptr %302, align 4, !tbaa !5
  %2832 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2823, ptr noundef nonnull %.str.5.sink1626, i32 noundef %2824, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2826, ptr noundef %2828, ptr noundef %2830, i32 noundef %2831) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2833:                                             ; preds = %2806
  %2834 = add nsw i32 %2807, 2
  store i32 %2834, ptr @test_count, align 4, !tbaa !5
  %2835 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %2836 = icmp eq ptr %2835, null
  br i1 %2836, label %2837, label %2859

2837:                                             ; preds = %2833
  %2838 = load i32, ptr %302, align 4, !tbaa !5
  %2839 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2840 = call i32 @s2n_print_stacktrace(ptr noundef %2839) #12
  %2841 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2842 = trunc nuw i8 %2841 to i1
  br i1 %2842, label %2843, label %2847

2843:                                             ; preds = %2837
  %2844 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2845 = call i32 @fileno(ptr noundef %2844) #12
  %2846 = call i32 @isatty(i32 noundef %2845) #12
  %.not730 = icmp eq i32 %2846, 0
  br i1 %.not730, label %2847, label %2848

2847:                                             ; preds = %2843, %2837
  br label %2848

2848:                                             ; preds = %2843, %2847
  %.str.5.sink1635 = phi ptr [ @.str.5, %2847 ], [ @.str.2, %2843 ]
  store i32 %2838, ptr %302, align 4, !tbaa !5
  %2849 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2850 = load i32, ptr @test_count, align 4, !tbaa !5
  %2851 = load i32, ptr %248, align 4, !tbaa !5
  %2852 = call ptr @s2n_strerror(i32 noundef %2851, ptr noundef nonnull @.str.4) #12
  %2853 = load i32, ptr %248, align 4, !tbaa !5
  %2854 = call ptr @s2n_strerror_debug(i32 noundef %2853, ptr noundef nonnull @.str.4) #12
  %2855 = load i32, ptr %302, align 4, !tbaa !5
  %2856 = call ptr @strerror(i32 noundef %2855) #12
  %2857 = load i32, ptr %302, align 4, !tbaa !5
  %2858 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2849, ptr noundef nonnull %.str.5.sink1635, i32 noundef %2850, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 290, ptr noundef %2852, ptr noundef %2854, ptr noundef %2856, i32 noundef %2857) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2859:                                             ; preds = %2833
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %2860 = load i32, ptr @test_count, align 4, !tbaa !5
  %2861 = add nsw i32 %2860, 1
  store i32 %2861, ptr @test_count, align 4, !tbaa !5
  %2862 = call i32 @s2n_fingerprint_free(ptr noundef null) #12
  %2863 = icmp eq i32 %2862, -1
  br i1 %2863, label %2864, label %2886

2864:                                             ; preds = %2859
  %2865 = load i32, ptr %302, align 4, !tbaa !5
  %2866 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2867 = call i32 @s2n_print_stacktrace(ptr noundef %2866) #12
  %2868 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2869 = trunc nuw i8 %2868 to i1
  br i1 %2869, label %2870, label %2874

2870:                                             ; preds = %2864
  %2871 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2872 = call i32 @fileno(ptr noundef %2871) #12
  %2873 = call i32 @isatty(i32 noundef %2872) #12
  %.not729 = icmp eq i32 %2873, 0
  br i1 %.not729, label %2874, label %2875

2874:                                             ; preds = %2870, %2864
  br label %2875

2875:                                             ; preds = %2870, %2874
  %.str.5.sink1644 = phi ptr [ @.str.5, %2874 ], [ @.str.2, %2870 ]
  store i32 %2865, ptr %302, align 4, !tbaa !5
  %2876 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2877 = load i32, ptr @test_count, align 4, !tbaa !5
  %2878 = load i32, ptr %248, align 4, !tbaa !5
  %2879 = call ptr @s2n_strerror(i32 noundef %2878, ptr noundef nonnull @.str.4) #12
  %2880 = load i32, ptr %248, align 4, !tbaa !5
  %2881 = call ptr @s2n_strerror_debug(i32 noundef %2880, ptr noundef nonnull @.str.4) #12
  %2882 = load i32, ptr %302, align 4, !tbaa !5
  %2883 = call ptr @strerror(i32 noundef %2882) #12
  %2884 = load i32, ptr %302, align 4, !tbaa !5
  %2885 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2876, ptr noundef nonnull %.str.5.sink1644, i32 noundef %2877, ptr noundef nonnull @.str.53, ptr noundef nonnull @.str.1, i32 noundef 293, ptr noundef %2879, ptr noundef %2881, ptr noundef %2883, i32 noundef %2884) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2886:                                             ; preds = %2859
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) #12
  %2887 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %2887, ptr %37, align 8, !tbaa !9
  %2888 = load i32, ptr @test_count, align 4, !tbaa !5
  %2889 = add nsw i32 %2888, 1
  store i32 %2889, ptr @test_count, align 4, !tbaa !5
  %2890 = icmp eq ptr %2887, null
  br i1 %2890, label %2891, label %2913

2891:                                             ; preds = %2886
  %2892 = load i32, ptr %302, align 4, !tbaa !5
  %2893 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2894 = call i32 @s2n_print_stacktrace(ptr noundef %2893) #12
  %2895 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2896 = trunc nuw i8 %2895 to i1
  br i1 %2896, label %2897, label %2901

2897:                                             ; preds = %2891
  %2898 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2899 = call i32 @fileno(ptr noundef %2898) #12
  %2900 = call i32 @isatty(i32 noundef %2899) #12
  %.not728 = icmp eq i32 %2900, 0
  br i1 %.not728, label %2901, label %2902

2901:                                             ; preds = %2897, %2891
  br label %2902

2902:                                             ; preds = %2897, %2901
  %.str.5.sink1653 = phi ptr [ @.str.5, %2901 ], [ @.str.2, %2897 ]
  store i32 %2892, ptr %302, align 4, !tbaa !5
  %2903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2904 = load i32, ptr @test_count, align 4, !tbaa !5
  %2905 = load i32, ptr %248, align 4, !tbaa !5
  %2906 = call ptr @s2n_strerror(i32 noundef %2905, ptr noundef nonnull @.str.4) #12
  %2907 = load i32, ptr %248, align 4, !tbaa !5
  %2908 = call ptr @s2n_strerror_debug(i32 noundef %2907, ptr noundef nonnull @.str.4) #12
  %2909 = load i32, ptr %302, align 4, !tbaa !5
  %2910 = call ptr @strerror(i32 noundef %2909) #12
  %2911 = load i32, ptr %302, align 4, !tbaa !5
  %2912 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2903, ptr noundef nonnull %.str.5.sink1653, i32 noundef %2904, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 297, ptr noundef %2906, ptr noundef %2908, ptr noundef %2910, i32 noundef %2911) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2913:                                             ; preds = %2886
  %2914 = add nsw i32 %2888, 2
  store i32 %2914, ptr @test_count, align 4, !tbaa !5
  %2915 = getelementptr inbounds i8, ptr %2887, i64 8
  %2916 = load ptr, ptr %2915, align 8, !tbaa !33
  %2917 = icmp eq ptr %2916, @ja3_fingerprint
  br i1 %2917, label %2940, label %2918

2918:                                             ; preds = %2913
  %2919 = load i32, ptr %302, align 4, !tbaa !5
  %2920 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2921 = call i32 @s2n_print_stacktrace(ptr noundef %2920) #12
  %2922 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2923 = trunc nuw i8 %2922 to i1
  br i1 %2923, label %2924, label %2928

2924:                                             ; preds = %2918
  %2925 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2926 = call i32 @fileno(ptr noundef %2925) #12
  %2927 = call i32 @isatty(i32 noundef %2926) #12
  %.not579 = icmp eq i32 %2927, 0
  br i1 %.not579, label %2928, label %2929

2928:                                             ; preds = %2924, %2918
  br label %2929

2929:                                             ; preds = %2924, %2928
  %.str.5.sink1662 = phi ptr [ @.str.5, %2928 ], [ @.str.2, %2924 ]
  store i32 %2919, ptr %302, align 4, !tbaa !5
  %2930 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2931 = load i32, ptr @test_count, align 4, !tbaa !5
  %2932 = load i32, ptr %248, align 4, !tbaa !5
  %2933 = call ptr @s2n_strerror(i32 noundef %2932, ptr noundef nonnull @.str.4) #12
  %2934 = load i32, ptr %248, align 4, !tbaa !5
  %2935 = call ptr @s2n_strerror_debug(i32 noundef %2934, ptr noundef nonnull @.str.4) #12
  %2936 = load i32, ptr %302, align 4, !tbaa !5
  %2937 = call ptr @strerror(i32 noundef %2936) #12
  %2938 = load i32, ptr %302, align 4, !tbaa !5
  %2939 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2930, ptr noundef nonnull %.str.5.sink1662, i32 noundef %2931, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.1, i32 noundef 298, ptr noundef %2933, ptr noundef %2935, ptr noundef %2937, i32 noundef %2938) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2940:                                             ; preds = %2913
  %2941 = add nsw i32 %2888, 3
  store i32 %2941, ptr @test_count, align 4, !tbaa !5
  %2942 = getelementptr inbounds i8, ptr %2887, i64 24
  %2943 = call i32 @s2n_hash_is_ready_for_input(ptr noundef nonnull %2942) #12
  %.not580 = icmp eq i32 %2943, 0
  br i1 %.not580, label %2944, label %2966

2944:                                             ; preds = %2940
  %2945 = load i32, ptr %302, align 4, !tbaa !5
  %2946 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2947 = call i32 @s2n_print_stacktrace(ptr noundef %2946) #12
  %2948 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2949 = trunc nuw i8 %2948 to i1
  br i1 %2949, label %2950, label %2954

2950:                                             ; preds = %2944
  %2951 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2952 = call i32 @fileno(ptr noundef %2951) #12
  %2953 = call i32 @isatty(i32 noundef %2952) #12
  %.not581 = icmp eq i32 %2953, 0
  br i1 %.not581, label %2954, label %2955

2954:                                             ; preds = %2950, %2944
  br label %2955

2955:                                             ; preds = %2950, %2954
  %.str.5.sink1671 = phi ptr [ @.str.5, %2954 ], [ @.str.2, %2950 ]
  store i32 %2945, ptr %302, align 4, !tbaa !5
  %2956 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2957 = load i32, ptr @test_count, align 4, !tbaa !5
  %2958 = load i32, ptr %248, align 4, !tbaa !5
  %2959 = call ptr @s2n_strerror(i32 noundef %2958, ptr noundef nonnull @.str.4) #12
  %2960 = load i32, ptr %248, align 4, !tbaa !5
  %2961 = call ptr @s2n_strerror_debug(i32 noundef %2960, ptr noundef nonnull @.str.4) #12
  %2962 = load i32, ptr %302, align 4, !tbaa !5
  %2963 = call ptr @strerror(i32 noundef %2962) #12
  %2964 = load i32, ptr %302, align 4, !tbaa !5
  %2965 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2956, ptr noundef nonnull %.str.5.sink1671, i32 noundef %2957, ptr noundef nonnull @.str.56, ptr noundef nonnull @.str.1, i32 noundef 299, ptr noundef %2959, ptr noundef %2961, ptr noundef %2963, i32 noundef %2964) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2966:                                             ; preds = %2940
  %2967 = load i32, ptr @test_count, align 4, !tbaa !5
  %2968 = add nsw i32 %2967, 1
  store i32 %2968, ptr @test_count, align 4, !tbaa !5
  %2969 = load ptr, ptr %37, align 8, !tbaa !9
  %2970 = getelementptr inbounds i8, ptr %2969, i64 16
  %2971 = load ptr, ptr %2970, align 8, !tbaa !35
  %2972 = icmp eq ptr %2971, null
  br i1 %2972, label %2995, label %2973

2973:                                             ; preds = %2966
  %2974 = load i32, ptr %302, align 4, !tbaa !5
  %2975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2976 = call i32 @s2n_print_stacktrace(ptr noundef %2975) #12
  %2977 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %2978 = trunc nuw i8 %2977 to i1
  br i1 %2978, label %2979, label %2983

2979:                                             ; preds = %2973
  %2980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2981 = call i32 @fileno(ptr noundef %2980) #12
  %2982 = call i32 @isatty(i32 noundef %2981) #12
  %.not582 = icmp eq i32 %2982, 0
  br i1 %.not582, label %2983, label %2984

2983:                                             ; preds = %2979, %2973
  br label %2984

2984:                                             ; preds = %2979, %2983
  %.str.5.sink1680 = phi ptr [ @.str.5, %2983 ], [ @.str.2, %2979 ]
  store i32 %2974, ptr %302, align 4, !tbaa !5
  %2985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %2986 = load i32, ptr @test_count, align 4, !tbaa !5
  %2987 = load i32, ptr %248, align 4, !tbaa !5
  %2988 = call ptr @s2n_strerror(i32 noundef %2987, ptr noundef nonnull @.str.4) #12
  %2989 = load i32, ptr %248, align 4, !tbaa !5
  %2990 = call ptr @s2n_strerror_debug(i32 noundef %2989, ptr noundef nonnull @.str.4) #12
  %2991 = load i32, ptr %302, align 4, !tbaa !5
  %2992 = call ptr @strerror(i32 noundef %2991) #12
  %2993 = load i32, ptr %302, align 4, !tbaa !5
  %2994 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %2985, ptr noundef nonnull %.str.5.sink1680, i32 noundef %2986, ptr noundef nonnull @.str.57, ptr noundef nonnull @.str.1, i32 noundef 300, ptr noundef %2988, ptr noundef %2990, ptr noundef %2992, i32 noundef %2993) #14
  call void @exit(i32 noundef 1) #15
  unreachable

2995:                                             ; preds = %2966
  %2996 = add nsw i32 %2967, 2
  store i32 %2996, ptr @test_count, align 4, !tbaa !5
  %2997 = load i64, ptr %2969, align 8, !tbaa !36
  %2998 = icmp eq i64 %2997, 0
  br i1 %2998, label %3021, label %2999

2999:                                             ; preds = %2995
  %3000 = load i32, ptr %302, align 4, !tbaa !5
  %3001 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3002 = call i32 @s2n_print_stacktrace(ptr noundef %3001) #12
  %3003 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3004 = trunc nuw i8 %3003 to i1
  br i1 %3004, label %3005, label %3009

3005:                                             ; preds = %2999
  %3006 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3007 = call i32 @fileno(ptr noundef %3006) #12
  %3008 = call i32 @isatty(i32 noundef %3007) #12
  %.not583 = icmp eq i32 %3008, 0
  br i1 %.not583, label %3009, label %3010

3009:                                             ; preds = %3005, %2999
  br label %3010

3010:                                             ; preds = %3005, %3009
  %.str.5.sink1689 = phi ptr [ @.str.5, %3009 ], [ @.str.2, %3005 ]
  store i32 %3000, ptr %302, align 4, !tbaa !5
  %3011 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3012 = load i32, ptr @test_count, align 4, !tbaa !5
  %3013 = load i32, ptr %248, align 4, !tbaa !5
  %3014 = call ptr @s2n_strerror(i32 noundef %3013, ptr noundef nonnull @.str.4) #12
  %3015 = load i32, ptr %248, align 4, !tbaa !5
  %3016 = call ptr @s2n_strerror_debug(i32 noundef %3015, ptr noundef nonnull @.str.4) #12
  %3017 = load i32, ptr %302, align 4, !tbaa !5
  %3018 = call ptr @strerror(i32 noundef %3017) #12
  %3019 = load i32, ptr %302, align 4, !tbaa !5
  %3020 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3011, ptr noundef nonnull %.str.5.sink1689, i32 noundef %3012, ptr noundef nonnull @.str.58, ptr noundef nonnull @.str.1, i32 noundef 301, ptr noundef %3014, ptr noundef %3016, ptr noundef %3018, i32 noundef %3019) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3021:                                             ; preds = %2995
  %3022 = add nsw i32 %2967, 3
  store i32 %3022, ptr @test_count, align 4, !tbaa !5
  %3023 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %37) #12
  %3024 = icmp eq i32 %3023, -1
  br i1 %3024, label %3025, label %3047

3025:                                             ; preds = %3021
  %3026 = load i32, ptr %302, align 4, !tbaa !5
  %3027 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3028 = call i32 @s2n_print_stacktrace(ptr noundef %3027) #12
  %3029 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3030 = trunc nuw i8 %3029 to i1
  br i1 %3030, label %3031, label %3035

3031:                                             ; preds = %3025
  %3032 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3033 = call i32 @fileno(ptr noundef %3032) #12
  %3034 = call i32 @isatty(i32 noundef %3033) #12
  %.not727 = icmp eq i32 %3034, 0
  br i1 %.not727, label %3035, label %3036

3035:                                             ; preds = %3031, %3025
  br label %3036

3036:                                             ; preds = %3031, %3035
  %.str.5.sink1698 = phi ptr [ @.str.5, %3035 ], [ @.str.2, %3031 ]
  store i32 %3026, ptr %302, align 4, !tbaa !5
  %3037 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3038 = load i32, ptr @test_count, align 4, !tbaa !5
  %3039 = load i32, ptr %248, align 4, !tbaa !5
  %3040 = call ptr @s2n_strerror(i32 noundef %3039, ptr noundef nonnull @.str.4) #12
  %3041 = load i32, ptr %248, align 4, !tbaa !5
  %3042 = call ptr @s2n_strerror_debug(i32 noundef %3041, ptr noundef nonnull @.str.4) #12
  %3043 = load i32, ptr %302, align 4, !tbaa !5
  %3044 = call ptr @strerror(i32 noundef %3043) #12
  %3045 = load i32, ptr %302, align 4, !tbaa !5
  %3046 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3037, ptr noundef nonnull %.str.5.sink1698, i32 noundef %3038, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 304, ptr noundef %3040, ptr noundef %3042, ptr noundef %3044, i32 noundef %3045) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3047:                                             ; preds = %3021
  %3048 = load i32, ptr @test_count, align 4, !tbaa !5
  %3049 = add nsw i32 %3048, 1
  store i32 %3049, ptr @test_count, align 4, !tbaa !5
  %3050 = load ptr, ptr %37, align 8, !tbaa !9
  %3051 = icmp eq ptr %3050, null
  br i1 %3051, label %3074, label %3052

3052:                                             ; preds = %3047
  %3053 = load i32, ptr %302, align 4, !tbaa !5
  %3054 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3055 = call i32 @s2n_print_stacktrace(ptr noundef %3054) #12
  %3056 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3057 = trunc nuw i8 %3056 to i1
  br i1 %3057, label %3058, label %3062

3058:                                             ; preds = %3052
  %3059 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3060 = call i32 @fileno(ptr noundef %3059) #12
  %3061 = call i32 @isatty(i32 noundef %3060) #12
  %.not584 = icmp eq i32 %3061, 0
  br i1 %.not584, label %3062, label %3063

3062:                                             ; preds = %3058, %3052
  br label %3063

3063:                                             ; preds = %3058, %3062
  %.str.5.sink1707 = phi ptr [ @.str.5, %3062 ], [ @.str.2, %3058 ]
  store i32 %3053, ptr %302, align 4, !tbaa !5
  %3064 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3065 = load i32, ptr @test_count, align 4, !tbaa !5
  %3066 = load i32, ptr %248, align 4, !tbaa !5
  %3067 = call ptr @s2n_strerror(i32 noundef %3066, ptr noundef nonnull @.str.4) #12
  %3068 = load i32, ptr %248, align 4, !tbaa !5
  %3069 = call ptr @s2n_strerror_debug(i32 noundef %3068, ptr noundef nonnull @.str.4) #12
  %3070 = load i32, ptr %302, align 4, !tbaa !5
  %3071 = call ptr @strerror(i32 noundef %3070) #12
  %3072 = load i32, ptr %302, align 4, !tbaa !5
  %3073 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3064, ptr noundef nonnull %.str.5.sink1707, i32 noundef %3065, ptr noundef nonnull @.str.60, ptr noundef nonnull @.str.1, i32 noundef 305, ptr noundef %3067, ptr noundef %3069, ptr noundef %3071, i32 noundef %3072) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3074:                                             ; preds = %3047
  %3075 = add nsw i32 %3048, 2
  store i32 %3075, ptr @test_count, align 4, !tbaa !5
  %3076 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %37) #12
  %3077 = icmp eq i32 %3076, -1
  br i1 %3077, label %3078, label %3100

3078:                                             ; preds = %3074
  %3079 = load i32, ptr %302, align 4, !tbaa !5
  %3080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3081 = call i32 @s2n_print_stacktrace(ptr noundef %3080) #12
  %3082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3083 = trunc nuw i8 %3082 to i1
  br i1 %3083, label %3084, label %3088

3084:                                             ; preds = %3078
  %3085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3086 = call i32 @fileno(ptr noundef %3085) #12
  %3087 = call i32 @isatty(i32 noundef %3086) #12
  %.not726 = icmp eq i32 %3087, 0
  br i1 %.not726, label %3088, label %3089

3088:                                             ; preds = %3084, %3078
  br label %3089

3089:                                             ; preds = %3084, %3088
  %.str.5.sink1716 = phi ptr [ @.str.5, %3088 ], [ @.str.2, %3084 ]
  store i32 %3079, ptr %302, align 4, !tbaa !5
  %3090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3091 = load i32, ptr @test_count, align 4, !tbaa !5
  %3092 = load i32, ptr %248, align 4, !tbaa !5
  %3093 = call ptr @s2n_strerror(i32 noundef %3092, ptr noundef nonnull @.str.4) #12
  %3094 = load i32, ptr %248, align 4, !tbaa !5
  %3095 = call ptr @s2n_strerror_debug(i32 noundef %3094, ptr noundef nonnull @.str.4) #12
  %3096 = load i32, ptr %302, align 4, !tbaa !5
  %3097 = call ptr @strerror(i32 noundef %3096) #12
  %3098 = load i32, ptr %302, align 4, !tbaa !5
  %3099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3090, ptr noundef nonnull %.str.5.sink1716, i32 noundef %3091, ptr noundef nonnull @.str.59, ptr noundef nonnull @.str.1, i32 noundef 308, ptr noundef %3093, ptr noundef %3095, ptr noundef %3097, i32 noundef %3098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3100:                                             ; preds = %3074
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %37) #12
  %3101 = load i32, ptr @test_count, align 4, !tbaa !5
  %3102 = add nsw i32 %3101, 1
  store i32 %3102, ptr @test_count, align 4, !tbaa !5
  %3103 = call i32 @s2n_fingerprint_wipe(ptr noundef null) #12
  %3104 = icmp eq i32 %3103, -1
  br i1 %3104, label %3127, label %3105

3105:                                             ; preds = %3100
  %3106 = load i32, ptr %302, align 4, !tbaa !5
  %3107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3108 = call i32 @s2n_print_stacktrace(ptr noundef %3107) #12
  %3109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3110 = trunc nuw i8 %3109 to i1
  br i1 %3110, label %3111, label %3115

3111:                                             ; preds = %3105
  %3112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3113 = call i32 @fileno(ptr noundef %3112) #12
  %3114 = call i32 @isatty(i32 noundef %3113) #12
  %.not585 = icmp eq i32 %3114, 0
  br i1 %.not585, label %3115, label %3116

3115:                                             ; preds = %3111, %3105
  br label %3116

3116:                                             ; preds = %3111, %3115
  %.str.5.sink1725 = phi ptr [ @.str.5, %3115 ], [ @.str.2, %3111 ]
  store i32 %3106, ptr %302, align 4, !tbaa !5
  %3117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3118 = load i32, ptr @test_count, align 4, !tbaa !5
  %3119 = load i32, ptr %248, align 4, !tbaa !5
  %3120 = call ptr @s2n_strerror(i32 noundef %3119, ptr noundef nonnull @.str.4) #12
  %3121 = load i32, ptr %248, align 4, !tbaa !5
  %3122 = call ptr @s2n_strerror_debug(i32 noundef %3121, ptr noundef nonnull @.str.4) #12
  %3123 = load i32, ptr %302, align 4, !tbaa !5
  %3124 = call ptr @strerror(i32 noundef %3123) #12
  %3125 = load i32, ptr %302, align 4, !tbaa !5
  %3126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3117, ptr noundef nonnull %.str.5.sink1725, i32 noundef %3118, ptr noundef nonnull @.str.61, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %3120, ptr noundef %3122, ptr noundef %3124, i32 noundef %3125) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3127:                                             ; preds = %3100
  %3128 = load i32, ptr @test_count, align 4, !tbaa !5
  %3129 = add nsw i32 %3128, 1
  store i32 %3129, ptr @test_count, align 4, !tbaa !5
  %3130 = load i32, ptr %248, align 4, !tbaa !5
  %3131 = icmp eq i32 %3130, 469762089
  br i1 %3131, label %3154, label %3132

3132:                                             ; preds = %3127
  %3133 = load i32, ptr %302, align 4, !tbaa !5
  %3134 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3135 = call i32 @s2n_print_stacktrace(ptr noundef %3134) #12
  %3136 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3137 = trunc nuw i8 %3136 to i1
  br i1 %3137, label %3138, label %3142

3138:                                             ; preds = %3132
  %3139 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3140 = call i32 @fileno(ptr noundef %3139) #12
  %3141 = call i32 @isatty(i32 noundef %3140) #12
  %.not586 = icmp eq i32 %3141, 0
  br i1 %.not586, label %3142, label %3143

3142:                                             ; preds = %3138, %3132
  br label %3143

3143:                                             ; preds = %3138, %3142
  %.str.5.sink1734 = phi ptr [ @.str.5, %3142 ], [ @.str.2, %3138 ]
  store i32 %3133, ptr %302, align 4, !tbaa !5
  %3144 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3145 = load i32, ptr @test_count, align 4, !tbaa !5
  %3146 = load i32, ptr %248, align 4, !tbaa !5
  %3147 = call ptr @s2n_strerror(i32 noundef %3146, ptr noundef nonnull @.str.4) #12
  %3148 = load i32, ptr %248, align 4, !tbaa !5
  %3149 = call ptr @s2n_strerror_debug(i32 noundef %3148, ptr noundef nonnull @.str.4) #12
  %3150 = load i32, ptr %302, align 4, !tbaa !5
  %3151 = call ptr @strerror(i32 noundef %3150) #12
  %3152 = load i32, ptr %302, align 4, !tbaa !5
  %3153 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3144, ptr noundef nonnull %.str.5.sink1734, i32 noundef %3145, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %3147, ptr noundef %3149, ptr noundef %3151, i32 noundef %3152) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3154:                                             ; preds = %3127
  %3155 = add nsw i32 %3128, 2
  store i32 %3155, ptr @test_count, align 4, !tbaa !5
  %3156 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %3157 = icmp eq ptr %3156, null
  br i1 %3157, label %3158, label %3180

3158:                                             ; preds = %3154
  %3159 = load i32, ptr %302, align 4, !tbaa !5
  %3160 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3161 = call i32 @s2n_print_stacktrace(ptr noundef %3160) #12
  %3162 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3163 = trunc nuw i8 %3162 to i1
  br i1 %3163, label %3164, label %3168

3164:                                             ; preds = %3158
  %3165 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3166 = call i32 @fileno(ptr noundef %3165) #12
  %3167 = call i32 @isatty(i32 noundef %3166) #12
  %.not725 = icmp eq i32 %3167, 0
  br i1 %.not725, label %3168, label %3169

3168:                                             ; preds = %3164, %3158
  br label %3169

3169:                                             ; preds = %3164, %3168
  %.str.5.sink1743 = phi ptr [ @.str.5, %3168 ], [ @.str.2, %3164 ]
  store i32 %3159, ptr %302, align 4, !tbaa !5
  %3170 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3171 = load i32, ptr @test_count, align 4, !tbaa !5
  %3172 = load i32, ptr %248, align 4, !tbaa !5
  %3173 = call ptr @s2n_strerror(i32 noundef %3172, ptr noundef nonnull @.str.4) #12
  %3174 = load i32, ptr %248, align 4, !tbaa !5
  %3175 = call ptr @s2n_strerror_debug(i32 noundef %3174, ptr noundef nonnull @.str.4) #12
  %3176 = load i32, ptr %302, align 4, !tbaa !5
  %3177 = call ptr @strerror(i32 noundef %3176) #12
  %3178 = load i32, ptr %302, align 4, !tbaa !5
  %3179 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3170, ptr noundef nonnull %.str.5.sink1743, i32 noundef %3171, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 314, ptr noundef %3173, ptr noundef %3175, ptr noundef %3177, i32 noundef %3178) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3180:                                             ; preds = %3154
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %38) #12
  %3181 = load i32, ptr @test_count, align 4, !tbaa !5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(120) %38, i8 1, i64 120, i1 false)
  %3182 = getelementptr inbounds i8, ptr %38, i64 36
  %3183 = getelementptr inbounds i8, ptr %38, i64 16
  %3184 = add nsw i32 %3181, 6
  store i32 %3184, ptr @test_count, align 4, !tbaa !5
  %3185 = call i32 @s2n_fingerprint_wipe(ptr noundef nonnull %38) #12
  %3186 = icmp eq i32 %3185, -1
  br i1 %3186, label %3187, label %3209

3187:                                             ; preds = %3180
  %3188 = load i32, ptr %302, align 4, !tbaa !5
  %3189 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3190 = call i32 @s2n_print_stacktrace(ptr noundef %3189) #12
  %3191 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3192 = trunc nuw i8 %3191 to i1
  br i1 %3192, label %3193, label %3197

3193:                                             ; preds = %3187
  %3194 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3195 = call i32 @fileno(ptr noundef %3194) #12
  %3196 = call i32 @isatty(i32 noundef %3195) #12
  %.not721 = icmp eq i32 %3196, 0
  br i1 %.not721, label %3197, label %3198

3197:                                             ; preds = %3193, %3187
  br label %3198

3198:                                             ; preds = %3193, %3197
  %.str.5.sink1752 = phi ptr [ @.str.5, %3197 ], [ @.str.2, %3193 ]
  store i32 %3188, ptr %302, align 4, !tbaa !5
  %3199 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3200 = load i32, ptr @test_count, align 4, !tbaa !5
  %3201 = load i32, ptr %248, align 4, !tbaa !5
  %3202 = call ptr @s2n_strerror(i32 noundef %3201, ptr noundef nonnull @.str.4) #12
  %3203 = load i32, ptr %248, align 4, !tbaa !5
  %3204 = call ptr @s2n_strerror_debug(i32 noundef %3203, ptr noundef nonnull @.str.4) #12
  %3205 = load i32, ptr %302, align 4, !tbaa !5
  %3206 = call ptr @strerror(i32 noundef %3205) #12
  %3207 = load i32, ptr %302, align 4, !tbaa !5
  %3208 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3199, ptr noundef nonnull %.str.5.sink1752, i32 noundef %3200, ptr noundef nonnull @.str.67, ptr noundef nonnull @.str.1, i32 noundef 325, ptr noundef %3202, ptr noundef %3204, ptr noundef %3206, i32 noundef %3207) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3209:                                             ; preds = %3180
  %3210 = getelementptr inbounds i8, ptr %38, i64 8
  %3211 = load i32, ptr @test_count, align 4, !tbaa !5
  %3212 = add nsw i32 %3211, 1
  store i32 %3212, ptr @test_count, align 4, !tbaa !5
  %3213 = load ptr, ptr %3210, align 8, !tbaa !33
  %3214 = icmp eq ptr %3213, null
  br i1 %3214, label %3215, label %3237

3215:                                             ; preds = %3209
  %3216 = load i32, ptr %302, align 4, !tbaa !5
  %3217 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3218 = call i32 @s2n_print_stacktrace(ptr noundef %3217) #12
  %3219 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3220 = trunc nuw i8 %3219 to i1
  br i1 %3220, label %3221, label %3225

3221:                                             ; preds = %3215
  %3222 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3223 = call i32 @fileno(ptr noundef %3222) #12
  %3224 = call i32 @isatty(i32 noundef %3223) #12
  %.not720 = icmp eq i32 %3224, 0
  br i1 %.not720, label %3225, label %3226

3225:                                             ; preds = %3221, %3215
  br label %3226

3226:                                             ; preds = %3221, %3225
  %.str.5.sink1761 = phi ptr [ @.str.5, %3225 ], [ @.str.2, %3221 ]
  store i32 %3216, ptr %302, align 4, !tbaa !5
  %3227 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3228 = load i32, ptr @test_count, align 4, !tbaa !5
  %3229 = load i32, ptr %248, align 4, !tbaa !5
  %3230 = call ptr @s2n_strerror(i32 noundef %3229, ptr noundef nonnull @.str.4) #12
  %3231 = load i32, ptr %248, align 4, !tbaa !5
  %3232 = call ptr @s2n_strerror_debug(i32 noundef %3231, ptr noundef nonnull @.str.4) #12
  %3233 = load i32, ptr %302, align 4, !tbaa !5
  %3234 = call ptr @strerror(i32 noundef %3233) #12
  %3235 = load i32, ptr %302, align 4, !tbaa !5
  %3236 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3227, ptr noundef nonnull %.str.5.sink1761, i32 noundef %3228, ptr noundef nonnull @.str.63, ptr noundef nonnull @.str.1, i32 noundef 326, ptr noundef %3230, ptr noundef %3232, ptr noundef %3234, i32 noundef %3235) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3237:                                             ; preds = %3209
  %3238 = add nsw i32 %3211, 2
  store i32 %3238, ptr @test_count, align 4, !tbaa !5
  %3239 = load i8, ptr %3182, align 4, !tbaa !37
  %.not589 = icmp eq i8 %3239, 0
  br i1 %.not589, label %3240, label %3262

3240:                                             ; preds = %3237
  %3241 = load i32, ptr %302, align 4, !tbaa !5
  %3242 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3243 = call i32 @s2n_print_stacktrace(ptr noundef %3242) #12
  %3244 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3245 = trunc nuw i8 %3244 to i1
  br i1 %3245, label %3246, label %3250

3246:                                             ; preds = %3240
  %3247 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3248 = call i32 @fileno(ptr noundef %3247) #12
  %3249 = call i32 @isatty(i32 noundef %3248) #12
  %.not590 = icmp eq i32 %3249, 0
  br i1 %.not590, label %3250, label %3251

3250:                                             ; preds = %3246, %3240
  br label %3251

3251:                                             ; preds = %3246, %3250
  %.str.5.sink1770 = phi ptr [ @.str.5, %3250 ], [ @.str.2, %3246 ]
  store i32 %3241, ptr %302, align 4, !tbaa !5
  %3252 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3253 = load i32, ptr @test_count, align 4, !tbaa !5
  %3254 = load i32, ptr %248, align 4, !tbaa !5
  %3255 = call ptr @s2n_strerror(i32 noundef %3254, ptr noundef nonnull @.str.4) #12
  %3256 = load i32, ptr %248, align 4, !tbaa !5
  %3257 = call ptr @s2n_strerror_debug(i32 noundef %3256, ptr noundef nonnull @.str.4) #12
  %3258 = load i32, ptr %302, align 4, !tbaa !5
  %3259 = call ptr @strerror(i32 noundef %3258) #12
  %3260 = load i32, ptr %302, align 4, !tbaa !5
  %3261 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3252, ptr noundef nonnull %.str.5.sink1770, i32 noundef %3253, ptr noundef nonnull @.str.64, ptr noundef nonnull @.str.1, i32 noundef 327, ptr noundef %3255, ptr noundef %3257, ptr noundef %3259, i32 noundef %3260) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3262:                                             ; preds = %3237
  %3263 = add nsw i32 %3211, 3
  store i32 %3263, ptr @test_count, align 4, !tbaa !5
  %3264 = load ptr, ptr %3183, align 8, !tbaa !35
  %3265 = icmp eq ptr %3264, null
  br i1 %3265, label %3288, label %3266

3266:                                             ; preds = %3262
  %3267 = load i32, ptr %302, align 4, !tbaa !5
  %3268 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3269 = call i32 @s2n_print_stacktrace(ptr noundef %3268) #12
  %3270 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3271 = trunc nuw i8 %3270 to i1
  br i1 %3271, label %3272, label %3276

3272:                                             ; preds = %3266
  %3273 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3274 = call i32 @fileno(ptr noundef %3273) #12
  %3275 = call i32 @isatty(i32 noundef %3274) #12
  %.not591 = icmp eq i32 %3275, 0
  br i1 %.not591, label %3276, label %3277

3276:                                             ; preds = %3272, %3266
  br label %3277

3277:                                             ; preds = %3272, %3276
  %.str.5.sink1779 = phi ptr [ @.str.5, %3276 ], [ @.str.2, %3272 ]
  store i32 %3267, ptr %302, align 4, !tbaa !5
  %3278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3279 = load i32, ptr @test_count, align 4, !tbaa !5
  %3280 = load i32, ptr %248, align 4, !tbaa !5
  %3281 = call ptr @s2n_strerror(i32 noundef %3280, ptr noundef nonnull @.str.4) #12
  %3282 = load i32, ptr %248, align 4, !tbaa !5
  %3283 = call ptr @s2n_strerror_debug(i32 noundef %3282, ptr noundef nonnull @.str.4) #12
  %3284 = load i32, ptr %302, align 4, !tbaa !5
  %3285 = call ptr @strerror(i32 noundef %3284) #12
  %3286 = load i32, ptr %302, align 4, !tbaa !5
  %3287 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3278, ptr noundef nonnull %.str.5.sink1779, i32 noundef %3279, ptr noundef nonnull @.str.68, ptr noundef nonnull @.str.1, i32 noundef 328, ptr noundef %3281, ptr noundef %3283, ptr noundef %3285, i32 noundef %3286) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3288:                                             ; preds = %3262
  %3289 = add nsw i32 %3211, 4
  store i32 %3289, ptr @test_count, align 4, !tbaa !5
  %3290 = load i64, ptr %38, align 8, !tbaa !36
  %3291 = icmp eq i64 %3290, 0
  br i1 %3291, label %3314, label %3292

3292:                                             ; preds = %3288
  %3293 = load i32, ptr %302, align 4, !tbaa !5
  %3294 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3295 = call i32 @s2n_print_stacktrace(ptr noundef %3294) #12
  %3296 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3297 = trunc nuw i8 %3296 to i1
  br i1 %3297, label %3298, label %3302

3298:                                             ; preds = %3292
  %3299 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3300 = call i32 @fileno(ptr noundef %3299) #12
  %3301 = call i32 @isatty(i32 noundef %3300) #12
  %.not592 = icmp eq i32 %3301, 0
  br i1 %.not592, label %3302, label %3303

3302:                                             ; preds = %3298, %3292
  br label %3303

3303:                                             ; preds = %3298, %3302
  %.str.5.sink1788 = phi ptr [ @.str.5, %3302 ], [ @.str.2, %3298 ]
  store i32 %3293, ptr %302, align 4, !tbaa !5
  %3304 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3305 = load i32, ptr @test_count, align 4, !tbaa !5
  %3306 = load i32, ptr %248, align 4, !tbaa !5
  %3307 = call ptr @s2n_strerror(i32 noundef %3306, ptr noundef nonnull @.str.4) #12
  %3308 = load i32, ptr %248, align 4, !tbaa !5
  %3309 = call ptr @s2n_strerror_debug(i32 noundef %3308, ptr noundef nonnull @.str.4) #12
  %3310 = load i32, ptr %302, align 4, !tbaa !5
  %3311 = call ptr @strerror(i32 noundef %3310) #12
  %3312 = load i32, ptr %302, align 4, !tbaa !5
  %3313 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3304, ptr noundef nonnull %.str.5.sink1788, i32 noundef %3305, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 329, ptr noundef %3307, ptr noundef %3309, ptr noundef %3311, i32 noundef %3312) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3314:                                             ; preds = %3288
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %38) #12
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %39) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(120) %39, i8 0, i64 120, i1 false)
  %3315 = add nsw i32 %3211, 5
  store i32 %3315, ptr @test_count, align 4, !tbaa !5
  %3316 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef nonnull %39, ptr noundef null) #12
  %3317 = icmp eq i32 %3316, -1
  br i1 %3317, label %3340, label %3318

3318:                                             ; preds = %3314
  %3319 = load i32, ptr %302, align 4, !tbaa !5
  %3320 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3321 = call i32 @s2n_print_stacktrace(ptr noundef %3320) #12
  %3322 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3323 = trunc nuw i8 %3322 to i1
  br i1 %3323, label %3324, label %3328

3324:                                             ; preds = %3318
  %3325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3326 = call i32 @fileno(ptr noundef %3325) #12
  %3327 = call i32 @isatty(i32 noundef %3326) #12
  %.not593 = icmp eq i32 %3327, 0
  br i1 %.not593, label %3328, label %3329

3328:                                             ; preds = %3324, %3318
  br label %3329

3329:                                             ; preds = %3324, %3328
  %.str.5.sink1797 = phi ptr [ @.str.5, %3328 ], [ @.str.2, %3324 ]
  store i32 %3319, ptr %302, align 4, !tbaa !5
  %3330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3331 = load i32, ptr @test_count, align 4, !tbaa !5
  %3332 = load i32, ptr %248, align 4, !tbaa !5
  %3333 = call ptr @s2n_strerror(i32 noundef %3332, ptr noundef nonnull @.str.4) #12
  %3334 = load i32, ptr %248, align 4, !tbaa !5
  %3335 = call ptr @s2n_strerror_debug(i32 noundef %3334, ptr noundef nonnull @.str.4) #12
  %3336 = load i32, ptr %302, align 4, !tbaa !5
  %3337 = call ptr @strerror(i32 noundef %3336) #12
  %3338 = load i32, ptr %302, align 4, !tbaa !5
  %3339 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3330, ptr noundef nonnull %.str.5.sink1797, i32 noundef %3331, ptr noundef nonnull @.str.70, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3333, ptr noundef %3335, ptr noundef %3337, i32 noundef %3338) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3340:                                             ; preds = %3314
  %3341 = load i32, ptr @test_count, align 4, !tbaa !5
  %3342 = add nsw i32 %3341, 1
  store i32 %3342, ptr @test_count, align 4, !tbaa !5
  %3343 = load i32, ptr %248, align 4, !tbaa !5
  %3344 = icmp eq i32 %3343, 469762089
  br i1 %3344, label %3367, label %3345

3345:                                             ; preds = %3340
  %3346 = load i32, ptr %302, align 4, !tbaa !5
  %3347 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3348 = call i32 @s2n_print_stacktrace(ptr noundef %3347) #12
  %3349 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3350 = trunc nuw i8 %3349 to i1
  br i1 %3350, label %3351, label %3355

3351:                                             ; preds = %3345
  %3352 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3353 = call i32 @fileno(ptr noundef %3352) #12
  %3354 = call i32 @isatty(i32 noundef %3353) #12
  %.not594 = icmp eq i32 %3354, 0
  br i1 %.not594, label %3355, label %3356

3355:                                             ; preds = %3351, %3345
  br label %3356

3356:                                             ; preds = %3351, %3355
  %.str.5.sink1806 = phi ptr [ @.str.5, %3355 ], [ @.str.2, %3351 ]
  store i32 %3346, ptr %302, align 4, !tbaa !5
  %3357 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3358 = load i32, ptr @test_count, align 4, !tbaa !5
  %3359 = load i32, ptr %248, align 4, !tbaa !5
  %3360 = call ptr @s2n_strerror(i32 noundef %3359, ptr noundef nonnull @.str.4) #12
  %3361 = load i32, ptr %248, align 4, !tbaa !5
  %3362 = call ptr @s2n_strerror_debug(i32 noundef %3361, ptr noundef nonnull @.str.4) #12
  %3363 = load i32, ptr %302, align 4, !tbaa !5
  %3364 = call ptr @strerror(i32 noundef %3363) #12
  %3365 = load i32, ptr %302, align 4, !tbaa !5
  %3366 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3357, ptr noundef nonnull %.str.5.sink1806, i32 noundef %3358, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3360, ptr noundef %3362, ptr noundef %3364, i32 noundef %3365) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3367:                                             ; preds = %3340
  %3368 = add nsw i32 %3341, 2
  store i32 %3368, ptr @test_count, align 4, !tbaa !5
  %3369 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %3370 = icmp eq ptr %3369, null
  br i1 %3370, label %3371, label %3393

3371:                                             ; preds = %3367
  %3372 = load i32, ptr %302, align 4, !tbaa !5
  %3373 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3374 = call i32 @s2n_print_stacktrace(ptr noundef %3373) #12
  %3375 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3376 = trunc nuw i8 %3375 to i1
  br i1 %3376, label %3377, label %3381

3377:                                             ; preds = %3371
  %3378 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3379 = call i32 @fileno(ptr noundef %3378) #12
  %3380 = call i32 @isatty(i32 noundef %3379) #12
  %.not719 = icmp eq i32 %3380, 0
  br i1 %.not719, label %3381, label %3382

3381:                                             ; preds = %3377, %3371
  br label %3382

3382:                                             ; preds = %3377, %3381
  %.str.5.sink1815 = phi ptr [ @.str.5, %3381 ], [ @.str.2, %3377 ]
  store i32 %3372, ptr %302, align 4, !tbaa !5
  %3383 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3384 = load i32, ptr @test_count, align 4, !tbaa !5
  %3385 = load i32, ptr %248, align 4, !tbaa !5
  %3386 = call ptr @s2n_strerror(i32 noundef %3385, ptr noundef nonnull @.str.4) #12
  %3387 = load i32, ptr %248, align 4, !tbaa !5
  %3388 = call ptr @s2n_strerror_debug(i32 noundef %3387, ptr noundef nonnull @.str.4) #12
  %3389 = load i32, ptr %302, align 4, !tbaa !5
  %3390 = call ptr @strerror(i32 noundef %3389) #12
  %3391 = load i32, ptr %302, align 4, !tbaa !5
  %3392 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3383, ptr noundef nonnull %.str.5.sink1815, i32 noundef %3384, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 339, ptr noundef %3386, ptr noundef %3388, ptr noundef %3390, i32 noundef %3391) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3393:                                             ; preds = %3367
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %3394 = load i32, ptr @test_count, align 4, !tbaa !5
  %3395 = add nsw i32 %3394, 1
  store i32 %3395, ptr @test_count, align 4, !tbaa !5
  %3396 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef null, ptr noundef nonnull %189) #12
  %3397 = icmp eq i32 %3396, -1
  br i1 %3397, label %3420, label %3398

3398:                                             ; preds = %3393
  %3399 = load i32, ptr %302, align 4, !tbaa !5
  %3400 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3401 = call i32 @s2n_print_stacktrace(ptr noundef %3400) #12
  %3402 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3403 = trunc nuw i8 %3402 to i1
  br i1 %3403, label %3404, label %3408

3404:                                             ; preds = %3398
  %3405 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3406 = call i32 @fileno(ptr noundef %3405) #12
  %3407 = call i32 @isatty(i32 noundef %3406) #12
  %.not595 = icmp eq i32 %3407, 0
  br i1 %.not595, label %3408, label %3409

3408:                                             ; preds = %3404, %3398
  br label %3409

3409:                                             ; preds = %3404, %3408
  %.str.5.sink1824 = phi ptr [ @.str.5, %3408 ], [ @.str.2, %3404 ]
  store i32 %3399, ptr %302, align 4, !tbaa !5
  %3410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3411 = load i32, ptr @test_count, align 4, !tbaa !5
  %3412 = load i32, ptr %248, align 4, !tbaa !5
  %3413 = call ptr @s2n_strerror(i32 noundef %3412, ptr noundef nonnull @.str.4) #12
  %3414 = load i32, ptr %248, align 4, !tbaa !5
  %3415 = call ptr @s2n_strerror_debug(i32 noundef %3414, ptr noundef nonnull @.str.4) #12
  %3416 = load i32, ptr %302, align 4, !tbaa !5
  %3417 = call ptr @strerror(i32 noundef %3416) #12
  %3418 = load i32, ptr %302, align 4, !tbaa !5
  %3419 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3410, ptr noundef nonnull %.str.5.sink1824, i32 noundef %3411, ptr noundef nonnull @.str.71, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3413, ptr noundef %3415, ptr noundef %3417, i32 noundef %3418) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3420:                                             ; preds = %3393
  %3421 = load i32, ptr @test_count, align 4, !tbaa !5
  %3422 = add nsw i32 %3421, 1
  store i32 %3422, ptr @test_count, align 4, !tbaa !5
  %3423 = load i32, ptr %248, align 4, !tbaa !5
  %3424 = icmp eq i32 %3423, 469762089
  br i1 %3424, label %3447, label %3425

3425:                                             ; preds = %3420
  %3426 = load i32, ptr %302, align 4, !tbaa !5
  %3427 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3428 = call i32 @s2n_print_stacktrace(ptr noundef %3427) #12
  %3429 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3430 = trunc nuw i8 %3429 to i1
  br i1 %3430, label %3431, label %3435

3431:                                             ; preds = %3425
  %3432 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3433 = call i32 @fileno(ptr noundef %3432) #12
  %3434 = call i32 @isatty(i32 noundef %3433) #12
  %.not596 = icmp eq i32 %3434, 0
  br i1 %.not596, label %3435, label %3436

3435:                                             ; preds = %3431, %3425
  br label %3436

3436:                                             ; preds = %3431, %3435
  %.str.5.sink1833 = phi ptr [ @.str.5, %3435 ], [ @.str.2, %3431 ]
  store i32 %3426, ptr %302, align 4, !tbaa !5
  %3437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3438 = load i32, ptr @test_count, align 4, !tbaa !5
  %3439 = load i32, ptr %248, align 4, !tbaa !5
  %3440 = call ptr @s2n_strerror(i32 noundef %3439, ptr noundef nonnull @.str.4) #12
  %3441 = load i32, ptr %248, align 4, !tbaa !5
  %3442 = call ptr @s2n_strerror_debug(i32 noundef %3441, ptr noundef nonnull @.str.4) #12
  %3443 = load i32, ptr %302, align 4, !tbaa !5
  %3444 = call ptr @strerror(i32 noundef %3443) #12
  %3445 = load i32, ptr %302, align 4, !tbaa !5
  %3446 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3437, ptr noundef nonnull %.str.5.sink1833, i32 noundef %3438, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3440, ptr noundef %3442, ptr noundef %3444, i32 noundef %3445) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3447:                                             ; preds = %3420
  %3448 = add nsw i32 %3421, 2
  store i32 %3448, ptr @test_count, align 4, !tbaa !5
  %3449 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %3450 = icmp eq ptr %3449, null
  br i1 %3450, label %3451, label %3473

3451:                                             ; preds = %3447
  %3452 = load i32, ptr %302, align 4, !tbaa !5
  %3453 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3454 = call i32 @s2n_print_stacktrace(ptr noundef %3453) #12
  %3455 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3456 = trunc nuw i8 %3455 to i1
  br i1 %3456, label %3457, label %3461

3457:                                             ; preds = %3451
  %3458 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3459 = call i32 @fileno(ptr noundef %3458) #12
  %3460 = call i32 @isatty(i32 noundef %3459) #12
  %.not718 = icmp eq i32 %3460, 0
  br i1 %.not718, label %3461, label %3462

3461:                                             ; preds = %3457, %3451
  br label %3462

3462:                                             ; preds = %3457, %3461
  %.str.5.sink1842 = phi ptr [ @.str.5, %3461 ], [ @.str.2, %3457 ]
  store i32 %3452, ptr %302, align 4, !tbaa !5
  %3463 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3464 = load i32, ptr @test_count, align 4, !tbaa !5
  %3465 = load i32, ptr %248, align 4, !tbaa !5
  %3466 = call ptr @s2n_strerror(i32 noundef %3465, ptr noundef nonnull @.str.4) #12
  %3467 = load i32, ptr %248, align 4, !tbaa !5
  %3468 = call ptr @s2n_strerror_debug(i32 noundef %3467, ptr noundef nonnull @.str.4) #12
  %3469 = load i32, ptr %302, align 4, !tbaa !5
  %3470 = call ptr @strerror(i32 noundef %3469) #12
  %3471 = load i32, ptr %302, align 4, !tbaa !5
  %3472 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3463, ptr noundef nonnull %.str.5.sink1842, i32 noundef %3464, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 342, ptr noundef %3466, ptr noundef %3468, ptr noundef %3470, i32 noundef %3471) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3473:                                             ; preds = %3447
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %39) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %40) #12
  %3474 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %3474, ptr %40, align 8, !tbaa !9
  %3475 = load i32, ptr @test_count, align 4, !tbaa !5
  %3476 = add nsw i32 %3475, 1
  store i32 %3476, ptr @test_count, align 4, !tbaa !5
  %3477 = icmp eq ptr %3474, null
  br i1 %3477, label %3478, label %3500

3478:                                             ; preds = %3473
  %3479 = load i32, ptr %302, align 4, !tbaa !5
  %3480 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3481 = call i32 @s2n_print_stacktrace(ptr noundef %3480) #12
  %3482 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3483 = trunc nuw i8 %3482 to i1
  br i1 %3483, label %3484, label %3488

3484:                                             ; preds = %3478
  %3485 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3486 = call i32 @fileno(ptr noundef %3485) #12
  %3487 = call i32 @isatty(i32 noundef %3486) #12
  %.not717 = icmp eq i32 %3487, 0
  br i1 %.not717, label %3488, label %3489

3488:                                             ; preds = %3484, %3478
  br label %3489

3489:                                             ; preds = %3484, %3488
  %.str.5.sink1851 = phi ptr [ @.str.5, %3488 ], [ @.str.2, %3484 ]
  store i32 %3479, ptr %302, align 4, !tbaa !5
  %3490 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3491 = load i32, ptr @test_count, align 4, !tbaa !5
  %3492 = load i32, ptr %248, align 4, !tbaa !5
  %3493 = call ptr @s2n_strerror(i32 noundef %3492, ptr noundef nonnull @.str.4) #12
  %3494 = load i32, ptr %248, align 4, !tbaa !5
  %3495 = call ptr @s2n_strerror_debug(i32 noundef %3494, ptr noundef nonnull @.str.4) #12
  %3496 = load i32, ptr %302, align 4, !tbaa !5
  %3497 = call ptr @strerror(i32 noundef %3496) #12
  %3498 = load i32, ptr %302, align 4, !tbaa !5
  %3499 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3490, ptr noundef nonnull %.str.5.sink1851, i32 noundef %3491, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 349, ptr noundef %3493, ptr noundef %3495, ptr noundef %3497, i32 noundef %3498) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3500:                                             ; preds = %3473
  call void @llvm.lifetime.start.p0(i64 808, ptr nonnull %41) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(808) %41, ptr noundef nonnull align 8 dereferenceable(808) %189, i64 808, i1 false), !tbaa.struct !38
  %3501 = getelementptr inbounds i8, ptr %41, i64 802
  %3502 = load i8, ptr %3501, align 2
  %3503 = or i8 %3502, 32
  store i8 %3503, ptr %3501, align 2
  %3504 = add nsw i32 %3475, 2
  store i32 %3504, ptr @test_count, align 4, !tbaa !5
  %3505 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef nonnull %3474, ptr noundef nonnull %41) #12
  %3506 = icmp eq i32 %3505, -1
  br i1 %3506, label %3529, label %3507

3507:                                             ; preds = %3500
  %3508 = load i32, ptr %302, align 4, !tbaa !5
  %3509 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3510 = call i32 @s2n_print_stacktrace(ptr noundef %3509) #12
  %3511 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3512 = trunc nuw i8 %3511 to i1
  br i1 %3512, label %3513, label %3517

3513:                                             ; preds = %3507
  %3514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3515 = call i32 @fileno(ptr noundef %3514) #12
  %3516 = call i32 @isatty(i32 noundef %3515) #12
  %.not597 = icmp eq i32 %3516, 0
  br i1 %.not597, label %3517, label %3518

3517:                                             ; preds = %3513, %3507
  br label %3518

3518:                                             ; preds = %3513, %3517
  %.str.5.sink1860 = phi ptr [ @.str.5, %3517 ], [ @.str.2, %3513 ]
  store i32 %3508, ptr %302, align 4, !tbaa !5
  %3519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3520 = load i32, ptr @test_count, align 4, !tbaa !5
  %3521 = load i32, ptr %248, align 4, !tbaa !5
  %3522 = call ptr @s2n_strerror(i32 noundef %3521, ptr noundef nonnull @.str.4) #12
  %3523 = load i32, ptr %248, align 4, !tbaa !5
  %3524 = call ptr @s2n_strerror_debug(i32 noundef %3523, ptr noundef nonnull @.str.4) #12
  %3525 = load i32, ptr %302, align 4, !tbaa !5
  %3526 = call ptr @strerror(i32 noundef %3525) #12
  %3527 = load i32, ptr %302, align 4, !tbaa !5
  %3528 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3519, ptr noundef nonnull %.str.5.sink1860, i32 noundef %3520, ptr noundef nonnull @.str.72, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %3522, ptr noundef %3524, ptr noundef %3526, i32 noundef %3527) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3529:                                             ; preds = %3500
  %3530 = load i32, ptr @test_count, align 4, !tbaa !5
  %3531 = add nsw i32 %3530, 1
  store i32 %3531, ptr @test_count, align 4, !tbaa !5
  %3532 = load i32, ptr %248, align 4, !tbaa !5
  %3533 = icmp eq i32 %3532, 335544384
  br i1 %3533, label %3556, label %3534

3534:                                             ; preds = %3529
  %3535 = load i32, ptr %302, align 4, !tbaa !5
  %3536 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3537 = call i32 @s2n_print_stacktrace(ptr noundef %3536) #12
  %3538 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3539 = trunc nuw i8 %3538 to i1
  br i1 %3539, label %3540, label %3544

3540:                                             ; preds = %3534
  %3541 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3542 = call i32 @fileno(ptr noundef %3541) #12
  %3543 = call i32 @isatty(i32 noundef %3542) #12
  %.not598 = icmp eq i32 %3543, 0
  br i1 %.not598, label %3544, label %3545

3544:                                             ; preds = %3540, %3534
  br label %3545

3545:                                             ; preds = %3540, %3544
  %.str.5.sink1869 = phi ptr [ @.str.5, %3544 ], [ @.str.2, %3540 ]
  store i32 %3535, ptr %302, align 4, !tbaa !5
  %3546 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3547 = load i32, ptr @test_count, align 4, !tbaa !5
  %3548 = load i32, ptr %248, align 4, !tbaa !5
  %3549 = call ptr @s2n_strerror(i32 noundef %3548, ptr noundef nonnull @.str.4) #12
  %3550 = load i32, ptr %248, align 4, !tbaa !5
  %3551 = call ptr @s2n_strerror_debug(i32 noundef %3550, ptr noundef nonnull @.str.4) #12
  %3552 = load i32, ptr %302, align 4, !tbaa !5
  %3553 = call ptr @strerror(i32 noundef %3552) #12
  %3554 = load i32, ptr %302, align 4, !tbaa !5
  %3555 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3546, ptr noundef nonnull %.str.5.sink1869, i32 noundef %3547, ptr noundef nonnull @.str.73, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %3549, ptr noundef %3551, ptr noundef %3553, i32 noundef %3554) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3556:                                             ; preds = %3529
  %3557 = add nsw i32 %3530, 2
  store i32 %3557, ptr @test_count, align 4, !tbaa !5
  %3558 = call ptr @s2n_strerror_debug(i32 noundef 335544384, ptr noundef nonnull @.str.4) #12
  %3559 = icmp eq ptr %3558, null
  br i1 %3559, label %3560, label %3582

3560:                                             ; preds = %3556
  %3561 = load i32, ptr %302, align 4, !tbaa !5
  %3562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3563 = call i32 @s2n_print_stacktrace(ptr noundef %3562) #12
  %3564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3565 = trunc nuw i8 %3564 to i1
  br i1 %3565, label %3566, label %3570

3566:                                             ; preds = %3560
  %3567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3568 = call i32 @fileno(ptr noundef %3567) #12
  %3569 = call i32 @isatty(i32 noundef %3568) #12
  %.not716 = icmp eq i32 %3569, 0
  br i1 %.not716, label %3570, label %3571

3570:                                             ; preds = %3566, %3560
  br label %3571

3571:                                             ; preds = %3566, %3570
  %.str.5.sink1878 = phi ptr [ @.str.5, %3570 ], [ @.str.2, %3566 ]
  store i32 %3561, ptr %302, align 4, !tbaa !5
  %3572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3573 = load i32, ptr @test_count, align 4, !tbaa !5
  %3574 = load i32, ptr %248, align 4, !tbaa !5
  %3575 = call ptr @s2n_strerror(i32 noundef %3574, ptr noundef nonnull @.str.4) #12
  %3576 = load i32, ptr %248, align 4, !tbaa !5
  %3577 = call ptr @s2n_strerror_debug(i32 noundef %3576, ptr noundef nonnull @.str.4) #12
  %3578 = load i32, ptr %302, align 4, !tbaa !5
  %3579 = call ptr @strerror(i32 noundef %3578) #12
  %3580 = load i32, ptr %302, align 4, !tbaa !5
  %3581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3572, ptr noundef nonnull %.str.5.sink1878, i32 noundef %3573, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 356, ptr noundef %3575, ptr noundef %3577, ptr noundef %3579, i32 noundef %3580) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3582:                                             ; preds = %3556
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 808, ptr nonnull %41) #12
  %3583 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %40) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %40) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %42) #12
  %3584 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %3584, ptr %42, align 8, !tbaa !9
  %3585 = load i32, ptr @test_count, align 4, !tbaa !5
  %3586 = add nsw i32 %3585, 1
  store i32 %3586, ptr @test_count, align 4, !tbaa !5
  %3587 = icmp eq ptr %3584, null
  br i1 %3587, label %3588, label %3610

3588:                                             ; preds = %3582
  %3589 = load i32, ptr %302, align 4, !tbaa !5
  %3590 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3591 = call i32 @s2n_print_stacktrace(ptr noundef %3590) #12
  %3592 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3593 = trunc nuw i8 %3592 to i1
  br i1 %3593, label %3594, label %3598

3594:                                             ; preds = %3588
  %3595 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3596 = call i32 @fileno(ptr noundef %3595) #12
  %3597 = call i32 @isatty(i32 noundef %3596) #12
  %.not715 = icmp eq i32 %3597, 0
  br i1 %.not715, label %3598, label %3599

3598:                                             ; preds = %3594, %3588
  br label %3599

3599:                                             ; preds = %3594, %3598
  %.str.5.sink1887 = phi ptr [ @.str.5, %3598 ], [ @.str.2, %3594 ]
  store i32 %3589, ptr %302, align 4, !tbaa !5
  %3600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3601 = load i32, ptr @test_count, align 4, !tbaa !5
  %3602 = load i32, ptr %248, align 4, !tbaa !5
  %3603 = call ptr @s2n_strerror(i32 noundef %3602, ptr noundef nonnull @.str.4) #12
  %3604 = load i32, ptr %248, align 4, !tbaa !5
  %3605 = call ptr @s2n_strerror_debug(i32 noundef %3604, ptr noundef nonnull @.str.4) #12
  %3606 = load i32, ptr %302, align 4, !tbaa !5
  %3607 = call ptr @strerror(i32 noundef %3606) #12
  %3608 = load i32, ptr %302, align 4, !tbaa !5
  %3609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3600, ptr noundef nonnull %.str.5.sink1887, i32 noundef %3601, ptr noundef nonnull @.str.54, ptr noundef nonnull @.str.1, i32 noundef 363, ptr noundef %3603, ptr noundef %3605, ptr noundef %3607, i32 noundef %3608) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3610:                                             ; preds = %3582
  %3611 = add nsw i32 %3585, 2
  store i32 %3611, ptr @test_count, align 4, !tbaa !5
  %3612 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef nonnull %3584, ptr noundef nonnull %189) #12
  %3613 = icmp eq i32 %3612, -1
  br i1 %3613, label %3614, label %3636

3614:                                             ; preds = %3610
  %3615 = load i32, ptr %302, align 4, !tbaa !5
  %3616 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3617 = call i32 @s2n_print_stacktrace(ptr noundef %3616) #12
  %3618 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3619 = trunc nuw i8 %3618 to i1
  br i1 %3619, label %3620, label %3624

3620:                                             ; preds = %3614
  %3621 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3622 = call i32 @fileno(ptr noundef %3621) #12
  %3623 = call i32 @isatty(i32 noundef %3622) #12
  %.not714 = icmp eq i32 %3623, 0
  br i1 %.not714, label %3624, label %3625

3624:                                             ; preds = %3620, %3614
  br label %3625

3625:                                             ; preds = %3620, %3624
  %.str.5.sink1896 = phi ptr [ @.str.5, %3624 ], [ @.str.2, %3620 ]
  store i32 %3615, ptr %302, align 4, !tbaa !5
  %3626 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3627 = load i32, ptr @test_count, align 4, !tbaa !5
  %3628 = load i32, ptr %248, align 4, !tbaa !5
  %3629 = call ptr @s2n_strerror(i32 noundef %3628, ptr noundef nonnull @.str.4) #12
  %3630 = load i32, ptr %248, align 4, !tbaa !5
  %3631 = call ptr @s2n_strerror_debug(i32 noundef %3630, ptr noundef nonnull @.str.4) #12
  %3632 = load i32, ptr %302, align 4, !tbaa !5
  %3633 = call ptr @strerror(i32 noundef %3632) #12
  %3634 = load i32, ptr %302, align 4, !tbaa !5
  %3635 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3626, ptr noundef nonnull %.str.5.sink1896, i32 noundef %3627, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 364, ptr noundef %3629, ptr noundef %3631, ptr noundef %3633, i32 noundef %3634) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3636:                                             ; preds = %3610
  %3637 = load i32, ptr @test_count, align 4, !tbaa !5
  %3638 = add nsw i32 %3637, 1
  store i32 %3638, ptr @test_count, align 4, !tbaa !5
  %3639 = load ptr, ptr %42, align 8, !tbaa !9
  %3640 = getelementptr inbounds i8, ptr %3639, i64 16
  %3641 = load ptr, ptr %3640, align 8, !tbaa !35
  %3642 = icmp eq ptr %3641, %189
  br i1 %3642, label %3665, label %3643

3643:                                             ; preds = %3636
  %3644 = load i32, ptr %302, align 4, !tbaa !5
  %3645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3646 = call i32 @s2n_print_stacktrace(ptr noundef %3645) #12
  %3647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3648 = trunc nuw i8 %3647 to i1
  br i1 %3648, label %3649, label %3653

3649:                                             ; preds = %3643
  %3650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3651 = call i32 @fileno(ptr noundef %3650) #12
  %3652 = call i32 @isatty(i32 noundef %3651) #12
  %.not599 = icmp eq i32 %3652, 0
  br i1 %.not599, label %3653, label %3654

3653:                                             ; preds = %3649, %3643
  br label %3654

3654:                                             ; preds = %3649, %3653
  %.str.5.sink1905 = phi ptr [ @.str.5, %3653 ], [ @.str.2, %3649 ]
  store i32 %3644, ptr %302, align 4, !tbaa !5
  %3655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3656 = load i32, ptr @test_count, align 4, !tbaa !5
  %3657 = load i32, ptr %248, align 4, !tbaa !5
  %3658 = call ptr @s2n_strerror(i32 noundef %3657, ptr noundef nonnull @.str.4) #12
  %3659 = load i32, ptr %248, align 4, !tbaa !5
  %3660 = call ptr @s2n_strerror_debug(i32 noundef %3659, ptr noundef nonnull @.str.4) #12
  %3661 = load i32, ptr %302, align 4, !tbaa !5
  %3662 = call ptr @strerror(i32 noundef %3661) #12
  %3663 = load i32, ptr %302, align 4, !tbaa !5
  %3664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3655, ptr noundef nonnull %.str.5.sink1905, i32 noundef %3656, ptr noundef nonnull @.str.75, ptr noundef nonnull @.str.1, i32 noundef 365, ptr noundef %3658, ptr noundef %3660, ptr noundef %3662, i32 noundef %3663) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3665:                                             ; preds = %3636
  %3666 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %42) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %42) #12
  call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %43) #12
  %3667 = load i32, ptr @test_count, align 4, !tbaa !5
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(120) %43, i8 1, i64 120, i1 false)
  %3668 = add nsw i32 %3667, 2
  store i32 %3668, ptr @test_count, align 4, !tbaa !5
  %3669 = getelementptr inbounds i8, ptr %43, i64 16
  %3670 = icmp eq ptr %189, inttoptr (i64 72340172838076673 to ptr)
  br i1 %3670, label %3671, label %3693

3671:                                             ; preds = %3665
  %3672 = load i32, ptr %302, align 4, !tbaa !5
  %3673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3674 = call i32 @s2n_print_stacktrace(ptr noundef %3673) #12
  %3675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3676 = trunc nuw i8 %3675 to i1
  br i1 %3676, label %3677, label %3681

3677:                                             ; preds = %3671
  %3678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3679 = call i32 @fileno(ptr noundef %3678) #12
  %3680 = call i32 @isatty(i32 noundef %3679) #12
  %.not713 = icmp eq i32 %3680, 0
  br i1 %.not713, label %3681, label %3682

3681:                                             ; preds = %3677, %3671
  br label %3682

3682:                                             ; preds = %3677, %3681
  %.str.5.sink1914 = phi ptr [ @.str.5, %3681 ], [ @.str.2, %3677 ]
  store i32 %3672, ptr %302, align 4, !tbaa !5
  %3683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3684 = load i32, ptr @test_count, align 4, !tbaa !5
  %3685 = load i32, ptr %248, align 4, !tbaa !5
  %3686 = call ptr @s2n_strerror(i32 noundef %3685, ptr noundef nonnull @.str.4) #12
  %3687 = load i32, ptr %248, align 4, !tbaa !5
  %3688 = call ptr @s2n_strerror_debug(i32 noundef %3687, ptr noundef nonnull @.str.4) #12
  %3689 = load i32, ptr %302, align 4, !tbaa !5
  %3690 = call ptr @strerror(i32 noundef %3689) #12
  %3691 = load i32, ptr %302, align 4, !tbaa !5
  %3692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3683, ptr noundef nonnull %.str.5.sink1914, i32 noundef %3684, ptr noundef nonnull @.str.76, ptr noundef nonnull @.str.1, i32 noundef 374, ptr noundef %3686, ptr noundef %3688, ptr noundef %3690, i32 noundef %3691) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3693:                                             ; preds = %3665
  %3694 = add nsw i32 %3667, 4
  store i32 %3694, ptr @test_count, align 4, !tbaa !5
  %3695 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef nonnull %43, ptr noundef nonnull %189) #12
  %3696 = icmp eq i32 %3695, -1
  br i1 %3696, label %3697, label %3719

3697:                                             ; preds = %3693
  %3698 = load i32, ptr %302, align 4, !tbaa !5
  %3699 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3700 = call i32 @s2n_print_stacktrace(ptr noundef %3699) #12
  %3701 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3702 = trunc nuw i8 %3701 to i1
  br i1 %3702, label %3703, label %3707

3703:                                             ; preds = %3697
  %3704 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3705 = call i32 @fileno(ptr noundef %3704) #12
  %3706 = call i32 @isatty(i32 noundef %3705) #12
  %.not711 = icmp eq i32 %3706, 0
  br i1 %.not711, label %3707, label %3708

3707:                                             ; preds = %3703, %3697
  br label %3708

3708:                                             ; preds = %3703, %3707
  %.str.5.sink1923 = phi ptr [ @.str.5, %3707 ], [ @.str.2, %3703 ]
  store i32 %3698, ptr %302, align 4, !tbaa !5
  %3709 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3710 = load i32, ptr @test_count, align 4, !tbaa !5
  %3711 = load i32, ptr %248, align 4, !tbaa !5
  %3712 = call ptr @s2n_strerror(i32 noundef %3711, ptr noundef nonnull @.str.4) #12
  %3713 = load i32, ptr %248, align 4, !tbaa !5
  %3714 = call ptr @s2n_strerror_debug(i32 noundef %3713, ptr noundef nonnull @.str.4) #12
  %3715 = load i32, ptr %302, align 4, !tbaa !5
  %3716 = call ptr @strerror(i32 noundef %3715) #12
  %3717 = load i32, ptr %302, align 4, !tbaa !5
  %3718 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3709, ptr noundef nonnull %.str.5.sink1923, i32 noundef %3710, ptr noundef nonnull @.str.77, ptr noundef nonnull @.str.1, i32 noundef 378, ptr noundef %3712, ptr noundef %3714, ptr noundef %3716, i32 noundef %3717) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3719:                                             ; preds = %3693
  %3720 = load i32, ptr @test_count, align 4, !tbaa !5
  %3721 = add nsw i32 %3720, 1
  store i32 %3721, ptr @test_count, align 4, !tbaa !5
  %3722 = load ptr, ptr %3669, align 8, !tbaa !35
  %3723 = icmp eq ptr %3722, %189
  br i1 %3723, label %3746, label %3724

3724:                                             ; preds = %3719
  %3725 = load i32, ptr %302, align 4, !tbaa !5
  %3726 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3727 = call i32 @s2n_print_stacktrace(ptr noundef %3726) #12
  %3728 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3729 = trunc nuw i8 %3728 to i1
  br i1 %3729, label %3730, label %3734

3730:                                             ; preds = %3724
  %3731 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3732 = call i32 @fileno(ptr noundef %3731) #12
  %3733 = call i32 @isatty(i32 noundef %3732) #12
  %.not600 = icmp eq i32 %3733, 0
  br i1 %.not600, label %3734, label %3735

3734:                                             ; preds = %3730, %3724
  br label %3735

3735:                                             ; preds = %3730, %3734
  %.str.5.sink1932 = phi ptr [ @.str.5, %3734 ], [ @.str.2, %3730 ]
  store i32 %3725, ptr %302, align 4, !tbaa !5
  %3736 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3737 = load i32, ptr @test_count, align 4, !tbaa !5
  %3738 = load i32, ptr %248, align 4, !tbaa !5
  %3739 = call ptr @s2n_strerror(i32 noundef %3738, ptr noundef nonnull @.str.4) #12
  %3740 = load i32, ptr %248, align 4, !tbaa !5
  %3741 = call ptr @s2n_strerror_debug(i32 noundef %3740, ptr noundef nonnull @.str.4) #12
  %3742 = load i32, ptr %302, align 4, !tbaa !5
  %3743 = call ptr @strerror(i32 noundef %3742) #12
  %3744 = load i32, ptr %302, align 4, !tbaa !5
  %3745 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3736, ptr noundef nonnull %.str.5.sink1932, i32 noundef %3737, ptr noundef nonnull @.str.78, ptr noundef nonnull @.str.1, i32 noundef 379, ptr noundef %3739, ptr noundef %3741, ptr noundef %3743, i32 noundef %3744) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3746:                                             ; preds = %3719
  %3747 = add nsw i32 %3720, 2
  store i32 %3747, ptr @test_count, align 4, !tbaa !5
  %3748 = load i64, ptr %43, align 8, !tbaa !36
  %3749 = icmp eq i64 %3748, 0
  br i1 %3749, label %3772, label %3750

3750:                                             ; preds = %3746
  %3751 = load i32, ptr %302, align 4, !tbaa !5
  %3752 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3753 = call i32 @s2n_print_stacktrace(ptr noundef %3752) #12
  %3754 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3755 = trunc nuw i8 %3754 to i1
  br i1 %3755, label %3756, label %3760

3756:                                             ; preds = %3750
  %3757 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3758 = call i32 @fileno(ptr noundef %3757) #12
  %3759 = call i32 @isatty(i32 noundef %3758) #12
  %.not601 = icmp eq i32 %3759, 0
  br i1 %.not601, label %3760, label %3761

3760:                                             ; preds = %3756, %3750
  br label %3761

3761:                                             ; preds = %3756, %3760
  %.str.5.sink1941 = phi ptr [ @.str.5, %3760 ], [ @.str.2, %3756 ]
  store i32 %3751, ptr %302, align 4, !tbaa !5
  %3762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3763 = load i32, ptr @test_count, align 4, !tbaa !5
  %3764 = load i32, ptr %248, align 4, !tbaa !5
  %3765 = call ptr @s2n_strerror(i32 noundef %3764, ptr noundef nonnull @.str.4) #12
  %3766 = load i32, ptr %248, align 4, !tbaa !5
  %3767 = call ptr @s2n_strerror_debug(i32 noundef %3766, ptr noundef nonnull @.str.4) #12
  %3768 = load i32, ptr %302, align 4, !tbaa !5
  %3769 = call ptr @strerror(i32 noundef %3768) #12
  %3770 = load i32, ptr %302, align 4, !tbaa !5
  %3771 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3762, ptr noundef nonnull %.str.5.sink1941, i32 noundef %3763, ptr noundef nonnull @.str.69, ptr noundef nonnull @.str.1, i32 noundef 380, ptr noundef %3765, ptr noundef %3767, ptr noundef %3769, i32 noundef %3770) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3772:                                             ; preds = %3746
  call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %43) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %44) #12
  %3773 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %3773, ptr %44, align 8, !tbaa !9
  %3774 = load i32, ptr @test_count, align 4, !tbaa !5
  %3775 = add nsw i32 %3774, 1
  store i32 %3775, ptr @test_count, align 4, !tbaa !5
  %3776 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef %3773, ptr noundef null) #12
  %3777 = icmp eq i32 %3776, -1
  br i1 %3777, label %3800, label %3778

3778:                                             ; preds = %3772
  %3779 = load i32, ptr %302, align 4, !tbaa !5
  %3780 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3781 = call i32 @s2n_print_stacktrace(ptr noundef %3780) #12
  %3782 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3783 = trunc nuw i8 %3782 to i1
  br i1 %3783, label %3784, label %3788

3784:                                             ; preds = %3778
  %3785 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3786 = call i32 @fileno(ptr noundef %3785) #12
  %3787 = call i32 @isatty(i32 noundef %3786) #12
  %.not602 = icmp eq i32 %3787, 0
  br i1 %.not602, label %3788, label %3789

3788:                                             ; preds = %3784, %3778
  br label %3789

3789:                                             ; preds = %3784, %3788
  %.str.5.sink1950 = phi ptr [ @.str.5, %3788 ], [ @.str.2, %3784 ]
  store i32 %3779, ptr %302, align 4, !tbaa !5
  %3790 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3791 = load i32, ptr @test_count, align 4, !tbaa !5
  %3792 = load i32, ptr %248, align 4, !tbaa !5
  %3793 = call ptr @s2n_strerror(i32 noundef %3792, ptr noundef nonnull @.str.4) #12
  %3794 = load i32, ptr %248, align 4, !tbaa !5
  %3795 = call ptr @s2n_strerror_debug(i32 noundef %3794, ptr noundef nonnull @.str.4) #12
  %3796 = load i32, ptr %302, align 4, !tbaa !5
  %3797 = call ptr @strerror(i32 noundef %3796) #12
  %3798 = load i32, ptr %302, align 4, !tbaa !5
  %3799 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3790, ptr noundef nonnull %.str.5.sink1950, i32 noundef %3791, ptr noundef nonnull @.str.79, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3793, ptr noundef %3795, ptr noundef %3797, i32 noundef %3798) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3800:                                             ; preds = %3772
  %3801 = load i32, ptr @test_count, align 4, !tbaa !5
  %3802 = add nsw i32 %3801, 1
  store i32 %3802, ptr @test_count, align 4, !tbaa !5
  %3803 = load i32, ptr %248, align 4, !tbaa !5
  %3804 = icmp eq i32 %3803, 469762089
  br i1 %3804, label %3827, label %3805

3805:                                             ; preds = %3800
  %3806 = load i32, ptr %302, align 4, !tbaa !5
  %3807 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3808 = call i32 @s2n_print_stacktrace(ptr noundef %3807) #12
  %3809 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3810 = trunc nuw i8 %3809 to i1
  br i1 %3810, label %3811, label %3815

3811:                                             ; preds = %3805
  %3812 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3813 = call i32 @fileno(ptr noundef %3812) #12
  %3814 = call i32 @isatty(i32 noundef %3813) #12
  %.not603 = icmp eq i32 %3814, 0
  br i1 %.not603, label %3815, label %3816

3815:                                             ; preds = %3811, %3805
  br label %3816

3816:                                             ; preds = %3811, %3815
  %.str.5.sink1959 = phi ptr [ @.str.5, %3815 ], [ @.str.2, %3811 ]
  store i32 %3806, ptr %302, align 4, !tbaa !5
  %3817 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3818 = load i32, ptr @test_count, align 4, !tbaa !5
  %3819 = load i32, ptr %248, align 4, !tbaa !5
  %3820 = call ptr @s2n_strerror(i32 noundef %3819, ptr noundef nonnull @.str.4) #12
  %3821 = load i32, ptr %248, align 4, !tbaa !5
  %3822 = call ptr @s2n_strerror_debug(i32 noundef %3821, ptr noundef nonnull @.str.4) #12
  %3823 = load i32, ptr %302, align 4, !tbaa !5
  %3824 = call ptr @strerror(i32 noundef %3823) #12
  %3825 = load i32, ptr %302, align 4, !tbaa !5
  %3826 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3817, ptr noundef nonnull %.str.5.sink1959, i32 noundef %3818, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3820, ptr noundef %3822, ptr noundef %3824, i32 noundef %3825) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3827:                                             ; preds = %3800
  %3828 = add nsw i32 %3801, 2
  store i32 %3828, ptr @test_count, align 4, !tbaa !5
  %3829 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %3830 = icmp eq ptr %3829, null
  br i1 %3830, label %3831, label %3853

3831:                                             ; preds = %3827
  %3832 = load i32, ptr %302, align 4, !tbaa !5
  %3833 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3834 = call i32 @s2n_print_stacktrace(ptr noundef %3833) #12
  %3835 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3836 = trunc nuw i8 %3835 to i1
  br i1 %3836, label %3837, label %3841

3837:                                             ; preds = %3831
  %3838 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3839 = call i32 @fileno(ptr noundef %3838) #12
  %3840 = call i32 @isatty(i32 noundef %3839) #12
  %.not710 = icmp eq i32 %3840, 0
  br i1 %.not710, label %3841, label %3842

3841:                                             ; preds = %3837, %3831
  br label %3842

3842:                                             ; preds = %3837, %3841
  %.str.5.sink1968 = phi ptr [ @.str.5, %3841 ], [ @.str.2, %3837 ]
  store i32 %3832, ptr %302, align 4, !tbaa !5
  %3843 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3844 = load i32, ptr @test_count, align 4, !tbaa !5
  %3845 = load i32, ptr %248, align 4, !tbaa !5
  %3846 = call ptr @s2n_strerror(i32 noundef %3845, ptr noundef nonnull @.str.4) #12
  %3847 = load i32, ptr %248, align 4, !tbaa !5
  %3848 = call ptr @s2n_strerror_debug(i32 noundef %3847, ptr noundef nonnull @.str.4) #12
  %3849 = load i32, ptr %302, align 4, !tbaa !5
  %3850 = call ptr @strerror(i32 noundef %3849) #12
  %3851 = load i32, ptr %302, align 4, !tbaa !5
  %3852 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3843, ptr noundef nonnull %.str.5.sink1968, i32 noundef %3844, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 393, ptr noundef %3846, ptr noundef %3848, ptr noundef %3850, i32 noundef %3851) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3853:                                             ; preds = %3827
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %45) #12
  store i32 0, ptr %45, align 4, !tbaa !5
  %3854 = load i32, ptr @test_count, align 4, !tbaa !5
  %3855 = add nsw i32 %3854, 1
  store i32 %3855, ptr @test_count, align 4, !tbaa !5
  %3856 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef null, ptr noundef nonnull %45) #12
  %3857 = icmp eq i32 %3856, -1
  br i1 %3857, label %3880, label %3858

3858:                                             ; preds = %3853
  %3859 = load i32, ptr %302, align 4, !tbaa !5
  %3860 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3861 = call i32 @s2n_print_stacktrace(ptr noundef %3860) #12
  %3862 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3863 = trunc nuw i8 %3862 to i1
  br i1 %3863, label %3864, label %3868

3864:                                             ; preds = %3858
  %3865 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3866 = call i32 @fileno(ptr noundef %3865) #12
  %3867 = call i32 @isatty(i32 noundef %3866) #12
  %.not604 = icmp eq i32 %3867, 0
  br i1 %.not604, label %3868, label %3869

3868:                                             ; preds = %3864, %3858
  br label %3869

3869:                                             ; preds = %3864, %3868
  %.str.5.sink1977 = phi ptr [ @.str.5, %3868 ], [ @.str.2, %3864 ]
  store i32 %3859, ptr %302, align 4, !tbaa !5
  %3870 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3871 = load i32, ptr @test_count, align 4, !tbaa !5
  %3872 = load i32, ptr %248, align 4, !tbaa !5
  %3873 = call ptr @s2n_strerror(i32 noundef %3872, ptr noundef nonnull @.str.4) #12
  %3874 = load i32, ptr %248, align 4, !tbaa !5
  %3875 = call ptr @s2n_strerror_debug(i32 noundef %3874, ptr noundef nonnull @.str.4) #12
  %3876 = load i32, ptr %302, align 4, !tbaa !5
  %3877 = call ptr @strerror(i32 noundef %3876) #12
  %3878 = load i32, ptr %302, align 4, !tbaa !5
  %3879 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3870, ptr noundef nonnull %.str.5.sink1977, i32 noundef %3871, ptr noundef nonnull @.str.80, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %3873, ptr noundef %3875, ptr noundef %3877, i32 noundef %3878) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3880:                                             ; preds = %3853
  %3881 = load i32, ptr @test_count, align 4, !tbaa !5
  %3882 = add nsw i32 %3881, 1
  store i32 %3882, ptr @test_count, align 4, !tbaa !5
  %3883 = load i32, ptr %248, align 4, !tbaa !5
  %3884 = icmp eq i32 %3883, 469762089
  br i1 %3884, label %3907, label %3885

3885:                                             ; preds = %3880
  %3886 = load i32, ptr %302, align 4, !tbaa !5
  %3887 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3888 = call i32 @s2n_print_stacktrace(ptr noundef %3887) #12
  %3889 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3890 = trunc nuw i8 %3889 to i1
  br i1 %3890, label %3891, label %3895

3891:                                             ; preds = %3885
  %3892 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3893 = call i32 @fileno(ptr noundef %3892) #12
  %3894 = call i32 @isatty(i32 noundef %3893) #12
  %.not605 = icmp eq i32 %3894, 0
  br i1 %.not605, label %3895, label %3896

3895:                                             ; preds = %3891, %3885
  br label %3896

3896:                                             ; preds = %3891, %3895
  %.str.5.sink1986 = phi ptr [ @.str.5, %3895 ], [ @.str.2, %3891 ]
  store i32 %3886, ptr %302, align 4, !tbaa !5
  %3897 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3898 = load i32, ptr @test_count, align 4, !tbaa !5
  %3899 = load i32, ptr %248, align 4, !tbaa !5
  %3900 = call ptr @s2n_strerror(i32 noundef %3899, ptr noundef nonnull @.str.4) #12
  %3901 = load i32, ptr %248, align 4, !tbaa !5
  %3902 = call ptr @s2n_strerror_debug(i32 noundef %3901, ptr noundef nonnull @.str.4) #12
  %3903 = load i32, ptr %302, align 4, !tbaa !5
  %3904 = call ptr @strerror(i32 noundef %3903) #12
  %3905 = load i32, ptr %302, align 4, !tbaa !5
  %3906 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3897, ptr noundef nonnull %.str.5.sink1986, i32 noundef %3898, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %3900, ptr noundef %3902, ptr noundef %3904, i32 noundef %3905) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3907:                                             ; preds = %3880
  %3908 = add nsw i32 %3881, 2
  store i32 %3908, ptr @test_count, align 4, !tbaa !5
  %3909 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %3910 = icmp eq ptr %3909, null
  br i1 %3910, label %3911, label %3933

3911:                                             ; preds = %3907
  %3912 = load i32, ptr %302, align 4, !tbaa !5
  %3913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3914 = call i32 @s2n_print_stacktrace(ptr noundef %3913) #12
  %3915 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3916 = trunc nuw i8 %3915 to i1
  br i1 %3916, label %3917, label %3921

3917:                                             ; preds = %3911
  %3918 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3919 = call i32 @fileno(ptr noundef %3918) #12
  %3920 = call i32 @isatty(i32 noundef %3919) #12
  %.not709 = icmp eq i32 %3920, 0
  br i1 %.not709, label %3921, label %3922

3921:                                             ; preds = %3917, %3911
  br label %3922

3922:                                             ; preds = %3917, %3921
  %.str.5.sink1995 = phi ptr [ @.str.5, %3921 ], [ @.str.2, %3917 ]
  store i32 %3912, ptr %302, align 4, !tbaa !5
  %3923 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3924 = load i32, ptr @test_count, align 4, !tbaa !5
  %3925 = load i32, ptr %248, align 4, !tbaa !5
  %3926 = call ptr @s2n_strerror(i32 noundef %3925, ptr noundef nonnull @.str.4) #12
  %3927 = load i32, ptr %248, align 4, !tbaa !5
  %3928 = call ptr @s2n_strerror_debug(i32 noundef %3927, ptr noundef nonnull @.str.4) #12
  %3929 = load i32, ptr %302, align 4, !tbaa !5
  %3930 = call ptr @strerror(i32 noundef %3929) #12
  %3931 = load i32, ptr %302, align 4, !tbaa !5
  %3932 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3923, ptr noundef nonnull %.str.5.sink1995, i32 noundef %3924, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 398, ptr noundef %3926, ptr noundef %3928, ptr noundef %3930, i32 noundef %3931) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3933:                                             ; preds = %3907
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %45) #12
  %3934 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %44) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %44) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %46) #12
  %3935 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %3935, ptr %46, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %47) #12
  store i32 0, ptr %47, align 4, !tbaa !5
  %3936 = load i32, ptr @test_count, align 4, !tbaa !5
  %3937 = add nsw i32 %3936, 1
  store i32 %3937, ptr @test_count, align 4, !tbaa !5
  %3938 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef %3935, ptr noundef nonnull %47) #12
  %3939 = icmp eq i32 %3938, -1
  br i1 %3939, label %3940, label %3962

3940:                                             ; preds = %3933
  %3941 = load i32, ptr %302, align 4, !tbaa !5
  %3942 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3943 = call i32 @s2n_print_stacktrace(ptr noundef %3942) #12
  %3944 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3945 = trunc nuw i8 %3944 to i1
  br i1 %3945, label %3946, label %3950

3946:                                             ; preds = %3940
  %3947 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3948 = call i32 @fileno(ptr noundef %3947) #12
  %3949 = call i32 @isatty(i32 noundef %3948) #12
  %.not708 = icmp eq i32 %3949, 0
  br i1 %.not708, label %3950, label %3951

3950:                                             ; preds = %3946, %3940
  br label %3951

3951:                                             ; preds = %3946, %3950
  %.str.5.sink2004 = phi ptr [ @.str.5, %3950 ], [ @.str.2, %3946 ]
  store i32 %3941, ptr %302, align 4, !tbaa !5
  %3952 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3953 = load i32, ptr @test_count, align 4, !tbaa !5
  %3954 = load i32, ptr %248, align 4, !tbaa !5
  %3955 = call ptr @s2n_strerror(i32 noundef %3954, ptr noundef nonnull @.str.4) #12
  %3956 = load i32, ptr %248, align 4, !tbaa !5
  %3957 = call ptr @s2n_strerror_debug(i32 noundef %3956, ptr noundef nonnull @.str.4) #12
  %3958 = load i32, ptr %302, align 4, !tbaa !5
  %3959 = call ptr @strerror(i32 noundef %3958) #12
  %3960 = load i32, ptr %302, align 4, !tbaa !5
  %3961 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3952, ptr noundef nonnull %.str.5.sink2004, i32 noundef %3953, ptr noundef nonnull @.str.81, ptr noundef nonnull @.str.1, i32 noundef 406, ptr noundef %3955, ptr noundef %3957, ptr noundef %3959, i32 noundef %3960) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3962:                                             ; preds = %3933
  %3963 = load i32, ptr @test_count, align 4, !tbaa !5
  %3964 = add nsw i32 %3963, 1
  store i32 %3964, ptr @test_count, align 4, !tbaa !5
  %3965 = load i32, ptr %47, align 4, !tbaa !5
  %3966 = load i32, ptr getelementptr inbounds (i8, ptr @ja3_fingerprint, i64 4), align 4, !tbaa !41
  %3967 = icmp eq i32 %3965, %3966
  br i1 %3967, label %3990, label %3968

3968:                                             ; preds = %3962
  %3969 = load i32, ptr %302, align 4, !tbaa !5
  %3970 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3971 = call i32 @s2n_print_stacktrace(ptr noundef %3970) #12
  %3972 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %3973 = trunc nuw i8 %3972 to i1
  br i1 %3973, label %3974, label %3978

3974:                                             ; preds = %3968
  %3975 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3976 = call i32 @fileno(ptr noundef %3975) #12
  %3977 = call i32 @isatty(i32 noundef %3976) #12
  %.not606 = icmp eq i32 %3977, 0
  br i1 %.not606, label %3978, label %3979

3978:                                             ; preds = %3974, %3968
  br label %3979

3979:                                             ; preds = %3974, %3978
  %.str.5.sink2013 = phi ptr [ @.str.5, %3978 ], [ @.str.2, %3974 ]
  store i32 %3969, ptr %302, align 4, !tbaa !5
  %3980 = load ptr, ptr @stderr, align 8, !tbaa !9
  %3981 = load i32, ptr @test_count, align 4, !tbaa !5
  %3982 = load i32, ptr %248, align 4, !tbaa !5
  %3983 = call ptr @s2n_strerror(i32 noundef %3982, ptr noundef nonnull @.str.4) #12
  %3984 = load i32, ptr %248, align 4, !tbaa !5
  %3985 = call ptr @s2n_strerror_debug(i32 noundef %3984, ptr noundef nonnull @.str.4) #12
  %3986 = load i32, ptr %302, align 4, !tbaa !5
  %3987 = call ptr @strerror(i32 noundef %3986) #12
  %3988 = load i32, ptr %302, align 4, !tbaa !5
  %3989 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3980, ptr noundef nonnull %.str.5.sink2013, i32 noundef %3981, ptr noundef nonnull @.str.82, ptr noundef nonnull @.str.1, i32 noundef 407, ptr noundef %3983, ptr noundef %3985, ptr noundef %3987, i32 noundef %3988) #14
  call void @exit(i32 noundef 1) #15
  unreachable

3990:                                             ; preds = %3962
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %47) #12
  %3991 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %46) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %46) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %48) #12
  %3992 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %3992, ptr %48, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %49) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %49, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %50) #12
  store i32 0, ptr %50, align 4, !tbaa !5
  %3993 = load i32, ptr @test_count, align 4, !tbaa !5
  %3994 = add nsw i32 %3993, 1
  store i32 %3994, ptr @test_count, align 4, !tbaa !5
  %3995 = call i32 @s2n_fingerprint_get_hash(ptr noundef null, i32 noundef 100, ptr noundef nonnull %49, ptr noundef nonnull %50) #12
  %3996 = icmp eq i32 %3995, -1
  br i1 %3996, label %4019, label %3997

3997:                                             ; preds = %3990
  %3998 = load i32, ptr %302, align 4, !tbaa !5
  %3999 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4000 = call i32 @s2n_print_stacktrace(ptr noundef %3999) #12
  %4001 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4002 = trunc nuw i8 %4001 to i1
  br i1 %4002, label %4003, label %4007

4003:                                             ; preds = %3997
  %4004 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4005 = call i32 @fileno(ptr noundef %4004) #12
  %4006 = call i32 @isatty(i32 noundef %4005) #12
  %.not607 = icmp eq i32 %4006, 0
  br i1 %.not607, label %4007, label %4008

4007:                                             ; preds = %4003, %3997
  br label %4008

4008:                                             ; preds = %4003, %4007
  %.str.5.sink2022 = phi ptr [ @.str.5, %4007 ], [ @.str.2, %4003 ]
  store i32 %3998, ptr %302, align 4, !tbaa !5
  %4009 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4010 = load i32, ptr @test_count, align 4, !tbaa !5
  %4011 = load i32, ptr %248, align 4, !tbaa !5
  %4012 = call ptr @s2n_strerror(i32 noundef %4011, ptr noundef nonnull @.str.4) #12
  %4013 = load i32, ptr %248, align 4, !tbaa !5
  %4014 = call ptr @s2n_strerror_debug(i32 noundef %4013, ptr noundef nonnull @.str.4) #12
  %4015 = load i32, ptr %302, align 4, !tbaa !5
  %4016 = call ptr @strerror(i32 noundef %4015) #12
  %4017 = load i32, ptr %302, align 4, !tbaa !5
  %4018 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4009, ptr noundef nonnull %.str.5.sink2022, i32 noundef %4010, ptr noundef nonnull @.str.83, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4012, ptr noundef %4014, ptr noundef %4016, i32 noundef %4017) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4019:                                             ; preds = %3990
  %4020 = load i32, ptr @test_count, align 4, !tbaa !5
  %4021 = add nsw i32 %4020, 1
  store i32 %4021, ptr @test_count, align 4, !tbaa !5
  %4022 = load i32, ptr %248, align 4, !tbaa !5
  %4023 = icmp eq i32 %4022, 469762089
  br i1 %4023, label %4046, label %4024

4024:                                             ; preds = %4019
  %4025 = load i32, ptr %302, align 4, !tbaa !5
  %4026 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4027 = call i32 @s2n_print_stacktrace(ptr noundef %4026) #12
  %4028 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4029 = trunc nuw i8 %4028 to i1
  br i1 %4029, label %4030, label %4034

4030:                                             ; preds = %4024
  %4031 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4032 = call i32 @fileno(ptr noundef %4031) #12
  %4033 = call i32 @isatty(i32 noundef %4032) #12
  %.not608 = icmp eq i32 %4033, 0
  br i1 %.not608, label %4034, label %4035

4034:                                             ; preds = %4030, %4024
  br label %4035

4035:                                             ; preds = %4030, %4034
  %.str.5.sink2031 = phi ptr [ @.str.5, %4034 ], [ @.str.2, %4030 ]
  store i32 %4025, ptr %302, align 4, !tbaa !5
  %4036 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4037 = load i32, ptr @test_count, align 4, !tbaa !5
  %4038 = load i32, ptr %248, align 4, !tbaa !5
  %4039 = call ptr @s2n_strerror(i32 noundef %4038, ptr noundef nonnull @.str.4) #12
  %4040 = load i32, ptr %248, align 4, !tbaa !5
  %4041 = call ptr @s2n_strerror_debug(i32 noundef %4040, ptr noundef nonnull @.str.4) #12
  %4042 = load i32, ptr %302, align 4, !tbaa !5
  %4043 = call ptr @strerror(i32 noundef %4042) #12
  %4044 = load i32, ptr %302, align 4, !tbaa !5
  %4045 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4036, ptr noundef nonnull %.str.5.sink2031, i32 noundef %4037, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4039, ptr noundef %4041, ptr noundef %4043, i32 noundef %4044) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4046:                                             ; preds = %4019
  %4047 = add nsw i32 %4020, 2
  store i32 %4047, ptr @test_count, align 4, !tbaa !5
  %4048 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %4049 = icmp eq ptr %4048, null
  br i1 %4049, label %4050, label %4072

4050:                                             ; preds = %4046
  %4051 = load i32, ptr %302, align 4, !tbaa !5
  %4052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4053 = call i32 @s2n_print_stacktrace(ptr noundef %4052) #12
  %4054 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4055 = trunc nuw i8 %4054 to i1
  br i1 %4055, label %4056, label %4060

4056:                                             ; preds = %4050
  %4057 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4058 = call i32 @fileno(ptr noundef %4057) #12
  %4059 = call i32 @isatty(i32 noundef %4058) #12
  %.not707 = icmp eq i32 %4059, 0
  br i1 %.not707, label %4060, label %4061

4060:                                             ; preds = %4056, %4050
  br label %4061

4061:                                             ; preds = %4056, %4060
  %.str.5.sink2040 = phi ptr [ @.str.5, %4060 ], [ @.str.2, %4056 ]
  store i32 %4051, ptr %302, align 4, !tbaa !5
  %4062 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4063 = load i32, ptr @test_count, align 4, !tbaa !5
  %4064 = load i32, ptr %248, align 4, !tbaa !5
  %4065 = call ptr @s2n_strerror(i32 noundef %4064, ptr noundef nonnull @.str.4) #12
  %4066 = load i32, ptr %248, align 4, !tbaa !5
  %4067 = call ptr @s2n_strerror_debug(i32 noundef %4066, ptr noundef nonnull @.str.4) #12
  %4068 = load i32, ptr %302, align 4, !tbaa !5
  %4069 = call ptr @strerror(i32 noundef %4068) #12
  %4070 = load i32, ptr %302, align 4, !tbaa !5
  %4071 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4062, ptr noundef nonnull %.str.5.sink2040, i32 noundef %4063, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 422, ptr noundef %4065, ptr noundef %4067, ptr noundef %4069, i32 noundef %4070) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4072:                                             ; preds = %4046
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %4073 = load i32, ptr @test_count, align 4, !tbaa !5
  %4074 = add nsw i32 %4073, 1
  store i32 %4074, ptr @test_count, align 4, !tbaa !5
  %4075 = load ptr, ptr %48, align 8, !tbaa !9
  %4076 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4075, i32 noundef 100, ptr noundef null, ptr noundef nonnull %50) #12
  %4077 = icmp eq i32 %4076, -1
  br i1 %4077, label %4100, label %4078

4078:                                             ; preds = %4072
  %4079 = load i32, ptr %302, align 4, !tbaa !5
  %4080 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4081 = call i32 @s2n_print_stacktrace(ptr noundef %4080) #12
  %4082 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4083 = trunc nuw i8 %4082 to i1
  br i1 %4083, label %4084, label %4088

4084:                                             ; preds = %4078
  %4085 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4086 = call i32 @fileno(ptr noundef %4085) #12
  %4087 = call i32 @isatty(i32 noundef %4086) #12
  %.not609 = icmp eq i32 %4087, 0
  br i1 %.not609, label %4088, label %4089

4088:                                             ; preds = %4084, %4078
  br label %4089

4089:                                             ; preds = %4084, %4088
  %.str.5.sink2049 = phi ptr [ @.str.5, %4088 ], [ @.str.2, %4084 ]
  store i32 %4079, ptr %302, align 4, !tbaa !5
  %4090 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4091 = load i32, ptr @test_count, align 4, !tbaa !5
  %4092 = load i32, ptr %248, align 4, !tbaa !5
  %4093 = call ptr @s2n_strerror(i32 noundef %4092, ptr noundef nonnull @.str.4) #12
  %4094 = load i32, ptr %248, align 4, !tbaa !5
  %4095 = call ptr @s2n_strerror_debug(i32 noundef %4094, ptr noundef nonnull @.str.4) #12
  %4096 = load i32, ptr %302, align 4, !tbaa !5
  %4097 = call ptr @strerror(i32 noundef %4096) #12
  %4098 = load i32, ptr %302, align 4, !tbaa !5
  %4099 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4090, ptr noundef nonnull %.str.5.sink2049, i32 noundef %4091, ptr noundef nonnull @.str.84, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %4093, ptr noundef %4095, ptr noundef %4097, i32 noundef %4098) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4100:                                             ; preds = %4072
  %4101 = load i32, ptr @test_count, align 4, !tbaa !5
  %4102 = add nsw i32 %4101, 1
  store i32 %4102, ptr @test_count, align 4, !tbaa !5
  %4103 = load i32, ptr %248, align 4, !tbaa !5
  %4104 = icmp eq i32 %4103, 469762089
  br i1 %4104, label %4127, label %4105

4105:                                             ; preds = %4100
  %4106 = load i32, ptr %302, align 4, !tbaa !5
  %4107 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4108 = call i32 @s2n_print_stacktrace(ptr noundef %4107) #12
  %4109 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4110 = trunc nuw i8 %4109 to i1
  br i1 %4110, label %4111, label %4115

4111:                                             ; preds = %4105
  %4112 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4113 = call i32 @fileno(ptr noundef %4112) #12
  %4114 = call i32 @isatty(i32 noundef %4113) #12
  %.not610 = icmp eq i32 %4114, 0
  br i1 %.not610, label %4115, label %4116

4115:                                             ; preds = %4111, %4105
  br label %4116

4116:                                             ; preds = %4111, %4115
  %.str.5.sink2058 = phi ptr [ @.str.5, %4115 ], [ @.str.2, %4111 ]
  store i32 %4106, ptr %302, align 4, !tbaa !5
  %4117 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4118 = load i32, ptr @test_count, align 4, !tbaa !5
  %4119 = load i32, ptr %248, align 4, !tbaa !5
  %4120 = call ptr @s2n_strerror(i32 noundef %4119, ptr noundef nonnull @.str.4) #12
  %4121 = load i32, ptr %248, align 4, !tbaa !5
  %4122 = call ptr @s2n_strerror_debug(i32 noundef %4121, ptr noundef nonnull @.str.4) #12
  %4123 = load i32, ptr %302, align 4, !tbaa !5
  %4124 = call ptr @strerror(i32 noundef %4123) #12
  %4125 = load i32, ptr %302, align 4, !tbaa !5
  %4126 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4117, ptr noundef nonnull %.str.5.sink2058, i32 noundef %4118, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %4120, ptr noundef %4122, ptr noundef %4124, i32 noundef %4125) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4127:                                             ; preds = %4100
  %4128 = add nsw i32 %4101, 2
  store i32 %4128, ptr @test_count, align 4, !tbaa !5
  %4129 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %4130 = icmp eq ptr %4129, null
  br i1 %4130, label %4131, label %4153

4131:                                             ; preds = %4127
  %4132 = load i32, ptr %302, align 4, !tbaa !5
  %4133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4134 = call i32 @s2n_print_stacktrace(ptr noundef %4133) #12
  %4135 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4136 = trunc nuw i8 %4135 to i1
  br i1 %4136, label %4137, label %4141

4137:                                             ; preds = %4131
  %4138 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4139 = call i32 @fileno(ptr noundef %4138) #12
  %4140 = call i32 @isatty(i32 noundef %4139) #12
  %.not706 = icmp eq i32 %4140, 0
  br i1 %.not706, label %4141, label %4142

4141:                                             ; preds = %4137, %4131
  br label %4142

4142:                                             ; preds = %4137, %4141
  %.str.5.sink2067 = phi ptr [ @.str.5, %4141 ], [ @.str.2, %4137 ]
  store i32 %4132, ptr %302, align 4, !tbaa !5
  %4143 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4144 = load i32, ptr @test_count, align 4, !tbaa !5
  %4145 = load i32, ptr %248, align 4, !tbaa !5
  %4146 = call ptr @s2n_strerror(i32 noundef %4145, ptr noundef nonnull @.str.4) #12
  %4147 = load i32, ptr %248, align 4, !tbaa !5
  %4148 = call ptr @s2n_strerror_debug(i32 noundef %4147, ptr noundef nonnull @.str.4) #12
  %4149 = load i32, ptr %302, align 4, !tbaa !5
  %4150 = call ptr @strerror(i32 noundef %4149) #12
  %4151 = load i32, ptr %302, align 4, !tbaa !5
  %4152 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4143, ptr noundef nonnull %.str.5.sink2067, i32 noundef %4144, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 425, ptr noundef %4146, ptr noundef %4148, ptr noundef %4150, i32 noundef %4151) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4153:                                             ; preds = %4127
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %4154 = load i32, ptr @test_count, align 4, !tbaa !5
  %4155 = add nsw i32 %4154, 1
  store i32 %4155, ptr @test_count, align 4, !tbaa !5
  %4156 = load ptr, ptr %48, align 8, !tbaa !9
  %4157 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4156, i32 noundef 100, ptr noundef nonnull %49, ptr noundef null) #12
  %4158 = icmp eq i32 %4157, -1
  br i1 %4158, label %4181, label %4159

4159:                                             ; preds = %4153
  %4160 = load i32, ptr %302, align 4, !tbaa !5
  %4161 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4162 = call i32 @s2n_print_stacktrace(ptr noundef %4161) #12
  %4163 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4164 = trunc nuw i8 %4163 to i1
  br i1 %4164, label %4165, label %4169

4165:                                             ; preds = %4159
  %4166 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4167 = call i32 @fileno(ptr noundef %4166) #12
  %4168 = call i32 @isatty(i32 noundef %4167) #12
  %.not611 = icmp eq i32 %4168, 0
  br i1 %.not611, label %4169, label %4170

4169:                                             ; preds = %4165, %4159
  br label %4170

4170:                                             ; preds = %4165, %4169
  %.str.5.sink2076 = phi ptr [ @.str.5, %4169 ], [ @.str.2, %4165 ]
  store i32 %4160, ptr %302, align 4, !tbaa !5
  %4171 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4172 = load i32, ptr @test_count, align 4, !tbaa !5
  %4173 = load i32, ptr %248, align 4, !tbaa !5
  %4174 = call ptr @s2n_strerror(i32 noundef %4173, ptr noundef nonnull @.str.4) #12
  %4175 = load i32, ptr %248, align 4, !tbaa !5
  %4176 = call ptr @s2n_strerror_debug(i32 noundef %4175, ptr noundef nonnull @.str.4) #12
  %4177 = load i32, ptr %302, align 4, !tbaa !5
  %4178 = call ptr @strerror(i32 noundef %4177) #12
  %4179 = load i32, ptr %302, align 4, !tbaa !5
  %4180 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4171, ptr noundef nonnull %.str.5.sink2076, i32 noundef %4172, ptr noundef nonnull @.str.85, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4174, ptr noundef %4176, ptr noundef %4178, i32 noundef %4179) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4181:                                             ; preds = %4153
  %4182 = load i32, ptr @test_count, align 4, !tbaa !5
  %4183 = add nsw i32 %4182, 1
  store i32 %4183, ptr @test_count, align 4, !tbaa !5
  %4184 = load i32, ptr %248, align 4, !tbaa !5
  %4185 = icmp eq i32 %4184, 469762089
  br i1 %4185, label %4208, label %4186

4186:                                             ; preds = %4181
  %4187 = load i32, ptr %302, align 4, !tbaa !5
  %4188 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4189 = call i32 @s2n_print_stacktrace(ptr noundef %4188) #12
  %4190 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4191 = trunc nuw i8 %4190 to i1
  br i1 %4191, label %4192, label %4196

4192:                                             ; preds = %4186
  %4193 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4194 = call i32 @fileno(ptr noundef %4193) #12
  %4195 = call i32 @isatty(i32 noundef %4194) #12
  %.not612 = icmp eq i32 %4195, 0
  br i1 %.not612, label %4196, label %4197

4196:                                             ; preds = %4192, %4186
  br label %4197

4197:                                             ; preds = %4192, %4196
  %.str.5.sink2085 = phi ptr [ @.str.5, %4196 ], [ @.str.2, %4192 ]
  store i32 %4187, ptr %302, align 4, !tbaa !5
  %4198 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4199 = load i32, ptr @test_count, align 4, !tbaa !5
  %4200 = load i32, ptr %248, align 4, !tbaa !5
  %4201 = call ptr @s2n_strerror(i32 noundef %4200, ptr noundef nonnull @.str.4) #12
  %4202 = load i32, ptr %248, align 4, !tbaa !5
  %4203 = call ptr @s2n_strerror_debug(i32 noundef %4202, ptr noundef nonnull @.str.4) #12
  %4204 = load i32, ptr %302, align 4, !tbaa !5
  %4205 = call ptr @strerror(i32 noundef %4204) #12
  %4206 = load i32, ptr %302, align 4, !tbaa !5
  %4207 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4198, ptr noundef nonnull %.str.5.sink2085, i32 noundef %4199, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4201, ptr noundef %4203, ptr noundef %4205, i32 noundef %4206) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4208:                                             ; preds = %4181
  %4209 = add nsw i32 %4182, 2
  store i32 %4209, ptr @test_count, align 4, !tbaa !5
  %4210 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %4211 = icmp eq ptr %4210, null
  br i1 %4211, label %4212, label %4234

4212:                                             ; preds = %4208
  %4213 = load i32, ptr %302, align 4, !tbaa !5
  %4214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4215 = call i32 @s2n_print_stacktrace(ptr noundef %4214) #12
  %4216 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4217 = trunc nuw i8 %4216 to i1
  br i1 %4217, label %4218, label %4222

4218:                                             ; preds = %4212
  %4219 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4220 = call i32 @fileno(ptr noundef %4219) #12
  %4221 = call i32 @isatty(i32 noundef %4220) #12
  %.not705 = icmp eq i32 %4221, 0
  br i1 %.not705, label %4222, label %4223

4222:                                             ; preds = %4218, %4212
  br label %4223

4223:                                             ; preds = %4218, %4222
  %.str.5.sink2094 = phi ptr [ @.str.5, %4222 ], [ @.str.2, %4218 ]
  store i32 %4213, ptr %302, align 4, !tbaa !5
  %4224 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4225 = load i32, ptr @test_count, align 4, !tbaa !5
  %4226 = load i32, ptr %248, align 4, !tbaa !5
  %4227 = call ptr @s2n_strerror(i32 noundef %4226, ptr noundef nonnull @.str.4) #12
  %4228 = load i32, ptr %248, align 4, !tbaa !5
  %4229 = call ptr @s2n_strerror_debug(i32 noundef %4228, ptr noundef nonnull @.str.4) #12
  %4230 = load i32, ptr %302, align 4, !tbaa !5
  %4231 = call ptr @strerror(i32 noundef %4230) #12
  %4232 = load i32, ptr %302, align 4, !tbaa !5
  %4233 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4224, ptr noundef nonnull %.str.5.sink2094, i32 noundef %4225, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 428, ptr noundef %4227, ptr noundef %4229, ptr noundef %4231, i32 noundef %4232) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4234:                                             ; preds = %4208
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %50) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %49) #12
  %4235 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %48) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %48) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %51) #12
  %4236 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %4236, ptr %51, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %52) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %52, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %53) #12
  store i32 0, ptr %53, align 4, !tbaa !5
  %4237 = load i32, ptr @test_count, align 4, !tbaa !5
  %4238 = add nsw i32 %4237, 1
  store i32 %4238, ptr @test_count, align 4, !tbaa !5
  %4239 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4236, i32 noundef 100, ptr noundef nonnull %52, ptr noundef nonnull %53) #12
  %4240 = icmp eq i32 %4239, -1
  br i1 %4240, label %4263, label %4241

4241:                                             ; preds = %4234
  %4242 = load i32, ptr %302, align 4, !tbaa !5
  %4243 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4244 = call i32 @s2n_print_stacktrace(ptr noundef %4243) #12
  %4245 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4246 = trunc nuw i8 %4245 to i1
  br i1 %4246, label %4247, label %4251

4247:                                             ; preds = %4241
  %4248 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4249 = call i32 @fileno(ptr noundef %4248) #12
  %4250 = call i32 @isatty(i32 noundef %4249) #12
  %.not613 = icmp eq i32 %4250, 0
  br i1 %.not613, label %4251, label %4252

4251:                                             ; preds = %4247, %4241
  br label %4252

4252:                                             ; preds = %4247, %4251
  %.str.5.sink2103 = phi ptr [ @.str.5, %4251 ], [ @.str.2, %4247 ]
  store i32 %4242, ptr %302, align 4, !tbaa !5
  %4253 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4254 = load i32, ptr @test_count, align 4, !tbaa !5
  %4255 = load i32, ptr %248, align 4, !tbaa !5
  %4256 = call ptr @s2n_strerror(i32 noundef %4255, ptr noundef nonnull @.str.4) #12
  %4257 = load i32, ptr %248, align 4, !tbaa !5
  %4258 = call ptr @s2n_strerror_debug(i32 noundef %4257, ptr noundef nonnull @.str.4) #12
  %4259 = load i32, ptr %302, align 4, !tbaa !5
  %4260 = call ptr @strerror(i32 noundef %4259) #12
  %4261 = load i32, ptr %302, align 4, !tbaa !5
  %4262 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4253, ptr noundef nonnull %.str.5.sink2103, i32 noundef %4254, ptr noundef nonnull @.str.86, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %4256, ptr noundef %4258, ptr noundef %4260, i32 noundef %4261) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4263:                                             ; preds = %4234
  %4264 = load i32, ptr @test_count, align 4, !tbaa !5
  %4265 = add nsw i32 %4264, 1
  store i32 %4265, ptr @test_count, align 4, !tbaa !5
  %4266 = load i32, ptr %248, align 4, !tbaa !5
  %4267 = icmp eq i32 %4266, 469762112
  br i1 %4267, label %4290, label %4268

4268:                                             ; preds = %4263
  %4269 = load i32, ptr %302, align 4, !tbaa !5
  %4270 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4271 = call i32 @s2n_print_stacktrace(ptr noundef %4270) #12
  %4272 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4273 = trunc nuw i8 %4272 to i1
  br i1 %4273, label %4274, label %4278

4274:                                             ; preds = %4268
  %4275 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4276 = call i32 @fileno(ptr noundef %4275) #12
  %4277 = call i32 @isatty(i32 noundef %4276) #12
  %.not614 = icmp eq i32 %4277, 0
  br i1 %.not614, label %4278, label %4279

4278:                                             ; preds = %4274, %4268
  br label %4279

4279:                                             ; preds = %4274, %4278
  %.str.5.sink2112 = phi ptr [ @.str.5, %4278 ], [ @.str.2, %4274 ]
  store i32 %4269, ptr %302, align 4, !tbaa !5
  %4280 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4281 = load i32, ptr @test_count, align 4, !tbaa !5
  %4282 = load i32, ptr %248, align 4, !tbaa !5
  %4283 = call ptr @s2n_strerror(i32 noundef %4282, ptr noundef nonnull @.str.4) #12
  %4284 = load i32, ptr %248, align 4, !tbaa !5
  %4285 = call ptr @s2n_strerror_debug(i32 noundef %4284, ptr noundef nonnull @.str.4) #12
  %4286 = load i32, ptr %302, align 4, !tbaa !5
  %4287 = call ptr @strerror(i32 noundef %4286) #12
  %4288 = load i32, ptr %302, align 4, !tbaa !5
  %4289 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4280, ptr noundef nonnull %.str.5.sink2112, i32 noundef %4281, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %4283, ptr noundef %4285, ptr noundef %4287, i32 noundef %4288) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4290:                                             ; preds = %4263
  %4291 = add nsw i32 %4264, 2
  store i32 %4291, ptr @test_count, align 4, !tbaa !5
  %4292 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #12
  %4293 = icmp eq ptr %4292, null
  br i1 %4293, label %4294, label %4316

4294:                                             ; preds = %4290
  %4295 = load i32, ptr %302, align 4, !tbaa !5
  %4296 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4297 = call i32 @s2n_print_stacktrace(ptr noundef %4296) #12
  %4298 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4299 = trunc nuw i8 %4298 to i1
  br i1 %4299, label %4300, label %4304

4300:                                             ; preds = %4294
  %4301 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4302 = call i32 @fileno(ptr noundef %4301) #12
  %4303 = call i32 @isatty(i32 noundef %4302) #12
  %.not704 = icmp eq i32 %4303, 0
  br i1 %.not704, label %4304, label %4305

4304:                                             ; preds = %4300, %4294
  br label %4305

4305:                                             ; preds = %4300, %4304
  %.str.5.sink2121 = phi ptr [ @.str.5, %4304 ], [ @.str.2, %4300 ]
  store i32 %4295, ptr %302, align 4, !tbaa !5
  %4306 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4307 = load i32, ptr @test_count, align 4, !tbaa !5
  %4308 = load i32, ptr %248, align 4, !tbaa !5
  %4309 = call ptr @s2n_strerror(i32 noundef %4308, ptr noundef nonnull @.str.4) #12
  %4310 = load i32, ptr %248, align 4, !tbaa !5
  %4311 = call ptr @s2n_strerror_debug(i32 noundef %4310, ptr noundef nonnull @.str.4) #12
  %4312 = load i32, ptr %302, align 4, !tbaa !5
  %4313 = call ptr @strerror(i32 noundef %4312) #12
  %4314 = load i32, ptr %302, align 4, !tbaa !5
  %4315 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4306, ptr noundef nonnull %.str.5.sink2121, i32 noundef %4307, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 440, ptr noundef %4309, ptr noundef %4311, ptr noundef %4313, i32 noundef %4314) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4316:                                             ; preds = %4290
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %53) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %52) #12
  %4317 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %51) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %51) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %54) #12
  %4318 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %4318, ptr %54, align 8, !tbaa !9
  %4319 = load i32, ptr @test_count, align 4, !tbaa !5
  %4320 = add nsw i32 %4319, 1
  store i32 %4320, ptr @test_count, align 4, !tbaa !5
  %4321 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %4318, ptr noundef nonnull %189) #12
  %4322 = icmp eq i32 %4321, -1
  br i1 %4322, label %4323, label %4345

4323:                                             ; preds = %4316
  %4324 = load i32, ptr %302, align 4, !tbaa !5
  %4325 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4326 = call i32 @s2n_print_stacktrace(ptr noundef %4325) #12
  %4327 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4328 = trunc nuw i8 %4327 to i1
  br i1 %4328, label %4329, label %4333

4329:                                             ; preds = %4323
  %4330 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4331 = call i32 @fileno(ptr noundef %4330) #12
  %4332 = call i32 @isatty(i32 noundef %4331) #12
  %.not703 = icmp eq i32 %4332, 0
  br i1 %.not703, label %4333, label %4334

4333:                                             ; preds = %4329, %4323
  br label %4334

4334:                                             ; preds = %4329, %4333
  %.str.5.sink2130 = phi ptr [ @.str.5, %4333 ], [ @.str.2, %4329 ]
  store i32 %4324, ptr %302, align 4, !tbaa !5
  %4335 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4336 = load i32, ptr @test_count, align 4, !tbaa !5
  %4337 = load i32, ptr %248, align 4, !tbaa !5
  %4338 = call ptr @s2n_strerror(i32 noundef %4337, ptr noundef nonnull @.str.4) #12
  %4339 = load i32, ptr %248, align 4, !tbaa !5
  %4340 = call ptr @s2n_strerror_debug(i32 noundef %4339, ptr noundef nonnull @.str.4) #12
  %4341 = load i32, ptr %302, align 4, !tbaa !5
  %4342 = call ptr @strerror(i32 noundef %4341) #12
  %4343 = load i32, ptr %302, align 4, !tbaa !5
  %4344 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4335, ptr noundef nonnull %.str.5.sink2130, i32 noundef %4336, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 447, ptr noundef %4338, ptr noundef %4340, ptr noundef %4342, i32 noundef %4343) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4345:                                             ; preds = %4316
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %55) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %55, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %56) #12
  store i32 0, ptr %56, align 4, !tbaa !5
  %4346 = load i32, ptr @test_count, align 4, !tbaa !5
  %4347 = add nsw i32 %4346, 1
  store i32 %4347, ptr @test_count, align 4, !tbaa !5
  %4348 = load ptr, ptr %54, align 8, !tbaa !9
  %4349 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4348, i32 noundef 100, ptr noundef nonnull %55, ptr noundef nonnull %56) #12
  %4350 = icmp eq i32 %4349, -1
  br i1 %4350, label %4351, label %4373

4351:                                             ; preds = %4345
  %4352 = load i32, ptr %302, align 4, !tbaa !5
  %4353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4354 = call i32 @s2n_print_stacktrace(ptr noundef %4353) #12
  %4355 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4356 = trunc nuw i8 %4355 to i1
  br i1 %4356, label %4357, label %4361

4357:                                             ; preds = %4351
  %4358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4359 = call i32 @fileno(ptr noundef %4358) #12
  %4360 = call i32 @isatty(i32 noundef %4359) #12
  %.not702 = icmp eq i32 %4360, 0
  br i1 %.not702, label %4361, label %4362

4361:                                             ; preds = %4357, %4351
  br label %4362

4362:                                             ; preds = %4357, %4361
  %.str.5.sink2139 = phi ptr [ @.str.5, %4361 ], [ @.str.2, %4357 ]
  store i32 %4352, ptr %302, align 4, !tbaa !5
  %4363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4364 = load i32, ptr @test_count, align 4, !tbaa !5
  %4365 = load i32, ptr %248, align 4, !tbaa !5
  %4366 = call ptr @s2n_strerror(i32 noundef %4365, ptr noundef nonnull @.str.4) #12
  %4367 = load i32, ptr %248, align 4, !tbaa !5
  %4368 = call ptr @s2n_strerror_debug(i32 noundef %4367, ptr noundef nonnull @.str.4) #12
  %4369 = load i32, ptr %302, align 4, !tbaa !5
  %4370 = call ptr @strerror(i32 noundef %4369) #12
  %4371 = load i32, ptr %302, align 4, !tbaa !5
  %4372 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4363, ptr noundef nonnull %.str.5.sink2139, i32 noundef %4364, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 452, ptr noundef %4366, ptr noundef %4368, ptr noundef %4370, i32 noundef %4371) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4373:                                             ; preds = %4345
  %4374 = load i32, ptr @test_count, align 4, !tbaa !5
  %4375 = add nsw i32 %4374, 1
  store i32 %4375, ptr @test_count, align 4, !tbaa !5
  %4376 = load i32, ptr %56, align 4, !tbaa !5
  %4377 = load i32, ptr getelementptr inbounds (i8, ptr @ja3_fingerprint, i64 4), align 4, !tbaa !41
  %4378 = icmp eq i32 %4376, %4377
  br i1 %4378, label %4401, label %4379

4379:                                             ; preds = %4373
  %4380 = load i32, ptr %302, align 4, !tbaa !5
  %4381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4382 = call i32 @s2n_print_stacktrace(ptr noundef %4381) #12
  %4383 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4384 = trunc nuw i8 %4383 to i1
  br i1 %4384, label %4385, label %4389

4385:                                             ; preds = %4379
  %4386 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4387 = call i32 @fileno(ptr noundef %4386) #12
  %4388 = call i32 @isatty(i32 noundef %4387) #12
  %.not615 = icmp eq i32 %4388, 0
  br i1 %.not615, label %4389, label %4390

4389:                                             ; preds = %4385, %4379
  br label %4390

4390:                                             ; preds = %4385, %4389
  %.str.5.sink2148 = phi ptr [ @.str.5, %4389 ], [ @.str.2, %4385 ]
  store i32 %4380, ptr %302, align 4, !tbaa !5
  %4391 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4392 = load i32, ptr @test_count, align 4, !tbaa !5
  %4393 = load i32, ptr %248, align 4, !tbaa !5
  %4394 = call ptr @s2n_strerror(i32 noundef %4393, ptr noundef nonnull @.str.4) #12
  %4395 = load i32, ptr %248, align 4, !tbaa !5
  %4396 = call ptr @s2n_strerror_debug(i32 noundef %4395, ptr noundef nonnull @.str.4) #12
  %4397 = load i32, ptr %302, align 4, !tbaa !5
  %4398 = call ptr @strerror(i32 noundef %4397) #12
  %4399 = load i32, ptr %302, align 4, !tbaa !5
  %4400 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4391, ptr noundef nonnull %.str.5.sink2148, i32 noundef %4392, ptr noundef nonnull @.str.89, ptr noundef nonnull @.str.1, i32 noundef 454, ptr noundef %4394, ptr noundef %4396, ptr noundef %4398, i32 noundef %4399) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4401:                                             ; preds = %4373
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %56) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %55) #12
  %4402 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %54) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %54) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %57) #12
  %4403 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %4403, ptr %57, align 8, !tbaa !9
  %4404 = load i32, ptr @test_count, align 4, !tbaa !5
  %4405 = add nsw i32 %4404, 1
  store i32 %4405, ptr @test_count, align 4, !tbaa !5
  %4406 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %4403, ptr noundef nonnull %189) #12
  %4407 = icmp eq i32 %4406, -1
  br i1 %4407, label %4408, label %4430

4408:                                             ; preds = %4401
  %4409 = load i32, ptr %302, align 4, !tbaa !5
  %4410 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4411 = call i32 @s2n_print_stacktrace(ptr noundef %4410) #12
  %4412 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4413 = trunc nuw i8 %4412 to i1
  br i1 %4413, label %4414, label %4418

4414:                                             ; preds = %4408
  %4415 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4416 = call i32 @fileno(ptr noundef %4415) #12
  %4417 = call i32 @isatty(i32 noundef %4416) #12
  %.not701 = icmp eq i32 %4417, 0
  br i1 %.not701, label %4418, label %4419

4418:                                             ; preds = %4414, %4408
  br label %4419

4419:                                             ; preds = %4414, %4418
  %.str.5.sink2157 = phi ptr [ @.str.5, %4418 ], [ @.str.2, %4414 ]
  store i32 %4409, ptr %302, align 4, !tbaa !5
  %4420 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4421 = load i32, ptr @test_count, align 4, !tbaa !5
  %4422 = load i32, ptr %248, align 4, !tbaa !5
  %4423 = call ptr @s2n_strerror(i32 noundef %4422, ptr noundef nonnull @.str.4) #12
  %4424 = load i32, ptr %248, align 4, !tbaa !5
  %4425 = call ptr @s2n_strerror_debug(i32 noundef %4424, ptr noundef nonnull @.str.4) #12
  %4426 = load i32, ptr %302, align 4, !tbaa !5
  %4427 = call ptr @strerror(i32 noundef %4426) #12
  %4428 = load i32, ptr %302, align 4, !tbaa !5
  %4429 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4420, ptr noundef nonnull %.str.5.sink2157, i32 noundef %4421, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 461, ptr noundef %4423, ptr noundef %4425, ptr noundef %4427, i32 noundef %4428) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4430:                                             ; preds = %4401
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %58) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %58, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %59) #12
  store i32 0, ptr %59, align 4, !tbaa !5
  %4431 = load i32, ptr @test_count, align 4, !tbaa !5
  %4432 = add nsw i32 %4431, 1
  store i32 %4432, ptr @test_count, align 4, !tbaa !5
  %4433 = load i32, ptr getelementptr inbounds (i8, ptr @ja3_fingerprint, i64 4), align 4, !tbaa !41
  %4434 = icmp ult i32 %4433, 101
  br i1 %4434, label %4457, label %4435

4435:                                             ; preds = %4430
  %4436 = load i32, ptr %302, align 4, !tbaa !5
  %4437 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4438 = call i32 @s2n_print_stacktrace(ptr noundef %4437) #12
  %4439 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4440 = trunc nuw i8 %4439 to i1
  br i1 %4440, label %4441, label %4445

4441:                                             ; preds = %4435
  %4442 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4443 = call i32 @fileno(ptr noundef %4442) #12
  %4444 = call i32 @isatty(i32 noundef %4443) #12
  %.not616 = icmp eq i32 %4444, 0
  br i1 %.not616, label %4445, label %4446

4445:                                             ; preds = %4441, %4435
  br label %4446

4446:                                             ; preds = %4441, %4445
  %.str.5.sink2166 = phi ptr [ @.str.5, %4445 ], [ @.str.2, %4441 ]
  store i32 %4436, ptr %302, align 4, !tbaa !5
  %4447 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4448 = load i32, ptr @test_count, align 4, !tbaa !5
  %4449 = load i32, ptr %248, align 4, !tbaa !5
  %4450 = call ptr @s2n_strerror(i32 noundef %4449, ptr noundef nonnull @.str.4) #12
  %4451 = load i32, ptr %248, align 4, !tbaa !5
  %4452 = call ptr @s2n_strerror_debug(i32 noundef %4451, ptr noundef nonnull @.str.4) #12
  %4453 = load i32, ptr %302, align 4, !tbaa !5
  %4454 = call ptr @strerror(i32 noundef %4453) #12
  %4455 = load i32, ptr %302, align 4, !tbaa !5
  %4456 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4447, ptr noundef nonnull %.str.5.sink2166, i32 noundef %4448, ptr noundef nonnull @.str.90, ptr noundef nonnull @.str.1, i32 noundef 465, ptr noundef %4450, ptr noundef %4452, ptr noundef %4454, i32 noundef %4455) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4457:                                             ; preds = %4430
  %4458 = add nsw i32 %4431, 2
  store i32 %4458, ptr @test_count, align 4, !tbaa !5
  %4459 = load ptr, ptr %57, align 8, !tbaa !9
  %4460 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4459, i32 noundef 0, ptr noundef nonnull %58, ptr noundef nonnull %59) #12
  %4461 = icmp eq i32 %4460, -1
  br i1 %4461, label %4484, label %4462

4462:                                             ; preds = %4457
  %4463 = load i32, ptr %302, align 4, !tbaa !5
  %4464 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4465 = call i32 @s2n_print_stacktrace(ptr noundef %4464) #12
  %4466 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4467 = trunc nuw i8 %4466 to i1
  br i1 %4467, label %4468, label %4472

4468:                                             ; preds = %4462
  %4469 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4470 = call i32 @fileno(ptr noundef %4469) #12
  %4471 = call i32 @isatty(i32 noundef %4470) #12
  %.not617 = icmp eq i32 %4471, 0
  br i1 %.not617, label %4472, label %4473

4472:                                             ; preds = %4468, %4462
  br label %4473

4473:                                             ; preds = %4468, %4472
  %.str.5.sink2175 = phi ptr [ @.str.5, %4472 ], [ @.str.2, %4468 ]
  store i32 %4463, ptr %302, align 4, !tbaa !5
  %4474 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4475 = load i32, ptr @test_count, align 4, !tbaa !5
  %4476 = load i32, ptr %248, align 4, !tbaa !5
  %4477 = call ptr @s2n_strerror(i32 noundef %4476, ptr noundef nonnull @.str.4) #12
  %4478 = load i32, ptr %248, align 4, !tbaa !5
  %4479 = call ptr @s2n_strerror_debug(i32 noundef %4478, ptr noundef nonnull @.str.4) #12
  %4480 = load i32, ptr %302, align 4, !tbaa !5
  %4481 = call ptr @strerror(i32 noundef %4480) #12
  %4482 = load i32, ptr %302, align 4, !tbaa !5
  %4483 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4474, ptr noundef nonnull %.str.5.sink2175, i32 noundef %4475, ptr noundef nonnull @.str.91, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %4477, ptr noundef %4479, ptr noundef %4481, i32 noundef %4482) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4484:                                             ; preds = %4457
  %4485 = load i32, ptr @test_count, align 4, !tbaa !5
  %4486 = add nsw i32 %4485, 1
  store i32 %4486, ptr @test_count, align 4, !tbaa !5
  %4487 = load i32, ptr %248, align 4, !tbaa !5
  %4488 = icmp eq i32 %4487, 469762120
  br i1 %4488, label %4511, label %4489

4489:                                             ; preds = %4484
  %4490 = load i32, ptr %302, align 4, !tbaa !5
  %4491 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4492 = call i32 @s2n_print_stacktrace(ptr noundef %4491) #12
  %4493 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4494 = trunc nuw i8 %4493 to i1
  br i1 %4494, label %4495, label %4499

4495:                                             ; preds = %4489
  %4496 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4497 = call i32 @fileno(ptr noundef %4496) #12
  %4498 = call i32 @isatty(i32 noundef %4497) #12
  %.not618 = icmp eq i32 %4498, 0
  br i1 %.not618, label %4499, label %4500

4499:                                             ; preds = %4495, %4489
  br label %4500

4500:                                             ; preds = %4495, %4499
  %.str.5.sink2184 = phi ptr [ @.str.5, %4499 ], [ @.str.2, %4495 ]
  store i32 %4490, ptr %302, align 4, !tbaa !5
  %4501 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4502 = load i32, ptr @test_count, align 4, !tbaa !5
  %4503 = load i32, ptr %248, align 4, !tbaa !5
  %4504 = call ptr @s2n_strerror(i32 noundef %4503, ptr noundef nonnull @.str.4) #12
  %4505 = load i32, ptr %248, align 4, !tbaa !5
  %4506 = call ptr @s2n_strerror_debug(i32 noundef %4505, ptr noundef nonnull @.str.4) #12
  %4507 = load i32, ptr %302, align 4, !tbaa !5
  %4508 = call ptr @strerror(i32 noundef %4507) #12
  %4509 = load i32, ptr %302, align 4, !tbaa !5
  %4510 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4501, ptr noundef nonnull %.str.5.sink2184, i32 noundef %4502, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %4504, ptr noundef %4506, ptr noundef %4508, i32 noundef %4509) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4511:                                             ; preds = %4484
  %4512 = add nsw i32 %4485, 2
  store i32 %4512, ptr @test_count, align 4, !tbaa !5
  %4513 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %4514 = icmp eq ptr %4513, null
  br i1 %4514, label %4515, label %4537

4515:                                             ; preds = %4511
  %4516 = load i32, ptr %302, align 4, !tbaa !5
  %4517 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4518 = call i32 @s2n_print_stacktrace(ptr noundef %4517) #12
  %4519 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4520 = trunc nuw i8 %4519 to i1
  br i1 %4520, label %4521, label %4525

4521:                                             ; preds = %4515
  %4522 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4523 = call i32 @fileno(ptr noundef %4522) #12
  %4524 = call i32 @isatty(i32 noundef %4523) #12
  %.not700 = icmp eq i32 %4524, 0
  br i1 %.not700, label %4525, label %4526

4525:                                             ; preds = %4521, %4515
  br label %4526

4526:                                             ; preds = %4521, %4525
  %.str.5.sink2193 = phi ptr [ @.str.5, %4525 ], [ @.str.2, %4521 ]
  store i32 %4516, ptr %302, align 4, !tbaa !5
  %4527 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4528 = load i32, ptr @test_count, align 4, !tbaa !5
  %4529 = load i32, ptr %248, align 4, !tbaa !5
  %4530 = call ptr @s2n_strerror(i32 noundef %4529, ptr noundef nonnull @.str.4) #12
  %4531 = load i32, ptr %248, align 4, !tbaa !5
  %4532 = call ptr @s2n_strerror_debug(i32 noundef %4531, ptr noundef nonnull @.str.4) #12
  %4533 = load i32, ptr %302, align 4, !tbaa !5
  %4534 = call ptr @strerror(i32 noundef %4533) #12
  %4535 = load i32, ptr %302, align 4, !tbaa !5
  %4536 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4527, ptr noundef nonnull %.str.5.sink2193, i32 noundef %4528, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 469, ptr noundef %4530, ptr noundef %4532, ptr noundef %4534, i32 noundef %4535) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4537:                                             ; preds = %4511
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %4538 = load i32, ptr @test_count, align 4, !tbaa !5
  %4539 = add nsw i32 %4538, 1
  store i32 %4539, ptr @test_count, align 4, !tbaa !5
  %4540 = load ptr, ptr %57, align 8, !tbaa !9
  %4541 = load i32, ptr getelementptr inbounds (i8, ptr @ja3_fingerprint, i64 4), align 4, !tbaa !41
  %4542 = add i32 %4541, -1
  %4543 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4540, i32 noundef %4542, ptr noundef nonnull %58, ptr noundef nonnull %59) #12
  %4544 = icmp eq i32 %4543, -1
  br i1 %4544, label %4567, label %4545

4545:                                             ; preds = %4537
  %4546 = load i32, ptr %302, align 4, !tbaa !5
  %4547 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4548 = call i32 @s2n_print_stacktrace(ptr noundef %4547) #12
  %4549 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4550 = trunc nuw i8 %4549 to i1
  br i1 %4550, label %4551, label %4555

4551:                                             ; preds = %4545
  %4552 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4553 = call i32 @fileno(ptr noundef %4552) #12
  %4554 = call i32 @isatty(i32 noundef %4553) #12
  %.not619 = icmp eq i32 %4554, 0
  br i1 %.not619, label %4555, label %4556

4555:                                             ; preds = %4551, %4545
  br label %4556

4556:                                             ; preds = %4551, %4555
  %.str.5.sink2202 = phi ptr [ @.str.5, %4555 ], [ @.str.2, %4551 ]
  store i32 %4546, ptr %302, align 4, !tbaa !5
  %4557 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4558 = load i32, ptr @test_count, align 4, !tbaa !5
  %4559 = load i32, ptr %248, align 4, !tbaa !5
  %4560 = call ptr @s2n_strerror(i32 noundef %4559, ptr noundef nonnull @.str.4) #12
  %4561 = load i32, ptr %248, align 4, !tbaa !5
  %4562 = call ptr @s2n_strerror_debug(i32 noundef %4561, ptr noundef nonnull @.str.4) #12
  %4563 = load i32, ptr %302, align 4, !tbaa !5
  %4564 = call ptr @strerror(i32 noundef %4563) #12
  %4565 = load i32, ptr %302, align 4, !tbaa !5
  %4566 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4557, ptr noundef nonnull %.str.5.sink2202, i32 noundef %4558, ptr noundef nonnull @.str.92, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4560, ptr noundef %4562, ptr noundef %4564, i32 noundef %4565) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4567:                                             ; preds = %4537
  %4568 = load i32, ptr @test_count, align 4, !tbaa !5
  %4569 = add nsw i32 %4568, 1
  store i32 %4569, ptr @test_count, align 4, !tbaa !5
  %4570 = load i32, ptr %248, align 4, !tbaa !5
  %4571 = icmp eq i32 %4570, 469762120
  br i1 %4571, label %4594, label %4572

4572:                                             ; preds = %4567
  %4573 = load i32, ptr %302, align 4, !tbaa !5
  %4574 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4575 = call i32 @s2n_print_stacktrace(ptr noundef %4574) #12
  %4576 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4577 = trunc nuw i8 %4576 to i1
  br i1 %4577, label %4578, label %4582

4578:                                             ; preds = %4572
  %4579 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4580 = call i32 @fileno(ptr noundef %4579) #12
  %4581 = call i32 @isatty(i32 noundef %4580) #12
  %.not620 = icmp eq i32 %4581, 0
  br i1 %.not620, label %4582, label %4583

4582:                                             ; preds = %4578, %4572
  br label %4583

4583:                                             ; preds = %4578, %4582
  %.str.5.sink2211 = phi ptr [ @.str.5, %4582 ], [ @.str.2, %4578 ]
  store i32 %4573, ptr %302, align 4, !tbaa !5
  %4584 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4585 = load i32, ptr @test_count, align 4, !tbaa !5
  %4586 = load i32, ptr %248, align 4, !tbaa !5
  %4587 = call ptr @s2n_strerror(i32 noundef %4586, ptr noundef nonnull @.str.4) #12
  %4588 = load i32, ptr %248, align 4, !tbaa !5
  %4589 = call ptr @s2n_strerror_debug(i32 noundef %4588, ptr noundef nonnull @.str.4) #12
  %4590 = load i32, ptr %302, align 4, !tbaa !5
  %4591 = call ptr @strerror(i32 noundef %4590) #12
  %4592 = load i32, ptr %302, align 4, !tbaa !5
  %4593 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4584, ptr noundef nonnull %.str.5.sink2211, i32 noundef %4585, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4587, ptr noundef %4589, ptr noundef %4591, i32 noundef %4592) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4594:                                             ; preds = %4567
  %4595 = add nsw i32 %4568, 2
  store i32 %4595, ptr @test_count, align 4, !tbaa !5
  %4596 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %4597 = icmp eq ptr %4596, null
  br i1 %4597, label %4598, label %4620

4598:                                             ; preds = %4594
  %4599 = load i32, ptr %302, align 4, !tbaa !5
  %4600 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4601 = call i32 @s2n_print_stacktrace(ptr noundef %4600) #12
  %4602 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4603 = trunc nuw i8 %4602 to i1
  br i1 %4603, label %4604, label %4608

4604:                                             ; preds = %4598
  %4605 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4606 = call i32 @fileno(ptr noundef %4605) #12
  %4607 = call i32 @isatty(i32 noundef %4606) #12
  %.not699 = icmp eq i32 %4607, 0
  br i1 %.not699, label %4608, label %4609

4608:                                             ; preds = %4604, %4598
  br label %4609

4609:                                             ; preds = %4604, %4608
  %.str.5.sink2220 = phi ptr [ @.str.5, %4608 ], [ @.str.2, %4604 ]
  store i32 %4599, ptr %302, align 4, !tbaa !5
  %4610 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4611 = load i32, ptr @test_count, align 4, !tbaa !5
  %4612 = load i32, ptr %248, align 4, !tbaa !5
  %4613 = call ptr @s2n_strerror(i32 noundef %4612, ptr noundef nonnull @.str.4) #12
  %4614 = load i32, ptr %248, align 4, !tbaa !5
  %4615 = call ptr @s2n_strerror_debug(i32 noundef %4614, ptr noundef nonnull @.str.4) #12
  %4616 = load i32, ptr %302, align 4, !tbaa !5
  %4617 = call ptr @strerror(i32 noundef %4616) #12
  %4618 = load i32, ptr %302, align 4, !tbaa !5
  %4619 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4610, ptr noundef nonnull %.str.5.sink2220, i32 noundef %4611, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 472, ptr noundef %4613, ptr noundef %4615, ptr noundef %4617, i32 noundef %4618) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4620:                                             ; preds = %4594
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %4621 = load i32, ptr @test_count, align 4, !tbaa !5
  %4622 = add nsw i32 %4621, 1
  store i32 %4622, ptr @test_count, align 4, !tbaa !5
  %4623 = load ptr, ptr %57, align 8, !tbaa !9
  %4624 = load i32, ptr getelementptr inbounds (i8, ptr @ja3_fingerprint, i64 4), align 4, !tbaa !41
  %4625 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4623, i32 noundef %4624, ptr noundef nonnull %58, ptr noundef nonnull %59) #12
  %4626 = icmp eq i32 %4625, -1
  br i1 %4626, label %4627, label %4649

4627:                                             ; preds = %4620
  %4628 = load i32, ptr %302, align 4, !tbaa !5
  %4629 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4630 = call i32 @s2n_print_stacktrace(ptr noundef %4629) #12
  %4631 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4632 = trunc nuw i8 %4631 to i1
  br i1 %4632, label %4633, label %4637

4633:                                             ; preds = %4627
  %4634 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4635 = call i32 @fileno(ptr noundef %4634) #12
  %4636 = call i32 @isatty(i32 noundef %4635) #12
  %.not698 = icmp eq i32 %4636, 0
  br i1 %.not698, label %4637, label %4638

4637:                                             ; preds = %4633, %4627
  br label %4638

4638:                                             ; preds = %4633, %4637
  %.str.5.sink2229 = phi ptr [ @.str.5, %4637 ], [ @.str.2, %4633 ]
  store i32 %4628, ptr %302, align 4, !tbaa !5
  %4639 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4640 = load i32, ptr @test_count, align 4, !tbaa !5
  %4641 = load i32, ptr %248, align 4, !tbaa !5
  %4642 = call ptr @s2n_strerror(i32 noundef %4641, ptr noundef nonnull @.str.4) #12
  %4643 = load i32, ptr %248, align 4, !tbaa !5
  %4644 = call ptr @s2n_strerror_debug(i32 noundef %4643, ptr noundef nonnull @.str.4) #12
  %4645 = load i32, ptr %302, align 4, !tbaa !5
  %4646 = call ptr @strerror(i32 noundef %4645) #12
  %4647 = load i32, ptr %302, align 4, !tbaa !5
  %4648 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4639, ptr noundef nonnull %.str.5.sink2229, i32 noundef %4640, ptr noundef nonnull @.str.93, ptr noundef nonnull @.str.1, i32 noundef 474, ptr noundef %4642, ptr noundef %4644, ptr noundef %4646, i32 noundef %4647) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4649:                                             ; preds = %4620
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %59) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %58) #12
  %4650 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %57) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %57) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %60) #12
  %4651 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %4651, ptr %60, align 8, !tbaa !9
  %4652 = load i32, ptr @test_count, align 4, !tbaa !5
  %4653 = add nsw i32 %4652, 1
  store i32 %4653, ptr @test_count, align 4, !tbaa !5
  %4654 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %4651, ptr noundef null) #12
  %4655 = icmp eq i32 %4654, -1
  br i1 %4655, label %4678, label %4656

4656:                                             ; preds = %4649
  %4657 = load i32, ptr %302, align 4, !tbaa !5
  %4658 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4659 = call i32 @s2n_print_stacktrace(ptr noundef %4658) #12
  %4660 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4661 = trunc nuw i8 %4660 to i1
  br i1 %4661, label %4662, label %4666

4662:                                             ; preds = %4656
  %4663 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4664 = call i32 @fileno(ptr noundef %4663) #12
  %4665 = call i32 @isatty(i32 noundef %4664) #12
  %.not621 = icmp eq i32 %4665, 0
  br i1 %.not621, label %4666, label %4667

4666:                                             ; preds = %4662, %4656
  br label %4667

4667:                                             ; preds = %4662, %4666
  %.str.5.sink2238 = phi ptr [ @.str.5, %4666 ], [ @.str.2, %4662 ]
  store i32 %4657, ptr %302, align 4, !tbaa !5
  %4668 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4669 = load i32, ptr @test_count, align 4, !tbaa !5
  %4670 = load i32, ptr %248, align 4, !tbaa !5
  %4671 = call ptr @s2n_strerror(i32 noundef %4670, ptr noundef nonnull @.str.4) #12
  %4672 = load i32, ptr %248, align 4, !tbaa !5
  %4673 = call ptr @s2n_strerror_debug(i32 noundef %4672, ptr noundef nonnull @.str.4) #12
  %4674 = load i32, ptr %302, align 4, !tbaa !5
  %4675 = call ptr @strerror(i32 noundef %4674) #12
  %4676 = load i32, ptr %302, align 4, !tbaa !5
  %4677 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4668, ptr noundef nonnull %.str.5.sink2238, i32 noundef %4669, ptr noundef nonnull @.str.94, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %4671, ptr noundef %4673, ptr noundef %4675, i32 noundef %4676) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4678:                                             ; preds = %4649
  %4679 = load i32, ptr @test_count, align 4, !tbaa !5
  %4680 = add nsw i32 %4679, 1
  store i32 %4680, ptr @test_count, align 4, !tbaa !5
  %4681 = load i32, ptr %248, align 4, !tbaa !5
  %4682 = icmp eq i32 %4681, 469762089
  br i1 %4682, label %4705, label %4683

4683:                                             ; preds = %4678
  %4684 = load i32, ptr %302, align 4, !tbaa !5
  %4685 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4686 = call i32 @s2n_print_stacktrace(ptr noundef %4685) #12
  %4687 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4688 = trunc nuw i8 %4687 to i1
  br i1 %4688, label %4689, label %4693

4689:                                             ; preds = %4683
  %4690 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4691 = call i32 @fileno(ptr noundef %4690) #12
  %4692 = call i32 @isatty(i32 noundef %4691) #12
  %.not622 = icmp eq i32 %4692, 0
  br i1 %.not622, label %4693, label %4694

4693:                                             ; preds = %4689, %4683
  br label %4694

4694:                                             ; preds = %4689, %4693
  %.str.5.sink2247 = phi ptr [ @.str.5, %4693 ], [ @.str.2, %4689 ]
  store i32 %4684, ptr %302, align 4, !tbaa !5
  %4695 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4696 = load i32, ptr @test_count, align 4, !tbaa !5
  %4697 = load i32, ptr %248, align 4, !tbaa !5
  %4698 = call ptr @s2n_strerror(i32 noundef %4697, ptr noundef nonnull @.str.4) #12
  %4699 = load i32, ptr %248, align 4, !tbaa !5
  %4700 = call ptr @s2n_strerror_debug(i32 noundef %4699, ptr noundef nonnull @.str.4) #12
  %4701 = load i32, ptr %302, align 4, !tbaa !5
  %4702 = call ptr @strerror(i32 noundef %4701) #12
  %4703 = load i32, ptr %302, align 4, !tbaa !5
  %4704 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4695, ptr noundef nonnull %.str.5.sink2247, i32 noundef %4696, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %4698, ptr noundef %4700, ptr noundef %4702, i32 noundef %4703) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4705:                                             ; preds = %4678
  %4706 = add nsw i32 %4679, 2
  store i32 %4706, ptr @test_count, align 4, !tbaa !5
  %4707 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %4708 = icmp eq ptr %4707, null
  br i1 %4708, label %4709, label %4731

4709:                                             ; preds = %4705
  %4710 = load i32, ptr %302, align 4, !tbaa !5
  %4711 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4712 = call i32 @s2n_print_stacktrace(ptr noundef %4711) #12
  %4713 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4714 = trunc nuw i8 %4713 to i1
  br i1 %4714, label %4715, label %4719

4715:                                             ; preds = %4709
  %4716 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4717 = call i32 @fileno(ptr noundef %4716) #12
  %4718 = call i32 @isatty(i32 noundef %4717) #12
  %.not697 = icmp eq i32 %4718, 0
  br i1 %.not697, label %4719, label %4720

4719:                                             ; preds = %4715, %4709
  br label %4720

4720:                                             ; preds = %4715, %4719
  %.str.5.sink2256 = phi ptr [ @.str.5, %4719 ], [ @.str.2, %4715 ]
  store i32 %4710, ptr %302, align 4, !tbaa !5
  %4721 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4722 = load i32, ptr @test_count, align 4, !tbaa !5
  %4723 = load i32, ptr %248, align 4, !tbaa !5
  %4724 = call ptr @s2n_strerror(i32 noundef %4723, ptr noundef nonnull @.str.4) #12
  %4725 = load i32, ptr %248, align 4, !tbaa !5
  %4726 = call ptr @s2n_strerror_debug(i32 noundef %4725, ptr noundef nonnull @.str.4) #12
  %4727 = load i32, ptr %302, align 4, !tbaa !5
  %4728 = call ptr @strerror(i32 noundef %4727) #12
  %4729 = load i32, ptr %302, align 4, !tbaa !5
  %4730 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4721, ptr noundef nonnull %.str.5.sink2256, i32 noundef %4722, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 487, ptr noundef %4724, ptr noundef %4726, ptr noundef %4728, i32 noundef %4729) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4731:                                             ; preds = %4705
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %61) #12
  store i32 0, ptr %61, align 4, !tbaa !5
  %4732 = load i32, ptr @test_count, align 4, !tbaa !5
  %4733 = add nsw i32 %4732, 1
  store i32 %4733, ptr @test_count, align 4, !tbaa !5
  %4734 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef null, ptr noundef nonnull %61) #12
  %4735 = icmp eq i32 %4734, -1
  br i1 %4735, label %4758, label %4736

4736:                                             ; preds = %4731
  %4737 = load i32, ptr %302, align 4, !tbaa !5
  %4738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4739 = call i32 @s2n_print_stacktrace(ptr noundef %4738) #12
  %4740 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4741 = trunc nuw i8 %4740 to i1
  br i1 %4741, label %4742, label %4746

4742:                                             ; preds = %4736
  %4743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4744 = call i32 @fileno(ptr noundef %4743) #12
  %4745 = call i32 @isatty(i32 noundef %4744) #12
  %.not623 = icmp eq i32 %4745, 0
  br i1 %.not623, label %4746, label %4747

4746:                                             ; preds = %4742, %4736
  br label %4747

4747:                                             ; preds = %4742, %4746
  %.str.5.sink2265 = phi ptr [ @.str.5, %4746 ], [ @.str.2, %4742 ]
  store i32 %4737, ptr %302, align 4, !tbaa !5
  %4748 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4749 = load i32, ptr @test_count, align 4, !tbaa !5
  %4750 = load i32, ptr %248, align 4, !tbaa !5
  %4751 = call ptr @s2n_strerror(i32 noundef %4750, ptr noundef nonnull @.str.4) #12
  %4752 = load i32, ptr %248, align 4, !tbaa !5
  %4753 = call ptr @s2n_strerror_debug(i32 noundef %4752, ptr noundef nonnull @.str.4) #12
  %4754 = load i32, ptr %302, align 4, !tbaa !5
  %4755 = call ptr @strerror(i32 noundef %4754) #12
  %4756 = load i32, ptr %302, align 4, !tbaa !5
  %4757 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4748, ptr noundef nonnull %.str.5.sink2265, i32 noundef %4749, ptr noundef nonnull @.str.95, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4751, ptr noundef %4753, ptr noundef %4755, i32 noundef %4756) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4758:                                             ; preds = %4731
  %4759 = load i32, ptr @test_count, align 4, !tbaa !5
  %4760 = add nsw i32 %4759, 1
  store i32 %4760, ptr @test_count, align 4, !tbaa !5
  %4761 = load i32, ptr %248, align 4, !tbaa !5
  %4762 = icmp eq i32 %4761, 469762089
  br i1 %4762, label %4785, label %4763

4763:                                             ; preds = %4758
  %4764 = load i32, ptr %302, align 4, !tbaa !5
  %4765 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4766 = call i32 @s2n_print_stacktrace(ptr noundef %4765) #12
  %4767 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4768 = trunc nuw i8 %4767 to i1
  br i1 %4768, label %4769, label %4773

4769:                                             ; preds = %4763
  %4770 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4771 = call i32 @fileno(ptr noundef %4770) #12
  %4772 = call i32 @isatty(i32 noundef %4771) #12
  %.not624 = icmp eq i32 %4772, 0
  br i1 %.not624, label %4773, label %4774

4773:                                             ; preds = %4769, %4763
  br label %4774

4774:                                             ; preds = %4769, %4773
  %.str.5.sink2274 = phi ptr [ @.str.5, %4773 ], [ @.str.2, %4769 ]
  store i32 %4764, ptr %302, align 4, !tbaa !5
  %4775 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4776 = load i32, ptr @test_count, align 4, !tbaa !5
  %4777 = load i32, ptr %248, align 4, !tbaa !5
  %4778 = call ptr @s2n_strerror(i32 noundef %4777, ptr noundef nonnull @.str.4) #12
  %4779 = load i32, ptr %248, align 4, !tbaa !5
  %4780 = call ptr @s2n_strerror_debug(i32 noundef %4779, ptr noundef nonnull @.str.4) #12
  %4781 = load i32, ptr %302, align 4, !tbaa !5
  %4782 = call ptr @strerror(i32 noundef %4781) #12
  %4783 = load i32, ptr %302, align 4, !tbaa !5
  %4784 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4775, ptr noundef nonnull %.str.5.sink2274, i32 noundef %4776, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4778, ptr noundef %4780, ptr noundef %4782, i32 noundef %4783) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4785:                                             ; preds = %4758
  %4786 = add nsw i32 %4759, 2
  store i32 %4786, ptr @test_count, align 4, !tbaa !5
  %4787 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %4788 = icmp eq ptr %4787, null
  br i1 %4788, label %4789, label %4811

4789:                                             ; preds = %4785
  %4790 = load i32, ptr %302, align 4, !tbaa !5
  %4791 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4792 = call i32 @s2n_print_stacktrace(ptr noundef %4791) #12
  %4793 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4794 = trunc nuw i8 %4793 to i1
  br i1 %4794, label %4795, label %4799

4795:                                             ; preds = %4789
  %4796 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4797 = call i32 @fileno(ptr noundef %4796) #12
  %4798 = call i32 @isatty(i32 noundef %4797) #12
  %.not696 = icmp eq i32 %4798, 0
  br i1 %.not696, label %4799, label %4800

4799:                                             ; preds = %4795, %4789
  br label %4800

4800:                                             ; preds = %4795, %4799
  %.str.5.sink2283 = phi ptr [ @.str.5, %4799 ], [ @.str.2, %4795 ]
  store i32 %4790, ptr %302, align 4, !tbaa !5
  %4801 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4802 = load i32, ptr @test_count, align 4, !tbaa !5
  %4803 = load i32, ptr %248, align 4, !tbaa !5
  %4804 = call ptr @s2n_strerror(i32 noundef %4803, ptr noundef nonnull @.str.4) #12
  %4805 = load i32, ptr %248, align 4, !tbaa !5
  %4806 = call ptr @s2n_strerror_debug(i32 noundef %4805, ptr noundef nonnull @.str.4) #12
  %4807 = load i32, ptr %302, align 4, !tbaa !5
  %4808 = call ptr @strerror(i32 noundef %4807) #12
  %4809 = load i32, ptr %302, align 4, !tbaa !5
  %4810 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4801, ptr noundef nonnull %.str.5.sink2283, i32 noundef %4802, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 492, ptr noundef %4804, ptr noundef %4806, ptr noundef %4808, i32 noundef %4809) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4811:                                             ; preds = %4785
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %61) #12
  %4812 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %60) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %60) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %62) #12
  %4813 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %4813, ptr %62, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %63) #12
  store i32 0, ptr %63, align 4, !tbaa !5
  %4814 = load i32, ptr @test_count, align 4, !tbaa !5
  %4815 = add nsw i32 %4814, 1
  store i32 %4815, ptr @test_count, align 4, !tbaa !5
  %4816 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %4813, ptr noundef nonnull %63) #12
  %4817 = icmp eq i32 %4816, -1
  br i1 %4817, label %4840, label %4818

4818:                                             ; preds = %4811
  %4819 = load i32, ptr %302, align 4, !tbaa !5
  %4820 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4821 = call i32 @s2n_print_stacktrace(ptr noundef %4820) #12
  %4822 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4823 = trunc nuw i8 %4822 to i1
  br i1 %4823, label %4824, label %4828

4824:                                             ; preds = %4818
  %4825 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4826 = call i32 @fileno(ptr noundef %4825) #12
  %4827 = call i32 @isatty(i32 noundef %4826) #12
  %.not625 = icmp eq i32 %4827, 0
  br i1 %.not625, label %4828, label %4829

4828:                                             ; preds = %4824, %4818
  br label %4829

4829:                                             ; preds = %4824, %4828
  %.str.5.sink2292 = phi ptr [ @.str.5, %4828 ], [ @.str.2, %4824 ]
  store i32 %4819, ptr %302, align 4, !tbaa !5
  %4830 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4831 = load i32, ptr @test_count, align 4, !tbaa !5
  %4832 = load i32, ptr %248, align 4, !tbaa !5
  %4833 = call ptr @s2n_strerror(i32 noundef %4832, ptr noundef nonnull @.str.4) #12
  %4834 = load i32, ptr %248, align 4, !tbaa !5
  %4835 = call ptr @s2n_strerror_debug(i32 noundef %4834, ptr noundef nonnull @.str.4) #12
  %4836 = load i32, ptr %302, align 4, !tbaa !5
  %4837 = call ptr @strerror(i32 noundef %4836) #12
  %4838 = load i32, ptr %302, align 4, !tbaa !5
  %4839 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4830, ptr noundef nonnull %.str.5.sink2292, i32 noundef %4831, ptr noundef nonnull @.str.96, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4833, ptr noundef %4835, ptr noundef %4837, i32 noundef %4838) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4840:                                             ; preds = %4811
  %4841 = load i32, ptr @test_count, align 4, !tbaa !5
  %4842 = add nsw i32 %4841, 1
  store i32 %4842, ptr @test_count, align 4, !tbaa !5
  %4843 = load i32, ptr %248, align 4, !tbaa !5
  %4844 = icmp eq i32 %4843, 469762112
  br i1 %4844, label %4867, label %4845

4845:                                             ; preds = %4840
  %4846 = load i32, ptr %302, align 4, !tbaa !5
  %4847 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4848 = call i32 @s2n_print_stacktrace(ptr noundef %4847) #12
  %4849 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4850 = trunc nuw i8 %4849 to i1
  br i1 %4850, label %4851, label %4855

4851:                                             ; preds = %4845
  %4852 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4853 = call i32 @fileno(ptr noundef %4852) #12
  %4854 = call i32 @isatty(i32 noundef %4853) #12
  %.not626 = icmp eq i32 %4854, 0
  br i1 %.not626, label %4855, label %4856

4855:                                             ; preds = %4851, %4845
  br label %4856

4856:                                             ; preds = %4851, %4855
  %.str.5.sink2301 = phi ptr [ @.str.5, %4855 ], [ @.str.2, %4851 ]
  store i32 %4846, ptr %302, align 4, !tbaa !5
  %4857 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4858 = load i32, ptr @test_count, align 4, !tbaa !5
  %4859 = load i32, ptr %248, align 4, !tbaa !5
  %4860 = call ptr @s2n_strerror(i32 noundef %4859, ptr noundef nonnull @.str.4) #12
  %4861 = load i32, ptr %248, align 4, !tbaa !5
  %4862 = call ptr @s2n_strerror_debug(i32 noundef %4861, ptr noundef nonnull @.str.4) #12
  %4863 = load i32, ptr %302, align 4, !tbaa !5
  %4864 = call ptr @strerror(i32 noundef %4863) #12
  %4865 = load i32, ptr %302, align 4, !tbaa !5
  %4866 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4857, ptr noundef nonnull %.str.5.sink2301, i32 noundef %4858, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4860, ptr noundef %4862, ptr noundef %4864, i32 noundef %4865) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4867:                                             ; preds = %4840
  %4868 = add nsw i32 %4841, 2
  store i32 %4868, ptr @test_count, align 4, !tbaa !5
  %4869 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #12
  %4870 = icmp eq ptr %4869, null
  br i1 %4870, label %4871, label %4893

4871:                                             ; preds = %4867
  %4872 = load i32, ptr %302, align 4, !tbaa !5
  %4873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4874 = call i32 @s2n_print_stacktrace(ptr noundef %4873) #12
  %4875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4876 = trunc nuw i8 %4875 to i1
  br i1 %4876, label %4877, label %4881

4877:                                             ; preds = %4871
  %4878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4879 = call i32 @fileno(ptr noundef %4878) #12
  %4880 = call i32 @isatty(i32 noundef %4879) #12
  %.not695 = icmp eq i32 %4880, 0
  br i1 %.not695, label %4881, label %4882

4881:                                             ; preds = %4877, %4871
  br label %4882

4882:                                             ; preds = %4877, %4881
  %.str.5.sink2310 = phi ptr [ @.str.5, %4881 ], [ @.str.2, %4877 ]
  store i32 %4872, ptr %302, align 4, !tbaa !5
  %4883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4884 = load i32, ptr @test_count, align 4, !tbaa !5
  %4885 = load i32, ptr %248, align 4, !tbaa !5
  %4886 = call ptr @s2n_strerror(i32 noundef %4885, ptr noundef nonnull @.str.4) #12
  %4887 = load i32, ptr %248, align 4, !tbaa !5
  %4888 = call ptr @s2n_strerror_debug(i32 noundef %4887, ptr noundef nonnull @.str.4) #12
  %4889 = load i32, ptr %302, align 4, !tbaa !5
  %4890 = call ptr @strerror(i32 noundef %4889) #12
  %4891 = load i32, ptr %302, align 4, !tbaa !5
  %4892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4883, ptr noundef nonnull %.str.5.sink2310, i32 noundef %4884, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 502, ptr noundef %4886, ptr noundef %4888, ptr noundef %4890, i32 noundef %4891) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4893:                                             ; preds = %4867
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %63) #12
  %4894 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %62) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %62) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %64) #12
  %4895 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %4895, ptr %64, align 8, !tbaa !9
  %4896 = load i32, ptr @test_count, align 4, !tbaa !5
  %4897 = add nsw i32 %4896, 1
  store i32 %4897, ptr @test_count, align 4, !tbaa !5
  %4898 = load ptr, ptr %5, align 8, !tbaa !9
  %4899 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %4895, ptr noundef %4898) #12
  %4900 = icmp eq i32 %4899, -1
  br i1 %4900, label %4901, label %4923

4901:                                             ; preds = %4893
  %4902 = load i32, ptr %302, align 4, !tbaa !5
  %4903 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4904 = call i32 @s2n_print_stacktrace(ptr noundef %4903) #12
  %4905 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4906 = trunc nuw i8 %4905 to i1
  br i1 %4906, label %4907, label %4911

4907:                                             ; preds = %4901
  %4908 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4909 = call i32 @fileno(ptr noundef %4908) #12
  %4910 = call i32 @isatty(i32 noundef %4909) #12
  %.not694 = icmp eq i32 %4910, 0
  br i1 %.not694, label %4911, label %4912

4911:                                             ; preds = %4907, %4901
  br label %4912

4912:                                             ; preds = %4907, %4911
  %.str.5.sink2319 = phi ptr [ @.str.5, %4911 ], [ @.str.2, %4907 ]
  store i32 %4902, ptr %302, align 4, !tbaa !5
  %4913 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4914 = load i32, ptr @test_count, align 4, !tbaa !5
  %4915 = load i32, ptr %248, align 4, !tbaa !5
  %4916 = call ptr @s2n_strerror(i32 noundef %4915, ptr noundef nonnull @.str.4) #12
  %4917 = load i32, ptr %248, align 4, !tbaa !5
  %4918 = call ptr @s2n_strerror_debug(i32 noundef %4917, ptr noundef nonnull @.str.4) #12
  %4919 = load i32, ptr %302, align 4, !tbaa !5
  %4920 = call ptr @strerror(i32 noundef %4919) #12
  %4921 = load i32, ptr %302, align 4, !tbaa !5
  %4922 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4913, ptr noundef nonnull %.str.5.sink2319, i32 noundef %4914, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 509, ptr noundef %4916, ptr noundef %4918, ptr noundef %4920, i32 noundef %4921) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4923:                                             ; preds = %4893
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %65) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %65, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %66) #12
  store i32 0, ptr %66, align 4, !tbaa !5
  %4924 = load i32, ptr @test_count, align 4, !tbaa !5
  %4925 = add nsw i32 %4924, 1
  store i32 %4925, ptr @test_count, align 4, !tbaa !5
  %4926 = load ptr, ptr %64, align 8, !tbaa !9
  %4927 = call i32 @s2n_fingerprint_get_hash(ptr noundef %4926, i32 noundef 100, ptr noundef nonnull %65, ptr noundef nonnull %66) #12
  %4928 = icmp eq i32 %4927, -1
  br i1 %4928, label %4929, label %4951

4929:                                             ; preds = %4923
  %4930 = load i32, ptr %302, align 4, !tbaa !5
  %4931 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4932 = call i32 @s2n_print_stacktrace(ptr noundef %4931) #12
  %4933 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4934 = trunc nuw i8 %4933 to i1
  br i1 %4934, label %4935, label %4939

4935:                                             ; preds = %4929
  %4936 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4937 = call i32 @fileno(ptr noundef %4936) #12
  %4938 = call i32 @isatty(i32 noundef %4937) #12
  %.not693 = icmp eq i32 %4938, 0
  br i1 %.not693, label %4939, label %4940

4939:                                             ; preds = %4935, %4929
  br label %4940

4940:                                             ; preds = %4935, %4939
  %.str.5.sink2328 = phi ptr [ @.str.5, %4939 ], [ @.str.2, %4935 ]
  store i32 %4930, ptr %302, align 4, !tbaa !5
  %4941 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4942 = load i32, ptr @test_count, align 4, !tbaa !5
  %4943 = load i32, ptr %248, align 4, !tbaa !5
  %4944 = call ptr @s2n_strerror(i32 noundef %4943, ptr noundef nonnull @.str.4) #12
  %4945 = load i32, ptr %248, align 4, !tbaa !5
  %4946 = call ptr @s2n_strerror_debug(i32 noundef %4945, ptr noundef nonnull @.str.4) #12
  %4947 = load i32, ptr %302, align 4, !tbaa !5
  %4948 = call ptr @strerror(i32 noundef %4947) #12
  %4949 = load i32, ptr %302, align 4, !tbaa !5
  %4950 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4941, ptr noundef nonnull %.str.5.sink2328, i32 noundef %4942, ptr noundef nonnull @.str.97, ptr noundef nonnull @.str.1, i32 noundef 514, ptr noundef %4944, ptr noundef %4946, ptr noundef %4948, i32 noundef %4949) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4951:                                             ; preds = %4923
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %67) #12
  store i32 0, ptr %67, align 4, !tbaa !5
  %4952 = load i32, ptr @test_count, align 4, !tbaa !5
  %4953 = add nsw i32 %4952, 1
  store i32 %4953, ptr @test_count, align 4, !tbaa !5
  %4954 = load ptr, ptr %64, align 8, !tbaa !9
  %4955 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %4954, ptr noundef nonnull %67) #12
  %4956 = icmp eq i32 %4955, -1
  br i1 %4956, label %4957, label %4979

4957:                                             ; preds = %4951
  %4958 = load i32, ptr %302, align 4, !tbaa !5
  %4959 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4960 = call i32 @s2n_print_stacktrace(ptr noundef %4959) #12
  %4961 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4962 = trunc nuw i8 %4961 to i1
  br i1 %4962, label %4963, label %4967

4963:                                             ; preds = %4957
  %4964 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4965 = call i32 @fileno(ptr noundef %4964) #12
  %4966 = call i32 @isatty(i32 noundef %4965) #12
  %.not692 = icmp eq i32 %4966, 0
  br i1 %.not692, label %4967, label %4968

4967:                                             ; preds = %4963, %4957
  br label %4968

4968:                                             ; preds = %4963, %4967
  %.str.5.sink2337 = phi ptr [ @.str.5, %4967 ], [ @.str.2, %4963 ]
  store i32 %4958, ptr %302, align 4, !tbaa !5
  %4969 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4970 = load i32, ptr @test_count, align 4, !tbaa !5
  %4971 = load i32, ptr %248, align 4, !tbaa !5
  %4972 = call ptr @s2n_strerror(i32 noundef %4971, ptr noundef nonnull @.str.4) #12
  %4973 = load i32, ptr %248, align 4, !tbaa !5
  %4974 = call ptr @s2n_strerror_debug(i32 noundef %4973, ptr noundef nonnull @.str.4) #12
  %4975 = load i32, ptr %302, align 4, !tbaa !5
  %4976 = call ptr @strerror(i32 noundef %4975) #12
  %4977 = load i32, ptr %302, align 4, !tbaa !5
  %4978 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4969, ptr noundef nonnull %.str.5.sink2337, i32 noundef %4970, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 517, ptr noundef %4972, ptr noundef %4974, ptr noundef %4976, i32 noundef %4977) #14
  call void @exit(i32 noundef 1) #15
  unreachable

4979:                                             ; preds = %4951
  %4980 = load i32, ptr @test_count, align 4, !tbaa !5
  %4981 = add nsw i32 %4980, 1
  store i32 %4981, ptr @test_count, align 4, !tbaa !5
  %4982 = load i32, ptr %67, align 4, !tbaa !5
  %4983 = icmp eq i32 %4982, 12
  br i1 %4983, label %5006, label %4984

4984:                                             ; preds = %4979
  %4985 = load i32, ptr %302, align 4, !tbaa !5
  %4986 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4987 = call i32 @s2n_print_stacktrace(ptr noundef %4986) #12
  %4988 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %4989 = trunc nuw i8 %4988 to i1
  br i1 %4989, label %4990, label %4994

4990:                                             ; preds = %4984
  %4991 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4992 = call i32 @fileno(ptr noundef %4991) #12
  %4993 = call i32 @isatty(i32 noundef %4992) #12
  %.not627 = icmp eq i32 %4993, 0
  br i1 %.not627, label %4994, label %4995

4994:                                             ; preds = %4990, %4984
  br label %4995

4995:                                             ; preds = %4990, %4994
  %.str.5.sink2346 = phi ptr [ @.str.5, %4994 ], [ @.str.2, %4990 ]
  store i32 %4985, ptr %302, align 4, !tbaa !5
  %4996 = load ptr, ptr @stderr, align 8, !tbaa !9
  %4997 = load i32, ptr @test_count, align 4, !tbaa !5
  %4998 = load i32, ptr %248, align 4, !tbaa !5
  %4999 = call ptr @s2n_strerror(i32 noundef %4998, ptr noundef nonnull @.str.4) #12
  %5000 = load i32, ptr %248, align 4, !tbaa !5
  %5001 = call ptr @s2n_strerror_debug(i32 noundef %5000, ptr noundef nonnull @.str.4) #12
  %5002 = load i32, ptr %302, align 4, !tbaa !5
  %5003 = call ptr @strerror(i32 noundef %5002) #12
  %5004 = load i32, ptr %302, align 4, !tbaa !5
  %5005 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4996, ptr noundef nonnull %.str.5.sink2346, i32 noundef %4997, ptr noundef nonnull @.str.99, ptr noundef nonnull @.str.1, i32 noundef 518, ptr noundef %4999, ptr noundef %5001, ptr noundef %5003, i32 noundef %5004) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5006:                                             ; preds = %4979
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %67) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %66) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %65) #12
  %5007 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %64) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %64) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %68) #12
  %5008 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %5008, ptr %68, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %69) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %69, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %70) #12
  store i32 0, ptr %70, align 4, !tbaa !5
  %5009 = load i32, ptr @test_count, align 4, !tbaa !5
  %5010 = add nsw i32 %5009, 1
  store i32 %5010, ptr @test_count, align 4, !tbaa !5
  %5011 = call i32 @s2n_fingerprint_get_raw(ptr noundef null, i32 noundef 100, ptr noundef nonnull %69, ptr noundef nonnull %70) #12
  %5012 = icmp eq i32 %5011, -1
  br i1 %5012, label %5035, label %5013

5013:                                             ; preds = %5006
  %5014 = load i32, ptr %302, align 4, !tbaa !5
  %5015 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5016 = call i32 @s2n_print_stacktrace(ptr noundef %5015) #12
  %5017 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5018 = trunc nuw i8 %5017 to i1
  br i1 %5018, label %5019, label %5023

5019:                                             ; preds = %5013
  %5020 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5021 = call i32 @fileno(ptr noundef %5020) #12
  %5022 = call i32 @isatty(i32 noundef %5021) #12
  %.not628 = icmp eq i32 %5022, 0
  br i1 %.not628, label %5023, label %5024

5023:                                             ; preds = %5019, %5013
  br label %5024

5024:                                             ; preds = %5019, %5023
  %.str.5.sink2355 = phi ptr [ @.str.5, %5023 ], [ @.str.2, %5019 ]
  store i32 %5014, ptr %302, align 4, !tbaa !5
  %5025 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5026 = load i32, ptr @test_count, align 4, !tbaa !5
  %5027 = load i32, ptr %248, align 4, !tbaa !5
  %5028 = call ptr @s2n_strerror(i32 noundef %5027, ptr noundef nonnull @.str.4) #12
  %5029 = load i32, ptr %248, align 4, !tbaa !5
  %5030 = call ptr @s2n_strerror_debug(i32 noundef %5029, ptr noundef nonnull @.str.4) #12
  %5031 = load i32, ptr %302, align 4, !tbaa !5
  %5032 = call ptr @strerror(i32 noundef %5031) #12
  %5033 = load i32, ptr %302, align 4, !tbaa !5
  %5034 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5025, ptr noundef nonnull %.str.5.sink2355, i32 noundef %5026, ptr noundef nonnull @.str.100, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %5028, ptr noundef %5030, ptr noundef %5032, i32 noundef %5033) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5035:                                             ; preds = %5006
  %5036 = load i32, ptr @test_count, align 4, !tbaa !5
  %5037 = add nsw i32 %5036, 1
  store i32 %5037, ptr @test_count, align 4, !tbaa !5
  %5038 = load i32, ptr %248, align 4, !tbaa !5
  %5039 = icmp eq i32 %5038, 469762089
  br i1 %5039, label %5062, label %5040

5040:                                             ; preds = %5035
  %5041 = load i32, ptr %302, align 4, !tbaa !5
  %5042 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5043 = call i32 @s2n_print_stacktrace(ptr noundef %5042) #12
  %5044 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5045 = trunc nuw i8 %5044 to i1
  br i1 %5045, label %5046, label %5050

5046:                                             ; preds = %5040
  %5047 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5048 = call i32 @fileno(ptr noundef %5047) #12
  %5049 = call i32 @isatty(i32 noundef %5048) #12
  %.not629 = icmp eq i32 %5049, 0
  br i1 %.not629, label %5050, label %5051

5050:                                             ; preds = %5046, %5040
  br label %5051

5051:                                             ; preds = %5046, %5050
  %.str.5.sink2364 = phi ptr [ @.str.5, %5050 ], [ @.str.2, %5046 ]
  store i32 %5041, ptr %302, align 4, !tbaa !5
  %5052 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5053 = load i32, ptr @test_count, align 4, !tbaa !5
  %5054 = load i32, ptr %248, align 4, !tbaa !5
  %5055 = call ptr @s2n_strerror(i32 noundef %5054, ptr noundef nonnull @.str.4) #12
  %5056 = load i32, ptr %248, align 4, !tbaa !5
  %5057 = call ptr @s2n_strerror_debug(i32 noundef %5056, ptr noundef nonnull @.str.4) #12
  %5058 = load i32, ptr %302, align 4, !tbaa !5
  %5059 = call ptr @strerror(i32 noundef %5058) #12
  %5060 = load i32, ptr %302, align 4, !tbaa !5
  %5061 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5052, ptr noundef nonnull %.str.5.sink2364, i32 noundef %5053, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %5055, ptr noundef %5057, ptr noundef %5059, i32 noundef %5060) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5062:                                             ; preds = %5035
  %5063 = add nsw i32 %5036, 2
  store i32 %5063, ptr @test_count, align 4, !tbaa !5
  %5064 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %5065 = icmp eq ptr %5064, null
  br i1 %5065, label %5066, label %5088

5066:                                             ; preds = %5062
  %5067 = load i32, ptr %302, align 4, !tbaa !5
  %5068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5069 = call i32 @s2n_print_stacktrace(ptr noundef %5068) #12
  %5070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5071 = trunc nuw i8 %5070 to i1
  br i1 %5071, label %5072, label %5076

5072:                                             ; preds = %5066
  %5073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5074 = call i32 @fileno(ptr noundef %5073) #12
  %5075 = call i32 @isatty(i32 noundef %5074) #12
  %.not691 = icmp eq i32 %5075, 0
  br i1 %.not691, label %5076, label %5077

5076:                                             ; preds = %5072, %5066
  br label %5077

5077:                                             ; preds = %5072, %5076
  %.str.5.sink2373 = phi ptr [ @.str.5, %5076 ], [ @.str.2, %5072 ]
  store i32 %5067, ptr %302, align 4, !tbaa !5
  %5078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5079 = load i32, ptr @test_count, align 4, !tbaa !5
  %5080 = load i32, ptr %248, align 4, !tbaa !5
  %5081 = call ptr @s2n_strerror(i32 noundef %5080, ptr noundef nonnull @.str.4) #12
  %5082 = load i32, ptr %248, align 4, !tbaa !5
  %5083 = call ptr @s2n_strerror_debug(i32 noundef %5082, ptr noundef nonnull @.str.4) #12
  %5084 = load i32, ptr %302, align 4, !tbaa !5
  %5085 = call ptr @strerror(i32 noundef %5084) #12
  %5086 = load i32, ptr %302, align 4, !tbaa !5
  %5087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5078, ptr noundef nonnull %.str.5.sink2373, i32 noundef %5079, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 533, ptr noundef %5081, ptr noundef %5083, ptr noundef %5085, i32 noundef %5086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5088:                                             ; preds = %5062
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %5089 = load i32, ptr @test_count, align 4, !tbaa !5
  %5090 = add nsw i32 %5089, 1
  store i32 %5090, ptr @test_count, align 4, !tbaa !5
  %5091 = load ptr, ptr %68, align 8, !tbaa !9
  %5092 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5091, i32 noundef 100, ptr noundef null, ptr noundef nonnull %70) #12
  %5093 = icmp eq i32 %5092, -1
  br i1 %5093, label %5116, label %5094

5094:                                             ; preds = %5088
  %5095 = load i32, ptr %302, align 4, !tbaa !5
  %5096 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5097 = call i32 @s2n_print_stacktrace(ptr noundef %5096) #12
  %5098 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5099 = trunc nuw i8 %5098 to i1
  br i1 %5099, label %5100, label %5104

5100:                                             ; preds = %5094
  %5101 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5102 = call i32 @fileno(ptr noundef %5101) #12
  %5103 = call i32 @isatty(i32 noundef %5102) #12
  %.not630 = icmp eq i32 %5103, 0
  br i1 %.not630, label %5104, label %5105

5104:                                             ; preds = %5100, %5094
  br label %5105

5105:                                             ; preds = %5100, %5104
  %.str.5.sink2382 = phi ptr [ @.str.5, %5104 ], [ @.str.2, %5100 ]
  store i32 %5095, ptr %302, align 4, !tbaa !5
  %5106 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5107 = load i32, ptr @test_count, align 4, !tbaa !5
  %5108 = load i32, ptr %248, align 4, !tbaa !5
  %5109 = call ptr @s2n_strerror(i32 noundef %5108, ptr noundef nonnull @.str.4) #12
  %5110 = load i32, ptr %248, align 4, !tbaa !5
  %5111 = call ptr @s2n_strerror_debug(i32 noundef %5110, ptr noundef nonnull @.str.4) #12
  %5112 = load i32, ptr %302, align 4, !tbaa !5
  %5113 = call ptr @strerror(i32 noundef %5112) #12
  %5114 = load i32, ptr %302, align 4, !tbaa !5
  %5115 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5106, ptr noundef nonnull %.str.5.sink2382, i32 noundef %5107, ptr noundef nonnull @.str.101, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %5109, ptr noundef %5111, ptr noundef %5113, i32 noundef %5114) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5116:                                             ; preds = %5088
  %5117 = load i32, ptr @test_count, align 4, !tbaa !5
  %5118 = add nsw i32 %5117, 1
  store i32 %5118, ptr @test_count, align 4, !tbaa !5
  %5119 = load i32, ptr %248, align 4, !tbaa !5
  %5120 = icmp eq i32 %5119, 469762089
  br i1 %5120, label %5143, label %5121

5121:                                             ; preds = %5116
  %5122 = load i32, ptr %302, align 4, !tbaa !5
  %5123 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5124 = call i32 @s2n_print_stacktrace(ptr noundef %5123) #12
  %5125 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5126 = trunc nuw i8 %5125 to i1
  br i1 %5126, label %5127, label %5131

5127:                                             ; preds = %5121
  %5128 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5129 = call i32 @fileno(ptr noundef %5128) #12
  %5130 = call i32 @isatty(i32 noundef %5129) #12
  %.not631 = icmp eq i32 %5130, 0
  br i1 %.not631, label %5131, label %5132

5131:                                             ; preds = %5127, %5121
  br label %5132

5132:                                             ; preds = %5127, %5131
  %.str.5.sink2391 = phi ptr [ @.str.5, %5131 ], [ @.str.2, %5127 ]
  store i32 %5122, ptr %302, align 4, !tbaa !5
  %5133 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5134 = load i32, ptr @test_count, align 4, !tbaa !5
  %5135 = load i32, ptr %248, align 4, !tbaa !5
  %5136 = call ptr @s2n_strerror(i32 noundef %5135, ptr noundef nonnull @.str.4) #12
  %5137 = load i32, ptr %248, align 4, !tbaa !5
  %5138 = call ptr @s2n_strerror_debug(i32 noundef %5137, ptr noundef nonnull @.str.4) #12
  %5139 = load i32, ptr %302, align 4, !tbaa !5
  %5140 = call ptr @strerror(i32 noundef %5139) #12
  %5141 = load i32, ptr %302, align 4, !tbaa !5
  %5142 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5133, ptr noundef nonnull %.str.5.sink2391, i32 noundef %5134, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %5136, ptr noundef %5138, ptr noundef %5140, i32 noundef %5141) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5143:                                             ; preds = %5116
  %5144 = add nsw i32 %5117, 2
  store i32 %5144, ptr @test_count, align 4, !tbaa !5
  %5145 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %5146 = icmp eq ptr %5145, null
  br i1 %5146, label %5147, label %5169

5147:                                             ; preds = %5143
  %5148 = load i32, ptr %302, align 4, !tbaa !5
  %5149 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5150 = call i32 @s2n_print_stacktrace(ptr noundef %5149) #12
  %5151 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5152 = trunc nuw i8 %5151 to i1
  br i1 %5152, label %5153, label %5157

5153:                                             ; preds = %5147
  %5154 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5155 = call i32 @fileno(ptr noundef %5154) #12
  %5156 = call i32 @isatty(i32 noundef %5155) #12
  %.not690 = icmp eq i32 %5156, 0
  br i1 %.not690, label %5157, label %5158

5157:                                             ; preds = %5153, %5147
  br label %5158

5158:                                             ; preds = %5153, %5157
  %.str.5.sink2400 = phi ptr [ @.str.5, %5157 ], [ @.str.2, %5153 ]
  store i32 %5148, ptr %302, align 4, !tbaa !5
  %5159 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5160 = load i32, ptr @test_count, align 4, !tbaa !5
  %5161 = load i32, ptr %248, align 4, !tbaa !5
  %5162 = call ptr @s2n_strerror(i32 noundef %5161, ptr noundef nonnull @.str.4) #12
  %5163 = load i32, ptr %248, align 4, !tbaa !5
  %5164 = call ptr @s2n_strerror_debug(i32 noundef %5163, ptr noundef nonnull @.str.4) #12
  %5165 = load i32, ptr %302, align 4, !tbaa !5
  %5166 = call ptr @strerror(i32 noundef %5165) #12
  %5167 = load i32, ptr %302, align 4, !tbaa !5
  %5168 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5159, ptr noundef nonnull %.str.5.sink2400, i32 noundef %5160, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 536, ptr noundef %5162, ptr noundef %5164, ptr noundef %5166, i32 noundef %5167) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5169:                                             ; preds = %5143
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %5170 = load i32, ptr @test_count, align 4, !tbaa !5
  %5171 = add nsw i32 %5170, 1
  store i32 %5171, ptr @test_count, align 4, !tbaa !5
  %5172 = load ptr, ptr %68, align 8, !tbaa !9
  %5173 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5172, i32 noundef 100, ptr noundef nonnull %69, ptr noundef null) #12
  %5174 = icmp eq i32 %5173, -1
  br i1 %5174, label %5197, label %5175

5175:                                             ; preds = %5169
  %5176 = load i32, ptr %302, align 4, !tbaa !5
  %5177 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5178 = call i32 @s2n_print_stacktrace(ptr noundef %5177) #12
  %5179 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5180 = trunc nuw i8 %5179 to i1
  br i1 %5180, label %5181, label %5185

5181:                                             ; preds = %5175
  %5182 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5183 = call i32 @fileno(ptr noundef %5182) #12
  %5184 = call i32 @isatty(i32 noundef %5183) #12
  %.not632 = icmp eq i32 %5184, 0
  br i1 %.not632, label %5185, label %5186

5185:                                             ; preds = %5181, %5175
  br label %5186

5186:                                             ; preds = %5181, %5185
  %.str.5.sink2409 = phi ptr [ @.str.5, %5185 ], [ @.str.2, %5181 ]
  store i32 %5176, ptr %302, align 4, !tbaa !5
  %5187 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5188 = load i32, ptr @test_count, align 4, !tbaa !5
  %5189 = load i32, ptr %248, align 4, !tbaa !5
  %5190 = call ptr @s2n_strerror(i32 noundef %5189, ptr noundef nonnull @.str.4) #12
  %5191 = load i32, ptr %248, align 4, !tbaa !5
  %5192 = call ptr @s2n_strerror_debug(i32 noundef %5191, ptr noundef nonnull @.str.4) #12
  %5193 = load i32, ptr %302, align 4, !tbaa !5
  %5194 = call ptr @strerror(i32 noundef %5193) #12
  %5195 = load i32, ptr %302, align 4, !tbaa !5
  %5196 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5187, ptr noundef nonnull %.str.5.sink2409, i32 noundef %5188, ptr noundef nonnull @.str.102, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %5190, ptr noundef %5192, ptr noundef %5194, i32 noundef %5195) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5197:                                             ; preds = %5169
  %5198 = load i32, ptr @test_count, align 4, !tbaa !5
  %5199 = add nsw i32 %5198, 1
  store i32 %5199, ptr @test_count, align 4, !tbaa !5
  %5200 = load i32, ptr %248, align 4, !tbaa !5
  %5201 = icmp eq i32 %5200, 469762089
  br i1 %5201, label %5224, label %5202

5202:                                             ; preds = %5197
  %5203 = load i32, ptr %302, align 4, !tbaa !5
  %5204 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5205 = call i32 @s2n_print_stacktrace(ptr noundef %5204) #12
  %5206 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5207 = trunc nuw i8 %5206 to i1
  br i1 %5207, label %5208, label %5212

5208:                                             ; preds = %5202
  %5209 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5210 = call i32 @fileno(ptr noundef %5209) #12
  %5211 = call i32 @isatty(i32 noundef %5210) #12
  %.not633 = icmp eq i32 %5211, 0
  br i1 %.not633, label %5212, label %5213

5212:                                             ; preds = %5208, %5202
  br label %5213

5213:                                             ; preds = %5208, %5212
  %.str.5.sink2418 = phi ptr [ @.str.5, %5212 ], [ @.str.2, %5208 ]
  store i32 %5203, ptr %302, align 4, !tbaa !5
  %5214 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5215 = load i32, ptr @test_count, align 4, !tbaa !5
  %5216 = load i32, ptr %248, align 4, !tbaa !5
  %5217 = call ptr @s2n_strerror(i32 noundef %5216, ptr noundef nonnull @.str.4) #12
  %5218 = load i32, ptr %248, align 4, !tbaa !5
  %5219 = call ptr @s2n_strerror_debug(i32 noundef %5218, ptr noundef nonnull @.str.4) #12
  %5220 = load i32, ptr %302, align 4, !tbaa !5
  %5221 = call ptr @strerror(i32 noundef %5220) #12
  %5222 = load i32, ptr %302, align 4, !tbaa !5
  %5223 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5214, ptr noundef nonnull %.str.5.sink2418, i32 noundef %5215, ptr noundef nonnull @.str.52, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %5217, ptr noundef %5219, ptr noundef %5221, i32 noundef %5222) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5224:                                             ; preds = %5197
  %5225 = add nsw i32 %5198, 2
  store i32 %5225, ptr @test_count, align 4, !tbaa !5
  %5226 = call ptr @s2n_strerror_debug(i32 noundef 469762089, ptr noundef nonnull @.str.4) #12
  %5227 = icmp eq ptr %5226, null
  br i1 %5227, label %5228, label %5250

5228:                                             ; preds = %5224
  %5229 = load i32, ptr %302, align 4, !tbaa !5
  %5230 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5231 = call i32 @s2n_print_stacktrace(ptr noundef %5230) #12
  %5232 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5233 = trunc nuw i8 %5232 to i1
  br i1 %5233, label %5234, label %5238

5234:                                             ; preds = %5228
  %5235 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5236 = call i32 @fileno(ptr noundef %5235) #12
  %5237 = call i32 @isatty(i32 noundef %5236) #12
  %.not689 = icmp eq i32 %5237, 0
  br i1 %.not689, label %5238, label %5239

5238:                                             ; preds = %5234, %5228
  br label %5239

5239:                                             ; preds = %5234, %5238
  %.str.5.sink2427 = phi ptr [ @.str.5, %5238 ], [ @.str.2, %5234 ]
  store i32 %5229, ptr %302, align 4, !tbaa !5
  %5240 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5241 = load i32, ptr @test_count, align 4, !tbaa !5
  %5242 = load i32, ptr %248, align 4, !tbaa !5
  %5243 = call ptr @s2n_strerror(i32 noundef %5242, ptr noundef nonnull @.str.4) #12
  %5244 = load i32, ptr %248, align 4, !tbaa !5
  %5245 = call ptr @s2n_strerror_debug(i32 noundef %5244, ptr noundef nonnull @.str.4) #12
  %5246 = load i32, ptr %302, align 4, !tbaa !5
  %5247 = call ptr @strerror(i32 noundef %5246) #12
  %5248 = load i32, ptr %302, align 4, !tbaa !5
  %5249 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5240, ptr noundef nonnull %.str.5.sink2427, i32 noundef %5241, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 539, ptr noundef %5243, ptr noundef %5245, ptr noundef %5247, i32 noundef %5248) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5250:                                             ; preds = %5224
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %70) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %69) #12
  %5251 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %68) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %68) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %71) #12
  %5252 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %5252, ptr %71, align 8, !tbaa !9
  %5253 = load i32, ptr @test_count, align 4, !tbaa !5
  %5254 = add nsw i32 %5253, 1
  store i32 %5254, ptr @test_count, align 4, !tbaa !5
  %5255 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %5252, ptr noundef %4898) #12
  %5256 = icmp eq i32 %5255, -1
  br i1 %5256, label %5257, label %5279

5257:                                             ; preds = %5250
  %5258 = load i32, ptr %302, align 4, !tbaa !5
  %5259 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5260 = call i32 @s2n_print_stacktrace(ptr noundef %5259) #12
  %5261 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5262 = trunc nuw i8 %5261 to i1
  br i1 %5262, label %5263, label %5267

5263:                                             ; preds = %5257
  %5264 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5265 = call i32 @fileno(ptr noundef %5264) #12
  %5266 = call i32 @isatty(i32 noundef %5265) #12
  %.not688 = icmp eq i32 %5266, 0
  br i1 %.not688, label %5267, label %5268

5267:                                             ; preds = %5263, %5257
  br label %5268

5268:                                             ; preds = %5263, %5267
  %.str.5.sink2436 = phi ptr [ @.str.5, %5267 ], [ @.str.2, %5263 ]
  store i32 %5258, ptr %302, align 4, !tbaa !5
  %5269 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5270 = load i32, ptr @test_count, align 4, !tbaa !5
  %5271 = load i32, ptr %248, align 4, !tbaa !5
  %5272 = call ptr @s2n_strerror(i32 noundef %5271, ptr noundef nonnull @.str.4) #12
  %5273 = load i32, ptr %248, align 4, !tbaa !5
  %5274 = call ptr @s2n_strerror_debug(i32 noundef %5273, ptr noundef nonnull @.str.4) #12
  %5275 = load i32, ptr %302, align 4, !tbaa !5
  %5276 = call ptr @strerror(i32 noundef %5275) #12
  %5277 = load i32, ptr %302, align 4, !tbaa !5
  %5278 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5269, ptr noundef nonnull %.str.5.sink2436, i32 noundef %5270, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 546, ptr noundef %5272, ptr noundef %5274, ptr noundef %5276, i32 noundef %5277) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5279:                                             ; preds = %5250
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %72) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %72, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %73) #12
  store i32 0, ptr %73, align 4, !tbaa !5
  %5280 = load i32, ptr @test_count, align 4, !tbaa !5
  %5281 = add nsw i32 %5280, 1
  store i32 %5281, ptr @test_count, align 4, !tbaa !5
  %5282 = load ptr, ptr %71, align 8, !tbaa !9
  %5283 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5282, i32 noundef 100, ptr noundef nonnull %72, ptr noundef nonnull %73) #12
  %5284 = icmp eq i32 %5283, -1
  br i1 %5284, label %5285, label %5307

5285:                                             ; preds = %5279
  %5286 = load i32, ptr %302, align 4, !tbaa !5
  %5287 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5288 = call i32 @s2n_print_stacktrace(ptr noundef %5287) #12
  %5289 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5290 = trunc nuw i8 %5289 to i1
  br i1 %5290, label %5291, label %5295

5291:                                             ; preds = %5285
  %5292 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5293 = call i32 @fileno(ptr noundef %5292) #12
  %5294 = call i32 @isatty(i32 noundef %5293) #12
  %.not687 = icmp eq i32 %5294, 0
  br i1 %.not687, label %5295, label %5296

5295:                                             ; preds = %5291, %5285
  br label %5296

5296:                                             ; preds = %5291, %5295
  %.str.5.sink2445 = phi ptr [ @.str.5, %5295 ], [ @.str.2, %5291 ]
  store i32 %5286, ptr %302, align 4, !tbaa !5
  %5297 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5298 = load i32, ptr @test_count, align 4, !tbaa !5
  %5299 = load i32, ptr %248, align 4, !tbaa !5
  %5300 = call ptr @s2n_strerror(i32 noundef %5299, ptr noundef nonnull @.str.4) #12
  %5301 = load i32, ptr %248, align 4, !tbaa !5
  %5302 = call ptr @s2n_strerror_debug(i32 noundef %5301, ptr noundef nonnull @.str.4) #12
  %5303 = load i32, ptr %302, align 4, !tbaa !5
  %5304 = call ptr @strerror(i32 noundef %5303) #12
  %5305 = load i32, ptr %302, align 4, !tbaa !5
  %5306 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5297, ptr noundef nonnull %.str.5.sink2445, i32 noundef %5298, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 551, ptr noundef %5300, ptr noundef %5302, ptr noundef %5304, i32 noundef %5305) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5307:                                             ; preds = %5279
  %5308 = load i32, ptr @test_count, align 4, !tbaa !5
  %5309 = add nsw i32 %5308, 1
  store i32 %5309, ptr @test_count, align 4, !tbaa !5
  %5310 = load i32, ptr %73, align 4, !tbaa !5
  %5311 = icmp eq i32 %5310, 12
  br i1 %5311, label %5334, label %5312

5312:                                             ; preds = %5307
  %5313 = load i32, ptr %302, align 4, !tbaa !5
  %5314 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5315 = call i32 @s2n_print_stacktrace(ptr noundef %5314) #12
  %5316 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5317 = trunc nuw i8 %5316 to i1
  br i1 %5317, label %5318, label %5322

5318:                                             ; preds = %5312
  %5319 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5320 = call i32 @fileno(ptr noundef %5319) #12
  %5321 = call i32 @isatty(i32 noundef %5320) #12
  %.not634 = icmp eq i32 %5321, 0
  br i1 %.not634, label %5322, label %5323

5322:                                             ; preds = %5318, %5312
  br label %5323

5323:                                             ; preds = %5318, %5322
  %.str.5.sink2454 = phi ptr [ @.str.5, %5322 ], [ @.str.2, %5318 ]
  store i32 %5313, ptr %302, align 4, !tbaa !5
  %5324 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5325 = load i32, ptr @test_count, align 4, !tbaa !5
  %5326 = load i32, ptr %248, align 4, !tbaa !5
  %5327 = call ptr @s2n_strerror(i32 noundef %5326, ptr noundef nonnull @.str.4) #12
  %5328 = load i32, ptr %248, align 4, !tbaa !5
  %5329 = call ptr @s2n_strerror_debug(i32 noundef %5328, ptr noundef nonnull @.str.4) #12
  %5330 = load i32, ptr %302, align 4, !tbaa !5
  %5331 = call ptr @strerror(i32 noundef %5330) #12
  %5332 = load i32, ptr %302, align 4, !tbaa !5
  %5333 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5324, ptr noundef nonnull %.str.5.sink2454, i32 noundef %5325, ptr noundef nonnull @.str.104, ptr noundef nonnull @.str.1, i32 noundef 553, ptr noundef %5327, ptr noundef %5329, ptr noundef %5331, i32 noundef %5332) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5334:                                             ; preds = %5307
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %73) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %72) #12
  %5335 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %71) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %71) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %74) #12
  %5336 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %5336, ptr %74, align 8, !tbaa !9
  %5337 = load i32, ptr @test_count, align 4, !tbaa !5
  %5338 = add nsw i32 %5337, 1
  store i32 %5338, ptr @test_count, align 4, !tbaa !5
  %5339 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %5336, ptr noundef %4898) #12
  %5340 = icmp eq i32 %5339, -1
  br i1 %5340, label %5341, label %5363

5341:                                             ; preds = %5334
  %5342 = load i32, ptr %302, align 4, !tbaa !5
  %5343 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5344 = call i32 @s2n_print_stacktrace(ptr noundef %5343) #12
  %5345 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5346 = trunc nuw i8 %5345 to i1
  br i1 %5346, label %5347, label %5351

5347:                                             ; preds = %5341
  %5348 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5349 = call i32 @fileno(ptr noundef %5348) #12
  %5350 = call i32 @isatty(i32 noundef %5349) #12
  %.not686 = icmp eq i32 %5350, 0
  br i1 %.not686, label %5351, label %5352

5351:                                             ; preds = %5347, %5341
  br label %5352

5352:                                             ; preds = %5347, %5351
  %.str.5.sink2463 = phi ptr [ @.str.5, %5351 ], [ @.str.2, %5347 ]
  store i32 %5342, ptr %302, align 4, !tbaa !5
  %5353 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5354 = load i32, ptr @test_count, align 4, !tbaa !5
  %5355 = load i32, ptr %248, align 4, !tbaa !5
  %5356 = call ptr @s2n_strerror(i32 noundef %5355, ptr noundef nonnull @.str.4) #12
  %5357 = load i32, ptr %248, align 4, !tbaa !5
  %5358 = call ptr @s2n_strerror_debug(i32 noundef %5357, ptr noundef nonnull @.str.4) #12
  %5359 = load i32, ptr %302, align 4, !tbaa !5
  %5360 = call ptr @strerror(i32 noundef %5359) #12
  %5361 = load i32, ptr %302, align 4, !tbaa !5
  %5362 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5353, ptr noundef nonnull %.str.5.sink2463, i32 noundef %5354, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 560, ptr noundef %5356, ptr noundef %5358, ptr noundef %5360, i32 noundef %5361) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5363:                                             ; preds = %5334
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %75) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %75, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %76) #12
  store i32 0, ptr %76, align 4, !tbaa !5
  %5364 = load i32, ptr @test_count, align 4, !tbaa !5
  %5365 = add nsw i32 %5364, 2
  store i32 %5365, ptr @test_count, align 4, !tbaa !5
  %5366 = load ptr, ptr %74, align 8, !tbaa !9
  %5367 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5366, i32 noundef 0, ptr noundef nonnull %75, ptr noundef nonnull %76) #12
  %5368 = icmp eq i32 %5367, -1
  br i1 %5368, label %5391, label %5369

5369:                                             ; preds = %5363
  %5370 = load i32, ptr %302, align 4, !tbaa !5
  %5371 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5372 = call i32 @s2n_print_stacktrace(ptr noundef %5371) #12
  %5373 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5374 = trunc nuw i8 %5373 to i1
  br i1 %5374, label %5375, label %5379

5375:                                             ; preds = %5369
  %5376 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5377 = call i32 @fileno(ptr noundef %5376) #12
  %5378 = call i32 @isatty(i32 noundef %5377) #12
  %.not635 = icmp eq i32 %5378, 0
  br i1 %.not635, label %5379, label %5380

5379:                                             ; preds = %5375, %5369
  br label %5380

5380:                                             ; preds = %5375, %5379
  %.str.5.sink2472 = phi ptr [ @.str.5, %5379 ], [ @.str.2, %5375 ]
  store i32 %5370, ptr %302, align 4, !tbaa !5
  %5381 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5382 = load i32, ptr @test_count, align 4, !tbaa !5
  %5383 = load i32, ptr %248, align 4, !tbaa !5
  %5384 = call ptr @s2n_strerror(i32 noundef %5383, ptr noundef nonnull @.str.4) #12
  %5385 = load i32, ptr %248, align 4, !tbaa !5
  %5386 = call ptr @s2n_strerror_debug(i32 noundef %5385, ptr noundef nonnull @.str.4) #12
  %5387 = load i32, ptr %302, align 4, !tbaa !5
  %5388 = call ptr @strerror(i32 noundef %5387) #12
  %5389 = load i32, ptr %302, align 4, !tbaa !5
  %5390 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5381, ptr noundef nonnull %.str.5.sink2472, i32 noundef %5382, ptr noundef nonnull @.str.105, ptr noundef nonnull @.str.1, i32 noundef 568, ptr noundef %5384, ptr noundef %5386, ptr noundef %5388, i32 noundef %5389) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5391:                                             ; preds = %5363
  %5392 = load i32, ptr @test_count, align 4, !tbaa !5
  %5393 = add nsw i32 %5392, 1
  store i32 %5393, ptr @test_count, align 4, !tbaa !5
  %5394 = load i32, ptr %248, align 4, !tbaa !5
  %5395 = icmp eq i32 %5394, 469762120
  br i1 %5395, label %5418, label %5396

5396:                                             ; preds = %5391
  %5397 = load i32, ptr %302, align 4, !tbaa !5
  %5398 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5399 = call i32 @s2n_print_stacktrace(ptr noundef %5398) #12
  %5400 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5401 = trunc nuw i8 %5400 to i1
  br i1 %5401, label %5402, label %5406

5402:                                             ; preds = %5396
  %5403 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5404 = call i32 @fileno(ptr noundef %5403) #12
  %5405 = call i32 @isatty(i32 noundef %5404) #12
  %.not636 = icmp eq i32 %5405, 0
  br i1 %.not636, label %5406, label %5407

5406:                                             ; preds = %5402, %5396
  br label %5407

5407:                                             ; preds = %5402, %5406
  %.str.5.sink2481 = phi ptr [ @.str.5, %5406 ], [ @.str.2, %5402 ]
  store i32 %5397, ptr %302, align 4, !tbaa !5
  %5408 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5409 = load i32, ptr @test_count, align 4, !tbaa !5
  %5410 = load i32, ptr %248, align 4, !tbaa !5
  %5411 = call ptr @s2n_strerror(i32 noundef %5410, ptr noundef nonnull @.str.4) #12
  %5412 = load i32, ptr %248, align 4, !tbaa !5
  %5413 = call ptr @s2n_strerror_debug(i32 noundef %5412, ptr noundef nonnull @.str.4) #12
  %5414 = load i32, ptr %302, align 4, !tbaa !5
  %5415 = call ptr @strerror(i32 noundef %5414) #12
  %5416 = load i32, ptr %302, align 4, !tbaa !5
  %5417 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5408, ptr noundef nonnull %.str.5.sink2481, i32 noundef %5409, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 568, ptr noundef %5411, ptr noundef %5413, ptr noundef %5415, i32 noundef %5416) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5418:                                             ; preds = %5391
  %5419 = add nsw i32 %5392, 2
  store i32 %5419, ptr @test_count, align 4, !tbaa !5
  %5420 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %5421 = icmp eq ptr %5420, null
  br i1 %5421, label %5422, label %5444

5422:                                             ; preds = %5418
  %5423 = load i32, ptr %302, align 4, !tbaa !5
  %5424 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5425 = call i32 @s2n_print_stacktrace(ptr noundef %5424) #12
  %5426 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5427 = trunc nuw i8 %5426 to i1
  br i1 %5427, label %5428, label %5432

5428:                                             ; preds = %5422
  %5429 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5430 = call i32 @fileno(ptr noundef %5429) #12
  %5431 = call i32 @isatty(i32 noundef %5430) #12
  %.not685 = icmp eq i32 %5431, 0
  br i1 %.not685, label %5432, label %5433

5432:                                             ; preds = %5428, %5422
  br label %5433

5433:                                             ; preds = %5428, %5432
  %.str.5.sink2490 = phi ptr [ @.str.5, %5432 ], [ @.str.2, %5428 ]
  store i32 %5423, ptr %302, align 4, !tbaa !5
  %5434 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5435 = load i32, ptr @test_count, align 4, !tbaa !5
  %5436 = load i32, ptr %248, align 4, !tbaa !5
  %5437 = call ptr @s2n_strerror(i32 noundef %5436, ptr noundef nonnull @.str.4) #12
  %5438 = load i32, ptr %248, align 4, !tbaa !5
  %5439 = call ptr @s2n_strerror_debug(i32 noundef %5438, ptr noundef nonnull @.str.4) #12
  %5440 = load i32, ptr %302, align 4, !tbaa !5
  %5441 = call ptr @strerror(i32 noundef %5440) #12
  %5442 = load i32, ptr %302, align 4, !tbaa !5
  %5443 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5434, ptr noundef nonnull %.str.5.sink2490, i32 noundef %5435, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 568, ptr noundef %5437, ptr noundef %5439, ptr noundef %5441, i32 noundef %5442) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5444:                                             ; preds = %5418
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %5445 = load i32, ptr @test_count, align 4, !tbaa !5
  %5446 = add nsw i32 %5445, 1
  store i32 %5446, ptr @test_count, align 4, !tbaa !5
  %5447 = load ptr, ptr %74, align 8, !tbaa !9
  %5448 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5447, i32 noundef 11, ptr noundef nonnull %75, ptr noundef nonnull %76) #12
  %5449 = icmp eq i32 %5448, -1
  br i1 %5449, label %5472, label %5450

5450:                                             ; preds = %5444
  %5451 = load i32, ptr %302, align 4, !tbaa !5
  %5452 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5453 = call i32 @s2n_print_stacktrace(ptr noundef %5452) #12
  %5454 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5455 = trunc nuw i8 %5454 to i1
  br i1 %5455, label %5456, label %5460

5456:                                             ; preds = %5450
  %5457 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5458 = call i32 @fileno(ptr noundef %5457) #12
  %5459 = call i32 @isatty(i32 noundef %5458) #12
  %.not637 = icmp eq i32 %5459, 0
  br i1 %.not637, label %5460, label %5461

5460:                                             ; preds = %5456, %5450
  br label %5461

5461:                                             ; preds = %5456, %5460
  %.str.5.sink2499 = phi ptr [ @.str.5, %5460 ], [ @.str.2, %5456 ]
  store i32 %5451, ptr %302, align 4, !tbaa !5
  %5462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5463 = load i32, ptr @test_count, align 4, !tbaa !5
  %5464 = load i32, ptr %248, align 4, !tbaa !5
  %5465 = call ptr @s2n_strerror(i32 noundef %5464, ptr noundef nonnull @.str.4) #12
  %5466 = load i32, ptr %248, align 4, !tbaa !5
  %5467 = call ptr @s2n_strerror_debug(i32 noundef %5466, ptr noundef nonnull @.str.4) #12
  %5468 = load i32, ptr %302, align 4, !tbaa !5
  %5469 = call ptr @strerror(i32 noundef %5468) #12
  %5470 = load i32, ptr %302, align 4, !tbaa !5
  %5471 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5462, ptr noundef nonnull %.str.5.sink2499, i32 noundef %5463, ptr noundef nonnull @.str.106, ptr noundef nonnull @.str.1, i32 noundef 571, ptr noundef %5465, ptr noundef %5467, ptr noundef %5469, i32 noundef %5470) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5472:                                             ; preds = %5444
  %5473 = load i32, ptr @test_count, align 4, !tbaa !5
  %5474 = add nsw i32 %5473, 1
  store i32 %5474, ptr @test_count, align 4, !tbaa !5
  %5475 = load i32, ptr %248, align 4, !tbaa !5
  %5476 = icmp eq i32 %5475, 469762120
  br i1 %5476, label %5499, label %5477

5477:                                             ; preds = %5472
  %5478 = load i32, ptr %302, align 4, !tbaa !5
  %5479 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5480 = call i32 @s2n_print_stacktrace(ptr noundef %5479) #12
  %5481 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5482 = trunc nuw i8 %5481 to i1
  br i1 %5482, label %5483, label %5487

5483:                                             ; preds = %5477
  %5484 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5485 = call i32 @fileno(ptr noundef %5484) #12
  %5486 = call i32 @isatty(i32 noundef %5485) #12
  %.not638 = icmp eq i32 %5486, 0
  br i1 %.not638, label %5487, label %5488

5487:                                             ; preds = %5483, %5477
  br label %5488

5488:                                             ; preds = %5483, %5487
  %.str.5.sink2508 = phi ptr [ @.str.5, %5487 ], [ @.str.2, %5483 ]
  store i32 %5478, ptr %302, align 4, !tbaa !5
  %5489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5490 = load i32, ptr @test_count, align 4, !tbaa !5
  %5491 = load i32, ptr %248, align 4, !tbaa !5
  %5492 = call ptr @s2n_strerror(i32 noundef %5491, ptr noundef nonnull @.str.4) #12
  %5493 = load i32, ptr %248, align 4, !tbaa !5
  %5494 = call ptr @s2n_strerror_debug(i32 noundef %5493, ptr noundef nonnull @.str.4) #12
  %5495 = load i32, ptr %302, align 4, !tbaa !5
  %5496 = call ptr @strerror(i32 noundef %5495) #12
  %5497 = load i32, ptr %302, align 4, !tbaa !5
  %5498 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5489, ptr noundef nonnull %.str.5.sink2508, i32 noundef %5490, ptr noundef nonnull @.str.20, ptr noundef nonnull @.str.1, i32 noundef 571, ptr noundef %5492, ptr noundef %5494, ptr noundef %5496, i32 noundef %5497) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5499:                                             ; preds = %5472
  %5500 = add nsw i32 %5473, 2
  store i32 %5500, ptr @test_count, align 4, !tbaa !5
  %5501 = call ptr @s2n_strerror_debug(i32 noundef 469762120, ptr noundef nonnull @.str.4) #12
  %5502 = icmp eq ptr %5501, null
  br i1 %5502, label %5503, label %5525

5503:                                             ; preds = %5499
  %5504 = load i32, ptr %302, align 4, !tbaa !5
  %5505 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5506 = call i32 @s2n_print_stacktrace(ptr noundef %5505) #12
  %5507 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5508 = trunc nuw i8 %5507 to i1
  br i1 %5508, label %5509, label %5513

5509:                                             ; preds = %5503
  %5510 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5511 = call i32 @fileno(ptr noundef %5510) #12
  %5512 = call i32 @isatty(i32 noundef %5511) #12
  %.not684 = icmp eq i32 %5512, 0
  br i1 %.not684, label %5513, label %5514

5513:                                             ; preds = %5509, %5503
  br label %5514

5514:                                             ; preds = %5509, %5513
  %.str.5.sink2517 = phi ptr [ @.str.5, %5513 ], [ @.str.2, %5509 ]
  store i32 %5504, ptr %302, align 4, !tbaa !5
  %5515 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5516 = load i32, ptr @test_count, align 4, !tbaa !5
  %5517 = load i32, ptr %248, align 4, !tbaa !5
  %5518 = call ptr @s2n_strerror(i32 noundef %5517, ptr noundef nonnull @.str.4) #12
  %5519 = load i32, ptr %248, align 4, !tbaa !5
  %5520 = call ptr @s2n_strerror_debug(i32 noundef %5519, ptr noundef nonnull @.str.4) #12
  %5521 = load i32, ptr %302, align 4, !tbaa !5
  %5522 = call ptr @strerror(i32 noundef %5521) #12
  %5523 = load i32, ptr %302, align 4, !tbaa !5
  %5524 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5515, ptr noundef nonnull %.str.5.sink2517, i32 noundef %5516, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 571, ptr noundef %5518, ptr noundef %5520, ptr noundef %5522, i32 noundef %5523) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5525:                                             ; preds = %5499
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %5526 = load i32, ptr @test_count, align 4, !tbaa !5
  %5527 = add nsw i32 %5526, 1
  store i32 %5527, ptr @test_count, align 4, !tbaa !5
  %5528 = load ptr, ptr %74, align 8, !tbaa !9
  %5529 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5528, i32 noundef 12, ptr noundef nonnull %75, ptr noundef nonnull %76) #12
  %5530 = icmp eq i32 %5529, -1
  br i1 %5530, label %5531, label %5553

5531:                                             ; preds = %5525
  %5532 = load i32, ptr %302, align 4, !tbaa !5
  %5533 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5534 = call i32 @s2n_print_stacktrace(ptr noundef %5533) #12
  %5535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5536 = trunc nuw i8 %5535 to i1
  br i1 %5536, label %5537, label %5541

5537:                                             ; preds = %5531
  %5538 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5539 = call i32 @fileno(ptr noundef %5538) #12
  %5540 = call i32 @isatty(i32 noundef %5539) #12
  %.not683 = icmp eq i32 %5540, 0
  br i1 %.not683, label %5541, label %5542

5541:                                             ; preds = %5537, %5531
  br label %5542

5542:                                             ; preds = %5537, %5541
  %.str.5.sink2526 = phi ptr [ @.str.5, %5541 ], [ @.str.2, %5537 ]
  store i32 %5532, ptr %302, align 4, !tbaa !5
  %5543 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5544 = load i32, ptr @test_count, align 4, !tbaa !5
  %5545 = load i32, ptr %248, align 4, !tbaa !5
  %5546 = call ptr @s2n_strerror(i32 noundef %5545, ptr noundef nonnull @.str.4) #12
  %5547 = load i32, ptr %248, align 4, !tbaa !5
  %5548 = call ptr @s2n_strerror_debug(i32 noundef %5547, ptr noundef nonnull @.str.4) #12
  %5549 = load i32, ptr %302, align 4, !tbaa !5
  %5550 = call ptr @strerror(i32 noundef %5549) #12
  %5551 = load i32, ptr %302, align 4, !tbaa !5
  %5552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5543, ptr noundef nonnull %.str.5.sink2526, i32 noundef %5544, ptr noundef nonnull @.str.107, ptr noundef nonnull @.str.1, i32 noundef 573, ptr noundef %5546, ptr noundef %5548, ptr noundef %5550, i32 noundef %5551) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5553:                                             ; preds = %5525
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %76) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %75) #12
  %5554 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %74) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %74) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %77) #12
  %5555 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %5555, ptr %77, align 8, !tbaa !9
  %5556 = load i32, ptr @test_count, align 4, !tbaa !5
  %5557 = add nsw i32 %5556, 1
  store i32 %5557, ptr @test_count, align 4, !tbaa !5
  %5558 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %5555, ptr noundef %4898) #12
  %5559 = icmp eq i32 %5558, -1
  br i1 %5559, label %5560, label %5582

5560:                                             ; preds = %5553
  %5561 = load i32, ptr %302, align 4, !tbaa !5
  %5562 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5563 = call i32 @s2n_print_stacktrace(ptr noundef %5562) #12
  %5564 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5565 = trunc nuw i8 %5564 to i1
  br i1 %5565, label %5566, label %5570

5566:                                             ; preds = %5560
  %5567 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5568 = call i32 @fileno(ptr noundef %5567) #12
  %5569 = call i32 @isatty(i32 noundef %5568) #12
  %.not682 = icmp eq i32 %5569, 0
  br i1 %.not682, label %5570, label %5571

5570:                                             ; preds = %5566, %5560
  br label %5571

5571:                                             ; preds = %5566, %5570
  %.str.5.sink2535 = phi ptr [ @.str.5, %5570 ], [ @.str.2, %5566 ]
  store i32 %5561, ptr %302, align 4, !tbaa !5
  %5572 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5573 = load i32, ptr @test_count, align 4, !tbaa !5
  %5574 = load i32, ptr %248, align 4, !tbaa !5
  %5575 = call ptr @s2n_strerror(i32 noundef %5574, ptr noundef nonnull @.str.4) #12
  %5576 = load i32, ptr %248, align 4, !tbaa !5
  %5577 = call ptr @s2n_strerror_debug(i32 noundef %5576, ptr noundef nonnull @.str.4) #12
  %5578 = load i32, ptr %302, align 4, !tbaa !5
  %5579 = call ptr @strerror(i32 noundef %5578) #12
  %5580 = load i32, ptr %302, align 4, !tbaa !5
  %5581 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5572, ptr noundef nonnull %.str.5.sink2535, i32 noundef %5573, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 581, ptr noundef %5575, ptr noundef %5577, ptr noundef %5579, i32 noundef %5580) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5582:                                             ; preds = %5553
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %78) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %78, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %79) #12
  store i32 0, ptr %79, align 4, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %80) #12
  store i32 0, ptr %80, align 4, !tbaa !5
  %5583 = load i32, ptr @test_count, align 4, !tbaa !5
  %5584 = add nsw i32 %5583, 1
  store i32 %5584, ptr @test_count, align 4, !tbaa !5
  %5585 = call i32 @s2n_client_hello_get_fingerprint_hash(ptr noundef %4898, i32 noundef 0, i32 noundef 100, ptr noundef nonnull %78, ptr noundef nonnull %79, ptr noundef nonnull %80) #12
  %5586 = icmp eq i32 %5585, -1
  br i1 %5586, label %5587, label %5609

5587:                                             ; preds = %5582
  %5588 = load i32, ptr %302, align 4, !tbaa !5
  %5589 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5590 = call i32 @s2n_print_stacktrace(ptr noundef %5589) #12
  %5591 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5592 = trunc nuw i8 %5591 to i1
  br i1 %5592, label %5593, label %5597

5593:                                             ; preds = %5587
  %5594 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5595 = call i32 @fileno(ptr noundef %5594) #12
  %5596 = call i32 @isatty(i32 noundef %5595) #12
  %.not681 = icmp eq i32 %5596, 0
  br i1 %.not681, label %5597, label %5598

5597:                                             ; preds = %5593, %5587
  br label %5598

5598:                                             ; preds = %5593, %5597
  %.str.5.sink2544 = phi ptr [ @.str.5, %5597 ], [ @.str.2, %5593 ]
  store i32 %5588, ptr %302, align 4, !tbaa !5
  %5599 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5600 = load i32, ptr @test_count, align 4, !tbaa !5
  %5601 = load i32, ptr %248, align 4, !tbaa !5
  %5602 = call ptr @s2n_strerror(i32 noundef %5601, ptr noundef nonnull @.str.4) #12
  %5603 = load i32, ptr %248, align 4, !tbaa !5
  %5604 = call ptr @s2n_strerror_debug(i32 noundef %5603, ptr noundef nonnull @.str.4) #12
  %5605 = load i32, ptr %302, align 4, !tbaa !5
  %5606 = call ptr @strerror(i32 noundef %5605) #12
  %5607 = load i32, ptr %302, align 4, !tbaa !5
  %5608 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5599, ptr noundef nonnull %.str.5.sink2544, i32 noundef %5600, ptr noundef nonnull @.str.108, ptr noundef nonnull @.str.1, i32 noundef 587, ptr noundef %5602, ptr noundef %5604, ptr noundef %5606, i32 noundef %5607) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5609:                                             ; preds = %5582
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %81) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %81, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %82) #12
  store i32 0, ptr %82, align 4, !tbaa !5
  %5610 = load i32, ptr @test_count, align 4, !tbaa !5
  %5611 = add nsw i32 %5610, 1
  store i32 %5611, ptr @test_count, align 4, !tbaa !5
  %5612 = load ptr, ptr %77, align 8, !tbaa !9
  %5613 = call i32 @s2n_fingerprint_get_hash(ptr noundef %5612, i32 noundef 100, ptr noundef nonnull %81, ptr noundef nonnull %82) #12
  %5614 = icmp eq i32 %5613, -1
  br i1 %5614, label %5615, label %5637

5615:                                             ; preds = %5609
  %5616 = load i32, ptr %302, align 4, !tbaa !5
  %5617 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5618 = call i32 @s2n_print_stacktrace(ptr noundef %5617) #12
  %5619 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5620 = trunc nuw i8 %5619 to i1
  br i1 %5620, label %5621, label %5625

5621:                                             ; preds = %5615
  %5622 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5623 = call i32 @fileno(ptr noundef %5622) #12
  %5624 = call i32 @isatty(i32 noundef %5623) #12
  %.not680 = icmp eq i32 %5624, 0
  br i1 %.not680, label %5625, label %5626

5625:                                             ; preds = %5621, %5615
  br label %5626

5626:                                             ; preds = %5621, %5625
  %.str.5.sink2553 = phi ptr [ @.str.5, %5625 ], [ @.str.2, %5621 ]
  store i32 %5616, ptr %302, align 4, !tbaa !5
  %5627 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5628 = load i32, ptr @test_count, align 4, !tbaa !5
  %5629 = load i32, ptr %248, align 4, !tbaa !5
  %5630 = call ptr @s2n_strerror(i32 noundef %5629, ptr noundef nonnull @.str.4) #12
  %5631 = load i32, ptr %248, align 4, !tbaa !5
  %5632 = call ptr @s2n_strerror_debug(i32 noundef %5631, ptr noundef nonnull @.str.4) #12
  %5633 = load i32, ptr %302, align 4, !tbaa !5
  %5634 = call ptr @strerror(i32 noundef %5633) #12
  %5635 = load i32, ptr %302, align 4, !tbaa !5
  %5636 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5627, ptr noundef nonnull %.str.5.sink2553, i32 noundef %5628, ptr noundef nonnull @.str.88, ptr noundef nonnull @.str.1, i32 noundef 594, ptr noundef %5630, ptr noundef %5632, ptr noundef %5634, i32 noundef %5635) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5637:                                             ; preds = %5609
  call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %83) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %83, i8 0, i64 40, i1 false)
  %5638 = load i32, ptr @test_count, align 4, !tbaa !5
  %5639 = add nsw i32 %5638, 1
  store i32 %5639, ptr @test_count, align 4, !tbaa !5
  %5640 = load i32, ptr %82, align 4, !tbaa !5
  %5641 = call i32 @s2n_blob_init(ptr noundef nonnull %83, ptr noundef nonnull %81, i32 noundef %5640) #12
  %5642 = icmp eq i32 %5641, -1
  br i1 %5642, label %5643, label %5665

5643:                                             ; preds = %5637
  %5644 = load i32, ptr %302, align 4, !tbaa !5
  %5645 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5646 = call i32 @s2n_print_stacktrace(ptr noundef %5645) #12
  %5647 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5648 = trunc nuw i8 %5647 to i1
  br i1 %5648, label %5649, label %5653

5649:                                             ; preds = %5643
  %5650 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5651 = call i32 @fileno(ptr noundef %5650) #12
  %5652 = call i32 @isatty(i32 noundef %5651) #12
  %.not679 = icmp eq i32 %5652, 0
  br i1 %.not679, label %5653, label %5654

5653:                                             ; preds = %5649, %5643
  br label %5654

5654:                                             ; preds = %5649, %5653
  %.str.5.sink2562 = phi ptr [ @.str.5, %5653 ], [ @.str.2, %5649 ]
  store i32 %5644, ptr %302, align 4, !tbaa !5
  %5655 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5656 = load i32, ptr @test_count, align 4, !tbaa !5
  %5657 = load i32, ptr %248, align 4, !tbaa !5
  %5658 = call ptr @s2n_strerror(i32 noundef %5657, ptr noundef nonnull @.str.4) #12
  %5659 = load i32, ptr %248, align 4, !tbaa !5
  %5660 = call ptr @s2n_strerror_debug(i32 noundef %5659, ptr noundef nonnull @.str.4) #12
  %5661 = load i32, ptr %302, align 4, !tbaa !5
  %5662 = call ptr @strerror(i32 noundef %5661) #12
  %5663 = load i32, ptr %302, align 4, !tbaa !5
  %5664 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5655, ptr noundef nonnull %.str.5.sink2562, i32 noundef %5656, ptr noundef nonnull @.str.109, ptr noundef nonnull @.str.1, i32 noundef 597, ptr noundef %5658, ptr noundef %5660, ptr noundef %5662, i32 noundef %5663) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5665:                                             ; preds = %5637
  %5666 = load i32, ptr @test_count, align 4, !tbaa !5
  %5667 = add nsw i32 %5666, 1
  store i32 %5667, ptr @test_count, align 4, !tbaa !5
  %5668 = load i32, ptr %82, align 4, !tbaa !5
  %5669 = call i32 @s2n_stuffer_skip_write(ptr noundef nonnull %83, i32 noundef %5668) #12
  %5670 = icmp eq i32 %5669, -1
  br i1 %5670, label %5671, label %5693

5671:                                             ; preds = %5665
  %5672 = load i32, ptr %302, align 4, !tbaa !5
  %5673 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5674 = call i32 @s2n_print_stacktrace(ptr noundef %5673) #12
  %5675 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5676 = trunc nuw i8 %5675 to i1
  br i1 %5676, label %5677, label %5681

5677:                                             ; preds = %5671
  %5678 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5679 = call i32 @fileno(ptr noundef %5678) #12
  %5680 = call i32 @isatty(i32 noundef %5679) #12
  %.not678 = icmp eq i32 %5680, 0
  br i1 %.not678, label %5681, label %5682

5681:                                             ; preds = %5677, %5671
  br label %5682

5682:                                             ; preds = %5677, %5681
  %.str.5.sink2571 = phi ptr [ @.str.5, %5681 ], [ @.str.2, %5677 ]
  store i32 %5672, ptr %302, align 4, !tbaa !5
  %5683 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5684 = load i32, ptr @test_count, align 4, !tbaa !5
  %5685 = load i32, ptr %248, align 4, !tbaa !5
  %5686 = call ptr @s2n_strerror(i32 noundef %5685, ptr noundef nonnull @.str.4) #12
  %5687 = load i32, ptr %248, align 4, !tbaa !5
  %5688 = call ptr @s2n_strerror_debug(i32 noundef %5687, ptr noundef nonnull @.str.4) #12
  %5689 = load i32, ptr %302, align 4, !tbaa !5
  %5690 = call ptr @strerror(i32 noundef %5689) #12
  %5691 = load i32, ptr %302, align 4, !tbaa !5
  %5692 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5683, ptr noundef nonnull %.str.5.sink2571, i32 noundef %5684, ptr noundef nonnull @.str.110, ptr noundef nonnull @.str.1, i32 noundef 598, ptr noundef %5686, ptr noundef %5688, ptr noundef %5690, i32 noundef %5691) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5693:                                             ; preds = %5665
  %5694 = load i32, ptr @test_count, align 4, !tbaa !5
  %5695 = add nsw i32 %5694, 1
  store i32 %5695, ptr @test_count, align 4, !tbaa !5
  %5696 = load i32, ptr %82, align 4, !tbaa !5
  %5697 = load i32, ptr %79, align 4, !tbaa !5
  %5698 = shl i32 %5697, 1
  %5699 = icmp eq i32 %5696, %5698
  br i1 %5699, label %.preheader, label %5700

.preheader:                                       ; preds = %5693
  %.not789 = icmp eq i32 %5697, 0
  br i1 %.not789, label %._crit_edge, label %.lr.ph

5700:                                             ; preds = %5693
  %5701 = load i32, ptr %302, align 4, !tbaa !5
  %5702 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5703 = call i32 @s2n_print_stacktrace(ptr noundef %5702) #12
  %5704 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5705 = trunc nuw i8 %5704 to i1
  br i1 %5705, label %5706, label %5710

5706:                                             ; preds = %5700
  %5707 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5708 = call i32 @fileno(ptr noundef %5707) #12
  %5709 = call i32 @isatty(i32 noundef %5708) #12
  %.not639 = icmp eq i32 %5709, 0
  br i1 %.not639, label %5710, label %5711

5710:                                             ; preds = %5706, %5700
  br label %5711

5711:                                             ; preds = %5706, %5710
  %.str.5.sink2580 = phi ptr [ @.str.5, %5710 ], [ @.str.2, %5706 ]
  store i32 %5701, ptr %302, align 4, !tbaa !5
  %5712 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5713 = load i32, ptr @test_count, align 4, !tbaa !5
  %5714 = load i32, ptr %248, align 4, !tbaa !5
  %5715 = call ptr @s2n_strerror(i32 noundef %5714, ptr noundef nonnull @.str.4) #12
  %5716 = load i32, ptr %248, align 4, !tbaa !5
  %5717 = call ptr @s2n_strerror_debug(i32 noundef %5716, ptr noundef nonnull @.str.4) #12
  %5718 = load i32, ptr %302, align 4, !tbaa !5
  %5719 = call ptr @strerror(i32 noundef %5718) #12
  %5720 = load i32, ptr %302, align 4, !tbaa !5
  %5721 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5712, ptr noundef nonnull %.str.5.sink2580, i32 noundef %5713, ptr noundef nonnull @.str.111, ptr noundef nonnull @.str.1, i32 noundef 601, ptr noundef %5715, ptr noundef %5717, ptr noundef %5719, i32 noundef %5720) #14
  call void @exit(i32 noundef 1) #15
  unreachable

._crit_edge:                                      ; preds = %5782, %.preheader
  %5722 = phi i32 [ %5695, %.preheader ], [ %5755, %5782 ]
  call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %83) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %82) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %81) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %85) #12
  store i32 0, ptr %85, align 4, !tbaa !5
  %5723 = add nsw i32 %5722, 1
  store i32 %5723, ptr @test_count, align 4, !tbaa !5
  %5724 = load ptr, ptr %77, align 8, !tbaa !9
  %5725 = call i32 @s2n_fingerprint_get_hash_size(ptr noundef %5724, ptr noundef nonnull %85) #12
  %5726 = icmp eq i32 %5725, -1
  br i1 %5726, label %5787, label %5809

.lr.ph:                                           ; preds = %.preheader, %5782
  %5727 = phi i32 [ %5755, %5782 ], [ %5695, %.preheader ]
  %.0530787 = phi i64 [ %5783, %5782 ], [ 0, %.preheader ]
  call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %84) #12
  store i8 0, ptr %84, align 1, !tbaa !23
  %5728 = add nsw i32 %5727, 1
  store i32 %5728, ptr @test_count, align 4, !tbaa !5
  %5729 = call i32 @s2n_stuffer_read_uint8_hex(ptr noundef nonnull %83, ptr noundef nonnull %84) #12
  %5730 = call zeroext i1 @s2n_result_is_ok(i32 %5729)
  br i1 %5730, label %5753, label %5731

5731:                                             ; preds = %.lr.ph
  %5732 = load i32, ptr %302, align 4, !tbaa !5
  %5733 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5734 = call i32 @s2n_print_stacktrace(ptr noundef %5733) #12
  %5735 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5736 = trunc nuw i8 %5735 to i1
  br i1 %5736, label %5737, label %5741

5737:                                             ; preds = %5731
  %5738 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5739 = call i32 @fileno(ptr noundef %5738) #12
  %5740 = call i32 @isatty(i32 noundef %5739) #12
  %.not676 = icmp eq i32 %5740, 0
  br i1 %.not676, label %5741, label %5742

5741:                                             ; preds = %5737, %5731
  br label %5742

5742:                                             ; preds = %5737, %5741
  %.str.5.sink2589 = phi ptr [ @.str.5, %5741 ], [ @.str.2, %5737 ]
  store i32 %5732, ptr %302, align 4, !tbaa !5
  %5743 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5744 = load i32, ptr @test_count, align 4, !tbaa !5
  %5745 = load i32, ptr %248, align 4, !tbaa !5
  %5746 = call ptr @s2n_strerror(i32 noundef %5745, ptr noundef nonnull @.str.4) #12
  %5747 = load i32, ptr %248, align 4, !tbaa !5
  %5748 = call ptr @s2n_strerror_debug(i32 noundef %5747, ptr noundef nonnull @.str.4) #12
  %5749 = load i32, ptr %302, align 4, !tbaa !5
  %5750 = call ptr @strerror(i32 noundef %5749) #12
  %5751 = load i32, ptr %302, align 4, !tbaa !5
  %5752 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5743, ptr noundef nonnull %.str.5.sink2589, i32 noundef %5744, ptr noundef nonnull @.str.112, ptr noundef nonnull @.str.1, i32 noundef 604, ptr noundef %5746, ptr noundef %5748, ptr noundef %5750, i32 noundef %5751) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5753:                                             ; preds = %.lr.ph
  %5754 = load i32, ptr @test_count, align 4, !tbaa !5
  %5755 = add nsw i32 %5754, 1
  store i32 %5755, ptr @test_count, align 4, !tbaa !5
  %5756 = load i8, ptr %84, align 1, !tbaa !23
  %5757 = getelementptr inbounds [100 x i8], ptr %78, i64 0, i64 %.0530787
  %5758 = load i8, ptr %5757, align 1, !tbaa !23
  %5759 = icmp eq i8 %5756, %5758
  br i1 %5759, label %5782, label %5760

5760:                                             ; preds = %5753
  %5761 = load i32, ptr %302, align 4, !tbaa !5
  %5762 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5763 = call i32 @s2n_print_stacktrace(ptr noundef %5762) #12
  %5764 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5765 = trunc nuw i8 %5764 to i1
  br i1 %5765, label %5766, label %5770

5766:                                             ; preds = %5760
  %5767 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5768 = call i32 @fileno(ptr noundef %5767) #12
  %5769 = call i32 @isatty(i32 noundef %5768) #12
  %.not677 = icmp eq i32 %5769, 0
  br i1 %.not677, label %5770, label %5771

5770:                                             ; preds = %5766, %5760
  br label %5771

5771:                                             ; preds = %5766, %5770
  %.str.5.sink2598 = phi ptr [ @.str.5, %5770 ], [ @.str.2, %5766 ]
  store i32 %5761, ptr %302, align 4, !tbaa !5
  %5772 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5773 = load i32, ptr @test_count, align 4, !tbaa !5
  %5774 = load i32, ptr %248, align 4, !tbaa !5
  %5775 = call ptr @s2n_strerror(i32 noundef %5774, ptr noundef nonnull @.str.4) #12
  %5776 = load i32, ptr %248, align 4, !tbaa !5
  %5777 = call ptr @s2n_strerror_debug(i32 noundef %5776, ptr noundef nonnull @.str.4) #12
  %5778 = load i32, ptr %302, align 4, !tbaa !5
  %5779 = call ptr @strerror(i32 noundef %5778) #12
  %5780 = load i32, ptr %302, align 4, !tbaa !5
  %5781 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5772, ptr noundef nonnull %.str.5.sink2598, i32 noundef %5773, ptr noundef nonnull @.str.113, ptr noundef nonnull @.str.1, i32 noundef 605, ptr noundef %5775, ptr noundef %5777, ptr noundef %5779, i32 noundef %5780) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5782:                                             ; preds = %5753
  call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %84) #12
  %5783 = add nuw nsw i64 %.0530787, 1
  %5784 = load i32, ptr %79, align 4, !tbaa !5
  %5785 = zext i32 %5784 to i64
  %5786 = icmp ult i64 %5783, %5785
  br i1 %5786, label %.lr.ph, label %._crit_edge, !llvm.loop !43

5787:                                             ; preds = %._crit_edge
  %5788 = load i32, ptr %302, align 4, !tbaa !5
  %5789 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5790 = call i32 @s2n_print_stacktrace(ptr noundef %5789) #12
  %5791 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5792 = trunc nuw i8 %5791 to i1
  br i1 %5792, label %5793, label %5797

5793:                                             ; preds = %5787
  %5794 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5795 = call i32 @fileno(ptr noundef %5794) #12
  %5796 = call i32 @isatty(i32 noundef %5795) #12
  %.not675 = icmp eq i32 %5796, 0
  br i1 %.not675, label %5797, label %5798

5797:                                             ; preds = %5793, %5787
  br label %5798

5798:                                             ; preds = %5793, %5797
  %.str.5.sink2607 = phi ptr [ @.str.5, %5797 ], [ @.str.2, %5793 ]
  store i32 %5788, ptr %302, align 4, !tbaa !5
  %5799 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5800 = load i32, ptr @test_count, align 4, !tbaa !5
  %5801 = load i32, ptr %248, align 4, !tbaa !5
  %5802 = call ptr @s2n_strerror(i32 noundef %5801, ptr noundef nonnull @.str.4) #12
  %5803 = load i32, ptr %248, align 4, !tbaa !5
  %5804 = call ptr @s2n_strerror_debug(i32 noundef %5803, ptr noundef nonnull @.str.4) #12
  %5805 = load i32, ptr %302, align 4, !tbaa !5
  %5806 = call ptr @strerror(i32 noundef %5805) #12
  %5807 = load i32, ptr %302, align 4, !tbaa !5
  %5808 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5799, ptr noundef nonnull %.str.5.sink2607, i32 noundef %5800, ptr noundef nonnull @.str.114, ptr noundef nonnull @.str.1, i32 noundef 612, ptr noundef %5802, ptr noundef %5804, ptr noundef %5806, i32 noundef %5807) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5809:                                             ; preds = %._crit_edge
  %5810 = load i32, ptr @test_count, align 4, !tbaa !5
  %5811 = add nsw i32 %5810, 1
  store i32 %5811, ptr @test_count, align 4, !tbaa !5
  %5812 = load i32, ptr %85, align 4, !tbaa !5
  %5813 = load i32, ptr %79, align 4, !tbaa !5
  %5814 = shl i32 %5813, 1
  %5815 = icmp eq i32 %5812, %5814
  br i1 %5815, label %5838, label %5816

5816:                                             ; preds = %5809
  %5817 = load i32, ptr %302, align 4, !tbaa !5
  %5818 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5819 = call i32 @s2n_print_stacktrace(ptr noundef %5818) #12
  %5820 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5821 = trunc nuw i8 %5820 to i1
  br i1 %5821, label %5822, label %5826

5822:                                             ; preds = %5816
  %5823 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5824 = call i32 @fileno(ptr noundef %5823) #12
  %5825 = call i32 @isatty(i32 noundef %5824) #12
  %.not640 = icmp eq i32 %5825, 0
  br i1 %.not640, label %5826, label %5827

5826:                                             ; preds = %5822, %5816
  br label %5827

5827:                                             ; preds = %5822, %5826
  %.str.5.sink2616 = phi ptr [ @.str.5, %5826 ], [ @.str.2, %5822 ]
  store i32 %5817, ptr %302, align 4, !tbaa !5
  %5828 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5829 = load i32, ptr @test_count, align 4, !tbaa !5
  %5830 = load i32, ptr %248, align 4, !tbaa !5
  %5831 = call ptr @s2n_strerror(i32 noundef %5830, ptr noundef nonnull @.str.4) #12
  %5832 = load i32, ptr %248, align 4, !tbaa !5
  %5833 = call ptr @s2n_strerror_debug(i32 noundef %5832, ptr noundef nonnull @.str.4) #12
  %5834 = load i32, ptr %302, align 4, !tbaa !5
  %5835 = call ptr @strerror(i32 noundef %5834) #12
  %5836 = load i32, ptr %302, align 4, !tbaa !5
  %5837 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5828, ptr noundef nonnull %.str.5.sink2616, i32 noundef %5829, ptr noundef nonnull @.str.115, ptr noundef nonnull @.str.1, i32 noundef 613, ptr noundef %5831, ptr noundef %5833, ptr noundef %5835, i32 noundef %5836) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5838:                                             ; preds = %5809
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %85) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %86) #12
  store i32 0, ptr %86, align 4, !tbaa !5
  %5839 = add nsw i32 %5810, 2
  store i32 %5839, ptr @test_count, align 4, !tbaa !5
  %5840 = load ptr, ptr %77, align 8, !tbaa !9
  %5841 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %5840, ptr noundef nonnull %86) #12
  %5842 = icmp eq i32 %5841, -1
  br i1 %5842, label %5843, label %5865

5843:                                             ; preds = %5838
  %5844 = load i32, ptr %302, align 4, !tbaa !5
  %5845 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5846 = call i32 @s2n_print_stacktrace(ptr noundef %5845) #12
  %5847 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5848 = trunc nuw i8 %5847 to i1
  br i1 %5848, label %5849, label %5853

5849:                                             ; preds = %5843
  %5850 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5851 = call i32 @fileno(ptr noundef %5850) #12
  %5852 = call i32 @isatty(i32 noundef %5851) #12
  %.not674 = icmp eq i32 %5852, 0
  br i1 %.not674, label %5853, label %5854

5853:                                             ; preds = %5849, %5843
  br label %5854

5854:                                             ; preds = %5849, %5853
  %.str.5.sink2625 = phi ptr [ @.str.5, %5853 ], [ @.str.2, %5849 ]
  store i32 %5844, ptr %302, align 4, !tbaa !5
  %5855 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5856 = load i32, ptr @test_count, align 4, !tbaa !5
  %5857 = load i32, ptr %248, align 4, !tbaa !5
  %5858 = call ptr @s2n_strerror(i32 noundef %5857, ptr noundef nonnull @.str.4) #12
  %5859 = load i32, ptr %248, align 4, !tbaa !5
  %5860 = call ptr @s2n_strerror_debug(i32 noundef %5859, ptr noundef nonnull @.str.4) #12
  %5861 = load i32, ptr %302, align 4, !tbaa !5
  %5862 = call ptr @strerror(i32 noundef %5861) #12
  %5863 = load i32, ptr %302, align 4, !tbaa !5
  %5864 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5855, ptr noundef nonnull %.str.5.sink2625, i32 noundef %5856, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 619, ptr noundef %5858, ptr noundef %5860, ptr noundef %5862, i32 noundef %5863) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5865:                                             ; preds = %5838
  %5866 = load i32, ptr @test_count, align 4, !tbaa !5
  %5867 = add nsw i32 %5866, 1
  store i32 %5867, ptr @test_count, align 4, !tbaa !5
  %5868 = load i32, ptr %86, align 4, !tbaa !5
  %5869 = load i32, ptr %80, align 4, !tbaa !5
  %5870 = icmp eq i32 %5868, %5869
  br i1 %5870, label %5893, label %5871

5871:                                             ; preds = %5865
  %5872 = load i32, ptr %302, align 4, !tbaa !5
  %5873 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5874 = call i32 @s2n_print_stacktrace(ptr noundef %5873) #12
  %5875 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5876 = trunc nuw i8 %5875 to i1
  br i1 %5876, label %5877, label %5881

5877:                                             ; preds = %5871
  %5878 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5879 = call i32 @fileno(ptr noundef %5878) #12
  %5880 = call i32 @isatty(i32 noundef %5879) #12
  %.not641 = icmp eq i32 %5880, 0
  br i1 %.not641, label %5881, label %5882

5881:                                             ; preds = %5877, %5871
  br label %5882

5882:                                             ; preds = %5877, %5881
  %.str.5.sink2634 = phi ptr [ @.str.5, %5881 ], [ @.str.2, %5877 ]
  store i32 %5872, ptr %302, align 4, !tbaa !5
  %5883 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5884 = load i32, ptr @test_count, align 4, !tbaa !5
  %5885 = load i32, ptr %248, align 4, !tbaa !5
  %5886 = call ptr @s2n_strerror(i32 noundef %5885, ptr noundef nonnull @.str.4) #12
  %5887 = load i32, ptr %248, align 4, !tbaa !5
  %5888 = call ptr @s2n_strerror_debug(i32 noundef %5887, ptr noundef nonnull @.str.4) #12
  %5889 = load i32, ptr %302, align 4, !tbaa !5
  %5890 = call ptr @strerror(i32 noundef %5889) #12
  %5891 = load i32, ptr %302, align 4, !tbaa !5
  %5892 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5883, ptr noundef nonnull %.str.5.sink2634, i32 noundef %5884, ptr noundef nonnull @.str.116, ptr noundef nonnull @.str.1, i32 noundef 620, ptr noundef %5886, ptr noundef %5888, ptr noundef %5890, i32 noundef %5891) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5893:                                             ; preds = %5865
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %86) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %80) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %79) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %78) #12
  %5894 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %77) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %77) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %87) #12
  %5895 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %5895, ptr %87, align 8, !tbaa !9
  %5896 = load i32, ptr @test_count, align 4, !tbaa !5
  %5897 = add nsw i32 %5896, 1
  store i32 %5897, ptr @test_count, align 4, !tbaa !5
  %5898 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %5895, ptr noundef %4898) #12
  %5899 = icmp eq i32 %5898, -1
  br i1 %5899, label %5900, label %5922

5900:                                             ; preds = %5893
  %5901 = load i32, ptr %302, align 4, !tbaa !5
  %5902 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5903 = call i32 @s2n_print_stacktrace(ptr noundef %5902) #12
  %5904 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5905 = trunc nuw i8 %5904 to i1
  br i1 %5905, label %5906, label %5910

5906:                                             ; preds = %5900
  %5907 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5908 = call i32 @fileno(ptr noundef %5907) #12
  %5909 = call i32 @isatty(i32 noundef %5908) #12
  %.not673 = icmp eq i32 %5909, 0
  br i1 %.not673, label %5910, label %5911

5910:                                             ; preds = %5906, %5900
  br label %5911

5911:                                             ; preds = %5906, %5910
  %.str.5.sink2643 = phi ptr [ @.str.5, %5910 ], [ @.str.2, %5906 ]
  store i32 %5901, ptr %302, align 4, !tbaa !5
  %5912 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5913 = load i32, ptr @test_count, align 4, !tbaa !5
  %5914 = load i32, ptr %248, align 4, !tbaa !5
  %5915 = call ptr @s2n_strerror(i32 noundef %5914, ptr noundef nonnull @.str.4) #12
  %5916 = load i32, ptr %248, align 4, !tbaa !5
  %5917 = call ptr @s2n_strerror_debug(i32 noundef %5916, ptr noundef nonnull @.str.4) #12
  %5918 = load i32, ptr %302, align 4, !tbaa !5
  %5919 = call ptr @strerror(i32 noundef %5918) #12
  %5920 = load i32, ptr %302, align 4, !tbaa !5
  %5921 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5912, ptr noundef nonnull %.str.5.sink2643, i32 noundef %5913, ptr noundef nonnull @.str.74, ptr noundef nonnull @.str.1, i32 noundef 628, ptr noundef %5915, ptr noundef %5917, ptr noundef %5919, i32 noundef %5920) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5922:                                             ; preds = %5893
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %88) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %88, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %89) #12
  store i32 0, ptr %89, align 4, !tbaa !5
  %5923 = load i32, ptr @test_count, align 4, !tbaa !5
  %5924 = add nsw i32 %5923, 1
  store i32 %5924, ptr @test_count, align 4, !tbaa !5
  %5925 = call i32 @s2n_client_hello_get_fingerprint_string(ptr noundef %4898, i32 noundef 0, i32 noundef 100, ptr noundef nonnull %88, ptr noundef nonnull %89) #12
  %5926 = icmp eq i32 %5925, -1
  br i1 %5926, label %5927, label %5949

5927:                                             ; preds = %5922
  %5928 = load i32, ptr %302, align 4, !tbaa !5
  %5929 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5930 = call i32 @s2n_print_stacktrace(ptr noundef %5929) #12
  %5931 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5932 = trunc nuw i8 %5931 to i1
  br i1 %5932, label %5933, label %5937

5933:                                             ; preds = %5927
  %5934 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5935 = call i32 @fileno(ptr noundef %5934) #12
  %5936 = call i32 @isatty(i32 noundef %5935) #12
  %.not672 = icmp eq i32 %5936, 0
  br i1 %.not672, label %5937, label %5938

5937:                                             ; preds = %5933, %5927
  br label %5938

5938:                                             ; preds = %5933, %5937
  %.str.5.sink2652 = phi ptr [ @.str.5, %5937 ], [ @.str.2, %5933 ]
  store i32 %5928, ptr %302, align 4, !tbaa !5
  %5939 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5940 = load i32, ptr @test_count, align 4, !tbaa !5
  %5941 = load i32, ptr %248, align 4, !tbaa !5
  %5942 = call ptr @s2n_strerror(i32 noundef %5941, ptr noundef nonnull @.str.4) #12
  %5943 = load i32, ptr %248, align 4, !tbaa !5
  %5944 = call ptr @s2n_strerror_debug(i32 noundef %5943, ptr noundef nonnull @.str.4) #12
  %5945 = load i32, ptr %302, align 4, !tbaa !5
  %5946 = call ptr @strerror(i32 noundef %5945) #12
  %5947 = load i32, ptr %302, align 4, !tbaa !5
  %5948 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5939, ptr noundef nonnull %.str.5.sink2652, i32 noundef %5940, ptr noundef nonnull @.str.117, ptr noundef nonnull @.str.1, i32 noundef 633, ptr noundef %5942, ptr noundef %5944, ptr noundef %5946, i32 noundef %5947) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5949:                                             ; preds = %5922
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %90) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %90, i8 0, i64 100, i1 false)
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %91) #12
  store i32 0, ptr %91, align 4, !tbaa !5
  %5950 = load i32, ptr @test_count, align 4, !tbaa !5
  %5951 = add nsw i32 %5950, 1
  store i32 %5951, ptr @test_count, align 4, !tbaa !5
  %5952 = load ptr, ptr %87, align 8, !tbaa !9
  %5953 = call i32 @s2n_fingerprint_get_raw(ptr noundef %5952, i32 noundef 100, ptr noundef nonnull %90, ptr noundef nonnull %91) #12
  %5954 = icmp eq i32 %5953, -1
  br i1 %5954, label %5955, label %5977

5955:                                             ; preds = %5949
  %5956 = load i32, ptr %302, align 4, !tbaa !5
  %5957 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5958 = call i32 @s2n_print_stacktrace(ptr noundef %5957) #12
  %5959 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5960 = trunc nuw i8 %5959 to i1
  br i1 %5960, label %5961, label %5965

5961:                                             ; preds = %5955
  %5962 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5963 = call i32 @fileno(ptr noundef %5962) #12
  %5964 = call i32 @isatty(i32 noundef %5963) #12
  %.not671 = icmp eq i32 %5964, 0
  br i1 %.not671, label %5965, label %5966

5965:                                             ; preds = %5961, %5955
  br label %5966

5966:                                             ; preds = %5961, %5965
  %.str.5.sink2661 = phi ptr [ @.str.5, %5965 ], [ @.str.2, %5961 ]
  store i32 %5956, ptr %302, align 4, !tbaa !5
  %5967 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5968 = load i32, ptr @test_count, align 4, !tbaa !5
  %5969 = load i32, ptr %248, align 4, !tbaa !5
  %5970 = call ptr @s2n_strerror(i32 noundef %5969, ptr noundef nonnull @.str.4) #12
  %5971 = load i32, ptr %248, align 4, !tbaa !5
  %5972 = call ptr @s2n_strerror_debug(i32 noundef %5971, ptr noundef nonnull @.str.4) #12
  %5973 = load i32, ptr %302, align 4, !tbaa !5
  %5974 = call ptr @strerror(i32 noundef %5973) #12
  %5975 = load i32, ptr %302, align 4, !tbaa !5
  %5976 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5967, ptr noundef nonnull %.str.5.sink2661, i32 noundef %5968, ptr noundef nonnull @.str.103, ptr noundef nonnull @.str.1, i32 noundef 640, ptr noundef %5970, ptr noundef %5972, ptr noundef %5974, i32 noundef %5975) #14
  call void @exit(i32 noundef 1) #15
  unreachable

5977:                                             ; preds = %5949
  %5978 = load i32, ptr @test_count, align 4, !tbaa !5
  %5979 = add nsw i32 %5978, 1
  store i32 %5979, ptr @test_count, align 4, !tbaa !5
  %5980 = load i32, ptr %91, align 4, !tbaa !5
  %5981 = load i32, ptr %89, align 4, !tbaa !5
  %5982 = icmp eq i32 %5980, %5981
  br i1 %5982, label %6005, label %5983

5983:                                             ; preds = %5977
  %5984 = load i32, ptr %302, align 4, !tbaa !5
  %5985 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5986 = call i32 @s2n_print_stacktrace(ptr noundef %5985) #12
  %5987 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %5988 = trunc nuw i8 %5987 to i1
  br i1 %5988, label %5989, label %5993

5989:                                             ; preds = %5983
  %5990 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5991 = call i32 @fileno(ptr noundef %5990) #12
  %5992 = call i32 @isatty(i32 noundef %5991) #12
  %.not642 = icmp eq i32 %5992, 0
  br i1 %.not642, label %5993, label %5994

5993:                                             ; preds = %5989, %5983
  br label %5994

5994:                                             ; preds = %5989, %5993
  %.str.5.sink2670 = phi ptr [ @.str.5, %5993 ], [ @.str.2, %5989 ]
  store i32 %5984, ptr %302, align 4, !tbaa !5
  %5995 = load ptr, ptr @stderr, align 8, !tbaa !9
  %5996 = load i32, ptr @test_count, align 4, !tbaa !5
  %5997 = load i32, ptr %248, align 4, !tbaa !5
  %5998 = call ptr @s2n_strerror(i32 noundef %5997, ptr noundef nonnull @.str.4) #12
  %5999 = load i32, ptr %248, align 4, !tbaa !5
  %6000 = call ptr @s2n_strerror_debug(i32 noundef %5999, ptr noundef nonnull @.str.4) #12
  %6001 = load i32, ptr %302, align 4, !tbaa !5
  %6002 = call ptr @strerror(i32 noundef %6001) #12
  %6003 = load i32, ptr %302, align 4, !tbaa !5
  %6004 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5995, ptr noundef nonnull %.str.5.sink2670, i32 noundef %5996, ptr noundef nonnull @.str.118, ptr noundef nonnull @.str.1, i32 noundef 642, ptr noundef %5998, ptr noundef %6000, ptr noundef %6002, i32 noundef %6003) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6005:                                             ; preds = %5977
  %.not643 = icmp eq i32 %5980, 0
  br i1 %.not643, label %6032, label %6006

6006:                                             ; preds = %6005
  %6007 = add nsw i32 %5978, 2
  store i32 %6007, ptr @test_count, align 4, !tbaa !5
  %6008 = zext i32 %5980 to i64
  %bcmp644 = call i32 @bcmp(ptr nonnull %90, ptr nonnull %88, i64 %6008)
  %6009 = icmp eq i32 %bcmp644, 0
  br i1 %6009, label %6032, label %6010

6010:                                             ; preds = %6006
  %6011 = load i32, ptr %302, align 4, !tbaa !5
  %6012 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6013 = call i32 @s2n_print_stacktrace(ptr noundef %6012) #12
  %6014 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6015 = trunc nuw i8 %6014 to i1
  br i1 %6015, label %6016, label %6020

6016:                                             ; preds = %6010
  %6017 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6018 = call i32 @fileno(ptr noundef %6017) #12
  %6019 = call i32 @isatty(i32 noundef %6018) #12
  %.not645 = icmp eq i32 %6019, 0
  br i1 %.not645, label %6020, label %6021

6020:                                             ; preds = %6016, %6010
  br label %6021

6021:                                             ; preds = %6016, %6020
  %.str.5.sink2679 = phi ptr [ @.str.5, %6020 ], [ @.str.2, %6016 ]
  store i32 %6011, ptr %302, align 4, !tbaa !5
  %6022 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6023 = load i32, ptr @test_count, align 4, !tbaa !5
  %6024 = load i32, ptr %248, align 4, !tbaa !5
  %6025 = call ptr @s2n_strerror(i32 noundef %6024, ptr noundef nonnull @.str.4) #12
  %6026 = load i32, ptr %248, align 4, !tbaa !5
  %6027 = call ptr @s2n_strerror_debug(i32 noundef %6026, ptr noundef nonnull @.str.4) #12
  %6028 = load i32, ptr %302, align 4, !tbaa !5
  %6029 = call ptr @strerror(i32 noundef %6028) #12
  %6030 = load i32, ptr %302, align 4, !tbaa !5
  %6031 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6022, ptr noundef nonnull %.str.5.sink2679, i32 noundef %6023, ptr noundef nonnull @.str.119, ptr noundef nonnull @.str.1, i32 noundef 643, ptr noundef %6025, ptr noundef %6027, ptr noundef %6029, i32 noundef %6030) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6032:                                             ; preds = %6006, %6005
  %6033 = phi i32 [ %6007, %6006 ], [ %5979, %6005 ]
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %91) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %90) #12
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %92) #12
  store i32 0, ptr %92, align 4, !tbaa !5
  %6034 = add nsw i32 %6033, 1
  store i32 %6034, ptr @test_count, align 4, !tbaa !5
  %6035 = load ptr, ptr %87, align 8, !tbaa !9
  %6036 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %6035, ptr noundef nonnull %92) #12
  %6037 = icmp eq i32 %6036, -1
  br i1 %6037, label %6038, label %6060

6038:                                             ; preds = %6032
  %6039 = load i32, ptr %302, align 4, !tbaa !5
  %6040 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6041 = call i32 @s2n_print_stacktrace(ptr noundef %6040) #12
  %6042 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6043 = trunc nuw i8 %6042 to i1
  br i1 %6043, label %6044, label %6048

6044:                                             ; preds = %6038
  %6045 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6046 = call i32 @fileno(ptr noundef %6045) #12
  %6047 = call i32 @isatty(i32 noundef %6046) #12
  %.not670 = icmp eq i32 %6047, 0
  br i1 %.not670, label %6048, label %6049

6048:                                             ; preds = %6044, %6038
  br label %6049

6049:                                             ; preds = %6044, %6048
  %.str.5.sink2688 = phi ptr [ @.str.5, %6048 ], [ @.str.2, %6044 ]
  store i32 %6039, ptr %302, align 4, !tbaa !5
  %6050 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6051 = load i32, ptr @test_count, align 4, !tbaa !5
  %6052 = load i32, ptr %248, align 4, !tbaa !5
  %6053 = call ptr @s2n_strerror(i32 noundef %6052, ptr noundef nonnull @.str.4) #12
  %6054 = load i32, ptr %248, align 4, !tbaa !5
  %6055 = call ptr @s2n_strerror_debug(i32 noundef %6054, ptr noundef nonnull @.str.4) #12
  %6056 = load i32, ptr %302, align 4, !tbaa !5
  %6057 = call ptr @strerror(i32 noundef %6056) #12
  %6058 = load i32, ptr %302, align 4, !tbaa !5
  %6059 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6050, ptr noundef nonnull %.str.5.sink2688, i32 noundef %6051, ptr noundef nonnull @.str.98, ptr noundef nonnull @.str.1, i32 noundef 649, ptr noundef %6053, ptr noundef %6055, ptr noundef %6057, i32 noundef %6058) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6060:                                             ; preds = %6032
  %6061 = load i32, ptr @test_count, align 4, !tbaa !5
  %6062 = add nsw i32 %6061, 1
  store i32 %6062, ptr @test_count, align 4, !tbaa !5
  %6063 = load i32, ptr %92, align 4, !tbaa !5
  %6064 = load i32, ptr %89, align 4, !tbaa !5
  %6065 = icmp eq i32 %6063, %6064
  br i1 %6065, label %6088, label %6066

6066:                                             ; preds = %6060
  %6067 = load i32, ptr %302, align 4, !tbaa !5
  %6068 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6069 = call i32 @s2n_print_stacktrace(ptr noundef %6068) #12
  %6070 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6071 = trunc nuw i8 %6070 to i1
  br i1 %6071, label %6072, label %6076

6072:                                             ; preds = %6066
  %6073 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6074 = call i32 @fileno(ptr noundef %6073) #12
  %6075 = call i32 @isatty(i32 noundef %6074) #12
  %.not646 = icmp eq i32 %6075, 0
  br i1 %.not646, label %6076, label %6077

6076:                                             ; preds = %6072, %6066
  br label %6077

6077:                                             ; preds = %6072, %6076
  %.str.5.sink2697 = phi ptr [ @.str.5, %6076 ], [ @.str.2, %6072 ]
  store i32 %6067, ptr %302, align 4, !tbaa !5
  %6078 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6079 = load i32, ptr @test_count, align 4, !tbaa !5
  %6080 = load i32, ptr %248, align 4, !tbaa !5
  %6081 = call ptr @s2n_strerror(i32 noundef %6080, ptr noundef nonnull @.str.4) #12
  %6082 = load i32, ptr %248, align 4, !tbaa !5
  %6083 = call ptr @s2n_strerror_debug(i32 noundef %6082, ptr noundef nonnull @.str.4) #12
  %6084 = load i32, ptr %302, align 4, !tbaa !5
  %6085 = call ptr @strerror(i32 noundef %6084) #12
  %6086 = load i32, ptr %302, align 4, !tbaa !5
  %6087 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6078, ptr noundef nonnull %.str.5.sink2697, i32 noundef %6079, ptr noundef nonnull @.str.120, ptr noundef nonnull @.str.1, i32 noundef 650, ptr noundef %6081, ptr noundef %6083, ptr noundef %6085, i32 noundef %6086) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6088:                                             ; preds = %6060
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %92) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %89) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %88) #12
  %6089 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %87) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %87) #12
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %93) #12
  %6090 = call ptr @s2n_fingerprint_new(i32 noundef 0) #12
  store ptr %6090, ptr %93, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 47, ptr nonnull %94) #12
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(47) %94, ptr noundef nonnull align 16 dereferenceable(47) %4, i64 47, i1 false)
  %6091 = getelementptr inbounds i8, ptr %94, i64 5
  store i8 4, ptr %6091, align 1, !tbaa !23
  call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %95) #12
  %6092 = call ptr @s2n_client_hello_parse_message(ptr noundef nonnull %94, i32 noundef 47) #12
  store ptr %6092, ptr %95, align 8, !tbaa !9
  %6093 = load i32, ptr @test_count, align 4, !tbaa !5
  %6094 = add nsw i32 %6093, 1
  store i32 %6094, ptr @test_count, align 4, !tbaa !5
  %6095 = icmp eq ptr %6092, null
  br i1 %6095, label %6096, label %6118

6096:                                             ; preds = %6088
  %6097 = load i32, ptr %302, align 4, !tbaa !5
  %6098 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6099 = call i32 @s2n_print_stacktrace(ptr noundef %6098) #12
  %6100 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6101 = trunc nuw i8 %6100 to i1
  br i1 %6101, label %6102, label %6106

6102:                                             ; preds = %6096
  %6103 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6104 = call i32 @fileno(ptr noundef %6103) #12
  %6105 = call i32 @isatty(i32 noundef %6104) #12
  %.not669 = icmp eq i32 %6105, 0
  br i1 %.not669, label %6106, label %6107

6106:                                             ; preds = %6102, %6096
  br label %6107

6107:                                             ; preds = %6102, %6106
  %.str.5.sink2706 = phi ptr [ @.str.5, %6106 ], [ @.str.2, %6102 ]
  store i32 %6097, ptr %302, align 4, !tbaa !5
  %6108 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6109 = load i32, ptr @test_count, align 4, !tbaa !5
  %6110 = load i32, ptr %248, align 4, !tbaa !5
  %6111 = call ptr @s2n_strerror(i32 noundef %6110, ptr noundef nonnull @.str.4) #12
  %6112 = load i32, ptr %248, align 4, !tbaa !5
  %6113 = call ptr @s2n_strerror_debug(i32 noundef %6112, ptr noundef nonnull @.str.4) #12
  %6114 = load i32, ptr %302, align 4, !tbaa !5
  %6115 = call ptr @strerror(i32 noundef %6114) #12
  %6116 = load i32, ptr %302, align 4, !tbaa !5
  %6117 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6108, ptr noundef nonnull %.str.5.sink2706, i32 noundef %6109, ptr noundef nonnull @.str.122, ptr noundef nonnull @.str.1, i32 noundef 667, ptr noundef %6111, ptr noundef %6113, ptr noundef %6115, i32 noundef %6116) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6118:                                             ; preds = %6088
  call void @llvm.lifetime.start.p0(i64 432, ptr nonnull %96) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(432) %96, i8 0, i64 432, i1 false)
  store ptr %4898, ptr %96, align 16, !tbaa !44
  %6119 = getelementptr inbounds i8, ptr %96, i64 216
  store ptr %6092, ptr %6119, align 8, !tbaa !44
  br label %6126

6120:                                             ; preds = %6431
  %6121 = load i32, ptr @test_count, align 4, !tbaa !5
  %6122 = add nsw i32 %6121, 1
  store i32 %6122, ptr @test_count, align 4, !tbaa !5
  %6123 = getelementptr inbounds i8, ptr %96, i64 8
  %6124 = getelementptr inbounds i8, ptr %96, i64 224
  %bcmp647 = call i32 @bcmp(ptr noundef nonnull dereferenceable(100) %6123, ptr noundef nonnull dereferenceable(100) %6124, i64 100)
  %6125 = icmp eq i32 %bcmp647, 0
  br i1 %6125, label %6433, label %6455

6126:                                             ; preds = %6118, %6431
  %.0531788 = phi i64 [ 0, %6118 ], [ %6432, %6431 ]
  %6127 = and i64 %.0531788, 1
  %6128 = getelementptr inbounds [2 x %struct.s2n_test_hello], ptr %96, i64 0, i64 %6127
  %6129 = load i32, ptr @test_count, align 4, !tbaa !5
  %6130 = add nsw i32 %6129, 1
  store i32 %6130, ptr @test_count, align 4, !tbaa !5
  %6131 = load ptr, ptr %6128, align 8, !tbaa !44
  %6132 = call i32 @s2n_fingerprint_set_client_hello(ptr noundef %6090, ptr noundef %6131) #12
  %6133 = icmp eq i32 %6132, -1
  br i1 %6133, label %6134, label %6156

6134:                                             ; preds = %6126
  %6135 = load i32, ptr %302, align 4, !tbaa !5
  %6136 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6137 = call i32 @s2n_print_stacktrace(ptr noundef %6136) #12
  %6138 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6139 = trunc nuw i8 %6138 to i1
  br i1 %6139, label %6140, label %6144

6140:                                             ; preds = %6134
  %6141 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6142 = call i32 @fileno(ptr noundef %6141) #12
  %6143 = call i32 @isatty(i32 noundef %6142) #12
  %.not668 = icmp eq i32 %6143, 0
  br i1 %.not668, label %6144, label %6145

6144:                                             ; preds = %6140, %6134
  br label %6145

6145:                                             ; preds = %6140, %6144
  %.str.5.sink2715 = phi ptr [ @.str.5, %6144 ], [ @.str.2, %6140 ]
  store i32 %6135, ptr %302, align 4, !tbaa !5
  %6146 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6147 = load i32, ptr @test_count, align 4, !tbaa !5
  %6148 = load i32, ptr %248, align 4, !tbaa !5
  %6149 = call ptr @s2n_strerror(i32 noundef %6148, ptr noundef nonnull @.str.4) #12
  %6150 = load i32, ptr %248, align 4, !tbaa !5
  %6151 = call ptr @s2n_strerror_debug(i32 noundef %6150, ptr noundef nonnull @.str.4) #12
  %6152 = load i32, ptr %302, align 4, !tbaa !5
  %6153 = call ptr @strerror(i32 noundef %6152) #12
  %6154 = load i32, ptr %302, align 4, !tbaa !5
  %6155 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6146, ptr noundef nonnull %.str.5.sink2715, i32 noundef %6147, ptr noundef nonnull @.str.123, ptr noundef nonnull @.str.1, i32 noundef 681, ptr noundef %6149, ptr noundef %6151, ptr noundef %6153, i32 noundef %6154) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6156:                                             ; preds = %6126
  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %97) #12
  store i32 0, ptr %97, align 4, !tbaa !5
  %6157 = load i32, ptr @test_count, align 4, !tbaa !5
  %6158 = add nsw i32 %6157, 1
  store i32 %6158, ptr @test_count, align 4, !tbaa !5
  %6159 = call i32 @s2n_fingerprint_get_raw_size(ptr noundef %6090, ptr noundef nonnull %97) #12
  %6160 = icmp eq i32 %6159, -1
  br i1 %6160, label %6183, label %6161

6161:                                             ; preds = %6156
  %6162 = load i32, ptr %302, align 4, !tbaa !5
  %6163 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6164 = call i32 @s2n_print_stacktrace(ptr noundef %6163) #12
  %6165 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6166 = trunc nuw i8 %6165 to i1
  br i1 %6166, label %6167, label %6171

6167:                                             ; preds = %6161
  %6168 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6169 = call i32 @fileno(ptr noundef %6168) #12
  %6170 = call i32 @isatty(i32 noundef %6169) #12
  %.not656 = icmp eq i32 %6170, 0
  br i1 %.not656, label %6171, label %6172

6171:                                             ; preds = %6167, %6161
  br label %6172

6172:                                             ; preds = %6167, %6171
  %.str.5.sink2724 = phi ptr [ @.str.5, %6171 ], [ @.str.2, %6167 ]
  store i32 %6162, ptr %302, align 4, !tbaa !5
  %6173 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6174 = load i32, ptr @test_count, align 4, !tbaa !5
  %6175 = load i32, ptr %248, align 4, !tbaa !5
  %6176 = call ptr @s2n_strerror(i32 noundef %6175, ptr noundef nonnull @.str.4) #12
  %6177 = load i32, ptr %248, align 4, !tbaa !5
  %6178 = call ptr @s2n_strerror_debug(i32 noundef %6177, ptr noundef nonnull @.str.4) #12
  %6179 = load i32, ptr %302, align 4, !tbaa !5
  %6180 = call ptr @strerror(i32 noundef %6179) #12
  %6181 = load i32, ptr %302, align 4, !tbaa !5
  %6182 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6173, ptr noundef nonnull %.str.5.sink2724, i32 noundef %6174, ptr noundef nonnull @.str.124, ptr noundef nonnull @.str.1, i32 noundef 687, ptr noundef %6176, ptr noundef %6178, ptr noundef %6180, i32 noundef %6181) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6183:                                             ; preds = %6156
  %6184 = load i32, ptr @test_count, align 4, !tbaa !5
  %6185 = add nsw i32 %6184, 1
  store i32 %6185, ptr @test_count, align 4, !tbaa !5
  %6186 = load i32, ptr %248, align 4, !tbaa !5
  %6187 = icmp eq i32 %6186, 469762112
  br i1 %6187, label %6210, label %6188

6188:                                             ; preds = %6183
  %6189 = load i32, ptr %302, align 4, !tbaa !5
  %6190 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6191 = call i32 @s2n_print_stacktrace(ptr noundef %6190) #12
  %6192 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6193 = trunc nuw i8 %6192 to i1
  br i1 %6193, label %6194, label %6198

6194:                                             ; preds = %6188
  %6195 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6196 = call i32 @fileno(ptr noundef %6195) #12
  %6197 = call i32 @isatty(i32 noundef %6196) #12
  %.not657 = icmp eq i32 %6197, 0
  br i1 %.not657, label %6198, label %6199

6198:                                             ; preds = %6194, %6188
  br label %6199

6199:                                             ; preds = %6194, %6198
  %.str.5.sink2733 = phi ptr [ @.str.5, %6198 ], [ @.str.2, %6194 ]
  store i32 %6189, ptr %302, align 4, !tbaa !5
  %6200 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6201 = load i32, ptr @test_count, align 4, !tbaa !5
  %6202 = load i32, ptr %248, align 4, !tbaa !5
  %6203 = call ptr @s2n_strerror(i32 noundef %6202, ptr noundef nonnull @.str.4) #12
  %6204 = load i32, ptr %248, align 4, !tbaa !5
  %6205 = call ptr @s2n_strerror_debug(i32 noundef %6204, ptr noundef nonnull @.str.4) #12
  %6206 = load i32, ptr %302, align 4, !tbaa !5
  %6207 = call ptr @strerror(i32 noundef %6206) #12
  %6208 = load i32, ptr %302, align 4, !tbaa !5
  %6209 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6200, ptr noundef nonnull %.str.5.sink2733, i32 noundef %6201, ptr noundef nonnull @.str.87, ptr noundef nonnull @.str.1, i32 noundef 687, ptr noundef %6203, ptr noundef %6205, ptr noundef %6207, i32 noundef %6208) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6210:                                             ; preds = %6183
  %6211 = add nsw i32 %6184, 2
  store i32 %6211, ptr @test_count, align 4, !tbaa !5
  %6212 = call ptr @s2n_strerror_debug(i32 noundef 469762112, ptr noundef nonnull @.str.4) #12
  %6213 = icmp eq ptr %6212, null
  br i1 %6213, label %6214, label %6236

6214:                                             ; preds = %6210
  %6215 = load i32, ptr %302, align 4, !tbaa !5
  %6216 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6217 = call i32 @s2n_print_stacktrace(ptr noundef %6216) #12
  %6218 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6219 = trunc nuw i8 %6218 to i1
  br i1 %6219, label %6220, label %6224

6220:                                             ; preds = %6214
  %6221 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6222 = call i32 @fileno(ptr noundef %6221) #12
  %6223 = call i32 @isatty(i32 noundef %6222) #12
  %.not667 = icmp eq i32 %6223, 0
  br i1 %.not667, label %6224, label %6225

6224:                                             ; preds = %6220, %6214
  br label %6225

6225:                                             ; preds = %6220, %6224
  %.str.5.sink2742 = phi ptr [ @.str.5, %6224 ], [ @.str.2, %6220 ]
  store i32 %6215, ptr %302, align 4, !tbaa !5
  %6226 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6227 = load i32, ptr @test_count, align 4, !tbaa !5
  %6228 = load i32, ptr %248, align 4, !tbaa !5
  %6229 = call ptr @s2n_strerror(i32 noundef %6228, ptr noundef nonnull @.str.4) #12
  %6230 = load i32, ptr %248, align 4, !tbaa !5
  %6231 = call ptr @s2n_strerror_debug(i32 noundef %6230, ptr noundef nonnull @.str.4) #12
  %6232 = load i32, ptr %302, align 4, !tbaa !5
  %6233 = call ptr @strerror(i32 noundef %6232) #12
  %6234 = load i32, ptr %302, align 4, !tbaa !5
  %6235 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6226, ptr noundef nonnull %.str.5.sink2742, i32 noundef %6227, ptr noundef nonnull @.str.11, ptr noundef nonnull @.str.1, i32 noundef 687, ptr noundef %6229, ptr noundef %6231, ptr noundef %6233, i32 noundef %6234) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6236:                                             ; preds = %6210
  store i32 0, ptr %248, align 4, !tbaa !5
  call void @s2n_debug_info_reset() #12
  store i32 0, ptr %302, align 4, !tbaa !5
  %6237 = getelementptr inbounds i8, ptr %6128, i64 208
  %6238 = load i8, ptr %6237, align 8
  %6239 = and i8 %6238, 1
  %6240 = icmp eq i8 %6239, 0
  br i1 %6240, label %6241, label %6298

6241:                                             ; preds = %6236
  %6242 = or disjoint i8 %6238, 1
  store i8 %6242, ptr %6237, align 8
  %6243 = load i32, ptr @test_count, align 4, !tbaa !5
  %6244 = add nsw i32 %6243, 1
  store i32 %6244, ptr @test_count, align 4, !tbaa !5
  %6245 = getelementptr inbounds i8, ptr %6128, i64 8
  %6246 = call i32 @s2n_fingerprint_get_hash(ptr noundef %6090, i32 noundef 100, ptr noundef nonnull %6245, ptr noundef nonnull %97) #12
  %6247 = icmp eq i32 %6246, -1
  br i1 %6247, label %6248, label %6270

6248:                                             ; preds = %6241
  %6249 = load i32, ptr %302, align 4, !tbaa !5
  %6250 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6251 = call i32 @s2n_print_stacktrace(ptr noundef %6250) #12
  %6252 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6253 = trunc nuw i8 %6252 to i1
  br i1 %6253, label %6254, label %6258

6254:                                             ; preds = %6248
  %6255 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6256 = call i32 @fileno(ptr noundef %6255) #12
  %6257 = call i32 @isatty(i32 noundef %6256) #12
  %.not666 = icmp eq i32 %6257, 0
  br i1 %.not666, label %6258, label %6259

6258:                                             ; preds = %6254, %6248
  br label %6259

6259:                                             ; preds = %6254, %6258
  %.str.5.sink2751 = phi ptr [ @.str.5, %6258 ], [ @.str.2, %6254 ]
  store i32 %6249, ptr %302, align 4, !tbaa !5
  %6260 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6261 = load i32, ptr @test_count, align 4, !tbaa !5
  %6262 = load i32, ptr %248, align 4, !tbaa !5
  %6263 = call ptr @s2n_strerror(i32 noundef %6262, ptr noundef nonnull @.str.4) #12
  %6264 = load i32, ptr %248, align 4, !tbaa !5
  %6265 = call ptr @s2n_strerror_debug(i32 noundef %6264, ptr noundef nonnull @.str.4) #12
  %6266 = load i32, ptr %302, align 4, !tbaa !5
  %6267 = call ptr @strerror(i32 noundef %6266) #12
  %6268 = load i32, ptr %302, align 4, !tbaa !5
  %6269 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6260, ptr noundef nonnull %.str.5.sink2751, i32 noundef %6261, ptr noundef nonnull @.str.125, ptr noundef nonnull @.str.1, i32 noundef 693, ptr noundef %6263, ptr noundef %6265, ptr noundef %6267, i32 noundef %6268) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6270:                                             ; preds = %6241
  %6271 = load i32, ptr @test_count, align 4, !tbaa !5
  %6272 = add nsw i32 %6271, 1
  store i32 %6272, ptr @test_count, align 4, !tbaa !5
  %6273 = getelementptr inbounds i8, ptr %6128, i64 108
  %6274 = call i32 @s2n_fingerprint_get_raw(ptr noundef %6090, i32 noundef 100, ptr noundef nonnull %6273, ptr noundef nonnull %97) #12
  %6275 = icmp eq i32 %6274, -1
  br i1 %6275, label %6276, label %6298

6276:                                             ; preds = %6270
  %6277 = load i32, ptr %302, align 4, !tbaa !5
  %6278 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6279 = call i32 @s2n_print_stacktrace(ptr noundef %6278) #12
  %6280 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6281 = trunc nuw i8 %6280 to i1
  br i1 %6281, label %6282, label %6286

6282:                                             ; preds = %6276
  %6283 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6284 = call i32 @fileno(ptr noundef %6283) #12
  %6285 = call i32 @isatty(i32 noundef %6284) #12
  %.not665 = icmp eq i32 %6285, 0
  br i1 %.not665, label %6286, label %6287

6286:                                             ; preds = %6282, %6276
  br label %6287

6287:                                             ; preds = %6282, %6286
  %.str.5.sink2760 = phi ptr [ @.str.5, %6286 ], [ @.str.2, %6282 ]
  store i32 %6277, ptr %302, align 4, !tbaa !5
  %6288 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6289 = load i32, ptr @test_count, align 4, !tbaa !5
  %6290 = load i32, ptr %248, align 4, !tbaa !5
  %6291 = call ptr @s2n_strerror(i32 noundef %6290, ptr noundef nonnull @.str.4) #12
  %6292 = load i32, ptr %248, align 4, !tbaa !5
  %6293 = call ptr @s2n_strerror_debug(i32 noundef %6292, ptr noundef nonnull @.str.4) #12
  %6294 = load i32, ptr %302, align 4, !tbaa !5
  %6295 = call ptr @strerror(i32 noundef %6294) #12
  %6296 = load i32, ptr %302, align 4, !tbaa !5
  %6297 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6288, ptr noundef nonnull %.str.5.sink2760, i32 noundef %6289, ptr noundef nonnull @.str.126, ptr noundef nonnull @.str.1, i32 noundef 695, ptr noundef %6291, ptr noundef %6293, ptr noundef %6295, i32 noundef %6296) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6298:                                             ; preds = %6270, %6236
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %98) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %98, i8 0, i64 100, i1 false)
  %6299 = load i32, ptr @test_count, align 4, !tbaa !5
  %6300 = add nsw i32 %6299, 1
  store i32 %6300, ptr @test_count, align 4, !tbaa !5
  %6301 = call i32 @s2n_fingerprint_get_hash(ptr noundef %6090, i32 noundef 100, ptr noundef nonnull %98, ptr noundef nonnull %97) #12
  %6302 = icmp eq i32 %6301, -1
  br i1 %6302, label %6303, label %6325

6303:                                             ; preds = %6298
  %6304 = load i32, ptr %302, align 4, !tbaa !5
  %6305 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6306 = call i32 @s2n_print_stacktrace(ptr noundef %6305) #12
  %6307 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6308 = trunc nuw i8 %6307 to i1
  br i1 %6308, label %6309, label %6313

6309:                                             ; preds = %6303
  %6310 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6311 = call i32 @fileno(ptr noundef %6310) #12
  %6312 = call i32 @isatty(i32 noundef %6311) #12
  %.not664 = icmp eq i32 %6312, 0
  br i1 %.not664, label %6313, label %6314

6313:                                             ; preds = %6309, %6303
  br label %6314

6314:                                             ; preds = %6309, %6313
  %.str.5.sink2769 = phi ptr [ @.str.5, %6313 ], [ @.str.2, %6309 ]
  store i32 %6304, ptr %302, align 4, !tbaa !5
  %6315 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6316 = load i32, ptr @test_count, align 4, !tbaa !5
  %6317 = load i32, ptr %248, align 4, !tbaa !5
  %6318 = call ptr @s2n_strerror(i32 noundef %6317, ptr noundef nonnull @.str.4) #12
  %6319 = load i32, ptr %248, align 4, !tbaa !5
  %6320 = call ptr @s2n_strerror_debug(i32 noundef %6319, ptr noundef nonnull @.str.4) #12
  %6321 = load i32, ptr %302, align 4, !tbaa !5
  %6322 = call ptr @strerror(i32 noundef %6321) #12
  %6323 = load i32, ptr %302, align 4, !tbaa !5
  %6324 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6315, ptr noundef nonnull %.str.5.sink2769, i32 noundef %6316, ptr noundef nonnull @.str.127, ptr noundef nonnull @.str.1, i32 noundef 701, ptr noundef %6318, ptr noundef %6320, ptr noundef %6322, i32 noundef %6323) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6325:                                             ; preds = %6298
  %6326 = load i32, ptr @test_count, align 4, !tbaa !5
  %6327 = add nsw i32 %6326, 1
  store i32 %6327, ptr @test_count, align 4, !tbaa !5
  %6328 = getelementptr inbounds i8, ptr %6128, i64 8
  %bcmp658 = call i32 @bcmp(ptr noundef nonnull dereferenceable(100) %98, ptr noundef nonnull dereferenceable(100) %6328, i64 100)
  %6329 = icmp eq i32 %bcmp658, 0
  br i1 %6329, label %6352, label %6330

6330:                                             ; preds = %6325
  %6331 = load i32, ptr %302, align 4, !tbaa !5
  %6332 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6333 = call i32 @s2n_print_stacktrace(ptr noundef %6332) #12
  %6334 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6335 = trunc nuw i8 %6334 to i1
  br i1 %6335, label %6336, label %6340

6336:                                             ; preds = %6330
  %6337 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6338 = call i32 @fileno(ptr noundef %6337) #12
  %6339 = call i32 @isatty(i32 noundef %6338) #12
  %.not659 = icmp eq i32 %6339, 0
  br i1 %.not659, label %6340, label %6341

6340:                                             ; preds = %6336, %6330
  br label %6341

6341:                                             ; preds = %6336, %6340
  %.str.5.sink2778 = phi ptr [ @.str.5, %6340 ], [ @.str.2, %6336 ]
  store i32 %6331, ptr %302, align 4, !tbaa !5
  %6342 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6343 = load i32, ptr @test_count, align 4, !tbaa !5
  %6344 = load i32, ptr %248, align 4, !tbaa !5
  %6345 = call ptr @s2n_strerror(i32 noundef %6344, ptr noundef nonnull @.str.4) #12
  %6346 = load i32, ptr %248, align 4, !tbaa !5
  %6347 = call ptr @s2n_strerror_debug(i32 noundef %6346, ptr noundef nonnull @.str.4) #12
  %6348 = load i32, ptr %302, align 4, !tbaa !5
  %6349 = call ptr @strerror(i32 noundef %6348) #12
  %6350 = load i32, ptr %302, align 4, !tbaa !5
  %6351 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6342, ptr noundef nonnull %.str.5.sink2778, i32 noundef %6343, ptr noundef nonnull @.str.128, ptr noundef nonnull @.str.1, i32 noundef 702, ptr noundef %6345, ptr noundef %6347, ptr noundef %6349, i32 noundef %6350) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6352:                                             ; preds = %6325
  call void @llvm.lifetime.start.p0(i64 100, ptr nonnull %99) #12
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(100) %99, i8 0, i64 100, i1 false)
  %6353 = add nsw i32 %6326, 2
  store i32 %6353, ptr @test_count, align 4, !tbaa !5
  %6354 = call i32 @s2n_fingerprint_get_raw(ptr noundef %6090, i32 noundef 100, ptr noundef nonnull %99, ptr noundef nonnull %97) #12
  %6355 = icmp eq i32 %6354, -1
  br i1 %6355, label %6356, label %6378

6356:                                             ; preds = %6352
  %6357 = load i32, ptr %302, align 4, !tbaa !5
  %6358 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6359 = call i32 @s2n_print_stacktrace(ptr noundef %6358) #12
  %6360 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6361 = trunc nuw i8 %6360 to i1
  br i1 %6361, label %6362, label %6366

6362:                                             ; preds = %6356
  %6363 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6364 = call i32 @fileno(ptr noundef %6363) #12
  %6365 = call i32 @isatty(i32 noundef %6364) #12
  %.not663 = icmp eq i32 %6365, 0
  br i1 %.not663, label %6366, label %6367

6366:                                             ; preds = %6362, %6356
  br label %6367

6367:                                             ; preds = %6362, %6366
  %.str.5.sink2787 = phi ptr [ @.str.5, %6366 ], [ @.str.2, %6362 ]
  store i32 %6357, ptr %302, align 4, !tbaa !5
  %6368 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6369 = load i32, ptr @test_count, align 4, !tbaa !5
  %6370 = load i32, ptr %248, align 4, !tbaa !5
  %6371 = call ptr @s2n_strerror(i32 noundef %6370, ptr noundef nonnull @.str.4) #12
  %6372 = load i32, ptr %248, align 4, !tbaa !5
  %6373 = call ptr @s2n_strerror_debug(i32 noundef %6372, ptr noundef nonnull @.str.4) #12
  %6374 = load i32, ptr %302, align 4, !tbaa !5
  %6375 = call ptr @strerror(i32 noundef %6374) #12
  %6376 = load i32, ptr %302, align 4, !tbaa !5
  %6377 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6368, ptr noundef nonnull %.str.5.sink2787, i32 noundef %6369, ptr noundef nonnull @.str.129, ptr noundef nonnull @.str.1, i32 noundef 707, ptr noundef %6371, ptr noundef %6373, ptr noundef %6375, i32 noundef %6376) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6378:                                             ; preds = %6352
  %6379 = load i32, ptr @test_count, align 4, !tbaa !5
  %6380 = add nsw i32 %6379, 1
  store i32 %6380, ptr @test_count, align 4, !tbaa !5
  %6381 = getelementptr inbounds i8, ptr %6128, i64 108
  %bcmp660 = call i32 @bcmp(ptr noundef nonnull dereferenceable(100) %99, ptr noundef nonnull dereferenceable(100) %6381, i64 100)
  %6382 = icmp eq i32 %bcmp660, 0
  br i1 %6382, label %6405, label %6383

6383:                                             ; preds = %6378
  %6384 = load i32, ptr %302, align 4, !tbaa !5
  %6385 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6386 = call i32 @s2n_print_stacktrace(ptr noundef %6385) #12
  %6387 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6388 = trunc nuw i8 %6387 to i1
  br i1 %6388, label %6389, label %6393

6389:                                             ; preds = %6383
  %6390 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6391 = call i32 @fileno(ptr noundef %6390) #12
  %6392 = call i32 @isatty(i32 noundef %6391) #12
  %.not661 = icmp eq i32 %6392, 0
  br i1 %.not661, label %6393, label %6394

6393:                                             ; preds = %6389, %6383
  br label %6394

6394:                                             ; preds = %6389, %6393
  %.str.5.sink2796 = phi ptr [ @.str.5, %6393 ], [ @.str.2, %6389 ]
  store i32 %6384, ptr %302, align 4, !tbaa !5
  %6395 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6396 = load i32, ptr @test_count, align 4, !tbaa !5
  %6397 = load i32, ptr %248, align 4, !tbaa !5
  %6398 = call ptr @s2n_strerror(i32 noundef %6397, ptr noundef nonnull @.str.4) #12
  %6399 = load i32, ptr %248, align 4, !tbaa !5
  %6400 = call ptr @s2n_strerror_debug(i32 noundef %6399, ptr noundef nonnull @.str.4) #12
  %6401 = load i32, ptr %302, align 4, !tbaa !5
  %6402 = call ptr @strerror(i32 noundef %6401) #12
  %6403 = load i32, ptr %302, align 4, !tbaa !5
  %6404 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6395, ptr noundef nonnull %.str.5.sink2796, i32 noundef %6396, ptr noundef nonnull @.str.130, ptr noundef nonnull @.str.1, i32 noundef 708, ptr noundef %6398, ptr noundef %6400, ptr noundef %6402, i32 noundef %6403) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6405:                                             ; preds = %6378
  %6406 = add nsw i32 %6379, 2
  store i32 %6406, ptr @test_count, align 4, !tbaa !5
  %6407 = call i32 @s2n_fingerprint_wipe(ptr noundef %6090) #12
  %6408 = icmp eq i32 %6407, -1
  br i1 %6408, label %6409, label %6431

6409:                                             ; preds = %6405
  %6410 = load i32, ptr %302, align 4, !tbaa !5
  %6411 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6412 = call i32 @s2n_print_stacktrace(ptr noundef %6411) #12
  %6413 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6414 = trunc nuw i8 %6413 to i1
  br i1 %6414, label %6415, label %6419

6415:                                             ; preds = %6409
  %6416 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6417 = call i32 @fileno(ptr noundef %6416) #12
  %6418 = call i32 @isatty(i32 noundef %6417) #12
  %.not662 = icmp eq i32 %6418, 0
  br i1 %.not662, label %6419, label %6420

6419:                                             ; preds = %6415, %6409
  br label %6420

6420:                                             ; preds = %6415, %6419
  %.str.5.sink2805 = phi ptr [ @.str.5, %6419 ], [ @.str.2, %6415 ]
  store i32 %6410, ptr %302, align 4, !tbaa !5
  %6421 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6422 = load i32, ptr @test_count, align 4, !tbaa !5
  %6423 = load i32, ptr %248, align 4, !tbaa !5
  %6424 = call ptr @s2n_strerror(i32 noundef %6423, ptr noundef nonnull @.str.4) #12
  %6425 = load i32, ptr %248, align 4, !tbaa !5
  %6426 = call ptr @s2n_strerror_debug(i32 noundef %6425, ptr noundef nonnull @.str.4) #12
  %6427 = load i32, ptr %302, align 4, !tbaa !5
  %6428 = call ptr @strerror(i32 noundef %6427) #12
  %6429 = load i32, ptr %302, align 4, !tbaa !5
  %6430 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6421, ptr noundef nonnull %.str.5.sink2805, i32 noundef %6422, ptr noundef nonnull @.str.131, ptr noundef nonnull @.str.1, i32 noundef 711, ptr noundef %6424, ptr noundef %6426, ptr noundef %6428, i32 noundef %6429) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6431:                                             ; preds = %6405
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %99) #12
  call void @llvm.lifetime.end.p0(i64 100, ptr nonnull %98) #12
  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %97) #12
  %6432 = add nuw nsw i64 %.0531788, 1
  %exitcond794.not = icmp eq i64 %6432, 10
  br i1 %exitcond794.not, label %6120, label %6126, !llvm.loop !46

6433:                                             ; preds = %6120
  %6434 = load i32, ptr %302, align 4, !tbaa !5
  %6435 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6436 = call i32 @s2n_print_stacktrace(ptr noundef %6435) #12
  %6437 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6438 = trunc nuw i8 %6437 to i1
  br i1 %6438, label %6439, label %6443

6439:                                             ; preds = %6433
  %6440 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6441 = call i32 @fileno(ptr noundef %6440) #12
  %6442 = call i32 @isatty(i32 noundef %6441) #12
  %.not655 = icmp eq i32 %6442, 0
  br i1 %.not655, label %6443, label %6444

6443:                                             ; preds = %6439, %6433
  br label %6444

6444:                                             ; preds = %6439, %6443
  %.str.5.sink2814 = phi ptr [ @.str.5, %6443 ], [ @.str.2, %6439 ]
  store i32 %6434, ptr %302, align 4, !tbaa !5
  %6445 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6446 = load i32, ptr @test_count, align 4, !tbaa !5
  %6447 = load i32, ptr %248, align 4, !tbaa !5
  %6448 = call ptr @s2n_strerror(i32 noundef %6447, ptr noundef nonnull @.str.4) #12
  %6449 = load i32, ptr %248, align 4, !tbaa !5
  %6450 = call ptr @s2n_strerror_debug(i32 noundef %6449, ptr noundef nonnull @.str.4) #12
  %6451 = load i32, ptr %302, align 4, !tbaa !5
  %6452 = call ptr @strerror(i32 noundef %6451) #12
  %6453 = load i32, ptr %302, align 4, !tbaa !5
  %6454 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6445, ptr noundef nonnull %.str.5.sink2814, i32 noundef %6446, ptr noundef nonnull @.str.132, ptr noundef nonnull @.str.1, i32 noundef 715, ptr noundef %6448, ptr noundef %6450, ptr noundef %6452, i32 noundef %6453) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6455:                                             ; preds = %6120
  %6456 = add nsw i32 %6121, 2
  store i32 %6456, ptr @test_count, align 4, !tbaa !5
  %6457 = getelementptr inbounds i8, ptr %96, i64 108
  %6458 = getelementptr inbounds i8, ptr %96, i64 324
  %bcmp648 = call i32 @bcmp(ptr noundef nonnull dereferenceable(100) %6457, ptr noundef nonnull dereferenceable(100) %6458, i64 100)
  %6459 = icmp eq i32 %bcmp648, 0
  br i1 %6459, label %6460, label %6482

6460:                                             ; preds = %6455
  %6461 = load i32, ptr %302, align 4, !tbaa !5
  %6462 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6463 = call i32 @s2n_print_stacktrace(ptr noundef %6462) #12
  %6464 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6465 = trunc nuw i8 %6464 to i1
  br i1 %6465, label %6466, label %6470

6466:                                             ; preds = %6460
  %6467 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6468 = call i32 @fileno(ptr noundef %6467) #12
  %6469 = call i32 @isatty(i32 noundef %6468) #12
  %.not654 = icmp eq i32 %6469, 0
  br i1 %.not654, label %6470, label %6471

6470:                                             ; preds = %6466, %6460
  br label %6471

6471:                                             ; preds = %6466, %6470
  %.str.5.sink2823 = phi ptr [ @.str.5, %6470 ], [ @.str.2, %6466 ]
  store i32 %6461, ptr %302, align 4, !tbaa !5
  %6472 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6473 = load i32, ptr @test_count, align 4, !tbaa !5
  %6474 = load i32, ptr %248, align 4, !tbaa !5
  %6475 = call ptr @s2n_strerror(i32 noundef %6474, ptr noundef nonnull @.str.4) #12
  %6476 = load i32, ptr %248, align 4, !tbaa !5
  %6477 = call ptr @s2n_strerror_debug(i32 noundef %6476, ptr noundef nonnull @.str.4) #12
  %6478 = load i32, ptr %302, align 4, !tbaa !5
  %6479 = call ptr @strerror(i32 noundef %6478) #12
  %6480 = load i32, ptr %302, align 4, !tbaa !5
  %6481 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6472, ptr noundef nonnull %.str.5.sink2823, i32 noundef %6473, ptr noundef nonnull @.str.133, ptr noundef nonnull @.str.1, i32 noundef 716, ptr noundef %6475, ptr noundef %6477, ptr noundef %6479, i32 noundef %6480) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6482:                                             ; preds = %6455
  call void @llvm.lifetime.end.p0(i64 432, ptr nonnull %96) #12
  %6483 = call i32 @s2n_client_hello_free(ptr noundef nonnull %95) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %95) #12
  call void @llvm.lifetime.end.p0(i64 47, ptr nonnull %94) #12
  %6484 = call i32 @s2n_fingerprint_free(ptr noundef nonnull %93) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %93) #12
  %6485 = call i32 @s2n_cleanup() #12
  %6486 = icmp eq i32 %6485, -1
  br i1 %6486, label %6487, label %6509

6487:                                             ; preds = %6482
  %6488 = load i32, ptr %302, align 4, !tbaa !5
  %6489 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6490 = call i32 @s2n_print_stacktrace(ptr noundef %6489) #12
  %6491 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6492 = trunc nuw i8 %6491 to i1
  br i1 %6492, label %6493, label %6497

6493:                                             ; preds = %6487
  %6494 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6495 = call i32 @fileno(ptr noundef %6494) #12
  %6496 = call i32 @isatty(i32 noundef %6495) #12
  %.not653 = icmp eq i32 %6496, 0
  br i1 %.not653, label %6497, label %6498

6497:                                             ; preds = %6493, %6487
  br label %6498

6498:                                             ; preds = %6493, %6497
  %.str.5.sink2832 = phi ptr [ @.str.5, %6497 ], [ @.str.2, %6493 ]
  store i32 %6488, ptr %302, align 4, !tbaa !5
  %6499 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6500 = load i32, ptr @test_count, align 4, !tbaa !5
  %6501 = load i32, ptr %248, align 4, !tbaa !5
  %6502 = call ptr @s2n_strerror(i32 noundef %6501, ptr noundef nonnull @.str.4) #12
  %6503 = load i32, ptr %248, align 4, !tbaa !5
  %6504 = call ptr @s2n_strerror_debug(i32 noundef %6503, ptr noundef nonnull @.str.4) #12
  %6505 = load i32, ptr %302, align 4, !tbaa !5
  %6506 = call ptr @strerror(i32 noundef %6505) #12
  %6507 = load i32, ptr %302, align 4, !tbaa !5
  %6508 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6499, ptr noundef nonnull %.str.5.sink2832, i32 noundef %6500, ptr noundef nonnull @.str.134, ptr noundef nonnull @.str.1, i32 noundef 719, ptr noundef %6502, ptr noundef %6504, ptr noundef %6506, i32 noundef %6507) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6509:                                             ; preds = %6482
  %6510 = call i32 @s2n_in_unit_test_set(i1 noundef zeroext false) #12
  %6511 = icmp eq i32 %6510, -1
  br i1 %6511, label %6512, label %6534

6512:                                             ; preds = %6509
  %6513 = load i32, ptr %302, align 4, !tbaa !5
  %6514 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6515 = call i32 @s2n_print_stacktrace(ptr noundef %6514) #12
  %6516 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6517 = trunc nuw i8 %6516 to i1
  br i1 %6517, label %6518, label %6522

6518:                                             ; preds = %6512
  %6519 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6520 = call i32 @fileno(ptr noundef %6519) #12
  %6521 = call i32 @isatty(i32 noundef %6520) #12
  %.not652 = icmp eq i32 %6521, 0
  br i1 %.not652, label %6522, label %6523

6522:                                             ; preds = %6518, %6512
  br label %6523

6523:                                             ; preds = %6518, %6522
  %.str.5.sink2841 = phi ptr [ @.str.5, %6522 ], [ @.str.2, %6518 ]
  store i32 %6513, ptr %302, align 4, !tbaa !5
  %6524 = load ptr, ptr @stderr, align 8, !tbaa !9
  %6525 = load i32, ptr @test_count, align 4, !tbaa !5
  %6526 = load i32, ptr %248, align 4, !tbaa !5
  %6527 = call ptr @s2n_strerror(i32 noundef %6526, ptr noundef nonnull @.str.4) #12
  %6528 = load i32, ptr %248, align 4, !tbaa !5
  %6529 = call ptr @s2n_strerror_debug(i32 noundef %6528, ptr noundef nonnull @.str.4) #12
  %6530 = load i32, ptr %302, align 4, !tbaa !5
  %6531 = call ptr @strerror(i32 noundef %6530) #12
  %6532 = load i32, ptr %302, align 4, !tbaa !5
  %6533 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6524, ptr noundef nonnull %.str.5.sink2841, i32 noundef %6525, ptr noundef nonnull @.str.135, ptr noundef nonnull @.str.1, i32 noundef 719, ptr noundef %6527, ptr noundef %6529, ptr noundef %6531, i32 noundef %6532) #14
  call void @exit(i32 noundef 1) #15
  unreachable

6534:                                             ; preds = %6509
  %6535 = load i8, ptr @s2n_use_color_in_output, align 1, !tbaa !11, !range !13, !noundef !14
  %6536 = trunc nuw i8 %6535 to i1
  br i1 %6536, label %6537, label %6548

6537:                                             ; preds = %6534
  %6538 = load ptr, ptr @stdout, align 8, !tbaa !9
  %6539 = call i32 @fileno(ptr noundef %6538) #12
  %6540 = call i32 @isatty(i32 noundef %6539) #12
  %.not649 = icmp eq i32 %6540, 0
  br i1 %.not649, label %6548, label %6541

6541:                                             ; preds = %6537
  %6542 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not651 = icmp eq i32 %6542, 0
  %6543 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not651, label %6546, label %6544

6544:                                             ; preds = %6541
  %6545 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6543, ptr noundef nonnull @.str.136, i32 noundef %6542) #12
  br label %6555

6546:                                             ; preds = %6541
  %6547 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6543, ptr noundef nonnull @.str.137) #12
  br label %6555

6548:                                             ; preds = %6537, %6534
  %6549 = load i32, ptr @test_count, align 4, !tbaa !5
  %.not650 = icmp eq i32 %6549, 0
  %6550 = load ptr, ptr @stdout, align 8, !tbaa !9
  br i1 %.not650, label %6553, label %6551

6551:                                             ; preds = %6548
  %6552 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6550, ptr noundef nonnull @.str.138, i32 noundef %6549) #12
  br label %6555

6553:                                             ; preds = %6548
  %6554 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6550, ptr noundef nonnull @.str.139) #12
  br label %6555

6555:                                             ; preds = %6551, %6553, %6544, %6546
  %6556 = call i32 @s2n_client_hello_free(ptr noundef nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) #12
  call void @llvm.lifetime.end.p0(i64 47, ptr nonnull %4) #12
  call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %3) #12
  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

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

declare i32 @s2n_client_hello_free(ptr noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @s2n_result_is_error(i32) local_unnamed_addr #9

declare i32 @s2n_fingerprint_hash_add_char(ptr noundef, i8 noundef signext) local_unnamed_addr #2

declare void @s2n_debug_info_reset() local_unnamed_addr #2

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

declare i32 @s2n_stuffer_free(ptr noundef) local_unnamed_addr #2

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

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

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

declare i32 @s2n_hash_free(ptr noundef) local_unnamed_addr #2

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

declare i32 @s2n_fingerprint_hash_add_str(ptr noundef, ptr noundef, i64 noundef) local_unnamed_addr #2

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

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

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

declare zeroext i1 @s2n_fingerprint_hash_do_digest(ptr noundef) local_unnamed_addr #2

declare zeroext i1 @s2n_fingerprint_is_grease_value(i16 noundef zeroext) local_unnamed_addr #2

declare ptr @s2n_fingerprint_new(i32 noundef) local_unnamed_addr #2

declare i32 @s2n_fingerprint_free(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_hash_is_ready_for_input(ptr noundef) local_unnamed_addr #2

declare i32 @s2n_fingerprint_wipe(ptr noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

declare i32 @s2n_cleanup() local_unnamed_addr #2

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"any pointer", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"_Bool", !7, i64 0}
!13 = !{i8 0, i8 2}
!14 = !{}
!15 = !{!16, !6, i64 0}
!16 = !{!"s2n_fingerprint_hash", !6, i64 0, !10, i64 8, !10, i64 16}
!17 = !{!16, !10, i64 8}
!18 = !{!16, !10, i64 16}
!19 = !{!20, !6, i64 28}
!20 = !{!"s2n_stuffer", !21, i64 0, !6, i64 24, !6, i64 28, !6, i64 32, !6, i64 36, !6, i64 36, !6, i64 36}
!21 = !{!"s2n_blob", !10, i64 0, !6, i64 8, !6, i64 12, !6, i64 16}
!22 = !{!20, !6, i64 24}
!23 = !{!7, !7, i64 0}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.mustprogress"}
!26 = !{!27, !28, i64 16}
!27 = !{!"s2n_hash_state", !10, i64 0, !6, i64 8, !7, i64 12, !28, i64 16, !7, i64 24}
!28 = !{!"long", !7, i64 0}
!29 = distinct !{!29, !25}
!30 = !{!21, !6, i64 8}
!31 = !{!21, !10, i64 0}
!32 = distinct !{!32, !25}
!33 = !{!34, !10, i64 8}
!34 = !{!"s2n_fingerprint", !28, i64 0, !10, i64 8, !10, i64 16, !27, i64 24, !20, i64 80}
!35 = !{!34, !10, i64 16}
!36 = !{!34, !28, i64 0}
!37 = !{!34, !7, i64 36}
!38 = !{i64 0, i64 8, !9, i64 8, i64 4, !5, i64 12, i64 4, !5, i64 16, i64 1, !23, i64 24, i64 672, !23, i64 696, i64 8, !9, i64 704, i64 4, !5, i64 708, i64 4, !5, i64 712, i64 1, !23, i64 720, i64 2, !39, i64 728, i64 8, !9, i64 736, i64 4, !5, i64 740, i64 4, !5, i64 744, i64 1, !23, i64 752, i64 8, !9, i64 760, i64 4, !5, i64 764, i64 4, !5, i64 768, i64 1, !23, i64 776, i64 8, !9, i64 784, i64 4, !5, i64 788, i64 4, !5, i64 792, i64 1, !23, i64 800, i64 1, !23, i64 801, i64 1, !23, i64 802, i64 1, !23}
!39 = !{!40, !40, i64 0}
!40 = !{!"short", !7, i64 0}
!41 = !{!42, !6, i64 4}
!42 = !{!"s2n_fingerprint_method", !6, i64 0, !6, i64 4, !10, i64 8}
!43 = distinct !{!43, !25}
!44 = !{!45, !10, i64 0}
!45 = !{!"s2n_test_hello", !10, i64 0, !7, i64 8, !7, i64 108, !6, i64 208}
!46 = distinct !{!46, !25}


; Effective O3 passes: DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferAlignmentPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,PostOrderFunctionAttrsPass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass