; LLVM IR from caryll/otfcc :: lib/table (cmap)

; 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_HandlePackage = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.cmap_UVS_key = type { i32, i32 }
%struct.otfcc_Handle = type { i32, i16, ptr }
%struct.table_cmap = type { ptr, ptr }
%struct.cmap_UVS_Entry = type { %struct.UT_hash_handle, %struct.cmap_UVS_key, %struct.otfcc_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 }

@otfcc_iHandle = external constant %struct.otfcc_HandlePackage, align 8

; 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 willreturn memory(read)
declare i32 @memcmp(ptr noundef, ptr noundef, i64 noundef) #1

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @__caryll_allocate_clean(i64 noundef, i64 noundef) #2

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local zeroext i1 @otfcc_encodeCmapUVSByIndex(ptr noundef %0, i64 %1, i16 noundef zeroext %2) #8 {
  %4 = alloca i1, align 1
  %5 = alloca %struct.cmap_UVS_key, align 4
  %6 = alloca ptr, align 8
  %7 = alloca i16, align 2
  %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 %struct.otfcc_Handle, align 8
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca ptr, align 8
  %21 = alloca i32, align 4
  %22 = alloca ptr, align 8
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca ptr, align 8
  %27 = alloca ptr, align 8
  %28 = alloca ptr, align 8
  %29 = alloca i32, align 4
  store i64 %1, ptr %5, align 4
  store ptr %0, ptr %6, align 8, !tbaa !5
  store i16 %2, ptr %7, align 2, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %8) #9
  br label %30

30:                                               ; preds = %3
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  br label %31

31:                                               ; preds = %30
  br label %32

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

33:                                               ; preds = %201, %32
  %34 = load i32, ptr %12, align 4, !tbaa !11
  %35 = icmp uge i32 %34, 12
  br i1 %35, label %36, label %206

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

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

200:                                              ; preds = %109
  br label %201

201:                                              ; preds = %200
  %202 = load ptr, ptr %13, align 8, !tbaa !5
  %203 = getelementptr inbounds i8, ptr %202, i64 12
  store ptr %203, ptr %13, align 8, !tbaa !5
  %204 = load i32, ptr %12, align 4, !tbaa !11
  %205 = sub i32 %204, 12
  store i32 %205, ptr %12, align 4, !tbaa !11
  br label %33, !llvm.loop !14

206:                                              ; preds = %33
  %207 = load i32, ptr %9, align 4, !tbaa !11
  %208 = add i32 %207, 8
  store i32 %208, ptr %9, align 4, !tbaa !11
  %209 = load i32, ptr %12, align 4, !tbaa !11
  switch i32 %209, label %296 [
    i32 11, label %210
    i32 10, label %218
    i32 9, label %226
    i32 8, label %234
    i32 7, label %242
    i32 6, label %250
    i32 5, label %258
    i32 4, label %265
    i32 3, label %273
    i32 2, label %281
    i32 1, label %289
  ]

210:                                              ; preds = %206
  %211 = load ptr, ptr %13, align 8, !tbaa !5
  %212 = getelementptr inbounds i8, ptr %211, i64 10
  %213 = load i8, ptr %212, align 1, !tbaa !13
  %214 = zext i8 %213 to i32
  %215 = shl i32 %214, 24
  %216 = load i32, ptr %9, align 4, !tbaa !11
  %217 = add i32 %216, %215
  store i32 %217, ptr %9, align 4, !tbaa !11
  br label %218

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

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

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

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

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

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

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

273:                                              ; preds = %265, %206
  %274 = load ptr, ptr %13, align 8, !tbaa !5
  %275 = getelementptr inbounds i8, ptr %274, i64 2
  %276 = load i8, ptr %275, align 1, !tbaa !13
  %277 = zext i8 %276 to i32
  %278 = shl i32 %277, 16
  %279 = load i32, ptr %10, align 4, !tbaa !11
  %280 = add i32 %279, %278
  store i32 %280, ptr %10, align 4, !tbaa !11
  br label %281

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

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

296:                                              ; preds = %289, %206
  br label %297

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

388:                                              ; preds = %297
  br label %389

389:                                              ; preds = %388
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #9
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  br label %394

394:                                              ; preds = %393
  store ptr null, ptr %8, align 8, !tbaa !5
  %395 = load ptr, ptr %6, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.table_cmap, ptr %395, i32 0, i32 1
  %397 = load ptr, ptr %396, align 8, !tbaa !16
  %398 = icmp ne ptr %397, null
  br i1 %398, label %399, label %513

399:                                              ; preds = %394
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  br label %400

400:                                              ; preds = %399
  %401 = load i32, ptr %9, align 4, !tbaa !11
  %402 = load ptr, ptr %6, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.table_cmap, ptr %402, i32 0, i32 1
  %404 = load ptr, ptr %403, align 8, !tbaa !16
  %405 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %404, i32 0, i32 0
  %406 = getelementptr inbounds %struct.UT_hash_handle, ptr %405, i32 0, i32 0
  %407 = load ptr, ptr %406, align 8, !tbaa !18
  %408 = getelementptr inbounds %struct.UT_hash_table, ptr %407, i32 0, i32 1
  %409 = load i32, ptr %408, align 8, !tbaa !23
  %410 = sub i32 %409, 1
  %411 = and i32 %401, %410
  store i32 %411, ptr %14, align 4, !tbaa !11
  br label %412

412:                                              ; preds = %400
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413
  %415 = load ptr, ptr %6, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.table_cmap, ptr %415, i32 0, i32 1
  %417 = load ptr, ptr %416, align 8, !tbaa !16
  %418 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %417, i32 0, i32 0
  %419 = getelementptr inbounds %struct.UT_hash_handle, ptr %418, i32 0, i32 0
  %420 = load ptr, ptr %419, align 8, !tbaa !18
  %421 = getelementptr inbounds %struct.UT_hash_table, ptr %420, i32 0, i32 0
  %422 = load ptr, ptr %421, align 8, !tbaa !26
  %423 = load i32, ptr %14, align 4, !tbaa !11
  %424 = zext i32 %423 to i64
  %425 = getelementptr inbounds %struct.UT_hash_bucket, ptr %422, i64 %424
  %426 = getelementptr inbounds %struct.UT_hash_bucket, ptr %425, i32 0, i32 0
  %427 = load ptr, ptr %426, align 8, !tbaa !27
  %428 = icmp ne ptr %427, null
  br i1 %428, label %429, label %456

429:                                              ; preds = %414
  br label %430

430:                                              ; preds = %429
  %431 = load ptr, ptr %6, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.table_cmap, ptr %431, i32 0, i32 1
  %433 = load ptr, ptr %432, align 8, !tbaa !16
  %434 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %433, i32 0, i32 0
  %435 = getelementptr inbounds %struct.UT_hash_handle, ptr %434, i32 0, i32 0
  %436 = load ptr, ptr %435, align 8, !tbaa !18
  %437 = getelementptr inbounds %struct.UT_hash_table, ptr %436, i32 0, i32 0
  %438 = load ptr, ptr %437, align 8, !tbaa !26
  %439 = load i32, ptr %14, align 4, !tbaa !11
  %440 = zext i32 %439 to i64
  %441 = getelementptr inbounds %struct.UT_hash_bucket, ptr %438, i64 %440
  %442 = getelementptr inbounds %struct.UT_hash_bucket, ptr %441, i32 0, i32 0
  %443 = load ptr, ptr %442, align 8, !tbaa !27
  %444 = load ptr, ptr %6, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.table_cmap, ptr %444, i32 0, i32 1
  %446 = load ptr, ptr %445, align 8, !tbaa !16
  %447 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %446, i32 0, i32 0
  %448 = getelementptr inbounds %struct.UT_hash_handle, ptr %447, i32 0, i32 0
  %449 = load ptr, ptr %448, align 8, !tbaa !18
  %450 = getelementptr inbounds %struct.UT_hash_table, ptr %449, i32 0, i32 5
  %451 = load i64, ptr %450, align 8, !tbaa !29
  %452 = sub i64 0, %451
  %453 = getelementptr inbounds i8, ptr %443, i64 %452
  store ptr %453, ptr %8, align 8, !tbaa !5
  br label %454

454:                                              ; preds = %430
  br label %455

455:                                              ; preds = %454
  br label %457

456:                                              ; preds = %414
  store ptr null, ptr %8, align 8, !tbaa !5
  br label %457

457:                                              ; preds = %456, %455
  br label %458

458:                                              ; preds = %509, %457
  %459 = load ptr, ptr %8, align 8, !tbaa !5
  %460 = icmp ne ptr %459, null
  br i1 %460, label %461, label %510

