; LLVM IR from caryll/otfcc :: lib/font (caryll-sfnt-builder)

; 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.otfcc_SFNTBuilder = type { i32, i32, ptr, ptr }
%struct.otfcc_SFNTTableEntry = type { i32, i32, i32, ptr, %struct.UT_hash_handle }
%struct.UT_hash_handle = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32 }
%struct.UT_hash_table = type { ptr, i32, i32, i32, ptr, i64, i32, i32, i32, i32, i32 }
%struct.UT_hash_bucket = type { ptr, i32, i32 }
%struct.otfcc_Options = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, ptr, ptr }
%struct.otfcc_ILogger = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }

@.str = external hidden unnamed_addr constant [45 x i8], align 1

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

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

; Function Attrs: nounwind
declare void @free(ptr noundef) #1

declare void @buffree(ptr noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @otfcc_SFNTBuilder_pushTable(ptr noundef %0, i32 noundef %1, ptr noundef %2) #3 {
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i32, align 4
  %10 = alloca i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca ptr, align 8
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca ptr, align 8
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca ptr, align 8
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store i32 %1, ptr %5, align 4, !tbaa !9
  store ptr %2, ptr %6, align 8, !tbaa !5
  %28 = load ptr, ptr %4, align 8, !tbaa !5
  %29 = icmp ne ptr %28, null
  br i1 %29, label %30, label %33

30:                                               ; preds = %3
  %31 = load ptr, ptr %6, align 8, !tbaa !5
  %32 = icmp ne ptr %31, null
  br i1 %32, label %34, label %33

33:                                               ; preds = %30, %3
  br label %1419

34:                                               ; preds = %30
  call void @llvm.lifetime.start.p0(i64 8, ptr %7) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #8
  %35 = load ptr, ptr %4, align 8, !tbaa !5
  %36 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %35, i32 0, i32 3
  %37 = load ptr, ptr %36, align 8, !tbaa !11
  store ptr %37, ptr %8, align 8, !tbaa !5
  br label %38

38:                                               ; preds = %34
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #8
  br label %39

39:                                               ; preds = %38
  br label %40

40:                                               ; preds = %39
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #8
  store ptr %5, ptr %13, align 8, !tbaa !5
  store i32 -17973521, ptr %9, align 4, !tbaa !9
  store i32 -1640531527, ptr %11, align 4, !tbaa !9
  store i32 -1640531527, ptr %10, align 4, !tbaa !9
  store i32 4, ptr %12, align 4, !tbaa !9
  br label %41

41:                                               ; preds = %209, %40
  %42 = load i32, ptr %12, align 4, !tbaa !9
  %43 = icmp uge i32 %42, 12
  br i1 %43, label %44, label %214

44:                                               ; preds = %41
  %45 = load ptr, ptr %13, align 8, !tbaa !5
  %46 = getelementptr inbounds i8, ptr %45, i64 0
  %47 = load i8, ptr %46, align 1, !tbaa !13
  %48 = zext i8 %47 to i32
  %49 = load ptr, ptr %13, align 8, !tbaa !5
  %50 = getelementptr inbounds i8, ptr %49, i64 1
  %51 = load i8, ptr %50, align 1, !tbaa !13
  %52 = zext i8 %51 to i32
  %53 = shl i32 %52, 8
  %54 = add i32 %48, %53
  %55 = load ptr, ptr %13, align 8, !tbaa !5
  %56 = getelementptr inbounds i8, ptr %55, i64 2
  %57 = load i8, ptr %56, align 1, !tbaa !13
  %58 = zext i8 %57 to i32
  %59 = shl i32 %58, 16
  %60 = add i32 %54, %59
  %61 = load ptr, ptr %13, align 8, !tbaa !5
  %62 = getelementptr inbounds i8, ptr %61, i64 3
  %63 = load i8, ptr %62, align 1, !tbaa !13
  %64 = zext i8 %63 to i32
  %65 = shl i32 %64, 24
  %66 = add i32 %60, %65
  %67 = load i32, ptr %10, align 4, !tbaa !9
  %68 = add i32 %67, %66
  store i32 %68, ptr %10, align 4, !tbaa !9
  %69 = load ptr, ptr %13, align 8, !tbaa !5
  %70 = getelementptr inbounds i8, ptr %69, i64 4
  %71 = load i8, ptr %70, align 1, !tbaa !13
  %72 = zext i8 %71 to i32
  %73 = load ptr, ptr %13, align 8, !tbaa !5
  %74 = getelementptr inbounds i8, ptr %73, i64 5
  %75 = load i8, ptr %74, align 1, !tbaa !13
  %76 = zext i8 %75 to i32
  %77 = shl i32 %76, 8
  %78 = add i32 %72, %77
  %79 = load ptr, ptr %13, align 8, !tbaa !5
  %80 = getelementptr inbounds i8, ptr %79, i64 6
  %81 = load i8, ptr %80, align 1, !tbaa !13
  %82 = zext i8 %81 to i32
  %83 = shl i32 %82, 16
  %84 = add i32 %78, %83
  %85 = load ptr, ptr %13, align 8, !tbaa !5
  %86 = getelementptr inbounds i8, ptr %85, i64 7
  %87 = load i8, ptr %86, align 1, !tbaa !13
  %88 = zext i8 %87 to i32
  %89 = shl i32 %88, 24
  %90 = add i32 %84, %89
  %91 = load i32, ptr %11, align 4, !tbaa !9
  %92 = add i32 %91, %90
  store i32 %92, ptr %11, align 4, !tbaa !9
  %93 = load ptr, ptr %13, align 8, !tbaa !5
  %94 = getelementptr inbounds i8, ptr %93, i64 8
  %95 = load i8, ptr %94, align 1, !tbaa !13
  %96 = zext i8 %95 to i32
  %97 = load ptr, ptr %13, align 8, !tbaa !5
  %98 = getelementptr inbounds i8, ptr %97, i64 9
  %99 = load i8, ptr %98, align 1, !tbaa !13
  %100 = zext i8 %99 to i32
  %101 = shl i32 %100, 8
  %102 = add i32 %96, %101
  %103 = load ptr, ptr %13, align 8, !tbaa !5
  %104 = getelementptr inbounds i8, ptr %103, i64 10
  %105 = load i8, ptr %104, align 1, !tbaa !13
  %106 = zext i8 %105 to i32
  %107 = shl i32 %106, 16
  %108 = add i32 %102, %107
  %109 = load ptr, ptr %13, align 8, !tbaa !5
  %110 = getelementptr inbounds i8, ptr %109, i64 11
  %111 = load i8, ptr %110, align 1, !tbaa !13
  %112 = zext i8 %111 to i32
  %113 = shl i32 %112, 24
  %114 = add i32 %108, %113
  %115 = load i32, ptr %9, align 4, !tbaa !9
  %116 = add i32 %115, %114
  store i32 %116, ptr %9, align 4, !tbaa !9
  br label %117

117:                                              ; preds = %44
  %118 = load i32, ptr %11, align 4, !tbaa !9
  %119 = load i32, ptr %10, align 4, !tbaa !9
  %120 = sub i32 %119, %118
  store i32 %120, ptr %10, align 4, !tbaa !9
  %121 = load i32, ptr %9, align 4, !tbaa !9
  %122 = load i32, ptr %10, align 4, !tbaa !9
  %123 = sub i32 %122, %121
  store i32 %123, ptr %10, align 4, !tbaa !9
  %124 = load i32, ptr %9, align 4, !tbaa !9
  %125 = lshr i32 %124, 13
  %126 = load i32, ptr %10, align 4, !tbaa !9
  %127 = xor i32 %126, %125
  store i32 %127, ptr %10, align 4, !tbaa !9
  %128 = load i32, ptr %9, align 4, !tbaa !9
  %129 = load i32, ptr %11, align 4, !tbaa !9
  %130 = sub i32 %129, %128
  store i32 %130, ptr %11, align 4, !tbaa !9
  %131 = load i32, ptr %10, align 4, !tbaa !9
  %132 = load i32, ptr %11, align 4, !tbaa !9
  %133 = sub i32 %132, %131
  store i32 %133, ptr %11, align 4, !tbaa !9
  %134 = load i32, ptr %10, align 4, !tbaa !9
  %135 = shl i32 %134, 8
  %136 = load i32, ptr %11, align 4, !tbaa !9
  %137 = xor i32 %136, %135
  store i32 %137, ptr %11, align 4, !tbaa !9
  %138 = load i32, ptr %10, align 4, !tbaa !9
  %139 = load i32, ptr %9, align 4, !tbaa !9
  %140 = sub i32 %139, %138
  store i32 %140, ptr %9, align 4, !tbaa !9
  %141 = load i32, ptr %11, align 4, !tbaa !9
  %142 = load i32, ptr %9, align 4, !tbaa !9
  %143 = sub i32 %142, %141
  store i32 %143, ptr %9, align 4, !tbaa !9
  %144 = load i32, ptr %11, align 4, !tbaa !9
  %145 = lshr i32 %144, 13
  %146 = load i32, ptr %9, align 4, !tbaa !9
  %147 = xor i32 %146, %145
  store i32 %147, ptr %9, align 4, !tbaa !9
  %148 = load i32, ptr %11, align 4, !tbaa !9
  %149 = load i32, ptr %10, align 4, !tbaa !9
  %150 = sub i32 %149, %148
  store i32 %150, ptr %10, align 4, !tbaa !9
  %151 = load i32, ptr %9, align 4, !tbaa !9
  %152 = load i32, ptr %10, align 4, !tbaa !9
  %153 = sub i32 %152, %151
  store i32 %153, ptr %10, align 4, !tbaa !9
  %154 = load i32, ptr %9, align 4, !tbaa !9
  %155 = lshr i32 %154, 12
  %156 = load i32, ptr %10, align 4, !tbaa !9
  %157 = xor i32 %156, %155
  store i32 %157, ptr %10, align 4, !tbaa !9
  %158 = load i32, ptr %9, align 4, !tbaa !9
  %159 = load i32, ptr %11, align 4, !tbaa !9
  %160 = sub i32 %159, %158
  store i32 %160, ptr %11, align 4, !tbaa !9
  %161 = load i32, ptr %10, align 4, !tbaa !9
  %162 = load i32, ptr %11, align 4, !tbaa !9
  %163 = sub i32 %162, %161
  store i32 %163, ptr %11, align 4, !tbaa !9
  %164 = load i32, ptr %10, align 4, !tbaa !9
  %165 = shl i32 %164, 16
  %166 = load i32, ptr %11, align 4, !tbaa !9
  %167 = xor i32 %166, %165
  store i32 %167, ptr %11, align 4, !tbaa !9
  %168 = load i32, ptr %10, align 4, !tbaa !9
  %169 = load i32, ptr %9, align 4, !tbaa !9
  %170 = sub i32 %169, %168
  store i32 %170, ptr %9, align 4, !tbaa !9
  %171 = load i32, ptr %11, align 4, !tbaa !9
  %172 = load i32, ptr %9, align 4, !tbaa !9
  %173 = sub i32 %172, %171
  store i32 %173, ptr %9, align 4, !tbaa !9
  %174 = load i32, ptr %11, align 4, !tbaa !9
  %175 = lshr i32 %174, 5
  %176 = load i32, ptr %9, align 4, !tbaa !9
  %177 = xor i32 %176, %175
  store i32 %177, ptr %9, align 4, !tbaa !9
  %178 = load i32, ptr %11, align 4, !tbaa !9
  %179 = load i32, ptr %10, align 4, !tbaa !9
  %180 = sub i32 %179, %178
  store i32 %180, ptr %10, align 4, !tbaa !9
  %181 = load i32, ptr %9, align 4, !tbaa !9
  %182 = load i32, ptr %10, align 4, !tbaa !9
  %183 = sub i32 %182, %181
  store i32 %183, ptr %10, align 4, !tbaa !9
  %184 = load i32, ptr %9, align 4, !tbaa !9
  %185 = lshr i32 %184, 3
  %186 = load i32, ptr %10, align 4, !tbaa !9
  %187 = xor i32 %186, %185
  store i32 %187, ptr %10, align 4, !tbaa !9
  %188 = load i32, ptr %9, align 4, !tbaa !9
  %189 = load i32, ptr %11, align 4, !tbaa !9
  %190 = sub i32 %189, %188
  store i32 %190, ptr %11, align 4, !tbaa !9
  %191 = load i32, ptr %10, align 4, !tbaa !9
  %192 = load i32, ptr %11, align 4, !tbaa !9
  %193 = sub i32 %192, %191
  store i32 %193, ptr %11, align 4, !tbaa !9
  %194 = load i32, ptr %10, align 4, !tbaa !9
  %195 = shl i32 %194, 10
  %196 = load i32, ptr %11, align 4, !tbaa !9
  %197 = xor i32 %196, %195
  store i32 %197, ptr %11, align 4, !tbaa !9
  %198 = load i32, ptr %10, align 4, !tbaa !9
  %199 = load i32, ptr %9, align 4, !tbaa !9
  %200 = sub i32 %199, %198
  store i32 %200, ptr %9, align 4, !tbaa !9
  %201 = load i32, ptr %11, align 4, !tbaa !9
  %202 = load i32, ptr %9, align 4, !tbaa !9
  %203 = sub i32 %202, %201
  store i32 %203, ptr %9, align 4, !tbaa !9
  %204 = load i32, ptr %11, align 4, !tbaa !9
  %205 = lshr i32 %204, 15
  %206 = load i32, ptr %9, align 4, !tbaa !9
  %207 = xor i32 %206, %205
  store i32 %207, ptr %9, align 4, !tbaa !9
  br label %208

208:                                              ; preds = %117
  br label %209

209:                                              ; preds = %208
  %210 = load ptr, ptr %13, align 8, !tbaa !5
  %211 = getelementptr inbounds i8, ptr %210, i64 12
  store ptr %211, ptr %13, align 8, !tbaa !5
  %212 = load i32, ptr %12, align 4, !tbaa !9
  %213 = sub i32 %212, 12
  store i32 %213, ptr %12, align 4, !tbaa !9
  br label %41, !llvm.loop !14

214:                                              ; preds = %41
  %215 = load i32, ptr %9, align 4, !tbaa !9
  %216 = add i32 %215, 4
  store i32 %216, ptr %9, align 4, !tbaa !9
  %217 = load i32, ptr %12, align 4, !tbaa !9
  switch i32 %217, label %304 [
    i32 11, label %218
    i32 10, label %226
    i32 9, label %234
    i32 8, label %242
    i32 7, label %250
    i32 6, label %258
    i32 5, label %266
    i32 4, label %273
    i32 3, label %281
    i32 2, label %289
    i32 1, label %297
  ]

218:                                              ; preds = %214
  %219 = load ptr, ptr %13, align 8, !tbaa !5
  %220 = getelementptr inbounds i8, ptr %219, i64 10
  %221 = load i8, ptr %220, align 1, !tbaa !13
  %222 = zext i8 %221 to i32
  %223 = shl i32 %222, 24
  %224 = load i32, ptr %9, align 4, !tbaa !9
  %225 = add i32 %224, %223
  store i32 %225, ptr %9, align 4, !tbaa !9
  br label %226

226:                                              ; preds = %218, %214
  %227 = load ptr, ptr %13, align 8, !tbaa !5
  %228 = getelementptr inbounds i8, ptr %227, i64 9
  %229 = load i8, ptr %228, align 1, !tbaa !13
  %230 = zext i8 %229 to i32
  %231 = shl i32 %230, 16
  %232 = load i32, ptr %9, align 4, !tbaa !9
  %233 = add i32 %232, %231
  store i32 %233, ptr %9, align 4, !tbaa !9
  br label %234

234:                                              ; preds = %226, %214
  %235 = load ptr, ptr %13, align 8, !tbaa !5
  %236 = getelementptr inbounds i8, ptr %235, i64 8
  %237 = load i8, ptr %236, align 1, !tbaa !13
  %238 = zext i8 %237 to i32
  %239 = shl i32 %238, 8
  %240 = load i32, ptr %9, align 4, !tbaa !9
  %241 = add i32 %240, %239
  store i32 %241, ptr %9, align 4, !tbaa !9
  br label %242

242:                                              ; preds = %234, %214
  %243 = load ptr, ptr %13, align 8, !tbaa !5
  %244 = getelementptr inbounds i8, ptr %243, i64 7
  %245 = load i8, ptr %244, align 1, !tbaa !13
  %246 = zext i8 %245 to i32
  %247 = shl i32 %246, 24
  %248 = load i32, ptr %11, align 4, !tbaa !9
  %249 = add i32 %248, %247
  store i32 %249, ptr %11, align 4, !tbaa !9
  br label %250

250:                                              ; preds = %242, %214
  %251 = load ptr, ptr %13, align 8, !tbaa !5
  %252 = getelementptr inbounds i8, ptr %251, i64 6
  %253 = load i8, ptr %252, align 1, !tbaa !13
  %254 = zext i8 %253 to i32
  %255 = shl i32 %254, 16
  %256 = load i32, ptr %11, align 4, !tbaa !9
  %257 = add i32 %256, %255
  store i32 %257, ptr %11, align 4, !tbaa !9
  br label %258

258:                                              ; preds = %250, %214
  %259 = load ptr, ptr %13, align 8, !tbaa !5
  %260 = getelementptr inbounds i8, ptr %259, i64 5
  %261 = load i8, ptr %260, align 1, !tbaa !13
  %262 = zext i8 %261 to i32
  %263 = shl i32 %262, 8
  %264 = load i32, ptr %11, align 4, !tbaa !9
  %265 = add i32 %264, %263
  store i32 %265, ptr %11, align 4, !tbaa !9
  br label %266

266:                                              ; preds = %258, %214
  %267 = load ptr, ptr %13, align 8, !tbaa !5
  %268 = getelementptr inbounds i8, ptr %267, i64 4
  %269 = load i8, ptr %268, align 1, !tbaa !13
  %270 = zext i8 %269 to i32
  %271 = load i32, ptr %11, align 4, !tbaa !9
  %272 = add i32 %271, %270
  store i32 %272, ptr %11, align 4, !tbaa !9
  br label %273

273:                                              ; preds = %266, %214
  %274 = load ptr, ptr %13, align 8, !tbaa !5
  %275 = getelementptr inbounds i8, ptr %274, i64 3
  %276 = load i8, ptr %275, align 1, !tbaa !13
  %277 = zext i8 %276 to i32
  %278 = shl i32 %277, 24
  %279 = load i32, ptr %10, align 4, !tbaa !9
  %280 = add i32 %279, %278
  store i32 %280, ptr %10, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %273, %214
  %282 = load ptr, ptr %13, align 8, !tbaa !5
  %283 = getelementptr inbounds i8, ptr %282, i64 2
  %284 = load i8, ptr %283, align 1, !tbaa !13
  %285 = zext i8 %284 to i32
  %286 = shl i32 %285, 16
  %287 = load i32, ptr %10, align 4, !tbaa !9
  %288 = add i32 %287, %286
  store i32 %288, ptr %10, align 4, !tbaa !9
  br label %289

289:                                              ; preds = %281, %214
  %290 = load ptr, ptr %13, align 8, !tbaa !5
  %291 = getelementptr inbounds i8, ptr %290, i64 1
  %292 = load i8, ptr %291, align 1, !tbaa !13
  %293 = zext i8 %292 to i32
  %294 = shl i32 %293, 8
  %295 = load i32, ptr %10, align 4, !tbaa !9
  %296 = add i32 %295, %294
  store i32 %296, ptr %10, align 4, !tbaa !9
  br label %297

297:                                              ; preds = %289, %214
  %298 = load ptr, ptr %13, align 8, !tbaa !5
  %299 = getelementptr inbounds i8, ptr %298, i64 0
  %300 = load i8, ptr %299, align 1, !tbaa !13
  %301 = zext i8 %300 to i32
  %302 = load i32, ptr %10, align 4, !tbaa !9
  %303 = add i32 %302, %301
  store i32 %303, ptr %10, align 4, !tbaa !9
  br label %304

304:                                              ; preds = %297, %214
  br label %305

305:                                              ; preds = %304
  %306 = load i32, ptr %11, align 4, !tbaa !9
  %307 = load i32, ptr %10, align 4, !tbaa !9
  %308 = sub i32 %307, %306
  store i32 %308, ptr %10, align 4, !tbaa !9
  %309 = load i32, ptr %9, align 4, !tbaa !9
  %310 = load i32, ptr %10, align 4, !tbaa !9
  %311 = sub i32 %310, %309
  store i32 %311, ptr %10, align 4, !tbaa !9
  %312 = load i32, ptr %9, align 4, !tbaa !9
  %313 = lshr i32 %312, 13
  %314 = load i32, ptr %10, align 4, !tbaa !9
  %315 = xor i32 %314, %313
  store i32 %315, ptr %10, align 4, !tbaa !9
  %316 = load i32, ptr %9, align 4, !tbaa !9
  %317 = load i32, ptr %11, align 4, !tbaa !9
  %318 = sub i32 %317, %316
  store i32 %318, ptr %11, align 4, !tbaa !9
  %319 = load i32, ptr %10, align 4, !tbaa !9
  %320 = load i32, ptr %11, align 4, !tbaa !9
  %321 = sub i32 %320, %319
  store i32 %321, ptr %11, align 4, !tbaa !9
  %322 = load i32, ptr %10, align 4, !tbaa !9
  %323 = shl i32 %322, 8
  %324 = load i32, ptr %11, align 4, !tbaa !9
  %325 = xor i32 %324, %323
  store i32 %325, ptr %11, align 4, !tbaa !9
  %326 = load i32, ptr %10, align 4, !tbaa !9
  %327 = load i32, ptr %9, align 4, !tbaa !9
  %328 = sub i32 %327, %326
  store i32 %328, ptr %9, align 4, !tbaa !9
  %329 = load i32, ptr %11, align 4, !tbaa !9
  %330 = load i32, ptr %9, align 4, !tbaa !9
  %331 = sub i32 %330, %329
  store i32 %331, ptr %9, align 4, !tbaa !9
  %332 = load i32, ptr %11, align 4, !tbaa !9
  %333 = lshr i32 %332, 13
  %334 = load i32, ptr %9, align 4, !tbaa !9
  %335 = xor i32 %334, %333
  store i32 %335, ptr %9, align 4, !tbaa !9
  %336 = load i32, ptr %11, align 4, !tbaa !9
  %337 = load i32, ptr %10, align 4, !tbaa !9
  %338 = sub i32 %337, %336
  store i32 %338, ptr %10, align 4, !tbaa !9
  %339 = load i32, ptr %9, align 4, !tbaa !9
  %340 = load i32, ptr %10, align 4, !tbaa !9
  %341 = sub i32 %340, %339
  store i32 %341, ptr %10, align 4, !tbaa !9
  %342 = load i32, ptr %9, align 4, !tbaa !9
  %343 = lshr i32 %342, 12
  %344 = load i32, ptr %10, align 4, !tbaa !9
  %345 = xor i32 %344, %343
  store i32 %345, ptr %10, align 4, !tbaa !9
  %346 = load i32, ptr %9, align 4, !tbaa !9
  %347 = load i32, ptr %11, align 4, !tbaa !9
  %348 = sub i32 %347, %346
  store i32 %348, ptr %11, align 4, !tbaa !9
  %349 = load i32, ptr %10, align 4, !tbaa !9
  %350 = load i32, ptr %11, align 4, !tbaa !9
  %351 = sub i32 %350, %349
  store i32 %351, ptr %11, align 4, !tbaa !9
  %352 = load i32, ptr %10, align 4, !tbaa !9
  %353 = shl i32 %352, 16
  %354 = load i32, ptr %11, align 4, !tbaa !9
  %355 = xor i32 %354, %353
  store i32 %355, ptr %11, align 4, !tbaa !9
  %356 = load i32, ptr %10, align 4, !tbaa !9
  %357 = load i32, ptr %9, align 4, !tbaa !9
  %358 = sub i32 %357, %356
  store i32 %358, ptr %9, align 4, !tbaa !9
  %359 = load i32, ptr %11, align 4, !tbaa !9
  %360 = load i32, ptr %9, align 4, !tbaa !9
  %361 = sub i32 %360, %359
  store i32 %361, ptr %9, align 4, !tbaa !9
  %362 = load i32, ptr %11, align 4, !tbaa !9
  %363 = lshr i32 %362, 5
  %364 = load i32, ptr %9, align 4, !tbaa !9
  %365 = xor i32 %364, %363
  store i32 %365, ptr %9, align 4, !tbaa !9
  %366 = load i32, ptr %11, align 4, !tbaa !9
  %367 = load i32, ptr %10, align 4, !tbaa !9
  %368 = sub i32 %367, %366
  store i32 %368, ptr %10, align 4, !tbaa !9
  %369 = load i32, ptr %9, align 4, !tbaa !9
  %370 = load i32, ptr %10, align 4, !tbaa !9
  %371 = sub i32 %370, %369
  store i32 %371, ptr %10, align 4, !tbaa !9
  %372 = load i32, ptr %9, align 4, !tbaa !9
  %373 = lshr i32 %372, 3
  %374 = load i32, ptr %10, align 4, !tbaa !9
  %375 = xor i32 %374, %373
  store i32 %375, ptr %10, align 4, !tbaa !9
  %376 = load i32, ptr %9, align 4, !tbaa !9
  %377 = load i32, ptr %11, align 4, !tbaa !9
  %378 = sub i32 %377, %376
  store i32 %378, ptr %11, align 4, !tbaa !9
  %379 = load i32, ptr %10, align 4, !tbaa !9
  %380 = load i32, ptr %11, align 4, !tbaa !9
  %381 = sub i32 %380, %379
  store i32 %381, ptr %11, align 4, !tbaa !9
  %382 = load i32, ptr %10, align 4, !tbaa !9
  %383 = shl i32 %382, 10
  %384 = load i32, ptr %11, align 4, !tbaa !9
  %385 = xor i32 %384, %383
  store i32 %385, ptr %11, align 4, !tbaa !9
  %386 = load i32, ptr %10, align 4, !tbaa !9
  %387 = load i32, ptr %9, align 4, !tbaa !9
  %388 = sub i32 %387, %386
  store i32 %388, ptr %9, align 4, !tbaa !9
  %389 = load i32, ptr %11, align 4, !tbaa !9
  %390 = load i32, ptr %9, align 4, !tbaa !9
  %391 = sub i32 %390, %389
  store i32 %391, ptr %9, align 4, !tbaa !9
  %392 = load i32, ptr %11, align 4, !tbaa !9
  %393 = lshr i32 %392, 15
  %394 = load i32, ptr %9, align 4, !tbaa !9
  %395 = xor i32 %394, %393
  store i32 %395, ptr %9, align 4, !tbaa !9
  br label %396

396:                                              ; preds = %305
  br label %397

397:                                              ; preds = %396
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #8
  br label %398

398:                                              ; preds = %397
  br label %399

399:                                              ; preds = %398
  br label %400

400:                                              ; preds = %399
  br label %401

401:                                              ; preds = %400
  br label %402

402:                                              ; preds = %401
  store ptr null, ptr %7, align 8, !tbaa !5
  %403 = load ptr, ptr %4, align 8, !tbaa !5
  %404 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %403, i32 0, i32 2
  %405 = load ptr, ptr %404, align 8, !tbaa !16
  %406 = icmp ne ptr %405, null
  br i1 %406, label %407, label %521

407:                                              ; preds = %402
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #8
  br label %408

408:                                              ; preds = %407
  %409 = load i32, ptr %9, align 4, !tbaa !9
  %410 = load ptr, ptr %4, align 8, !tbaa !5
  %411 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %410, i32 0, i32 2
  %412 = load ptr, ptr %411, align 8, !tbaa !16
  %413 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %412, i32 0, i32 4
  %414 = getelementptr inbounds %struct.UT_hash_handle, ptr %413, i32 0, i32 0
  %415 = load ptr, ptr %414, align 8, !tbaa !17
  %416 = getelementptr inbounds %struct.UT_hash_table, ptr %415, i32 0, i32 1
  %417 = load i32, ptr %416, align 8, !tbaa !20
  %418 = sub i32 %417, 1
  %419 = and i32 %409, %418
  store i32 %419, ptr %14, align 4, !tbaa !9
  br label %420

420:                                              ; preds = %408
  br label %421

421:                                              ; preds = %420
  br label %422

422:                                              ; preds = %421
  %423 = load ptr, ptr %4, align 8, !tbaa !5
  %424 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %423, i32 0, i32 2
  %425 = load ptr, ptr %424, align 8, !tbaa !16
  %426 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %425, i32 0, i32 4
  %427 = getelementptr inbounds %struct.UT_hash_handle, ptr %426, i32 0, i32 0
  %428 = load ptr, ptr %427, align 8, !tbaa !17
  %429 = getelementptr inbounds %struct.UT_hash_table, ptr %428, i32 0, i32 0
  %430 = load ptr, ptr %429, align 8, !tbaa !23
  %431 = load i32, ptr %14, align 4, !tbaa !9
  %432 = zext i32 %431 to i64
  %433 = getelementptr inbounds %struct.UT_hash_bucket, ptr %430, i64 %432
  %434 = getelementptr inbounds %struct.UT_hash_bucket, ptr %433, i32 0, i32 0
  %435 = load ptr, ptr %434, align 8, !tbaa !24
  %436 = icmp ne ptr %435, null
  br i1 %436, label %437, label %464

437:                                              ; preds = %422
  br label %438

438:                                              ; preds = %437
  %439 = load ptr, ptr %4, align 8, !tbaa !5
  %440 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %439, i32 0, i32 2
  %441 = load ptr, ptr %440, align 8, !tbaa !16
  %442 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %441, i32 0, i32 4
  %443 = getelementptr inbounds %struct.UT_hash_handle, ptr %442, i32 0, i32 0
  %444 = load ptr, ptr %443, align 8, !tbaa !17
  %445 = getelementptr inbounds %struct.UT_hash_table, ptr %444, i32 0, i32 0
  %446 = load ptr, ptr %445, align 8, !tbaa !23
  %447 = load i32, ptr %14, align 4, !tbaa !9
  %448 = zext i32 %447 to i64
  %449 = getelementptr inbounds %struct.UT_hash_bucket, ptr %446, i64 %448
  %450 = getelementptr inbounds %struct.UT_hash_bucket, ptr %449, i32 0, i32 0
  %451 = load ptr, ptr %450, align 8, !tbaa !24
  %452 = load ptr, ptr %4, align 8, !tbaa !5
  %453 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %452, i32 0, i32 2
  %454 = load ptr, ptr %453, align 8, !tbaa !16
  %455 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %454, i32 0, i32 4
  %456 = getelementptr inbounds %struct.UT_hash_handle, ptr %455, i32 0, i32 0
  %457 = load ptr, ptr %456, align 8, !tbaa !17
  %458 = getelementptr inbounds %struct.UT_hash_table, ptr %457, i32 0, i32 5
  %459 = load i64, ptr %458, align 8, !tbaa !26
  %460 = sub i64 0, %459
  %461 = getelementptr inbounds i8, ptr %451, i64 %460
  store ptr %461, ptr %7, align 8, !tbaa !5
  br label %462

462:                                              ; preds = %438
  br label %463

463:                                              ; preds = %462
  br label %465

464:                                              ; preds = %422
  store ptr null, ptr %7, align 8, !tbaa !5
  br label %465

465:                                              ; preds = %464, %463
  br label %466

466:                                              ; preds = %517, %465
  %467 = load ptr, ptr %7, align 8, !tbaa !5
  %468 = icmp ne ptr %467, null
  br i1 %468, label %469, label %518

469:                                              ; preds = %466
  %470 = load ptr, ptr %7, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %470, i32 0, i32 4
  %472 = getelementptr inbounds %struct.UT_hash_handle, ptr %471, i32 0, i32 7
  %473 = load i32, ptr %472, align 4, !tbaa !27
  %474 = load i32, ptr %9, align 4, !tbaa !9
  %475 = icmp eq i32 %473, %474
  br i1 %475, label %476, label %492

476:                                              ; preds = %469
  %477 = load ptr, ptr %7, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %477, i32 0, i32 4
  %479 = getelementptr inbounds %struct.UT_hash_handle, ptr %478, i32 0, i32 6
  %480 = load i32, ptr %479, align 8, !tbaa !28
  %481 = zext i32 %480 to i64
  %482 = icmp eq i64 %481, 4
  br i1 %482, label %483, label %492

483:                                              ; preds = %476
  %484 = load ptr, ptr %7, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %484, i32 0, i32 4
  %486 = getelementptr inbounds %struct.UT_hash_handle, ptr %485, i32 0, i32 5
  %487 = load ptr, ptr %486, align 8, !tbaa !29
  %488 = call i32 @memcmp(ptr noundef %487, ptr noundef %5, i64 noundef 4) #9
  %489 = icmp eq i32 %488, 0
  br i1 %489, label %490, label %491

490:                                              ; preds = %483
  br label %518

491:                                              ; preds = %483
  br label %492

492:                                              ; preds = %491, %476, %469
  %493 = load ptr, ptr %7, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %493, i32 0, i32 4
  %495 = getelementptr inbounds %struct.UT_hash_handle, ptr %494, i32 0, i32 4
  %496 = load ptr, ptr %495, align 8, !tbaa !30
  %497 = icmp ne ptr %496, null
  br i1 %497, label %498, label %516

498:                                              ; preds = %492
  br label %499

499:                                              ; preds = %498
  %500 = load ptr, ptr %7, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %500, i32 0, i32 4
  %502 = getelementptr inbounds %struct.UT_hash_handle, ptr %501, i32 0, i32 4
  %503 = load ptr, ptr %502, align 8, !tbaa !30
  %504 = load ptr, ptr %4, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %504, i32 0, i32 2
  %506 = load ptr, ptr %505, align 8, !tbaa !16
  %507 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %506, i32 0, i32 4
  %508 = getelementptr inbounds %struct.UT_hash_handle, ptr %507, i32 0, i32 0
  %509 = load ptr, ptr %508, align 8, !tbaa !17
  %510 = getelementptr inbounds %struct.UT_hash_table, ptr %509, i32 0, i32 5
  %511 = load i64, ptr %510, align 8, !tbaa !26
  %512 = sub i64 0, %511
  %513 = getelementptr inbounds i8, ptr %503, i64 %512
  store ptr %513, ptr %7, align 8, !tbaa !5
  br label %514

514:                                              ; preds = %499
  br label %515

515:                                              ; preds = %514
  br label %517

516:                                              ; preds = %492
  store ptr null, ptr %7, align 8, !tbaa !5
  br label %517

517:                                              ; preds = %516, %515
  br label %466, !llvm.loop !31

518:                                              ; preds = %490, %466
  br label %519

519:                                              ; preds = %518
  br label %520

520:                                              ; preds = %519
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #8
  br label %521

521:                                              ; preds = %520, %402
  br label %522

522:                                              ; preds = %521
  br label %523

523:                                              ; preds = %522
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #8
  br label %524

524:                                              ; preds = %523
  br label %525

525:                                              ; preds = %524
  %526 = load ptr, ptr %7, align 8, !tbaa !5
  %527 = icmp ne ptr %526, null
  br i1 %527, label %1416, label %528

528:                                              ; preds = %525
  %529 = load i32, ptr %5, align 4, !tbaa !9
  %530 = load ptr, ptr %6, align 8, !tbaa !5
  %531 = call ptr @createSegment(i32 noundef %529, ptr noundef %530)
  store ptr %531, ptr %7, align 8, !tbaa !5
  br label %532

532:                                              ; preds = %528
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #8
  br label %533

533:                                              ; preds = %532
  br label %534

534:                                              ; preds = %533
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #8
  %535 = load ptr, ptr %7, align 8, !tbaa !5
  %536 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %535, i32 0, i32 0
  store ptr %536, ptr %19, align 8, !tbaa !5
  store i32 -17973521, ptr %15, align 4, !tbaa !9
  store i32 -1640531527, ptr %17, align 4, !tbaa !9
  store i32 -1640531527, ptr %16, align 4, !tbaa !9
  store i32 4, ptr %18, align 4, !tbaa !9
  br label %537

537:                                              ; preds = %705, %534
  %538 = load i32, ptr %18, align 4, !tbaa !9
  %539 = icmp uge i32 %538, 12
  br i1 %539, label %540, label %710

540:                                              ; preds = %537
  %541 = load ptr, ptr %19, align 8, !tbaa !5
  %542 = getelementptr inbounds i8, ptr %541, i64 0
  %543 = load i8, ptr %542, align 1, !tbaa !13
  %544 = zext i8 %543 to i32
  %545 = load ptr, ptr %19, align 8, !tbaa !5
  %546 = getelementptr inbounds i8, ptr %545, i64 1
  %547 = load i8, ptr %546, align 1, !tbaa !13
  %548 = zext i8 %547 to i32
  %549 = shl i32 %548, 8
  %550 = add i32 %544, %549
  %551 = load ptr, ptr %19, align 8, !tbaa !5
  %552 = getelementptr inbounds i8, ptr %551, i64 2
  %553 = load i8, ptr %552, align 1, !tbaa !13
  %554 = zext i8 %553 to i32
  %555 = shl i32 %554, 16
  %556 = add i32 %550, %555
  %557 = load ptr, ptr %19, align 8, !tbaa !5
  %558 = getelementptr inbounds i8, ptr %557, i64 3
  %559 = load i8, ptr %558, align 1, !tbaa !13
  %560 = zext i8 %559 to i32
  %561 = shl i32 %560, 24
  %562 = add i32 %556, %561
  %563 = load i32, ptr %16, align 4, !tbaa !9
  %564 = add i32 %563, %562
  store i32 %564, ptr %16, align 4, !tbaa !9
  %565 = load ptr, ptr %19, align 8, !tbaa !5
  %566 = getelementptr inbounds i8, ptr %565, i64 4
  %567 = load i8, ptr %566, align 1, !tbaa !13
  %568 = zext i8 %567 to i32
  %569 = load ptr, ptr %19, align 8, !tbaa !5
  %570 = getelementptr inbounds i8, ptr %569, i64 5
  %571 = load i8, ptr %570, align 1, !tbaa !13
  %572 = zext i8 %571 to i32
  %573 = shl i32 %572, 8
  %574 = add i32 %568, %573
  %575 = load ptr, ptr %19, align 8, !tbaa !5
  %576 = getelementptr inbounds i8, ptr %575, i64 6
  %577 = load i8, ptr %576, align 1, !tbaa !13
  %578 = zext i8 %577 to i32
  %579 = shl i32 %578, 16
  %580 = add i32 %574, %579
  %581 = load ptr, ptr %19, align 8, !tbaa !5
  %582 = getelementptr inbounds i8, ptr %581, i64 7
  %583 = load i8, ptr %582, align 1, !tbaa !13
  %584 = zext i8 %583 to i32
  %585 = shl i32 %584, 24
  %586 = add i32 %580, %585
  %587 = load i32, ptr %17, align 4, !tbaa !9
  %588 = add i32 %587, %586
  store i32 %588, ptr %17, align 4, !tbaa !9
  %589 = load ptr, ptr %19, align 8, !tbaa !5
  %590 = getelementptr inbounds i8, ptr %589, i64 8
  %591 = load i8, ptr %590, align 1, !tbaa !13
  %592 = zext i8 %591 to i32
  %593 = load ptr, ptr %19, align 8, !tbaa !5
  %594 = getelementptr inbounds i8, ptr %593, i64 9
  %595 = load i8, ptr %594, align 1, !tbaa !13
  %596 = zext i8 %595 to i32
  %597 = shl i32 %596, 8
  %598 = add i32 %592, %597
  %599 = load ptr, ptr %19, align 8, !tbaa !5
  %600 = getelementptr inbounds i8, ptr %599, i64 10
  %601 = load i8, ptr %600, align 1, !tbaa !13
  %602 = zext i8 %601 to i32
  %603 = shl i32 %602, 16
  %604 = add i32 %598, %603
  %605 = load ptr, ptr %19, align 8, !tbaa !5
  %606 = getelementptr inbounds i8, ptr %605, i64 11
  %607 = load i8, ptr %606, align 1, !tbaa !13
  %608 = zext i8 %607 to i32
  %609 = shl i32 %608, 24
  %610 = add i32 %604, %609
  %611 = load i32, ptr %15, align 4, !tbaa !9
  %612 = add i32 %611, %610
  store i32 %612, ptr %15, align 4, !tbaa !9
  br label %613

613:                                              ; preds = %540
  %614 = load i32, ptr %17, align 4, !tbaa !9
  %615 = load i32, ptr %16, align 4, !tbaa !9
  %616 = sub i32 %615, %614
  store i32 %616, ptr %16, align 4, !tbaa !9
  %617 = load i32, ptr %15, align 4, !tbaa !9
  %618 = load i32, ptr %16, align 4, !tbaa !9
  %619 = sub i32 %618, %617
  store i32 %619, ptr %16, align 4, !tbaa !9
  %620 = load i32, ptr %15, align 4, !tbaa !9
  %621 = lshr i32 %620, 13
  %622 = load i32, ptr %16, align 4, !tbaa !9
  %623 = xor i32 %622, %621
  store i32 %623, ptr %16, align 4, !tbaa !9
  %624 = load i32, ptr %15, align 4, !tbaa !9
  %625 = load i32, ptr %17, align 4, !tbaa !9
  %626 = sub i32 %625, %624
  store i32 %626, ptr %17, align 4, !tbaa !9
  %627 = load i32, ptr %16, align 4, !tbaa !9
  %628 = load i32, ptr %17, align 4, !tbaa !9
  %629 = sub i32 %628, %627
  store i32 %629, ptr %17, align 4, !tbaa !9
  %630 = load i32, ptr %16, align 4, !tbaa !9
  %631 = shl i32 %630, 8
  %632 = load i32, ptr %17, align 4, !tbaa !9
  %633 = xor i32 %632, %631
  store i32 %633, ptr %17, align 4, !tbaa !9
  %634 = load i32, ptr %16, align 4, !tbaa !9
  %635 = load i32, ptr %15, align 4, !tbaa !9
  %636 = sub i32 %635, %634
  store i32 %636, ptr %15, align 4, !tbaa !9
  %637 = load i32, ptr %17, align 4, !tbaa !9
  %638 = load i32, ptr %15, align 4, !tbaa !9
  %639 = sub i32 %638, %637
  store i32 %639, ptr %15, align 4, !tbaa !9
  %640 = load i32, ptr %17, align 4, !tbaa !9
  %641 = lshr i32 %640, 13
  %642 = load i32, ptr %15, align 4, !tbaa !9
  %643 = xor i32 %642, %641
  store i32 %643, ptr %15, align 4, !tbaa !9
  %644 = load i32, ptr %17, align 4, !tbaa !9
  %645 = load i32, ptr %16, align 4, !tbaa !9
  %646 = sub i32 %645, %644
  store i32 %646, ptr %16, align 4, !tbaa !9
  %647 = load i32, ptr %15, align 4, !tbaa !9
  %648 = load i32, ptr %16, align 4, !tbaa !9
  %649 = sub i32 %648, %647
  store i32 %649, ptr %16, align 4, !tbaa !9
  %650 = load i32, ptr %15, align 4, !tbaa !9
  %651 = lshr i32 %650, 12
  %652 = load i32, ptr %16, align 4, !tbaa !9
  %653 = xor i32 %652, %651
  store i32 %653, ptr %16, align 4, !tbaa !9
  %654 = load i32, ptr %15, align 4, !tbaa !9
  %655 = load i32, ptr %17, align 4, !tbaa !9
  %656 = sub i32 %655, %654
  store i32 %656, ptr %17, align 4, !tbaa !9
  %657 = load i32, ptr %16, align 4, !tbaa !9
  %658 = load i32, ptr %17, align 4, !tbaa !9
  %659 = sub i32 %658, %657
  store i32 %659, ptr %17, align 4, !tbaa !9
  %660 = load i32, ptr %16, align 4, !tbaa !9
  %661 = shl i32 %660, 16
  %662 = load i32, ptr %17, align 4, !tbaa !9
  %663 = xor i32 %662, %661
  store i32 %663, ptr %17, align 4, !tbaa !9
  %664 = load i32, ptr %16, align 4, !tbaa !9
  %665 = load i32, ptr %15, align 4, !tbaa !9
  %666 = sub i32 %665, %664
  store i32 %666, ptr %15, align 4, !tbaa !9
  %667 = load i32, ptr %17, align 4, !tbaa !9
  %668 = load i32, ptr %15, align 4, !tbaa !9
  %669 = sub i32 %668, %667
  store i32 %669, ptr %15, align 4, !tbaa !9
  %670 = load i32, ptr %17, align 4, !tbaa !9
  %671 = lshr i32 %670, 5
  %672 = load i32, ptr %15, align 4, !tbaa !9
  %673 = xor i32 %672, %671
  store i32 %673, ptr %15, align 4, !tbaa !9
  %674 = load i32, ptr %17, align 4, !tbaa !9
  %675 = load i32, ptr %16, align 4, !tbaa !9
  %676 = sub i32 %675, %674
  store i32 %676, ptr %16, align 4, !tbaa !9
  %677 = load i32, ptr %15, align 4, !tbaa !9
  %678 = load i32, ptr %16, align 4, !tbaa !9
  %679 = sub i32 %678, %677
  store i32 %679, ptr %16, align 4, !tbaa !9
  %680 = load i32, ptr %15, align 4, !tbaa !9
  %681 = lshr i32 %680, 3
  %682 = load i32, ptr %16, align 4, !tbaa !9
  %683 = xor i32 %682, %681
  store i32 %683, ptr %16, align 4, !tbaa !9
  %684 = load i32, ptr %15, align 4, !tbaa !9
  %685 = load i32, ptr %17, align 4, !tbaa !9
  %686 = sub i32 %685, %684
  store i32 %686, ptr %17, align 4, !tbaa !9
  %687 = load i32, ptr %16, align 4, !tbaa !9
  %688 = load i32, ptr %17, align 4, !tbaa !9
  %689 = sub i32 %688, %687
  store i32 %689, ptr %17, align 4, !tbaa !9
  %690 = load i32, ptr %16, align 4, !tbaa !9
  %691 = shl i32 %690, 10
  %692 = load i32, ptr %17, align 4, !tbaa !9
  %693 = xor i32 %692, %691
  store i32 %693, ptr %17, align 4, !tbaa !9
  %694 = load i32, ptr %16, align 4, !tbaa !9
  %695 = load i32, ptr %15, align 4, !tbaa !9
  %696 = sub i32 %695, %694
  store i32 %696, ptr %15, align 4, !tbaa !9
  %697 = load i32, ptr %17, align 4, !tbaa !9
  %698 = load i32, ptr %15, align 4, !tbaa !9
  %699 = sub i32 %698, %697
  store i32 %699, ptr %15, align 4, !tbaa !9
  %700 = load i32, ptr %17, align 4, !tbaa !9
  %701 = lshr i32 %700, 15
  %702 = load i32, ptr %15, align 4, !tbaa !9
  %703 = xor i32 %702, %701
  store i32 %703, ptr %15, align 4, !tbaa !9
  br label %704

704:                                              ; preds = %613
  br label %705

705:                                              ; preds = %704
  %706 = load ptr, ptr %19, align 8, !tbaa !5
  %707 = getelementptr inbounds i8, ptr %706, i64 12
  store ptr %707, ptr %19, align 8, !tbaa !5
  %708 = load i32, ptr %18, align 4, !tbaa !9
  %709 = sub i32 %708, 12
  store i32 %709, ptr %18, align 4, !tbaa !9
  br label %537, !llvm.loop !32

710:                                              ; preds = %537
  %711 = load i32, ptr %15, align 4, !tbaa !9
  %712 = add i32 %711, 4
  store i32 %712, ptr %15, align 4, !tbaa !9
  %713 = load i32, ptr %18, align 4, !tbaa !9
  switch i32 %713, label %800 [
    i32 11, label %714
    i32 10, label %722
    i32 9, label %730
    i32 8, label %738
    i32 7, label %746
    i32 6, label %754
    i32 5, label %762
    i32 4, label %769
    i32 3, label %777
    i32 2, label %785
    i32 1, label %793
  ]

714:                                              ; preds = %710
  %715 = load ptr, ptr %19, align 8, !tbaa !5
  %716 = getelementptr inbounds i8, ptr %715, i64 10
  %717 = load i8, ptr %716, align 1, !tbaa !13
  %718 = zext i8 %717 to i32
  %719 = shl i32 %718, 24
  %720 = load i32, ptr %15, align 4, !tbaa !9
  %721 = add i32 %720, %719
  store i32 %721, ptr %15, align 4, !tbaa !9
  br label %722

722:                                              ; preds = %714, %710
  %723 = load ptr, ptr %19, align 8, !tbaa !5
  %724 = getelementptr inbounds i8, ptr %723, i64 9
  %725 = load i8, ptr %724, align 1, !tbaa !13
  %726 = zext i8 %725 to i32
  %727 = shl i32 %726, 16
  %728 = load i32, ptr %15, align 4, !tbaa !9
  %729 = add i32 %728, %727
  store i32 %729, ptr %15, align 4, !tbaa !9
  br label %730

730:                                              ; preds = %722, %710
  %731 = load ptr, ptr %19, align 8, !tbaa !5
  %732 = getelementptr inbounds i8, ptr %731, i64 8
  %733 = load i8, ptr %732, align 1, !tbaa !13
  %734 = zext i8 %733 to i32
  %735 = shl i32 %734, 8
  %736 = load i32, ptr %15, align 4, !tbaa !9
  %737 = add i32 %736, %735
  store i32 %737, ptr %15, align 4, !tbaa !9
  br label %738

738:                                              ; preds = %730, %710
  %739 = load ptr, ptr %19, align 8, !tbaa !5
  %740 = getelementptr inbounds i8, ptr %739, i64 7
  %741 = load i8, ptr %740, align 1, !tbaa !13
  %742 = zext i8 %741 to i32
  %743 = shl i32 %742, 24
  %744 = load i32, ptr %17, align 4, !tbaa !9
  %745 = add i32 %744, %743
  store i32 %745, ptr %17, align 4, !tbaa !9
  br label %746

746:                                              ; preds = %738, %710
  %747 = load ptr, ptr %19, align 8, !tbaa !5
  %748 = getelementptr inbounds i8, ptr %747, i64 6
  %749 = load i8, ptr %748, align 1, !tbaa !13
  %750 = zext i8 %749 to i32
  %751 = shl i32 %750, 16
  %752 = load i32, ptr %17, align 4, !tbaa !9
  %753 = add i32 %752, %751
  store i32 %753, ptr %17, align 4, !tbaa !9
  br label %754

754:                                              ; preds = %746, %710
  %755 = load ptr, ptr %19, align 8, !tbaa !5
  %756 = getelementptr inbounds i8, ptr %755, i64 5
  %757 = load i8, ptr %756, align 1, !tbaa !13
  %758 = zext i8 %757 to i32
  %759 = shl i32 %758, 8
  %760 = load i32, ptr %17, align 4, !tbaa !9
  %761 = add i32 %760, %759
  store i32 %761, ptr %17, align 4, !tbaa !9
  br label %762

762:                                              ; preds = %754, %710
  %763 = load ptr, ptr %19, align 8, !tbaa !5
  %764 = getelementptr inbounds i8, ptr %763, i64 4
  %765 = load i8, ptr %764, align 1, !tbaa !13
  %766 = zext i8 %765 to i32
  %767 = load i32, ptr %17, align 4, !tbaa !9
  %768 = add i32 %767, %766
  store i32 %768, ptr %17, align 4, !tbaa !9
  br label %769

769:                                              ; preds = %762, %710
  %770 = load ptr, ptr %19, align 8, !tbaa !5
  %771 = getelementptr inbounds i8, ptr %770, i64 3
  %772 = load i8, ptr %771, align 1, !tbaa !13
  %773 = zext i8 %772 to i32
  %774 = shl i32 %773, 24
  %775 = load i32, ptr %16, align 4, !tbaa !9
  %776 = add i32 %775, %774
  store i32 %776, ptr %16, align 4, !tbaa !9
  br label %777

777:                                              ; preds = %769, %710
  %778 = load ptr, ptr %19, align 8, !tbaa !5
  %779 = getelementptr inbounds i8, ptr %778, i64 2
  %780 = load i8, ptr %779, align 1, !tbaa !13
  %781 = zext i8 %780 to i32
  %782 = shl i32 %781, 16
  %783 = load i32, ptr %16, align 4, !tbaa !9
  %784 = add i32 %783, %782
  store i32 %784, ptr %16, align 4, !tbaa !9
  br label %785

785:                                              ; preds = %777, %710
  %786 = load ptr, ptr %19, align 8, !tbaa !5
  %787 = getelementptr inbounds i8, ptr %786, i64 1
  %788 = load i8, ptr %787, align 1, !tbaa !13
  %789 = zext i8 %788 to i32
  %790 = shl i32 %789, 8
  %791 = load i32, ptr %16, align 4, !tbaa !9
  %792 = add i32 %791, %790
  store i32 %792, ptr %16, align 4, !tbaa !9
  br label %793

793:                                              ; preds = %785, %710
  %794 = load ptr, ptr %19, align 8, !tbaa !5
  %795 = getelementptr inbounds i8, ptr %794, i64 0
  %796 = load i8, ptr %795, align 1, !tbaa !13
  %797 = zext i8 %796 to i32
  %798 = load i32, ptr %16, align 4, !tbaa !9
  %799 = add i32 %798, %797
  store i32 %799, ptr %16, align 4, !tbaa !9
  br label %800

800:                                              ; preds = %793, %710
  br label %801

801:                                              ; preds = %800
  %802 = load i32, ptr %17, align 4, !tbaa !9
  %803 = load i32, ptr %16, align 4, !tbaa !9
  %804 = sub i32 %803, %802
  store i32 %804, ptr %16, align 4, !tbaa !9
  %805 = load i32, ptr %15, align 4, !tbaa !9
  %806 = load i32, ptr %16, align 4, !tbaa !9
  %807 = sub i32 %806, %805
  store i32 %807, ptr %16, align 4, !tbaa !9
  %808 = load i32, ptr %15, align 4, !tbaa !9
  %809 = lshr i32 %808, 13
  %810 = load i32, ptr %16, align 4, !tbaa !9
  %811 = xor i32 %810, %809
  store i32 %811, ptr %16, align 4, !tbaa !9
  %812 = load i32, ptr %15, align 4, !tbaa !9
  %813 = load i32, ptr %17, align 4, !tbaa !9
  %814 = sub i32 %813, %812
  store i32 %814, ptr %17, align 4, !tbaa !9
  %815 = load i32, ptr %16, align 4, !tbaa !9
  %816 = load i32, ptr %17, align 4, !tbaa !9
  %817 = sub i32 %816, %815
  store i32 %817, ptr %17, align 4, !tbaa !9
  %818 = load i32, ptr %16, align 4, !tbaa !9
  %819 = shl i32 %818, 8
  %820 = load i32, ptr %17, align 4, !tbaa !9
  %821 = xor i32 %820, %819
  store i32 %821, ptr %17, align 4, !tbaa !9
  %822 = load i32, ptr %16, align 4, !tbaa !9
  %823 = load i32, ptr %15, align 4, !tbaa !9
  %824 = sub i32 %823, %822
  store i32 %824, ptr %15, align 4, !tbaa !9
  %825 = load i32, ptr %17, align 4, !tbaa !9
  %826 = load i32, ptr %15, align 4, !tbaa !9
  %827 = sub i32 %826, %825
  store i32 %827, ptr %15, align 4, !tbaa !9
  %828 = load i32, ptr %17, align 4, !tbaa !9
  %829 = lshr i32 %828, 13
  %830 = load i32, ptr %15, align 4, !tbaa !9
  %831 = xor i32 %830, %829
  store i32 %831, ptr %15, align 4, !tbaa !9
  %832 = load i32, ptr %17, align 4, !tbaa !9
  %833 = load i32, ptr %16, align 4, !tbaa !9
  %834 = sub i32 %833, %832
  store i32 %834, ptr %16, align 4, !tbaa !9
  %835 = load i32, ptr %15, align 4, !tbaa !9
  %836 = load i32, ptr %16, align 4, !tbaa !9
  %837 = sub i32 %836, %835
  store i32 %837, ptr %16, align 4, !tbaa !9
  %838 = load i32, ptr %15, align 4, !tbaa !9
  %839 = lshr i32 %838, 12
  %840 = load i32, ptr %16, align 4, !tbaa !9
  %841 = xor i32 %840, %839
  store i32 %841, ptr %16, align 4, !tbaa !9
  %842 = load i32, ptr %15, align 4, !tbaa !9
  %843 = load i32, ptr %17, align 4, !tbaa !9
  %844 = sub i32 %843, %842
  store i32 %844, ptr %17, align 4, !tbaa !9
  %845 = load i32, ptr %16, align 4, !tbaa !9
  %846 = load i32, ptr %17, align 4, !tbaa !9
  %847 = sub i32 %846, %845
  store i32 %847, ptr %17, align 4, !tbaa !9
  %848 = load i32, ptr %16, align 4, !tbaa !9
  %849 = shl i32 %848, 16
  %850 = load i32, ptr %17, align 4, !tbaa !9
  %851 = xor i32 %850, %849
  store i32 %851, ptr %17, align 4, !tbaa !9
  %852 = load i32, ptr %16, align 4, !tbaa !9
  %853 = load i32, ptr %15, align 4, !tbaa !9
  %854 = sub i32 %853, %852
  store i32 %854, ptr %15, align 4, !tbaa !9
  %855 = load i32, ptr %17, align 4, !tbaa !9
  %856 = load i32, ptr %15, align 4, !tbaa !9
  %857 = sub i32 %856, %855
  store i32 %857, ptr %15, align 4, !tbaa !9
  %858 = load i32, ptr %17, align 4, !tbaa !9
  %859 = lshr i32 %858, 5
  %860 = load i32, ptr %15, align 4, !tbaa !9
  %861 = xor i32 %860, %859
  store i32 %861, ptr %15, align 4, !tbaa !9
  %862 = load i32, ptr %17, align 4, !tbaa !9
  %863 = load i32, ptr %16, align 4, !tbaa !9
  %864 = sub i32 %863, %862
  store i32 %864, ptr %16, align 4, !tbaa !9
  %865 = load i32, ptr %15, align 4, !tbaa !9
  %866 = load i32, ptr %16, align 4, !tbaa !9
  %867 = sub i32 %866, %865
  store i32 %867, ptr %16, align 4, !tbaa !9
  %868 = load i32, ptr %15, align 4, !tbaa !9
  %869 = lshr i32 %868, 3
  %870 = load i32, ptr %16, align 4, !tbaa !9
  %871 = xor i32 %870, %869
  store i32 %871, ptr %16, align 4, !tbaa !9
  %872 = load i32, ptr %15, align 4, !tbaa !9
  %873 = load i32, ptr %17, align 4, !tbaa !9
  %874 = sub i32 %873, %872
  store i32 %874, ptr %17, align 4, !tbaa !9
  %875 = load i32, ptr %16, align 4, !tbaa !9
  %876 = load i32, ptr %17, align 4, !tbaa !9
  %877 = sub i32 %876, %875
  store i32 %877, ptr %17, align 4, !tbaa !9
  %878 = load i32, ptr %16, align 4, !tbaa !9
  %879 = shl i32 %878, 10
  %880 = load i32, ptr %17, align 4, !tbaa !9
  %881 = xor i32 %880, %879
  store i32 %881, ptr %17, align 4, !tbaa !9
  %882 = load i32, ptr %16, align 4, !tbaa !9
  %883 = load i32, ptr %15, align 4, !tbaa !9
  %884 = sub i32 %883, %882
  store i32 %884, ptr %15, align 4, !tbaa !9
  %885 = load i32, ptr %17, align 4, !tbaa !9
  %886 = load i32, ptr %15, align 4, !tbaa !9
  %887 = sub i32 %886, %885
  store i32 %887, ptr %15, align 4, !tbaa !9
  %888 = load i32, ptr %17, align 4, !tbaa !9
  %889 = lshr i32 %888, 15
  %890 = load i32, ptr %15, align 4, !tbaa !9
  %891 = xor i32 %890, %889
  store i32 %891, ptr %15, align 4, !tbaa !9
  br label %892

892:                                              ; preds = %801
  br label %893

893:                                              ; preds = %892
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #8
  br label %894

894:                                              ; preds = %893
  br label %895

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  %899 = load i32, ptr %15, align 4, !tbaa !9
  %900 = load ptr, ptr %7, align 8, !tbaa !5
  %901 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %900, i32 0, i32 4
  %902 = getelementptr inbounds %struct.UT_hash_handle, ptr %901, i32 0, i32 7
  store i32 %899, ptr %902, align 4, !tbaa !27
  %903 = load ptr, ptr %7, align 8, !tbaa !5
  %904 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %903, i32 0, i32 0
  %905 = load ptr, ptr %7, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %905, i32 0, i32 4
  %907 = getelementptr inbounds %struct.UT_hash_handle, ptr %906, i32 0, i32 5
  store ptr %904, ptr %907, align 8, !tbaa !29
  %908 = load ptr, ptr %7, align 8, !tbaa !5
  %909 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %908, i32 0, i32 4
  %910 = getelementptr inbounds %struct.UT_hash_handle, ptr %909, i32 0, i32 6
  store i32 4, ptr %910, align 8, !tbaa !28
  %911 = load ptr, ptr %4, align 8, !tbaa !5
  %912 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %911, i32 0, i32 2
  %913 = load ptr, ptr %912, align 8, !tbaa !16
  %914 = icmp ne ptr %913, null
  br i1 %914, label %999, label %915

915:                                              ; preds = %898
  %916 = load ptr, ptr %7, align 8, !tbaa !5
  %917 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %916, i32 0, i32 4
  %918 = getelementptr inbounds %struct.UT_hash_handle, ptr %917, i32 0, i32 2
  store ptr null, ptr %918, align 8, !tbaa !33
  %919 = load ptr, ptr %7, align 8, !tbaa !5
  %920 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %919, i32 0, i32 4
  %921 = getelementptr inbounds %struct.UT_hash_handle, ptr %920, i32 0, i32 1
  store ptr null, ptr %921, align 8, !tbaa !34
  br label %922

922:                                              ; preds = %915
  %923 = call noalias ptr @malloc(i64 noundef 64) #10
  %924 = load ptr, ptr %7, align 8, !tbaa !5
  %925 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %924, i32 0, i32 4
  %926 = getelementptr inbounds %struct.UT_hash_handle, ptr %925, i32 0, i32 0
  store ptr %923, ptr %926, align 8, !tbaa !17
  %927 = load ptr, ptr %7, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %927, i32 0, i32 4
  %929 = getelementptr inbounds %struct.UT_hash_handle, ptr %928, i32 0, i32 0
  %930 = load ptr, ptr %929, align 8, !tbaa !17
  %931 = icmp ne ptr %930, null
  br i1 %931, label %933, label %932

932:                                              ; preds = %922
  call void @exit(i32 noundef -1) #11
  unreachable

933:                                              ; preds = %922
  %934 = load ptr, ptr %7, align 8, !tbaa !5
  %935 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %934, i32 0, i32 4
  %936 = getelementptr inbounds %struct.UT_hash_handle, ptr %935, i32 0, i32 0
  %937 = load ptr, ptr %936, align 8, !tbaa !17
  call void @llvm.memset.p0.i64(ptr align 8 %937, i8 0, i64 64, i1 false)
  %938 = load ptr, ptr %7, align 8, !tbaa !5
  %939 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %938, i32 0, i32 4
  %940 = load ptr, ptr %7, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %940, i32 0, i32 4
  %942 = getelementptr inbounds %struct.UT_hash_handle, ptr %941, i32 0, i32 0
  %943 = load ptr, ptr %942, align 8, !tbaa !17
  %944 = getelementptr inbounds %struct.UT_hash_table, ptr %943, i32 0, i32 4
  store ptr %939, ptr %944, align 8, !tbaa !35
  %945 = load ptr, ptr %7, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %945, i32 0, i32 4
  %947 = getelementptr inbounds %struct.UT_hash_handle, ptr %946, i32 0, i32 0
  %948 = load ptr, ptr %947, align 8, !tbaa !17
  %949 = getelementptr inbounds %struct.UT_hash_table, ptr %948, i32 0, i32 1
  store i32 32, ptr %949, align 8, !tbaa !20
  %950 = load ptr, ptr %7, align 8, !tbaa !5
  %951 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %950, i32 0, i32 4
  %952 = getelementptr inbounds %struct.UT_hash_handle, ptr %951, i32 0, i32 0
  %953 = load ptr, ptr %952, align 8, !tbaa !17
  %954 = getelementptr inbounds %struct.UT_hash_table, ptr %953, i32 0, i32 2
  store i32 5, ptr %954, align 4, !tbaa !36
  %955 = load ptr, ptr %7, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %955, i32 0, i32 4
  %957 = load ptr, ptr %7, align 8, !tbaa !5
  %958 = ptrtoint ptr %956 to i64
  %959 = ptrtoint ptr %957 to i64
  %960 = sub i64 %958, %959
  %961 = load ptr, ptr %7, align 8, !tbaa !5
  %962 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %961, i32 0, i32 4
  %963 = getelementptr inbounds %struct.UT_hash_handle, ptr %962, i32 0, i32 0
  %964 = load ptr, ptr %963, align 8, !tbaa !17
  %965 = getelementptr inbounds %struct.UT_hash_table, ptr %964, i32 0, i32 5
  store i64 %960, ptr %965, align 8, !tbaa !26
  %966 = call noalias ptr @malloc(i64 noundef 512) #10
  %967 = load ptr, ptr %7, align 8, !tbaa !5
  %968 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %967, i32 0, i32 4
  %969 = getelementptr inbounds %struct.UT_hash_handle, ptr %968, i32 0, i32 0
  %970 = load ptr, ptr %969, align 8, !tbaa !17
  %971 = getelementptr inbounds %struct.UT_hash_table, ptr %970, i32 0, i32 0
  store ptr %966, ptr %971, align 8, !tbaa !23
  %972 = load ptr, ptr %7, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %972, i32 0, i32 4
  %974 = getelementptr inbounds %struct.UT_hash_handle, ptr %973, i32 0, i32 0
  %975 = load ptr, ptr %974, align 8, !tbaa !17
  %976 = getelementptr inbounds %struct.UT_hash_table, ptr %975, i32 0, i32 10
  store i32 -1609490463, ptr %976, align 8, !tbaa !37
  %977 = load ptr, ptr %7, align 8, !tbaa !5
  %978 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %977, i32 0, i32 4
  %979 = getelementptr inbounds %struct.UT_hash_handle, ptr %978, i32 0, i32 0
  %980 = load ptr, ptr %979, align 8, !tbaa !17
  %981 = getelementptr inbounds %struct.UT_hash_table, ptr %980, i32 0, i32 0
  %982 = load ptr, ptr %981, align 8, !tbaa !23
  %983 = icmp ne ptr %982, null
  br i1 %983, label %985, label %984

984:                                              ; preds = %933
  call void @exit(i32 noundef -1) #11
  unreachable

985:                                              ; preds = %933
  %986 = load ptr, ptr %7, align 8, !tbaa !5
  %987 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %986, i32 0, i32 4
  %988 = getelementptr inbounds %struct.UT_hash_handle, ptr %987, i32 0, i32 0
  %989 = load ptr, ptr %988, align 8, !tbaa !17
  %990 = getelementptr inbounds %struct.UT_hash_table, ptr %989, i32 0, i32 0
  %991 = load ptr, ptr %990, align 8, !tbaa !23
  call void @llvm.memset.p0.i64(ptr align 8 %991, i8 0, i64 512, i1 false)
  br label %992

992:                                              ; preds = %985
  br label %993

993:                                              ; preds = %992
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  %996 = load ptr, ptr %7, align 8, !tbaa !5
  %997 = load ptr, ptr %4, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %997, i32 0, i32 2
  store ptr %996, ptr %998, align 8, !tbaa !16
  br label %1055

999:                                              ; preds = %898
  %1000 = load ptr, ptr %4, align 8, !tbaa !5
  %1001 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1000, i32 0, i32 2
  %1002 = load ptr, ptr %1001, align 8, !tbaa !16
  %1003 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1002, i32 0, i32 4
  %1004 = getelementptr inbounds %struct.UT_hash_handle, ptr %1003, i32 0, i32 0
  %1005 = load ptr, ptr %1004, align 8, !tbaa !17
  %1006 = load ptr, ptr %7, align 8, !tbaa !5
  %1007 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1006, i32 0, i32 4
  %1008 = getelementptr inbounds %struct.UT_hash_handle, ptr %1007, i32 0, i32 0
  store ptr %1005, ptr %1008, align 8, !tbaa !17
  br label %1009

1009:                                             ; preds = %999
  %1010 = load ptr, ptr %7, align 8, !tbaa !5
  %1011 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1010, i32 0, i32 4
  %1012 = getelementptr inbounds %struct.UT_hash_handle, ptr %1011, i32 0, i32 2
  store ptr null, ptr %1012, align 8, !tbaa !33
  %1013 = load ptr, ptr %4, align 8, !tbaa !5
  %1014 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1013, i32 0, i32 2
  %1015 = load ptr, ptr %1014, align 8, !tbaa !16
  %1016 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1015, i32 0, i32 4
  %1017 = getelementptr inbounds %struct.UT_hash_handle, ptr %1016, i32 0, i32 0
  %1018 = load ptr, ptr %1017, align 8, !tbaa !17
  %1019 = getelementptr inbounds %struct.UT_hash_table, ptr %1018, i32 0, i32 4
  %1020 = load ptr, ptr %1019, align 8, !tbaa !35
  %1021 = load ptr, ptr %4, align 8, !tbaa !5
  %1022 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1021, i32 0, i32 2
  %1023 = load ptr, ptr %1022, align 8, !tbaa !16
  %1024 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1023, i32 0, i32 4
  %1025 = getelementptr inbounds %struct.UT_hash_handle, ptr %1024, i32 0, i32 0
  %1026 = load ptr, ptr %1025, align 8, !tbaa !17
  %1027 = getelementptr inbounds %struct.UT_hash_table, ptr %1026, i32 0, i32 5
  %1028 = load i64, ptr %1027, align 8, !tbaa !26
  %1029 = sub i64 0, %1028
  %1030 = getelementptr inbounds i8, ptr %1020, i64 %1029
  %1031 = load ptr, ptr %7, align 8, !tbaa !5
  %1032 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1031, i32 0, i32 4
  %1033 = getelementptr inbounds %struct.UT_hash_handle, ptr %1032, i32 0, i32 1
  store ptr %1030, ptr %1033, align 8, !tbaa !34
  %1034 = load ptr, ptr %7, align 8, !tbaa !5
  %1035 = load ptr, ptr %4, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1035, i32 0, i32 2
  %1037 = load ptr, ptr %1036, align 8, !tbaa !16
  %1038 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1037, i32 0, i32 4
  %1039 = getelementptr inbounds %struct.UT_hash_handle, ptr %1038, i32 0, i32 0
  %1040 = load ptr, ptr %1039, align 8, !tbaa !17
  %1041 = getelementptr inbounds %struct.UT_hash_table, ptr %1040, i32 0, i32 4
  %1042 = load ptr, ptr %1041, align 8, !tbaa !35
  %1043 = getelementptr inbounds %struct.UT_hash_handle, ptr %1042, i32 0, i32 2
  store ptr %1034, ptr %1043, align 8, !tbaa !38
  %1044 = load ptr, ptr %7, align 8, !tbaa !5
  %1045 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1044, i32 0, i32 4
  %1046 = load ptr, ptr %4, align 8, !tbaa !5
  %1047 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1046, i32 0, i32 2
  %1048 = load ptr, ptr %1047, align 8, !tbaa !16
  %1049 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1048, i32 0, i32 4
  %1050 = getelementptr inbounds %struct.UT_hash_handle, ptr %1049, i32 0, i32 0
  %1051 = load ptr, ptr %1050, align 8, !tbaa !17
  %1052 = getelementptr inbounds %struct.UT_hash_table, ptr %1051, i32 0, i32 4
  store ptr %1045, ptr %1052, align 8, !tbaa !35
  br label %1053

1053:                                             ; preds = %1009
  br label %1054

1054:                                             ; preds = %1053
  br label %1055

1055:                                             ; preds = %1054, %995
  br label %1056

1056:                                             ; preds = %1055
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #8
  %1057 = load ptr, ptr %4, align 8, !tbaa !5
  %1058 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1057, i32 0, i32 2
  %1059 = load ptr, ptr %1058, align 8, !tbaa !16
  %1060 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1059, i32 0, i32 4
  %1061 = getelementptr inbounds %struct.UT_hash_handle, ptr %1060, i32 0, i32 0
  %1062 = load ptr, ptr %1061, align 8, !tbaa !17
  %1063 = getelementptr inbounds %struct.UT_hash_table, ptr %1062, i32 0, i32 3
  %1064 = load i32, ptr %1063, align 8, !tbaa !39
  %1065 = add i32 %1064, 1
  store i32 %1065, ptr %1063, align 8, !tbaa !39
  br label %1066

1066:                                             ; preds = %1056
  %1067 = load i32, ptr %15, align 4, !tbaa !9
  %1068 = load ptr, ptr %4, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1068, i32 0, i32 2
  %1070 = load ptr, ptr %1069, align 8, !tbaa !16
  %1071 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1070, i32 0, i32 4
  %1072 = getelementptr inbounds %struct.UT_hash_handle, ptr %1071, i32 0, i32 0
  %1073 = load ptr, ptr %1072, align 8, !tbaa !17
  %1074 = getelementptr inbounds %struct.UT_hash_table, ptr %1073, i32 0, i32 1
  %1075 = load i32, ptr %1074, align 8, !tbaa !20
  %1076 = sub i32 %1075, 1
  %1077 = and i32 %1067, %1076
  store i32 %1077, ptr %20, align 4, !tbaa !9
  br label %1078

1078:                                             ; preds = %1066
  br label %1079

1079:                                             ; preds = %1078
  br label %1080

1080:                                             ; preds = %1079
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #8
  %1081 = load ptr, ptr %4, align 8, !tbaa !5
  %1082 = getelementptr inbounds %struct.otfcc_SFNTBuilder, ptr %1081, i32 0, i32 2
  %1083 = load ptr, ptr %1082, align 8, !tbaa !16
  %1084 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1083, i32 0, i32 4
  %1085 = getelementptr inbounds %struct.UT_hash_handle, ptr %1084, i32 0, i32 0
  %1086 = load ptr, ptr %1085, align 8, !tbaa !17
  %1087 = getelementptr inbounds %struct.UT_hash_table, ptr %1086, i32 0, i32 0
  %1088 = load ptr, ptr %1087, align 8, !tbaa !23
  %1089 = load i32, ptr %20, align 4, !tbaa !9
  %1090 = zext i32 %1089 to i64
  %1091 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1088, i64 %1090
  store ptr %1091, ptr %21, align 8, !tbaa !5
  %1092 = load ptr, ptr %21, align 8, !tbaa !5
  %1093 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1092, i32 0, i32 1
  %1094 = load i32, ptr %1093, align 8, !tbaa !40
  %1095 = add i32 %1094, 1
  store i32 %1095, ptr %1093, align 8, !tbaa !40
  %1096 = load ptr, ptr %21, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1096, i32 0, i32 0
  %1098 = load ptr, ptr %1097, align 8, !tbaa !24
  %1099 = load ptr, ptr %7, align 8, !tbaa !5
  %1100 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1099, i32 0, i32 4
  %1101 = getelementptr inbounds %struct.UT_hash_handle, ptr %1100, i32 0, i32 4
  store ptr %1098, ptr %1101, align 8, !tbaa !30
  %1102 = load ptr, ptr %7, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1102, i32 0, i32 4
  %1104 = getelementptr inbounds %struct.UT_hash_handle, ptr %1103, i32 0, i32 3
  store ptr null, ptr %1104, align 8, !tbaa !41
  %1105 = load ptr, ptr %21, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1105, i32 0, i32 0
  %1107 = load ptr, ptr %1106, align 8, !tbaa !24
  %1108 = icmp ne ptr %1107, null
  br i1 %1108, label %1109, label %1116

1109:                                             ; preds = %1080
  %1110 = load ptr, ptr %7, align 8, !tbaa !5
  %1111 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1110, i32 0, i32 4
  %1112 = load ptr, ptr %21, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1112, i32 0, i32 0
  %1114 = load ptr, ptr %1113, align 8, !tbaa !24
  %1115 = getelementptr inbounds %struct.UT_hash_handle, ptr %1114, i32 0, i32 3
  store ptr %1111, ptr %1115, align 8, !tbaa !42
  br label %1116

1116:                                             ; preds = %1109, %1080
  %1117 = load ptr, ptr %7, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1117, i32 0, i32 4
  %1119 = load ptr, ptr %21, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1119, i32 0, i32 0
  store ptr %1118, ptr %1120, align 8, !tbaa !24
  %1121 = load ptr, ptr %21, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1121, i32 0, i32 1
  %1123 = load i32, ptr %1122, align 8, !tbaa !40
  %1124 = load ptr, ptr %21, align 8, !tbaa !5
  %1125 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1124, i32 0, i32 2
  %1126 = load i32, ptr %1125, align 4, !tbaa !43
  %1127 = add i32 %1126, 1
  %1128 = mul i32 %1127, 10
  %1129 = icmp uge i32 %1123, %1128
  br i1 %1129, label %1130, label %1386

1130:                                             ; preds = %1116
  %1131 = load ptr, ptr %7, align 8, !tbaa !5
  %1132 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1131, i32 0, i32 4
  %1133 = getelementptr inbounds %struct.UT_hash_handle, ptr %1132, i32 0, i32 0
  %1134 = load ptr, ptr %1133, align 8, !tbaa !17
  %1135 = getelementptr inbounds %struct.UT_hash_table, ptr %1134, i32 0, i32 9
  %1136 = load i32, ptr %1135, align 4, !tbaa !44
  %1137 = icmp ne i32 %1136, 0
  br i1 %1137, label %1386, label %1138

1138:                                             ; preds = %1130
  br label %1139

1139:                                             ; preds = %1138
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #8
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #8
  %1140 = load ptr, ptr %7, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1140, i32 0, i32 4
  %1142 = getelementptr inbounds %struct.UT_hash_handle, ptr %1141, i32 0, i32 0
  %1143 = load ptr, ptr %1142, align 8, !tbaa !17
  %1144 = getelementptr inbounds %struct.UT_hash_table, ptr %1143, i32 0, i32 1
  %1145 = load i32, ptr %1144, align 8, !tbaa !20
  %1146 = zext i32 %1145 to i64
  %1147 = mul i64 2, %1146
  %1148 = mul i64 %1147, 16
  %1149 = call noalias ptr @malloc(i64 noundef %1148) #10
  store ptr %1149, ptr %26, align 8, !tbaa !5
  %1150 = load ptr, ptr %26, align 8, !tbaa !5
  %1151 = icmp ne ptr %1150, null
  br i1 %1151, label %1153, label %1152

1152:                                             ; preds = %1139
  call void @exit(i32 noundef -1) #11
  unreachable

1153:                                             ; preds = %1139
  %1154 = load ptr, ptr %26, align 8, !tbaa !5
  %1155 = load ptr, ptr %7, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1155, i32 0, i32 4
  %1157 = getelementptr inbounds %struct.UT_hash_handle, ptr %1156, i32 0, i32 0
  %1158 = load ptr, ptr %1157, align 8, !tbaa !17
  %1159 = getelementptr inbounds %struct.UT_hash_table, ptr %1158, i32 0, i32 1
  %1160 = load i32, ptr %1159, align 8, !tbaa !20
  %1161 = zext i32 %1160 to i64
  %1162 = mul i64 2, %1161
  %1163 = mul i64 %1162, 16
  call void @llvm.memset.p0.i64(ptr align 8 %1154, i8 0, i64 %1163, i1 false)
  %1164 = load ptr, ptr %7, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1164, i32 0, i32 4
  %1166 = getelementptr inbounds %struct.UT_hash_handle, ptr %1165, i32 0, i32 0
  %1167 = load ptr, ptr %1166, align 8, !tbaa !17
  %1168 = getelementptr inbounds %struct.UT_hash_table, ptr %1167, i32 0, i32 3
  %1169 = load i32, ptr %1168, align 8, !tbaa !39
  %1170 = load ptr, ptr %7, align 8, !tbaa !5
  %1171 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1170, i32 0, i32 4
  %1172 = getelementptr inbounds %struct.UT_hash_handle, ptr %1171, i32 0, i32 0
  %1173 = load ptr, ptr %1172, align 8, !tbaa !17
  %1174 = getelementptr inbounds %struct.UT_hash_table, ptr %1173, i32 0, i32 2
  %1175 = load i32, ptr %1174, align 4, !tbaa !36
  %1176 = add i32 %1175, 1
  %1177 = lshr i32 %1169, %1176
  %1178 = load ptr, ptr %7, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1178, i32 0, i32 4
  %1180 = getelementptr inbounds %struct.UT_hash_handle, ptr %1179, i32 0, i32 0
  %1181 = load ptr, ptr %1180, align 8, !tbaa !17
  %1182 = getelementptr inbounds %struct.UT_hash_table, ptr %1181, i32 0, i32 3
  %1183 = load i32, ptr %1182, align 8, !tbaa !39
  %1184 = load ptr, ptr %7, align 8, !tbaa !5
  %1185 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1184, i32 0, i32 4
  %1186 = getelementptr inbounds %struct.UT_hash_handle, ptr %1185, i32 0, i32 0
  %1187 = load ptr, ptr %1186, align 8, !tbaa !17
  %1188 = getelementptr inbounds %struct.UT_hash_table, ptr %1187, i32 0, i32 1
  %1189 = load i32, ptr %1188, align 8, !tbaa !20
  %1190 = mul i32 %1189, 2
  %1191 = sub i32 %1190, 1
  %1192 = and i32 %1183, %1191
  %1193 = icmp ne i32 %1192, 0
  %1194 = zext i1 %1193 to i64
  %1195 = select i1 %1193, i32 1, i32 0
  %1196 = add i32 %1177, %1195
  %1197 = load ptr, ptr %7, align 8, !tbaa !5
  %1198 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1197, i32 0, i32 4
  %1199 = getelementptr inbounds %struct.UT_hash_handle, ptr %1198, i32 0, i32 0
  %1200 = load ptr, ptr %1199, align 8, !tbaa !17
  %1201 = getelementptr inbounds %struct.UT_hash_table, ptr %1200, i32 0, i32 6
  store i32 %1196, ptr %1201, align 8, !tbaa !45
  %1202 = load ptr, ptr %7, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1202, i32 0, i32 4
  %1204 = getelementptr inbounds %struct.UT_hash_handle, ptr %1203, i32 0, i32 0
  %1205 = load ptr, ptr %1204, align 8, !tbaa !17
  %1206 = getelementptr inbounds %struct.UT_hash_table, ptr %1205, i32 0, i32 7
  store i32 0, ptr %1206, align 4, !tbaa !46
  store i32 0, ptr %23, align 4, !tbaa !9
  br label %1207

1207:                                             ; preds = %1309, %1153
  %1208 = load i32, ptr %23, align 4, !tbaa !9
  %1209 = load ptr, ptr %7, align 8, !tbaa !5
  %1210 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1209, i32 0, i32 4
  %1211 = getelementptr inbounds %struct.UT_hash_handle, ptr %1210, i32 0, i32 0
  %1212 = load ptr, ptr %1211, align 8, !tbaa !17
  %1213 = getelementptr inbounds %struct.UT_hash_table, ptr %1212, i32 0, i32 1
  %1214 = load i32, ptr %1213, align 8, !tbaa !20
  %1215 = icmp ult i32 %1208, %1214
  br i1 %1215, label %1216, label %1312

1216:                                             ; preds = %1207
  %1217 = load ptr, ptr %7, align 8, !tbaa !5
  %1218 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1217, i32 0, i32 4
  %1219 = getelementptr inbounds %struct.UT_hash_handle, ptr %1218, i32 0, i32 0
  %1220 = load ptr, ptr %1219, align 8, !tbaa !17
  %1221 = getelementptr inbounds %struct.UT_hash_table, ptr %1220, i32 0, i32 0
  %1222 = load ptr, ptr %1221, align 8, !tbaa !23
  %1223 = load i32, ptr %23, align 4, !tbaa !9
  %1224 = zext i32 %1223 to i64
  %1225 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1222, i64 %1224
  %1226 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1225, i32 0, i32 0
  %1227 = load ptr, ptr %1226, align 8, !tbaa !24
  store ptr %1227, ptr %24, align 8, !tbaa !5
  br label %1228

1228:                                             ; preds = %1303, %1216
  %1229 = load ptr, ptr %24, align 8, !tbaa !5
  %1230 = icmp ne ptr %1229, null
  br i1 %1230, label %1231, label %1308

1231:                                             ; preds = %1228
  %1232 = load ptr, ptr %24, align 8, !tbaa !5
  %1233 = getelementptr inbounds %struct.UT_hash_handle, ptr %1232, i32 0, i32 4
  %1234 = load ptr, ptr %1233, align 8, !tbaa !47
  store ptr %1234, ptr %25, align 8, !tbaa !5
  br label %1235

1235:                                             ; preds = %1231
  %1236 = load ptr, ptr %24, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.UT_hash_handle, ptr %1236, i32 0, i32 7
  %1238 = load i32, ptr %1237, align 4, !tbaa !48
  %1239 = load ptr, ptr %7, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1239, i32 0, i32 4
  %1241 = getelementptr inbounds %struct.UT_hash_handle, ptr %1240, i32 0, i32 0
  %1242 = load ptr, ptr %1241, align 8, !tbaa !17
  %1243 = getelementptr inbounds %struct.UT_hash_table, ptr %1242, i32 0, i32 1
  %1244 = load i32, ptr %1243, align 8, !tbaa !20
  %1245 = mul i32 %1244, 2
  %1246 = sub i32 %1245, 1
  %1247 = and i32 %1238, %1246
  store i32 %1247, ptr %22, align 4, !tbaa !9
  br label %1248

1248:                                             ; preds = %1235
  br label %1249

1249:                                             ; preds = %1248
  %1250 = load ptr, ptr %26, align 8, !tbaa !5
  %1251 = load i32, ptr %22, align 4, !tbaa !9
  %1252 = zext i32 %1251 to i64
  %1253 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1250, i64 %1252
  store ptr %1253, ptr %27, align 8, !tbaa !5
  %1254 = load ptr, ptr %27, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1254, i32 0, i32 1
  %1256 = load i32, ptr %1255, align 8, !tbaa !40
  %1257 = add i32 %1256, 1
  store i32 %1257, ptr %1255, align 8, !tbaa !40
  %1258 = load ptr, ptr %7, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1258, i32 0, i32 4
  %1260 = getelementptr inbounds %struct.UT_hash_handle, ptr %1259, i32 0, i32 0
  %1261 = load ptr, ptr %1260, align 8, !tbaa !17
  %1262 = getelementptr inbounds %struct.UT_hash_table, ptr %1261, i32 0, i32 6
  %1263 = load i32, ptr %1262, align 8, !tbaa !45
  %1264 = icmp ugt i32 %1257, %1263
  br i1 %1264, label %1265, label %1285

1265:                                             ; preds = %1249
  %1266 = load ptr, ptr %7, align 8, !tbaa !5
  %1267 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1266, i32 0, i32 4
  %1268 = getelementptr inbounds %struct.UT_hash_handle, ptr %1267, i32 0, i32 0
  %1269 = load ptr, ptr %1268, align 8, !tbaa !17
  %1270 = getelementptr inbounds %struct.UT_hash_table, ptr %1269, i32 0, i32 7
  %1271 = load i32, ptr %1270, align 4, !tbaa !46
  %1272 = add i32 %1271, 1
  store i32 %1272, ptr %1270, align 4, !tbaa !46
  %1273 = load ptr, ptr %27, align 8, !tbaa !5
  %1274 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1273, i32 0, i32 1
  %1275 = load i32, ptr %1274, align 8, !tbaa !40
  %1276 = load ptr, ptr %7, align 8, !tbaa !5
  %1277 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1276, i32 0, i32 4
  %1278 = getelementptr inbounds %struct.UT_hash_handle, ptr %1277, i32 0, i32 0
  %1279 = load ptr, ptr %1278, align 8, !tbaa !17
  %1280 = getelementptr inbounds %struct.UT_hash_table, ptr %1279, i32 0, i32 6
  %1281 = load i32, ptr %1280, align 8, !tbaa !45
  %1282 = udiv i32 %1275, %1281
  %1283 = load ptr, ptr %27, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1283, i32 0, i32 2
  store i32 %1282, ptr %1284, align 4, !tbaa !43
  br label %1285

1285:                                             ; preds = %1265, %1249
  %1286 = load ptr, ptr %24, align 8, !tbaa !5
  %1287 = getelementptr inbounds %struct.UT_hash_handle, ptr %1286, i32 0, i32 3
  store ptr null, ptr %1287, align 8, !tbaa !42
  %1288 = load ptr, ptr %27, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1288, i32 0, i32 0
  %1290 = load ptr, ptr %1289, align 8, !tbaa !24
  %1291 = load ptr, ptr %24, align 8, !tbaa !5
  %1292 = getelementptr inbounds %struct.UT_hash_handle, ptr %1291, i32 0, i32 4
  store ptr %1290, ptr %1292, align 8, !tbaa !47
  %1293 = load ptr, ptr %27, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1293, i32 0, i32 0
  %1295 = load ptr, ptr %1294, align 8, !tbaa !24
  %1296 = icmp ne ptr %1295, null
  br i1 %1296, label %1297, label %1303

1297:                                             ; preds = %1285
  %1298 = load ptr, ptr %24, align 8, !tbaa !5
  %1299 = load ptr, ptr %27, align 8, !tbaa !5
  %1300 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1299, i32 0, i32 0
  %1301 = load ptr, ptr %1300, align 8, !tbaa !24
  %1302 = getelementptr inbounds %struct.UT_hash_handle, ptr %1301, i32 0, i32 3
  store ptr %1298, ptr %1302, align 8, !tbaa !42
  br label %1303

1303:                                             ; preds = %1297, %1285
  %1304 = load ptr, ptr %24, align 8, !tbaa !5
  %1305 = load ptr, ptr %27, align 8, !tbaa !5
  %1306 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1305, i32 0, i32 0
  store ptr %1304, ptr %1306, align 8, !tbaa !24
  %1307 = load ptr, ptr %25, align 8, !tbaa !5
  store ptr %1307, ptr %24, align 8, !tbaa !5
  br label %1228, !llvm.loop !49

1308:                                             ; preds = %1228
  br label %1309

1309:                                             ; preds = %1308
  %1310 = load i32, ptr %23, align 4, !tbaa !9
  %1311 = add i32 %1310, 1
  store i32 %1311, ptr %23, align 4, !tbaa !9
  br label %1207, !llvm.loop !50

1312:                                             ; preds = %1207
  %1313 = load ptr, ptr %7, align 8, !tbaa !5
  %1314 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1313, i32 0, i32 4
  %1315 = getelementptr inbounds %struct.UT_hash_handle, ptr %1314, i32 0, i32 0
  %1316 = load ptr, ptr %1315, align 8, !tbaa !17
  %1317 = getelementptr inbounds %struct.UT_hash_table, ptr %1316, i32 0, i32 0
  %1318 = load ptr, ptr %1317, align 8, !tbaa !23
  call void @free(ptr noundef %1318) #8
  %1319 = load ptr, ptr %7, align 8, !tbaa !5
  %1320 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1319, i32 0, i32 4
  %1321 = getelementptr inbounds %struct.UT_hash_handle, ptr %1320, i32 0, i32 0
  %1322 = load ptr, ptr %1321, align 8, !tbaa !17
  %1323 = getelementptr inbounds %struct.UT_hash_table, ptr %1322, i32 0, i32 1
  %1324 = load i32, ptr %1323, align 8, !tbaa !20
  %1325 = mul i32 %1324, 2
  store i32 %1325, ptr %1323, align 8, !tbaa !20
  %1326 = load ptr, ptr %7, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1326, i32 0, i32 4
  %1328 = getelementptr inbounds %struct.UT_hash_handle, ptr %1327, i32 0, i32 0
  %1329 = load ptr, ptr %1328, align 8, !tbaa !17
  %1330 = getelementptr inbounds %struct.UT_hash_table, ptr %1329, i32 0, i32 2
  %1331 = load i32, ptr %1330, align 4, !tbaa !36
  %1332 = add i32 %1331, 1
  store i32 %1332, ptr %1330, align 4, !tbaa !36
  %1333 = load ptr, ptr %26, align 8, !tbaa !5
  %1334 = load ptr, ptr %7, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1334, i32 0, i32 4
  %1336 = getelementptr inbounds %struct.UT_hash_handle, ptr %1335, i32 0, i32 0
  %1337 = load ptr, ptr %1336, align 8, !tbaa !17
  %1338 = getelementptr inbounds %struct.UT_hash_table, ptr %1337, i32 0, i32 0
  store ptr %1333, ptr %1338, align 8, !tbaa !23
  %1339 = load ptr, ptr %7, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1339, i32 0, i32 4
  %1341 = getelementptr inbounds %struct.UT_hash_handle, ptr %1340, i32 0, i32 0
  %1342 = load ptr, ptr %1341, align 8, !tbaa !17
  %1343 = getelementptr inbounds %struct.UT_hash_table, ptr %1342, i32 0, i32 7
  %1344 = load i32, ptr %1343, align 4, !tbaa !46
  %1345 = load ptr, ptr %7, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1345, i32 0, i32 4
  %1347 = getelementptr inbounds %struct.UT_hash_handle, ptr %1346, i32 0, i32 0
  %1348 = load ptr, ptr %1347, align 8, !tbaa !17
  %1349 = getelementptr inbounds %struct.UT_hash_table, ptr %1348, i32 0, i32 3
  %1350 = load i32, ptr %1349, align 8, !tbaa !39
  %1351 = lshr i32 %1350, 1
  %1352 = icmp ugt i32 %1344, %1351
  br i1 %1352, label %1353, label %1361

1353:                                             ; preds = %1312
  %1354 = load ptr, ptr %7, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1354, i32 0, i32 4
  %1356 = getelementptr inbounds %struct.UT_hash_handle, ptr %1355, i32 0, i32 0
  %1357 = load ptr, ptr %1356, align 8, !tbaa !17
  %1358 = getelementptr inbounds %struct.UT_hash_table, ptr %1357, i32 0, i32 8
  %1359 = load i32, ptr %1358, align 8, !tbaa !51
  %1360 = add i32 %1359, 1
  br label %1362

1361:                                             ; preds = %1312
  br label %1362

1362:                                             ; preds = %1361, %1353
  %1363 = phi i32 [ %1360, %1353 ], [ 0, %1361 ]
  %1364 = load ptr, ptr %7, align 8, !tbaa !5
  %1365 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1364, i32 0, i32 4
  %1366 = getelementptr inbounds %struct.UT_hash_handle, ptr %1365, i32 0, i32 0
  %1367 = load ptr, ptr %1366, align 8, !tbaa !17
  %1368 = getelementptr inbounds %struct.UT_hash_table, ptr %1367, i32 0, i32 8
  store i32 %1363, ptr %1368, align 8, !tbaa !51
  %1369 = load ptr, ptr %7, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1369, i32 0, i32 4
  %1371 = getelementptr inbounds %struct.UT_hash_handle, ptr %1370, i32 0, i32 0
  %1372 = load ptr, ptr %1371, align 8, !tbaa !17
  %1373 = getelementptr inbounds %struct.UT_hash_table, ptr %1372, i32 0, i32 8
  %1374 = load i32, ptr %1373, align 8, !tbaa !51
  %1375 = icmp ugt i32 %1374, 1
  br i1 %1375, label %1376, label %1382

1376:                                             ; preds = %1362
  %1377 = load ptr, ptr %7, align 8, !tbaa !5
  %1378 = getelementptr inbounds %struct.otfcc_SFNTTableEntry, ptr %1377, i32 0, i32 4
  %1379 = getelementptr inbounds %struct.UT_hash_handle, ptr %1378, i32 0, i32 0
  %1380 = load ptr, ptr %1379, align 8, !tbaa !17
  %1381 = getelementptr inbounds %struct.UT_hash_table, ptr %1380, i32 0, i32 9
  store i32 1, ptr %1381, align 4, !tbaa !44
  br label %1382

1382:                                             ; preds = %1376, %1362
  br label %1383

1383:                                             ; preds = %1382
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #8
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #8
  br label %1384

1384:                                             ; preds = %1383
  br label %1385

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385, %1130, %1116
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #8
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

1388:                                             ; preds = %1387
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #8
  br label %1389

1389:                                             ; preds = %1388
  br label %1390

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #8
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

1394:                                             ; preds = %1393
  %1395 = load ptr, ptr %8, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.otfcc_Options, ptr %1395, i32 0, i32 24
  %1397 = load ptr, ptr %1396, align 8, !tbaa !52
  %1398 = getelementptr inbounds %struct.otfcc_ILogger, ptr %1397, i32 0, i32 6
  %1399 = load ptr, ptr %1398, align 8, !tbaa !55
  %1400 = load ptr, ptr %8, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.otfcc_Options, ptr %1400, i32 0, i32 24
  %1402 = load ptr, ptr %1401, align 8, !tbaa !52
  %1403 = call ptr @sdsempty()
  %1404 = load i32, ptr %5, align 4, !tbaa !9
  %1405 = lshr i32 %1404, 24
  %1406 = and i32 %1405, 255
  %1407 = load i32, ptr %5, align 4, !tbaa !9
  %1408 = lshr i32 %1407, 16
  %1409 = and i32 %1408, 255
  %1410 = load i32, ptr %5, align 4, !tbaa !9
  %1411 = lshr i32 %1410, 8
  %1412 = and i32 %1411, 255
  %1413 = load i32, ptr %5, align 4, !tbaa !9
  %1414 = and i32 %1413, 255
  %1415 = call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %1403, ptr noundef @.str, i32 noundef %1406, i32 noundef %1409, i32 noundef %1412, i32 noundef %1414)
  call void %1399(ptr noundef %1402, i8 noundef zeroext 10, i32 noundef 3, ptr noundef %1415)
  br label %1418

