; 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.otfcc_Handle = type { i32, i16, ptr }
%struct.table_cmap = type { ptr, ptr }
%struct.cmap_Entry = type { %struct.UT_hash_handle, i32, %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: nounwind uwtable
define dso_local zeroext i1 @otfcc_encodeCmapByIndex(ptr noundef %0, i32 noundef %1, i16 noundef zeroext %2) #0 {
  %4 = alloca i1, align 1
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %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 ptr %0, ptr %5, align 8, !tbaa !5
  store i32 %1, ptr %6, align 4, !tbaa !9
  store i16 %2, ptr %7, align 2, !tbaa !11
  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 %6, ptr %13, align 8, !tbaa !5
  store i32 -17973521, ptr %9, align 4, !tbaa !9
  store i32 -1640531527, ptr %11, align 4, !tbaa !9
  store i32 -1640531527, ptr %10, align 4, !tbaa !9
  store i32 4, ptr %12, align 4, !tbaa !9
  br label %33

33:                                               ; preds = %201, %32
  %34 = load i32, ptr %12, align 4, !tbaa !9
  %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 !9
  %60 = add i32 %59, %58
  store i32 %60, ptr %10, align 4, !tbaa !9
  %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 !9
  %84 = add i32 %83, %82
  store i32 %84, ptr %11, align 4, !tbaa !9
  %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 !9
  %108 = add i32 %107, %106
  store i32 %108, ptr %9, align 4, !tbaa !9
  br label %109

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

206:                                              ; preds = %33
  %207 = load i32, ptr %9, align 4, !tbaa !9
  %208 = add i32 %207, 4
  store i32 %208, ptr %9, align 4, !tbaa !9
  %209 = load i32, ptr %12, align 4, !tbaa !9
  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 !9
  %217 = add i32 %216, %215
  store i32 %217, ptr %9, align 4, !tbaa !9
  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 !9
  %225 = add i32 %224, %223
  store i32 %225, ptr %9, align 4, !tbaa !9
  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 !9
  %233 = add i32 %232, %231
  store i32 %233, ptr %9, align 4, !tbaa !9
  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 !9
  %241 = add i32 %240, %239
  store i32 %241, ptr %11, align 4, !tbaa !9
  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 !9
  %249 = add i32 %248, %247
  store i32 %249, ptr %11, align 4, !tbaa !9
  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 !9
  %257 = add i32 %256, %255
  store i32 %257, ptr %11, align 4, !tbaa !9
  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 !9
  %264 = add i32 %263, %262
  store i32 %264, ptr %11, align 4, !tbaa !9
  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 !9
  %272 = add i32 %271, %270
  store i32 %272, ptr %10, align 4, !tbaa !9
  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 !9
  %280 = add i32 %279, %278
  store i32 %280, ptr %10, align 4, !tbaa !9
  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 !9
  %288 = add i32 %287, %286
  store i32 %288, ptr %10, align 4, !tbaa !9
  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 !9
  %295 = add i32 %294, %293
  store i32 %295, ptr %10, align 4, !tbaa !9
  br label %296

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

297:                                              ; preds = %296
  %298 = load i32, ptr %11, align 4, !tbaa !9
  %299 = load i32, ptr %10, align 4, !tbaa !9
  %300 = sub i32 %299, %298
  store i32 %300, ptr %10, align 4, !tbaa !9
  %301 = load i32, ptr %9, align 4, !tbaa !9
  %302 = load i32, ptr %10, align 4, !tbaa !9
  %303 = sub i32 %302, %301
  store i32 %303, ptr %10, align 4, !tbaa !9
  %304 = load i32, ptr %9, align 4, !tbaa !9
  %305 = lshr i32 %304, 13
  %306 = load i32, ptr %10, align 4, !tbaa !9
  %307 = xor i32 %306, %305
  store i32 %307, ptr %10, align 4, !tbaa !9
  %308 = load i32, ptr %9, align 4, !tbaa !9
  %309 = load i32, ptr %11, align 4, !tbaa !9
  %310 = sub i32 %309, %308
  store i32 %310, ptr %11, align 4, !tbaa !9
  %311 = load i32, ptr %10, align 4, !tbaa !9
  %312 = load i32, ptr %11, align 4, !tbaa !9
  %313 = sub i32 %312, %311
  store i32 %313, ptr %11, align 4, !tbaa !9
  %314 = load i32, ptr %10, align 4, !tbaa !9
  %315 = shl i32 %314, 8
  %316 = load i32, ptr %11, align 4, !tbaa !9
  %317 = xor i32 %316, %315
  store i32 %317, ptr %11, align 4, !tbaa !9
  %318 = load i32, ptr %10, align 4, !tbaa !9
  %319 = load i32, ptr %9, align 4, !tbaa !9
  %320 = sub i32 %319, %318
  store i32 %320, ptr %9, align 4, !tbaa !9
  %321 = load i32, ptr %11, align 4, !tbaa !9
  %322 = load i32, ptr %9, align 4, !tbaa !9
  %323 = sub i32 %322, %321
  store i32 %323, ptr %9, align 4, !tbaa !9
  %324 = load i32, ptr %11, align 4, !tbaa !9
  %325 = lshr i32 %324, 13
  %326 = load i32, ptr %9, align 4, !tbaa !9
  %327 = xor i32 %326, %325
  store i32 %327, ptr %9, align 4, !tbaa !9
  %328 = load i32, ptr %11, align 4, !tbaa !9
  %329 = load i32, ptr %10, align 4, !tbaa !9
  %330 = sub i32 %329, %328
  store i32 %330, ptr %10, align 4, !tbaa !9
  %331 = load i32, ptr %9, align 4, !tbaa !9
  %332 = load i32, ptr %10, align 4, !tbaa !9
  %333 = sub i32 %332, %331
  store i32 %333, ptr %10, align 4, !tbaa !9
  %334 = load i32, ptr %9, align 4, !tbaa !9
  %335 = lshr i32 %334, 12
  %336 = load i32, ptr %10, align 4, !tbaa !9
  %337 = xor i32 %336, %335
  store i32 %337, ptr %10, align 4, !tbaa !9
  %338 = load i32, ptr %9, align 4, !tbaa !9
  %339 = load i32, ptr %11, align 4, !tbaa !9
  %340 = sub i32 %339, %338
  store i32 %340, ptr %11, align 4, !tbaa !9
  %341 = load i32, ptr %10, align 4, !tbaa !9
  %342 = load i32, ptr %11, align 4, !tbaa !9
  %343 = sub i32 %342, %341
  store i32 %343, ptr %11, align 4, !tbaa !9
  %344 = load i32, ptr %10, align 4, !tbaa !9
  %345 = shl i32 %344, 16
  %346 = load i32, ptr %11, align 4, !tbaa !9
  %347 = xor i32 %346, %345
  store i32 %347, ptr %11, align 4, !tbaa !9
  %348 = load i32, ptr %10, align 4, !tbaa !9
  %349 = load i32, ptr %9, align 4, !tbaa !9
  %350 = sub i32 %349, %348
  store i32 %350, ptr %9, align 4, !tbaa !9
  %351 = load i32, ptr %11, align 4, !tbaa !9
  %352 = load i32, ptr %9, align 4, !tbaa !9
  %353 = sub i32 %352, %351
  store i32 %353, ptr %9, align 4, !tbaa !9
  %354 = load i32, ptr %11, align 4, !tbaa !9
  %355 = lshr i32 %354, 5
  %356 = load i32, ptr %9, align 4, !tbaa !9
  %357 = xor i32 %356, %355
  store i32 %357, ptr %9, align 4, !tbaa !9
  %358 = load i32, ptr %11, align 4, !tbaa !9
  %359 = load i32, ptr %10, align 4, !tbaa !9
  %360 = sub i32 %359, %358
  store i32 %360, ptr %10, align 4, !tbaa !9
  %361 = load i32, ptr %9, align 4, !tbaa !9
  %362 = load i32, ptr %10, align 4, !tbaa !9
  %363 = sub i32 %362, %361
  store i32 %363, ptr %10, align 4, !tbaa !9
  %364 = load i32, ptr %9, align 4, !tbaa !9
  %365 = lshr i32 %364, 3
  %366 = load i32, ptr %10, align 4, !tbaa !9
  %367 = xor i32 %366, %365
  store i32 %367, ptr %10, align 4, !tbaa !9
  %368 = load i32, ptr %9, align 4, !tbaa !9
  %369 = load i32, ptr %11, align 4, !tbaa !9
  %370 = sub i32 %369, %368
  store i32 %370, ptr %11, align 4, !tbaa !9
  %371 = load i32, ptr %10, align 4, !tbaa !9
  %372 = load i32, ptr %11, align 4, !tbaa !9
  %373 = sub i32 %372, %371
  store i32 %373, ptr %11, align 4, !tbaa !9
  %374 = load i32, ptr %10, align 4, !tbaa !9
  %375 = shl i32 %374, 10
  %376 = load i32, ptr %11, align 4, !tbaa !9
  %377 = xor i32 %376, %375
  store i32 %377, ptr %11, align 4, !tbaa !9
  %378 = load i32, ptr %10, align 4, !tbaa !9
  %379 = load i32, ptr %9, align 4, !tbaa !9
  %380 = sub i32 %379, %378
  store i32 %380, ptr %9, align 4, !tbaa !9
  %381 = load i32, ptr %11, align 4, !tbaa !9
  %382 = load i32, ptr %9, align 4, !tbaa !9
  %383 = sub i32 %382, %381
  store i32 %383, ptr %9, align 4, !tbaa !9
  %384 = load i32, ptr %11, align 4, !tbaa !9
  %385 = lshr i32 %384, 15
  %386 = load i32, ptr %9, align 4, !tbaa !9
  %387 = xor i32 %386, %385
  store i32 %387, ptr %9, align 4, !tbaa !9
  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 %5, align 8, !tbaa !5
  %396 = getelementptr inbounds %struct.table_cmap, ptr %395, i32 0, i32 0
  %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 !9
  %402 = load ptr, ptr %5, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.table_cmap, ptr %402, i32 0, i32 0
  %404 = load ptr, ptr %403, align 8, !tbaa !16
  %405 = getelementptr inbounds %struct.cmap_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 !22
  %410 = sub i32 %409, 1
  %411 = and i32 %401, %410
  store i32 %411, ptr %14, align 4, !tbaa !9
  br label %412

412:                                              ; preds = %400
  br label %413

413:                                              ; preds = %412
  br label %414

414:                                              ; preds = %413
  %415 = load ptr, ptr %5, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.table_cmap, ptr %415, i32 0, i32 0
  %417 = load ptr, ptr %416, align 8, !tbaa !16
  %418 = getelementptr inbounds %struct.cmap_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 !25
  %423 = load i32, ptr %14, align 4, !tbaa !9
  %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 !26
  %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 %5, align 8, !tbaa !5
  %432 = getelementptr inbounds %struct.table_cmap, ptr %431, i32 0, i32 0
  %433 = load ptr, ptr %432, align 8, !tbaa !16
  %434 = getelementptr inbounds %struct.cmap_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 !25
  %439 = load i32, ptr %14, align 4, !tbaa !9
  %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 !26
  %444 = load ptr, ptr %5, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.table_cmap, ptr %444, i32 0, i32 0
  %446 = load ptr, ptr %445, align 8, !tbaa !16
  %447 = getelementptr inbounds %struct.cmap_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 !28
  %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_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 !29
  %466 = load i32, ptr %9, align 4, !tbaa !9
  %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_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 !30
  %473 = zext i32 %472 to i64
  %474 = icmp eq i64 %473, 4
  br i1 %474, label %475, label %484

475:                                              ; preds = %468
  %476 = load ptr, ptr %8, align 8, !tbaa !5
  %477 = getelementptr inbounds %struct.cmap_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 !31
  %480 = call i32 @memcmp(ptr noundef %479, ptr noundef %6, i64 noundef 4) #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_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 !32
  %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_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 !32
  %496 = load ptr, ptr %5, align 8, !tbaa !5
  %497 = getelementptr inbounds %struct.table_cmap, ptr %496, i32 0, i32 0
  %498 = load ptr, ptr %497, align 8, !tbaa !16
  %499 = getelementptr inbounds %struct.cmap_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 !28
  %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 !33

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 %1397

520:                                              ; preds = %517
  %521 = call ptr @__caryll_allocate_clean(i64 noundef 80, i64 noundef 38)
  store ptr %521, ptr %8, align 8, !tbaa !5
  %522 = load ptr, ptr %8, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.cmap_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 !34
  %525 = load i16, ptr %7, align 2, !tbaa !11
  %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 !36
  call void @llvm.lifetime.end.p0(i64 16, ptr %15) #9
  %531 = load i32, ptr %6, align 4, !tbaa !9
  %532 = load ptr, ptr %8, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.cmap_Entry, ptr %532, i32 0, i32 1
  store i32 %531, ptr %533, align 8, !tbaa !37
  br label %534

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

535:                                              ; preds = %534
  br label %536

536:                                              ; preds = %535
  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
  %537 = load ptr, ptr %8, align 8, !tbaa !5
  %538 = getelementptr inbounds %struct.cmap_Entry, ptr %537, i32 0, i32 1
  store ptr %538, ptr %20, align 8, !tbaa !5
  store i32 -17973521, ptr %16, align 4, !tbaa !9
  store i32 -1640531527, ptr %18, align 4, !tbaa !9
  store i32 -1640531527, ptr %17, align 4, !tbaa !9
  store i32 4, ptr %19, align 4, !tbaa !9
  br label %539

539:                                              ; preds = %707, %536
  %540 = load i32, ptr %19, align 4, !tbaa !9
  %541 = icmp uge i32 %540, 12
  br i1 %541, label %542, label %712

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

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

706:                                              ; preds = %615
  br label %707

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

712:                                              ; preds = %539
  %713 = load i32, ptr %16, align 4, !tbaa !9
  %714 = add i32 %713, 4
  store i32 %714, ptr %16, align 4, !tbaa !9
  %715 = load i32, ptr %19, align 4, !tbaa !9
  switch i32 %715, label %802 [
    i32 11, label %716
    i32 10, label %724
    i32 9, label %732
    i32 8, label %740
    i32 7, label %748
    i32 6, label %756
    i32 5, label %764
    i32 4, label %771
    i32 3, label %779
    i32 2, label %787
    i32 1, label %795
  ]

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

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

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

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

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

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

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

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

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

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

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

802:                                              ; preds = %795, %712
  br label %803

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

894:                                              ; preds = %803
  br label %895

895:                                              ; preds = %894
  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 %896

896:                                              ; preds = %895
  br label %897

897:                                              ; preds = %896
  br label %898

898:                                              ; preds = %897
  br label %899

899:                                              ; preds = %898
  br label %900

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

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

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

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

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

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

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

994:                                              ; preds = %987
  br label %995

995:                                              ; preds = %994
  br label %996

996:                                              ; preds = %995
  br label %997

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

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

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

1055:                                             ; preds = %1011
  br label %1056

1056:                                             ; preds = %1055
  br label %1057

1057:                                             ; preds = %1056, %997
  br label %1058

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

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

1080:                                             ; preds = %1068
  br label %1081

1081:                                             ; preds = %1080
  br label %1082

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

1111:                                             ; preds = %1082
  %1112 = load ptr, ptr %8, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.cmap_Entry, ptr %1112, i32 0, i32 0
  %1114 = load ptr, ptr %22, align 8, !tbaa !5
  %1115 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1114, i32 0, i32 0
  %1116 = load ptr, ptr %1115, align 8, !tbaa !26
  %1117 = getelementptr inbounds %struct.UT_hash_handle, ptr %1116, i32 0, i32 3
  store ptr %1113, ptr %1117, align 8, !tbaa !48
  br label %1118

1118:                                             ; preds = %1111, %1082
  %1119 = load ptr, ptr %8, align 8, !tbaa !5
  %1120 = getelementptr inbounds %struct.cmap_Entry, ptr %1119, i32 0, i32 0
  %1121 = load ptr, ptr %22, align 8, !tbaa !5
  %1122 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1121, i32 0, i32 0
  store ptr %1120, ptr %1122, align 8, !tbaa !26
  %1123 = load ptr, ptr %22, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1123, i32 0, i32 1
  %1125 = load i32, ptr %1124, align 8, !tbaa !46
  %1126 = load ptr, ptr %22, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1126, i32 0, i32 2
  %1128 = load i32, ptr %1127, align 4, !tbaa !49
  %1129 = add i32 %1128, 1
  %1130 = mul i32 %1129, 10
  %1131 = icmp uge i32 %1125, %1130
  br i1 %1131, label %1132, label %1388

1132:                                             ; preds = %1118
  %1133 = load ptr, ptr %8, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.cmap_Entry, ptr %1133, i32 0, i32 0
  %1135 = getelementptr inbounds %struct.UT_hash_handle, ptr %1134, i32 0, i32 0
  %1136 = load ptr, ptr %1135, align 8, !tbaa !18
  %1137 = getelementptr inbounds %struct.UT_hash_table, ptr %1136, i32 0, i32 9
  %1138 = load i32, ptr %1137, align 4, !tbaa !50
  %1139 = icmp ne i32 %1138, 0
  br i1 %1139, label %1388, label %1140

1140:                                             ; preds = %1132
  br label %1141

1141:                                             ; preds = %1140
  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
  %1142 = load ptr, ptr %8, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.cmap_Entry, ptr %1142, i32 0, i32 0
  %1144 = getelementptr inbounds %struct.UT_hash_handle, ptr %1143, i32 0, i32 0
  %1145 = load ptr, ptr %1144, align 8, !tbaa !18
  %1146 = getelementptr inbounds %struct.UT_hash_table, ptr %1145, i32 0, i32 1
  %1147 = load i32, ptr %1146, align 8, !tbaa !22
  %1148 = zext i32 %1147 to i64
  %1149 = mul i64 2, %1148
  %1150 = mul i64 %1149, 16
  %1151 = call noalias ptr @malloc(i64 noundef %1150) #11
  store ptr %1151, ptr %27, align 8, !tbaa !5
  %1152 = load ptr, ptr %27, align 8, !tbaa !5
  %1153 = icmp ne ptr %1152, null
  br i1 %1153, label %1155, label %1154

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

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

1209:                                             ; preds = %1311, %1155
  %1210 = load i32, ptr %24, align 4, !tbaa !9
  %1211 = load ptr, ptr %8, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.cmap_Entry, ptr %1211, i32 0, i32 0
  %1213 = getelementptr inbounds %struct.UT_hash_handle, ptr %1212, i32 0, i32 0
  %1214 = load ptr, ptr %1213, align 8, !tbaa !18
  %1215 = getelementptr inbounds %struct.UT_hash_table, ptr %1214, i32 0, i32 1
  %1216 = load i32, ptr %1215, align 8, !tbaa !22
  %1217 = icmp ult i32 %1210, %1216
  br i1 %1217, label %1218, label %1314

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

1230:                                             ; preds = %1305, %1218
  %1231 = load ptr, ptr %25, align 8, !tbaa !5
  %1232 = icmp ne ptr %1231, null
  br i1 %1232, label %1233, label %1310

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

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

1250:                                             ; preds = %1237
  br label %1251

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

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

1287:                                             ; preds = %1267, %1251
  %1288 = load ptr, ptr %25, align 8, !tbaa !5
  %1289 = getelementptr inbounds %struct.UT_hash_handle, ptr %1288, i32 0, i32 3
  store ptr null, ptr %1289, align 8, !tbaa !48
  %1290 = load ptr, ptr %28, align 8, !tbaa !5
  %1291 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1290, i32 0, i32 0
  %1292 = load ptr, ptr %1291, align 8, !tbaa !26
  %1293 = load ptr, ptr %25, align 8, !tbaa !5
  %1294 = getelementptr inbounds %struct.UT_hash_handle, ptr %1293, i32 0, i32 4
  store ptr %1292, ptr %1294, align 8, !tbaa !53
  %1295 = load ptr, ptr %28, align 8, !tbaa !5
  %1296 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1295, i32 0, i32 0
  %1297 = load ptr, ptr %1296, align 8, !tbaa !26
  %1298 = icmp ne ptr %1297, null
  br i1 %1298, label %1299, label %1305

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

1305:                                             ; preds = %1299, %1287
  %1306 = load ptr, ptr %25, align 8, !tbaa !5
  %1307 = load ptr, ptr %28, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1307, i32 0, i32 0
  store ptr %1306, ptr %1308, align 8, !tbaa !26
  %1309 = load ptr, ptr %26, align 8, !tbaa !5
  store ptr %1309, ptr %25, align 8, !tbaa !5
  br label %1230, !llvm.loop !55

1310:                                             ; preds = %1230
  br label %1311

1311:                                             ; preds = %1310
  %1312 = load i32, ptr %24, align 4, !tbaa !9
  %1313 = add i32 %1312, 1
  store i32 %1313, ptr %24, align 4, !tbaa !9
  br label %1209, !llvm.loop !56

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

1355:                                             ; preds = %1314
  %1356 = load ptr, ptr %8, align 8, !tbaa !5
  %1357 = getelementptr inbounds %struct.cmap_Entry, ptr %1356, i32 0, i32 0
  %1358 = getelementptr inbounds %struct.UT_hash_handle, ptr %1357, i32 0, i32 0
  %1359 = load ptr, ptr %1358, align 8, !tbaa !18
  %1360 = getelementptr inbounds %struct.UT_hash_table, ptr %1359, i32 0, i32 8
  %1361 = load i32, ptr %1360, align 8, !tbaa !57
  %1362 = add i32 %1361, 1
  br label %1364

1363:                                             ; preds = %1314
  br label %1364

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

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

1384:                                             ; preds = %1378, %1364
  br label %1385

1385:                                             ; preds = %1384
  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 %1386

1386:                                             ; preds = %1385
  br label %1387

1387:                                             ; preds = %1386
  br label %1388

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

1389:                                             ; preds = %1388
  br label %1390

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

1391:                                             ; preds = %1390
  br label %1392

1392:                                             ; preds = %1391
  br label %1393

1393:                                             ; preds = %1392
  br label %1394

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

1395:                                             ; preds = %1394
  br label %1396

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

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

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

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

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

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

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

; 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) #4

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef zeroext i1 @otfcc_encodeCmapByIndex(ptr nocapture noundef %0, i32 noundef %1, i16 noundef zeroext %2) local_unnamed_addr #0 {
  %4 = alloca i32, align 4
  store i32 %1, ptr %4, align 4, !tbaa !5
  %5 = and i32 %1, -16777216
  %6 = and i32 %1, 16711680
  %7 = and i32 %1, 65280
  %8 = and i32 %1, 255
  %9 = add i32 %5, 17973517
  %10 = add i32 %9, %6
  %11 = add i32 %10, %7
  %12 = add i32 %11, %8
  %13 = xor i32 %12, 522093
  %14 = sub i32 -1622558010, %13
  %15 = shl i32 %13, 8
  %16 = xor i32 %14, %15
  %17 = add i32 %13, %16
  %18 = sub i32 -17973517, %17
  %19 = lshr i32 %16, 13
  %20 = xor i32 %18, %19
  %21 = add i32 %16, %20
  %22 = sub i32 %13, %21
  %23 = lshr i32 %20, 12
  %24 = xor i32 %22, %23
  %25 = add i32 %20, %24
  %26 = sub i32 %16, %25
  %27 = shl i32 %24, 16
  %28 = xor i32 %26, %27
  %29 = add i32 %24, %28
  %30 = sub i32 %20, %29
  %31 = lshr i32 %28, 5
  %32 = xor i32 %30, %31
  %33 = add i32 %28, %32
  %34 = sub i32 %24, %33
  %35 = lshr i32 %32, 3
  %36 = xor i32 %34, %35
  %37 = add i32 %32, %36
  %38 = sub i32 %28, %37
  %39 = shl i32 %36, 10
  %40 = xor i32 %38, %39
  %41 = add i32 %36, %40
  %42 = sub i32 %32, %41
  %43 = lshr i32 %40, 15
  %44 = xor i32 %42, %43
  %45 = load ptr, ptr %0, align 8, !tbaa !9
  %.not = icmp eq ptr %45, null
  br i1 %.not, label %.loopexit, label %46