461:                                              ; preds = %458
  %462 = load ptr, ptr %8, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %462, i32 0, i32 0
  %464 = getelementptr inbounds %struct.UT_hash_handle, ptr %463, i32 0, i32 7
  %465 = load i32, ptr %464, align 4, !tbaa !30
  %466 = load i32, ptr %9, align 4, !tbaa !11
  %467 = icmp eq i32 %465, %466
  br i1 %467, label %468, label %484

468:                                              ; preds = %461
  %469 = load ptr, ptr %8, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %469, i32 0, i32 0
  %471 = getelementptr inbounds %struct.UT_hash_handle, ptr %470, i32 0, i32 6
  %472 = load i32, ptr %471, align 8, !tbaa !31
  %473 = zext i32 %472 to i64
  %474 = icmp eq i64 %473, 8
  br i1 %474, label %475, label %484

475:                                              ; preds = %468
  %476 = load ptr, ptr %8, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %476, i32 0, i32 0
  %478 = getelementptr inbounds %struct.UT_hash_handle, ptr %477, i32 0, i32 5
  %479 = load ptr, ptr %478, align 8, !tbaa !32
  %480 = call i32 @memcmp(ptr noundef %479, ptr noundef %5, i64 noundef 8) #10
  %481 = icmp eq i32 %480, 0
  br i1 %481, label %482, label %483

482:                                              ; preds = %475
  br label %510

483:                                              ; preds = %475
  br label %484

484:                                              ; preds = %483, %468, %461
  %485 = load ptr, ptr %8, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %485, i32 0, i32 0
  %487 = getelementptr inbounds %struct.UT_hash_handle, ptr %486, i32 0, i32 4
  %488 = load ptr, ptr %487, align 8, !tbaa !33
  %489 = icmp ne ptr %488, null
  br i1 %489, label %490, label %508

490:                                              ; preds = %484
  br label %491

491:                                              ; preds = %490
  %492 = load ptr, ptr %8, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %492, i32 0, i32 0
  %494 = getelementptr inbounds %struct.UT_hash_handle, ptr %493, i32 0, i32 4
  %495 = load ptr, ptr %494, align 8, !tbaa !33
  %496 = load ptr, ptr %6, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.table_cmap, ptr %496, i32 0, i32 1
  %498 = load ptr, ptr %497, align 8, !tbaa !16
  %499 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %498, i32 0, i32 0
  %500 = getelementptr inbounds %struct.UT_hash_handle, ptr %499, i32 0, i32 0
  %501 = load ptr, ptr %500, align 8, !tbaa !18
  %502 = getelementptr inbounds %struct.UT_hash_table, ptr %501, i32 0, i32 5
  %503 = load i64, ptr %502, align 8, !tbaa !29
  %504 = sub i64 0, %503
  %505 = getelementptr inbounds i8, ptr %495, i64 %504
  store ptr %505, ptr %8, align 8, !tbaa !5
  br label %506

506:                                              ; preds = %491
  br label %507

507:                                              ; preds = %506
  br label %509

508:                                              ; preds = %484
  store ptr null, ptr %8, align 8, !tbaa !5
  br label %509

509:                                              ; preds = %508, %507
  br label %458, !llvm.loop !34

510:                                              ; preds = %482, %458
  br label %511

511:                                              ; preds = %510
  br label %512

512:                                              ; preds = %511
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  br label %513

513:                                              ; preds = %512, %394
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #9
  br label %516

516:                                              ; preds = %515
  br label %517

517:                                              ; preds = %516
  %518 = load ptr, ptr %8, align 8, !tbaa !5
  %519 = icmp eq ptr %518, null
  br i1 %519, label %520, label %1396

520:                                              ; preds = %517
  %521 = call ptr @__caryll_allocate_clean(i64 noundef 80, i64 noundef 87)
  store ptr %521, ptr %8, align 8, !tbaa !5
  %522 = load ptr, ptr %8, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %522, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 16, ptr %15) #9
  %524 = load ptr, ptr getelementptr inbounds (%struct.otfcc_HandlePackage, ptr @otfcc_iHandle, i32 0, i32 8), align 8, !tbaa !35
  %525 = load i16, ptr %7, align 2, !tbaa !9
  %526 = call { i64, ptr } %524(i16 noundef zeroext %525)
  %527 = getelementptr inbounds { i64, ptr }, ptr %15, i32 0, i32 0
  %528 = extractvalue { i64, ptr } %526, 0
  store i64 %528, ptr %527, align 8
  %529 = getelementptr inbounds { i64, ptr }, ptr %15, i32 0, i32 1
  %530 = extractvalue { i64, ptr } %526, 1
  store ptr %530, ptr %529, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %523, ptr align 8 %15, i64 16, i1 false), !tbaa.struct !37
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #9
  %531 = load ptr, ptr %8, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %531, i32 0, i32 1
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %532, ptr align 4 %5, i64 8, i1 false), !tbaa.struct !38
  br label %533

533:                                              ; preds = %520
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #9
  br label %534

534:                                              ; preds = %533
  br label %535

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

538:                                              ; preds = %706, %535
  %539 = load i32, ptr %19, align 4, !tbaa !11
  %540 = icmp uge i32 %539, 12
  br i1 %540, label %541, label %711

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

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

705:                                              ; preds = %614
  br label %706

706:                                              ; preds = %705
  %707 = load ptr, ptr %20, align 8, !tbaa !5
  %708 = getelementptr inbounds i8, ptr %707, i64 12
  store ptr %708, ptr %20, align 8, !tbaa !5
  %709 = load i32, ptr %19, align 4, !tbaa !11
  %710 = sub i32 %709, 12
  store i32 %710, ptr %19, align 4, !tbaa !11
  br label %538, !llvm.loop !39

711:                                              ; preds = %538
  %712 = load i32, ptr %16, align 4, !tbaa !11
  %713 = add i32 %712, 8
  store i32 %713, ptr %16, align 4, !tbaa !11
  %714 = load i32, ptr %19, align 4, !tbaa !11
  switch i32 %714, label %801 [
    i32 11, label %715
    i32 10, label %723
    i32 9, label %731
    i32 8, label %739
    i32 7, label %747
    i32 6, label %755
    i32 5, label %763
    i32 4, label %770
    i32 3, label %778
    i32 2, label %786
    i32 1, label %794
  ]

715:                                              ; preds = %711
  %716 = load ptr, ptr %20, align 8, !tbaa !5
  %717 = getelementptr inbounds i8, ptr %716, i64 10
  %718 = load i8, ptr %717, align 1, !tbaa !13
  %719 = zext i8 %718 to i32
  %720 = shl i32 %719, 24
  %721 = load i32, ptr %16, align 4, !tbaa !11
  %722 = add i32 %721, %720
  store i32 %722, ptr %16, align 4, !tbaa !11
  br label %723

723:                                              ; preds = %715, %711
  %724 = load ptr, ptr %20, align 8, !tbaa !5
  %725 = getelementptr inbounds i8, ptr %724, i64 9
  %726 = load i8, ptr %725, align 1, !tbaa !13
  %727 = zext i8 %726 to i32
  %728 = shl i32 %727, 16
  %729 = load i32, ptr %16, align 4, !tbaa !11
  %730 = add i32 %729, %728
  store i32 %730, ptr %16, align 4, !tbaa !11
  br label %731

731:                                              ; preds = %723, %711
  %732 = load ptr, ptr %20, align 8, !tbaa !5
  %733 = getelementptr inbounds i8, ptr %732, i64 8
  %734 = load i8, ptr %733, align 1, !tbaa !13
  %735 = zext i8 %734 to i32
  %736 = shl i32 %735, 8
  %737 = load i32, ptr %16, align 4, !tbaa !11
  %738 = add i32 %737, %736
  store i32 %738, ptr %16, align 4, !tbaa !11
  br label %739

739:                                              ; preds = %731, %711
  %740 = load ptr, ptr %20, align 8, !tbaa !5
  %741 = getelementptr inbounds i8, ptr %740, i64 7
  %742 = load i8, ptr %741, align 1, !tbaa !13
  %743 = zext i8 %742 to i32
  %744 = shl i32 %743, 24
  %745 = load i32, ptr %18, align 4, !tbaa !11
  %746 = add i32 %745, %744
  store i32 %746, ptr %18, align 4, !tbaa !11
  br label %747

747:                                              ; preds = %739, %711
  %748 = load ptr, ptr %20, align 8, !tbaa !5
  %749 = getelementptr inbounds i8, ptr %748, i64 6
  %750 = load i8, ptr %749, align 1, !tbaa !13
  %751 = zext i8 %750 to i32
  %752 = shl i32 %751, 16
  %753 = load i32, ptr %18, align 4, !tbaa !11
  %754 = add i32 %753, %752
  store i32 %754, ptr %18, align 4, !tbaa !11
  br label %755