1416:                                             ; preds = %525
  %1417 = load ptr, ptr %6, align 8, !tbaa !5
  call void @buffree(ptr noundef %1417)
  br label %1418

1418:                                             ; preds = %1416, %1394
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #8
  call void @llvm.lifetime.end.p0(i64 8, ptr %7) #8
  br label %1419

1419:                                             ; preds = %1418, %33
  ret void
}

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

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

; Function Attrs: nounwind allocsize(0)
declare noalias ptr @malloc(i64 noundef) #5

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

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

declare ptr @sdscatprintf(ptr noundef, ptr noundef, ...) #2

declare ptr @sdsempty() #2

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
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 = { 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 #4 = { 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 #5 = { nounwind allocsize(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 #6 = { noreturn nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #7 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #8 = { nounwind }
attributes #9 = { nounwind willreturn memory(read) }
attributes #10 = { nounwind allocsize(0) }
attributes #11 = { noreturn nounwind }

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !6, i64 16}
!12 = !{!"", !10, i64 0, !10, i64 4, !6, i64 8, !6, i64 16}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!12, !6, i64 8}
!17 = !{!18, !6, i64 24}
!18 = !{!"", !10, i64 0, !10, i64 4, !10, i64 8, !6, i64 16, !19, i64 24}
!19 = !{!"UT_hash_handle", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !10, i64 48, !10, i64 52}
!20 = !{!21, !10, i64 8}
!21 = !{!"UT_hash_table", !6, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !6, i64 24, !22, i64 32, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56}
!22 = !{!"long", !7, i64 0}
!23 = !{!21, !6, i64 0}
!24 = !{!25, !6, i64 0}
!25 = !{!"UT_hash_bucket", !6, i64 0, !10, i64 8, !10, i64 12}
!26 = !{!21, !22, i64 32}
!27 = !{!18, !10, i64 76}
!28 = !{!18, !10, i64 72}
!29 = !{!18, !6, i64 64}
!30 = !{!18, !6, i64 56}
!31 = distinct !{!31, !15}
!32 = distinct !{!32, !15}
!33 = !{!18, !6, i64 40}
!34 = !{!18, !6, i64 32}
!35 = !{!21, !6, i64 24}
!36 = !{!21, !10, i64 12}
!37 = !{!21, !10, i64 56}
!38 = !{!19, !6, i64 16}
!39 = !{!21, !10, i64 16}
!40 = !{!25, !10, i64 8}
!41 = !{!18, !6, i64 48}
!42 = !{!19, !6, i64 24}
!43 = !{!25, !10, i64 12}
!44 = !{!21, !10, i64 52}
!45 = !{!21, !10, i64 40}
!46 = !{!21, !10, i64 44}
!47 = !{!19, !6, i64 32}
!48 = !{!19, !10, i64 52}
!49 = distinct !{!49, !15}
!50 = distinct !{!50, !15}
!51 = !{!21, !10, i64 48}
!52 = !{!53, !6, i64 32}
!53 = !{!"", !54, i64 0, !54, i64 1, !54, i64 2, !54, i64 3, !54, i64 4, !54, i64 5, !54, i64 6, !54, i64 7, !54, i64 8, !54, i64 9, !54, i64 10, !54, i64 11, !54, i64 12, !54, i64 13, !54, i64 14, !54, i64 15, !54, i64 16, !54, i64 17, !54, i64 18, !54, i64 19, !54, i64 20, !54, i64 21, !54, i64 22, !6, i64 24, !6, i64 32}
!54 = !{!"_Bool", !7, i64 0}
!55 = !{!56, !6, i64 48}
!56 = !{!"otfcc_ILogger", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !6, i64 48, !6, i64 56, !6, i64 64, !6, i64 72, !6, i64 80, !6, i64 88}