46:                                               ; preds = %3
  %47 = load ptr, ptr %45, align 8, !tbaa !12
  %48 = getelementptr inbounds i8, ptr %47, i64 8
  %49 = load i32, ptr %48, align 8, !tbaa !17
  %50 = add i32 %49, -1
  %51 = and i32 %50, %44
  %52 = load ptr, ptr %47, align 8, !tbaa !20
  %53 = zext i32 %51 to i64
  %54 = getelementptr inbounds %struct.UT_hash_bucket, ptr %52, i64 %53
  %55 = load ptr, ptr %54, align 8, !tbaa !21
  %.not479 = icmp eq ptr %55, null
  br i1 %.not479, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %46
  %56 = getelementptr inbounds i8, ptr %47, i64 32
  %57 = load i64, ptr %56, align 8, !tbaa !23
  %58 = sub i64 0, %57
  %59 = getelementptr inbounds i8, ptr %55, i64 %58
  %60 = getelementptr inbounds i8, ptr %47, i64 32
  br label %61

61:                                               ; preds = %76, %.lr.ph
  %.1525 = phi ptr [ %59, %.lr.ph ], [ %79, %76 ]
  %62 = getelementptr inbounds i8, ptr %.1525, i64 52
  %63 = load i32, ptr %62, align 4, !tbaa !24
  %64 = icmp eq i32 %63, %44
  br i1 %64, label %65, label %73