755:                                              ; preds = %747, %711
  %756 = load ptr, ptr %20, align 8, !tbaa !5
  %757 = getelementptr inbounds i8, ptr %756, i64 5
  %758 = load i8, ptr %757, align 1, !tbaa !13
  %759 = zext i8 %758 to i32
  %760 = shl i32 %759, 8
  %761 = load i32, ptr %18, align 4, !tbaa !11
  %762 = add i32 %761, %760
  store i32 %762, ptr %18, align 4, !tbaa !11
  br label %763

763:                                              ; preds = %755, %711
  %764 = load ptr, ptr %20, align 8, !tbaa !5
  %765 = getelementptr inbounds i8, ptr %764, i64 4
  %766 = load i8, ptr %765, align 1, !tbaa !13
  %767 = zext i8 %766 to i32
  %768 = load i32, ptr %18, align 4, !tbaa !11
  %769 = add i32 %768, %767
  store i32 %769, ptr %18, align 4, !tbaa !11
  br label %770

770:                                              ; preds = %763, %711
  %771 = load ptr, ptr %20, align 8, !tbaa !5
  %772 = getelementptr inbounds i8, ptr %771, i64 3
  %773 = load i8, ptr %772, align 1, !tbaa !13
  %774 = zext i8 %773 to i32
  %775 = shl i32 %774, 24
  %776 = load i32, ptr %17, align 4, !tbaa !11
  %777 = add i32 %776, %775
  store i32 %777, ptr %17, align 4, !tbaa !11
  br label %778

778:                                              ; preds = %770, %711
  %779 = load ptr, ptr %20, align 8, !tbaa !5
  %780 = getelementptr inbounds i8, ptr %779, i64 2
  %781 = load i8, ptr %780, align 1, !tbaa !13
  %782 = zext i8 %781 to i32
  %783 = shl i32 %782, 16
  %784 = load i32, ptr %17, align 4, !tbaa !11
  %785 = add i32 %784, %783
  store i32 %785, ptr %17, align 4, !tbaa !11
  br label %786

786:                                              ; preds = %778, %711
  %787 = load ptr, ptr %20, align 8, !tbaa !5
  %788 = getelementptr inbounds i8, ptr %787, i64 1
  %789 = load i8, ptr %788, align 1, !tbaa !13
  %790 = zext i8 %789 to i32
  %791 = shl i32 %790, 8
  %792 = load i32, ptr %17, align 4, !tbaa !11
  %793 = add i32 %792, %791
  store i32 %793, ptr %17, align 4, !tbaa !11
  br label %794

794:                                              ; preds = %786, %711
  %795 = load ptr, ptr %20, align 8, !tbaa !5
  %796 = getelementptr inbounds i8, ptr %795, i64 0
  %797 = load i8, ptr %796, align 1, !tbaa !13
  %798 = zext i8 %797 to i32
  %799 = load i32, ptr %17, align 4, !tbaa !11
  %800 = add i32 %799, %798
  store i32 %800, ptr %17, align 4, !tbaa !11
  br label %801

801:                                              ; preds = %794, %711
  br label %802

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

893:                                              ; preds = %802
  br label %894

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

895:                                              ; preds = %894
  br label %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  %900 = load i32, ptr %16, align 4, !tbaa !11
  %901 = load ptr, ptr %8, align 8, !tbaa !5
  %902 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %901, i32 0, i32 0
  %903 = getelementptr inbounds %struct.UT_hash_handle, ptr %902, i32 0, i32 7
  store i32 %900, ptr %903, align 4, !tbaa !30
  %904 = load ptr, ptr %8, align 8, !tbaa !5
  %905 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %904, i32 0, i32 1
  %906 = load ptr, ptr %8, align 8, !tbaa !5
  %907 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %906, i32 0, i32 0
  %908 = getelementptr inbounds %struct.UT_hash_handle, ptr %907, i32 0, i32 5
  store ptr %905, ptr %908, align 8, !tbaa !32
  %909 = load ptr, ptr %8, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %909, i32 0, i32 0
  %911 = getelementptr inbounds %struct.UT_hash_handle, ptr %910, i32 0, i32 6
  store i32 8, ptr %911, align 8, !tbaa !31
  %912 = load ptr, ptr %6, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.table_cmap, ptr %912, i32 0, i32 1
  %914 = load ptr, ptr %913, align 8, !tbaa !16
  %915 = icmp ne ptr %914, null
  br i1 %915, label %1000, label %916

916:                                              ; preds = %899
  %917 = load ptr, ptr %8, align 8, !tbaa !5
  %918 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %917, i32 0, i32 0
  %919 = getelementptr inbounds %struct.UT_hash_handle, ptr %918, i32 0, i32 2
  store ptr null, ptr %919, align 8, !tbaa !40
  %920 = load ptr, ptr %8, align 8, !tbaa !5
  %921 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %920, i32 0, i32 0
  %922 = getelementptr inbounds %struct.UT_hash_handle, ptr %921, i32 0, i32 1
  store ptr null, ptr %922, align 8, !tbaa !41
  br label %923

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

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

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

985:                                              ; preds = %934
  call void @exit(i32 noundef -1) #12
  unreachable

986:                                              ; preds = %934
  %987 = load ptr, ptr %8, align 8, !tbaa !5
  %988 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %987, i32 0, i32 0
  %989 = getelementptr inbounds %struct.UT_hash_handle, ptr %988, i32 0, i32 0
  %990 = load ptr, ptr %989, align 8, !tbaa !18
  %991 = getelementptr inbounds %struct.UT_hash_table, ptr %990, i32 0, i32 0
  %992 = load ptr, ptr %991, align 8, !tbaa !26
  call void @llvm.memset.p0.i64(ptr align 8 %992, i8 0, i64 512, i1 false)
  br label %993

993:                                              ; preds = %986
  br label %994

994:                                              ; preds = %993
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995
  %997 = load ptr, ptr %8, align 8, !tbaa !5
  %998 = load ptr, ptr %6, align 8, !tbaa !5
  %999 = getelementptr inbounds %struct.table_cmap, ptr %998, i32 0, i32 1
  store ptr %997, ptr %999, align 8, !tbaa !16
  br label %1056

1000:                                             ; preds = %899
  %1001 = load ptr, ptr %6, align 8, !tbaa !5
  %1002 = getelementptr inbounds %struct.table_cmap, ptr %1001, i32 0, i32 1
  %1003 = load ptr, ptr %1002, align 8, !tbaa !16
  %1004 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1003, i32 0, i32 0
  %1005 = getelementptr inbounds %struct.UT_hash_handle, ptr %1004, i32 0, i32 0
  %1006 = load ptr, ptr %1005, align 8, !tbaa !18
  %1007 = load ptr, ptr %8, align 8, !tbaa !5
  %1008 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1007, i32 0, i32 0
  %1009 = getelementptr inbounds %struct.UT_hash_handle, ptr %1008, i32 0, i32 0
  store ptr %1006, ptr %1009, align 8, !tbaa !18
  br label %1010

1010:                                             ; preds = %1000
  %1011 = load ptr, ptr %8, align 8, !tbaa !5
  %1012 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1011, i32 0, i32 0
  %1013 = getelementptr inbounds %struct.UT_hash_handle, ptr %1012, i32 0, i32 2
  store ptr null, ptr %1013, align 8, !tbaa !40
  %1014 = load ptr, ptr %6, align 8, !tbaa !5
  %1015 = getelementptr inbounds %struct.table_cmap, ptr %1014, i32 0, i32 1
  %1016 = load ptr, ptr %1015, align 8, !tbaa !16
  %1017 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1016, i32 0, i32 0
  %1018 = getelementptr inbounds %struct.UT_hash_handle, ptr %1017, i32 0, i32 0
  %1019 = load ptr, ptr %1018, align 8, !tbaa !18
  %1020 = getelementptr inbounds %struct.UT_hash_table, ptr %1019, i32 0, i32 4
  %1021 = load ptr, ptr %1020, align 8, !tbaa !42
  %1022 = load ptr, ptr %6, align 8, !tbaa !5
  %1023 = getelementptr inbounds %struct.table_cmap, ptr %1022, i32 0, i32 1
  %1024 = load ptr, ptr %1023, align 8, !tbaa !16
  %1025 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1024, i32 0, i32 0
  %1026 = getelementptr inbounds %struct.UT_hash_handle, ptr %1025, i32 0, i32 0
  %1027 = load ptr, ptr %1026, align 8, !tbaa !18
  %1028 = getelementptr inbounds %struct.UT_hash_table, ptr %1027, i32 0, i32 5
  %1029 = load i64, ptr %1028, align 8, !tbaa !29
  %1030 = sub i64 0, %1029
  %1031 = getelementptr inbounds i8, ptr %1021, i64 %1030
  %1032 = load ptr, ptr %8, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1032, i32 0, i32 0
  %1034 = getelementptr inbounds %struct.UT_hash_handle, ptr %1033, i32 0, i32 1
  store ptr %1031, ptr %1034, align 8, !tbaa !41
  %1035 = load ptr, ptr %8, align 8, !tbaa !5
  %1036 = load ptr, ptr %6, align 8, !tbaa !5
  %1037 = getelementptr inbounds %struct.table_cmap, ptr %1036, i32 0, i32 1
  %1038 = load ptr, ptr %1037, align 8, !tbaa !16
  %1039 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1038, i32 0, i32 0
  %1040 = getelementptr inbounds %struct.UT_hash_handle, ptr %1039, i32 0, i32 0
  %1041 = load ptr, ptr %1040, align 8, !tbaa !18
  %1042 = getelementptr inbounds %struct.UT_hash_table, ptr %1041, i32 0, i32 4
  %1043 = load ptr, ptr %1042, align 8, !tbaa !42
  %1044 = getelementptr inbounds %struct.UT_hash_handle, ptr %1043, i32 0, i32 2
  store ptr %1035, ptr %1044, align 8, !tbaa !45
  %1045 = load ptr, ptr %8, align 8, !tbaa !5
  %1046 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1045, i32 0, i32 0
  %1047 = load ptr, ptr %6, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.table_cmap, ptr %1047, i32 0, i32 1
  %1049 = load ptr, ptr %1048, align 8, !tbaa !16
  %1050 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1049, i32 0, i32 0
  %1051 = getelementptr inbounds %struct.UT_hash_handle, ptr %1050, i32 0, i32 0
  %1052 = load ptr, ptr %1051, align 8, !tbaa !18
  %1053 = getelementptr inbounds %struct.UT_hash_table, ptr %1052, i32 0, i32 4
  store ptr %1046, ptr %1053, align 8, !tbaa !42
  br label %1054