; 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.UT_hash_bucket = type { ptr, i32, i32 }

@.str = external hidden unnamed_addr constant [45 x i8], align 1

; Function Attrs: mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite)
declare void @free(ptr allocptr nocapture noundef) local_unnamed_addr #0

declare void @buffree(ptr noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @otfcc_SFNTBuilder_pushTable(ptr noundef %0, i32 noundef %1, ptr noundef %2) local_unnamed_addr #2 {
  %4 = alloca i32, align 4
  store i32 %1, ptr %4, align 4, !tbaa !5
  %5 = icmp ne ptr %0, null
  %6 = icmp ne ptr %2, null
  %or.cond = and i1 %5, %6
  %7 = lshr i32 %1, 24
  %8 = lshr i32 %1, 16
  %9 = lshr i32 %1, 8
  br i1 %or.cond, label %10, label %270

10:                                               ; preds = %3
  %11 = getelementptr inbounds i8, ptr %0, i64 16
  %12 = load ptr, ptr %11, align 8, !tbaa !9
  %13 = and i32 %1, -16777216
  %14 = and i32 %1, 16711680
  %15 = and i32 %1, 65280
  %16 = and i32 %1, 255
  %17 = add i32 %13, 17973517
  %18 = add i32 %17, %14
  %19 = add i32 %18, %15
  %20 = add i32 %19, %16
  %21 = xor i32 %20, 522093
  %22 = sub i32 -1622558010, %21
  %23 = shl i32 %21, 8
  %24 = xor i32 %22, %23
  %25 = add i32 %21, %24
  %26 = sub i32 -17973517, %25
  %27 = lshr i32 %24, 13
  %28 = xor i32 %26, %27
  %29 = add i32 %24, %28
  %30 = sub i32 %21, %29
  %31 = lshr i32 %28, 12
  %32 = xor i32 %30, %31
  %33 = add i32 %28, %32
  %34 = sub i32 %24, %33
  %35 = shl i32 %32, 16
  %36 = xor i32 %34, %35
  %37 = add i32 %32, %36
  %38 = sub i32 %28, %37
  %39 = lshr i32 %36, 5
  %40 = xor i32 %38, %39
  %41 = add i32 %36, %40
  %42 = sub i32 %32, %41
  %43 = lshr i32 %40, 3
  %44 = xor i32 %42, %43
  %45 = add i32 %40, %44
  %46 = sub i32 %36, %45
  %47 = shl i32 %44, 10
  %48 = xor i32 %46, %47
  %49 = add i32 %44, %48
  %50 = sub i32 %40, %49
  %51 = lshr i32 %48, 15
  %52 = xor i32 %50, %51
  %53 = getelementptr inbounds i8, ptr %0, i64 8
  %54 = load ptr, ptr %53, align 8, !tbaa !12
  %.not = icmp eq ptr %54, null
  br i1 %.not, label %.loopexit, label %55

55:                                               ; preds = %10
  %56 = getelementptr inbounds i8, ptr %54, i64 24
  %57 = load ptr, ptr %56, align 8, !tbaa !13
  %58 = getelementptr inbounds i8, ptr %57, i64 8
  %59 = load i32, ptr %58, align 8, !tbaa !16
  %60 = add i32 %59, -1
  %61 = and i32 %60, %52
  %62 = load ptr, ptr %57, align 8, !tbaa !19
  %63 = zext i32 %61 to i64
  %64 = getelementptr inbounds %struct.UT_hash_bucket, ptr %62, i64 %63
  %65 = load ptr, ptr %64, align 8, !tbaa !20
  %.not484 = icmp eq ptr %65, null
  br i1 %.not484, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %55
  %66 = getelementptr inbounds i8, ptr %57, i64 32
  %67 = load i64, ptr %66, align 8, !tbaa !22
  %68 = sub i64 0, %67
  %69 = getelementptr inbounds i8, ptr %65, i64 %68
  %70 = getelementptr inbounds i8, ptr %57, i64 32
  br label %71

71:                                               ; preds = %86, %.lr.ph
  %.1531 = phi ptr [ %69, %.lr.ph ], [ %89, %86 ]
  %72 = getelementptr inbounds i8, ptr %.1531, i64 76
  %73 = load i32, ptr %72, align 4, !tbaa !23
  %74 = icmp eq i32 %73, %52
  br i1 %74, label %75, label %83

75:                                               ; preds = %71
  %76 = getelementptr inbounds i8, ptr %.1531, i64 72
  %77 = load i32, ptr %76, align 8, !tbaa !24
  %78 = icmp eq i32 %77, 4
  br i1 %78, label %79, label %83

79:                                               ; preds = %75
  %80 = getelementptr inbounds i8, ptr %.1531, i64 64
  %81 = load ptr, ptr %80, align 8, !tbaa !25
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %81, ptr noundef nonnull dereferenceable(4) %4, i64 4)
  %82 = icmp eq i32 %bcmp, 0
  br i1 %82, label %269, label %83