65:                                               ; preds = %61
  %66 = getelementptr inbounds i8, ptr %.1525, i64 48
  %67 = load i32, ptr %66, align 8, !tbaa !25
  %68 = icmp eq i32 %67, 4
  br i1 %68, label %69, label %73

69:                                               ; preds = %65
  %70 = getelementptr inbounds i8, ptr %.1525, i64 40
  %71 = load ptr, ptr %70, align 8, !tbaa !26
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %71, ptr noundef nonnull dereferenceable(4) %4, i64 4)
  %72 = icmp eq i32 %bcmp, 0
  br i1 %72, label %.loopexit523, label %73

73:                                               ; preds = %69, %65, %61
  %74 = getelementptr inbounds i8, ptr %.1525, i64 32
  %75 = load ptr, ptr %74, align 8, !tbaa !27
  %.not481 = icmp eq ptr %75, null
  br i1 %.not481, label %.loopexit, label %76

76:                                               ; preds = %73
  %77 = load i64, ptr %60, align 8, !tbaa !23
  %78 = sub i64 0, %77
  %79 = getelementptr inbounds i8, ptr %75, i64 %78
  br label %61, !llvm.loop !28

.loopexit:                                        ; preds = %73, %46, %3
  %80 = tail call ptr @__caryll_allocate_clean(i64 noundef 80, i64 noundef 38)
  %81 = getelementptr inbounds i8, ptr %80, i64 64
  %82 = load ptr, ptr getelementptr inbounds (i8, ptr @otfcc_iHandle, i64 64), align 8, !tbaa !30
  %83 = tail call { i64, ptr } %82(i16 noundef zeroext %2) #7
  %84 = extractvalue { i64, ptr } %83, 0
  %85 = extractvalue { i64, ptr } %83, 1
  store i64 %84, ptr %81, align 8
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %80, i64 72
  store ptr %85, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !32
  %86 = getelementptr inbounds i8, ptr %80, i64 56
  store i32 %1, ptr %86, align 8, !tbaa !33
  %87 = getelementptr inbounds i8, ptr %80, i64 52
  store i32 %44, ptr %87, align 4, !tbaa !24
  %88 = getelementptr inbounds i8, ptr %80, i64 40
  store ptr %86, ptr %88, align 8, !tbaa !26
  %89 = getelementptr inbounds i8, ptr %80, i64 48
  store i32 4, ptr %89, align 8, !tbaa !25
  %90 = load ptr, ptr %0, align 8, !tbaa !9
  %.not482 = icmp eq ptr %90, null
  br i1 %.not482, label %91, label %101