1054:                                             ; preds = %1010
  br label %1055

1055:                                             ; preds = %1054
  br label %1056

1056:                                             ; preds = %1055, %996
  br label %1057

1057:                                             ; preds = %1056
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  %1058 = load ptr, ptr %6, align 8, !tbaa !5
  %1059 = getelementptr inbounds %struct.table_cmap, ptr %1058, i32 0, i32 1
  %1060 = load ptr, ptr %1059, align 8, !tbaa !16
  %1061 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1060, i32 0, i32 0
  %1062 = getelementptr inbounds %struct.UT_hash_handle, ptr %1061, i32 0, i32 0
  %1063 = load ptr, ptr %1062, align 8, !tbaa !18
  %1064 = getelementptr inbounds %struct.UT_hash_table, ptr %1063, i32 0, i32 3
  %1065 = load i32, ptr %1064, align 8, !tbaa !46
  %1066 = add i32 %1065, 1
  store i32 %1066, ptr %1064, align 8, !tbaa !46
  br label %1067

1067:                                             ; preds = %1057
  %1068 = load i32, ptr %16, align 4, !tbaa !11
  %1069 = load ptr, ptr %6, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.table_cmap, ptr %1069, i32 0, i32 1
  %1071 = load ptr, ptr %1070, align 8, !tbaa !16
  %1072 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1071, i32 0, i32 0
  %1073 = getelementptr inbounds %struct.UT_hash_handle, ptr %1072, i32 0, i32 0
  %1074 = load ptr, ptr %1073, align 8, !tbaa !18
  %1075 = getelementptr inbounds %struct.UT_hash_table, ptr %1074, i32 0, i32 1
  %1076 = load i32, ptr %1075, align 8, !tbaa !23
  %1077 = sub i32 %1076, 1
  %1078 = and i32 %1068, %1077
  store i32 %1078, ptr %21, align 4, !tbaa !11
  br label %1079

1079:                                             ; preds = %1067
  br label %1080

1080:                                             ; preds = %1079
  br label %1081

1081:                                             ; preds = %1080
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #9
  %1082 = load ptr, ptr %6, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.table_cmap, ptr %1082, i32 0, i32 1
  %1084 = load ptr, ptr %1083, align 8, !tbaa !16
  %1085 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1084, i32 0, i32 0
  %1086 = getelementptr inbounds %struct.UT_hash_handle, ptr %1085, i32 0, i32 0
  %1087 = load ptr, ptr %1086, align 8, !tbaa !18
  %1088 = getelementptr inbounds %struct.UT_hash_table, ptr %1087, i32 0, i32 0
  %1089 = load ptr, ptr %1088, align 8, !tbaa !26
  %1090 = load i32, ptr %21, align 4, !tbaa !11
  %1091 = zext i32 %1090 to i64
  %1092 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1089, i64 %1091
  store ptr %1092, ptr %22, align 8, !tbaa !5
  %1093 = load ptr, ptr %22, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1093, i32 0, i32 1
  %1095 = load i32, ptr %1094, align 8, !tbaa !47
  %1096 = add i32 %1095, 1
  store i32 %1096, ptr %1094, align 8, !tbaa !47
  %1097 = load ptr, ptr %22, align 8, !tbaa !5
  %1098 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1097, i32 0, i32 0
  %1099 = load ptr, ptr %1098, align 8, !tbaa !27
  %1100 = load ptr, ptr %8, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1100, i32 0, i32 0
  %1102 = getelementptr inbounds %struct.UT_hash_handle, ptr %1101, i32 0, i32 4
  store ptr %1099, ptr %1102, align 8, !tbaa !33
  %1103 = load ptr, ptr %8, align 8, !tbaa !5
  %1104 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1103, i32 0, i32 0
  %1105 = getelementptr inbounds %struct.UT_hash_handle, ptr %1104, i32 0, i32 3
  store ptr null, ptr %1105, align 8, !tbaa !48
  %1106 = load ptr, ptr %22, align 8, !tbaa !5
  %1107 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1106, i32 0, i32 0
  %1108 = load ptr, ptr %1107, align 8, !tbaa !27
  %1109 = icmp ne ptr %1108, null
  br i1 %1109, label %1110, label %1117

1110:                                             ; preds = %1081
  %1111 = load ptr, ptr %8, align 8, !tbaa !5
  %1112 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1111, i32 0, i32 0
  %1113 = load ptr, ptr %22, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1113, i32 0, i32 0
  %1115 = load ptr, ptr %1114, align 8, !tbaa !27
  %1116 = getelementptr inbounds %struct.UT_hash_handle, ptr %1115, i32 0, i32 3
  store ptr %1112, ptr %1116, align 8, !tbaa !49
  br label %1117

1117:                                             ; preds = %1110, %1081
  %1118 = load ptr, ptr %8, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1118, i32 0, i32 0
  %1120 = load ptr, ptr %22, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1120, i32 0, i32 0
  store ptr %1119, ptr %1121, align 8, !tbaa !27
  %1122 = load ptr, ptr %22, align 8, !tbaa !5
  %1123 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1122, i32 0, i32 1
  %1124 = load i32, ptr %1123, align 8, !tbaa !47
  %1125 = load ptr, ptr %22, align 8, !tbaa !5
  %1126 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1125, i32 0, i32 2
  %1127 = load i32, ptr %1126, align 4, !tbaa !50
  %1128 = add i32 %1127, 1
  %1129 = mul i32 %1128, 10
  %1130 = icmp uge i32 %1124, %1129
  br i1 %1130, label %1131, label %1387

1131:                                             ; preds = %1117
  %1132 = load ptr, ptr %8, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1132, i32 0, i32 0
  %1134 = getelementptr inbounds %struct.UT_hash_handle, ptr %1133, i32 0, i32 0
  %1135 = load ptr, ptr %1134, align 8, !tbaa !18
  %1136 = getelementptr inbounds %struct.UT_hash_table, ptr %1135, i32 0, i32 9
  %1137 = load i32, ptr %1136, align 4, !tbaa !51
  %1138 = icmp ne i32 %1137, 0
  br i1 %1138, label %1387, label %1139

1139:                                             ; preds = %1131
  br label %1140

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

1153:                                             ; preds = %1140
  call void @exit(i32 noundef -1) #12
  unreachable

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

1208:                                             ; preds = %1310, %1154
  %1209 = load i32, ptr %24, align 4, !tbaa !11
  %1210 = load ptr, ptr %8, align 8, !tbaa !5
  %1211 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1210, i32 0, i32 0
  %1212 = getelementptr inbounds %struct.UT_hash_handle, ptr %1211, i32 0, i32 0
  %1213 = load ptr, ptr %1212, align 8, !tbaa !18
  %1214 = getelementptr inbounds %struct.UT_hash_table, ptr %1213, i32 0, i32 1
  %1215 = load i32, ptr %1214, align 8, !tbaa !23
  %1216 = icmp ult i32 %1209, %1215
  br i1 %1216, label %1217, label %1313