83:                                               ; preds = %79, %75, %71
  %84 = getelementptr inbounds i8, ptr %.1531, i64 56
  %85 = load ptr, ptr %84, align 8, !tbaa !26
  %.not486 = icmp eq ptr %85, null
  br i1 %.not486, label %.loopexit, label %86

86:                                               ; preds = %83
  %87 = load i64, ptr %70, align 8, !tbaa !22
  %88 = sub i64 0, %87
  %89 = getelementptr inbounds i8, ptr %85, i64 %88
  br label %71, !llvm.loop !27

.loopexit:                                        ; preds = %83, %55, %10
  %90 = tail call ptr @createSegment(i32 noundef %1, ptr noundef nonnull %2)
  %91 = getelementptr inbounds i8, ptr %90, i64 3
  %92 = load i8, ptr %91, align 1, !tbaa !29
  %93 = zext i8 %92 to i32
  %94 = shl nuw i32 %93, 24
  %95 = getelementptr inbounds i8, ptr %90, i64 2
  %96 = load i8, ptr %95, align 1, !tbaa !29
  %97 = zext i8 %96 to i32
  %98 = shl nuw nsw i32 %97, 16
  %99 = getelementptr inbounds i8, ptr %90, i64 1
  %100 = load i8, ptr %99, align 1, !tbaa !29
  %101 = zext i8 %100 to i32
  %102 = shl nuw nsw i32 %101, 8
  %103 = load i8, ptr %90, align 1, !tbaa !29
  %104 = zext i8 %103 to i32
  %105 = add i32 %94, 17973517
  %106 = add i32 %105, %98
  %107 = add i32 %106, %102
  %108 = add i32 %107, %104
  %109 = xor i32 %108, 522093
  %110 = sub i32 -1622558010, %109
  %111 = shl i32 %109, 8
  %112 = xor i32 %110, %111
  %113 = add i32 %109, %112
  %114 = sub i32 -17973517, %113
  %115 = lshr i32 %112, 13
  %116 = xor i32 %114, %115
  %117 = add i32 %112, %116
  %118 = sub i32 %109, %117
  %119 = lshr i32 %116, 12
  %120 = xor i32 %118, %119
  %121 = add i32 %116, %120
  %122 = sub i32 %112, %121
  %123 = shl i32 %120, 16
  %124 = xor i32 %122, %123
  %125 = add i32 %120, %124
  %126 = sub i32 %116, %125
  %127 = lshr i32 %124, 5
  %128 = xor i32 %126, %127
  %129 = add i32 %124, %128
  %130 = sub i32 %120, %129
  %131 = lshr i32 %128, 3
  %132 = xor i32 %130, %131
  %133 = add i32 %128, %132
  %134 = sub i32 %124, %133
  %135 = shl i32 %132, 10
  %136 = xor i32 %134, %135
  %137 = add i32 %132, %136
  %138 = sub i32 %128, %137
  %139 = lshr i32 %136, 15
  %140 = xor i32 %138, %139
  %141 = getelementptr inbounds i8, ptr %90, i64 24
  %142 = getelementptr inbounds i8, ptr %90, i64 76
  store i32 %140, ptr %142, align 4, !tbaa !23
  %143 = getelementptr inbounds i8, ptr %90, i64 64
  store ptr %90, ptr %143, align 8, !tbaa !25
  %144 = getelementptr inbounds i8, ptr %90, i64 72
  store i32 4, ptr %144, align 8, !tbaa !24
  %145 = load ptr, ptr %53, align 8, !tbaa !12
  %.not488 = icmp eq ptr %145, null
  br i1 %.not488, label %146, label %157