91:                                               ; preds = %.loopexit
  %92 = getelementptr inbounds i8, ptr %80, i64 8
  %calloc542 = 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) %92, i8 0, i64 16, i1 false)
  store ptr %calloc542, ptr %80, align 8, !tbaa !12
  %.not483 = icmp eq ptr %calloc542, null
  br i1 %.not483, label %93, label %94

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

94:                                               ; preds = %91
  %95 = getelementptr inbounds i8, ptr %calloc542, i64 24
  store ptr %80, ptr %95, align 8, !tbaa !34
  %96 = getelementptr inbounds i8, ptr %calloc542, i64 8
  store i32 32, ptr %96, align 8, !tbaa !17
  %97 = getelementptr inbounds i8, ptr %calloc542, i64 12
  store i32 5, ptr %97, align 4, !tbaa !35
  %calloc541 = tail call dereferenceable_or_null(512) ptr @calloc(i64 1, i64 512)
  store ptr %calloc541, ptr %calloc542, align 8, !tbaa !20
  %98 = getelementptr inbounds i8, ptr %calloc542, i64 56
  store i32 -1609490463, ptr %98, align 8, !tbaa !36
  %.not484 = icmp eq ptr %calloc541, null
  br i1 %.not484, label %99, label %100

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

100:                                              ; preds = %94
  store ptr %80, ptr %0, align 8, !tbaa !9
  br label %112