1217:                                             ; preds = %1208
  %1218 = load ptr, ptr %8, align 8, !tbaa !5
  %1219 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1218, i32 0, i32 0
  %1220 = getelementptr inbounds %struct.UT_hash_handle, ptr %1219, i32 0, i32 0
  %1221 = load ptr, ptr %1220, align 8, !tbaa !18
  %1222 = getelementptr inbounds %struct.UT_hash_table, ptr %1221, i32 0, i32 0
  %1223 = load ptr, ptr %1222, align 8, !tbaa !26
  %1224 = load i32, ptr %24, align 4, !tbaa !11
  %1225 = zext i32 %1224 to i64
  %1226 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1223, i64 %1225
  %1227 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1226, i32 0, i32 0
  %1228 = load ptr, ptr %1227, align 8, !tbaa !27
  store ptr %1228, ptr %25, align 8, !tbaa !5
  br label %1229

1229:                                             ; preds = %1304, %1217
  %1230 = load ptr, ptr %25, align 8, !tbaa !5
  %1231 = icmp ne ptr %1230, null
  br i1 %1231, label %1232, label %1309

1232:                                             ; preds = %1229
  %1233 = load ptr, ptr %25, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.UT_hash_handle, ptr %1233, i32 0, i32 4
  %1235 = load ptr, ptr %1234, align 8, !tbaa !54
  store ptr %1235, ptr %26, align 8, !tbaa !5
  br label %1236

1236:                                             ; preds = %1232
  %1237 = load ptr, ptr %25, align 8, !tbaa !5
  %1238 = getelementptr inbounds %struct.UT_hash_handle, ptr %1237, i32 0, i32 7
  %1239 = load i32, ptr %1238, align 4, !tbaa !55
  %1240 = load ptr, ptr %8, align 8, !tbaa !5
  %1241 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1240, i32 0, i32 0
  %1242 = getelementptr inbounds %struct.UT_hash_handle, ptr %1241, i32 0, i32 0
  %1243 = load ptr, ptr %1242, align 8, !tbaa !18
  %1244 = getelementptr inbounds %struct.UT_hash_table, ptr %1243, i32 0, i32 1
  %1245 = load i32, ptr %1244, align 8, !tbaa !23
  %1246 = mul i32 %1245, 2
  %1247 = sub i32 %1246, 1
  %1248 = and i32 %1239, %1247
  store i32 %1248, ptr %23, align 4, !tbaa !11
  br label %1249

1249:                                             ; preds = %1236
  br label %1250

1250:                                             ; preds = %1249
  %1251 = load ptr, ptr %27, align 8, !tbaa !5
  %1252 = load i32, ptr %23, align 4, !tbaa !11
  %1253 = zext i32 %1252 to i64
  %1254 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1251, i64 %1253
  store ptr %1254, ptr %28, align 8, !tbaa !5
  %1255 = load ptr, ptr %28, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1255, i32 0, i32 1
  %1257 = load i32, ptr %1256, align 8, !tbaa !47
  %1258 = add i32 %1257, 1
  store i32 %1258, ptr %1256, align 8, !tbaa !47
  %1259 = load ptr, ptr %8, align 8, !tbaa !5
  %1260 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1259, i32 0, i32 0
  %1261 = getelementptr inbounds %struct.UT_hash_handle, ptr %1260, i32 0, i32 0
  %1262 = load ptr, ptr %1261, align 8, !tbaa !18
  %1263 = getelementptr inbounds %struct.UT_hash_table, ptr %1262, i32 0, i32 6
  %1264 = load i32, ptr %1263, align 8, !tbaa !52
  %1265 = icmp ugt i32 %1258, %1264
  br i1 %1265, label %1266, label %1286

1266:                                             ; preds = %1250
  %1267 = load ptr, ptr %8, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1267, i32 0, i32 0
  %1269 = getelementptr inbounds %struct.UT_hash_handle, ptr %1268, i32 0, i32 0
  %1270 = load ptr, ptr %1269, align 8, !tbaa !18
  %1271 = getelementptr inbounds %struct.UT_hash_table, ptr %1270, i32 0, i32 7
  %1272 = load i32, ptr %1271, align 4, !tbaa !53
  %1273 = add i32 %1272, 1
  store i32 %1273, ptr %1271, align 4, !tbaa !53
  %1274 = load ptr, ptr %28, align 8, !tbaa !5
  %1275 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1274, i32 0, i32 1
  %1276 = load i32, ptr %1275, align 8, !tbaa !47
  %1277 = load ptr, ptr %8, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1277, i32 0, i32 0
  %1279 = getelementptr inbounds %struct.UT_hash_handle, ptr %1278, i32 0, i32 0
  %1280 = load ptr, ptr %1279, align 8, !tbaa !18
  %1281 = getelementptr inbounds %struct.UT_hash_table, ptr %1280, i32 0, i32 6
  %1282 = load i32, ptr %1281, align 8, !tbaa !52
  %1283 = udiv i32 %1276, %1282
  %1284 = load ptr, ptr %28, align 8, !tbaa !5
  %1285 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1284, i32 0, i32 2
  store i32 %1283, ptr %1285, align 4, !tbaa !50
  br label %1286

1286:                                             ; preds = %1266, %1250
  %1287 = load ptr, ptr %25, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.UT_hash_handle, ptr %1287, i32 0, i32 3
  store ptr null, ptr %1288, align 8, !tbaa !49
  %1289 = load ptr, ptr %28, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1289, i32 0, i32 0
  %1291 = load ptr, ptr %1290, align 8, !tbaa !27
  %1292 = load ptr, ptr %25, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.UT_hash_handle, ptr %1292, i32 0, i32 4
  store ptr %1291, ptr %1293, align 8, !tbaa !54
  %1294 = load ptr, ptr %28, align 8, !tbaa !5
  %1295 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1294, i32 0, i32 0
  %1296 = load ptr, ptr %1295, align 8, !tbaa !27
  %1297 = icmp ne ptr %1296, null
  br i1 %1297, label %1298, label %1304

1298:                                             ; preds = %1286
  %1299 = load ptr, ptr %25, align 8, !tbaa !5
  %1300 = load ptr, ptr %28, align 8, !tbaa !5
  %1301 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1300, i32 0, i32 0
  %1302 = load ptr, ptr %1301, align 8, !tbaa !27
  %1303 = getelementptr inbounds %struct.UT_hash_handle, ptr %1302, i32 0, i32 3
  store ptr %1299, ptr %1303, align 8, !tbaa !49
  br label %1304

1304:                                             ; preds = %1298, %1286
  %1305 = load ptr, ptr %25, align 8, !tbaa !5
  %1306 = load ptr, ptr %28, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1306, i32 0, i32 0
  store ptr %1305, ptr %1307, align 8, !tbaa !27
  %1308 = load ptr, ptr %26, align 8, !tbaa !5
  store ptr %1308, ptr %25, align 8, !tbaa !5
  br label %1229, !llvm.loop !56

1309:                                             ; preds = %1229
  br label %1310

1310:                                             ; preds = %1309
  %1311 = load i32, ptr %24, align 4, !tbaa !11
  %1312 = add i32 %1311, 1
  store i32 %1312, ptr %24, align 4, !tbaa !11
  br label %1208, !llvm.loop !57

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

1354:                                             ; preds = %1313
  %1355 = load ptr, ptr %8, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1355, i32 0, i32 0
  %1357 = getelementptr inbounds %struct.UT_hash_handle, ptr %1356, i32 0, i32 0
  %1358 = load ptr, ptr %1357, align 8, !tbaa !18
  %1359 = getelementptr inbounds %struct.UT_hash_table, ptr %1358, i32 0, i32 8
  %1360 = load i32, ptr %1359, align 8, !tbaa !58
  %1361 = add i32 %1360, 1
  br label %1363

1362:                                             ; preds = %1313
  br label %1363

1363:                                             ; preds = %1362, %1354
  %1364 = phi i32 [ %1361, %1354 ], [ 0, %1362 ]
  %1365 = load ptr, ptr %8, align 8, !tbaa !5
  %1366 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1365, i32 0, i32 0
  %1367 = getelementptr inbounds %struct.UT_hash_handle, ptr %1366, i32 0, i32 0
  %1368 = load ptr, ptr %1367, align 8, !tbaa !18
  %1369 = getelementptr inbounds %struct.UT_hash_table, ptr %1368, i32 0, i32 8
  store i32 %1364, ptr %1369, align 8, !tbaa !58
  %1370 = load ptr, ptr %8, align 8, !tbaa !5
  %1371 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1370, i32 0, i32 0
  %1372 = getelementptr inbounds %struct.UT_hash_handle, ptr %1371, i32 0, i32 0
  %1373 = load ptr, ptr %1372, align 8, !tbaa !18
  %1374 = getelementptr inbounds %struct.UT_hash_table, ptr %1373, i32 0, i32 8
  %1375 = load i32, ptr %1374, align 8, !tbaa !58
  %1376 = icmp ugt i32 %1375, 1
  br i1 %1376, label %1377, label %1383