146:                                              ; preds = %.loopexit
  %147 = getelementptr inbounds i8, ptr %90, i64 32
  %calloc548 = tail call dereferenceable_or_null(64) ptr @calloc(i64 1, i64 64)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %147, i8 0, i64 16, i1 false)
  store ptr %calloc548, ptr %141, align 8, !tbaa !13
  %.not489 = icmp eq ptr %calloc548, null
  br i1 %.not489, label %148, label %149

148:                                              ; preds = %146
  tail call void @exit(i32 noundef -1) #7
  unreachable

149:                                              ; preds = %146
  %150 = getelementptr inbounds i8, ptr %calloc548, i64 24
  store ptr %141, ptr %150, align 8, !tbaa !30
  %151 = getelementptr inbounds i8, ptr %calloc548, i64 8
  store i32 32, ptr %151, align 8, !tbaa !16
  %152 = getelementptr inbounds i8, ptr %calloc548, i64 12
  store i32 5, ptr %152, align 4, !tbaa !31
  %153 = getelementptr inbounds i8, ptr %calloc548, i64 32
  store i64 24, ptr %153, align 8, !tbaa !22
  %calloc547 = tail call dereferenceable_or_null(512) ptr @calloc(i64 1, i64 512)
  store ptr %calloc547, ptr %calloc548, align 8, !tbaa !19
  %154 = getelementptr inbounds i8, ptr %calloc548, i64 56
  store i32 -1609490463, ptr %154, align 8, !tbaa !32
  %.not490 = icmp eq ptr %calloc547, null
  br i1 %.not490, label %155, label %156