101:                                              ; preds = %.loopexit
  %102 = load ptr, ptr %90, align 8, !tbaa !12
  store ptr %102, ptr %80, align 8, !tbaa !12
  %103 = getelementptr inbounds i8, ptr %80, i64 16
  store ptr null, ptr %103, align 8, !tbaa !37
  %104 = getelementptr inbounds i8, ptr %102, i64 24
  %105 = load ptr, ptr %104, align 8, !tbaa !34
  %106 = getelementptr inbounds i8, ptr %102, i64 32
  %107 = load i64, ptr %106, align 8, !tbaa !23
  %108 = sub i64 0, %107
  %109 = getelementptr inbounds i8, ptr %105, i64 %108
  %110 = getelementptr inbounds i8, ptr %80, i64 8
  store ptr %109, ptr %110, align 8, !tbaa !38
  %111 = getelementptr inbounds i8, ptr %105, i64 16
  store ptr %80, ptr %111, align 8, !tbaa !39
  store ptr %80, ptr %104, align 8, !tbaa !34
  %.phi.trans.insert = getelementptr inbounds i8, ptr %102, i64 8
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !17
  %.pre535 = load ptr, ptr %102, align 8, !tbaa !20
  br label %112

112:                                              ; preds = %100, %101
  %113 = phi ptr [ %calloc541, %100 ], [ %.pre535, %101 ]
  %114 = phi i32 [ 32, %100 ], [ %.pre, %101 ]
  %115 = phi ptr [ %calloc542, %100 ], [ %102, %101 ]
  %116 = getelementptr inbounds i8, ptr %115, i64 16
  %117 = load i32, ptr %116, align 8, !tbaa !40
  %118 = add i32 %117, 1
  store i32 %118, ptr %116, align 8, !tbaa !40
  %119 = add i32 %114, -1
  %120 = and i32 %119, %44
  %121 = zext i32 %120 to i64
  %122 = getelementptr inbounds %struct.UT_hash_bucket, ptr %113, i64 %121
  %123 = getelementptr inbounds i8, ptr %122, i64 8
  %124 = load i32, ptr %123, align 8, !tbaa !41
  %125 = add i32 %124, 1
  store i32 %125, ptr %123, align 8, !tbaa !41
  %126 = load ptr, ptr %122, align 8, !tbaa !21
  %127 = getelementptr inbounds i8, ptr %80, i64 32
  store ptr %126, ptr %127, align 8, !tbaa !27
  %128 = getelementptr inbounds i8, ptr %80, i64 24
  store ptr null, ptr %128, align 8, !tbaa !42
  %.not485 = icmp eq ptr %126, null
  br i1 %.not485, label %131, label %129