1377:                                             ; preds = %1363
  %1378 = load ptr, ptr %8, align 8, !tbaa !5
  %1379 = getelementptr inbounds %struct.cmap_UVS_Entry, ptr %1378, i32 0, i32 0
  %1380 = getelementptr inbounds %struct.UT_hash_handle, ptr %1379, i32 0, i32 0
  %1381 = load ptr, ptr %1380, align 8, !tbaa !18
  %1382 = getelementptr inbounds %struct.UT_hash_table, ptr %1381, i32 0, i32 9
  store i32 1, ptr %1382, align 4, !tbaa !51
  br label %1383

1383:                                             ; preds = %1377, %1363
  br label %1384

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

1385:                                             ; preds = %1384
  br label %1386

1386:                                             ; preds = %1385
  br label %1387

1387:                                             ; preds = %1386, %1131, %1117
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #9
  br label %1388

1388:                                             ; preds = %1387
  br label %1389

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

1390:                                             ; preds = %1389
  br label %1391

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

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

1394:                                             ; preds = %1393
  br label %1395

1395:                                             ; preds = %1394
  store i1 true, ptr %4, align 1
  store i32 1, ptr %29, align 4
  br label %1397

1396:                                             ; preds = %517
  store i1 false, ptr %4, align 1
  store i32 1, ptr %29, align 4
  br label %1397

1397:                                             ; preds = %1396, %1395
  call void @llvm.lifetime.end.p0(i64 8, ptr %8) #9
  %1398 = load i1, ptr %4, align 1
  ret i1 %1398
}

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { 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 #2 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nounwind willreturn memory(argmem: readwrite) }
attributes #4 = { 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 #5 = { 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 #6 = { nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #7 = { nounwind "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #8 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #9 = { nounwind }
attributes #10 = { nounwind willreturn memory(read) }
attributes #11 = { nounwind allocsize(0) }
attributes #12 = { 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 = !{!"short", !7, i64 0}
!11 = !{!12, !12, i64 0}
!12 = !{!"int", !7, i64 0}
!13 = !{!7, !7, i64 0}
!14 = distinct !{!14, !15}
!15 = !{!"llvm.loop.mustprogress"}
!16 = !{!17, !6, i64 8}
!17 = !{!"", !6, i64 0, !6, i64 8}
!18 = !{!19, !6, i64 0}
!19 = !{!"", !20, i64 0, !21, i64 56, !22, i64 64}
!20 = !{!"UT_hash_handle", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !12, i64 48, !12, i64 52}
!21 = !{!"", !12, i64 0, !12, i64 4}
!22 = !{!"otfcc_Handle", !12, i64 0, !10, i64 4, !6, i64 8}
!23 = !{!24, !12, i64 8}
!24 = !{!"UT_hash_table", !6, i64 0, !12, i64 8, !12, i64 12, !12, i64 16, !6, i64 24, !25, i64 32, !12, i64 40, !12, i64 44, !12, i64 48, !12, i64 52, !12, i64 56}
!25 = !{!"long", !7, i64 0}
!26 = !{!24, !6, i64 0}
!27 = !{!28, !6, i64 0}
!28 = !{!"UT_hash_bucket", !6, i64 0, !12, i64 8, !12, i64 12}
!29 = !{!24, !25, i64 32}
!30 = !{!19, !12, i64 52}
!31 = !{!19, !12, i64 48}
!32 = !{!19, !6, i64 40}
!33 = !{!19, !6, i64 32}
!34 = distinct !{!34, !15}
!35 = !{!36, !6, i64 64}
!36 = !{!"otfcc_HandlePackage", !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}
!37 = !{i64 0, i64 4, !11, i64 4, i64 2, !9, i64 8, i64 8, !5}
!38 = !{i64 0, i64 4, !11, i64 4, i64 4, !11}
!39 = distinct !{!39, !15}
!40 = !{!19, !6, i64 16}
!41 = !{!19, !6, i64 8}
!42 = !{!24, !6, i64 24}
!43 = !{!24, !12, i64 12}
!44 = !{!24, !12, i64 56}
!45 = !{!20, !6, i64 16}
!46 = !{!24, !12, i64 16}
!47 = !{!28, !12, i64 8}
!48 = !{!19, !6, i64 24}
!49 = !{!20, !6, i64 24}
!50 = !{!28, !12, i64 12}
!51 = !{!24, !12, i64 52}
!52 = !{!24, !12, i64 40}
!53 = !{!24, !12, i64 44}
!54 = !{!20, !6, i64 32}
!55 = !{!20, !12, i64 52}
!56 = distinct !{!56, !15}
!57 = distinct !{!57, !15}
!58 = !{!24, !12, i64 48}


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

@otfcc_iHandle = external local_unnamed_addr constant %struct.otfcc_HandlePackage, align 8

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @__caryll_allocate_clean(i64 noundef, i64 noundef) local_unnamed_addr #0

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef zeroext i1 @otfcc_encodeCmapUVSByIndex(ptr nocapture noundef %0, i64 %1, i16 noundef zeroext %2) local_unnamed_addr #4 {
  %4 = alloca %struct.cmap_UVS_key, align 8
  store i64 %1, ptr %4, align 8
  %sh.diff = lshr i64 %1, 32
  %tr.sh.diff = trunc nuw i64 %sh.diff to i32
  %5 = and i32 %tr.sh.diff, -16777216
  %6 = add i32 %5, -1640531527
  %sh.diff538 = lshr i64 %1, 32
  %tr.sh.diff539 = trunc nuw i64 %sh.diff538 to i32
  %7 = and i32 %tr.sh.diff539, 16711680
  %8 = add i32 %6, %7
  %sh.diff540 = lshr i64 %1, 32
  %tr.sh.diff541 = trunc nuw i64 %sh.diff540 to i32
  %9 = and i32 %tr.sh.diff541, 65280
  %10 = add i32 %8, %9
  %11 = lshr i64 %1, 32
  %12 = trunc nuw i64 %11 to i32
  %13 = and i32 %12, 255
  %14 = add i32 %10, %13
  %15 = trunc i64 %1 to i32
  %16 = and i32 %15, -16777216
  %17 = trunc i64 %1 to i32
  %18 = and i32 %17, 16711680
  %19 = trunc i64 %1 to i32
  %20 = and i32 %19, 65280
  %21 = trunc i64 %1 to i32
  %22 = and i32 %21, 255
  %23 = add i32 %16, -1622558014
  %24 = sub i32 %23, %14
  %25 = add i32 %24, %18
  %26 = add i32 %25, %20
  %27 = add i32 %26, %22
  %28 = xor i32 %27, 522093
  %29 = add i32 %14, 17973513
  %30 = sub i32 %29, %28
  %31 = shl i32 %28, 8
  %32 = xor i32 %30, %31
  %33 = add i32 %28, %32
  %34 = sub i32 -17973513, %33
  %35 = lshr i32 %32, 13
  %36 = xor i32 %34, %35
  %37 = add i32 %32, %36
  %38 = sub i32 %28, %37
  %39 = lshr i32 %36, 12
  %40 = xor i32 %38, %39
  %41 = add i32 %36, %40
  %42 = sub i32 %32, %41
  %43 = shl i32 %40, 16
  %44 = xor i32 %42, %43
  %45 = add i32 %40, %44
  %46 = sub i32 %36, %45
  %47 = lshr i32 %44, 5
  %48 = xor i32 %46, %47
  %49 = add i32 %44, %48
  %50 = sub i32 %40, %49
  %51 = lshr i32 %48, 3
  %52 = xor i32 %50, %51
  %53 = add i32 %48, %52
  %54 = sub i32 %44, %53
  %55 = shl i32 %52, 10
  %56 = xor i32 %54, %55
  %57 = add i32 %52, %56
  %58 = sub i32 %48, %57
  %59 = lshr i32 %56, 15
  %60 = xor i32 %58, %59
  %61 = getelementptr inbounds i8, ptr %0, i64 8
  %62 = load ptr, ptr %61, align 8, !tbaa !5
  %.not = icmp eq ptr %62, null
  br i1 %.not, label %.loopexit, label %63

63:                                               ; preds = %3
  %64 = load ptr, ptr %62, align 8, !tbaa !10
  %65 = getelementptr inbounds i8, ptr %64, i64 8
  %66 = load i32, ptr %65, align 8, !tbaa !17
  %67 = add i32 %66, -1
  %68 = and i32 %67, %60
  %69 = load ptr, ptr %64, align 8, !tbaa !20
  %70 = zext i32 %68 to i64
  %71 = getelementptr inbounds %struct.UT_hash_bucket, ptr %69, i64 %70
  %72 = load ptr, ptr %71, align 8, !tbaa !21
  %.not479 = icmp eq ptr %72, null
  br i1 %.not479, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %63
  %73 = getelementptr inbounds i8, ptr %64, i64 32
  %74 = load i64, ptr %73, align 8, !tbaa !23
  %75 = sub i64 0, %74
  %76 = getelementptr inbounds i8, ptr %72, i64 %75
  %77 = getelementptr inbounds i8, ptr %64, i64 32
  br label %78

78:                                               ; preds = %93, %.lr.ph
  %.1527 = phi ptr [ %76, %.lr.ph ], [ %96, %93 ]
  %79 = getelementptr inbounds i8, ptr %.1527, i64 52
  %80 = load i32, ptr %79, align 4, !tbaa !24
  %81 = icmp eq i32 %80, %60
  br i1 %81, label %82, label %90

82:                                               ; preds = %78
  %83 = getelementptr inbounds i8, ptr %.1527, i64 48
  %84 = load i32, ptr %83, align 8, !tbaa !25
  %85 = icmp eq i32 %84, 8
  br i1 %85, label %86, label %90

86:                                               ; preds = %82
  %87 = getelementptr inbounds i8, ptr %.1527, i64 40
  %88 = load ptr, ptr %87, align 8, !tbaa !26
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(8) %88, ptr noundef nonnull dereferenceable(8) %4, i64 8)
  %89 = icmp eq i32 %bcmp, 0
  br i1 %89, label %.loopexit525, label %90