155:                                              ; preds = %149
  tail call void @exit(i32 noundef -1) #7
  unreachable

156:                                              ; preds = %149
  store ptr %90, ptr %53, align 8, !tbaa !12
  br label %169

157:                                              ; preds = %.loopexit
  %158 = getelementptr inbounds i8, ptr %145, i64 24
  %159 = load ptr, ptr %158, align 8, !tbaa !13
  store ptr %159, ptr %141, align 8, !tbaa !13
  %160 = getelementptr inbounds i8, ptr %90, i64 40
  store ptr null, ptr %160, align 8, !tbaa !33
  %161 = getelementptr inbounds i8, ptr %159, i64 24
  %162 = load ptr, ptr %161, align 8, !tbaa !30
  %163 = getelementptr inbounds i8, ptr %159, i64 32
  %164 = load i64, ptr %163, align 8, !tbaa !22
  %165 = sub i64 0, %164
  %166 = getelementptr inbounds i8, ptr %162, i64 %165
  %167 = getelementptr inbounds i8, ptr %90, i64 32
  store ptr %166, ptr %167, align 8, !tbaa !34
  %168 = getelementptr inbounds i8, ptr %162, i64 16
  store ptr %90, ptr %168, align 8, !tbaa !35
  store ptr %141, ptr %161, align 8, !tbaa !30
  %.phi.trans.insert = getelementptr inbounds i8, ptr %159, i64 8
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !16
  %.pre541 = load ptr, ptr %159, align 8, !tbaa !19
  br label %169