129:                                              ; preds = %112
  %130 = getelementptr inbounds i8, ptr %126, i64 24
  store ptr %80, ptr %130, align 8, !tbaa !43
  br label %131

131:                                              ; preds = %129, %112
  store ptr %80, ptr %122, align 8, !tbaa !21
  %132 = getelementptr inbounds i8, ptr %122, i64 12
  %133 = load i32, ptr %132, align 4, !tbaa !44
  %134 = mul i32 %133, 10
  %135 = add i32 %134, 10
  %.not486 = icmp ult i32 %125, %135
  br i1 %.not486, label %.loopexit523, label %136

136:                                              ; preds = %131
  %137 = getelementptr inbounds i8, ptr %115, i64 52
  %138 = load i32, ptr %137, align 4, !tbaa !45
  %.not487 = icmp eq i32 %138, 0
  br i1 %.not487, label %139, label %.loopexit523

139:                                              ; preds = %136
  %140 = zext i32 %114 to i64
  %141 = shl nuw nsw i64 %140, 5
  %calloc = tail call ptr @calloc(i64 1, i64 %141)
  %.not488 = icmp eq ptr %calloc, null
  br i1 %.not488, label %142, label %143

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

143:                                              ; preds = %139
  %144 = getelementptr inbounds i8, ptr %115, i64 12
  %145 = load i32, ptr %144, align 4, !tbaa !35
  %146 = add i32 %145, 1
  %147 = lshr i32 %118, %146
  %148 = shl i32 %114, 1
  %149 = add i32 %148, -1
  %150 = and i32 %149, %118
  %.not489 = icmp ne i32 %150, 0
  %151 = zext i1 %.not489 to i32
  %152 = add i32 %147, %151
  %153 = getelementptr inbounds i8, ptr %115, i64 40
  store i32 %152, ptr %153, align 8, !tbaa !46
  %154 = getelementptr inbounds i8, ptr %115, i64 44
  store i32 0, ptr %154, align 4, !tbaa !47
  %.not533 = icmp eq i32 %114, 0
  br i1 %.not533, label %._crit_edge532, label %.lr.ph531