90:                                               ; preds = %86, %82, %78
  %91 = getelementptr inbounds i8, ptr %.1527, i64 32
  %92 = load ptr, ptr %91, align 8, !tbaa !27
  %.not481 = icmp eq ptr %92, null
  br i1 %.not481, label %.loopexit, label %93

93:                                               ; preds = %90
  %94 = load i64, ptr %77, align 8, !tbaa !23
  %95 = sub i64 0, %94
  %96 = getelementptr inbounds i8, ptr %92, i64 %95
  br label %78, !llvm.loop !28

.loopexit:                                        ; preds = %90, %63, %3
  %97 = tail call ptr @__caryll_allocate_clean(i64 noundef 80, i64 noundef 87)
  %98 = getelementptr inbounds i8, ptr %97, i64 64
  %99 = load ptr, ptr getelementptr inbounds (i8, ptr @otfcc_iHandle, i64 64), align 8, !tbaa !30
  %100 = tail call { i64, ptr } %99(i16 noundef zeroext %2) #7
  %101 = extractvalue { i64, ptr } %100, 0
  %102 = extractvalue { i64, ptr } %100, 1
  store i64 %101, ptr %98, align 8
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %97, i64 72
  store ptr %102, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !32
  %103 = getelementptr inbounds i8, ptr %97, i64 56
  store i64 %1, ptr %103, align 8
  %104 = getelementptr inbounds i8, ptr %97, i64 52
  store i32 %60, ptr %104, align 4, !tbaa !24
  %105 = getelementptr inbounds i8, ptr %97, i64 40
  store ptr %103, ptr %105, align 8, !tbaa !26
  %106 = getelementptr inbounds i8, ptr %97, i64 48
  store i32 8, ptr %106, align 8, !tbaa !25
  %107 = load ptr, ptr %61, align 8, !tbaa !5
  %.not482 = icmp eq ptr %107, null
  br i1 %.not482, label %108, label %118

108:                                              ; preds = %.loopexit
  %109 = getelementptr inbounds i8, ptr %97, i64 8
  %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) %109, i8 0, i64 16, i1 false)
  store ptr %calloc548, ptr %97, align 8, !tbaa !10
  %.not483 = icmp eq ptr %calloc548, null
  br i1 %.not483, label %110, label %111

110:                                              ; preds = %108
  tail call void @exit(i32 noundef -1) #8
  unreachable

111:                                              ; preds = %108
  %112 = getelementptr inbounds i8, ptr %calloc548, i64 24
  store ptr %97, ptr %112, align 8, !tbaa !33
  %113 = getelementptr inbounds i8, ptr %calloc548, i64 8
  store i32 32, ptr %113, align 8, !tbaa !17
  %114 = getelementptr inbounds i8, ptr %calloc548, i64 12
  store i32 5, ptr %114, align 4, !tbaa !34
  %calloc547 = tail call dereferenceable_or_null(512) ptr @calloc(i64 1, i64 512)
  store ptr %calloc547, ptr %calloc548, align 8, !tbaa !20
  %115 = getelementptr inbounds i8, ptr %calloc548, i64 56
  store i32 -1609490463, ptr %115, align 8, !tbaa !35
  %.not484 = icmp eq ptr %calloc547, null
  br i1 %.not484, label %116, label %117

116:                                              ; preds = %111
  tail call void @exit(i32 noundef -1) #8
  unreachable

117:                                              ; preds = %111
  store ptr %97, ptr %61, align 8, !tbaa !5
  br label %129

118:                                              ; preds = %.loopexit
  %119 = load ptr, ptr %107, align 8, !tbaa !10
  store ptr %119, ptr %97, align 8, !tbaa !10
  %120 = getelementptr inbounds i8, ptr %97, i64 16
  store ptr null, ptr %120, align 8, !tbaa !36
  %121 = getelementptr inbounds i8, ptr %119, i64 24
  %122 = load ptr, ptr %121, align 8, !tbaa !33
  %123 = getelementptr inbounds i8, ptr %119, i64 32
  %124 = load i64, ptr %123, align 8, !tbaa !23
  %125 = sub i64 0, %124
  %126 = getelementptr inbounds i8, ptr %122, i64 %125
  %127 = getelementptr inbounds i8, ptr %97, i64 8
  store ptr %126, ptr %127, align 8, !tbaa !37
  %128 = getelementptr inbounds i8, ptr %122, i64 16
  store ptr %97, ptr %128, align 8, !tbaa !38
  store ptr %97, ptr %121, align 8, !tbaa !33
  %.phi.trans.insert = getelementptr inbounds i8, ptr %119, i64 8
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !17
  %.pre537 = load ptr, ptr %119, align 8, !tbaa !20
  br label %129

129:                                              ; preds = %117, %118
  %130 = phi ptr [ %calloc547, %117 ], [ %.pre537, %118 ]
  %131 = phi i32 [ 32, %117 ], [ %.pre, %118 ]
  %132 = phi ptr [ %calloc548, %117 ], [ %119, %118 ]
  %133 = getelementptr inbounds i8, ptr %132, i64 16
  %134 = load i32, ptr %133, align 8, !tbaa !39
  %135 = add i32 %134, 1
  store i32 %135, ptr %133, align 8, !tbaa !39
  %136 = add i32 %131, -1
  %137 = and i32 %136, %60
  %138 = zext i32 %137 to i64
  %139 = getelementptr inbounds %struct.UT_hash_bucket, ptr %130, i64 %138
  %140 = getelementptr inbounds i8, ptr %139, i64 8
  %141 = load i32, ptr %140, align 8, !tbaa !40
  %142 = add i32 %141, 1
  store i32 %142, ptr %140, align 8, !tbaa !40
  %143 = load ptr, ptr %139, align 8, !tbaa !21
  %144 = getelementptr inbounds i8, ptr %97, i64 32
  store ptr %143, ptr %144, align 8, !tbaa !27
  %145 = getelementptr inbounds i8, ptr %97, i64 24
  store ptr null, ptr %145, align 8, !tbaa !41
  %.not485 = icmp eq ptr %143, null
  br i1 %.not485, label %148, label %146

146:                                              ; preds = %129
  %147 = getelementptr inbounds i8, ptr %143, i64 24
  store ptr %97, ptr %147, align 8, !tbaa !42
  br label %148

148:                                              ; preds = %146, %129
  store ptr %97, ptr %139, align 8, !tbaa !21
  %149 = getelementptr inbounds i8, ptr %139, i64 12
  %150 = load i32, ptr %149, align 4, !tbaa !43
  %151 = mul i32 %150, 10
  %152 = add i32 %151, 10
  %.not486 = icmp ult i32 %142, %152
  br i1 %.not486, label %.loopexit525, label %153

153:                                              ; preds = %148
  %154 = getelementptr inbounds i8, ptr %132, i64 52
  %155 = load i32, ptr %154, align 4, !tbaa !44
  %.not487 = icmp eq i32 %155, 0
  br i1 %.not487, label %156, label %.loopexit525

156:                                              ; preds = %153
  %157 = zext i32 %131 to i64
  %158 = shl nuw nsw i64 %157, 5
  %calloc = tail call ptr @calloc(i64 1, i64 %158)
  %.not488 = icmp eq ptr %calloc, null
  br i1 %.not488, label %159, label %160