169:                                              ; preds = %156, %157
  %170 = phi ptr [ %calloc547, %156 ], [ %.pre541, %157 ]
  %171 = phi i32 [ 32, %156 ], [ %.pre, %157 ]
  %172 = phi ptr [ %calloc548, %156 ], [ %159, %157 ]
  %173 = getelementptr inbounds i8, ptr %172, i64 16
  %174 = load i32, ptr %173, align 8, !tbaa !36
  %175 = add i32 %174, 1
  store i32 %175, ptr %173, align 8, !tbaa !36
  %176 = add i32 %171, -1
  %177 = and i32 %176, %140
  %178 = zext i32 %177 to i64
  %179 = getelementptr inbounds %struct.UT_hash_bucket, ptr %170, i64 %178
  %180 = getelementptr inbounds i8, ptr %179, i64 8
  %181 = load i32, ptr %180, align 8, !tbaa !37
  %182 = add i32 %181, 1
  store i32 %182, ptr %180, align 8, !tbaa !37
  %183 = load ptr, ptr %179, align 8, !tbaa !20
  %184 = getelementptr inbounds i8, ptr %90, i64 56
  store ptr %183, ptr %184, align 8, !tbaa !26
  %185 = getelementptr inbounds i8, ptr %90, i64 48
  store ptr null, ptr %185, align 8, !tbaa !38
  %.not491 = icmp eq ptr %183, null
  br i1 %.not491, label %188, label %186