.lr.ph531:                                        ; preds = %143, %._crit_edge
  %155 = phi i32 [ %181, %._crit_edge ], [ 0, %143 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 0, %143 ]
  %156 = getelementptr inbounds %struct.UT_hash_bucket, ptr %113, i64 %indvars.iv
  %157 = load ptr, ptr %156, align 8, !tbaa !21
  %.not490526 = icmp eq ptr %157, null
  br i1 %.not490526, label %._crit_edge, label %.lr.ph528

.lr.ph528:                                        ; preds = %.lr.ph531, %180
  %158 = phi i32 [ %175, %180 ], [ %155, %.lr.ph531 ]
  %.0424527 = phi ptr [ %160, %180 ], [ %157, %.lr.ph531 ]
  %159 = getelementptr inbounds i8, ptr %.0424527, i64 32
  %160 = load ptr, ptr %159, align 8, !tbaa !48
  %161 = getelementptr inbounds i8, ptr %.0424527, i64 52
  %162 = load i32, ptr %161, align 4, !tbaa !49
  %163 = and i32 %162, %149
  %164 = zext i32 %163 to i64
  %165 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc, i64 %164
  %166 = getelementptr inbounds i8, ptr %165, i64 8
  %167 = load i32, ptr %166, align 8, !tbaa !41
  %168 = add i32 %167, 1
  store i32 %168, ptr %166, align 8, !tbaa !41
  %169 = icmp ugt i32 %168, %152
  br i1 %169, label %170, label %174

170:                                              ; preds = %.lr.ph528
  %171 = add i32 %158, 1
  store i32 %171, ptr %154, align 4, !tbaa !47
  %172 = udiv i32 %168, %152
  %173 = getelementptr inbounds i8, ptr %165, i64 12
  store i32 %172, ptr %173, align 4, !tbaa !44
  br label %174

174:                                              ; preds = %170, %.lr.ph528
  %175 = phi i32 [ %171, %170 ], [ %158, %.lr.ph528 ]
  %176 = getelementptr inbounds i8, ptr %.0424527, i64 24
  store ptr null, ptr %176, align 8, !tbaa !43
  %177 = load ptr, ptr %165, align 8, !tbaa !21
  store ptr %177, ptr %159, align 8, !tbaa !48
  %.not491 = icmp eq ptr %177, null
  br i1 %.not491, label %180, label %178

178:                                              ; preds = %174
  %179 = getelementptr inbounds i8, ptr %177, i64 24
  store ptr %.0424527, ptr %179, align 8, !tbaa !43
  br label %180

180:                                              ; preds = %178, %174
  store ptr %.0424527, ptr %165, align 8, !tbaa !21
  %.not490 = icmp eq ptr %160, null
  br i1 %.not490, label %._crit_edge, label %.lr.ph528, !llvm.loop !50