159:                                              ; preds = %156
  tail call void @exit(i32 noundef -1) #8
  unreachable

160:                                              ; preds = %156
  %161 = getelementptr inbounds i8, ptr %132, i64 12
  %162 = load i32, ptr %161, align 4, !tbaa !34
  %163 = add i32 %162, 1
  %164 = lshr i32 %135, %163
  %165 = shl i32 %131, 1
  %166 = add i32 %165, -1
  %167 = and i32 %166, %135
  %.not489 = icmp ne i32 %167, 0
  %168 = zext i1 %.not489 to i32
  %169 = add i32 %164, %168
  %170 = getelementptr inbounds i8, ptr %132, i64 40
  store i32 %169, ptr %170, align 8, !tbaa !45
  %171 = getelementptr inbounds i8, ptr %132, i64 44
  store i32 0, ptr %171, align 4, !tbaa !46
  %.not535 = icmp eq i32 %131, 0
  br i1 %.not535, label %._crit_edge534, label %.lr.ph533

.lr.ph533:                                        ; preds = %160, %._crit_edge
  %172 = phi i32 [ %198, %._crit_edge ], [ 0, %160 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 0, %160 ]
  %173 = getelementptr inbounds %struct.UT_hash_bucket, ptr %130, i64 %indvars.iv
  %174 = load ptr, ptr %173, align 8, !tbaa !21
  %.not490528 = icmp eq ptr %174, null
  br i1 %.not490528, label %._crit_edge, label %.lr.ph530

.lr.ph530:                                        ; preds = %.lr.ph533, %197
  %175 = phi i32 [ %192, %197 ], [ %172, %.lr.ph533 ]
  %.0424529 = phi ptr [ %177, %197 ], [ %174, %.lr.ph533 ]
  %176 = getelementptr inbounds i8, ptr %.0424529, i64 32
  %177 = load ptr, ptr %176, align 8, !tbaa !47
  %178 = getelementptr inbounds i8, ptr %.0424529, i64 52
  %179 = load i32, ptr %178, align 4, !tbaa !48
  %180 = and i32 %179, %166
  %181 = zext i32 %180 to i64
  %182 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc, i64 %181
  %183 = getelementptr inbounds i8, ptr %182, i64 8
  %184 = load i32, ptr %183, align 8, !tbaa !40
  %185 = add i32 %184, 1
  store i32 %185, ptr %183, align 8, !tbaa !40
  %186 = icmp ugt i32 %185, %169
  br i1 %186, label %187, label %191

187:                                              ; preds = %.lr.ph530
  %188 = add i32 %175, 1
  store i32 %188, ptr %171, align 4, !tbaa !46
  %189 = udiv i32 %185, %169
  %190 = getelementptr inbounds i8, ptr %182, i64 12
  store i32 %189, ptr %190, align 4, !tbaa !43
  br label %191

191:                                              ; preds = %187, %.lr.ph530
  %192 = phi i32 [ %188, %187 ], [ %175, %.lr.ph530 ]
  %193 = getelementptr inbounds i8, ptr %.0424529, i64 24
  store ptr null, ptr %193, align 8, !tbaa !42
  %194 = load ptr, ptr %182, align 8, !tbaa !21
  store ptr %194, ptr %176, align 8, !tbaa !47
  %.not491 = icmp eq ptr %194, null
  br i1 %.not491, label %197, label %195

195:                                              ; preds = %191
  %196 = getelementptr inbounds i8, ptr %194, i64 24
  store ptr %.0424529, ptr %196, align 8, !tbaa !42
  br label %197

197:                                              ; preds = %195, %191
  store ptr %.0424529, ptr %182, align 8, !tbaa !21
  %.not490 = icmp eq ptr %177, null
  br i1 %.not490, label %._crit_edge, label %.lr.ph530, !llvm.loop !49

._crit_edge:                                      ; preds = %197, %.lr.ph533
  %198 = phi i32 [ %172, %.lr.ph533 ], [ %192, %197 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %157
  br i1 %exitcond.not, label %._crit_edge534, label %.lr.ph533, !llvm.loop !50

._crit_edge534:                                   ; preds = %._crit_edge, %160
  tail call void @free(ptr noundef %130) #7
  %199 = load ptr, ptr %97, align 8, !tbaa !10
  %200 = getelementptr inbounds i8, ptr %199, i64 8
  %201 = load i32, ptr %200, align 8, !tbaa !17
  %202 = shl i32 %201, 1
  store i32 %202, ptr %200, align 8, !tbaa !17
  %203 = getelementptr inbounds i8, ptr %199, i64 12
  %204 = load i32, ptr %203, align 4, !tbaa !34
  %205 = add i32 %204, 1
  store i32 %205, ptr %203, align 4, !tbaa !34
  store ptr %calloc, ptr %199, align 8, !tbaa !20
  %206 = getelementptr inbounds i8, ptr %199, i64 44
  %207 = load i32, ptr %206, align 4, !tbaa !46
  %208 = getelementptr inbounds i8, ptr %199, i64 16
  %209 = load i32, ptr %208, align 8, !tbaa !39
  %210 = lshr i32 %209, 1
  %211 = icmp ugt i32 %207, %210
  %212 = getelementptr inbounds i8, ptr %199, i64 48
  br i1 %211, label %213, label %.thread493

.thread493:                                       ; preds = %._crit_edge534
  store i32 0, ptr %212, align 8, !tbaa !51
  br label %.loopexit525

213:                                              ; preds = %._crit_edge534
  %214 = load i32, ptr %212, align 8, !tbaa !51
  %215 = add i32 %214, 1
  store i32 %215, ptr %212, align 8, !tbaa !51
  %216 = icmp ugt i32 %215, 1
  br i1 %216, label %217, label %.loopexit525

217:                                              ; preds = %213
  %218 = getelementptr inbounds i8, ptr %199, i64 52
  store i32 1, ptr %218, align 4, !tbaa !44
  br label %.loopexit525

.loopexit525:                                     ; preds = %86, %.thread493, %148, %153, %213, %217
  %219 = phi i1 [ true, %148 ], [ true, %153 ], [ true, %213 ], [ true, %217 ], [ true, %.thread493 ], [ false, %86 ]
  ret i1 %219
}

; 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 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { 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 #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #3 = { 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 #4 = { 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 #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 = { nounwind }
attributes #8 = { 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, !7, i64 8}
!6 = !{!"", !7, i64 0, !7, i64 8}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!11, !7, i64 0}
!11 = !{!"", !12, i64 0, !14, i64 56, !15, i64 64}
!12 = !{!"UT_hash_handle", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !13, i64 48, !13, i64 52}
!13 = !{!"int", !8, i64 0}
!14 = !{!"", !13, i64 0, !13, i64 4}
!15 = !{!"otfcc_Handle", !13, i64 0, !16, i64 4, !7, i64 8}
!16 = !{!"short", !8, i64 0}
!17 = !{!18, !13, i64 8}
!18 = !{!"UT_hash_table", !7, i64 0, !13, i64 8, !13, i64 12, !13, i64 16, !7, i64 24, !19, i64 32, !13, i64 40, !13, i64 44, !13, i64 48, !13, i64 52, !13, i64 56}
!19 = !{!"long", !8, i64 0}
!20 = !{!18, !7, i64 0}
!21 = !{!22, !7, i64 0}
!22 = !{!"UT_hash_bucket", !7, i64 0, !13, i64 8, !13, i64 12}
!23 = !{!18, !19, i64 32}
!24 = !{!11, !13, i64 52}
!25 = !{!11, !13, i64 48}
!26 = !{!11, !7, i64 40}
!27 = !{!11, !7, i64 32}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!31, !7, i64 64}
!31 = !{!"otfcc_HandlePackage", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !7, i64 48, !7, i64 56, !7, i64 64, !7, i64 72, !7, i64 80, !7, i64 88}
!32 = !{!7, !7, i64 0}
!33 = !{!18, !7, i64 24}
!34 = !{!18, !13, i64 12}
!35 = !{!18, !13, i64 56}
!36 = !{!11, !7, i64 16}
!37 = !{!11, !7, i64 8}
!38 = !{!12, !7, i64 16}
!39 = !{!18, !13, i64 16}
!40 = !{!22, !13, i64 8}
!41 = !{!11, !7, i64 24}
!42 = !{!12, !7, i64 24}
!43 = !{!22, !13, i64 12}
!44 = !{!18, !13, i64 52}
!45 = !{!18, !13, i64 40}
!46 = !{!18, !13, i64 44}
!47 = !{!12, !7, i64 32}
!48 = !{!12, !13, i64 52}
!49 = distinct !{!49, !29}
!50 = distinct !{!50, !29}
!51 = !{!18, !13, i64 48}


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