186:                                              ; preds = %169
  %187 = getelementptr inbounds i8, ptr %183, i64 24
  store ptr %141, ptr %187, align 8, !tbaa !39
  br label %188

188:                                              ; preds = %186, %169
  store ptr %141, ptr %179, align 8, !tbaa !20
  %189 = getelementptr inbounds i8, ptr %179, i64 12
  %190 = load i32, ptr %189, align 4, !tbaa !40
  %191 = mul i32 %190, 10
  %192 = add i32 %191, 10
  %.not492 = icmp ult i32 %182, %192
  br i1 %.not492, label %259, label %193

193:                                              ; preds = %188
  %194 = getelementptr inbounds i8, ptr %172, i64 52
  %195 = load i32, ptr %194, align 4, !tbaa !41
  %.not493 = icmp eq i32 %195, 0
  br i1 %.not493, label %196, label %259

196:                                              ; preds = %193
  %197 = zext i32 %171 to i64
  %198 = shl nuw nsw i64 %197, 5
  %calloc = tail call ptr @calloc(i64 1, i64 %198)
  %.not494 = icmp eq ptr %calloc, null
  br i1 %.not494, label %199, label %200

199:                                              ; preds = %196
  tail call void @exit(i32 noundef -1) #7
  unreachable

200:                                              ; preds = %196
  %201 = getelementptr inbounds i8, ptr %172, i64 12
  %202 = load i32, ptr %201, align 4, !tbaa !31
  %203 = add i32 %202, 1
  %204 = lshr i32 %175, %203
  %205 = shl i32 %171, 1
  %206 = add i32 %205, -1
  %207 = and i32 %206, %175
  %.not495 = icmp ne i32 %207, 0
  %208 = zext i1 %.not495 to i32
  %209 = add i32 %204, %208
  %210 = getelementptr inbounds i8, ptr %172, i64 40
  store i32 %209, ptr %210, align 8, !tbaa !42
  %211 = getelementptr inbounds i8, ptr %172, i64 44
  store i32 0, ptr %211, align 4, !tbaa !43
  %.not539 = icmp eq i32 %171, 0
  br i1 %.not539, label %._crit_edge538, label %.lr.ph537

.lr.ph537:                                        ; preds = %200, %._crit_edge
  %212 = phi i32 [ %238, %._crit_edge ], [ 0, %200 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 0, %200 ]
  %213 = getelementptr inbounds %struct.UT_hash_bucket, ptr %170, i64 %indvars.iv
  %214 = load ptr, ptr %213, align 8, !tbaa !20
  %.not496532 = icmp eq ptr %214, null
  br i1 %.not496532, label %._crit_edge, label %.lr.ph534

.lr.ph534:                                        ; preds = %.lr.ph537, %237
  %215 = phi i32 [ %232, %237 ], [ %212, %.lr.ph537 ]
  %.0432533 = phi ptr [ %217, %237 ], [ %214, %.lr.ph537 ]
  %216 = getelementptr inbounds i8, ptr %.0432533, i64 32
  %217 = load ptr, ptr %216, align 8, !tbaa !44
  %218 = getelementptr inbounds i8, ptr %.0432533, i64 52
  %219 = load i32, ptr %218, align 4, !tbaa !45
  %220 = and i32 %219, %206
  %221 = zext i32 %220 to i64
  %222 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc, i64 %221
  %223 = getelementptr inbounds i8, ptr %222, i64 8
  %224 = load i32, ptr %223, align 8, !tbaa !37
  %225 = add i32 %224, 1
  store i32 %225, ptr %223, align 8, !tbaa !37
  %226 = icmp ugt i32 %225, %209
  br i1 %226, label %227, label %231

227:                                              ; preds = %.lr.ph534
  %228 = add i32 %215, 1
  store i32 %228, ptr %211, align 4, !tbaa !43
  %229 = udiv i32 %225, %209
  %230 = getelementptr inbounds i8, ptr %222, i64 12
  store i32 %229, ptr %230, align 4, !tbaa !40
  br label %231

231:                                              ; preds = %227, %.lr.ph534
  %232 = phi i32 [ %228, %227 ], [ %215, %.lr.ph534 ]
  %233 = getelementptr inbounds i8, ptr %.0432533, i64 24
  store ptr null, ptr %233, align 8, !tbaa !39
  %234 = load ptr, ptr %222, align 8, !tbaa !20
  store ptr %234, ptr %216, align 8, !tbaa !44
  %.not497 = icmp eq ptr %234, null
  br i1 %.not497, label %237, label %235

235:                                              ; preds = %231
  %236 = getelementptr inbounds i8, ptr %234, i64 24
  store ptr %.0432533, ptr %236, align 8, !tbaa !39
  br label %237

237:                                              ; preds = %235, %231
  store ptr %.0432533, ptr %222, align 8, !tbaa !20
  %.not496 = icmp eq ptr %217, null
  br i1 %.not496, label %._crit_edge, label %.lr.ph534, !llvm.loop !46

._crit_edge:                                      ; preds = %237, %.lr.ph537
  %238 = phi i32 [ %212, %.lr.ph537 ], [ %232, %237 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %197
  br i1 %exitcond.not, label %._crit_edge538, label %.lr.ph537, !llvm.loop !47

._crit_edge538:                                   ; preds = %._crit_edge, %200
  tail call void @free(ptr noundef %170) #8
  %239 = load ptr, ptr %141, align 8, !tbaa !13
  %240 = getelementptr inbounds i8, ptr %239, i64 8
  %241 = load i32, ptr %240, align 8, !tbaa !16
  %242 = shl i32 %241, 1
  store i32 %242, ptr %240, align 8, !tbaa !16
  %243 = getelementptr inbounds i8, ptr %239, i64 12
  %244 = load i32, ptr %243, align 4, !tbaa !31
  %245 = add i32 %244, 1
  store i32 %245, ptr %243, align 4, !tbaa !31
  store ptr %calloc, ptr %239, align 8, !tbaa !19
  %246 = getelementptr inbounds i8, ptr %239, i64 44
  %247 = load i32, ptr %246, align 4, !tbaa !43
  %248 = getelementptr inbounds i8, ptr %239, i64 16
  %249 = load i32, ptr %248, align 8, !tbaa !36
  %250 = lshr i32 %249, 1
  %251 = icmp ugt i32 %247, %250
  %252 = getelementptr inbounds i8, ptr %239, i64 48
  br i1 %251, label %253, label %.thread500

.thread500:                                       ; preds = %._crit_edge538
  store i32 0, ptr %252, align 8, !tbaa !48
  br label %259

253:                                              ; preds = %._crit_edge538
  %254 = load i32, ptr %252, align 8, !tbaa !48
  %255 = add i32 %254, 1
  store i32 %255, ptr %252, align 8, !tbaa !48
  %256 = icmp ugt i32 %255, 1
  br i1 %256, label %257, label %259

257:                                              ; preds = %253
  %258 = getelementptr inbounds i8, ptr %239, i64 52
  store i32 1, ptr %258, align 4, !tbaa !41
  br label %259

259:                                              ; preds = %.thread500, %257, %253, %193, %188
  %260 = getelementptr inbounds i8, ptr %12, i64 32
  %261 = load ptr, ptr %260, align 8, !tbaa !49
  %262 = getelementptr inbounds i8, ptr %261, i64 48
  %263 = load ptr, ptr %262, align 8, !tbaa !52
  %264 = tail call ptr @sdsempty() #8
  %265 = and i32 %8, 255
  %266 = and i32 %9, 255
  %267 = and i32 %1, 255
  %268 = tail call ptr (ptr, ptr, ...) @sdscatprintf(ptr noundef %264, ptr noundef nonnull @.str, i32 noundef %7, i32 noundef %265, i32 noundef %266, i32 noundef %267) #8
  tail call void %263(ptr noundef %261, i8 noundef zeroext 10, i32 noundef 3, ptr noundef %268) #8
  br label %270

269:                                              ; preds = %79
  tail call void @buffree(ptr noundef nonnull %2) #8
  br label %270

270:                                              ; preds = %259, %269, %3
  ret void
}

; Function Attrs: nounwind uwtable
declare hidden ptr @createSegment(i32 noundef, ptr noundef) local_unnamed_addr #2

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

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

declare ptr @sdscatprintf(ptr noundef, ptr noundef, ...) local_unnamed_addr #1

declare ptr @sdsempty() local_unnamed_addr #1

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

; Function Attrs: nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite)
declare noalias noundef ptr @calloc(i64 noundef, i64 noundef) local_unnamed_addr #6

attributes #0 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { nounwind 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 #3 = { 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 #4 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #5 = { nofree nounwind willreturn memory(argmem: read) }
attributes #6 = { nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" }
attributes #7 = { noreturn nounwind }
attributes #8 = { 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, !11, i64 16}
!10 = !{!"", !6, i64 0, !6, i64 4, !11, i64 8, !11, i64 16}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!10, !11, i64 8}
!13 = !{!14, !11, i64 24}
!14 = !{!"", !6, i64 0, !6, i64 4, !6, i64 8, !11, i64 16, !15, i64 24}
!15 = !{!"UT_hash_handle", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !6, i64 48, !6, i64 52}
!16 = !{!17, !6, i64 8}
!17 = !{!"UT_hash_table", !11, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !11, i64 24, !18, i64 32, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !6, i64 56}
!18 = !{!"long", !7, i64 0}
!19 = !{!17, !11, i64 0}
!20 = !{!21, !11, i64 0}
!21 = !{!"UT_hash_bucket", !11, i64 0, !6, i64 8, !6, i64 12}
!22 = !{!17, !18, i64 32}
!23 = !{!14, !6, i64 76}
!24 = !{!14, !6, i64 72}
!25 = !{!14, !11, i64 64}
!26 = !{!14, !11, i64 56}
!27 = distinct !{!27, !28}
!28 = !{!"llvm.loop.mustprogress"}
!29 = !{!7, !7, i64 0}
!30 = !{!17, !11, i64 24}
!31 = !{!17, !6, i64 12}
!32 = !{!17, !6, i64 56}
!33 = !{!14, !11, i64 40}
!34 = !{!14, !11, i64 32}
!35 = !{!15, !11, i64 16}
!36 = !{!17, !6, i64 16}
!37 = !{!21, !6, i64 8}
!38 = !{!14, !11, i64 48}
!39 = !{!15, !11, i64 24}
!40 = !{!21, !6, i64 12}
!41 = !{!17, !6, i64 52}
!42 = !{!17, !6, i64 40}
!43 = !{!17, !6, i64 44}
!44 = !{!15, !11, i64 32}
!45 = !{!15, !6, i64 52}
!46 = distinct !{!46, !28}
!47 = distinct !{!47, !28}
!48 = !{!17, !6, i64 48}
!49 = !{!50, !11, i64 32}
!50 = !{!"", !51, i64 0, !51, i64 1, !51, i64 2, !51, i64 3, !51, i64 4, !51, i64 5, !51, i64 6, !51, i64 7, !51, i64 8, !51, i64 9, !51, i64 10, !51, i64 11, !51, i64 12, !51, i64 13, !51, i64 14, !51, i64 15, !51, i64 16, !51, i64 17, !51, i64 18, !51, i64 19, !51, i64 20, !51, i64 21, !51, i64 22, !11, i64 24, !11, i64 32}
!51 = !{!"_Bool", !7, i64 0}
!52 = !{!53, !11, i64 48}
!53 = !{!"otfcc_ILogger", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88}


; Effective O3 passes: BDCEPass,CorrelatedValuePropagationPass,DSEPass,EarlyCSEPass,GVNPass,GlobalOptPass,IPSCCPPass,IndVarSimplifyPass,InferFunctionAttrsPass,InstCombinePass,InstSimplifyPass,JumpThreadingPass,LCSSAPass,LICMPass,LoopRotatePass,LoopSimplifyPass,LoopUnrollPass,MemCpyOptPass,ReassociatePass,SCCPPass,SROAPass,SimplifyCFGPass,TailCallElimPass