._crit_edge:                                      ; preds = %180, %.lr.ph531
  %181 = phi i32 [ %155, %.lr.ph531 ], [ %175, %180 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %140
  br i1 %exitcond.not, label %._crit_edge532, label %.lr.ph531, !llvm.loop !51

._crit_edge532:                                   ; preds = %._crit_edge, %143
  tail call void @free(ptr noundef %113) #7
  %182 = load ptr, ptr %80, align 8, !tbaa !12
  %183 = getelementptr inbounds i8, ptr %182, i64 8
  %184 = load i32, ptr %183, align 8, !tbaa !17
  %185 = shl i32 %184, 1
  store i32 %185, ptr %183, align 8, !tbaa !17
  %186 = getelementptr inbounds i8, ptr %182, i64 12
  %187 = load i32, ptr %186, align 4, !tbaa !35
  %188 = add i32 %187, 1
  store i32 %188, ptr %186, align 4, !tbaa !35
  store ptr %calloc, ptr %182, align 8, !tbaa !20
  %189 = getelementptr inbounds i8, ptr %182, i64 44
  %190 = load i32, ptr %189, align 4, !tbaa !47
  %191 = getelementptr inbounds i8, ptr %182, i64 16
  %192 = load i32, ptr %191, align 8, !tbaa !40
  %193 = lshr i32 %192, 1
  %194 = icmp ugt i32 %190, %193
  %195 = getelementptr inbounds i8, ptr %182, i64 48
  br i1 %194, label %196, label %.thread493

.thread493:                                       ; preds = %._crit_edge532
  store i32 0, ptr %195, align 8, !tbaa !52
  br label %.loopexit523

196:                                              ; preds = %._crit_edge532
  %197 = load i32, ptr %195, align 8, !tbaa !52
  %198 = add i32 %197, 1
  store i32 %198, ptr %195, align 8, !tbaa !52
  %199 = icmp ugt i32 %198, 1
  br i1 %199, label %200, label %.loopexit523

200:                                              ; preds = %196
  %201 = getelementptr inbounds i8, ptr %182, i64 52
  store i32 1, ptr %201, align 4, !tbaa !45
  br label %.loopexit523

.loopexit523:                                     ; preds = %69, %.thread493, %131, %136, %196, %200
  %202 = phi i1 [ true, %131 ], [ true, %136 ], [ true, %196 ], [ true, %200 ], [ true, %.thread493 ], [ false, %69 ]
  ret i1 %202
}

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

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

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

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

; 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 = { 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 = { 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 #2 = { 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 #3 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) }
attributes #4 = { 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 #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, !6, i64 0}
!6 = !{!"int", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !11, i64 0}
!10 = !{!"", !11, i64 0, !11, i64 8}
!11 = !{!"any pointer", !7, i64 0}
!12 = !{!13, !11, i64 0}
!13 = !{!"", !14, i64 0, !6, i64 56, !15, i64 64}
!14 = !{!"UT_hash_handle", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !6, i64 48, !6, i64 52}
!15 = !{!"otfcc_Handle", !6, i64 0, !16, i64 4, !11, i64 8}
!16 = !{!"short", !7, i64 0}
!17 = !{!18, !6, i64 8}
!18 = !{!"UT_hash_table", !11, i64 0, !6, i64 8, !6, i64 12, !6, i64 16, !11, i64 24, !19, i64 32, !6, i64 40, !6, i64 44, !6, i64 48, !6, i64 52, !6, i64 56}
!19 = !{!"long", !7, i64 0}
!20 = !{!18, !11, i64 0}
!21 = !{!22, !11, i64 0}
!22 = !{!"UT_hash_bucket", !11, i64 0, !6, i64 8, !6, i64 12}
!23 = !{!18, !19, i64 32}
!24 = !{!13, !6, i64 52}
!25 = !{!13, !6, i64 48}
!26 = !{!13, !11, i64 40}
!27 = !{!13, !11, i64 32}
!28 = distinct !{!28, !29}
!29 = !{!"llvm.loop.mustprogress"}
!30 = !{!31, !11, i64 64}
!31 = !{!"otfcc_HandlePackage", !11, i64 0, !11, i64 8, !11, i64 16, !11, i64 24, !11, i64 32, !11, i64 40, !11, i64 48, !11, i64 56, !11, i64 64, !11, i64 72, !11, i64 80, !11, i64 88}
!32 = !{!11, !11, i64 0}
!33 = !{!13, !6, i64 56}
!34 = !{!18, !11, i64 24}
!35 = !{!18, !6, i64 12}
!36 = !{!18, !6, i64 56}
!37 = !{!13, !11, i64 16}
!38 = !{!13, !11, i64 8}
!39 = !{!14, !11, i64 16}
!40 = !{!18, !6, i64 16}
!41 = !{!22, !6, i64 8}
!42 = !{!13, !11, i64 24}
!43 = !{!14, !11, i64 24}
!44 = !{!22, !6, i64 12}
!45 = !{!18, !6, i64 52}
!46 = !{!18, !6, i64 40}
!47 = !{!18, !6, i64 44}
!48 = !{!14, !11, i64 32}
!49 = !{!14, !6, i64 52}
!50 = distinct !{!50, !29}
!51 = distinct !{!51, !29}
!52 = !{!18, !6, i64 48}


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