; LLVM IR from caryll/otfcc :: lib/table/otl/subtables (gpos-common)

; 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.__caryll_vectorinterface_otl_MarkArray = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.otfcc_HandlePackage = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.otl_MarkRecord = type { %struct.otfcc_Handle, i16, %struct.otl_Anchor }
%struct.otfcc_Handle = type { i32, i16, ptr }
%struct.otl_Anchor = type { i8, double, double }
%struct._json_value = type { ptr, i32, %union.anon, %union.anon.2 }
%union.anon = type { %struct.anon }
%struct.anon = type { i32, ptr }
%union.anon.2 = type { ptr }
%struct.anon.0 = type { i32, ptr }
%struct._json_object_entry = type { ptr, i32, ptr }
%struct.otl_ClassnameHash = type { ptr, i16, %struct.UT_hash_handle }
%struct.UT_hash_handle = type { ptr, ptr, ptr, ptr, ptr, ptr, i32, i32 }
%struct.UT_hash_table = type { ptr, i32, i32, i32, ptr, i64, i32, i32, i32, i32, i32 }
%struct.UT_hash_bucket = type { ptr, i32, i32 }
%struct.otl_MarkArray = type { i64, i64, ptr }

@otl_iMarkArray = external dso_local constant %struct.__caryll_vectorinterface_otl_MarkArray, align 8
@otfcc_iHandle = external constant %struct.otfcc_HandlePackage, align 8
@.str = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
define dso_local void @otl_parseMarkArray(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3) #1 {
  %5 = alloca ptr, align 8
  %6 = alloca ptr, align 8
  %7 = alloca ptr, align 8
  %8 = alloca ptr, align 8
  %9 = alloca i16, align 2
  %10 = alloca i32, align 4
  %11 = alloca %struct.otl_MarkRecord, align 8
  %12 = alloca ptr, align 8
  %13 = alloca ptr, align 8
  %14 = alloca %struct.otfcc_Handle, align 8
  %15 = alloca %struct.otl_Anchor, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca ptr, align 8
  %30 = alloca i32, align 4
  %31 = alloca ptr, align 8
  %32 = alloca i32, align 4
  %33 = alloca i32, align 4
  %34 = alloca ptr, align 8
  %35 = alloca ptr, align 8
  %36 = alloca ptr, align 8
  %37 = alloca ptr, align 8
  %38 = alloca i32, align 4
  %39 = alloca i32, align 4
  %40 = alloca i32, align 4
  %41 = alloca i32, align 4
  %42 = alloca i32, align 4
  %43 = alloca i32, align 4
  %44 = alloca ptr, align 8
  %45 = alloca ptr, align 8
  %46 = alloca ptr, align 8
  %47 = alloca ptr, align 8
  %48 = alloca ptr, align 8
  %49 = alloca i16, align 2
  %50 = alloca ptr, align 8
  %51 = alloca i16, align 2
  %52 = alloca ptr, align 8
  %53 = alloca ptr, align 8
  %54 = alloca ptr, align 8
  %55 = alloca ptr, align 8
  %56 = alloca i32, align 4
  %57 = alloca i32, align 4
  %58 = alloca i32, align 4
  %59 = alloca i32, align 4
  %60 = alloca ptr, align 8
  %61 = alloca i32, align 4
  store ptr %0, ptr %5, align 8, !tbaa !5
  store ptr %1, ptr %6, align 8, !tbaa !5
  store ptr %2, ptr %7, align 8, !tbaa !5
  store ptr %3, ptr %8, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 2, ptr %9) #10
  store i16 0, ptr %9, align 2, !tbaa !9
  br label %62

62:                                               ; preds = %1555, %4
  %63 = load i16, ptr %9, align 2, !tbaa !9
  %64 = zext i16 %63 to i32
  %65 = load ptr, ptr %5, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct._json_value, ptr %65, i32 0, i32 2
  %67 = getelementptr inbounds %struct.anon.0, ptr %66, i32 0, i32 0
  %68 = load i32, ptr %67, align 8, !tbaa !11
  %69 = icmp ult i32 %64, %68
  br i1 %69, label %71, label %70

70:                                               ; preds = %62
  store i32 2, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %9) #10
  br label %1558

71:                                               ; preds = %62
  call void @llvm.lifetime.start.p0(i64 48, ptr %11) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #10
  %72 = load ptr, ptr %5, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct._json_value, ptr %72, i32 0, i32 2
  %74 = getelementptr inbounds %struct.anon.0, ptr %73, i32 0, i32 1
  %75 = load ptr, ptr %74, align 8, !tbaa !11
  %76 = load i16, ptr %9, align 2, !tbaa !9
  %77 = zext i16 %76 to i64
  %78 = getelementptr inbounds %struct._json_object_entry, ptr %75, i64 %77
  %79 = getelementptr inbounds %struct._json_object_entry, ptr %78, i32 0, i32 0
  %80 = load ptr, ptr %79, align 8, !tbaa !12
  store ptr %80, ptr %12, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %13) #10
  %81 = load ptr, ptr %5, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct._json_value, ptr %81, i32 0, i32 2
  %83 = getelementptr inbounds %struct.anon.0, ptr %82, i32 0, i32 1
  %84 = load ptr, ptr %83, align 8, !tbaa !11
  %85 = load i16, ptr %9, align 2, !tbaa !9
  %86 = zext i16 %85 to i64
  %87 = getelementptr inbounds %struct._json_object_entry, ptr %84, i64 %86
  %88 = getelementptr inbounds %struct._json_object_entry, ptr %87, i32 0, i32 2
  %89 = load ptr, ptr %88, align 8, !tbaa !15
  store ptr %89, ptr %13, align 8, !tbaa !5
  %90 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 0
  call void @llvm.lifetime.start.p0(i64 16, ptr %14) #10
  %91 = load ptr, ptr getelementptr inbounds (%struct.otfcc_HandlePackage, ptr @otfcc_iHandle, i32 0, i32 9), align 8, !tbaa !16
  %92 = load ptr, ptr %12, align 8, !tbaa !5
  %93 = load ptr, ptr %5, align 8, !tbaa !5
  %94 = getelementptr inbounds %struct._json_value, ptr %93, i32 0, i32 2
  %95 = getelementptr inbounds %struct.anon.0, ptr %94, i32 0, i32 1
  %96 = load ptr, ptr %95, align 8, !tbaa !11
  %97 = load i16, ptr %9, align 2, !tbaa !9
  %98 = zext i16 %97 to i64
  %99 = getelementptr inbounds %struct._json_object_entry, ptr %96, i64 %98
  %100 = getelementptr inbounds %struct._json_object_entry, ptr %99, i32 0, i32 1
  %101 = load i32, ptr %100, align 8, !tbaa !18
  %102 = zext i32 %101 to i64
  %103 = call ptr @sdsnewlen(ptr noundef %92, i64 noundef %102)
  %104 = call { i64, ptr } %91(ptr noundef %103)
  %105 = getelementptr inbounds { i64, ptr }, ptr %14, i32 0, i32 0
  %106 = extractvalue { i64, ptr } %104, 0
  store i64 %106, ptr %105, align 8
  %107 = getelementptr inbounds { i64, ptr }, ptr %14, i32 0, i32 1
  %108 = extractvalue { i64, ptr } %104, 1
  store ptr %108, ptr %107, align 8
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %90, ptr align 8 %14, i64 16, i1 false), !tbaa.struct !19
  call void @llvm.lifetime.end.p0(i64 16, ptr %14) #10
  %109 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 1
  store i16 0, ptr %109, align 8, !tbaa !21
  %110 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 2
  call void @llvm.lifetime.start.p0(i64 24, ptr %15) #10
  call void @otl_anchor_absent(ptr dead_on_unwind writable sret(%struct.otl_Anchor) align 8 %15)
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %110, ptr align 8 %15, i64 24, i1 false), !tbaa.struct !27
  call void @llvm.lifetime.end.p0(i64 24, ptr %15) #10
  %111 = load ptr, ptr %13, align 8, !tbaa !5
  %112 = icmp ne ptr %111, null
  br i1 %112, label %113, label %118

113:                                              ; preds = %71
  %114 = load ptr, ptr %13, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct._json_value, ptr %114, i32 0, i32 1
  %116 = load i32, ptr %115, align 8, !tbaa !30
  %117 = icmp ne i32 %116, 1
  br i1 %117, label %118, label %121

118:                                              ; preds = %113, %71
  %119 = load ptr, ptr getelementptr inbounds (%struct.__caryll_vectorinterface_otl_MarkArray, ptr @otl_iMarkArray, i32 0, i32 13), align 8, !tbaa !32
  %120 = load ptr, ptr %6, align 8, !tbaa !5
  call void %119(ptr noundef %120, ptr noundef byval(%struct.otl_MarkRecord) align 8 %11)
  store i32 4, ptr %10, align 4
  br label %1552

121:                                              ; preds = %113
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #10
  %122 = load ptr, ptr %13, align 8, !tbaa !5
  %123 = call ptr @json_obj_get_type(ptr noundef %122, ptr noundef @.str, i32 noundef 5)
  store ptr %123, ptr %16, align 8, !tbaa !5
  %124 = load ptr, ptr %16, align 8, !tbaa !5
  %125 = icmp ne ptr %124, null
  br i1 %125, label %129, label %126

126:                                              ; preds = %121
  %127 = load ptr, ptr getelementptr inbounds (%struct.__caryll_vectorinterface_otl_MarkArray, ptr @otl_iMarkArray, i32 0, i32 13), align 8, !tbaa !32
  %128 = load ptr, ptr %6, align 8, !tbaa !5
  call void %127(ptr noundef %128, ptr noundef byval(%struct.otl_MarkRecord) align 8 %11)
  store i32 4, ptr %10, align 4
  br label %1551

129:                                              ; preds = %121
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #10
  %130 = load ptr, ptr %16, align 8, !tbaa !5
  %131 = getelementptr inbounds %struct._json_value, ptr %130, i32 0, i32 2
  %132 = getelementptr inbounds %struct.anon, ptr %131, i32 0, i32 1
  %133 = load ptr, ptr %132, align 8, !tbaa !11
  %134 = load ptr, ptr %16, align 8, !tbaa !5
  %135 = getelementptr inbounds %struct._json_value, ptr %134, i32 0, i32 2
  %136 = getelementptr inbounds %struct.anon, ptr %135, i32 0, i32 0
  %137 = load i32, ptr %136, align 8, !tbaa !11
  %138 = zext i32 %137 to i64
  %139 = call ptr @sdsnewlen(ptr noundef %133, i64 noundef %138)
  store ptr %139, ptr %17, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #10
  br label %140

140:                                              ; preds = %129
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #10
  br label %141

141:                                              ; preds = %140
  br label %142

142:                                              ; preds = %141
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #10
  %143 = load ptr, ptr %17, align 8, !tbaa !5
  store ptr %143, ptr %23, align 8, !tbaa !5
  store i32 -17973521, ptr %19, align 4, !tbaa !20
  store i32 -1640531527, ptr %21, align 4, !tbaa !20
  store i32 -1640531527, ptr %20, align 4, !tbaa !20
  %144 = load ptr, ptr %17, align 8, !tbaa !5
  %145 = call i64 @strlen(ptr noundef %144) #11
  %146 = trunc i64 %145 to i32
  store i32 %146, ptr %22, align 4, !tbaa !20
  br label %147

147:                                              ; preds = %315, %142
  %148 = load i32, ptr %22, align 4, !tbaa !20
  %149 = icmp uge i32 %148, 12
  br i1 %149, label %150, label %320

150:                                              ; preds = %147
  %151 = load ptr, ptr %23, align 8, !tbaa !5
  %152 = getelementptr inbounds i8, ptr %151, i64 0
  %153 = load i8, ptr %152, align 1, !tbaa !11
  %154 = zext i8 %153 to i32
  %155 = load ptr, ptr %23, align 8, !tbaa !5
  %156 = getelementptr inbounds i8, ptr %155, i64 1
  %157 = load i8, ptr %156, align 1, !tbaa !11
  %158 = zext i8 %157 to i32
  %159 = shl i32 %158, 8
  %160 = add i32 %154, %159
  %161 = load ptr, ptr %23, align 8, !tbaa !5
  %162 = getelementptr inbounds i8, ptr %161, i64 2
  %163 = load i8, ptr %162, align 1, !tbaa !11
  %164 = zext i8 %163 to i32
  %165 = shl i32 %164, 16
  %166 = add i32 %160, %165
  %167 = load ptr, ptr %23, align 8, !tbaa !5
  %168 = getelementptr inbounds i8, ptr %167, i64 3
  %169 = load i8, ptr %168, align 1, !tbaa !11
  %170 = zext i8 %169 to i32
  %171 = shl i32 %170, 24
  %172 = add i32 %166, %171
  %173 = load i32, ptr %20, align 4, !tbaa !20
  %174 = add i32 %173, %172
  store i32 %174, ptr %20, align 4, !tbaa !20
  %175 = load ptr, ptr %23, align 8, !tbaa !5
  %176 = getelementptr inbounds i8, ptr %175, i64 4
  %177 = load i8, ptr %176, align 1, !tbaa !11
  %178 = zext i8 %177 to i32
  %179 = load ptr, ptr %23, align 8, !tbaa !5
  %180 = getelementptr inbounds i8, ptr %179, i64 5
  %181 = load i8, ptr %180, align 1, !tbaa !11
  %182 = zext i8 %181 to i32
  %183 = shl i32 %182, 8
  %184 = add i32 %178, %183
  %185 = load ptr, ptr %23, align 8, !tbaa !5
  %186 = getelementptr inbounds i8, ptr %185, i64 6
  %187 = load i8, ptr %186, align 1, !tbaa !11
  %188 = zext i8 %187 to i32
  %189 = shl i32 %188, 16
  %190 = add i32 %184, %189
  %191 = load ptr, ptr %23, align 8, !tbaa !5
  %192 = getelementptr inbounds i8, ptr %191, i64 7
  %193 = load i8, ptr %192, align 1, !tbaa !11
  %194 = zext i8 %193 to i32
  %195 = shl i32 %194, 24
  %196 = add i32 %190, %195
  %197 = load i32, ptr %21, align 4, !tbaa !20
  %198 = add i32 %197, %196
  store i32 %198, ptr %21, align 4, !tbaa !20
  %199 = load ptr, ptr %23, align 8, !tbaa !5
  %200 = getelementptr inbounds i8, ptr %199, i64 8
  %201 = load i8, ptr %200, align 1, !tbaa !11
  %202 = zext i8 %201 to i32
  %203 = load ptr, ptr %23, align 8, !tbaa !5
  %204 = getelementptr inbounds i8, ptr %203, i64 9
  %205 = load i8, ptr %204, align 1, !tbaa !11
  %206 = zext i8 %205 to i32
  %207 = shl i32 %206, 8
  %208 = add i32 %202, %207
  %209 = load ptr, ptr %23, align 8, !tbaa !5
  %210 = getelementptr inbounds i8, ptr %209, i64 10
  %211 = load i8, ptr %210, align 1, !tbaa !11
  %212 = zext i8 %211 to i32
  %213 = shl i32 %212, 16
  %214 = add i32 %208, %213
  %215 = load ptr, ptr %23, align 8, !tbaa !5
  %216 = getelementptr inbounds i8, ptr %215, i64 11
  %217 = load i8, ptr %216, align 1, !tbaa !11
  %218 = zext i8 %217 to i32
  %219 = shl i32 %218, 24
  %220 = add i32 %214, %219
  %221 = load i32, ptr %19, align 4, !tbaa !20
  %222 = add i32 %221, %220
  store i32 %222, ptr %19, align 4, !tbaa !20
  br label %223

223:                                              ; preds = %150
  %224 = load i32, ptr %21, align 4, !tbaa !20
  %225 = load i32, ptr %20, align 4, !tbaa !20
  %226 = sub i32 %225, %224
  store i32 %226, ptr %20, align 4, !tbaa !20
  %227 = load i32, ptr %19, align 4, !tbaa !20
  %228 = load i32, ptr %20, align 4, !tbaa !20
  %229 = sub i32 %228, %227
  store i32 %229, ptr %20, align 4, !tbaa !20
  %230 = load i32, ptr %19, align 4, !tbaa !20
  %231 = lshr i32 %230, 13
  %232 = load i32, ptr %20, align 4, !tbaa !20
  %233 = xor i32 %232, %231
  store i32 %233, ptr %20, align 4, !tbaa !20
  %234 = load i32, ptr %19, align 4, !tbaa !20
  %235 = load i32, ptr %21, align 4, !tbaa !20
  %236 = sub i32 %235, %234
  store i32 %236, ptr %21, align 4, !tbaa !20
  %237 = load i32, ptr %20, align 4, !tbaa !20
  %238 = load i32, ptr %21, align 4, !tbaa !20
  %239 = sub i32 %238, %237
  store i32 %239, ptr %21, align 4, !tbaa !20
  %240 = load i32, ptr %20, align 4, !tbaa !20
  %241 = shl i32 %240, 8
  %242 = load i32, ptr %21, align 4, !tbaa !20
  %243 = xor i32 %242, %241
  store i32 %243, ptr %21, align 4, !tbaa !20
  %244 = load i32, ptr %20, align 4, !tbaa !20
  %245 = load i32, ptr %19, align 4, !tbaa !20
  %246 = sub i32 %245, %244
  store i32 %246, ptr %19, align 4, !tbaa !20
  %247 = load i32, ptr %21, align 4, !tbaa !20
  %248 = load i32, ptr %19, align 4, !tbaa !20
  %249 = sub i32 %248, %247
  store i32 %249, ptr %19, align 4, !tbaa !20
  %250 = load i32, ptr %21, align 4, !tbaa !20
  %251 = lshr i32 %250, 13
  %252 = load i32, ptr %19, align 4, !tbaa !20
  %253 = xor i32 %252, %251
  store i32 %253, ptr %19, align 4, !tbaa !20
  %254 = load i32, ptr %21, align 4, !tbaa !20
  %255 = load i32, ptr %20, align 4, !tbaa !20
  %256 = sub i32 %255, %254
  store i32 %256, ptr %20, align 4, !tbaa !20
  %257 = load i32, ptr %19, align 4, !tbaa !20
  %258 = load i32, ptr %20, align 4, !tbaa !20
  %259 = sub i32 %258, %257
  store i32 %259, ptr %20, align 4, !tbaa !20
  %260 = load i32, ptr %19, align 4, !tbaa !20
  %261 = lshr i32 %260, 12
  %262 = load i32, ptr %20, align 4, !tbaa !20
  %263 = xor i32 %262, %261
  store i32 %263, ptr %20, align 4, !tbaa !20
  %264 = load i32, ptr %19, align 4, !tbaa !20
  %265 = load i32, ptr %21, align 4, !tbaa !20
  %266 = sub i32 %265, %264
  store i32 %266, ptr %21, align 4, !tbaa !20
  %267 = load i32, ptr %20, align 4, !tbaa !20
  %268 = load i32, ptr %21, align 4, !tbaa !20
  %269 = sub i32 %268, %267
  store i32 %269, ptr %21, align 4, !tbaa !20
  %270 = load i32, ptr %20, align 4, !tbaa !20
  %271 = shl i32 %270, 16
  %272 = load i32, ptr %21, align 4, !tbaa !20
  %273 = xor i32 %272, %271
  store i32 %273, ptr %21, align 4, !tbaa !20
  %274 = load i32, ptr %20, align 4, !tbaa !20
  %275 = load i32, ptr %19, align 4, !tbaa !20
  %276 = sub i32 %275, %274
  store i32 %276, ptr %19, align 4, !tbaa !20
  %277 = load i32, ptr %21, align 4, !tbaa !20
  %278 = load i32, ptr %19, align 4, !tbaa !20
  %279 = sub i32 %278, %277
  store i32 %279, ptr %19, align 4, !tbaa !20
  %280 = load i32, ptr %21, align 4, !tbaa !20
  %281 = lshr i32 %280, 5
  %282 = load i32, ptr %19, align 4, !tbaa !20
  %283 = xor i32 %282, %281
  store i32 %283, ptr %19, align 4, !tbaa !20
  %284 = load i32, ptr %21, align 4, !tbaa !20
  %285 = load i32, ptr %20, align 4, !tbaa !20
  %286 = sub i32 %285, %284
  store i32 %286, ptr %20, align 4, !tbaa !20
  %287 = load i32, ptr %19, align 4, !tbaa !20
  %288 = load i32, ptr %20, align 4, !tbaa !20
  %289 = sub i32 %288, %287
  store i32 %289, ptr %20, align 4, !tbaa !20
  %290 = load i32, ptr %19, align 4, !tbaa !20
  %291 = lshr i32 %290, 3
  %292 = load i32, ptr %20, align 4, !tbaa !20
  %293 = xor i32 %292, %291
  store i32 %293, ptr %20, align 4, !tbaa !20
  %294 = load i32, ptr %19, align 4, !tbaa !20
  %295 = load i32, ptr %21, align 4, !tbaa !20
  %296 = sub i32 %295, %294
  store i32 %296, ptr %21, align 4, !tbaa !20
  %297 = load i32, ptr %20, align 4, !tbaa !20
  %298 = load i32, ptr %21, align 4, !tbaa !20
  %299 = sub i32 %298, %297
  store i32 %299, ptr %21, align 4, !tbaa !20
  %300 = load i32, ptr %20, align 4, !tbaa !20
  %301 = shl i32 %300, 10
  %302 = load i32, ptr %21, align 4, !tbaa !20
  %303 = xor i32 %302, %301
  store i32 %303, ptr %21, align 4, !tbaa !20
  %304 = load i32, ptr %20, align 4, !tbaa !20
  %305 = load i32, ptr %19, align 4, !tbaa !20
  %306 = sub i32 %305, %304
  store i32 %306, ptr %19, align 4, !tbaa !20
  %307 = load i32, ptr %21, align 4, !tbaa !20
  %308 = load i32, ptr %19, align 4, !tbaa !20
  %309 = sub i32 %308, %307
  store i32 %309, ptr %19, align 4, !tbaa !20
  %310 = load i32, ptr %21, align 4, !tbaa !20
  %311 = lshr i32 %310, 15
  %312 = load i32, ptr %19, align 4, !tbaa !20
  %313 = xor i32 %312, %311
  store i32 %313, ptr %19, align 4, !tbaa !20
  br label %314

314:                                              ; preds = %223
  br label %315

315:                                              ; preds = %314
  %316 = load ptr, ptr %23, align 8, !tbaa !5
  %317 = getelementptr inbounds i8, ptr %316, i64 12
  store ptr %317, ptr %23, align 8, !tbaa !5
  %318 = load i32, ptr %22, align 4, !tbaa !20
  %319 = sub i32 %318, 12
  store i32 %319, ptr %22, align 4, !tbaa !20
  br label %147, !llvm.loop !34

320:                                              ; preds = %147
  %321 = load ptr, ptr %17, align 8, !tbaa !5
  %322 = call i64 @strlen(ptr noundef %321) #11
  %323 = trunc i64 %322 to i32
  %324 = load i32, ptr %19, align 4, !tbaa !20
  %325 = add i32 %324, %323
  store i32 %325, ptr %19, align 4, !tbaa !20
  %326 = load i32, ptr %22, align 4, !tbaa !20
  switch i32 %326, label %413 [
    i32 11, label %327
    i32 10, label %335
    i32 9, label %343
    i32 8, label %351
    i32 7, label %359
    i32 6, label %367
    i32 5, label %375
    i32 4, label %382
    i32 3, label %390
    i32 2, label %398
    i32 1, label %406
  ]

327:                                              ; preds = %320
  %328 = load ptr, ptr %23, align 8, !tbaa !5
  %329 = getelementptr inbounds i8, ptr %328, i64 10
  %330 = load i8, ptr %329, align 1, !tbaa !11
  %331 = zext i8 %330 to i32
  %332 = shl i32 %331, 24
  %333 = load i32, ptr %19, align 4, !tbaa !20
  %334 = add i32 %333, %332
  store i32 %334, ptr %19, align 4, !tbaa !20
  br label %335

335:                                              ; preds = %327, %320
  %336 = load ptr, ptr %23, align 8, !tbaa !5
  %337 = getelementptr inbounds i8, ptr %336, i64 9
  %338 = load i8, ptr %337, align 1, !tbaa !11
  %339 = zext i8 %338 to i32
  %340 = shl i32 %339, 16
  %341 = load i32, ptr %19, align 4, !tbaa !20
  %342 = add i32 %341, %340
  store i32 %342, ptr %19, align 4, !tbaa !20
  br label %343

343:                                              ; preds = %335, %320
  %344 = load ptr, ptr %23, align 8, !tbaa !5
  %345 = getelementptr inbounds i8, ptr %344, i64 8
  %346 = load i8, ptr %345, align 1, !tbaa !11
  %347 = zext i8 %346 to i32
  %348 = shl i32 %347, 8
  %349 = load i32, ptr %19, align 4, !tbaa !20
  %350 = add i32 %349, %348
  store i32 %350, ptr %19, align 4, !tbaa !20
  br label %351

351:                                              ; preds = %343, %320
  %352 = load ptr, ptr %23, align 8, !tbaa !5
  %353 = getelementptr inbounds i8, ptr %352, i64 7
  %354 = load i8, ptr %353, align 1, !tbaa !11
  %355 = zext i8 %354 to i32
  %356 = shl i32 %355, 24
  %357 = load i32, ptr %21, align 4, !tbaa !20
  %358 = add i32 %357, %356
  store i32 %358, ptr %21, align 4, !tbaa !20
  br label %359

359:                                              ; preds = %351, %320
  %360 = load ptr, ptr %23, align 8, !tbaa !5
  %361 = getelementptr inbounds i8, ptr %360, i64 6
  %362 = load i8, ptr %361, align 1, !tbaa !11
  %363 = zext i8 %362 to i32
  %364 = shl i32 %363, 16
  %365 = load i32, ptr %21, align 4, !tbaa !20
  %366 = add i32 %365, %364
  store i32 %366, ptr %21, align 4, !tbaa !20
  br label %367

367:                                              ; preds = %359, %320
  %368 = load ptr, ptr %23, align 8, !tbaa !5
  %369 = getelementptr inbounds i8, ptr %368, i64 5
  %370 = load i8, ptr %369, align 1, !tbaa !11
  %371 = zext i8 %370 to i32
  %372 = shl i32 %371, 8
  %373 = load i32, ptr %21, align 4, !tbaa !20
  %374 = add i32 %373, %372
  store i32 %374, ptr %21, align 4, !tbaa !20
  br label %375

375:                                              ; preds = %367, %320
  %376 = load ptr, ptr %23, align 8, !tbaa !5
  %377 = getelementptr inbounds i8, ptr %376, i64 4
  %378 = load i8, ptr %377, align 1, !tbaa !11
  %379 = zext i8 %378 to i32
  %380 = load i32, ptr %21, align 4, !tbaa !20
  %381 = add i32 %380, %379
  store i32 %381, ptr %21, align 4, !tbaa !20
  br label %382

382:                                              ; preds = %375, %320
  %383 = load ptr, ptr %23, align 8, !tbaa !5
  %384 = getelementptr inbounds i8, ptr %383, i64 3
  %385 = load i8, ptr %384, align 1, !tbaa !11
  %386 = zext i8 %385 to i32
  %387 = shl i32 %386, 24
  %388 = load i32, ptr %20, align 4, !tbaa !20
  %389 = add i32 %388, %387
  store i32 %389, ptr %20, align 4, !tbaa !20
  br label %390

390:                                              ; preds = %382, %320
  %391 = load ptr, ptr %23, align 8, !tbaa !5
  %392 = getelementptr inbounds i8, ptr %391, i64 2
  %393 = load i8, ptr %392, align 1, !tbaa !11
  %394 = zext i8 %393 to i32
  %395 = shl i32 %394, 16
  %396 = load i32, ptr %20, align 4, !tbaa !20
  %397 = add i32 %396, %395
  store i32 %397, ptr %20, align 4, !tbaa !20
  br label %398

398:                                              ; preds = %390, %320
  %399 = load ptr, ptr %23, align 8, !tbaa !5
  %400 = getelementptr inbounds i8, ptr %399, i64 1
  %401 = load i8, ptr %400, align 1, !tbaa !11
  %402 = zext i8 %401 to i32
  %403 = shl i32 %402, 8
  %404 = load i32, ptr %20, align 4, !tbaa !20
  %405 = add i32 %404, %403
  store i32 %405, ptr %20, align 4, !tbaa !20
  br label %406

406:                                              ; preds = %398, %320
  %407 = load ptr, ptr %23, align 8, !tbaa !5
  %408 = getelementptr inbounds i8, ptr %407, i64 0
  %409 = load i8, ptr %408, align 1, !tbaa !11
  %410 = zext i8 %409 to i32
  %411 = load i32, ptr %20, align 4, !tbaa !20
  %412 = add i32 %411, %410
  store i32 %412, ptr %20, align 4, !tbaa !20
  br label %413

413:                                              ; preds = %406, %320
  br label %414

414:                                              ; preds = %413
  %415 = load i32, ptr %21, align 4, !tbaa !20
  %416 = load i32, ptr %20, align 4, !tbaa !20
  %417 = sub i32 %416, %415
  store i32 %417, ptr %20, align 4, !tbaa !20
  %418 = load i32, ptr %19, align 4, !tbaa !20
  %419 = load i32, ptr %20, align 4, !tbaa !20
  %420 = sub i32 %419, %418
  store i32 %420, ptr %20, align 4, !tbaa !20
  %421 = load i32, ptr %19, align 4, !tbaa !20
  %422 = lshr i32 %421, 13
  %423 = load i32, ptr %20, align 4, !tbaa !20
  %424 = xor i32 %423, %422
  store i32 %424, ptr %20, align 4, !tbaa !20
  %425 = load i32, ptr %19, align 4, !tbaa !20
  %426 = load i32, ptr %21, align 4, !tbaa !20
  %427 = sub i32 %426, %425
  store i32 %427, ptr %21, align 4, !tbaa !20
  %428 = load i32, ptr %20, align 4, !tbaa !20
  %429 = load i32, ptr %21, align 4, !tbaa !20
  %430 = sub i32 %429, %428
  store i32 %430, ptr %21, align 4, !tbaa !20
  %431 = load i32, ptr %20, align 4, !tbaa !20
  %432 = shl i32 %431, 8
  %433 = load i32, ptr %21, align 4, !tbaa !20
  %434 = xor i32 %433, %432
  store i32 %434, ptr %21, align 4, !tbaa !20
  %435 = load i32, ptr %20, align 4, !tbaa !20
  %436 = load i32, ptr %19, align 4, !tbaa !20
  %437 = sub i32 %436, %435
  store i32 %437, ptr %19, align 4, !tbaa !20
  %438 = load i32, ptr %21, align 4, !tbaa !20
  %439 = load i32, ptr %19, align 4, !tbaa !20
  %440 = sub i32 %439, %438
  store i32 %440, ptr %19, align 4, !tbaa !20
  %441 = load i32, ptr %21, align 4, !tbaa !20
  %442 = lshr i32 %441, 13
  %443 = load i32, ptr %19, align 4, !tbaa !20
  %444 = xor i32 %443, %442
  store i32 %444, ptr %19, align 4, !tbaa !20
  %445 = load i32, ptr %21, align 4, !tbaa !20
  %446 = load i32, ptr %20, align 4, !tbaa !20
  %447 = sub i32 %446, %445
  store i32 %447, ptr %20, align 4, !tbaa !20
  %448 = load i32, ptr %19, align 4, !tbaa !20
  %449 = load i32, ptr %20, align 4, !tbaa !20
  %450 = sub i32 %449, %448
  store i32 %450, ptr %20, align 4, !tbaa !20
  %451 = load i32, ptr %19, align 4, !tbaa !20
  %452 = lshr i32 %451, 12
  %453 = load i32, ptr %20, align 4, !tbaa !20
  %454 = xor i32 %453, %452
  store i32 %454, ptr %20, align 4, !tbaa !20
  %455 = load i32, ptr %19, align 4, !tbaa !20
  %456 = load i32, ptr %21, align 4, !tbaa !20
  %457 = sub i32 %456, %455
  store i32 %457, ptr %21, align 4, !tbaa !20
  %458 = load i32, ptr %20, align 4, !tbaa !20
  %459 = load i32, ptr %21, align 4, !tbaa !20
  %460 = sub i32 %459, %458
  store i32 %460, ptr %21, align 4, !tbaa !20
  %461 = load i32, ptr %20, align 4, !tbaa !20
  %462 = shl i32 %461, 16
  %463 = load i32, ptr %21, align 4, !tbaa !20
  %464 = xor i32 %463, %462
  store i32 %464, ptr %21, align 4, !tbaa !20
  %465 = load i32, ptr %20, align 4, !tbaa !20
  %466 = load i32, ptr %19, align 4, !tbaa !20
  %467 = sub i32 %466, %465
  store i32 %467, ptr %19, align 4, !tbaa !20
  %468 = load i32, ptr %21, align 4, !tbaa !20
  %469 = load i32, ptr %19, align 4, !tbaa !20
  %470 = sub i32 %469, %468
  store i32 %470, ptr %19, align 4, !tbaa !20
  %471 = load i32, ptr %21, align 4, !tbaa !20
  %472 = lshr i32 %471, 5
  %473 = load i32, ptr %19, align 4, !tbaa !20
  %474 = xor i32 %473, %472
  store i32 %474, ptr %19, align 4, !tbaa !20
  %475 = load i32, ptr %21, align 4, !tbaa !20
  %476 = load i32, ptr %20, align 4, !tbaa !20
  %477 = sub i32 %476, %475
  store i32 %477, ptr %20, align 4, !tbaa !20
  %478 = load i32, ptr %19, align 4, !tbaa !20
  %479 = load i32, ptr %20, align 4, !tbaa !20
  %480 = sub i32 %479, %478
  store i32 %480, ptr %20, align 4, !tbaa !20
  %481 = load i32, ptr %19, align 4, !tbaa !20
  %482 = lshr i32 %481, 3
  %483 = load i32, ptr %20, align 4, !tbaa !20
  %484 = xor i32 %483, %482
  store i32 %484, ptr %20, align 4, !tbaa !20
  %485 = load i32, ptr %19, align 4, !tbaa !20
  %486 = load i32, ptr %21, align 4, !tbaa !20
  %487 = sub i32 %486, %485
  store i32 %487, ptr %21, align 4, !tbaa !20
  %488 = load i32, ptr %20, align 4, !tbaa !20
  %489 = load i32, ptr %21, align 4, !tbaa !20
  %490 = sub i32 %489, %488
  store i32 %490, ptr %21, align 4, !tbaa !20
  %491 = load i32, ptr %20, align 4, !tbaa !20
  %492 = shl i32 %491, 10
  %493 = load i32, ptr %21, align 4, !tbaa !20
  %494 = xor i32 %493, %492
  store i32 %494, ptr %21, align 4, !tbaa !20
  %495 = load i32, ptr %20, align 4, !tbaa !20
  %496 = load i32, ptr %19, align 4, !tbaa !20
  %497 = sub i32 %496, %495
  store i32 %497, ptr %19, align 4, !tbaa !20
  %498 = load i32, ptr %21, align 4, !tbaa !20
  %499 = load i32, ptr %19, align 4, !tbaa !20
  %500 = sub i32 %499, %498
  store i32 %500, ptr %19, align 4, !tbaa !20
  %501 = load i32, ptr %21, align 4, !tbaa !20
  %502 = lshr i32 %501, 15
  %503 = load i32, ptr %19, align 4, !tbaa !20
  %504 = xor i32 %503, %502
  store i32 %504, ptr %19, align 4, !tbaa !20
  br label %505

505:                                              ; preds = %414
  br label %506

506:                                              ; preds = %505
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #10
  br label %507

507:                                              ; preds = %506
  br label %508

508:                                              ; preds = %507
  br label %509

509:                                              ; preds = %508
  br label %510

510:                                              ; preds = %509
  br label %511

511:                                              ; preds = %510
  store ptr null, ptr %18, align 8, !tbaa !5
  %512 = load ptr, ptr %7, align 8, !tbaa !5
  %513 = load ptr, ptr %512, align 8, !tbaa !5
  %514 = icmp ne ptr %513, null
  br i1 %514, label %515, label %631

515:                                              ; preds = %511
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #10
  br label %516

516:                                              ; preds = %515
  %517 = load i32, ptr %19, align 4, !tbaa !20
  %518 = load ptr, ptr %7, align 8, !tbaa !5
  %519 = load ptr, ptr %518, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %519, i32 0, i32 2
  %521 = getelementptr inbounds %struct.UT_hash_handle, ptr %520, i32 0, i32 0
  %522 = load ptr, ptr %521, align 8, !tbaa !36
  %523 = getelementptr inbounds %struct.UT_hash_table, ptr %522, i32 0, i32 1
  %524 = load i32, ptr %523, align 8, !tbaa !39
  %525 = sub i32 %524, 1
  %526 = and i32 %517, %525
  store i32 %526, ptr %24, align 4, !tbaa !20
  br label %527

527:                                              ; preds = %516
  br label %528

528:                                              ; preds = %527
  br label %529

529:                                              ; preds = %528
  %530 = load ptr, ptr %7, align 8, !tbaa !5
  %531 = load ptr, ptr %530, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %531, i32 0, i32 2
  %533 = getelementptr inbounds %struct.UT_hash_handle, ptr %532, i32 0, i32 0
  %534 = load ptr, ptr %533, align 8, !tbaa !36
  %535 = getelementptr inbounds %struct.UT_hash_table, ptr %534, i32 0, i32 0
  %536 = load ptr, ptr %535, align 8, !tbaa !42
  %537 = load i32, ptr %24, align 4, !tbaa !20
  %538 = zext i32 %537 to i64
  %539 = getelementptr inbounds %struct.UT_hash_bucket, ptr %536, i64 %538
  %540 = getelementptr inbounds %struct.UT_hash_bucket, ptr %539, i32 0, i32 0
  %541 = load ptr, ptr %540, align 8, !tbaa !43
  %542 = icmp ne ptr %541, null
  br i1 %542, label %543, label %568

543:                                              ; preds = %529
  br label %544

544:                                              ; preds = %543
  %545 = load ptr, ptr %7, align 8, !tbaa !5
  %546 = load ptr, ptr %545, align 8, !tbaa !5
  %547 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %546, i32 0, i32 2
  %548 = getelementptr inbounds %struct.UT_hash_handle, ptr %547, i32 0, i32 0
  %549 = load ptr, ptr %548, align 8, !tbaa !36
  %550 = getelementptr inbounds %struct.UT_hash_table, ptr %549, i32 0, i32 0
  %551 = load ptr, ptr %550, align 8, !tbaa !42
  %552 = load i32, ptr %24, align 4, !tbaa !20
  %553 = zext i32 %552 to i64
  %554 = getelementptr inbounds %struct.UT_hash_bucket, ptr %551, i64 %553
  %555 = getelementptr inbounds %struct.UT_hash_bucket, ptr %554, i32 0, i32 0
  %556 = load ptr, ptr %555, align 8, !tbaa !43
  %557 = load ptr, ptr %7, align 8, !tbaa !5
  %558 = load ptr, ptr %557, align 8, !tbaa !5
  %559 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %558, i32 0, i32 2
  %560 = getelementptr inbounds %struct.UT_hash_handle, ptr %559, i32 0, i32 0
  %561 = load ptr, ptr %560, align 8, !tbaa !36
  %562 = getelementptr inbounds %struct.UT_hash_table, ptr %561, i32 0, i32 5
  %563 = load i64, ptr %562, align 8, !tbaa !45
  %564 = sub i64 0, %563
  %565 = getelementptr inbounds i8, ptr %556, i64 %564
  store ptr %565, ptr %18, align 8, !tbaa !5
  br label %566

566:                                              ; preds = %544
  br label %567

567:                                              ; preds = %566
  br label %569

568:                                              ; preds = %529
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %569

569:                                              ; preds = %568, %567
  br label %570

570:                                              ; preds = %627, %569
  %571 = load ptr, ptr %18, align 8, !tbaa !5
  %572 = icmp ne ptr %571, null
  br i1 %572, label %573, label %628

573:                                              ; preds = %570
  %574 = load ptr, ptr %18, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %574, i32 0, i32 2
  %576 = getelementptr inbounds %struct.UT_hash_handle, ptr %575, i32 0, i32 7
  %577 = load i32, ptr %576, align 4, !tbaa !46
  %578 = load i32, ptr %19, align 4, !tbaa !20
  %579 = icmp eq i32 %577, %578
  br i1 %579, label %580, label %603

580:                                              ; preds = %573
  %581 = load ptr, ptr %18, align 8, !tbaa !5
  %582 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %581, i32 0, i32 2
  %583 = getelementptr inbounds %struct.UT_hash_handle, ptr %582, i32 0, i32 6
  %584 = load i32, ptr %583, align 8, !tbaa !47
  %585 = load ptr, ptr %17, align 8, !tbaa !5
  %586 = call i64 @strlen(ptr noundef %585) #11
  %587 = trunc i64 %586 to i32
  %588 = icmp eq i32 %584, %587
  br i1 %588, label %589, label %603

589:                                              ; preds = %580
  %590 = load ptr, ptr %18, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %590, i32 0, i32 2
  %592 = getelementptr inbounds %struct.UT_hash_handle, ptr %591, i32 0, i32 5
  %593 = load ptr, ptr %592, align 8, !tbaa !48
  %594 = load ptr, ptr %17, align 8, !tbaa !5
  %595 = load ptr, ptr %17, align 8, !tbaa !5
  %596 = call i64 @strlen(ptr noundef %595) #11
  %597 = trunc i64 %596 to i32
  %598 = zext i32 %597 to i64
  %599 = call i32 @memcmp(ptr noundef %593, ptr noundef %594, i64 noundef %598) #11
  %600 = icmp eq i32 %599, 0
  br i1 %600, label %601, label %602

601:                                              ; preds = %589
  br label %628

602:                                              ; preds = %589
  br label %603

603:                                              ; preds = %602, %580, %573
  %604 = load ptr, ptr %18, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %604, i32 0, i32 2
  %606 = getelementptr inbounds %struct.UT_hash_handle, ptr %605, i32 0, i32 4
  %607 = load ptr, ptr %606, align 8, !tbaa !49
  %608 = icmp ne ptr %607, null
  br i1 %608, label %609, label %626

609:                                              ; preds = %603
  br label %610

610:                                              ; preds = %609
  %611 = load ptr, ptr %18, align 8, !tbaa !5
  %612 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %611, i32 0, i32 2
  %613 = getelementptr inbounds %struct.UT_hash_handle, ptr %612, i32 0, i32 4
  %614 = load ptr, ptr %613, align 8, !tbaa !49
  %615 = load ptr, ptr %7, align 8, !tbaa !5
  %616 = load ptr, ptr %615, align 8, !tbaa !5
  %617 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %616, i32 0, i32 2
  %618 = getelementptr inbounds %struct.UT_hash_handle, ptr %617, i32 0, i32 0
  %619 = load ptr, ptr %618, align 8, !tbaa !36
  %620 = getelementptr inbounds %struct.UT_hash_table, ptr %619, i32 0, i32 5
  %621 = load i64, ptr %620, align 8, !tbaa !45
  %622 = sub i64 0, %621
  %623 = getelementptr inbounds i8, ptr %614, i64 %622
  store ptr %623, ptr %18, align 8, !tbaa !5
  br label %624

624:                                              ; preds = %610
  br label %625

625:                                              ; preds = %624
  br label %627

626:                                              ; preds = %603
  store ptr null, ptr %18, align 8, !tbaa !5
  br label %627

627:                                              ; preds = %626, %625
  br label %570, !llvm.loop !50

628:                                              ; preds = %601, %570
  br label %629

629:                                              ; preds = %628
  br label %630

630:                                              ; preds = %629
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #10
  br label %631

631:                                              ; preds = %630, %511
  br label %632

632:                                              ; preds = %631
  br label %633

633:                                              ; preds = %632
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #10
  br label %634

634:                                              ; preds = %633
  br label %635

635:                                              ; preds = %634
  %636 = load ptr, ptr %18, align 8, !tbaa !5
  %637 = icmp ne ptr %636, null
  br i1 %637, label %1532, label %638

638:                                              ; preds = %635
  %639 = call ptr @__caryll_allocate_clean(i64 noundef 72, i64 noundef 61)
  store ptr %639, ptr %18, align 8, !tbaa !5
  %640 = load ptr, ptr %17, align 8, !tbaa !5
  %641 = load ptr, ptr %18, align 8, !tbaa !5
  %642 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %641, i32 0, i32 0
  store ptr %640, ptr %642, align 8, !tbaa !51
  %643 = load ptr, ptr %7, align 8, !tbaa !5
  %644 = load ptr, ptr %643, align 8, !tbaa !5
  %645 = icmp ne ptr %644, null
  br i1 %645, label %646, label %654

646:                                              ; preds = %638
  %647 = load ptr, ptr %7, align 8, !tbaa !5
  %648 = load ptr, ptr %647, align 8, !tbaa !5
  %649 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %648, i32 0, i32 2
  %650 = getelementptr inbounds %struct.UT_hash_handle, ptr %649, i32 0, i32 0
  %651 = load ptr, ptr %650, align 8, !tbaa !36
  %652 = getelementptr inbounds %struct.UT_hash_table, ptr %651, i32 0, i32 3
  %653 = load i32, ptr %652, align 8, !tbaa !52
  br label %655

654:                                              ; preds = %638
  br label %655

655:                                              ; preds = %654, %646
  %656 = phi i32 [ %653, %646 ], [ 0, %654 ]
  %657 = trunc i32 %656 to i16
  %658 = load ptr, ptr %18, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %658, i32 0, i32 1
  store i16 %657, ptr %659, align 8, !tbaa !53
  br label %660

660:                                              ; preds = %655
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #10
  br label %661

661:                                              ; preds = %660
  br label %662

662:                                              ; preds = %661
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #10
  %663 = load ptr, ptr %18, align 8, !tbaa !5
  %664 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %663, i32 0, i32 0
  %665 = load ptr, ptr %664, align 8, !tbaa !51
  %666 = getelementptr inbounds i8, ptr %665, i64 0
  store ptr %666, ptr %29, align 8, !tbaa !5
  store i32 -17973521, ptr %25, align 4, !tbaa !20
  store i32 -1640531527, ptr %27, align 4, !tbaa !20
  store i32 -1640531527, ptr %26, align 4, !tbaa !20
  %667 = load ptr, ptr %18, align 8, !tbaa !5
  %668 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %667, i32 0, i32 0
  %669 = load ptr, ptr %668, align 8, !tbaa !51
  %670 = call i64 @strlen(ptr noundef %669) #11
  %671 = trunc i64 %670 to i32
  store i32 %671, ptr %28, align 4, !tbaa !20
  br label %672

672:                                              ; preds = %840, %662
  %673 = load i32, ptr %28, align 4, !tbaa !20
  %674 = icmp uge i32 %673, 12
  br i1 %674, label %675, label %845

675:                                              ; preds = %672
  %676 = load ptr, ptr %29, align 8, !tbaa !5
  %677 = getelementptr inbounds i8, ptr %676, i64 0
  %678 = load i8, ptr %677, align 1, !tbaa !11
  %679 = zext i8 %678 to i32
  %680 = load ptr, ptr %29, align 8, !tbaa !5
  %681 = getelementptr inbounds i8, ptr %680, i64 1
  %682 = load i8, ptr %681, align 1, !tbaa !11
  %683 = zext i8 %682 to i32
  %684 = shl i32 %683, 8
  %685 = add i32 %679, %684
  %686 = load ptr, ptr %29, align 8, !tbaa !5
  %687 = getelementptr inbounds i8, ptr %686, i64 2
  %688 = load i8, ptr %687, align 1, !tbaa !11
  %689 = zext i8 %688 to i32
  %690 = shl i32 %689, 16
  %691 = add i32 %685, %690
  %692 = load ptr, ptr %29, align 8, !tbaa !5
  %693 = getelementptr inbounds i8, ptr %692, i64 3
  %694 = load i8, ptr %693, align 1, !tbaa !11
  %695 = zext i8 %694 to i32
  %696 = shl i32 %695, 24
  %697 = add i32 %691, %696
  %698 = load i32, ptr %26, align 4, !tbaa !20
  %699 = add i32 %698, %697
  store i32 %699, ptr %26, align 4, !tbaa !20
  %700 = load ptr, ptr %29, align 8, !tbaa !5
  %701 = getelementptr inbounds i8, ptr %700, i64 4
  %702 = load i8, ptr %701, align 1, !tbaa !11
  %703 = zext i8 %702 to i32
  %704 = load ptr, ptr %29, align 8, !tbaa !5
  %705 = getelementptr inbounds i8, ptr %704, i64 5
  %706 = load i8, ptr %705, align 1, !tbaa !11
  %707 = zext i8 %706 to i32
  %708 = shl i32 %707, 8
  %709 = add i32 %703, %708
  %710 = load ptr, ptr %29, align 8, !tbaa !5
  %711 = getelementptr inbounds i8, ptr %710, i64 6
  %712 = load i8, ptr %711, align 1, !tbaa !11
  %713 = zext i8 %712 to i32
  %714 = shl i32 %713, 16
  %715 = add i32 %709, %714
  %716 = load ptr, ptr %29, align 8, !tbaa !5
  %717 = getelementptr inbounds i8, ptr %716, i64 7
  %718 = load i8, ptr %717, align 1, !tbaa !11
  %719 = zext i8 %718 to i32
  %720 = shl i32 %719, 24
  %721 = add i32 %715, %720
  %722 = load i32, ptr %27, align 4, !tbaa !20
  %723 = add i32 %722, %721
  store i32 %723, ptr %27, align 4, !tbaa !20
  %724 = load ptr, ptr %29, align 8, !tbaa !5
  %725 = getelementptr inbounds i8, ptr %724, i64 8
  %726 = load i8, ptr %725, align 1, !tbaa !11
  %727 = zext i8 %726 to i32
  %728 = load ptr, ptr %29, align 8, !tbaa !5
  %729 = getelementptr inbounds i8, ptr %728, i64 9
  %730 = load i8, ptr %729, align 1, !tbaa !11
  %731 = zext i8 %730 to i32
  %732 = shl i32 %731, 8
  %733 = add i32 %727, %732
  %734 = load ptr, ptr %29, align 8, !tbaa !5
  %735 = getelementptr inbounds i8, ptr %734, i64 10
  %736 = load i8, ptr %735, align 1, !tbaa !11
  %737 = zext i8 %736 to i32
  %738 = shl i32 %737, 16
  %739 = add i32 %733, %738
  %740 = load ptr, ptr %29, align 8, !tbaa !5
  %741 = getelementptr inbounds i8, ptr %740, i64 11
  %742 = load i8, ptr %741, align 1, !tbaa !11
  %743 = zext i8 %742 to i32
  %744 = shl i32 %743, 24
  %745 = add i32 %739, %744
  %746 = load i32, ptr %25, align 4, !tbaa !20
  %747 = add i32 %746, %745
  store i32 %747, ptr %25, align 4, !tbaa !20
  br label %748

748:                                              ; preds = %675
  %749 = load i32, ptr %27, align 4, !tbaa !20
  %750 = load i32, ptr %26, align 4, !tbaa !20
  %751 = sub i32 %750, %749
  store i32 %751, ptr %26, align 4, !tbaa !20
  %752 = load i32, ptr %25, align 4, !tbaa !20
  %753 = load i32, ptr %26, align 4, !tbaa !20
  %754 = sub i32 %753, %752
  store i32 %754, ptr %26, align 4, !tbaa !20
  %755 = load i32, ptr %25, align 4, !tbaa !20
  %756 = lshr i32 %755, 13
  %757 = load i32, ptr %26, align 4, !tbaa !20
  %758 = xor i32 %757, %756
  store i32 %758, ptr %26, align 4, !tbaa !20
  %759 = load i32, ptr %25, align 4, !tbaa !20
  %760 = load i32, ptr %27, align 4, !tbaa !20
  %761 = sub i32 %760, %759
  store i32 %761, ptr %27, align 4, !tbaa !20
  %762 = load i32, ptr %26, align 4, !tbaa !20
  %763 = load i32, ptr %27, align 4, !tbaa !20
  %764 = sub i32 %763, %762
  store i32 %764, ptr %27, align 4, !tbaa !20
  %765 = load i32, ptr %26, align 4, !tbaa !20
  %766 = shl i32 %765, 8
  %767 = load i32, ptr %27, align 4, !tbaa !20
  %768 = xor i32 %767, %766
  store i32 %768, ptr %27, align 4, !tbaa !20
  %769 = load i32, ptr %26, align 4, !tbaa !20
  %770 = load i32, ptr %25, align 4, !tbaa !20
  %771 = sub i32 %770, %769
  store i32 %771, ptr %25, align 4, !tbaa !20
  %772 = load i32, ptr %27, align 4, !tbaa !20
  %773 = load i32, ptr %25, align 4, !tbaa !20
  %774 = sub i32 %773, %772
  store i32 %774, ptr %25, align 4, !tbaa !20
  %775 = load i32, ptr %27, align 4, !tbaa !20
  %776 = lshr i32 %775, 13
  %777 = load i32, ptr %25, align 4, !tbaa !20
  %778 = xor i32 %777, %776
  store i32 %778, ptr %25, align 4, !tbaa !20
  %779 = load i32, ptr %27, align 4, !tbaa !20
  %780 = load i32, ptr %26, align 4, !tbaa !20
  %781 = sub i32 %780, %779
  store i32 %781, ptr %26, align 4, !tbaa !20
  %782 = load i32, ptr %25, align 4, !tbaa !20
  %783 = load i32, ptr %26, align 4, !tbaa !20
  %784 = sub i32 %783, %782
  store i32 %784, ptr %26, align 4, !tbaa !20
  %785 = load i32, ptr %25, align 4, !tbaa !20
  %786 = lshr i32 %785, 12
  %787 = load i32, ptr %26, align 4, !tbaa !20
  %788 = xor i32 %787, %786
  store i32 %788, ptr %26, align 4, !tbaa !20
  %789 = load i32, ptr %25, align 4, !tbaa !20
  %790 = load i32, ptr %27, align 4, !tbaa !20
  %791 = sub i32 %790, %789
  store i32 %791, ptr %27, align 4, !tbaa !20
  %792 = load i32, ptr %26, align 4, !tbaa !20
  %793 = load i32, ptr %27, align 4, !tbaa !20
  %794 = sub i32 %793, %792
  store i32 %794, ptr %27, align 4, !tbaa !20
  %795 = load i32, ptr %26, align 4, !tbaa !20
  %796 = shl i32 %795, 16
  %797 = load i32, ptr %27, align 4, !tbaa !20
  %798 = xor i32 %797, %796
  store i32 %798, ptr %27, align 4, !tbaa !20
  %799 = load i32, ptr %26, align 4, !tbaa !20
  %800 = load i32, ptr %25, align 4, !tbaa !20
  %801 = sub i32 %800, %799
  store i32 %801, ptr %25, align 4, !tbaa !20
  %802 = load i32, ptr %27, align 4, !tbaa !20
  %803 = load i32, ptr %25, align 4, !tbaa !20
  %804 = sub i32 %803, %802
  store i32 %804, ptr %25, align 4, !tbaa !20
  %805 = load i32, ptr %27, align 4, !tbaa !20
  %806 = lshr i32 %805, 5
  %807 = load i32, ptr %25, align 4, !tbaa !20
  %808 = xor i32 %807, %806
  store i32 %808, ptr %25, align 4, !tbaa !20
  %809 = load i32, ptr %27, align 4, !tbaa !20
  %810 = load i32, ptr %26, align 4, !tbaa !20
  %811 = sub i32 %810, %809
  store i32 %811, ptr %26, align 4, !tbaa !20
  %812 = load i32, ptr %25, align 4, !tbaa !20
  %813 = load i32, ptr %26, align 4, !tbaa !20
  %814 = sub i32 %813, %812
  store i32 %814, ptr %26, align 4, !tbaa !20
  %815 = load i32, ptr %25, align 4, !tbaa !20
  %816 = lshr i32 %815, 3
  %817 = load i32, ptr %26, align 4, !tbaa !20
  %818 = xor i32 %817, %816
  store i32 %818, ptr %26, align 4, !tbaa !20
  %819 = load i32, ptr %25, align 4, !tbaa !20
  %820 = load i32, ptr %27, align 4, !tbaa !20
  %821 = sub i32 %820, %819
  store i32 %821, ptr %27, align 4, !tbaa !20
  %822 = load i32, ptr %26, align 4, !tbaa !20
  %823 = load i32, ptr %27, align 4, !tbaa !20
  %824 = sub i32 %823, %822
  store i32 %824, ptr %27, align 4, !tbaa !20
  %825 = load i32, ptr %26, align 4, !tbaa !20
  %826 = shl i32 %825, 10
  %827 = load i32, ptr %27, align 4, !tbaa !20
  %828 = xor i32 %827, %826
  store i32 %828, ptr %27, align 4, !tbaa !20
  %829 = load i32, ptr %26, align 4, !tbaa !20
  %830 = load i32, ptr %25, align 4, !tbaa !20
  %831 = sub i32 %830, %829
  store i32 %831, ptr %25, align 4, !tbaa !20
  %832 = load i32, ptr %27, align 4, !tbaa !20
  %833 = load i32, ptr %25, align 4, !tbaa !20
  %834 = sub i32 %833, %832
  store i32 %834, ptr %25, align 4, !tbaa !20
  %835 = load i32, ptr %27, align 4, !tbaa !20
  %836 = lshr i32 %835, 15
  %837 = load i32, ptr %25, align 4, !tbaa !20
  %838 = xor i32 %837, %836
  store i32 %838, ptr %25, align 4, !tbaa !20
  br label %839

839:                                              ; preds = %748
  br label %840

840:                                              ; preds = %839
  %841 = load ptr, ptr %29, align 8, !tbaa !5
  %842 = getelementptr inbounds i8, ptr %841, i64 12
  store ptr %842, ptr %29, align 8, !tbaa !5
  %843 = load i32, ptr %28, align 4, !tbaa !20
  %844 = sub i32 %843, 12
  store i32 %844, ptr %28, align 4, !tbaa !20
  br label %672, !llvm.loop !54

845:                                              ; preds = %672
  %846 = load ptr, ptr %18, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %846, i32 0, i32 0
  %848 = load ptr, ptr %847, align 8, !tbaa !51
  %849 = call i64 @strlen(ptr noundef %848) #11
  %850 = trunc i64 %849 to i32
  %851 = load i32, ptr %25, align 4, !tbaa !20
  %852 = add i32 %851, %850
  store i32 %852, ptr %25, align 4, !tbaa !20
  %853 = load i32, ptr %28, align 4, !tbaa !20
  switch i32 %853, label %940 [
    i32 11, label %854
    i32 10, label %862
    i32 9, label %870
    i32 8, label %878
    i32 7, label %886
    i32 6, label %894
    i32 5, label %902
    i32 4, label %909
    i32 3, label %917
    i32 2, label %925
    i32 1, label %933
  ]

854:                                              ; preds = %845
  %855 = load ptr, ptr %29, align 8, !tbaa !5
  %856 = getelementptr inbounds i8, ptr %855, i64 10
  %857 = load i8, ptr %856, align 1, !tbaa !11
  %858 = zext i8 %857 to i32
  %859 = shl i32 %858, 24
  %860 = load i32, ptr %25, align 4, !tbaa !20
  %861 = add i32 %860, %859
  store i32 %861, ptr %25, align 4, !tbaa !20
  br label %862

862:                                              ; preds = %854, %845
  %863 = load ptr, ptr %29, align 8, !tbaa !5
  %864 = getelementptr inbounds i8, ptr %863, i64 9
  %865 = load i8, ptr %864, align 1, !tbaa !11
  %866 = zext i8 %865 to i32
  %867 = shl i32 %866, 16
  %868 = load i32, ptr %25, align 4, !tbaa !20
  %869 = add i32 %868, %867
  store i32 %869, ptr %25, align 4, !tbaa !20
  br label %870

870:                                              ; preds = %862, %845
  %871 = load ptr, ptr %29, align 8, !tbaa !5
  %872 = getelementptr inbounds i8, ptr %871, i64 8
  %873 = load i8, ptr %872, align 1, !tbaa !11
  %874 = zext i8 %873 to i32
  %875 = shl i32 %874, 8
  %876 = load i32, ptr %25, align 4, !tbaa !20
  %877 = add i32 %876, %875
  store i32 %877, ptr %25, align 4, !tbaa !20
  br label %878

878:                                              ; preds = %870, %845
  %879 = load ptr, ptr %29, align 8, !tbaa !5
  %880 = getelementptr inbounds i8, ptr %879, i64 7
  %881 = load i8, ptr %880, align 1, !tbaa !11
  %882 = zext i8 %881 to i32
  %883 = shl i32 %882, 24
  %884 = load i32, ptr %27, align 4, !tbaa !20
  %885 = add i32 %884, %883
  store i32 %885, ptr %27, align 4, !tbaa !20
  br label %886

886:                                              ; preds = %878, %845
  %887 = load ptr, ptr %29, align 8, !tbaa !5
  %888 = getelementptr inbounds i8, ptr %887, i64 6
  %889 = load i8, ptr %888, align 1, !tbaa !11
  %890 = zext i8 %889 to i32
  %891 = shl i32 %890, 16
  %892 = load i32, ptr %27, align 4, !tbaa !20
  %893 = add i32 %892, %891
  store i32 %893, ptr %27, align 4, !tbaa !20
  br label %894

894:                                              ; preds = %886, %845
  %895 = load ptr, ptr %29, align 8, !tbaa !5
  %896 = getelementptr inbounds i8, ptr %895, i64 5
  %897 = load i8, ptr %896, align 1, !tbaa !11
  %898 = zext i8 %897 to i32
  %899 = shl i32 %898, 8
  %900 = load i32, ptr %27, align 4, !tbaa !20
  %901 = add i32 %900, %899
  store i32 %901, ptr %27, align 4, !tbaa !20
  br label %902

902:                                              ; preds = %894, %845
  %903 = load ptr, ptr %29, align 8, !tbaa !5
  %904 = getelementptr inbounds i8, ptr %903, i64 4
  %905 = load i8, ptr %904, align 1, !tbaa !11
  %906 = zext i8 %905 to i32
  %907 = load i32, ptr %27, align 4, !tbaa !20
  %908 = add i32 %907, %906
  store i32 %908, ptr %27, align 4, !tbaa !20
  br label %909

909:                                              ; preds = %902, %845
  %910 = load ptr, ptr %29, align 8, !tbaa !5
  %911 = getelementptr inbounds i8, ptr %910, i64 3
  %912 = load i8, ptr %911, align 1, !tbaa !11
  %913 = zext i8 %912 to i32
  %914 = shl i32 %913, 24
  %915 = load i32, ptr %26, align 4, !tbaa !20
  %916 = add i32 %915, %914
  store i32 %916, ptr %26, align 4, !tbaa !20
  br label %917

917:                                              ; preds = %909, %845
  %918 = load ptr, ptr %29, align 8, !tbaa !5
  %919 = getelementptr inbounds i8, ptr %918, i64 2
  %920 = load i8, ptr %919, align 1, !tbaa !11
  %921 = zext i8 %920 to i32
  %922 = shl i32 %921, 16
  %923 = load i32, ptr %26, align 4, !tbaa !20
  %924 = add i32 %923, %922
  store i32 %924, ptr %26, align 4, !tbaa !20
  br label %925

925:                                              ; preds = %917, %845
  %926 = load ptr, ptr %29, align 8, !tbaa !5
  %927 = getelementptr inbounds i8, ptr %926, i64 1
  %928 = load i8, ptr %927, align 1, !tbaa !11
  %929 = zext i8 %928 to i32
  %930 = shl i32 %929, 8
  %931 = load i32, ptr %26, align 4, !tbaa !20
  %932 = add i32 %931, %930
  store i32 %932, ptr %26, align 4, !tbaa !20
  br label %933

933:                                              ; preds = %925, %845
  %934 = load ptr, ptr %29, align 8, !tbaa !5
  %935 = getelementptr inbounds i8, ptr %934, i64 0
  %936 = load i8, ptr %935, align 1, !tbaa !11
  %937 = zext i8 %936 to i32
  %938 = load i32, ptr %26, align 4, !tbaa !20
  %939 = add i32 %938, %937
  store i32 %939, ptr %26, align 4, !tbaa !20
  br label %940

940:                                              ; preds = %933, %845
  br label %941

941:                                              ; preds = %940
  %942 = load i32, ptr %27, align 4, !tbaa !20
  %943 = load i32, ptr %26, align 4, !tbaa !20
  %944 = sub i32 %943, %942
  store i32 %944, ptr %26, align 4, !tbaa !20
  %945 = load i32, ptr %25, align 4, !tbaa !20
  %946 = load i32, ptr %26, align 4, !tbaa !20
  %947 = sub i32 %946, %945
  store i32 %947, ptr %26, align 4, !tbaa !20
  %948 = load i32, ptr %25, align 4, !tbaa !20
  %949 = lshr i32 %948, 13
  %950 = load i32, ptr %26, align 4, !tbaa !20
  %951 = xor i32 %950, %949
  store i32 %951, ptr %26, align 4, !tbaa !20
  %952 = load i32, ptr %25, align 4, !tbaa !20
  %953 = load i32, ptr %27, align 4, !tbaa !20
  %954 = sub i32 %953, %952
  store i32 %954, ptr %27, align 4, !tbaa !20
  %955 = load i32, ptr %26, align 4, !tbaa !20
  %956 = load i32, ptr %27, align 4, !tbaa !20
  %957 = sub i32 %956, %955
  store i32 %957, ptr %27, align 4, !tbaa !20
  %958 = load i32, ptr %26, align 4, !tbaa !20
  %959 = shl i32 %958, 8
  %960 = load i32, ptr %27, align 4, !tbaa !20
  %961 = xor i32 %960, %959
  store i32 %961, ptr %27, align 4, !tbaa !20
  %962 = load i32, ptr %26, align 4, !tbaa !20
  %963 = load i32, ptr %25, align 4, !tbaa !20
  %964 = sub i32 %963, %962
  store i32 %964, ptr %25, align 4, !tbaa !20
  %965 = load i32, ptr %27, align 4, !tbaa !20
  %966 = load i32, ptr %25, align 4, !tbaa !20
  %967 = sub i32 %966, %965
  store i32 %967, ptr %25, align 4, !tbaa !20
  %968 = load i32, ptr %27, align 4, !tbaa !20
  %969 = lshr i32 %968, 13
  %970 = load i32, ptr %25, align 4, !tbaa !20
  %971 = xor i32 %970, %969
  store i32 %971, ptr %25, align 4, !tbaa !20
  %972 = load i32, ptr %27, align 4, !tbaa !20
  %973 = load i32, ptr %26, align 4, !tbaa !20
  %974 = sub i32 %973, %972
  store i32 %974, ptr %26, align 4, !tbaa !20
  %975 = load i32, ptr %25, align 4, !tbaa !20
  %976 = load i32, ptr %26, align 4, !tbaa !20
  %977 = sub i32 %976, %975
  store i32 %977, ptr %26, align 4, !tbaa !20
  %978 = load i32, ptr %25, align 4, !tbaa !20
  %979 = lshr i32 %978, 12
  %980 = load i32, ptr %26, align 4, !tbaa !20
  %981 = xor i32 %980, %979
  store i32 %981, ptr %26, align 4, !tbaa !20
  %982 = load i32, ptr %25, align 4, !tbaa !20
  %983 = load i32, ptr %27, align 4, !tbaa !20
  %984 = sub i32 %983, %982
  store i32 %984, ptr %27, align 4, !tbaa !20
  %985 = load i32, ptr %26, align 4, !tbaa !20
  %986 = load i32, ptr %27, align 4, !tbaa !20
  %987 = sub i32 %986, %985
  store i32 %987, ptr %27, align 4, !tbaa !20
  %988 = load i32, ptr %26, align 4, !tbaa !20
  %989 = shl i32 %988, 16
  %990 = load i32, ptr %27, align 4, !tbaa !20
  %991 = xor i32 %990, %989
  store i32 %991, ptr %27, align 4, !tbaa !20
  %992 = load i32, ptr %26, align 4, !tbaa !20
  %993 = load i32, ptr %25, align 4, !tbaa !20
  %994 = sub i32 %993, %992
  store i32 %994, ptr %25, align 4, !tbaa !20
  %995 = load i32, ptr %27, align 4, !tbaa !20
  %996 = load i32, ptr %25, align 4, !tbaa !20
  %997 = sub i32 %996, %995
  store i32 %997, ptr %25, align 4, !tbaa !20
  %998 = load i32, ptr %27, align 4, !tbaa !20
  %999 = lshr i32 %998, 5
  %1000 = load i32, ptr %25, align 4, !tbaa !20
  %1001 = xor i32 %1000, %999
  store i32 %1001, ptr %25, align 4, !tbaa !20
  %1002 = load i32, ptr %27, align 4, !tbaa !20
  %1003 = load i32, ptr %26, align 4, !tbaa !20
  %1004 = sub i32 %1003, %1002
  store i32 %1004, ptr %26, align 4, !tbaa !20
  %1005 = load i32, ptr %25, align 4, !tbaa !20
  %1006 = load i32, ptr %26, align 4, !tbaa !20
  %1007 = sub i32 %1006, %1005
  store i32 %1007, ptr %26, align 4, !tbaa !20
  %1008 = load i32, ptr %25, align 4, !tbaa !20
  %1009 = lshr i32 %1008, 3
  %1010 = load i32, ptr %26, align 4, !tbaa !20
  %1011 = xor i32 %1010, %1009
  store i32 %1011, ptr %26, align 4, !tbaa !20
  %1012 = load i32, ptr %25, align 4, !tbaa !20
  %1013 = load i32, ptr %27, align 4, !tbaa !20
  %1014 = sub i32 %1013, %1012
  store i32 %1014, ptr %27, align 4, !tbaa !20
  %1015 = load i32, ptr %26, align 4, !tbaa !20
  %1016 = load i32, ptr %27, align 4, !tbaa !20
  %1017 = sub i32 %1016, %1015
  store i32 %1017, ptr %27, align 4, !tbaa !20
  %1018 = load i32, ptr %26, align 4, !tbaa !20
  %1019 = shl i32 %1018, 10
  %1020 = load i32, ptr %27, align 4, !tbaa !20
  %1021 = xor i32 %1020, %1019
  store i32 %1021, ptr %27, align 4, !tbaa !20
  %1022 = load i32, ptr %26, align 4, !tbaa !20
  %1023 = load i32, ptr %25, align 4, !tbaa !20
  %1024 = sub i32 %1023, %1022
  store i32 %1024, ptr %25, align 4, !tbaa !20
  %1025 = load i32, ptr %27, align 4, !tbaa !20
  %1026 = load i32, ptr %25, align 4, !tbaa !20
  %1027 = sub i32 %1026, %1025
  store i32 %1027, ptr %25, align 4, !tbaa !20
  %1028 = load i32, ptr %27, align 4, !tbaa !20
  %1029 = lshr i32 %1028, 15
  %1030 = load i32, ptr %25, align 4, !tbaa !20
  %1031 = xor i32 %1030, %1029
  store i32 %1031, ptr %25, align 4, !tbaa !20
  br label %1032

1032:                                             ; preds = %941
  br label %1033

1033:                                             ; preds = %1032
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #10
  br label %1034

1034:                                             ; preds = %1033
  br label %1035

1035:                                             ; preds = %1034
  br label %1036

1036:                                             ; preds = %1035
  br label %1037

1037:                                             ; preds = %1036
  br label %1038

1038:                                             ; preds = %1037
  %1039 = load i32, ptr %25, align 4, !tbaa !20
  %1040 = load ptr, ptr %18, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1040, i32 0, i32 2
  %1042 = getelementptr inbounds %struct.UT_hash_handle, ptr %1041, i32 0, i32 7
  store i32 %1039, ptr %1042, align 4, !tbaa !46
  %1043 = load ptr, ptr %18, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1043, i32 0, i32 0
  %1045 = load ptr, ptr %1044, align 8, !tbaa !51
  %1046 = getelementptr inbounds i8, ptr %1045, i64 0
  %1047 = load ptr, ptr %18, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1047, i32 0, i32 2
  %1049 = getelementptr inbounds %struct.UT_hash_handle, ptr %1048, i32 0, i32 5
  store ptr %1046, ptr %1049, align 8, !tbaa !48
  %1050 = load ptr, ptr %18, align 8, !tbaa !5
  %1051 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1050, i32 0, i32 0
  %1052 = load ptr, ptr %1051, align 8, !tbaa !51
  %1053 = call i64 @strlen(ptr noundef %1052) #11
  %1054 = trunc i64 %1053 to i32
  %1055 = load ptr, ptr %18, align 8, !tbaa !5
  %1056 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1055, i32 0, i32 2
  %1057 = getelementptr inbounds %struct.UT_hash_handle, ptr %1056, i32 0, i32 6
  store i32 %1054, ptr %1057, align 8, !tbaa !47
  %1058 = load ptr, ptr %7, align 8, !tbaa !5
  %1059 = load ptr, ptr %1058, align 8, !tbaa !5
  %1060 = icmp ne ptr %1059, null
  br i1 %1060, label %1144, label %1061

1061:                                             ; preds = %1038
  %1062 = load ptr, ptr %18, align 8, !tbaa !5
  %1063 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1062, i32 0, i32 2
  %1064 = getelementptr inbounds %struct.UT_hash_handle, ptr %1063, i32 0, i32 2
  store ptr null, ptr %1064, align 8, !tbaa !55
  %1065 = load ptr, ptr %18, align 8, !tbaa !5
  %1066 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1065, i32 0, i32 2
  %1067 = getelementptr inbounds %struct.UT_hash_handle, ptr %1066, i32 0, i32 1
  store ptr null, ptr %1067, align 8, !tbaa !56
  br label %1068

1068:                                             ; preds = %1061
  %1069 = call noalias ptr @malloc(i64 noundef 64) #12
  %1070 = load ptr, ptr %18, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1070, i32 0, i32 2
  %1072 = getelementptr inbounds %struct.UT_hash_handle, ptr %1071, i32 0, i32 0
  store ptr %1069, ptr %1072, align 8, !tbaa !36
  %1073 = load ptr, ptr %18, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1073, i32 0, i32 2
  %1075 = getelementptr inbounds %struct.UT_hash_handle, ptr %1074, i32 0, i32 0
  %1076 = load ptr, ptr %1075, align 8, !tbaa !36
  %1077 = icmp ne ptr %1076, null
  br i1 %1077, label %1079, label %1078

1078:                                             ; preds = %1068
  call void @exit(i32 noundef -1) #13
  unreachable

1079:                                             ; preds = %1068
  %1080 = load ptr, ptr %18, align 8, !tbaa !5
  %1081 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1080, i32 0, i32 2
  %1082 = getelementptr inbounds %struct.UT_hash_handle, ptr %1081, i32 0, i32 0
  %1083 = load ptr, ptr %1082, align 8, !tbaa !36
  call void @llvm.memset.p0.i64(ptr align 8 %1083, i8 0, i64 64, i1 false)
  %1084 = load ptr, ptr %18, align 8, !tbaa !5
  %1085 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1084, i32 0, i32 2
  %1086 = load ptr, ptr %18, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1086, i32 0, i32 2
  %1088 = getelementptr inbounds %struct.UT_hash_handle, ptr %1087, i32 0, i32 0
  %1089 = load ptr, ptr %1088, align 8, !tbaa !36
  %1090 = getelementptr inbounds %struct.UT_hash_table, ptr %1089, i32 0, i32 4
  store ptr %1085, ptr %1090, align 8, !tbaa !57
  %1091 = load ptr, ptr %18, align 8, !tbaa !5
  %1092 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1091, i32 0, i32 2
  %1093 = getelementptr inbounds %struct.UT_hash_handle, ptr %1092, i32 0, i32 0
  %1094 = load ptr, ptr %1093, align 8, !tbaa !36
  %1095 = getelementptr inbounds %struct.UT_hash_table, ptr %1094, i32 0, i32 1
  store i32 32, ptr %1095, align 8, !tbaa !39
  %1096 = load ptr, ptr %18, align 8, !tbaa !5
  %1097 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1096, i32 0, i32 2
  %1098 = getelementptr inbounds %struct.UT_hash_handle, ptr %1097, i32 0, i32 0
  %1099 = load ptr, ptr %1098, align 8, !tbaa !36
  %1100 = getelementptr inbounds %struct.UT_hash_table, ptr %1099, i32 0, i32 2
  store i32 5, ptr %1100, align 4, !tbaa !58
  %1101 = load ptr, ptr %18, align 8, !tbaa !5
  %1102 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1101, i32 0, i32 2
  %1103 = load ptr, ptr %18, align 8, !tbaa !5
  %1104 = ptrtoint ptr %1102 to i64
  %1105 = ptrtoint ptr %1103 to i64
  %1106 = sub i64 %1104, %1105
  %1107 = load ptr, ptr %18, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1107, i32 0, i32 2
  %1109 = getelementptr inbounds %struct.UT_hash_handle, ptr %1108, i32 0, i32 0
  %1110 = load ptr, ptr %1109, align 8, !tbaa !36
  %1111 = getelementptr inbounds %struct.UT_hash_table, ptr %1110, i32 0, i32 5
  store i64 %1106, ptr %1111, align 8, !tbaa !45
  %1112 = call noalias ptr @malloc(i64 noundef 512) #12
  %1113 = load ptr, ptr %18, align 8, !tbaa !5
  %1114 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1113, i32 0, i32 2
  %1115 = getelementptr inbounds %struct.UT_hash_handle, ptr %1114, i32 0, i32 0
  %1116 = load ptr, ptr %1115, align 8, !tbaa !36
  %1117 = getelementptr inbounds %struct.UT_hash_table, ptr %1116, i32 0, i32 0
  store ptr %1112, ptr %1117, align 8, !tbaa !42
  %1118 = load ptr, ptr %18, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1118, i32 0, i32 2
  %1120 = getelementptr inbounds %struct.UT_hash_handle, ptr %1119, i32 0, i32 0
  %1121 = load ptr, ptr %1120, align 8, !tbaa !36
  %1122 = getelementptr inbounds %struct.UT_hash_table, ptr %1121, i32 0, i32 10
  store i32 -1609490463, ptr %1122, align 8, !tbaa !59
  %1123 = load ptr, ptr %18, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1123, i32 0, i32 2
  %1125 = getelementptr inbounds %struct.UT_hash_handle, ptr %1124, i32 0, i32 0
  %1126 = load ptr, ptr %1125, align 8, !tbaa !36
  %1127 = getelementptr inbounds %struct.UT_hash_table, ptr %1126, i32 0, i32 0
  %1128 = load ptr, ptr %1127, align 8, !tbaa !42
  %1129 = icmp ne ptr %1128, null
  br i1 %1129, label %1131, label %1130

1130:                                             ; preds = %1079
  call void @exit(i32 noundef -1) #13
  unreachable

1131:                                             ; preds = %1079
  %1132 = load ptr, ptr %18, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1132, i32 0, i32 2
  %1134 = getelementptr inbounds %struct.UT_hash_handle, ptr %1133, i32 0, i32 0
  %1135 = load ptr, ptr %1134, align 8, !tbaa !36
  %1136 = getelementptr inbounds %struct.UT_hash_table, ptr %1135, i32 0, i32 0
  %1137 = load ptr, ptr %1136, align 8, !tbaa !42
  call void @llvm.memset.p0.i64(ptr align 8 %1137, i8 0, i64 512, i1 false)
  br label %1138

1138:                                             ; preds = %1131
  br label %1139

1139:                                             ; preds = %1138
  br label %1140

1140:                                             ; preds = %1139
  br label %1141

1141:                                             ; preds = %1140
  %1142 = load ptr, ptr %18, align 8, !tbaa !5
  %1143 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1142, ptr %1143, align 8, !tbaa !5
  br label %1195

1144:                                             ; preds = %1038
  %1145 = load ptr, ptr %7, align 8, !tbaa !5
  %1146 = load ptr, ptr %1145, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1146, i32 0, i32 2
  %1148 = getelementptr inbounds %struct.UT_hash_handle, ptr %1147, i32 0, i32 0
  %1149 = load ptr, ptr %1148, align 8, !tbaa !36
  %1150 = load ptr, ptr %18, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1150, i32 0, i32 2
  %1152 = getelementptr inbounds %struct.UT_hash_handle, ptr %1151, i32 0, i32 0
  store ptr %1149, ptr %1152, align 8, !tbaa !36
  br label %1153

1153:                                             ; preds = %1144
  %1154 = load ptr, ptr %18, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1154, i32 0, i32 2
  %1156 = getelementptr inbounds %struct.UT_hash_handle, ptr %1155, i32 0, i32 2
  store ptr null, ptr %1156, align 8, !tbaa !55
  %1157 = load ptr, ptr %7, align 8, !tbaa !5
  %1158 = load ptr, ptr %1157, align 8, !tbaa !5
  %1159 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1158, i32 0, i32 2
  %1160 = getelementptr inbounds %struct.UT_hash_handle, ptr %1159, i32 0, i32 0
  %1161 = load ptr, ptr %1160, align 8, !tbaa !36
  %1162 = getelementptr inbounds %struct.UT_hash_table, ptr %1161, i32 0, i32 4
  %1163 = load ptr, ptr %1162, align 8, !tbaa !57
  %1164 = load ptr, ptr %7, align 8, !tbaa !5
  %1165 = load ptr, ptr %1164, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1165, i32 0, i32 2
  %1167 = getelementptr inbounds %struct.UT_hash_handle, ptr %1166, i32 0, i32 0
  %1168 = load ptr, ptr %1167, align 8, !tbaa !36
  %1169 = getelementptr inbounds %struct.UT_hash_table, ptr %1168, i32 0, i32 5
  %1170 = load i64, ptr %1169, align 8, !tbaa !45
  %1171 = sub i64 0, %1170
  %1172 = getelementptr inbounds i8, ptr %1163, i64 %1171
  %1173 = load ptr, ptr %18, align 8, !tbaa !5
  %1174 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1173, i32 0, i32 2
  %1175 = getelementptr inbounds %struct.UT_hash_handle, ptr %1174, i32 0, i32 1
  store ptr %1172, ptr %1175, align 8, !tbaa !56
  %1176 = load ptr, ptr %18, align 8, !tbaa !5
  %1177 = load ptr, ptr %7, align 8, !tbaa !5
  %1178 = load ptr, ptr %1177, align 8, !tbaa !5
  %1179 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1178, i32 0, i32 2
  %1180 = getelementptr inbounds %struct.UT_hash_handle, ptr %1179, i32 0, i32 0
  %1181 = load ptr, ptr %1180, align 8, !tbaa !36
  %1182 = getelementptr inbounds %struct.UT_hash_table, ptr %1181, i32 0, i32 4
  %1183 = load ptr, ptr %1182, align 8, !tbaa !57
  %1184 = getelementptr inbounds %struct.UT_hash_handle, ptr %1183, i32 0, i32 2
  store ptr %1176, ptr %1184, align 8, !tbaa !60
  %1185 = load ptr, ptr %18, align 8, !tbaa !5
  %1186 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1185, i32 0, i32 2
  %1187 = load ptr, ptr %7, align 8, !tbaa !5
  %1188 = load ptr, ptr %1187, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1188, i32 0, i32 2
  %1190 = getelementptr inbounds %struct.UT_hash_handle, ptr %1189, i32 0, i32 0
  %1191 = load ptr, ptr %1190, align 8, !tbaa !36
  %1192 = getelementptr inbounds %struct.UT_hash_table, ptr %1191, i32 0, i32 4
  store ptr %1186, ptr %1192, align 8, !tbaa !57
  br label %1193

1193:                                             ; preds = %1153
  br label %1194

1194:                                             ; preds = %1193
  br label %1195

1195:                                             ; preds = %1194, %1141
  br label %1196

1196:                                             ; preds = %1195
  call void @llvm.lifetime.start.p0(i64 4, ptr %30) #10
  %1197 = load ptr, ptr %7, align 8, !tbaa !5
  %1198 = load ptr, ptr %1197, align 8, !tbaa !5
  %1199 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1198, i32 0, i32 2
  %1200 = getelementptr inbounds %struct.UT_hash_handle, ptr %1199, i32 0, i32 0
  %1201 = load ptr, ptr %1200, align 8, !tbaa !36
  %1202 = getelementptr inbounds %struct.UT_hash_table, ptr %1201, i32 0, i32 3
  %1203 = load i32, ptr %1202, align 8, !tbaa !52
  %1204 = add i32 %1203, 1
  store i32 %1204, ptr %1202, align 8, !tbaa !52
  br label %1205

1205:                                             ; preds = %1196
  %1206 = load i32, ptr %25, align 4, !tbaa !20
  %1207 = load ptr, ptr %7, align 8, !tbaa !5
  %1208 = load ptr, ptr %1207, align 8, !tbaa !5
  %1209 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1208, i32 0, i32 2
  %1210 = getelementptr inbounds %struct.UT_hash_handle, ptr %1209, i32 0, i32 0
  %1211 = load ptr, ptr %1210, align 8, !tbaa !36
  %1212 = getelementptr inbounds %struct.UT_hash_table, ptr %1211, i32 0, i32 1
  %1213 = load i32, ptr %1212, align 8, !tbaa !39
  %1214 = sub i32 %1213, 1
  %1215 = and i32 %1206, %1214
  store i32 %1215, ptr %30, align 4, !tbaa !20
  br label %1216

1216:                                             ; preds = %1205
  br label %1217

1217:                                             ; preds = %1216
  br label %1218

1218:                                             ; preds = %1217
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #10
  %1219 = load ptr, ptr %7, align 8, !tbaa !5
  %1220 = load ptr, ptr %1219, align 8, !tbaa !5
  %1221 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1220, i32 0, i32 2
  %1222 = getelementptr inbounds %struct.UT_hash_handle, ptr %1221, i32 0, i32 0
  %1223 = load ptr, ptr %1222, align 8, !tbaa !36
  %1224 = getelementptr inbounds %struct.UT_hash_table, ptr %1223, i32 0, i32 0
  %1225 = load ptr, ptr %1224, align 8, !tbaa !42
  %1226 = load i32, ptr %30, align 4, !tbaa !20
  %1227 = zext i32 %1226 to i64
  %1228 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1225, i64 %1227
  store ptr %1228, ptr %31, align 8, !tbaa !5
  %1229 = load ptr, ptr %31, align 8, !tbaa !5
  %1230 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1229, i32 0, i32 1
  %1231 = load i32, ptr %1230, align 8, !tbaa !61
  %1232 = add i32 %1231, 1
  store i32 %1232, ptr %1230, align 8, !tbaa !61
  %1233 = load ptr, ptr %31, align 8, !tbaa !5
  %1234 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1233, i32 0, i32 0
  %1235 = load ptr, ptr %1234, align 8, !tbaa !43
  %1236 = load ptr, ptr %18, align 8, !tbaa !5
  %1237 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1236, i32 0, i32 2
  %1238 = getelementptr inbounds %struct.UT_hash_handle, ptr %1237, i32 0, i32 4
  store ptr %1235, ptr %1238, align 8, !tbaa !49
  %1239 = load ptr, ptr %18, align 8, !tbaa !5
  %1240 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1239, i32 0, i32 2
  %1241 = getelementptr inbounds %struct.UT_hash_handle, ptr %1240, i32 0, i32 3
  store ptr null, ptr %1241, align 8, !tbaa !62
  %1242 = load ptr, ptr %31, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1242, i32 0, i32 0
  %1244 = load ptr, ptr %1243, align 8, !tbaa !43
  %1245 = icmp ne ptr %1244, null
  br i1 %1245, label %1246, label %1253

1246:                                             ; preds = %1218
  %1247 = load ptr, ptr %18, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1247, i32 0, i32 2
  %1249 = load ptr, ptr %31, align 8, !tbaa !5
  %1250 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1249, i32 0, i32 0
  %1251 = load ptr, ptr %1250, align 8, !tbaa !43
  %1252 = getelementptr inbounds %struct.UT_hash_handle, ptr %1251, i32 0, i32 3
  store ptr %1248, ptr %1252, align 8, !tbaa !63
  br label %1253

1253:                                             ; preds = %1246, %1218
  %1254 = load ptr, ptr %18, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1254, i32 0, i32 2
  %1256 = load ptr, ptr %31, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1256, i32 0, i32 0
  store ptr %1255, ptr %1257, align 8, !tbaa !43
  %1258 = load ptr, ptr %31, align 8, !tbaa !5
  %1259 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1258, i32 0, i32 1
  %1260 = load i32, ptr %1259, align 8, !tbaa !61
  %1261 = load ptr, ptr %31, align 8, !tbaa !5
  %1262 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1261, i32 0, i32 2
  %1263 = load i32, ptr %1262, align 4, !tbaa !64
  %1264 = add i32 %1263, 1
  %1265 = mul i32 %1264, 10
  %1266 = icmp uge i32 %1260, %1265
  br i1 %1266, label %1267, label %1523

1267:                                             ; preds = %1253
  %1268 = load ptr, ptr %18, align 8, !tbaa !5
  %1269 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1268, i32 0, i32 2
  %1270 = getelementptr inbounds %struct.UT_hash_handle, ptr %1269, i32 0, i32 0
  %1271 = load ptr, ptr %1270, align 8, !tbaa !36
  %1272 = getelementptr inbounds %struct.UT_hash_table, ptr %1271, i32 0, i32 9
  %1273 = load i32, ptr %1272, align 4, !tbaa !65
  %1274 = icmp ne i32 %1273, 0
  br i1 %1274, label %1523, label %1275

1275:                                             ; preds = %1267
  br label %1276

1276:                                             ; preds = %1275
  call void @llvm.lifetime.start.p0(i64 4, ptr %32) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %37) #10
  %1277 = load ptr, ptr %18, align 8, !tbaa !5
  %1278 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1277, i32 0, i32 2
  %1279 = getelementptr inbounds %struct.UT_hash_handle, ptr %1278, i32 0, i32 0
  %1280 = load ptr, ptr %1279, align 8, !tbaa !36
  %1281 = getelementptr inbounds %struct.UT_hash_table, ptr %1280, i32 0, i32 1
  %1282 = load i32, ptr %1281, align 8, !tbaa !39
  %1283 = zext i32 %1282 to i64
  %1284 = mul i64 2, %1283
  %1285 = mul i64 %1284, 16
  %1286 = call noalias ptr @malloc(i64 noundef %1285) #12
  store ptr %1286, ptr %36, align 8, !tbaa !5
  %1287 = load ptr, ptr %36, align 8, !tbaa !5
  %1288 = icmp ne ptr %1287, null
  br i1 %1288, label %1290, label %1289

1289:                                             ; preds = %1276
  call void @exit(i32 noundef -1) #13
  unreachable

1290:                                             ; preds = %1276
  %1291 = load ptr, ptr %36, align 8, !tbaa !5
  %1292 = load ptr, ptr %18, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1292, i32 0, i32 2
  %1294 = getelementptr inbounds %struct.UT_hash_handle, ptr %1293, i32 0, i32 0
  %1295 = load ptr, ptr %1294, align 8, !tbaa !36
  %1296 = getelementptr inbounds %struct.UT_hash_table, ptr %1295, i32 0, i32 1
  %1297 = load i32, ptr %1296, align 8, !tbaa !39
  %1298 = zext i32 %1297 to i64
  %1299 = mul i64 2, %1298
  %1300 = mul i64 %1299, 16
  call void @llvm.memset.p0.i64(ptr align 8 %1291, i8 0, i64 %1300, i1 false)
  %1301 = load ptr, ptr %18, align 8, !tbaa !5
  %1302 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1301, i32 0, i32 2
  %1303 = getelementptr inbounds %struct.UT_hash_handle, ptr %1302, i32 0, i32 0
  %1304 = load ptr, ptr %1303, align 8, !tbaa !36
  %1305 = getelementptr inbounds %struct.UT_hash_table, ptr %1304, i32 0, i32 3
  %1306 = load i32, ptr %1305, align 8, !tbaa !52
  %1307 = load ptr, ptr %18, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1307, i32 0, i32 2
  %1309 = getelementptr inbounds %struct.UT_hash_handle, ptr %1308, i32 0, i32 0
  %1310 = load ptr, ptr %1309, align 8, !tbaa !36
  %1311 = getelementptr inbounds %struct.UT_hash_table, ptr %1310, i32 0, i32 2
  %1312 = load i32, ptr %1311, align 4, !tbaa !58
  %1313 = add i32 %1312, 1
  %1314 = lshr i32 %1306, %1313
  %1315 = load ptr, ptr %18, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1315, i32 0, i32 2
  %1317 = getelementptr inbounds %struct.UT_hash_handle, ptr %1316, i32 0, i32 0
  %1318 = load ptr, ptr %1317, align 8, !tbaa !36
  %1319 = getelementptr inbounds %struct.UT_hash_table, ptr %1318, i32 0, i32 3
  %1320 = load i32, ptr %1319, align 8, !tbaa !52
  %1321 = load ptr, ptr %18, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1321, i32 0, i32 2
  %1323 = getelementptr inbounds %struct.UT_hash_handle, ptr %1322, i32 0, i32 0
  %1324 = load ptr, ptr %1323, align 8, !tbaa !36
  %1325 = getelementptr inbounds %struct.UT_hash_table, ptr %1324, i32 0, i32 1
  %1326 = load i32, ptr %1325, align 8, !tbaa !39
  %1327 = mul i32 %1326, 2
  %1328 = sub i32 %1327, 1
  %1329 = and i32 %1320, %1328
  %1330 = icmp ne i32 %1329, 0
  %1331 = zext i1 %1330 to i64
  %1332 = select i1 %1330, i32 1, i32 0
  %1333 = add i32 %1314, %1332
  %1334 = load ptr, ptr %18, align 8, !tbaa !5
  %1335 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1334, i32 0, i32 2
  %1336 = getelementptr inbounds %struct.UT_hash_handle, ptr %1335, i32 0, i32 0
  %1337 = load ptr, ptr %1336, align 8, !tbaa !36
  %1338 = getelementptr inbounds %struct.UT_hash_table, ptr %1337, i32 0, i32 6
  store i32 %1333, ptr %1338, align 8, !tbaa !66
  %1339 = load ptr, ptr %18, align 8, !tbaa !5
  %1340 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1339, i32 0, i32 2
  %1341 = getelementptr inbounds %struct.UT_hash_handle, ptr %1340, i32 0, i32 0
  %1342 = load ptr, ptr %1341, align 8, !tbaa !36
  %1343 = getelementptr inbounds %struct.UT_hash_table, ptr %1342, i32 0, i32 7
  store i32 0, ptr %1343, align 4, !tbaa !67
  store i32 0, ptr %33, align 4, !tbaa !20
  br label %1344

1344:                                             ; preds = %1446, %1290
  %1345 = load i32, ptr %33, align 4, !tbaa !20
  %1346 = load ptr, ptr %18, align 8, !tbaa !5
  %1347 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1346, i32 0, i32 2
  %1348 = getelementptr inbounds %struct.UT_hash_handle, ptr %1347, i32 0, i32 0
  %1349 = load ptr, ptr %1348, align 8, !tbaa !36
  %1350 = getelementptr inbounds %struct.UT_hash_table, ptr %1349, i32 0, i32 1
  %1351 = load i32, ptr %1350, align 8, !tbaa !39
  %1352 = icmp ult i32 %1345, %1351
  br i1 %1352, label %1353, label %1449

1353:                                             ; preds = %1344
  %1354 = load ptr, ptr %18, align 8, !tbaa !5
  %1355 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1354, i32 0, i32 2
  %1356 = getelementptr inbounds %struct.UT_hash_handle, ptr %1355, i32 0, i32 0
  %1357 = load ptr, ptr %1356, align 8, !tbaa !36
  %1358 = getelementptr inbounds %struct.UT_hash_table, ptr %1357, i32 0, i32 0
  %1359 = load ptr, ptr %1358, align 8, !tbaa !42
  %1360 = load i32, ptr %33, align 4, !tbaa !20
  %1361 = zext i32 %1360 to i64
  %1362 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1359, i64 %1361
  %1363 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1362, i32 0, i32 0
  %1364 = load ptr, ptr %1363, align 8, !tbaa !43
  store ptr %1364, ptr %34, align 8, !tbaa !5
  br label %1365

1365:                                             ; preds = %1440, %1353
  %1366 = load ptr, ptr %34, align 8, !tbaa !5
  %1367 = icmp ne ptr %1366, null
  br i1 %1367, label %1368, label %1445

1368:                                             ; preds = %1365
  %1369 = load ptr, ptr %34, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.UT_hash_handle, ptr %1369, i32 0, i32 4
  %1371 = load ptr, ptr %1370, align 8, !tbaa !68
  store ptr %1371, ptr %35, align 8, !tbaa !5
  br label %1372

1372:                                             ; preds = %1368
  %1373 = load ptr, ptr %34, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.UT_hash_handle, ptr %1373, i32 0, i32 7
  %1375 = load i32, ptr %1374, align 4, !tbaa !69
  %1376 = load ptr, ptr %18, align 8, !tbaa !5
  %1377 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1376, i32 0, i32 2
  %1378 = getelementptr inbounds %struct.UT_hash_handle, ptr %1377, i32 0, i32 0
  %1379 = load ptr, ptr %1378, align 8, !tbaa !36
  %1380 = getelementptr inbounds %struct.UT_hash_table, ptr %1379, i32 0, i32 1
  %1381 = load i32, ptr %1380, align 8, !tbaa !39
  %1382 = mul i32 %1381, 2
  %1383 = sub i32 %1382, 1
  %1384 = and i32 %1375, %1383
  store i32 %1384, ptr %32, align 4, !tbaa !20
  br label %1385

1385:                                             ; preds = %1372
  br label %1386

1386:                                             ; preds = %1385
  %1387 = load ptr, ptr %36, align 8, !tbaa !5
  %1388 = load i32, ptr %32, align 4, !tbaa !20
  %1389 = zext i32 %1388 to i64
  %1390 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1387, i64 %1389
  store ptr %1390, ptr %37, align 8, !tbaa !5
  %1391 = load ptr, ptr %37, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1391, i32 0, i32 1
  %1393 = load i32, ptr %1392, align 8, !tbaa !61
  %1394 = add i32 %1393, 1
  store i32 %1394, ptr %1392, align 8, !tbaa !61
  %1395 = load ptr, ptr %18, align 8, !tbaa !5
  %1396 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1395, i32 0, i32 2
  %1397 = getelementptr inbounds %struct.UT_hash_handle, ptr %1396, i32 0, i32 0
  %1398 = load ptr, ptr %1397, align 8, !tbaa !36
  %1399 = getelementptr inbounds %struct.UT_hash_table, ptr %1398, i32 0, i32 6
  %1400 = load i32, ptr %1399, align 8, !tbaa !66
  %1401 = icmp ugt i32 %1394, %1400
  br i1 %1401, label %1402, label %1422

1402:                                             ; preds = %1386
  %1403 = load ptr, ptr %18, align 8, !tbaa !5
  %1404 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1403, i32 0, i32 2
  %1405 = getelementptr inbounds %struct.UT_hash_handle, ptr %1404, i32 0, i32 0
  %1406 = load ptr, ptr %1405, align 8, !tbaa !36
  %1407 = getelementptr inbounds %struct.UT_hash_table, ptr %1406, i32 0, i32 7
  %1408 = load i32, ptr %1407, align 4, !tbaa !67
  %1409 = add i32 %1408, 1
  store i32 %1409, ptr %1407, align 4, !tbaa !67
  %1410 = load ptr, ptr %37, align 8, !tbaa !5
  %1411 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1410, i32 0, i32 1
  %1412 = load i32, ptr %1411, align 8, !tbaa !61
  %1413 = load ptr, ptr %18, align 8, !tbaa !5
  %1414 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1413, i32 0, i32 2
  %1415 = getelementptr inbounds %struct.UT_hash_handle, ptr %1414, i32 0, i32 0
  %1416 = load ptr, ptr %1415, align 8, !tbaa !36
  %1417 = getelementptr inbounds %struct.UT_hash_table, ptr %1416, i32 0, i32 6
  %1418 = load i32, ptr %1417, align 8, !tbaa !66
  %1419 = udiv i32 %1412, %1418
  %1420 = load ptr, ptr %37, align 8, !tbaa !5
  %1421 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1420, i32 0, i32 2
  store i32 %1419, ptr %1421, align 4, !tbaa !64
  br label %1422

1422:                                             ; preds = %1402, %1386
  %1423 = load ptr, ptr %34, align 8, !tbaa !5
  %1424 = getelementptr inbounds %struct.UT_hash_handle, ptr %1423, i32 0, i32 3
  store ptr null, ptr %1424, align 8, !tbaa !63
  %1425 = load ptr, ptr %37, align 8, !tbaa !5
  %1426 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1425, i32 0, i32 0
  %1427 = load ptr, ptr %1426, align 8, !tbaa !43
  %1428 = load ptr, ptr %34, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.UT_hash_handle, ptr %1428, i32 0, i32 4
  store ptr %1427, ptr %1429, align 8, !tbaa !68
  %1430 = load ptr, ptr %37, align 8, !tbaa !5
  %1431 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1430, i32 0, i32 0
  %1432 = load ptr, ptr %1431, align 8, !tbaa !43
  %1433 = icmp ne ptr %1432, null
  br i1 %1433, label %1434, label %1440

1434:                                             ; preds = %1422
  %1435 = load ptr, ptr %34, align 8, !tbaa !5
  %1436 = load ptr, ptr %37, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1436, i32 0, i32 0
  %1438 = load ptr, ptr %1437, align 8, !tbaa !43
  %1439 = getelementptr inbounds %struct.UT_hash_handle, ptr %1438, i32 0, i32 3
  store ptr %1435, ptr %1439, align 8, !tbaa !63
  br label %1440

1440:                                             ; preds = %1434, %1422
  %1441 = load ptr, ptr %34, align 8, !tbaa !5
  %1442 = load ptr, ptr %37, align 8, !tbaa !5
  %1443 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1442, i32 0, i32 0
  store ptr %1441, ptr %1443, align 8, !tbaa !43
  %1444 = load ptr, ptr %35, align 8, !tbaa !5
  store ptr %1444, ptr %34, align 8, !tbaa !5
  br label %1365, !llvm.loop !70

1445:                                             ; preds = %1365
  br label %1446

1446:                                             ; preds = %1445
  %1447 = load i32, ptr %33, align 4, !tbaa !20
  %1448 = add i32 %1447, 1
  store i32 %1448, ptr %33, align 4, !tbaa !20
  br label %1344, !llvm.loop !71

1449:                                             ; preds = %1344
  %1450 = load ptr, ptr %18, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1450, i32 0, i32 2
  %1452 = getelementptr inbounds %struct.UT_hash_handle, ptr %1451, i32 0, i32 0
  %1453 = load ptr, ptr %1452, align 8, !tbaa !36
  %1454 = getelementptr inbounds %struct.UT_hash_table, ptr %1453, i32 0, i32 0
  %1455 = load ptr, ptr %1454, align 8, !tbaa !42
  call void @free(ptr noundef %1455) #10
  %1456 = load ptr, ptr %18, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1456, i32 0, i32 2
  %1458 = getelementptr inbounds %struct.UT_hash_handle, ptr %1457, i32 0, i32 0
  %1459 = load ptr, ptr %1458, align 8, !tbaa !36
  %1460 = getelementptr inbounds %struct.UT_hash_table, ptr %1459, i32 0, i32 1
  %1461 = load i32, ptr %1460, align 8, !tbaa !39
  %1462 = mul i32 %1461, 2
  store i32 %1462, ptr %1460, align 8, !tbaa !39
  %1463 = load ptr, ptr %18, align 8, !tbaa !5
  %1464 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1463, i32 0, i32 2
  %1465 = getelementptr inbounds %struct.UT_hash_handle, ptr %1464, i32 0, i32 0
  %1466 = load ptr, ptr %1465, align 8, !tbaa !36
  %1467 = getelementptr inbounds %struct.UT_hash_table, ptr %1466, i32 0, i32 2
  %1468 = load i32, ptr %1467, align 4, !tbaa !58
  %1469 = add i32 %1468, 1
  store i32 %1469, ptr %1467, align 4, !tbaa !58
  %1470 = load ptr, ptr %36, align 8, !tbaa !5
  %1471 = load ptr, ptr %18, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1471, i32 0, i32 2
  %1473 = getelementptr inbounds %struct.UT_hash_handle, ptr %1472, i32 0, i32 0
  %1474 = load ptr, ptr %1473, align 8, !tbaa !36
  %1475 = getelementptr inbounds %struct.UT_hash_table, ptr %1474, i32 0, i32 0
  store ptr %1470, ptr %1475, align 8, !tbaa !42
  %1476 = load ptr, ptr %18, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1476, i32 0, i32 2
  %1478 = getelementptr inbounds %struct.UT_hash_handle, ptr %1477, i32 0, i32 0
  %1479 = load ptr, ptr %1478, align 8, !tbaa !36
  %1480 = getelementptr inbounds %struct.UT_hash_table, ptr %1479, i32 0, i32 7
  %1481 = load i32, ptr %1480, align 4, !tbaa !67
  %1482 = load ptr, ptr %18, align 8, !tbaa !5
  %1483 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1482, i32 0, i32 2
  %1484 = getelementptr inbounds %struct.UT_hash_handle, ptr %1483, i32 0, i32 0
  %1485 = load ptr, ptr %1484, align 8, !tbaa !36
  %1486 = getelementptr inbounds %struct.UT_hash_table, ptr %1485, i32 0, i32 3
  %1487 = load i32, ptr %1486, align 8, !tbaa !52
  %1488 = lshr i32 %1487, 1
  %1489 = icmp ugt i32 %1481, %1488
  br i1 %1489, label %1490, label %1498

1490:                                             ; preds = %1449
  %1491 = load ptr, ptr %18, align 8, !tbaa !5
  %1492 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1491, i32 0, i32 2
  %1493 = getelementptr inbounds %struct.UT_hash_handle, ptr %1492, i32 0, i32 0
  %1494 = load ptr, ptr %1493, align 8, !tbaa !36
  %1495 = getelementptr inbounds %struct.UT_hash_table, ptr %1494, i32 0, i32 8
  %1496 = load i32, ptr %1495, align 8, !tbaa !72
  %1497 = add i32 %1496, 1
  br label %1499

1498:                                             ; preds = %1449
  br label %1499

1499:                                             ; preds = %1498, %1490
  %1500 = phi i32 [ %1497, %1490 ], [ 0, %1498 ]
  %1501 = load ptr, ptr %18, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1501, i32 0, i32 2
  %1503 = getelementptr inbounds %struct.UT_hash_handle, ptr %1502, i32 0, i32 0
  %1504 = load ptr, ptr %1503, align 8, !tbaa !36
  %1505 = getelementptr inbounds %struct.UT_hash_table, ptr %1504, i32 0, i32 8
  store i32 %1500, ptr %1505, align 8, !tbaa !72
  %1506 = load ptr, ptr %18, align 8, !tbaa !5
  %1507 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1506, i32 0, i32 2
  %1508 = getelementptr inbounds %struct.UT_hash_handle, ptr %1507, i32 0, i32 0
  %1509 = load ptr, ptr %1508, align 8, !tbaa !36
  %1510 = getelementptr inbounds %struct.UT_hash_table, ptr %1509, i32 0, i32 8
  %1511 = load i32, ptr %1510, align 8, !tbaa !72
  %1512 = icmp ugt i32 %1511, 1
  br i1 %1512, label %1513, label %1519

1513:                                             ; preds = %1499
  %1514 = load ptr, ptr %18, align 8, !tbaa !5
  %1515 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1514, i32 0, i32 2
  %1516 = getelementptr inbounds %struct.UT_hash_handle, ptr %1515, i32 0, i32 0
  %1517 = load ptr, ptr %1516, align 8, !tbaa !36
  %1518 = getelementptr inbounds %struct.UT_hash_table, ptr %1517, i32 0, i32 9
  store i32 1, ptr %1518, align 4, !tbaa !65
  br label %1519

1519:                                             ; preds = %1513, %1499
  br label %1520

1520:                                             ; preds = %1519
  call void @llvm.lifetime.end.p0(i64 8, ptr %37) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %33) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %32) #10
  br label %1521

1521:                                             ; preds = %1520
  br label %1522

1522:                                             ; preds = %1521
  br label %1523

1523:                                             ; preds = %1522, %1267, %1253
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #10
  br label %1524

1524:                                             ; preds = %1523
  br label %1525

1525:                                             ; preds = %1524
  call void @llvm.lifetime.end.p0(i64 4, ptr %30) #10
  br label %1526

1526:                                             ; preds = %1525
  br label %1527

1527:                                             ; preds = %1526
  br label %1528

1528:                                             ; preds = %1527
  br label %1529

1529:                                             ; preds = %1528
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #10
  br label %1530

1530:                                             ; preds = %1529
  br label %1531

1531:                                             ; preds = %1530
  br label %1534

1532:                                             ; preds = %635
  %1533 = load ptr, ptr %17, align 8, !tbaa !5
  call void @sdsfree(ptr noundef %1533)
  br label %1534

1534:                                             ; preds = %1532, %1531
  %1535 = load ptr, ptr %18, align 8, !tbaa !5
  %1536 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1535, i32 0, i32 1
  %1537 = load i16, ptr %1536, align 8, !tbaa !53
  %1538 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 1
  store i16 %1537, ptr %1538, align 8, !tbaa !21
  %1539 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 2
  %1540 = getelementptr inbounds %struct.otl_Anchor, ptr %1539, i32 0, i32 0
  store i8 1, ptr %1540, align 8, !tbaa !73
  %1541 = load ptr, ptr %13, align 8, !tbaa !5
  %1542 = call double @json_obj_getnum(ptr noundef %1541, ptr noundef @.str.1)
  %1543 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 2
  %1544 = getelementptr inbounds %struct.otl_Anchor, ptr %1543, i32 0, i32 1
  store double %1542, ptr %1544, align 8, !tbaa !74
  %1545 = load ptr, ptr %13, align 8, !tbaa !5
  %1546 = call double @json_obj_getnum(ptr noundef %1545, ptr noundef @.str.2)
  %1547 = getelementptr inbounds %struct.otl_MarkRecord, ptr %11, i32 0, i32 2
  %1548 = getelementptr inbounds %struct.otl_Anchor, ptr %1547, i32 0, i32 2
  store double %1546, ptr %1548, align 8, !tbaa !75
  %1549 = load ptr, ptr getelementptr inbounds (%struct.__caryll_vectorinterface_otl_MarkArray, ptr @otl_iMarkArray, i32 0, i32 13), align 8, !tbaa !32
  %1550 = load ptr, ptr %6, align 8, !tbaa !5
  call void %1549(ptr noundef %1550, ptr noundef byval(%struct.otl_MarkRecord) align 8 %11)
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #10
  store i32 0, ptr %10, align 4
  br label %1551

1551:                                             ; preds = %1534, %126
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #10
  br label %1552

1552:                                             ; preds = %1551, %118
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #10
  call void @llvm.lifetime.end.p0(i64 48, ptr %11) #10
  %1553 = load i32, ptr %10, align 4
  switch i32 %1553, label %2430 [
    i32 0, label %1554
    i32 4, label %1555
  ]

1554:                                             ; preds = %1552
  br label %1555

1555:                                             ; preds = %1554, %1552
  %1556 = load i16, ptr %9, align 2, !tbaa !9
  %1557 = add i16 %1556, 1
  store i16 %1557, ptr %9, align 2, !tbaa !9
  br label %62, !llvm.loop !76

1558:                                             ; preds = %70
  br label %1559

1559:                                             ; preds = %1558
  call void @llvm.lifetime.start.p0(i64 4, ptr %38) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %42) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %48) #10
  %1560 = load ptr, ptr %7, align 8, !tbaa !5
  %1561 = load ptr, ptr %1560, align 8, !tbaa !5
  %1562 = icmp ne ptr %1561, null
  br i1 %1562, label %1563, label %1846

1563:                                             ; preds = %1559
  store i32 1, ptr %41, align 4, !tbaa !20
  store i32 1, ptr %39, align 4, !tbaa !20
  %1564 = load ptr, ptr %7, align 8, !tbaa !5
  %1565 = load ptr, ptr %1564, align 8, !tbaa !5
  %1566 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1565, i32 0, i32 2
  store ptr %1566, ptr %47, align 8, !tbaa !5
  br label %1567

1567:                                             ; preds = %1842, %1563
  %1568 = load i32, ptr %39, align 4, !tbaa !20
  %1569 = icmp ne i32 %1568, 0
  br i1 %1569, label %1570, label %1845

1570:                                             ; preds = %1567
  %1571 = load ptr, ptr %47, align 8, !tbaa !5
  store ptr %1571, ptr %44, align 8, !tbaa !5
  store ptr null, ptr %47, align 8, !tbaa !5
  store ptr null, ptr %48, align 8, !tbaa !5
  store i32 0, ptr %40, align 4, !tbaa !20
  br label %1572

1572:                                             ; preds = %1809, %1570
  %1573 = load ptr, ptr %44, align 8, !tbaa !5
  %1574 = icmp ne ptr %1573, null
  br i1 %1574, label %1575, label %1811

1575:                                             ; preds = %1572
  %1576 = load i32, ptr %40, align 4, !tbaa !20
  %1577 = add i32 %1576, 1
  store i32 %1577, ptr %40, align 4, !tbaa !20
  %1578 = load ptr, ptr %44, align 8, !tbaa !5
  store ptr %1578, ptr %45, align 8, !tbaa !5
  store i32 0, ptr %42, align 4, !tbaa !20
  store i32 0, ptr %38, align 4, !tbaa !20
  br label %1579

1579:                                             ; preds = %1609, %1575
  %1580 = load i32, ptr %38, align 4, !tbaa !20
  %1581 = load i32, ptr %41, align 4, !tbaa !20
  %1582 = icmp ult i32 %1580, %1581
  br i1 %1582, label %1583, label %1612

1583:                                             ; preds = %1579
  %1584 = load i32, ptr %42, align 4, !tbaa !20
  %1585 = add i32 %1584, 1
  store i32 %1585, ptr %42, align 4, !tbaa !20
  %1586 = load ptr, ptr %45, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.UT_hash_handle, ptr %1586, i32 0, i32 2
  %1588 = load ptr, ptr %1587, align 8, !tbaa !60
  %1589 = icmp ne ptr %1588, null
  br i1 %1589, label %1590, label %1602

1590:                                             ; preds = %1583
  %1591 = load ptr, ptr %45, align 8, !tbaa !5
  %1592 = getelementptr inbounds %struct.UT_hash_handle, ptr %1591, i32 0, i32 2
  %1593 = load ptr, ptr %1592, align 8, !tbaa !60
  %1594 = load ptr, ptr %7, align 8, !tbaa !5
  %1595 = load ptr, ptr %1594, align 8, !tbaa !5
  %1596 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1595, i32 0, i32 2
  %1597 = getelementptr inbounds %struct.UT_hash_handle, ptr %1596, i32 0, i32 0
  %1598 = load ptr, ptr %1597, align 8, !tbaa !36
  %1599 = getelementptr inbounds %struct.UT_hash_table, ptr %1598, i32 0, i32 5
  %1600 = load i64, ptr %1599, align 8, !tbaa !45
  %1601 = getelementptr inbounds i8, ptr %1593, i64 %1600
  br label %1603

1602:                                             ; preds = %1583
  br label %1603

1603:                                             ; preds = %1602, %1590
  %1604 = phi ptr [ %1601, %1590 ], [ null, %1602 ]
  store ptr %1604, ptr %45, align 8, !tbaa !5
  %1605 = load ptr, ptr %45, align 8, !tbaa !5
  %1606 = icmp eq ptr %1605, null
  br i1 %1606, label %1607, label %1608

1607:                                             ; preds = %1603
  br label %1612

1608:                                             ; preds = %1603
  br label %1609

1609:                                             ; preds = %1608
  %1610 = load i32, ptr %38, align 4, !tbaa !20
  %1611 = add i32 %1610, 1
  store i32 %1611, ptr %38, align 4, !tbaa !20
  br label %1579, !llvm.loop !77

1612:                                             ; preds = %1607, %1579
  %1613 = load i32, ptr %41, align 4, !tbaa !20
  store i32 %1613, ptr %43, align 4, !tbaa !20
  br label %1614

1614:                                             ; preds = %1807, %1612
  %1615 = load i32, ptr %42, align 4, !tbaa !20
  %1616 = icmp ne i32 %1615, 0
  br i1 %1616, label %1625, label %1617

1617:                                             ; preds = %1614
  %1618 = load i32, ptr %43, align 4, !tbaa !20
  %1619 = icmp ne i32 %1618, 0
  br i1 %1619, label %1620, label %1623

1620:                                             ; preds = %1617
  %1621 = load ptr, ptr %45, align 8, !tbaa !5
  %1622 = icmp ne ptr %1621, null
  br label %1623

1623:                                             ; preds = %1620, %1617
  %1624 = phi i1 [ false, %1617 ], [ %1622, %1620 ]
  br label %1625

1625:                                             ; preds = %1623, %1614
  %1626 = phi i1 [ true, %1614 ], [ %1624, %1623 ]
  br i1 %1626, label %1627, label %1809

1627:                                             ; preds = %1625
  %1628 = load i32, ptr %42, align 4, !tbaa !20
  %1629 = icmp eq i32 %1628, 0
  br i1 %1629, label %1630, label %1653

1630:                                             ; preds = %1627
  %1631 = load ptr, ptr %45, align 8, !tbaa !5
  store ptr %1631, ptr %46, align 8, !tbaa !5
  %1632 = load ptr, ptr %45, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.UT_hash_handle, ptr %1632, i32 0, i32 2
  %1634 = load ptr, ptr %1633, align 8, !tbaa !60
  %1635 = icmp ne ptr %1634, null
  br i1 %1635, label %1636, label %1648

1636:                                             ; preds = %1630
  %1637 = load ptr, ptr %45, align 8, !tbaa !5
  %1638 = getelementptr inbounds %struct.UT_hash_handle, ptr %1637, i32 0, i32 2
  %1639 = load ptr, ptr %1638, align 8, !tbaa !60
  %1640 = load ptr, ptr %7, align 8, !tbaa !5
  %1641 = load ptr, ptr %1640, align 8, !tbaa !5
  %1642 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1641, i32 0, i32 2
  %1643 = getelementptr inbounds %struct.UT_hash_handle, ptr %1642, i32 0, i32 0
  %1644 = load ptr, ptr %1643, align 8, !tbaa !36
  %1645 = getelementptr inbounds %struct.UT_hash_table, ptr %1644, i32 0, i32 5
  %1646 = load i64, ptr %1645, align 8, !tbaa !45
  %1647 = getelementptr inbounds i8, ptr %1639, i64 %1646
  br label %1649

1648:                                             ; preds = %1630
  br label %1649

1649:                                             ; preds = %1648, %1636
  %1650 = phi ptr [ %1647, %1636 ], [ null, %1648 ]
  store ptr %1650, ptr %45, align 8, !tbaa !5
  %1651 = load i32, ptr %43, align 4, !tbaa !20
  %1652 = add i32 %1651, -1
  store i32 %1652, ptr %43, align 4, !tbaa !20
  br label %1761

1653:                                             ; preds = %1627
  %1654 = load i32, ptr %43, align 4, !tbaa !20
  %1655 = icmp eq i32 %1654, 0
  br i1 %1655, label %1659, label %1656

1656:                                             ; preds = %1653
  %1657 = load ptr, ptr %45, align 8, !tbaa !5
  %1658 = icmp eq ptr %1657, null
  br i1 %1658, label %1659, label %1686

1659:                                             ; preds = %1656, %1653
  %1660 = load ptr, ptr %44, align 8, !tbaa !5
  store ptr %1660, ptr %46, align 8, !tbaa !5
  %1661 = load ptr, ptr %44, align 8, !tbaa !5
  %1662 = icmp ne ptr %1661, null
  br i1 %1662, label %1663, label %1683

1663:                                             ; preds = %1659
  %1664 = load ptr, ptr %44, align 8, !tbaa !5
  %1665 = getelementptr inbounds %struct.UT_hash_handle, ptr %1664, i32 0, i32 2
  %1666 = load ptr, ptr %1665, align 8, !tbaa !60
  %1667 = icmp ne ptr %1666, null
  br i1 %1667, label %1668, label %1680

1668:                                             ; preds = %1663
  %1669 = load ptr, ptr %44, align 8, !tbaa !5
  %1670 = getelementptr inbounds %struct.UT_hash_handle, ptr %1669, i32 0, i32 2
  %1671 = load ptr, ptr %1670, align 8, !tbaa !60
  %1672 = load ptr, ptr %7, align 8, !tbaa !5
  %1673 = load ptr, ptr %1672, align 8, !tbaa !5
  %1674 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1673, i32 0, i32 2
  %1675 = getelementptr inbounds %struct.UT_hash_handle, ptr %1674, i32 0, i32 0
  %1676 = load ptr, ptr %1675, align 8, !tbaa !36
  %1677 = getelementptr inbounds %struct.UT_hash_table, ptr %1676, i32 0, i32 5
  %1678 = load i64, ptr %1677, align 8, !tbaa !45
  %1679 = getelementptr inbounds i8, ptr %1671, i64 %1678
  br label %1681

1680:                                             ; preds = %1663
  br label %1681

1681:                                             ; preds = %1680, %1668
  %1682 = phi ptr [ %1679, %1668 ], [ null, %1680 ]
  store ptr %1682, ptr %44, align 8, !tbaa !5
  br label %1683

1683:                                             ; preds = %1681, %1659
  %1684 = load i32, ptr %42, align 4, !tbaa !20
  %1685 = add i32 %1684, -1
  store i32 %1685, ptr %42, align 4, !tbaa !20
  br label %1760

1686:                                             ; preds = %1656
  %1687 = load ptr, ptr %44, align 8, !tbaa !5
  %1688 = load ptr, ptr %7, align 8, !tbaa !5
  %1689 = load ptr, ptr %1688, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1689, i32 0, i32 2
  %1691 = getelementptr inbounds %struct.UT_hash_handle, ptr %1690, i32 0, i32 0
  %1692 = load ptr, ptr %1691, align 8, !tbaa !36
  %1693 = getelementptr inbounds %struct.UT_hash_table, ptr %1692, i32 0, i32 5
  %1694 = load i64, ptr %1693, align 8, !tbaa !45
  %1695 = sub i64 0, %1694
  %1696 = getelementptr inbounds i8, ptr %1687, i64 %1695
  %1697 = load ptr, ptr %45, align 8, !tbaa !5
  %1698 = load ptr, ptr %7, align 8, !tbaa !5
  %1699 = load ptr, ptr %1698, align 8, !tbaa !5
  %1700 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1699, i32 0, i32 2
  %1701 = getelementptr inbounds %struct.UT_hash_handle, ptr %1700, i32 0, i32 0
  %1702 = load ptr, ptr %1701, align 8, !tbaa !36
  %1703 = getelementptr inbounds %struct.UT_hash_table, ptr %1702, i32 0, i32 5
  %1704 = load i64, ptr %1703, align 8, !tbaa !45
  %1705 = sub i64 0, %1704
  %1706 = getelementptr inbounds i8, ptr %1697, i64 %1705
  %1707 = call i32 @compare_classHash(ptr noundef %1696, ptr noundef %1706)
  %1708 = icmp sle i32 %1707, 0
  br i1 %1708, label %1709, label %1736

1709:                                             ; preds = %1686
  %1710 = load ptr, ptr %44, align 8, !tbaa !5
  store ptr %1710, ptr %46, align 8, !tbaa !5
  %1711 = load ptr, ptr %44, align 8, !tbaa !5
  %1712 = icmp ne ptr %1711, null
  br i1 %1712, label %1713, label %1733

1713:                                             ; preds = %1709
  %1714 = load ptr, ptr %44, align 8, !tbaa !5
  %1715 = getelementptr inbounds %struct.UT_hash_handle, ptr %1714, i32 0, i32 2
  %1716 = load ptr, ptr %1715, align 8, !tbaa !60
  %1717 = icmp ne ptr %1716, null
  br i1 %1717, label %1718, label %1730

1718:                                             ; preds = %1713
  %1719 = load ptr, ptr %44, align 8, !tbaa !5
  %1720 = getelementptr inbounds %struct.UT_hash_handle, ptr %1719, i32 0, i32 2
  %1721 = load ptr, ptr %1720, align 8, !tbaa !60
  %1722 = load ptr, ptr %7, align 8, !tbaa !5
  %1723 = load ptr, ptr %1722, align 8, !tbaa !5
  %1724 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1723, i32 0, i32 2
  %1725 = getelementptr inbounds %struct.UT_hash_handle, ptr %1724, i32 0, i32 0
  %1726 = load ptr, ptr %1725, align 8, !tbaa !36
  %1727 = getelementptr inbounds %struct.UT_hash_table, ptr %1726, i32 0, i32 5
  %1728 = load i64, ptr %1727, align 8, !tbaa !45
  %1729 = getelementptr inbounds i8, ptr %1721, i64 %1728
  br label %1731

1730:                                             ; preds = %1713
  br label %1731

1731:                                             ; preds = %1730, %1718
  %1732 = phi ptr [ %1729, %1718 ], [ null, %1730 ]
  store ptr %1732, ptr %44, align 8, !tbaa !5
  br label %1733

1733:                                             ; preds = %1731, %1709
  %1734 = load i32, ptr %42, align 4, !tbaa !20
  %1735 = add i32 %1734, -1
  store i32 %1735, ptr %42, align 4, !tbaa !20
  br label %1759

1736:                                             ; preds = %1686
  %1737 = load ptr, ptr %45, align 8, !tbaa !5
  store ptr %1737, ptr %46, align 8, !tbaa !5
  %1738 = load ptr, ptr %45, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.UT_hash_handle, ptr %1738, i32 0, i32 2
  %1740 = load ptr, ptr %1739, align 8, !tbaa !60
  %1741 = icmp ne ptr %1740, null
  br i1 %1741, label %1742, label %1754

1742:                                             ; preds = %1736
  %1743 = load ptr, ptr %45, align 8, !tbaa !5
  %1744 = getelementptr inbounds %struct.UT_hash_handle, ptr %1743, i32 0, i32 2
  %1745 = load ptr, ptr %1744, align 8, !tbaa !60
  %1746 = load ptr, ptr %7, align 8, !tbaa !5
  %1747 = load ptr, ptr %1746, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1747, i32 0, i32 2
  %1749 = getelementptr inbounds %struct.UT_hash_handle, ptr %1748, i32 0, i32 0
  %1750 = load ptr, ptr %1749, align 8, !tbaa !36
  %1751 = getelementptr inbounds %struct.UT_hash_table, ptr %1750, i32 0, i32 5
  %1752 = load i64, ptr %1751, align 8, !tbaa !45
  %1753 = getelementptr inbounds i8, ptr %1745, i64 %1752
  br label %1755

1754:                                             ; preds = %1736
  br label %1755

1755:                                             ; preds = %1754, %1742
  %1756 = phi ptr [ %1753, %1742 ], [ null, %1754 ]
  store ptr %1756, ptr %45, align 8, !tbaa !5
  %1757 = load i32, ptr %43, align 4, !tbaa !20
  %1758 = add i32 %1757, -1
  store i32 %1758, ptr %43, align 4, !tbaa !20
  br label %1759

1759:                                             ; preds = %1755, %1733
  br label %1760

1760:                                             ; preds = %1759, %1683
  br label %1761

1761:                                             ; preds = %1760, %1649
  %1762 = load ptr, ptr %48, align 8, !tbaa !5
  %1763 = icmp ne ptr %1762, null
  br i1 %1763, label %1764, label %1783

1764:                                             ; preds = %1761
  %1765 = load ptr, ptr %46, align 8, !tbaa !5
  %1766 = icmp ne ptr %1765, null
  br i1 %1766, label %1767, label %1778

1767:                                             ; preds = %1764
  %1768 = load ptr, ptr %46, align 8, !tbaa !5
  %1769 = load ptr, ptr %7, align 8, !tbaa !5
  %1770 = load ptr, ptr %1769, align 8, !tbaa !5
  %1771 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1770, i32 0, i32 2
  %1772 = getelementptr inbounds %struct.UT_hash_handle, ptr %1771, i32 0, i32 0
  %1773 = load ptr, ptr %1772, align 8, !tbaa !36
  %1774 = getelementptr inbounds %struct.UT_hash_table, ptr %1773, i32 0, i32 5
  %1775 = load i64, ptr %1774, align 8, !tbaa !45
  %1776 = sub i64 0, %1775
  %1777 = getelementptr inbounds i8, ptr %1768, i64 %1776
  br label %1779

1778:                                             ; preds = %1764
  br label %1779

1779:                                             ; preds = %1778, %1767
  %1780 = phi ptr [ %1777, %1767 ], [ null, %1778 ]
  %1781 = load ptr, ptr %48, align 8, !tbaa !5
  %1782 = getelementptr inbounds %struct.UT_hash_handle, ptr %1781, i32 0, i32 2
  store ptr %1780, ptr %1782, align 8, !tbaa !60
  br label %1785

1783:                                             ; preds = %1761
  %1784 = load ptr, ptr %46, align 8, !tbaa !5
  store ptr %1784, ptr %47, align 8, !tbaa !5
  br label %1785

1785:                                             ; preds = %1783, %1779
  %1786 = load ptr, ptr %46, align 8, !tbaa !5
  %1787 = icmp ne ptr %1786, null
  br i1 %1787, label %1788, label %1807

1788:                                             ; preds = %1785
  %1789 = load ptr, ptr %48, align 8, !tbaa !5
  %1790 = icmp ne ptr %1789, null
  br i1 %1790, label %1791, label %1802

1791:                                             ; preds = %1788
  %1792 = load ptr, ptr %48, align 8, !tbaa !5
  %1793 = load ptr, ptr %7, align 8, !tbaa !5
  %1794 = load ptr, ptr %1793, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1794, i32 0, i32 2
  %1796 = getelementptr inbounds %struct.UT_hash_handle, ptr %1795, i32 0, i32 0
  %1797 = load ptr, ptr %1796, align 8, !tbaa !36
  %1798 = getelementptr inbounds %struct.UT_hash_table, ptr %1797, i32 0, i32 5
  %1799 = load i64, ptr %1798, align 8, !tbaa !45
  %1800 = sub i64 0, %1799
  %1801 = getelementptr inbounds i8, ptr %1792, i64 %1800
  br label %1803

1802:                                             ; preds = %1788
  br label %1803

1803:                                             ; preds = %1802, %1791
  %1804 = phi ptr [ %1801, %1791 ], [ null, %1802 ]
  %1805 = load ptr, ptr %46, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.UT_hash_handle, ptr %1805, i32 0, i32 1
  store ptr %1804, ptr %1806, align 8, !tbaa !78
  br label %1807

1807:                                             ; preds = %1803, %1785
  %1808 = load ptr, ptr %46, align 8, !tbaa !5
  store ptr %1808, ptr %48, align 8, !tbaa !5
  br label %1614, !llvm.loop !79

1809:                                             ; preds = %1625
  %1810 = load ptr, ptr %45, align 8, !tbaa !5
  store ptr %1810, ptr %44, align 8, !tbaa !5
  br label %1572, !llvm.loop !80

1811:                                             ; preds = %1572
  %1812 = load ptr, ptr %48, align 8, !tbaa !5
  %1813 = icmp ne ptr %1812, null
  br i1 %1813, label %1814, label %1817

1814:                                             ; preds = %1811
  %1815 = load ptr, ptr %48, align 8, !tbaa !5
  %1816 = getelementptr inbounds %struct.UT_hash_handle, ptr %1815, i32 0, i32 2
  store ptr null, ptr %1816, align 8, !tbaa !60
  br label %1817

1817:                                             ; preds = %1814, %1811
  %1818 = load i32, ptr %40, align 4, !tbaa !20
  %1819 = icmp ule i32 %1818, 1
  br i1 %1819, label %1820, label %1842

1820:                                             ; preds = %1817
  store i32 0, ptr %39, align 4, !tbaa !20
  %1821 = load ptr, ptr %48, align 8, !tbaa !5
  %1822 = load ptr, ptr %7, align 8, !tbaa !5
  %1823 = load ptr, ptr %1822, align 8, !tbaa !5
  %1824 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1823, i32 0, i32 2
  %1825 = getelementptr inbounds %struct.UT_hash_handle, ptr %1824, i32 0, i32 0
  %1826 = load ptr, ptr %1825, align 8, !tbaa !36
  %1827 = getelementptr inbounds %struct.UT_hash_table, ptr %1826, i32 0, i32 4
  store ptr %1821, ptr %1827, align 8, !tbaa !57
  br label %1828

1828:                                             ; preds = %1820
  %1829 = load ptr, ptr %47, align 8, !tbaa !5
  %1830 = load ptr, ptr %7, align 8, !tbaa !5
  %1831 = load ptr, ptr %1830, align 8, !tbaa !5
  %1832 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1831, i32 0, i32 2
  %1833 = getelementptr inbounds %struct.UT_hash_handle, ptr %1832, i32 0, i32 0
  %1834 = load ptr, ptr %1833, align 8, !tbaa !36
  %1835 = getelementptr inbounds %struct.UT_hash_table, ptr %1834, i32 0, i32 5
  %1836 = load i64, ptr %1835, align 8, !tbaa !45
  %1837 = sub i64 0, %1836
  %1838 = getelementptr inbounds i8, ptr %1829, i64 %1837
  %1839 = load ptr, ptr %7, align 8, !tbaa !5
  store ptr %1838, ptr %1839, align 8, !tbaa !5
  br label %1840

1840:                                             ; preds = %1828
  br label %1841

1841:                                             ; preds = %1840
  br label %1842

1842:                                             ; preds = %1841, %1817
  %1843 = load i32, ptr %41, align 4, !tbaa !20
  %1844 = mul i32 %1843, 2
  store i32 %1844, ptr %41, align 4, !tbaa !20
  br label %1567, !llvm.loop !81

1845:                                             ; preds = %1567
  br label %1846

1846:                                             ; preds = %1845, %1559
  call void @llvm.lifetime.end.p0(i64 8, ptr %48) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %47) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %46) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %45) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %44) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %43) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %42) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %41) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %40) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %39) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %38) #10
  br label %1847

1847:                                             ; preds = %1846
  call void @llvm.lifetime.start.p0(i64 2, ptr %49) #10
  store i16 0, ptr %49, align 2, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %50) #10
  %1848 = load ptr, ptr %7, align 8, !tbaa !5
  %1849 = load ptr, ptr %1848, align 8, !tbaa !5
  store ptr %1849, ptr %50, align 8, !tbaa !5
  br label %1850

1850:                                             ; preds = %1859, %1847
  %1851 = load ptr, ptr %50, align 8, !tbaa !5
  %1852 = icmp ne ptr %1851, null
  br i1 %1852, label %1853, label %1864

1853:                                             ; preds = %1850
  %1854 = load i16, ptr %49, align 2, !tbaa !9
  %1855 = load ptr, ptr %50, align 8, !tbaa !5
  %1856 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1855, i32 0, i32 1
  store i16 %1854, ptr %1856, align 8, !tbaa !53
  %1857 = load i16, ptr %49, align 2, !tbaa !9
  %1858 = add i16 %1857, 1
  store i16 %1858, ptr %49, align 2, !tbaa !9
  br label %1859

1859:                                             ; preds = %1853
  %1860 = load ptr, ptr %50, align 8, !tbaa !5
  %1861 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %1860, i32 0, i32 2
  %1862 = getelementptr inbounds %struct.UT_hash_handle, ptr %1861, i32 0, i32 2
  %1863 = load ptr, ptr %1862, align 8, !tbaa !55
  store ptr %1863, ptr %50, align 8, !tbaa !5
  br label %1850, !llvm.loop !82

1864:                                             ; preds = %1850
  call void @llvm.lifetime.start.p0(i64 2, ptr %51) #10
  store i16 0, ptr %51, align 2, !tbaa !9
  br label %1865

1865:                                             ; preds = %2426, %1864
  %1866 = load i16, ptr %51, align 2, !tbaa !9
  %1867 = zext i16 %1866 to i64
  %1868 = load ptr, ptr %6, align 8, !tbaa !5
  %1869 = getelementptr inbounds %struct.otl_MarkArray, ptr %1868, i32 0, i32 0
  %1870 = load i64, ptr %1869, align 8, !tbaa !83
  %1871 = icmp ult i64 %1867, %1870
  br i1 %1871, label %1873, label %1872

1872:                                             ; preds = %1865
  store i32 80, ptr %10, align 4
  call void @llvm.lifetime.end.p0(i64 2, ptr %51) #10
  br label %2429

1873:                                             ; preds = %1865
  %1874 = load ptr, ptr %6, align 8, !tbaa !5
  %1875 = getelementptr inbounds %struct.otl_MarkArray, ptr %1874, i32 0, i32 2
  %1876 = load ptr, ptr %1875, align 8, !tbaa !85
  %1877 = load i16, ptr %51, align 2, !tbaa !9
  %1878 = zext i16 %1877 to i64
  %1879 = getelementptr inbounds %struct.otl_MarkRecord, ptr %1876, i64 %1878
  %1880 = getelementptr inbounds %struct.otl_MarkRecord, ptr %1879, i32 0, i32 2
  %1881 = getelementptr inbounds %struct.otl_Anchor, ptr %1880, i32 0, i32 0
  %1882 = load i8, ptr %1881, align 8, !tbaa !73, !range !86, !noundef !87
  %1883 = trunc i8 %1882 to i1
  br i1 %1883, label %1885, label %1884

1884:                                             ; preds = %1873
  br label %2426

1885:                                             ; preds = %1873
  call void @llvm.lifetime.start.p0(i64 8, ptr %52) #10
  %1886 = load ptr, ptr %5, align 8, !tbaa !5
  %1887 = getelementptr inbounds %struct._json_value, ptr %1886, i32 0, i32 2
  %1888 = getelementptr inbounds %struct.anon.0, ptr %1887, i32 0, i32 1
  %1889 = load ptr, ptr %1888, align 8, !tbaa !11
  %1890 = load i16, ptr %51, align 2, !tbaa !9
  %1891 = zext i16 %1890 to i64
  %1892 = getelementptr inbounds %struct._json_object_entry, ptr %1889, i64 %1891
  %1893 = getelementptr inbounds %struct._json_object_entry, ptr %1892, i32 0, i32 2
  %1894 = load ptr, ptr %1893, align 8, !tbaa !15
  store ptr %1894, ptr %52, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %53) #10
  %1895 = load ptr, ptr %52, align 8, !tbaa !5
  %1896 = call ptr @json_obj_get_type(ptr noundef %1895, ptr noundef @.str, i32 noundef 5)
  store ptr %1896, ptr %53, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %54) #10
  %1897 = load ptr, ptr %53, align 8, !tbaa !5
  %1898 = getelementptr inbounds %struct._json_value, ptr %1897, i32 0, i32 2
  %1899 = getelementptr inbounds %struct.anon, ptr %1898, i32 0, i32 1
  %1900 = load ptr, ptr %1899, align 8, !tbaa !11
  %1901 = load ptr, ptr %53, align 8, !tbaa !5
  %1902 = getelementptr inbounds %struct._json_value, ptr %1901, i32 0, i32 2
  %1903 = getelementptr inbounds %struct.anon, ptr %1902, i32 0, i32 0
  %1904 = load i32, ptr %1903, align 8, !tbaa !11
  %1905 = zext i32 %1904 to i64
  %1906 = call ptr @sdsnewlen(ptr noundef %1900, i64 noundef %1905)
  store ptr %1906, ptr %54, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %55) #10
  br label %1907

1907:                                             ; preds = %1885
  call void @llvm.lifetime.start.p0(i64 4, ptr %56) #10
  br label %1908

1908:                                             ; preds = %1907
  br label %1909

1909:                                             ; preds = %1908
  call void @llvm.lifetime.start.p0(i64 4, ptr %57) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %58) #10
  call void @llvm.lifetime.start.p0(i64 4, ptr %59) #10
  call void @llvm.lifetime.start.p0(i64 8, ptr %60) #10
  %1910 = load ptr, ptr %54, align 8, !tbaa !5
  store ptr %1910, ptr %60, align 8, !tbaa !5
  store i32 -17973521, ptr %56, align 4, !tbaa !20
  store i32 -1640531527, ptr %58, align 4, !tbaa !20
  store i32 -1640531527, ptr %57, align 4, !tbaa !20
  %1911 = load ptr, ptr %54, align 8, !tbaa !5
  %1912 = call i64 @strlen(ptr noundef %1911) #11
  %1913 = trunc i64 %1912 to i32
  store i32 %1913, ptr %59, align 4, !tbaa !20
  br label %1914

1914:                                             ; preds = %2082, %1909
  %1915 = load i32, ptr %59, align 4, !tbaa !20
  %1916 = icmp uge i32 %1915, 12
  br i1 %1916, label %1917, label %2087

1917:                                             ; preds = %1914
  %1918 = load ptr, ptr %60, align 8, !tbaa !5
  %1919 = getelementptr inbounds i8, ptr %1918, i64 0
  %1920 = load i8, ptr %1919, align 1, !tbaa !11
  %1921 = zext i8 %1920 to i32
  %1922 = load ptr, ptr %60, align 8, !tbaa !5
  %1923 = getelementptr inbounds i8, ptr %1922, i64 1
  %1924 = load i8, ptr %1923, align 1, !tbaa !11
  %1925 = zext i8 %1924 to i32
  %1926 = shl i32 %1925, 8
  %1927 = add i32 %1921, %1926
  %1928 = load ptr, ptr %60, align 8, !tbaa !5
  %1929 = getelementptr inbounds i8, ptr %1928, i64 2
  %1930 = load i8, ptr %1929, align 1, !tbaa !11
  %1931 = zext i8 %1930 to i32
  %1932 = shl i32 %1931, 16
  %1933 = add i32 %1927, %1932
  %1934 = load ptr, ptr %60, align 8, !tbaa !5
  %1935 = getelementptr inbounds i8, ptr %1934, i64 3
  %1936 = load i8, ptr %1935, align 1, !tbaa !11
  %1937 = zext i8 %1936 to i32
  %1938 = shl i32 %1937, 24
  %1939 = add i32 %1933, %1938
  %1940 = load i32, ptr %57, align 4, !tbaa !20
  %1941 = add i32 %1940, %1939
  store i32 %1941, ptr %57, align 4, !tbaa !20
  %1942 = load ptr, ptr %60, align 8, !tbaa !5
  %1943 = getelementptr inbounds i8, ptr %1942, i64 4
  %1944 = load i8, ptr %1943, align 1, !tbaa !11
  %1945 = zext i8 %1944 to i32
  %1946 = load ptr, ptr %60, align 8, !tbaa !5
  %1947 = getelementptr inbounds i8, ptr %1946, i64 5
  %1948 = load i8, ptr %1947, align 1, !tbaa !11
  %1949 = zext i8 %1948 to i32
  %1950 = shl i32 %1949, 8
  %1951 = add i32 %1945, %1950
  %1952 = load ptr, ptr %60, align 8, !tbaa !5
  %1953 = getelementptr inbounds i8, ptr %1952, i64 6
  %1954 = load i8, ptr %1953, align 1, !tbaa !11
  %1955 = zext i8 %1954 to i32
  %1956 = shl i32 %1955, 16
  %1957 = add i32 %1951, %1956
  %1958 = load ptr, ptr %60, align 8, !tbaa !5
  %1959 = getelementptr inbounds i8, ptr %1958, i64 7
  %1960 = load i8, ptr %1959, align 1, !tbaa !11
  %1961 = zext i8 %1960 to i32
  %1962 = shl i32 %1961, 24
  %1963 = add i32 %1957, %1962
  %1964 = load i32, ptr %58, align 4, !tbaa !20
  %1965 = add i32 %1964, %1963
  store i32 %1965, ptr %58, align 4, !tbaa !20
  %1966 = load ptr, ptr %60, align 8, !tbaa !5
  %1967 = getelementptr inbounds i8, ptr %1966, i64 8
  %1968 = load i8, ptr %1967, align 1, !tbaa !11
  %1969 = zext i8 %1968 to i32
  %1970 = load ptr, ptr %60, align 8, !tbaa !5
  %1971 = getelementptr inbounds i8, ptr %1970, i64 9
  %1972 = load i8, ptr %1971, align 1, !tbaa !11
  %1973 = zext i8 %1972 to i32
  %1974 = shl i32 %1973, 8
  %1975 = add i32 %1969, %1974
  %1976 = load ptr, ptr %60, align 8, !tbaa !5
  %1977 = getelementptr inbounds i8, ptr %1976, i64 10
  %1978 = load i8, ptr %1977, align 1, !tbaa !11
  %1979 = zext i8 %1978 to i32
  %1980 = shl i32 %1979, 16
  %1981 = add i32 %1975, %1980
  %1982 = load ptr, ptr %60, align 8, !tbaa !5
  %1983 = getelementptr inbounds i8, ptr %1982, i64 11
  %1984 = load i8, ptr %1983, align 1, !tbaa !11
  %1985 = zext i8 %1984 to i32
  %1986 = shl i32 %1985, 24
  %1987 = add i32 %1981, %1986
  %1988 = load i32, ptr %56, align 4, !tbaa !20
  %1989 = add i32 %1988, %1987
  store i32 %1989, ptr %56, align 4, !tbaa !20
  br label %1990

1990:                                             ; preds = %1917
  %1991 = load i32, ptr %58, align 4, !tbaa !20
  %1992 = load i32, ptr %57, align 4, !tbaa !20
  %1993 = sub i32 %1992, %1991
  store i32 %1993, ptr %57, align 4, !tbaa !20
  %1994 = load i32, ptr %56, align 4, !tbaa !20
  %1995 = load i32, ptr %57, align 4, !tbaa !20
  %1996 = sub i32 %1995, %1994
  store i32 %1996, ptr %57, align 4, !tbaa !20
  %1997 = load i32, ptr %56, align 4, !tbaa !20
  %1998 = lshr i32 %1997, 13
  %1999 = load i32, ptr %57, align 4, !tbaa !20
  %2000 = xor i32 %1999, %1998
  store i32 %2000, ptr %57, align 4, !tbaa !20
  %2001 = load i32, ptr %56, align 4, !tbaa !20
  %2002 = load i32, ptr %58, align 4, !tbaa !20
  %2003 = sub i32 %2002, %2001
  store i32 %2003, ptr %58, align 4, !tbaa !20
  %2004 = load i32, ptr %57, align 4, !tbaa !20
  %2005 = load i32, ptr %58, align 4, !tbaa !20
  %2006 = sub i32 %2005, %2004
  store i32 %2006, ptr %58, align 4, !tbaa !20
  %2007 = load i32, ptr %57, align 4, !tbaa !20
  %2008 = shl i32 %2007, 8
  %2009 = load i32, ptr %58, align 4, !tbaa !20
  %2010 = xor i32 %2009, %2008
  store i32 %2010, ptr %58, align 4, !tbaa !20
  %2011 = load i32, ptr %57, align 4, !tbaa !20
  %2012 = load i32, ptr %56, align 4, !tbaa !20
  %2013 = sub i32 %2012, %2011
  store i32 %2013, ptr %56, align 4, !tbaa !20
  %2014 = load i32, ptr %58, align 4, !tbaa !20
  %2015 = load i32, ptr %56, align 4, !tbaa !20
  %2016 = sub i32 %2015, %2014
  store i32 %2016, ptr %56, align 4, !tbaa !20
  %2017 = load i32, ptr %58, align 4, !tbaa !20
  %2018 = lshr i32 %2017, 13
  %2019 = load i32, ptr %56, align 4, !tbaa !20
  %2020 = xor i32 %2019, %2018
  store i32 %2020, ptr %56, align 4, !tbaa !20
  %2021 = load i32, ptr %58, align 4, !tbaa !20
  %2022 = load i32, ptr %57, align 4, !tbaa !20
  %2023 = sub i32 %2022, %2021
  store i32 %2023, ptr %57, align 4, !tbaa !20
  %2024 = load i32, ptr %56, align 4, !tbaa !20
  %2025 = load i32, ptr %57, align 4, !tbaa !20
  %2026 = sub i32 %2025, %2024
  store i32 %2026, ptr %57, align 4, !tbaa !20
  %2027 = load i32, ptr %56, align 4, !tbaa !20
  %2028 = lshr i32 %2027, 12
  %2029 = load i32, ptr %57, align 4, !tbaa !20
  %2030 = xor i32 %2029, %2028
  store i32 %2030, ptr %57, align 4, !tbaa !20
  %2031 = load i32, ptr %56, align 4, !tbaa !20
  %2032 = load i32, ptr %58, align 4, !tbaa !20
  %2033 = sub i32 %2032, %2031
  store i32 %2033, ptr %58, align 4, !tbaa !20
  %2034 = load i32, ptr %57, align 4, !tbaa !20
  %2035 = load i32, ptr %58, align 4, !tbaa !20
  %2036 = sub i32 %2035, %2034
  store i32 %2036, ptr %58, align 4, !tbaa !20
  %2037 = load i32, ptr %57, align 4, !tbaa !20
  %2038 = shl i32 %2037, 16
  %2039 = load i32, ptr %58, align 4, !tbaa !20
  %2040 = xor i32 %2039, %2038
  store i32 %2040, ptr %58, align 4, !tbaa !20
  %2041 = load i32, ptr %57, align 4, !tbaa !20
  %2042 = load i32, ptr %56, align 4, !tbaa !20
  %2043 = sub i32 %2042, %2041
  store i32 %2043, ptr %56, align 4, !tbaa !20
  %2044 = load i32, ptr %58, align 4, !tbaa !20
  %2045 = load i32, ptr %56, align 4, !tbaa !20
  %2046 = sub i32 %2045, %2044
  store i32 %2046, ptr %56, align 4, !tbaa !20
  %2047 = load i32, ptr %58, align 4, !tbaa !20
  %2048 = lshr i32 %2047, 5
  %2049 = load i32, ptr %56, align 4, !tbaa !20
  %2050 = xor i32 %2049, %2048
  store i32 %2050, ptr %56, align 4, !tbaa !20
  %2051 = load i32, ptr %58, align 4, !tbaa !20
  %2052 = load i32, ptr %57, align 4, !tbaa !20
  %2053 = sub i32 %2052, %2051
  store i32 %2053, ptr %57, align 4, !tbaa !20
  %2054 = load i32, ptr %56, align 4, !tbaa !20
  %2055 = load i32, ptr %57, align 4, !tbaa !20
  %2056 = sub i32 %2055, %2054
  store i32 %2056, ptr %57, align 4, !tbaa !20
  %2057 = load i32, ptr %56, align 4, !tbaa !20
  %2058 = lshr i32 %2057, 3
  %2059 = load i32, ptr %57, align 4, !tbaa !20
  %2060 = xor i32 %2059, %2058
  store i32 %2060, ptr %57, align 4, !tbaa !20
  %2061 = load i32, ptr %56, align 4, !tbaa !20
  %2062 = load i32, ptr %58, align 4, !tbaa !20
  %2063 = sub i32 %2062, %2061
  store i32 %2063, ptr %58, align 4, !tbaa !20
  %2064 = load i32, ptr %57, align 4, !tbaa !20
  %2065 = load i32, ptr %58, align 4, !tbaa !20
  %2066 = sub i32 %2065, %2064
  store i32 %2066, ptr %58, align 4, !tbaa !20
  %2067 = load i32, ptr %57, align 4, !tbaa !20
  %2068 = shl i32 %2067, 10
  %2069 = load i32, ptr %58, align 4, !tbaa !20
  %2070 = xor i32 %2069, %2068
  store i32 %2070, ptr %58, align 4, !tbaa !20
  %2071 = load i32, ptr %57, align 4, !tbaa !20
  %2072 = load i32, ptr %56, align 4, !tbaa !20
  %2073 = sub i32 %2072, %2071
  store i32 %2073, ptr %56, align 4, !tbaa !20
  %2074 = load i32, ptr %58, align 4, !tbaa !20
  %2075 = load i32, ptr %56, align 4, !tbaa !20
  %2076 = sub i32 %2075, %2074
  store i32 %2076, ptr %56, align 4, !tbaa !20
  %2077 = load i32, ptr %58, align 4, !tbaa !20
  %2078 = lshr i32 %2077, 15
  %2079 = load i32, ptr %56, align 4, !tbaa !20
  %2080 = xor i32 %2079, %2078
  store i32 %2080, ptr %56, align 4, !tbaa !20
  br label %2081

2081:                                             ; preds = %1990
  br label %2082

2082:                                             ; preds = %2081
  %2083 = load ptr, ptr %60, align 8, !tbaa !5
  %2084 = getelementptr inbounds i8, ptr %2083, i64 12
  store ptr %2084, ptr %60, align 8, !tbaa !5
  %2085 = load i32, ptr %59, align 4, !tbaa !20
  %2086 = sub i32 %2085, 12
  store i32 %2086, ptr %59, align 4, !tbaa !20
  br label %1914, !llvm.loop !88

2087:                                             ; preds = %1914
  %2088 = load ptr, ptr %54, align 8, !tbaa !5
  %2089 = call i64 @strlen(ptr noundef %2088) #11
  %2090 = trunc i64 %2089 to i32
  %2091 = load i32, ptr %56, align 4, !tbaa !20
  %2092 = add i32 %2091, %2090
  store i32 %2092, ptr %56, align 4, !tbaa !20
  %2093 = load i32, ptr %59, align 4, !tbaa !20
  switch i32 %2093, label %2180 [
    i32 11, label %2094
    i32 10, label %2102
    i32 9, label %2110
    i32 8, label %2118
    i32 7, label %2126
    i32 6, label %2134
    i32 5, label %2142
    i32 4, label %2149
    i32 3, label %2157
    i32 2, label %2165
    i32 1, label %2173
  ]

2094:                                             ; preds = %2087
  %2095 = load ptr, ptr %60, align 8, !tbaa !5
  %2096 = getelementptr inbounds i8, ptr %2095, i64 10
  %2097 = load i8, ptr %2096, align 1, !tbaa !11
  %2098 = zext i8 %2097 to i32
  %2099 = shl i32 %2098, 24
  %2100 = load i32, ptr %56, align 4, !tbaa !20
  %2101 = add i32 %2100, %2099
  store i32 %2101, ptr %56, align 4, !tbaa !20
  br label %2102

2102:                                             ; preds = %2094, %2087
  %2103 = load ptr, ptr %60, align 8, !tbaa !5
  %2104 = getelementptr inbounds i8, ptr %2103, i64 9
  %2105 = load i8, ptr %2104, align 1, !tbaa !11
  %2106 = zext i8 %2105 to i32
  %2107 = shl i32 %2106, 16
  %2108 = load i32, ptr %56, align 4, !tbaa !20
  %2109 = add i32 %2108, %2107
  store i32 %2109, ptr %56, align 4, !tbaa !20
  br label %2110

2110:                                             ; preds = %2102, %2087
  %2111 = load ptr, ptr %60, align 8, !tbaa !5
  %2112 = getelementptr inbounds i8, ptr %2111, i64 8
  %2113 = load i8, ptr %2112, align 1, !tbaa !11
  %2114 = zext i8 %2113 to i32
  %2115 = shl i32 %2114, 8
  %2116 = load i32, ptr %56, align 4, !tbaa !20
  %2117 = add i32 %2116, %2115
  store i32 %2117, ptr %56, align 4, !tbaa !20
  br label %2118

2118:                                             ; preds = %2110, %2087
  %2119 = load ptr, ptr %60, align 8, !tbaa !5
  %2120 = getelementptr inbounds i8, ptr %2119, i64 7
  %2121 = load i8, ptr %2120, align 1, !tbaa !11
  %2122 = zext i8 %2121 to i32
  %2123 = shl i32 %2122, 24
  %2124 = load i32, ptr %58, align 4, !tbaa !20
  %2125 = add i32 %2124, %2123
  store i32 %2125, ptr %58, align 4, !tbaa !20
  br label %2126

2126:                                             ; preds = %2118, %2087
  %2127 = load ptr, ptr %60, align 8, !tbaa !5
  %2128 = getelementptr inbounds i8, ptr %2127, i64 6
  %2129 = load i8, ptr %2128, align 1, !tbaa !11
  %2130 = zext i8 %2129 to i32
  %2131 = shl i32 %2130, 16
  %2132 = load i32, ptr %58, align 4, !tbaa !20
  %2133 = add i32 %2132, %2131
  store i32 %2133, ptr %58, align 4, !tbaa !20
  br label %2134

2134:                                             ; preds = %2126, %2087
  %2135 = load ptr, ptr %60, align 8, !tbaa !5
  %2136 = getelementptr inbounds i8, ptr %2135, i64 5
  %2137 = load i8, ptr %2136, align 1, !tbaa !11
  %2138 = zext i8 %2137 to i32
  %2139 = shl i32 %2138, 8
  %2140 = load i32, ptr %58, align 4, !tbaa !20
  %2141 = add i32 %2140, %2139
  store i32 %2141, ptr %58, align 4, !tbaa !20
  br label %2142

2142:                                             ; preds = %2134, %2087
  %2143 = load ptr, ptr %60, align 8, !tbaa !5
  %2144 = getelementptr inbounds i8, ptr %2143, i64 4
  %2145 = load i8, ptr %2144, align 1, !tbaa !11
  %2146 = zext i8 %2145 to i32
  %2147 = load i32, ptr %58, align 4, !tbaa !20
  %2148 = add i32 %2147, %2146
  store i32 %2148, ptr %58, align 4, !tbaa !20
  br label %2149

2149:                                             ; preds = %2142, %2087
  %2150 = load ptr, ptr %60, align 8, !tbaa !5
  %2151 = getelementptr inbounds i8, ptr %2150, i64 3
  %2152 = load i8, ptr %2151, align 1, !tbaa !11
  %2153 = zext i8 %2152 to i32
  %2154 = shl i32 %2153, 24
  %2155 = load i32, ptr %57, align 4, !tbaa !20
  %2156 = add i32 %2155, %2154
  store i32 %2156, ptr %57, align 4, !tbaa !20
  br label %2157

2157:                                             ; preds = %2149, %2087
  %2158 = load ptr, ptr %60, align 8, !tbaa !5
  %2159 = getelementptr inbounds i8, ptr %2158, i64 2
  %2160 = load i8, ptr %2159, align 1, !tbaa !11
  %2161 = zext i8 %2160 to i32
  %2162 = shl i32 %2161, 16
  %2163 = load i32, ptr %57, align 4, !tbaa !20
  %2164 = add i32 %2163, %2162
  store i32 %2164, ptr %57, align 4, !tbaa !20
  br label %2165

2165:                                             ; preds = %2157, %2087
  %2166 = load ptr, ptr %60, align 8, !tbaa !5
  %2167 = getelementptr inbounds i8, ptr %2166, i64 1
  %2168 = load i8, ptr %2167, align 1, !tbaa !11
  %2169 = zext i8 %2168 to i32
  %2170 = shl i32 %2169, 8
  %2171 = load i32, ptr %57, align 4, !tbaa !20
  %2172 = add i32 %2171, %2170
  store i32 %2172, ptr %57, align 4, !tbaa !20
  br label %2173

2173:                                             ; preds = %2165, %2087
  %2174 = load ptr, ptr %60, align 8, !tbaa !5
  %2175 = getelementptr inbounds i8, ptr %2174, i64 0
  %2176 = load i8, ptr %2175, align 1, !tbaa !11
  %2177 = zext i8 %2176 to i32
  %2178 = load i32, ptr %57, align 4, !tbaa !20
  %2179 = add i32 %2178, %2177
  store i32 %2179, ptr %57, align 4, !tbaa !20
  br label %2180

2180:                                             ; preds = %2173, %2087
  br label %2181

2181:                                             ; preds = %2180
  %2182 = load i32, ptr %58, align 4, !tbaa !20
  %2183 = load i32, ptr %57, align 4, !tbaa !20
  %2184 = sub i32 %2183, %2182
  store i32 %2184, ptr %57, align 4, !tbaa !20
  %2185 = load i32, ptr %56, align 4, !tbaa !20
  %2186 = load i32, ptr %57, align 4, !tbaa !20
  %2187 = sub i32 %2186, %2185
  store i32 %2187, ptr %57, align 4, !tbaa !20
  %2188 = load i32, ptr %56, align 4, !tbaa !20
  %2189 = lshr i32 %2188, 13
  %2190 = load i32, ptr %57, align 4, !tbaa !20
  %2191 = xor i32 %2190, %2189
  store i32 %2191, ptr %57, align 4, !tbaa !20
  %2192 = load i32, ptr %56, align 4, !tbaa !20
  %2193 = load i32, ptr %58, align 4, !tbaa !20
  %2194 = sub i32 %2193, %2192
  store i32 %2194, ptr %58, align 4, !tbaa !20
  %2195 = load i32, ptr %57, align 4, !tbaa !20
  %2196 = load i32, ptr %58, align 4, !tbaa !20
  %2197 = sub i32 %2196, %2195
  store i32 %2197, ptr %58, align 4, !tbaa !20
  %2198 = load i32, ptr %57, align 4, !tbaa !20
  %2199 = shl i32 %2198, 8
  %2200 = load i32, ptr %58, align 4, !tbaa !20
  %2201 = xor i32 %2200, %2199
  store i32 %2201, ptr %58, align 4, !tbaa !20
  %2202 = load i32, ptr %57, align 4, !tbaa !20
  %2203 = load i32, ptr %56, align 4, !tbaa !20
  %2204 = sub i32 %2203, %2202
  store i32 %2204, ptr %56, align 4, !tbaa !20
  %2205 = load i32, ptr %58, align 4, !tbaa !20
  %2206 = load i32, ptr %56, align 4, !tbaa !20
  %2207 = sub i32 %2206, %2205
  store i32 %2207, ptr %56, align 4, !tbaa !20
  %2208 = load i32, ptr %58, align 4, !tbaa !20
  %2209 = lshr i32 %2208, 13
  %2210 = load i32, ptr %56, align 4, !tbaa !20
  %2211 = xor i32 %2210, %2209
  store i32 %2211, ptr %56, align 4, !tbaa !20
  %2212 = load i32, ptr %58, align 4, !tbaa !20
  %2213 = load i32, ptr %57, align 4, !tbaa !20
  %2214 = sub i32 %2213, %2212
  store i32 %2214, ptr %57, align 4, !tbaa !20
  %2215 = load i32, ptr %56, align 4, !tbaa !20
  %2216 = load i32, ptr %57, align 4, !tbaa !20
  %2217 = sub i32 %2216, %2215
  store i32 %2217, ptr %57, align 4, !tbaa !20
  %2218 = load i32, ptr %56, align 4, !tbaa !20
  %2219 = lshr i32 %2218, 12
  %2220 = load i32, ptr %57, align 4, !tbaa !20
  %2221 = xor i32 %2220, %2219
  store i32 %2221, ptr %57, align 4, !tbaa !20
  %2222 = load i32, ptr %56, align 4, !tbaa !20
  %2223 = load i32, ptr %58, align 4, !tbaa !20
  %2224 = sub i32 %2223, %2222
  store i32 %2224, ptr %58, align 4, !tbaa !20
  %2225 = load i32, ptr %57, align 4, !tbaa !20
  %2226 = load i32, ptr %58, align 4, !tbaa !20
  %2227 = sub i32 %2226, %2225
  store i32 %2227, ptr %58, align 4, !tbaa !20
  %2228 = load i32, ptr %57, align 4, !tbaa !20
  %2229 = shl i32 %2228, 16
  %2230 = load i32, ptr %58, align 4, !tbaa !20
  %2231 = xor i32 %2230, %2229
  store i32 %2231, ptr %58, align 4, !tbaa !20
  %2232 = load i32, ptr %57, align 4, !tbaa !20
  %2233 = load i32, ptr %56, align 4, !tbaa !20
  %2234 = sub i32 %2233, %2232
  store i32 %2234, ptr %56, align 4, !tbaa !20
  %2235 = load i32, ptr %58, align 4, !tbaa !20
  %2236 = load i32, ptr %56, align 4, !tbaa !20
  %2237 = sub i32 %2236, %2235
  store i32 %2237, ptr %56, align 4, !tbaa !20
  %2238 = load i32, ptr %58, align 4, !tbaa !20
  %2239 = lshr i32 %2238, 5
  %2240 = load i32, ptr %56, align 4, !tbaa !20
  %2241 = xor i32 %2240, %2239
  store i32 %2241, ptr %56, align 4, !tbaa !20
  %2242 = load i32, ptr %58, align 4, !tbaa !20
  %2243 = load i32, ptr %57, align 4, !tbaa !20
  %2244 = sub i32 %2243, %2242
  store i32 %2244, ptr %57, align 4, !tbaa !20
  %2245 = load i32, ptr %56, align 4, !tbaa !20
  %2246 = load i32, ptr %57, align 4, !tbaa !20
  %2247 = sub i32 %2246, %2245
  store i32 %2247, ptr %57, align 4, !tbaa !20
  %2248 = load i32, ptr %56, align 4, !tbaa !20
  %2249 = lshr i32 %2248, 3
  %2250 = load i32, ptr %57, align 4, !tbaa !20
  %2251 = xor i32 %2250, %2249
  store i32 %2251, ptr %57, align 4, !tbaa !20
  %2252 = load i32, ptr %56, align 4, !tbaa !20
  %2253 = load i32, ptr %58, align 4, !tbaa !20
  %2254 = sub i32 %2253, %2252
  store i32 %2254, ptr %58, align 4, !tbaa !20
  %2255 = load i32, ptr %57, align 4, !tbaa !20
  %2256 = load i32, ptr %58, align 4, !tbaa !20
  %2257 = sub i32 %2256, %2255
  store i32 %2257, ptr %58, align 4, !tbaa !20
  %2258 = load i32, ptr %57, align 4, !tbaa !20
  %2259 = shl i32 %2258, 10
  %2260 = load i32, ptr %58, align 4, !tbaa !20
  %2261 = xor i32 %2260, %2259
  store i32 %2261, ptr %58, align 4, !tbaa !20
  %2262 = load i32, ptr %57, align 4, !tbaa !20
  %2263 = load i32, ptr %56, align 4, !tbaa !20
  %2264 = sub i32 %2263, %2262
  store i32 %2264, ptr %56, align 4, !tbaa !20
  %2265 = load i32, ptr %58, align 4, !tbaa !20
  %2266 = load i32, ptr %56, align 4, !tbaa !20
  %2267 = sub i32 %2266, %2265
  store i32 %2267, ptr %56, align 4, !tbaa !20
  %2268 = load i32, ptr %58, align 4, !tbaa !20
  %2269 = lshr i32 %2268, 15
  %2270 = load i32, ptr %56, align 4, !tbaa !20
  %2271 = xor i32 %2270, %2269
  store i32 %2271, ptr %56, align 4, !tbaa !20
  br label %2272

2272:                                             ; preds = %2181
  br label %2273

2273:                                             ; preds = %2272
  call void @llvm.lifetime.end.p0(i64 8, ptr %60) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %59) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %58) #10
  call void @llvm.lifetime.end.p0(i64 4, ptr %57) #10
  br label %2274

2274:                                             ; preds = %2273
  br label %2275

2275:                                             ; preds = %2274
  br label %2276

2276:                                             ; preds = %2275
  br label %2277

2277:                                             ; preds = %2276
  br label %2278

2278:                                             ; preds = %2277
  store ptr null, ptr %55, align 8, !tbaa !5
  %2279 = load ptr, ptr %7, align 8, !tbaa !5
  %2280 = load ptr, ptr %2279, align 8, !tbaa !5
  %2281 = icmp ne ptr %2280, null
  br i1 %2281, label %2282, label %2398

2282:                                             ; preds = %2278
  call void @llvm.lifetime.start.p0(i64 4, ptr %61) #10
  br label %2283

2283:                                             ; preds = %2282
  %2284 = load i32, ptr %56, align 4, !tbaa !20
  %2285 = load ptr, ptr %7, align 8, !tbaa !5
  %2286 = load ptr, ptr %2285, align 8, !tbaa !5
  %2287 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2286, i32 0, i32 2
  %2288 = getelementptr inbounds %struct.UT_hash_handle, ptr %2287, i32 0, i32 0
  %2289 = load ptr, ptr %2288, align 8, !tbaa !36
  %2290 = getelementptr inbounds %struct.UT_hash_table, ptr %2289, i32 0, i32 1
  %2291 = load i32, ptr %2290, align 8, !tbaa !39
  %2292 = sub i32 %2291, 1
  %2293 = and i32 %2284, %2292
  store i32 %2293, ptr %61, align 4, !tbaa !20
  br label %2294

2294:                                             ; preds = %2283
  br label %2295

2295:                                             ; preds = %2294
  br label %2296

2296:                                             ; preds = %2295
  %2297 = load ptr, ptr %7, align 8, !tbaa !5
  %2298 = load ptr, ptr %2297, align 8, !tbaa !5
  %2299 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2298, i32 0, i32 2
  %2300 = getelementptr inbounds %struct.UT_hash_handle, ptr %2299, i32 0, i32 0
  %2301 = load ptr, ptr %2300, align 8, !tbaa !36
  %2302 = getelementptr inbounds %struct.UT_hash_table, ptr %2301, i32 0, i32 0
  %2303 = load ptr, ptr %2302, align 8, !tbaa !42
  %2304 = load i32, ptr %61, align 4, !tbaa !20
  %2305 = zext i32 %2304 to i64
  %2306 = getelementptr inbounds %struct.UT_hash_bucket, ptr %2303, i64 %2305
  %2307 = getelementptr inbounds %struct.UT_hash_bucket, ptr %2306, i32 0, i32 0
  %2308 = load ptr, ptr %2307, align 8, !tbaa !43
  %2309 = icmp ne ptr %2308, null
  br i1 %2309, label %2310, label %2335

2310:                                             ; preds = %2296
  br label %2311

2311:                                             ; preds = %2310
  %2312 = load ptr, ptr %7, align 8, !tbaa !5
  %2313 = load ptr, ptr %2312, align 8, !tbaa !5
  %2314 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2313, i32 0, i32 2
  %2315 = getelementptr inbounds %struct.UT_hash_handle, ptr %2314, i32 0, i32 0
  %2316 = load ptr, ptr %2315, align 8, !tbaa !36
  %2317 = getelementptr inbounds %struct.UT_hash_table, ptr %2316, i32 0, i32 0
  %2318 = load ptr, ptr %2317, align 8, !tbaa !42
  %2319 = load i32, ptr %61, align 4, !tbaa !20
  %2320 = zext i32 %2319 to i64
  %2321 = getelementptr inbounds %struct.UT_hash_bucket, ptr %2318, i64 %2320
  %2322 = getelementptr inbounds %struct.UT_hash_bucket, ptr %2321, i32 0, i32 0
  %2323 = load ptr, ptr %2322, align 8, !tbaa !43
  %2324 = load ptr, ptr %7, align 8, !tbaa !5
  %2325 = load ptr, ptr %2324, align 8, !tbaa !5
  %2326 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2325, i32 0, i32 2
  %2327 = getelementptr inbounds %struct.UT_hash_handle, ptr %2326, i32 0, i32 0
  %2328 = load ptr, ptr %2327, align 8, !tbaa !36
  %2329 = getelementptr inbounds %struct.UT_hash_table, ptr %2328, i32 0, i32 5
  %2330 = load i64, ptr %2329, align 8, !tbaa !45
  %2331 = sub i64 0, %2330
  %2332 = getelementptr inbounds i8, ptr %2323, i64 %2331
  store ptr %2332, ptr %55, align 8, !tbaa !5
  br label %2333

2333:                                             ; preds = %2311
  br label %2334

2334:                                             ; preds = %2333
  br label %2336

2335:                                             ; preds = %2296
  store ptr null, ptr %55, align 8, !tbaa !5
  br label %2336

2336:                                             ; preds = %2335, %2334
  br label %2337

2337:                                             ; preds = %2394, %2336
  %2338 = load ptr, ptr %55, align 8, !tbaa !5
  %2339 = icmp ne ptr %2338, null
  br i1 %2339, label %2340, label %2395

2340:                                             ; preds = %2337
  %2341 = load ptr, ptr %55, align 8, !tbaa !5
  %2342 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2341, i32 0, i32 2
  %2343 = getelementptr inbounds %struct.UT_hash_handle, ptr %2342, i32 0, i32 7
  %2344 = load i32, ptr %2343, align 4, !tbaa !46
  %2345 = load i32, ptr %56, align 4, !tbaa !20
  %2346 = icmp eq i32 %2344, %2345
  br i1 %2346, label %2347, label %2370

2347:                                             ; preds = %2340
  %2348 = load ptr, ptr %55, align 8, !tbaa !5
  %2349 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2348, i32 0, i32 2
  %2350 = getelementptr inbounds %struct.UT_hash_handle, ptr %2349, i32 0, i32 6
  %2351 = load i32, ptr %2350, align 8, !tbaa !47
  %2352 = load ptr, ptr %54, align 8, !tbaa !5
  %2353 = call i64 @strlen(ptr noundef %2352) #11
  %2354 = trunc i64 %2353 to i32
  %2355 = icmp eq i32 %2351, %2354
  br i1 %2355, label %2356, label %2370

2356:                                             ; preds = %2347
  %2357 = load ptr, ptr %55, align 8, !tbaa !5
  %2358 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2357, i32 0, i32 2
  %2359 = getelementptr inbounds %struct.UT_hash_handle, ptr %2358, i32 0, i32 5
  %2360 = load ptr, ptr %2359, align 8, !tbaa !48
  %2361 = load ptr, ptr %54, align 8, !tbaa !5
  %2362 = load ptr, ptr %54, align 8, !tbaa !5
  %2363 = call i64 @strlen(ptr noundef %2362) #11
  %2364 = trunc i64 %2363 to i32
  %2365 = zext i32 %2364 to i64
  %2366 = call i32 @memcmp(ptr noundef %2360, ptr noundef %2361, i64 noundef %2365) #11
  %2367 = icmp eq i32 %2366, 0
  br i1 %2367, label %2368, label %2369

2368:                                             ; preds = %2356
  br label %2395

2369:                                             ; preds = %2356
  br label %2370

2370:                                             ; preds = %2369, %2347, %2340
  %2371 = load ptr, ptr %55, align 8, !tbaa !5
  %2372 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2371, i32 0, i32 2
  %2373 = getelementptr inbounds %struct.UT_hash_handle, ptr %2372, i32 0, i32 4
  %2374 = load ptr, ptr %2373, align 8, !tbaa !49
  %2375 = icmp ne ptr %2374, null
  br i1 %2375, label %2376, label %2393

2376:                                             ; preds = %2370
  br label %2377

2377:                                             ; preds = %2376
  %2378 = load ptr, ptr %55, align 8, !tbaa !5
  %2379 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2378, i32 0, i32 2
  %2380 = getelementptr inbounds %struct.UT_hash_handle, ptr %2379, i32 0, i32 4
  %2381 = load ptr, ptr %2380, align 8, !tbaa !49
  %2382 = load ptr, ptr %7, align 8, !tbaa !5
  %2383 = load ptr, ptr %2382, align 8, !tbaa !5
  %2384 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2383, i32 0, i32 2
  %2385 = getelementptr inbounds %struct.UT_hash_handle, ptr %2384, i32 0, i32 0
  %2386 = load ptr, ptr %2385, align 8, !tbaa !36
  %2387 = getelementptr inbounds %struct.UT_hash_table, ptr %2386, i32 0, i32 5
  %2388 = load i64, ptr %2387, align 8, !tbaa !45
  %2389 = sub i64 0, %2388
  %2390 = getelementptr inbounds i8, ptr %2381, i64 %2389
  store ptr %2390, ptr %55, align 8, !tbaa !5
  br label %2391

2391:                                             ; preds = %2377
  br label %2392

2392:                                             ; preds = %2391
  br label %2394

2393:                                             ; preds = %2370
  store ptr null, ptr %55, align 8, !tbaa !5
  br label %2394

2394:                                             ; preds = %2393, %2392
  br label %2337, !llvm.loop !89

2395:                                             ; preds = %2368, %2337
  br label %2396

2396:                                             ; preds = %2395
  br label %2397

2397:                                             ; preds = %2396
  call void @llvm.lifetime.end.p0(i64 4, ptr %61) #10
  br label %2398

2398:                                             ; preds = %2397, %2278
  br label %2399

2399:                                             ; preds = %2398
  br label %2400

2400:                                             ; preds = %2399
  call void @llvm.lifetime.end.p0(i64 4, ptr %56) #10
  br label %2401

2401:                                             ; preds = %2400
  br label %2402

2402:                                             ; preds = %2401
  %2403 = load ptr, ptr %55, align 8, !tbaa !5
  %2404 = icmp ne ptr %2403, null
  br i1 %2404, label %2405, label %2416

2405:                                             ; preds = %2402
  %2406 = load ptr, ptr %55, align 8, !tbaa !5
  %2407 = getelementptr inbounds %struct.otl_ClassnameHash, ptr %2406, i32 0, i32 1
  %2408 = load i16, ptr %2407, align 8, !tbaa !53
  %2409 = load ptr, ptr %6, align 8, !tbaa !5
  %2410 = getelementptr inbounds %struct.otl_MarkArray, ptr %2409, i32 0, i32 2
  %2411 = load ptr, ptr %2410, align 8, !tbaa !85
  %2412 = load i16, ptr %51, align 2, !tbaa !9
  %2413 = zext i16 %2412 to i64
  %2414 = getelementptr inbounds %struct.otl_MarkRecord, ptr %2411, i64 %2413
  %2415 = getelementptr inbounds %struct.otl_MarkRecord, ptr %2414, i32 0, i32 1
  store i16 %2408, ptr %2415, align 8, !tbaa !21
  br label %2424

2416:                                             ; preds = %2402
  %2417 = load ptr, ptr %6, align 8, !tbaa !5
  %2418 = getelementptr inbounds %struct.otl_MarkArray, ptr %2417, i32 0, i32 2
  %2419 = load ptr, ptr %2418, align 8, !tbaa !85
  %2420 = load i16, ptr %51, align 2, !tbaa !9
  %2421 = zext i16 %2420 to i64
  %2422 = getelementptr inbounds %struct.otl_MarkRecord, ptr %2419, i64 %2421
  %2423 = getelementptr inbounds %struct.otl_MarkRecord, ptr %2422, i32 0, i32 1
  store i16 0, ptr %2423, align 8, !tbaa !21
  br label %2424

2424:                                             ; preds = %2416, %2405
  %2425 = load ptr, ptr %54, align 8, !tbaa !5
  call void @sdsfree(ptr noundef %2425)
  call void @llvm.lifetime.end.p0(i64 8, ptr %55) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %54) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %53) #10
  call void @llvm.lifetime.end.p0(i64 8, ptr %52) #10
  br label %2426

2426:                                             ; preds = %2424, %1884
  %2427 = load i16, ptr %51, align 2, !tbaa !9
  %2428 = add i16 %2427, 1
  store i16 %2428, ptr %51, align 2, !tbaa !9
  br label %1865, !llvm.loop !90

2429:                                             ; preds = %1872
  call void @llvm.lifetime.end.p0(i64 8, ptr %50) #10
  call void @llvm.lifetime.end.p0(i64 2, ptr %49) #10
  ret void

2430:                                             ; preds = %1552
  unreachable
}

declare ptr @sdsnewlen(ptr noundef, i64 noundef) #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @json_obj_get_type(ptr noundef, ptr noundef, i32 noundef) #4

; Function Attrs: nounwind willreturn memory(read)
declare i64 @strlen(ptr noundef) #5

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

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

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

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

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

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

declare void @sdsfree(ptr noundef) #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden double @json_obj_getnum(ptr noundef, ptr noundef) #4

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

; Function Attrs: nounwind uwtable
declare dso_local void @otl_anchor_absent(ptr dead_on_unwind noalias writable sret(%struct.otl_Anchor) align 8) #1

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"short", !7, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!13, !6, i64 0}
!13 = !{!"_json_object_entry", !6, i64 0, !14, i64 8, !6, i64 16}
!14 = !{!"int", !7, i64 0}
!15 = !{!13, !6, i64 16}
!16 = !{!17, !6, i64 72}
!17 = !{!"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}
!18 = !{!13, !14, i64 8}
!19 = !{i64 0, i64 4, !20, i64 4, i64 2, !9, i64 8, i64 8, !5}
!20 = !{!14, !14, i64 0}
!21 = !{!22, !10, i64 16}
!22 = !{!"", !23, i64 0, !10, i64 16, !24, i64 24}
!23 = !{!"otfcc_Handle", !14, i64 0, !10, i64 4, !6, i64 8}
!24 = !{!"", !25, i64 0, !26, i64 8, !26, i64 16}
!25 = !{!"_Bool", !7, i64 0}
!26 = !{!"double", !7, i64 0}
!27 = !{i64 0, i64 1, !28, i64 8, i64 8, !29, i64 16, i64 8, !29}
!28 = !{!25, !25, i64 0}
!29 = !{!26, !26, i64 0}
!30 = !{!31, !14, i64 8}
!31 = !{!"_json_value", !6, i64 0, !14, i64 8, !7, i64 16, !7, i64 32}
!32 = !{!33, !6, i64 104}
!33 = !{!"__caryll_vectorinterface_otl_MarkArray", !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, !6, i64 96, !6, i64 104, !6, i64 112, !6, i64 120, !6, i64 128, !6, i64 136, !6, i64 144}
!34 = distinct !{!34, !35}
!35 = !{!"llvm.loop.mustprogress"}
!36 = !{!37, !6, i64 16}
!37 = !{!"", !6, i64 0, !10, i64 8, !38, i64 16}
!38 = !{!"UT_hash_handle", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !14, i64 48, !14, i64 52}
!39 = !{!40, !14, i64 8}
!40 = !{!"UT_hash_table", !6, i64 0, !14, i64 8, !14, i64 12, !14, i64 16, !6, i64 24, !41, i64 32, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56}
!41 = !{!"long", !7, i64 0}
!42 = !{!40, !6, i64 0}
!43 = !{!44, !6, i64 0}
!44 = !{!"UT_hash_bucket", !6, i64 0, !14, i64 8, !14, i64 12}
!45 = !{!40, !41, i64 32}
!46 = !{!37, !14, i64 68}
!47 = !{!37, !14, i64 64}
!48 = !{!37, !6, i64 56}
!49 = !{!37, !6, i64 48}
!50 = distinct !{!50, !35}
!51 = !{!37, !6, i64 0}
!52 = !{!40, !14, i64 16}
!53 = !{!37, !10, i64 8}
!54 = distinct !{!54, !35}
!55 = !{!37, !6, i64 32}
!56 = !{!37, !6, i64 24}
!57 = !{!40, !6, i64 24}
!58 = !{!40, !14, i64 12}
!59 = !{!40, !14, i64 56}
!60 = !{!38, !6, i64 16}
!61 = !{!44, !14, i64 8}
!62 = !{!37, !6, i64 40}
!63 = !{!38, !6, i64 24}
!64 = !{!44, !14, i64 12}
!65 = !{!40, !14, i64 52}
!66 = !{!40, !14, i64 40}
!67 = !{!40, !14, i64 44}
!68 = !{!38, !6, i64 32}
!69 = !{!38, !14, i64 52}
!70 = distinct !{!70, !35}
!71 = distinct !{!71, !35}
!72 = !{!40, !14, i64 48}
!73 = !{!22, !25, i64 24}
!74 = !{!22, !26, i64 32}
!75 = !{!22, !26, i64 40}
!76 = distinct !{!76, !35}
!77 = distinct !{!77, !35}
!78 = !{!38, !6, i64 8}
!79 = distinct !{!79, !35}
!80 = distinct !{!80, !35}
!81 = distinct !{!81, !35}
!82 = distinct !{!82, !35}
!83 = !{!84, !41, i64 0}
!84 = !{!"", !41, i64 0, !41, i64 8, !6, i64 16}
!85 = !{!84, !6, i64 16}
!86 = !{i8 0, i8 2}
!87 = !{}
!88 = distinct !{!88, !35}
!89 = distinct !{!89, !35}
!90 = distinct !{!90, !35}


; 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.__caryll_vectorinterface_otl_MarkArray = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.otfcc_HandlePackage = type { ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
%struct.otl_MarkRecord = type { %struct.otfcc_Handle, i16, %struct.otl_Anchor }
%struct.otfcc_Handle = type { i32, i16, ptr }
%struct.otl_Anchor = type { i8, double, double }
%struct._json_object_entry = type { ptr, i32, ptr }
%struct.UT_hash_bucket = type { ptr, i32, i32 }

@otl_iMarkArray = external dso_local local_unnamed_addr constant %struct.__caryll_vectorinterface_otl_MarkArray, align 8
@otfcc_iHandle = external local_unnamed_addr constant %struct.otfcc_HandlePackage, align 8
@.str = external hidden unnamed_addr constant [6 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [2 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [2 x i8], align 1

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

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

; Function Attrs: nounwind uwtable
define dso_local void @otl_parseMarkArray(ptr nocapture noundef readonly %0, ptr noundef %1, ptr nocapture noundef %2, ptr nocapture noundef readnone %3) local_unnamed_addr #1 {
  %5 = alloca %struct.otl_MarkRecord, align 8
  %6 = alloca %struct.otl_Anchor, align 8
  %7 = getelementptr inbounds i8, ptr %0, i64 16
  %8 = load i32, ptr %7, align 8, !tbaa !5
  %.not1116 = icmp eq i32 %8, 0
  br i1 %.not1116, label %._crit_edge1067, label %.lr.ph1066

.lr.ph1066:                                       ; preds = %4
  %9 = getelementptr inbounds i8, ptr %0, i64 24
  %10 = load ptr, ptr getelementptr inbounds (i8, ptr @otfcc_iHandle, i64 72), align 8, !tbaa !8
  %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %5, i64 8
  %11 = getelementptr inbounds i8, ptr %5, i64 16
  %12 = getelementptr inbounds i8, ptr %5, i64 24
  %13 = getelementptr inbounds i8, ptr %5, i64 32
  %14 = getelementptr inbounds i8, ptr %5, i64 40
  %15 = load ptr, ptr getelementptr inbounds (i8, ptr @otl_iMarkArray, i64 104), align 8
  br label %17

._crit_edge1067:                                  ; preds = %544, %4
  %16 = load ptr, ptr %2, align 8, !tbaa !11
  %.not = icmp eq ptr %16, null
  br i1 %.not, label %.preheader, label %549

17:                                               ; preds = %.lr.ph1066, %544
  %.01064 = phi i16 [ 0, %.lr.ph1066 ], [ %545, %544 ]
  call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #12
  %18 = load ptr, ptr %9, align 8, !tbaa !5
  %19 = zext i16 %.01064 to i64
  %20 = getelementptr inbounds %struct._json_object_entry, ptr %18, i64 %19
  %21 = load ptr, ptr %20, align 8, !tbaa !12
  %22 = getelementptr inbounds i8, ptr %20, i64 16
  %23 = load ptr, ptr %22, align 8, !tbaa !15
  %24 = getelementptr inbounds i8, ptr %20, i64 8
  %25 = load i32, ptr %24, align 8, !tbaa !16
  %26 = zext i32 %25 to i64
  %27 = call ptr @sdsnewlen(ptr noundef %21, i64 noundef %26) #12
  %28 = call { i64, ptr } %10(ptr noundef %27) #12
  %29 = extractvalue { i64, ptr } %28, 0
  %30 = extractvalue { i64, ptr } %28, 1
  store i64 %29, ptr %5, align 8
  store ptr %30, ptr %.sroa.4.0..sroa_idx, align 8, !tbaa !11
  store i16 0, ptr %11, align 8, !tbaa !17
  call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) #12
  call void @otl_anchor_absent(ptr dead_on_unwind nonnull writable sret(%struct.otl_Anchor) align 8 %6)
  call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !tbaa.struct !24
  call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) #12
  %.not878 = icmp eq ptr %23, null
  br i1 %.not878, label %544, label %31

31:                                               ; preds = %17
  %32 = getelementptr inbounds i8, ptr %23, i64 8
  %33 = load i32, ptr %32, align 8, !tbaa !27
  %.not879 = icmp eq i32 %33, 1
  br i1 %.not879, label %34, label %544

34:                                               ; preds = %31
  %35 = call ptr @json_obj_get_type(ptr noundef nonnull %23, ptr noundef nonnull @.str, i32 noundef 5)
  %.not880 = icmp eq ptr %35, null
  br i1 %.not880, label %544, label %36

36:                                               ; preds = %34
  %37 = getelementptr inbounds i8, ptr %35, i64 16
  %38 = getelementptr inbounds i8, ptr %35, i64 24
  %39 = load ptr, ptr %38, align 8, !tbaa !5
  %40 = load i32, ptr %37, align 8, !tbaa !5
  %41 = zext i32 %40 to i64
  %42 = call ptr @sdsnewlen(ptr noundef %39, i64 noundef %41) #12
  %43 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %42) #13
  %44 = trunc i64 %43 to i32
  %45 = icmp ugt i32 %44, 11
  br i1 %45, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %36, %.lr.ph
  %.07441033 = phi i32 [ %88, %.lr.ph ], [ -17973521, %36 ]
  %.07861032 = phi i32 [ %80, %.lr.ph ], [ -1640531527, %36 ]
  %.07911031 = phi i32 [ %84, %.lr.ph ], [ -1640531527, %36 ]
  %.08001030 = phi i32 [ %90, %.lr.ph ], [ %44, %36 ]
  %.08031029 = phi ptr [ %89, %.lr.ph ], [ %42, %36 ]
  %46 = load i32, ptr %.08031029, align 1
  %47 = getelementptr inbounds i8, ptr %.08031029, i64 4
  %48 = load i32, ptr %47, align 1
  %49 = add i32 %48, %.07911031
  %50 = getelementptr inbounds i8, ptr %.08031029, i64 8
  %51 = load i32, ptr %50, align 1
  %52 = add i32 %51, %.07441033
  %.neg1006 = add i32 %46, %.07861032
  %53 = add i32 %49, %52
  %54 = sub i32 %.neg1006, %53
  %55 = lshr i32 %52, 13
  %56 = xor i32 %54, %55
  %57 = add i32 %52, %56
  %58 = sub i32 %49, %57
  %59 = shl i32 %56, 8
  %60 = xor i32 %58, %59
  %61 = add i32 %56, %60
  %62 = sub i32 %52, %61
  %63 = lshr i32 %60, 13
  %64 = xor i32 %62, %63
  %65 = add i32 %60, %64
  %66 = sub i32 %56, %65
  %67 = lshr i32 %64, 12
  %68 = xor i32 %66, %67
  %69 = add i32 %64, %68
  %70 = sub i32 %60, %69
  %71 = shl i32 %68, 16
  %72 = xor i32 %70, %71
  %73 = add i32 %68, %72
  %74 = sub i32 %64, %73
  %75 = lshr i32 %72, 5
  %76 = xor i32 %74, %75
  %77 = add i32 %72, %76
  %78 = sub i32 %68, %77
  %79 = lshr i32 %76, 3
  %80 = xor i32 %78, %79
  %81 = add i32 %76, %80
  %82 = sub i32 %72, %81
  %83 = shl i32 %80, 10
  %84 = xor i32 %82, %83
  %85 = add i32 %80, %84
  %86 = sub i32 %76, %85
  %87 = lshr i32 %84, 15
  %88 = xor i32 %86, %87
  %89 = getelementptr inbounds i8, ptr %.08031029, i64 12
  %90 = add i32 %.08001030, -12
  %91 = icmp ugt i32 %90, 11
  br i1 %91, label %.lr.ph, label %._crit_edge, !llvm.loop !29

._crit_edge:                                      ; preds = %.lr.ph, %36
  %.0803.lcssa = phi ptr [ %42, %36 ], [ %89, %.lr.ph ]
  %.0800.lcssa = phi i32 [ %44, %36 ], [ %90, %.lr.ph ]
  %.0791.lcssa = phi i32 [ -1640531527, %36 ], [ %84, %.lr.ph ]
  %.0786.lcssa = phi i32 [ -1640531527, %36 ], [ %80, %.lr.ph ]
  %.0744.lcssa = phi i32 [ -17973521, %36 ], [ %88, %.lr.ph ]
  %92 = add i32 %.0744.lcssa, %44
  switch i32 %.0800.lcssa, label %156 [
    i32 11, label %93
    i32 10, label %99
    i32 9, label %105
    i32 8, label %111
    i32 7, label %117
    i32 6, label %123
    i32 5, label %129
    i32 4, label %134
    i32 3, label %140
    i32 2, label %146
    i32 1, label %152
  ]

93:                                               ; preds = %._crit_edge
  %94 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 10
  %95 = load i8, ptr %94, align 1, !tbaa !5
  %96 = zext i8 %95 to i32
  %97 = shl nuw i32 %96, 24
  %98 = add i32 %97, %92
  br label %99

99:                                               ; preds = %93, %._crit_edge
  %.1745 = phi i32 [ %92, %._crit_edge ], [ %98, %93 ]
  %100 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 9
  %101 = load i8, ptr %100, align 1, !tbaa !5
  %102 = zext i8 %101 to i32
  %103 = shl nuw nsw i32 %102, 16
  %104 = add i32 %103, %.1745
  br label %105

105:                                              ; preds = %99, %._crit_edge
  %.2746 = phi i32 [ %92, %._crit_edge ], [ %104, %99 ]
  %106 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 8
  %107 = load i8, ptr %106, align 1, !tbaa !5
  %108 = zext i8 %107 to i32
  %109 = shl nuw nsw i32 %108, 8
  %110 = add i32 %109, %.2746
  br label %111

111:                                              ; preds = %105, %._crit_edge
  %.3747 = phi i32 [ %92, %._crit_edge ], [ %110, %105 ]
  %112 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 7
  %113 = load i8, ptr %112, align 1, !tbaa !5
  %114 = zext i8 %113 to i32
  %115 = shl nuw i32 %114, 24
  %116 = add i32 %115, %.0791.lcssa
  br label %117

117:                                              ; preds = %111, %._crit_edge
  %.1792 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %116, %111 ]
  %.4748 = phi i32 [ %92, %._crit_edge ], [ %.3747, %111 ]
  %118 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 6
  %119 = load i8, ptr %118, align 1, !tbaa !5
  %120 = zext i8 %119 to i32
  %121 = shl nuw nsw i32 %120, 16
  %122 = add i32 %121, %.1792
  br label %123

123:                                              ; preds = %117, %._crit_edge
  %.2793 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %122, %117 ]
  %.5749 = phi i32 [ %92, %._crit_edge ], [ %.4748, %117 ]
  %124 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 5
  %125 = load i8, ptr %124, align 1, !tbaa !5
  %126 = zext i8 %125 to i32
  %127 = shl nuw nsw i32 %126, 8
  %128 = add i32 %127, %.2793
  br label %129

129:                                              ; preds = %123, %._crit_edge
  %.3794 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %128, %123 ]
  %.6750 = phi i32 [ %92, %._crit_edge ], [ %.5749, %123 ]
  %130 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 4
  %131 = load i8, ptr %130, align 1, !tbaa !5
  %132 = zext i8 %131 to i32
  %133 = add i32 %.3794, %132
  br label %134

134:                                              ; preds = %129, %._crit_edge
  %.4795 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %133, %129 ]
  %.7751 = phi i32 [ %92, %._crit_edge ], [ %.6750, %129 ]
  %135 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 3
  %136 = load i8, ptr %135, align 1, !tbaa !5
  %137 = zext i8 %136 to i32
  %138 = shl nuw i32 %137, 24
  %139 = add i32 %138, %.0786.lcssa
  br label %140

140:                                              ; preds = %134, %._crit_edge
  %.5796 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %.4795, %134 ]
  %.1787 = phi i32 [ %.0786.lcssa, %._crit_edge ], [ %139, %134 ]
  %.8752 = phi i32 [ %92, %._crit_edge ], [ %.7751, %134 ]
  %141 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 2
  %142 = load i8, ptr %141, align 1, !tbaa !5
  %143 = zext i8 %142 to i32
  %144 = shl nuw nsw i32 %143, 16
  %145 = add i32 %144, %.1787
  br label %146

146:                                              ; preds = %140, %._crit_edge
  %.6797 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %.5796, %140 ]
  %.2788 = phi i32 [ %.0786.lcssa, %._crit_edge ], [ %145, %140 ]
  %.9753 = phi i32 [ %92, %._crit_edge ], [ %.8752, %140 ]
  %147 = getelementptr inbounds i8, ptr %.0803.lcssa, i64 1
  %148 = load i8, ptr %147, align 1, !tbaa !5
  %149 = zext i8 %148 to i32
  %150 = shl nuw nsw i32 %149, 8
  %151 = add i32 %150, %.2788
  br label %152

152:                                              ; preds = %146, %._crit_edge
  %.7798 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %.6797, %146 ]
  %.3789 = phi i32 [ %.0786.lcssa, %._crit_edge ], [ %151, %146 ]
  %.10754 = phi i32 [ %92, %._crit_edge ], [ %.9753, %146 ]
  %153 = load i8, ptr %.0803.lcssa, align 1, !tbaa !5
  %154 = zext i8 %153 to i32
  %155 = add i32 %.3789, %154
  br label %156

156:                                              ; preds = %._crit_edge, %152
  %.8799 = phi i32 [ %.0791.lcssa, %._crit_edge ], [ %.7798, %152 ]
  %.4790 = phi i32 [ %.0786.lcssa, %._crit_edge ], [ %155, %152 ]
  %.11755 = phi i32 [ %92, %._crit_edge ], [ %.10754, %152 ]
  %157 = add i32 %.8799, %.11755
  %158 = sub i32 %.4790, %157
  %159 = lshr i32 %.11755, 13
  %160 = xor i32 %158, %159
  %161 = add i32 %.11755, %160
  %162 = sub i32 %.8799, %161
  %163 = shl i32 %160, 8
  %164 = xor i32 %162, %163
  %165 = add i32 %160, %164
  %166 = sub i32 %.11755, %165
  %167 = lshr i32 %164, 13
  %168 = xor i32 %166, %167
  %169 = add i32 %164, %168
  %170 = sub i32 %160, %169
  %171 = lshr i32 %168, 12
  %172 = xor i32 %170, %171
  %173 = add i32 %168, %172
  %174 = sub i32 %164, %173
  %175 = shl i32 %172, 16
  %176 = xor i32 %174, %175
  %177 = add i32 %172, %176
  %178 = sub i32 %168, %177
  %179 = lshr i32 %176, 5
  %180 = xor i32 %178, %179
  %181 = add i32 %176, %180
  %182 = sub i32 %172, %181
  %183 = lshr i32 %180, 3
  %184 = xor i32 %182, %183
  %185 = add i32 %180, %184
  %186 = sub i32 %176, %185
  %187 = shl i32 %184, 10
  %188 = xor i32 %186, %187
  %189 = add i32 %184, %188
  %190 = sub i32 %180, %189
  %191 = lshr i32 %188, 15
  %192 = xor i32 %190, %191
  %193 = load ptr, ptr %2, align 8, !tbaa !11
  %.not881 = icmp eq ptr %193, null
  br i1 %.not881, label %.loopexit1026, label %194

194:                                              ; preds = %156
  %195 = getelementptr inbounds i8, ptr %193, i64 16
  %196 = load ptr, ptr %195, align 8, !tbaa !31
  %197 = getelementptr inbounds i8, ptr %196, i64 8
  %198 = load i32, ptr %197, align 8, !tbaa !34
  %199 = add i32 %198, -1
  %200 = and i32 %199, %192
  %201 = load ptr, ptr %196, align 8, !tbaa !37
  %202 = zext i32 %200 to i64
  %203 = getelementptr inbounds %struct.UT_hash_bucket, ptr %201, i64 %202
  %204 = load ptr, ptr %203, align 8, !tbaa !38
  %.not882 = icmp eq ptr %204, null
  br i1 %.not882, label %.loopexit1026, label %.lr.ph1041

.lr.ph1041:                                       ; preds = %194
  %205 = getelementptr inbounds i8, ptr %196, i64 32
  %206 = load i64, ptr %205, align 8, !tbaa !40
  %207 = sub i64 0, %206
  %208 = getelementptr inbounds i8, ptr %204, i64 %207
  %209 = and i64 %43, 4294967295
  %210 = getelementptr inbounds i8, ptr %196, i64 32
  br label %211

211:                                              ; preds = %226, %.lr.ph1041
  %.17401039 = phi ptr [ %208, %.lr.ph1041 ], [ %229, %226 ]
  %212 = getelementptr inbounds i8, ptr %.17401039, i64 68
  %213 = load i32, ptr %212, align 4, !tbaa !41
  %214 = icmp eq i32 %213, %192
  br i1 %214, label %215, label %223

215:                                              ; preds = %211
  %216 = getelementptr inbounds i8, ptr %.17401039, i64 64
  %217 = load i32, ptr %216, align 8, !tbaa !42
  %218 = icmp eq i32 %217, %44
  br i1 %218, label %219, label %223

219:                                              ; preds = %215
  %220 = getelementptr inbounds i8, ptr %.17401039, i64 56
  %221 = load ptr, ptr %220, align 8, !tbaa !43
  %bcmp884 = call i32 @bcmp(ptr %221, ptr %42, i64 %209)
  %222 = icmp eq i32 %bcmp884, 0
  br i1 %222, label %538, label %223

223:                                              ; preds = %219, %215, %211
  %224 = getelementptr inbounds i8, ptr %.17401039, i64 48
  %225 = load ptr, ptr %224, align 8, !tbaa !44
  %.not885 = icmp eq ptr %225, null
  br i1 %.not885, label %.loopexit1026, label %226

226:                                              ; preds = %223
  %227 = load i64, ptr %210, align 8, !tbaa !40
  %228 = sub i64 0, %227
  %229 = getelementptr inbounds i8, ptr %225, i64 %228
  br label %211, !llvm.loop !45

.loopexit1026:                                    ; preds = %223, %194, %156
  %230 = call ptr @__caryll_allocate_clean(i64 noundef 72, i64 noundef 61)
  store ptr %42, ptr %230, align 8, !tbaa !46
  %231 = load ptr, ptr %2, align 8, !tbaa !11
  %.not887 = icmp eq ptr %231, null
  br i1 %.not887, label %237, label %232

232:                                              ; preds = %.loopexit1026
  %233 = getelementptr inbounds i8, ptr %231, i64 16
  %234 = load ptr, ptr %233, align 8, !tbaa !31
  %235 = getelementptr inbounds i8, ptr %234, i64 16
  %236 = load i32, ptr %235, align 8, !tbaa !47
  br label %237

237:                                              ; preds = %.loopexit1026, %232
  %238 = phi i32 [ %236, %232 ], [ 0, %.loopexit1026 ]
  %239 = trunc i32 %238 to i16
  %240 = getelementptr inbounds i8, ptr %230, i64 8
  store i16 %239, ptr %240, align 8, !tbaa !48
  %241 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %42) #13
  %242 = trunc i64 %241 to i32
  %243 = icmp ugt i32 %242, 11
  br i1 %243, label %.lr.ph1048, label %._crit_edge1049

.lr.ph1048:                                       ; preds = %237, %.lr.ph1048
  %.08041046 = phi i32 [ %286, %.lr.ph1048 ], [ -17973521, %237 ]
  %.08161045 = phi i32 [ %278, %.lr.ph1048 ], [ -1640531527, %237 ]
  %.08211044 = phi ptr [ %287, %.lr.ph1048 ], [ %42, %237 ]
  %.08221043 = phi i32 [ %288, %.lr.ph1048 ], [ %242, %237 ]
  %.08231042 = phi i32 [ %282, %.lr.ph1048 ], [ -1640531527, %237 ]
  %244 = load i32, ptr %.08211044, align 1
  %245 = getelementptr inbounds i8, ptr %.08211044, i64 4
  %246 = load i32, ptr %245, align 1
  %247 = add i32 %246, %.08231042
  %248 = getelementptr inbounds i8, ptr %.08211044, i64 8
  %249 = load i32, ptr %248, align 1
  %250 = add i32 %249, %.08041046
  %.neg987 = add i32 %244, %.08161045
  %251 = add i32 %247, %250
  %252 = sub i32 %.neg987, %251
  %253 = lshr i32 %250, 13
  %254 = xor i32 %252, %253
  %255 = add i32 %250, %254
  %256 = sub i32 %247, %255
  %257 = shl i32 %254, 8
  %258 = xor i32 %256, %257
  %259 = add i32 %254, %258
  %260 = sub i32 %250, %259
  %261 = lshr i32 %258, 13
  %262 = xor i32 %260, %261
  %263 = add i32 %258, %262
  %264 = sub i32 %254, %263
  %265 = lshr i32 %262, 12
  %266 = xor i32 %264, %265
  %267 = add i32 %262, %266
  %268 = sub i32 %258, %267
  %269 = shl i32 %266, 16
  %270 = xor i32 %268, %269
  %271 = add i32 %266, %270
  %272 = sub i32 %262, %271
  %273 = lshr i32 %270, 5
  %274 = xor i32 %272, %273
  %275 = add i32 %270, %274
  %276 = sub i32 %266, %275
  %277 = lshr i32 %274, 3
  %278 = xor i32 %276, %277
  %279 = add i32 %274, %278
  %280 = sub i32 %270, %279
  %281 = shl i32 %278, 10
  %282 = xor i32 %280, %281
  %283 = add i32 %278, %282
  %284 = sub i32 %274, %283
  %285 = lshr i32 %282, 15
  %286 = xor i32 %284, %285
  %287 = getelementptr inbounds i8, ptr %.08211044, i64 12
  %288 = add i32 %.08221043, -12
  %289 = icmp ugt i32 %288, 11
  br i1 %289, label %.lr.ph1048, label %._crit_edge1049, !llvm.loop !49

._crit_edge1049:                                  ; preds = %.lr.ph1048, %237
  %.0823.lcssa = phi i32 [ -1640531527, %237 ], [ %282, %.lr.ph1048 ]
  %.0822.lcssa = phi i32 [ %242, %237 ], [ %288, %.lr.ph1048 ]
  %.0821.lcssa = phi ptr [ %42, %237 ], [ %287, %.lr.ph1048 ]
  %.0816.lcssa = phi i32 [ -1640531527, %237 ], [ %278, %.lr.ph1048 ]
  %.0804.lcssa = phi i32 [ -17973521, %237 ], [ %286, %.lr.ph1048 ]
  %290 = add i32 %.0804.lcssa, %242
  switch i32 %.0822.lcssa, label %354 [
    i32 11, label %291
    i32 10, label %297
    i32 9, label %303
    i32 8, label %309
    i32 7, label %315
    i32 6, label %321
    i32 5, label %327
    i32 4, label %332
    i32 3, label %338
    i32 2, label %344
    i32 1, label %350
  ]

291:                                              ; preds = %._crit_edge1049
  %292 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 10
  %293 = load i8, ptr %292, align 1, !tbaa !5
  %294 = zext i8 %293 to i32
  %295 = shl nuw i32 %294, 24
  %296 = add i32 %295, %290
  br label %297

297:                                              ; preds = %291, %._crit_edge1049
  %.1805 = phi i32 [ %290, %._crit_edge1049 ], [ %296, %291 ]
  %298 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 9
  %299 = load i8, ptr %298, align 1, !tbaa !5
  %300 = zext i8 %299 to i32
  %301 = shl nuw nsw i32 %300, 16
  %302 = add i32 %301, %.1805
  br label %303

303:                                              ; preds = %297, %._crit_edge1049
  %.2806 = phi i32 [ %290, %._crit_edge1049 ], [ %302, %297 ]
  %304 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 8
  %305 = load i8, ptr %304, align 1, !tbaa !5
  %306 = zext i8 %305 to i32
  %307 = shl nuw nsw i32 %306, 8
  %308 = add i32 %307, %.2806
  br label %309

309:                                              ; preds = %303, %._crit_edge1049
  %.3807 = phi i32 [ %290, %._crit_edge1049 ], [ %308, %303 ]
  %310 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 7
  %311 = load i8, ptr %310, align 1, !tbaa !5
  %312 = zext i8 %311 to i32
  %313 = shl nuw i32 %312, 24
  %314 = add i32 %313, %.0823.lcssa
  br label %315

315:                                              ; preds = %309, %._crit_edge1049
  %.1824 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %314, %309 ]
  %.4808 = phi i32 [ %290, %._crit_edge1049 ], [ %.3807, %309 ]
  %316 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 6
  %317 = load i8, ptr %316, align 1, !tbaa !5
  %318 = zext i8 %317 to i32
  %319 = shl nuw nsw i32 %318, 16
  %320 = add i32 %319, %.1824
  br label %321

321:                                              ; preds = %315, %._crit_edge1049
  %.2825 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %320, %315 ]
  %.5809 = phi i32 [ %290, %._crit_edge1049 ], [ %.4808, %315 ]
  %322 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 5
  %323 = load i8, ptr %322, align 1, !tbaa !5
  %324 = zext i8 %323 to i32
  %325 = shl nuw nsw i32 %324, 8
  %326 = add i32 %325, %.2825
  br label %327

327:                                              ; preds = %321, %._crit_edge1049
  %.3826 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %326, %321 ]
  %.6810 = phi i32 [ %290, %._crit_edge1049 ], [ %.5809, %321 ]
  %328 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 4
  %329 = load i8, ptr %328, align 1, !tbaa !5
  %330 = zext i8 %329 to i32
  %331 = add i32 %.3826, %330
  br label %332

332:                                              ; preds = %327, %._crit_edge1049
  %.4827 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %331, %327 ]
  %.7811 = phi i32 [ %290, %._crit_edge1049 ], [ %.6810, %327 ]
  %333 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 3
  %334 = load i8, ptr %333, align 1, !tbaa !5
  %335 = zext i8 %334 to i32
  %336 = shl nuw i32 %335, 24
  %337 = add i32 %336, %.0816.lcssa
  br label %338

338:                                              ; preds = %332, %._crit_edge1049
  %.5828 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %.4827, %332 ]
  %.1817 = phi i32 [ %.0816.lcssa, %._crit_edge1049 ], [ %337, %332 ]
  %.8812 = phi i32 [ %290, %._crit_edge1049 ], [ %.7811, %332 ]
  %339 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 2
  %340 = load i8, ptr %339, align 1, !tbaa !5
  %341 = zext i8 %340 to i32
  %342 = shl nuw nsw i32 %341, 16
  %343 = add i32 %342, %.1817
  br label %344

344:                                              ; preds = %338, %._crit_edge1049
  %.6829 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %.5828, %338 ]
  %.2818 = phi i32 [ %.0816.lcssa, %._crit_edge1049 ], [ %343, %338 ]
  %.9813 = phi i32 [ %290, %._crit_edge1049 ], [ %.8812, %338 ]
  %345 = getelementptr inbounds i8, ptr %.0821.lcssa, i64 1
  %346 = load i8, ptr %345, align 1, !tbaa !5
  %347 = zext i8 %346 to i32
  %348 = shl nuw nsw i32 %347, 8
  %349 = add i32 %348, %.2818
  br label %350

350:                                              ; preds = %344, %._crit_edge1049
  %.7830 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %.6829, %344 ]
  %.3819 = phi i32 [ %.0816.lcssa, %._crit_edge1049 ], [ %349, %344 ]
  %.10814 = phi i32 [ %290, %._crit_edge1049 ], [ %.9813, %344 ]
  %351 = load i8, ptr %.0821.lcssa, align 1, !tbaa !5
  %352 = zext i8 %351 to i32
  %353 = add i32 %.3819, %352
  br label %354

354:                                              ; preds = %._crit_edge1049, %350
  %.8831 = phi i32 [ %.0823.lcssa, %._crit_edge1049 ], [ %.7830, %350 ]
  %.4820 = phi i32 [ %.0816.lcssa, %._crit_edge1049 ], [ %353, %350 ]
  %.11815 = phi i32 [ %290, %._crit_edge1049 ], [ %.10814, %350 ]
  %355 = add i32 %.8831, %.11815
  %356 = sub i32 %.4820, %355
  %357 = lshr i32 %.11815, 13
  %358 = xor i32 %356, %357
  %359 = add i32 %.11815, %358
  %360 = sub i32 %.8831, %359
  %361 = shl i32 %358, 8
  %362 = xor i32 %360, %361
  %363 = add i32 %358, %362
  %364 = sub i32 %.11815, %363
  %365 = lshr i32 %362, 13
  %366 = xor i32 %364, %365
  %367 = add i32 %362, %366
  %368 = sub i32 %358, %367
  %369 = lshr i32 %366, 12
  %370 = xor i32 %368, %369
  %371 = add i32 %366, %370
  %372 = sub i32 %362, %371
  %373 = shl i32 %370, 16
  %374 = xor i32 %372, %373
  %375 = add i32 %370, %374
  %376 = sub i32 %366, %375
  %377 = lshr i32 %374, 5
  %378 = xor i32 %376, %377
  %379 = add i32 %374, %378
  %380 = sub i32 %370, %379
  %381 = lshr i32 %378, 3
  %382 = xor i32 %380, %381
  %383 = add i32 %378, %382
  %384 = sub i32 %374, %383
  %385 = shl i32 %382, 10
  %386 = xor i32 %384, %385
  %387 = add i32 %382, %386
  %388 = sub i32 %378, %387
  %389 = lshr i32 %386, 15
  %390 = xor i32 %388, %389
  %391 = getelementptr inbounds i8, ptr %230, i64 16
  %392 = getelementptr inbounds i8, ptr %230, i64 68
  store i32 %390, ptr %392, align 4, !tbaa !41
  %393 = getelementptr inbounds i8, ptr %230, i64 56
  store ptr %42, ptr %393, align 8, !tbaa !43
  %394 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %42) #13
  %395 = trunc i64 %394 to i32
  %396 = getelementptr inbounds i8, ptr %230, i64 64
  store i32 %395, ptr %396, align 8, !tbaa !42
  %397 = load ptr, ptr %2, align 8, !tbaa !11
  %.not888 = icmp eq ptr %397, null
  br i1 %.not888, label %398, label %412

398:                                              ; preds = %354
  %399 = getelementptr inbounds i8, ptr %230, i64 24
  %400 = call noalias dereferenceable_or_null(64) ptr @malloc(i64 noundef 64) #14
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %399, i8 0, i64 16, i1 false)
  store ptr %400, ptr %391, align 8, !tbaa !31
  %.not889 = icmp eq ptr %400, null
  br i1 %.not889, label %401, label %402

401:                                              ; preds = %398
  call void @exit(i32 noundef -1) #15
  unreachable

402:                                              ; preds = %398
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %400, i8 0, i64 64, i1 false)
  %403 = load ptr, ptr %391, align 8, !tbaa !31
  %404 = getelementptr inbounds i8, ptr %403, i64 24
  store ptr %391, ptr %404, align 8, !tbaa !50
  %405 = getelementptr inbounds i8, ptr %403, i64 8
  store i32 32, ptr %405, align 8, !tbaa !34
  %406 = getelementptr inbounds i8, ptr %403, i64 12
  store i32 5, ptr %406, align 4, !tbaa !51
  %407 = getelementptr inbounds i8, ptr %403, i64 32
  store i64 16, ptr %407, align 8, !tbaa !40
  %408 = call noalias dereferenceable_or_null(512) ptr @malloc(i64 noundef 512) #14
  store ptr %408, ptr %403, align 8, !tbaa !37
  %409 = getelementptr inbounds i8, ptr %403, i64 56
  store i32 -1609490463, ptr %409, align 8, !tbaa !52
  %.not890 = icmp eq ptr %408, null
  br i1 %.not890, label %410, label %411

410:                                              ; preds = %402
  call void @exit(i32 noundef -1) #15
  unreachable

411:                                              ; preds = %402
  call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(512) %408, i8 0, i64 512, i1 false)
  store ptr %230, ptr %2, align 8, !tbaa !11
  br label %436

412:                                              ; preds = %354
  %413 = getelementptr inbounds i8, ptr %397, i64 16
  %414 = load ptr, ptr %413, align 8, !tbaa !31
  store ptr %414, ptr %391, align 8, !tbaa !31
  %415 = getelementptr inbounds i8, ptr %230, i64 32
  store ptr null, ptr %415, align 8, !tbaa !53
  %416 = load ptr, ptr %2, align 8, !tbaa !11
  %417 = getelementptr inbounds i8, ptr %416, i64 16
  %418 = load ptr, ptr %417, align 8, !tbaa !31
  %419 = getelementptr inbounds i8, ptr %418, i64 24
  %420 = load ptr, ptr %419, align 8, !tbaa !50
  %421 = getelementptr inbounds i8, ptr %418, i64 32
  %422 = load i64, ptr %421, align 8, !tbaa !40
  %423 = sub i64 0, %422
  %424 = getelementptr inbounds i8, ptr %420, i64 %423
  %425 = getelementptr inbounds i8, ptr %230, i64 24
  store ptr %424, ptr %425, align 8, !tbaa !54
  %426 = load ptr, ptr %2, align 8, !tbaa !11
  %427 = getelementptr inbounds i8, ptr %426, i64 16
  %428 = load ptr, ptr %427, align 8, !tbaa !31
  %429 = getelementptr inbounds i8, ptr %428, i64 24
  %430 = load ptr, ptr %429, align 8, !tbaa !50
  %431 = getelementptr inbounds i8, ptr %430, i64 16
  store ptr %230, ptr %431, align 8, !tbaa !55
  %432 = load ptr, ptr %2, align 8, !tbaa !11
  %433 = getelementptr inbounds i8, ptr %432, i64 16
  %434 = load ptr, ptr %433, align 8, !tbaa !31
  %435 = getelementptr inbounds i8, ptr %434, i64 24
  store ptr %391, ptr %435, align 8, !tbaa !50
  %.pre = load ptr, ptr %2, align 8, !tbaa !11
  br label %436

436:                                              ; preds = %411, %412
  %437 = phi ptr [ %230, %411 ], [ %.pre, %412 ]
  %438 = getelementptr inbounds i8, ptr %437, i64 16
  %439 = load ptr, ptr %438, align 8, !tbaa !31
  %440 = getelementptr inbounds i8, ptr %439, i64 16
  %441 = load i32, ptr %440, align 8, !tbaa !47
  %442 = add i32 %441, 1
  store i32 %442, ptr %440, align 8, !tbaa !47
  %443 = getelementptr inbounds i8, ptr %439, i64 8
  %444 = load i32, ptr %443, align 8, !tbaa !34
  %445 = add i32 %444, -1
  %446 = and i32 %445, %390
  %447 = load ptr, ptr %439, align 8, !tbaa !37
  %448 = zext i32 %446 to i64
  %449 = getelementptr inbounds %struct.UT_hash_bucket, ptr %447, i64 %448
  %450 = getelementptr inbounds i8, ptr %449, i64 8
  %451 = load i32, ptr %450, align 8, !tbaa !56
  %452 = add i32 %451, 1
  store i32 %452, ptr %450, align 8, !tbaa !56
  %453 = load ptr, ptr %449, align 8, !tbaa !38
  %454 = getelementptr inbounds i8, ptr %230, i64 48
  store ptr %453, ptr %454, align 8, !tbaa !44
  %455 = getelementptr inbounds i8, ptr %230, i64 40
  store ptr null, ptr %455, align 8, !tbaa !57
  %.not891 = icmp eq ptr %453, null
  br i1 %.not891, label %458, label %456

456:                                              ; preds = %436
  %457 = getelementptr inbounds i8, ptr %453, i64 24
  store ptr %391, ptr %457, align 8, !tbaa !58
  br label %458

458:                                              ; preds = %456, %436
  store ptr %391, ptr %449, align 8, !tbaa !38
  %459 = getelementptr inbounds i8, ptr %449, i64 12
  %460 = load i32, ptr %459, align 4, !tbaa !59
  %461 = mul i32 %460, 10
  %462 = add i32 %461, 10
  %.not892 = icmp ult i32 %452, %462
  br i1 %.not892, label %539, label %463

463:                                              ; preds = %458
  %464 = load ptr, ptr %391, align 8, !tbaa !31
  %465 = getelementptr inbounds i8, ptr %464, i64 52
  %466 = load i32, ptr %465, align 4, !tbaa !60
  %.not893 = icmp eq i32 %466, 0
  br i1 %.not893, label %467, label %539

467:                                              ; preds = %463
  %468 = getelementptr inbounds i8, ptr %464, i64 8
  %469 = load i32, ptr %468, align 8, !tbaa !34
  %470 = zext i32 %469 to i64
  %471 = shl nuw nsw i64 %470, 5
  %calloc = call ptr @calloc(i64 1, i64 %471)
  %.not894 = icmp eq ptr %calloc, null
  br i1 %.not894, label %472, label %473

472:                                              ; preds = %467
  call void @exit(i32 noundef -1) #15
  unreachable

473:                                              ; preds = %467
  %474 = load ptr, ptr %391, align 8, !tbaa !31
  %475 = getelementptr inbounds i8, ptr %474, i64 16
  %476 = load i32, ptr %475, align 8, !tbaa !47
  %477 = getelementptr inbounds i8, ptr %474, i64 12
  %478 = load i32, ptr %477, align 4, !tbaa !51
  %479 = add i32 %478, 1
  %480 = lshr i32 %476, %479
  %481 = getelementptr inbounds i8, ptr %474, i64 8
  %482 = load i32, ptr %481, align 8, !tbaa !34
  %483 = shl i32 %482, 1
  %484 = add i32 %483, -1
  %485 = and i32 %484, %476
  %.not895 = icmp ne i32 %485, 0
  %486 = zext i1 %.not895 to i32
  %487 = add i32 %480, %486
  %488 = getelementptr inbounds i8, ptr %474, i64 40
  store i32 %487, ptr %488, align 8, !tbaa !61
  %489 = getelementptr inbounds i8, ptr %474, i64 44
  store i32 0, ptr %489, align 4, !tbaa !62
  %.not1117 = icmp eq i32 %482, 0
  %.pre1140 = load ptr, ptr %474, align 8, !tbaa !37
  br i1 %.not1117, label %._crit_edge1063, label %.lr.ph1062

.lr.ph1062:                                       ; preds = %473
  %wide.trip.count = zext i32 %482 to i64
  br label %490

490:                                              ; preds = %.lr.ph1062, %._crit_edge1059
  %491 = phi i32 [ 0, %.lr.ph1062 ], [ %517, %._crit_edge1059 ]
  %indvars.iv = phi i64 [ 0, %.lr.ph1062 ], [ %indvars.iv.next, %._crit_edge1059 ]
  %492 = getelementptr inbounds %struct.UT_hash_bucket, ptr %.pre1140, i64 %indvars.iv
  %493 = load ptr, ptr %492, align 8, !tbaa !38
  %.not8961055 = icmp eq ptr %493, null
  br i1 %.not8961055, label %._crit_edge1059, label %.lr.ph1058

.lr.ph1058:                                       ; preds = %490, %516
  %494 = phi i32 [ %511, %516 ], [ %491, %490 ]
  %.08011056 = phi ptr [ %496, %516 ], [ %493, %490 ]
  %495 = getelementptr inbounds i8, ptr %.08011056, i64 32
  %496 = load ptr, ptr %495, align 8, !tbaa !63
  %497 = getelementptr inbounds i8, ptr %.08011056, i64 52
  %498 = load i32, ptr %497, align 4, !tbaa !64
  %499 = and i32 %498, %484
  %500 = zext i32 %499 to i64
  %501 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc, i64 %500
  %502 = getelementptr inbounds i8, ptr %501, i64 8
  %503 = load i32, ptr %502, align 8, !tbaa !56
  %504 = add i32 %503, 1
  store i32 %504, ptr %502, align 8, !tbaa !56
  %505 = icmp ugt i32 %504, %487
  br i1 %505, label %506, label %510

506:                                              ; preds = %.lr.ph1058
  %507 = add i32 %494, 1
  store i32 %507, ptr %489, align 4, !tbaa !62
  %508 = udiv i32 %504, %487
  %509 = getelementptr inbounds i8, ptr %501, i64 12
  store i32 %508, ptr %509, align 4, !tbaa !59
  br label %510

510:                                              ; preds = %506, %.lr.ph1058
  %511 = phi i32 [ %507, %506 ], [ %494, %.lr.ph1058 ]
  %512 = getelementptr inbounds i8, ptr %.08011056, i64 24
  store ptr null, ptr %512, align 8, !tbaa !58
  %513 = load ptr, ptr %501, align 8, !tbaa !38
  store ptr %513, ptr %495, align 8, !tbaa !63
  %.not897 = icmp eq ptr %513, null
  br i1 %.not897, label %516, label %514

514:                                              ; preds = %510
  %515 = getelementptr inbounds i8, ptr %513, i64 24
  store ptr %.08011056, ptr %515, align 8, !tbaa !58
  br label %516

516:                                              ; preds = %514, %510
  store ptr %.08011056, ptr %501, align 8, !tbaa !38
  %.not896 = icmp eq ptr %496, null
  br i1 %.not896, label %._crit_edge1059, label %.lr.ph1058, !llvm.loop !65

._crit_edge1059:                                  ; preds = %516, %490
  %517 = phi i32 [ %491, %490 ], [ %511, %516 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge1063, label %490, !llvm.loop !66

._crit_edge1063:                                  ; preds = %._crit_edge1059, %473
  call void @free(ptr noundef %.pre1140) #12
  %518 = load ptr, ptr %391, align 8, !tbaa !31
  %519 = getelementptr inbounds i8, ptr %518, i64 8
  %520 = load i32, ptr %519, align 8, !tbaa !34
  %521 = shl i32 %520, 1
  store i32 %521, ptr %519, align 8, !tbaa !34
  %522 = getelementptr inbounds i8, ptr %518, i64 12
  %523 = load i32, ptr %522, align 4, !tbaa !51
  %524 = add i32 %523, 1
  store i32 %524, ptr %522, align 4, !tbaa !51
  store ptr %calloc, ptr %518, align 8, !tbaa !37
  %525 = getelementptr inbounds i8, ptr %518, i64 44
  %526 = load i32, ptr %525, align 4, !tbaa !62
  %527 = getelementptr inbounds i8, ptr %518, i64 16
  %528 = load i32, ptr %527, align 8, !tbaa !47
  %529 = lshr i32 %528, 1
  %530 = icmp ugt i32 %526, %529
  %531 = getelementptr inbounds i8, ptr %518, i64 48
  br i1 %530, label %532, label %.thread900

.thread900:                                       ; preds = %._crit_edge1063
  store i32 0, ptr %531, align 8, !tbaa !67
  br label %539

532:                                              ; preds = %._crit_edge1063
  %533 = load i32, ptr %531, align 8, !tbaa !67
  %534 = add i32 %533, 1
  store i32 %534, ptr %531, align 8, !tbaa !67
  %535 = icmp ugt i32 %534, 1
  br i1 %535, label %536, label %539

536:                                              ; preds = %532
  %537 = getelementptr inbounds i8, ptr %518, i64 52
  store i32 1, ptr %537, align 4, !tbaa !60
  br label %539

538:                                              ; preds = %219
  call void @sdsfree(ptr noundef %42) #12
  br label %539

539:                                              ; preds = %.thread900, %458, %463, %532, %536, %538
  %.4743 = phi ptr [ %.17401039, %538 ], [ %230, %536 ], [ %230, %532 ], [ %230, %463 ], [ %230, %458 ], [ %230, %.thread900 ]
  %540 = getelementptr inbounds i8, ptr %.4743, i64 8
  %541 = load i16, ptr %540, align 8, !tbaa !48
  store i16 %541, ptr %11, align 8, !tbaa !17
  store i8 1, ptr %12, align 8, !tbaa !68
  %542 = call double @json_obj_getnum(ptr noundef nonnull %23, ptr noundef nonnull @.str.1)
  store double %542, ptr %13, align 8, !tbaa !69
  %543 = call double @json_obj_getnum(ptr noundef nonnull %23, ptr noundef nonnull @.str.2)
  store double %543, ptr %14, align 8, !tbaa !70
  br label %544

544:                                              ; preds = %34, %17, %31, %539
  call void %15(ptr noundef %1, ptr noundef nonnull byval(%struct.otl_MarkRecord) align 8 %5) #12
  call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) #12
  %545 = add i16 %.01064, 1
  %546 = zext i16 %545 to i32
  %547 = load i32, ptr %7, align 8, !tbaa !5
  %548 = icmp ugt i32 %547, %546
  br i1 %548, label %17, label %._crit_edge1067, !llvm.loop !71

549:                                              ; preds = %._crit_edge1067
  %550 = getelementptr inbounds i8, ptr %16, i64 16
  br label %.lr.ph1083

.preheader1024:                                   ; preds = %658
  %551 = shl i32 %.078110881211, 1
  %.not8651078 = icmp eq ptr %.2763.ph, null
  br i1 %.not8651078, label %.loopexit1025, label %.lr.ph1083

.lr.ph1083:                                       ; preds = %549, %.preheader1024
  %.078110881211 = phi i32 [ 1, %549 ], [ %551, %.preheader1024 ]
  %.076110891210 = phi ptr [ %550, %549 ], [ %.2763.ph, %.preheader1024 ]
  %.not1118 = icmp eq i32 %.078110881211, 0
  br label %552

.loopexit1023:                                    ; preds = %564
  %.not865 = icmp eq ptr %.2768, null
  br i1 %.not865, label %._crit_edge1084, label %552, !llvm.loop !72

552:                                              ; preds = %.lr.ph1083, %.loopexit1023
  %.07591082 = phi ptr [ null, %.lr.ph1083 ], [ %.1760, %.loopexit1023 ]
  %.17621081 = phi ptr [ null, %.lr.ph1083 ], [ %.2763.ph, %.loopexit1023 ]
  %.07701080 = phi ptr [ %.076110891210, %.lr.ph1083 ], [ %.2768, %.loopexit1023 ]
  %.07821079 = phi i32 [ 0, %.lr.ph1083 ], [ %553, %.loopexit1023 ]
  %553 = add i32 %.07821079, 1
  br i1 %.not1118, label %.thread901.preheader, label %.lr.ph1072

.lr.ph1072:                                       ; preds = %552, %557
  %.07661070 = phi ptr [ %563, %557 ], [ %.07701080, %552 ]
  %.07771069 = phi i32 [ %554, %557 ], [ 0, %552 ]
  %554 = add nuw i32 %.07771069, 1
  %555 = getelementptr inbounds i8, ptr %.07661070, i64 16
  %556 = load ptr, ptr %555, align 8, !tbaa !55
  %.not867 = icmp eq ptr %556, null
  br i1 %.not867, label %.thread901.preheader, label %557

557:                                              ; preds = %.lr.ph1072
  %558 = load ptr, ptr %2, align 8, !tbaa !11
  %559 = getelementptr inbounds i8, ptr %558, i64 16
  %560 = load ptr, ptr %559, align 8, !tbaa !31
  %561 = getelementptr inbounds i8, ptr %560, i64 32
  %562 = load i64, ptr %561, align 8, !tbaa !40
  %563 = getelementptr inbounds i8, ptr %556, i64 %562
  %exitcond1139.not = icmp eq i32 %554, %.078110881211
  br i1 %exitcond1139.not, label %.thread901.preheader, label %.lr.ph1072, !llvm.loop !73

.thread901.preheader:                             ; preds = %557, %.lr.ph1072, %552
  %.2779.ph = phi i32 [ 0, %552 ], [ %554, %.lr.ph1072 ], [ %.078110881211, %557 ]
  %.2768.ph = phi ptr [ %.07701080, %552 ], [ null, %.lr.ph1072 ], [ %563, %557 ]
  br label %.thread901.outer

.thread901.outer:                                 ; preds = %.thread901.outer.backedge, %.thread901.preheader
  %.2779.ph1217 = phi i32 [ %.2779.ph, %.thread901.preheader ], [ %.3780, %.thread901.outer.backedge ]
  %.0775.ph = phi i32 [ %.078110881211, %.thread901.preheader ], [ %.1776, %.thread901.outer.backedge ]
  %.1771.ph = phi ptr [ %.07701080, %.thread901.preheader ], [ %.4774, %.thread901.outer.backedge ]
  %.2768.ph1218 = phi ptr [ %.2768.ph, %.thread901.preheader ], [ %.3769, %.thread901.outer.backedge ]
  %.2763.ph = phi ptr [ %.17621081, %.thread901.preheader ], [ %.2763.ph.be, %.thread901.outer.backedge ]
  %.1760.ph = phi ptr [ %.07591082, %.thread901.preheader ], [ %.0765, %.thread901.outer.backedge ]
  br label %.thread901

.thread901:                                       ; preds = %.thread901.outer, %.thread902.thread
  %.2779 = phi i32 [ %.3780, %.thread902.thread ], [ %.2779.ph1217, %.thread901.outer ]
  %.0775 = phi i32 [ %.1776, %.thread902.thread ], [ %.0775.ph, %.thread901.outer ]
  %.1771 = phi ptr [ %.4774, %.thread902.thread ], [ %.1771.ph, %.thread901.outer ]
  %.2768 = phi ptr [ %.3769, %.thread902.thread ], [ %.2768.ph1218, %.thread901.outer ]
  %.1760 = phi ptr [ %.0765, %.thread902.thread ], [ %.1760.ph, %.thread901.outer ]
  %cond = icmp eq i32 %.2779, 0
  br i1 %cond, label %564, label %580

564:                                              ; preds = %.thread901
  %565 = icmp ne i32 %.0775, 0
  %566 = icmp ne ptr %.2768, null
  %567 = select i1 %565, i1 %566, i1 false
  br i1 %567, label %.critedge, label %.loopexit1023

.critedge:                                        ; preds = %564
  %568 = getelementptr inbounds i8, ptr %.2768, i64 16
  %569 = load ptr, ptr %568, align 8, !tbaa !55
  %.not874 = icmp eq ptr %569, null
  br i1 %.not874, label %577, label %570

570:                                              ; preds = %.critedge
  %571 = load ptr, ptr %2, align 8, !tbaa !11
  %572 = getelementptr inbounds i8, ptr %571, i64 16
  %573 = load ptr, ptr %572, align 8, !tbaa !31
  %574 = getelementptr inbounds i8, ptr %573, i64 32
  %575 = load i64, ptr %574, align 8, !tbaa !40
  %576 = getelementptr inbounds i8, ptr %569, i64 %575
  br label %577

577:                                              ; preds = %.critedge, %570
  %578 = phi ptr [ %576, %570 ], [ null, %.critedge ]
  %579 = add i32 %.0775, -1
  br label %633

580:                                              ; preds = %.thread901
  %581 = icmp eq i32 %.0775, 0
  %582 = icmp eq ptr %.2768, null
  %or.cond = select i1 %581, i1 true, i1 %582
  br i1 %or.cond, label %583, label %596

583:                                              ; preds = %580
  %.not872 = icmp eq ptr %.1771, null
  br i1 %.not872, label %594, label %584

584:                                              ; preds = %583
  %585 = getelementptr inbounds i8, ptr %.1771, i64 16
  %586 = load ptr, ptr %585, align 8, !tbaa !55
  %.not873 = icmp eq ptr %586, null
  br i1 %.not873, label %594, label %587

587:                                              ; preds = %584
  %588 = load ptr, ptr %2, align 8, !tbaa !11
  %589 = getelementptr inbounds i8, ptr %588, i64 16
  %590 = load ptr, ptr %589, align 8, !tbaa !31
  %591 = getelementptr inbounds i8, ptr %590, i64 32
  %592 = load i64, ptr %591, align 8, !tbaa !40
  %593 = getelementptr inbounds i8, ptr %586, i64 %592
  br label %594

594:                                              ; preds = %587, %584, %583
  %.2772 = phi ptr [ null, %583 ], [ %593, %587 ], [ null, %584 ]
  %595 = add i32 %.2779, -1
  br label %633

596:                                              ; preds = %580
  %597 = load ptr, ptr %2, align 8, !tbaa !11
  %598 = getelementptr inbounds i8, ptr %597, i64 16
  %599 = load ptr, ptr %598, align 8, !tbaa !31
  %600 = getelementptr inbounds i8, ptr %599, i64 32
  %601 = load i64, ptr %600, align 8, !tbaa !40
  %602 = sub i64 0, %601
  %603 = getelementptr inbounds i8, ptr %.1771, i64 %602
  %604 = getelementptr inbounds i8, ptr %.2768, i64 %602
  %605 = call i32 @compare_classHash(ptr noundef %603, ptr noundef %604)
  %606 = icmp slt i32 %605, 1
  br i1 %606, label %607, label %620

607:                                              ; preds = %596
  %.not870 = icmp eq ptr %.1771, null
  br i1 %.not870, label %618, label %608

608:                                              ; preds = %607
  %609 = getelementptr inbounds i8, ptr %.1771, i64 16
  %610 = load ptr, ptr %609, align 8, !tbaa !55
  %.not871 = icmp eq ptr %610, null
  br i1 %.not871, label %618, label %611

611:                                              ; preds = %608
  %612 = load ptr, ptr %2, align 8, !tbaa !11
  %613 = getelementptr inbounds i8, ptr %612, i64 16
  %614 = load ptr, ptr %613, align 8, !tbaa !31
  %615 = getelementptr inbounds i8, ptr %614, i64 32
  %616 = load i64, ptr %615, align 8, !tbaa !40
  %617 = getelementptr inbounds i8, ptr %610, i64 %616
  br label %618

618:                                              ; preds = %611, %608, %607
  %.3773 = phi ptr [ null, %607 ], [ %617, %611 ], [ null, %608 ]
  %619 = add i32 %.2779, -1
  br label %633

620:                                              ; preds = %596
  %621 = getelementptr inbounds i8, ptr %.2768, i64 16
  %622 = load ptr, ptr %621, align 8, !tbaa !55
  %.not869 = icmp eq ptr %622, null
  br i1 %.not869, label %630, label %623

623:                                              ; preds = %620
  %624 = load ptr, ptr %2, align 8, !tbaa !11
  %625 = getelementptr inbounds i8, ptr %624, i64 16
  %626 = load ptr, ptr %625, align 8, !tbaa !31
  %627 = getelementptr inbounds i8, ptr %626, i64 32
  %628 = load i64, ptr %627, align 8, !tbaa !40
  %629 = getelementptr inbounds i8, ptr %622, i64 %628
  br label %630

630:                                              ; preds = %620, %623
  %631 = phi ptr [ %629, %623 ], [ null, %620 ]
  %632 = add i32 %.0775, -1
  br label %633

633:                                              ; preds = %594, %630, %618, %577
  %.3780 = phi i32 [ 0, %577 ], [ %595, %594 ], [ %619, %618 ], [ %.2779, %630 ]
  %.1776 = phi i32 [ %579, %577 ], [ %.0775, %594 ], [ %.0775, %618 ], [ %632, %630 ]
  %.4774 = phi ptr [ %.1771, %577 ], [ %.2772, %594 ], [ %.3773, %618 ], [ %.1771, %630 ]
  %.3769 = phi ptr [ %578, %577 ], [ %.2768, %594 ], [ %.2768, %618 ], [ %631, %630 ]
  %.0765 = phi ptr [ %.2768, %577 ], [ %.1771, %594 ], [ %.1771, %618 ], [ %.2768, %630 ]
  %.not875 = icmp eq ptr %.1760, null
  %.not877 = icmp eq ptr %.0765, null
  br i1 %.not875, label %636, label %634

634:                                              ; preds = %633
  br i1 %.not877, label %.thread902.thread, label %637

.thread902.thread:                                ; preds = %634
  %635 = getelementptr inbounds i8, ptr %.1760, i64 16
  store ptr null, ptr %635, align 8, !tbaa !55
  br label %.thread901, !llvm.loop !74

636:                                              ; preds = %633
  br i1 %.not877, label %.thread901.outer.backedge, label %653

637:                                              ; preds = %634
  %638 = load ptr, ptr %2, align 8, !tbaa !11
  %639 = getelementptr inbounds i8, ptr %638, i64 16
  %640 = load ptr, ptr %639, align 8, !tbaa !31
  %641 = getelementptr inbounds i8, ptr %640, i64 32
  %642 = load i64, ptr %641, align 8, !tbaa !40
  %643 = sub i64 0, %642
  %644 = getelementptr inbounds i8, ptr %.0765, i64 %643
  %645 = getelementptr inbounds i8, ptr %.1760, i64 16
  store ptr %644, ptr %645, align 8, !tbaa !55
  %646 = load ptr, ptr %2, align 8, !tbaa !11
  %647 = getelementptr inbounds i8, ptr %646, i64 16
  %648 = load ptr, ptr %647, align 8, !tbaa !31
  %649 = getelementptr inbounds i8, ptr %648, i64 32
  %650 = load i64, ptr %649, align 8, !tbaa !40
  %651 = sub i64 0, %650
  %652 = getelementptr inbounds i8, ptr %.1760, i64 %651
  br label %653

653:                                              ; preds = %636, %637
  %.3764905910 = phi ptr [ %.2763.ph, %637 ], [ %.0765, %636 ]
  %654 = phi ptr [ %652, %637 ], [ null, %636 ]
  %655 = getelementptr inbounds i8, ptr %.0765, i64 8
  store ptr %654, ptr %655, align 8, !tbaa !75
  br label %.thread901.outer.backedge

.thread901.outer.backedge:                        ; preds = %653, %636
  %.2763.ph.be = phi ptr [ null, %636 ], [ %.3764905910, %653 ]
  br label %.thread901.outer, !llvm.loop !74

._crit_edge1084:                                  ; preds = %.loopexit1023
  %.not866 = icmp eq ptr %.1760, null
  br i1 %.not866, label %658, label %656

656:                                              ; preds = %._crit_edge1084
  %657 = getelementptr inbounds i8, ptr %.1760, i64 16
  store ptr null, ptr %657, align 8, !tbaa !55
  br label %658

658:                                              ; preds = %656, %._crit_edge1084
  %.0759.lcssa1154 = phi ptr [ %.1760, %656 ], [ null, %._crit_edge1084 ]
  %659 = icmp ult i32 %553, 2
  br i1 %659, label %.loopexit1025, label %.preheader1024

.loopexit1025:                                    ; preds = %.preheader1024, %658
  %.1762.lcssa11531160 = phi ptr [ %.2763.ph, %658 ], [ null, %.preheader1024 ]
  %.0759.lcssa11541159 = phi ptr [ %.0759.lcssa1154, %658 ], [ null, %.preheader1024 ]
  %660 = load ptr, ptr %2, align 8, !tbaa !11
  %661 = getelementptr inbounds i8, ptr %660, i64 16
  %662 = load ptr, ptr %661, align 8, !tbaa !31
  %663 = getelementptr inbounds i8, ptr %662, i64 24
  store ptr %.0759.lcssa11541159, ptr %663, align 8, !tbaa !50
  %664 = load ptr, ptr %2, align 8, !tbaa !11
  %665 = getelementptr inbounds i8, ptr %664, i64 16
  %666 = load ptr, ptr %665, align 8, !tbaa !31
  %667 = getelementptr inbounds i8, ptr %666, i64 32
  %668 = load i64, ptr %667, align 8, !tbaa !40
  %669 = sub i64 0, %668
  %670 = getelementptr inbounds i8, ptr %.1762.lcssa11531160, i64 %669
  store ptr %670, ptr %2, align 8, !tbaa !11
  %.not8591091 = icmp eq ptr %.1762.lcssa11531160, null
  br i1 %.not8591091, label %.preheader, label %.lr.ph1095

.preheader:                                       ; preds = %.lr.ph1095, %._crit_edge1067, %.loopexit1025
  %671 = load i64, ptr %1, align 8, !tbaa !76
  %.not1119 = icmp eq i64 %671, 0
  br i1 %.not1119, label %._crit_edge1115, label %.lr.ph1114

.lr.ph1114:                                       ; preds = %.preheader
  %672 = getelementptr inbounds i8, ptr %1, i64 16
  %673 = getelementptr inbounds i8, ptr %0, i64 24
  br label %677

.lr.ph1095:                                       ; preds = %.loopexit1025, %.lr.ph1095
  %.07571093 = phi ptr [ %.0757, %.lr.ph1095 ], [ %670, %.loopexit1025 ]
  %.07581092 = phi i16 [ %675, %.lr.ph1095 ], [ 0, %.loopexit1025 ]
  %674 = getelementptr inbounds i8, ptr %.07571093, i64 8
  store i16 %.07581092, ptr %674, align 8, !tbaa !48
  %675 = add i16 %.07581092, 1
  %676 = getelementptr inbounds i8, ptr %.07571093, i64 32
  %.0757 = load ptr, ptr %676, align 8, !tbaa !11
  %.not859 = icmp eq ptr %.0757, null
  br i1 %.not859, label %.preheader, label %.lr.ph1095, !llvm.loop !78

._crit_edge1115:                                  ; preds = %887, %.preheader
  ret void

677:                                              ; preds = %.lr.ph1114, %887
  %678 = phi i64 [ %671, %.lr.ph1114 ], [ %888, %887 ]
  %679 = phi i64 [ 0, %.lr.ph1114 ], [ %890, %887 ]
  %.07561113 = phi i16 [ 0, %.lr.ph1114 ], [ %889, %887 ]
  %680 = load ptr, ptr %672, align 8, !tbaa !79
  %681 = getelementptr inbounds %struct.otl_MarkRecord, ptr %680, i64 %679, i32 2
  %682 = load i8, ptr %681, align 8, !tbaa !68, !range !80, !noundef !81
  %683 = trunc nuw i8 %682 to i1
  br i1 %683, label %684, label %887

684:                                              ; preds = %677
  %685 = load ptr, ptr %673, align 8, !tbaa !5
  %686 = getelementptr inbounds %struct._json_object_entry, ptr %685, i64 %679, i32 2
  %687 = load ptr, ptr %686, align 8, !tbaa !15
  %688 = call ptr @json_obj_get_type(ptr noundef %687, ptr noundef nonnull @.str, i32 noundef 5)
  %689 = getelementptr inbounds i8, ptr %688, i64 16
  %690 = getelementptr inbounds i8, ptr %688, i64 24
  %691 = load ptr, ptr %690, align 8, !tbaa !5
  %692 = load i32, ptr %689, align 8, !tbaa !5
  %693 = zext i32 %692 to i64
  %694 = call ptr @sdsnewlen(ptr noundef %691, i64 noundef %693) #12
  %695 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %694) #13
  %696 = trunc i64 %695 to i32
  %697 = icmp ugt i32 %696, 11
  br i1 %697, label %.lr.ph1102, label %._crit_edge1103

.lr.ph1102:                                       ; preds = %684, %.lr.ph1102
  %.07181100 = phi ptr [ %741, %.lr.ph1102 ], [ %694, %684 ]
  %.07191099 = phi i32 [ %742, %.lr.ph1102 ], [ %696, %684 ]
  %.07201098 = phi i32 [ %736, %.lr.ph1102 ], [ -1640531527, %684 ]
  %.07211097 = phi i32 [ %732, %.lr.ph1102 ], [ -1640531527, %684 ]
  %.07261096 = phi i32 [ %740, %.lr.ph1102 ], [ -17973521, %684 ]
  %698 = load i32, ptr %.07181100, align 1
  %699 = getelementptr inbounds i8, ptr %.07181100, i64 4
  %700 = load i32, ptr %699, align 1
  %701 = add i32 %700, %.07201098
  %702 = getelementptr inbounds i8, ptr %.07181100, i64 8
  %703 = load i32, ptr %702, align 1
  %704 = add i32 %703, %.07261096
  %.neg934 = add i32 %698, %.07211097
  %705 = add i32 %701, %704
  %706 = sub i32 %.neg934, %705
  %707 = lshr i32 %704, 13
  %708 = xor i32 %706, %707
  %709 = add i32 %704, %708
  %710 = sub i32 %701, %709
  %711 = shl i32 %708, 8
  %712 = xor i32 %710, %711
  %713 = add i32 %708, %712
  %714 = sub i32 %704, %713
  %715 = lshr i32 %712, 13
  %716 = xor i32 %714, %715
  %717 = add i32 %712, %716
  %718 = sub i32 %708, %717
  %719 = lshr i32 %716, 12
  %720 = xor i32 %718, %719
  %721 = add i32 %716, %720
  %722 = sub i32 %712, %721
  %723 = shl i32 %720, 16
  %724 = xor i32 %722, %723
  %725 = add i32 %720, %724
  %726 = sub i32 %716, %725
  %727 = lshr i32 %724, 5
  %728 = xor i32 %726, %727
  %729 = add i32 %724, %728
  %730 = sub i32 %720, %729
  %731 = lshr i32 %728, 3
  %732 = xor i32 %730, %731
  %733 = add i32 %728, %732
  %734 = sub i32 %724, %733
  %735 = shl i32 %732, 10
  %736 = xor i32 %734, %735
  %737 = add i32 %732, %736
  %738 = sub i32 %728, %737
  %739 = lshr i32 %736, 15
  %740 = xor i32 %738, %739
  %741 = getelementptr inbounds i8, ptr %.07181100, i64 12
  %742 = add i32 %.07191099, -12
  %743 = icmp ugt i32 %742, 11
  br i1 %743, label %.lr.ph1102, label %._crit_edge1103, !llvm.loop !82

._crit_edge1103:                                  ; preds = %.lr.ph1102, %684
  %.0726.lcssa = phi i32 [ -17973521, %684 ], [ %740, %.lr.ph1102 ]
  %.0721.lcssa = phi i32 [ -1640531527, %684 ], [ %732, %.lr.ph1102 ]
  %.0720.lcssa = phi i32 [ -1640531527, %684 ], [ %736, %.lr.ph1102 ]
  %.0719.lcssa = phi i32 [ %696, %684 ], [ %742, %.lr.ph1102 ]
  %.0718.lcssa = phi ptr [ %694, %684 ], [ %741, %.lr.ph1102 ]
  %744 = add i32 %.0726.lcssa, %696
  switch i32 %.0719.lcssa, label %808 [
    i32 11, label %745
    i32 10, label %751
    i32 9, label %757
    i32 8, label %763
    i32 7, label %769
    i32 6, label %775
    i32 5, label %781
    i32 4, label %786
    i32 3, label %792
    i32 2, label %798
    i32 1, label %804
  ]

745:                                              ; preds = %._crit_edge1103
  %746 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 10
  %747 = load i8, ptr %746, align 1, !tbaa !5
  %748 = zext i8 %747 to i32
  %749 = shl nuw i32 %748, 24
  %750 = add i32 %749, %744
  br label %751

751:                                              ; preds = %745, %._crit_edge1103
  %.1727 = phi i32 [ %744, %._crit_edge1103 ], [ %750, %745 ]
  %752 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 9
  %753 = load i8, ptr %752, align 1, !tbaa !5
  %754 = zext i8 %753 to i32
  %755 = shl nuw nsw i32 %754, 16
  %756 = add i32 %755, %.1727
  br label %757

757:                                              ; preds = %751, %._crit_edge1103
  %.2728 = phi i32 [ %744, %._crit_edge1103 ], [ %756, %751 ]
  %758 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 8
  %759 = load i8, ptr %758, align 1, !tbaa !5
  %760 = zext i8 %759 to i32
  %761 = shl nuw nsw i32 %760, 8
  %762 = add i32 %761, %.2728
  br label %763

763:                                              ; preds = %757, %._crit_edge1103
  %.3729 = phi i32 [ %744, %._crit_edge1103 ], [ %762, %757 ]
  %764 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 7
  %765 = load i8, ptr %764, align 1, !tbaa !5
  %766 = zext i8 %765 to i32
  %767 = shl nuw i32 %766, 24
  %768 = add i32 %767, %.0720.lcssa
  br label %769

769:                                              ; preds = %763, %._crit_edge1103
  %.4730 = phi i32 [ %744, %._crit_edge1103 ], [ %.3729, %763 ]
  %.1 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %768, %763 ]
  %770 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 6
  %771 = load i8, ptr %770, align 1, !tbaa !5
  %772 = zext i8 %771 to i32
  %773 = shl nuw nsw i32 %772, 16
  %774 = add i32 %773, %.1
  br label %775

775:                                              ; preds = %769, %._crit_edge1103
  %.5731 = phi i32 [ %744, %._crit_edge1103 ], [ %.4730, %769 ]
  %.2 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %774, %769 ]
  %776 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 5
  %777 = load i8, ptr %776, align 1, !tbaa !5
  %778 = zext i8 %777 to i32
  %779 = shl nuw nsw i32 %778, 8
  %780 = add i32 %779, %.2
  br label %781

781:                                              ; preds = %775, %._crit_edge1103
  %.6732 = phi i32 [ %744, %._crit_edge1103 ], [ %.5731, %775 ]
  %.3 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %780, %775 ]
  %782 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 4
  %783 = load i8, ptr %782, align 1, !tbaa !5
  %784 = zext i8 %783 to i32
  %785 = add i32 %.3, %784
  br label %786

786:                                              ; preds = %781, %._crit_edge1103
  %.7733 = phi i32 [ %744, %._crit_edge1103 ], [ %.6732, %781 ]
  %.4 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %785, %781 ]
  %787 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 3
  %788 = load i8, ptr %787, align 1, !tbaa !5
  %789 = zext i8 %788 to i32
  %790 = shl nuw i32 %789, 24
  %791 = add i32 %790, %.0721.lcssa
  br label %792

792:                                              ; preds = %786, %._crit_edge1103
  %.8734 = phi i32 [ %744, %._crit_edge1103 ], [ %.7733, %786 ]
  %.1722 = phi i32 [ %.0721.lcssa, %._crit_edge1103 ], [ %791, %786 ]
  %.5 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %.4, %786 ]
  %793 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 2
  %794 = load i8, ptr %793, align 1, !tbaa !5
  %795 = zext i8 %794 to i32
  %796 = shl nuw nsw i32 %795, 16
  %797 = add i32 %796, %.1722
  br label %798

798:                                              ; preds = %792, %._crit_edge1103
  %.9 = phi i32 [ %744, %._crit_edge1103 ], [ %.8734, %792 ]
  %.2723 = phi i32 [ %.0721.lcssa, %._crit_edge1103 ], [ %797, %792 ]
  %.6 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %.5, %792 ]
  %799 = getelementptr inbounds i8, ptr %.0718.lcssa, i64 1
  %800 = load i8, ptr %799, align 1, !tbaa !5
  %801 = zext i8 %800 to i32
  %802 = shl nuw nsw i32 %801, 8
  %803 = add i32 %802, %.2723
  br label %804

804:                                              ; preds = %798, %._crit_edge1103
  %.10 = phi i32 [ %744, %._crit_edge1103 ], [ %.9, %798 ]
  %.3724 = phi i32 [ %.0721.lcssa, %._crit_edge1103 ], [ %803, %798 ]
  %.7 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %.6, %798 ]
  %805 = load i8, ptr %.0718.lcssa, align 1, !tbaa !5
  %806 = zext i8 %805 to i32
  %807 = add i32 %.3724, %806
  br label %808

808:                                              ; preds = %._crit_edge1103, %804
  %.11 = phi i32 [ %744, %._crit_edge1103 ], [ %.10, %804 ]
  %.4725 = phi i32 [ %.0721.lcssa, %._crit_edge1103 ], [ %807, %804 ]
  %.8 = phi i32 [ %.0720.lcssa, %._crit_edge1103 ], [ %.7, %804 ]
  %809 = add i32 %.11, %.8
  %810 = sub i32 %.4725, %809
  %811 = lshr i32 %.11, 13
  %812 = xor i32 %810, %811
  %813 = add i32 %.11, %812
  %814 = sub i32 %.8, %813
  %815 = shl i32 %812, 8
  %816 = xor i32 %814, %815
  %817 = add i32 %812, %816
  %818 = sub i32 %.11, %817
  %819 = lshr i32 %816, 13
  %820 = xor i32 %818, %819
  %821 = add i32 %816, %820
  %822 = sub i32 %812, %821
  %823 = lshr i32 %820, 12
  %824 = xor i32 %822, %823
  %825 = add i32 %820, %824
  %826 = sub i32 %816, %825
  %827 = shl i32 %824, 16
  %828 = xor i32 %826, %827
  %829 = add i32 %824, %828
  %830 = sub i32 %820, %829
  %831 = lshr i32 %828, 5
  %832 = xor i32 %830, %831
  %833 = add i32 %828, %832
  %834 = sub i32 %824, %833
  %835 = lshr i32 %832, 3
  %836 = xor i32 %834, %835
  %837 = add i32 %832, %836
  %838 = sub i32 %828, %837
  %839 = shl i32 %836, 10
  %840 = xor i32 %838, %839
  %841 = add i32 %836, %840
  %842 = sub i32 %832, %841
  %843 = lshr i32 %840, 15
  %844 = xor i32 %842, %843
  %845 = load ptr, ptr %2, align 8, !tbaa !11
  %.not860 = icmp eq ptr %845, null
  br i1 %.not860, label %.loopexit, label %846

846:                                              ; preds = %808
  %847 = getelementptr inbounds i8, ptr %845, i64 16
  %848 = load ptr, ptr %847, align 8, !tbaa !31
  %849 = getelementptr inbounds i8, ptr %848, i64 8
  %850 = load i32, ptr %849, align 8, !tbaa !34
  %851 = add i32 %850, -1
  %852 = and i32 %851, %844
  %853 = load ptr, ptr %848, align 8, !tbaa !37
  %854 = zext i32 %852 to i64
  %855 = getelementptr inbounds %struct.UT_hash_bucket, ptr %853, i64 %854
  %856 = load ptr, ptr %855, align 8, !tbaa !38
  %.not861 = icmp eq ptr %856, null
  br i1 %.not861, label %.loopexit, label %.lr.ph1112

.lr.ph1112:                                       ; preds = %846
  %857 = getelementptr inbounds i8, ptr %848, i64 32
  %858 = load i64, ptr %857, align 8, !tbaa !40
  %859 = sub i64 0, %858
  %860 = getelementptr inbounds i8, ptr %856, i64 %859
  %861 = and i64 %695, 4294967295
  %862 = getelementptr inbounds i8, ptr %848, i64 32
  br label %863

863:                                              ; preds = %878, %.lr.ph1112
  %.17361110 = phi ptr [ %860, %.lr.ph1112 ], [ %881, %878 ]
  %864 = getelementptr inbounds i8, ptr %.17361110, i64 68
  %865 = load i32, ptr %864, align 4, !tbaa !41
  %866 = icmp eq i32 %865, %844
  br i1 %866, label %867, label %875

867:                                              ; preds = %863
  %868 = getelementptr inbounds i8, ptr %.17361110, i64 64
  %869 = load i32, ptr %868, align 8, !tbaa !42
  %870 = icmp eq i32 %869, %696
  br i1 %870, label %871, label %875

871:                                              ; preds = %867
  %872 = getelementptr inbounds i8, ptr %.17361110, i64 56
  %873 = load ptr, ptr %872, align 8, !tbaa !43
  %bcmp = call i32 @bcmp(ptr %873, ptr %694, i64 %861)
  %874 = icmp eq i32 %bcmp, 0
  br i1 %874, label %882, label %875

875:                                              ; preds = %871, %867, %863
  %876 = getelementptr inbounds i8, ptr %.17361110, i64 48
  %877 = load ptr, ptr %876, align 8, !tbaa !44
  %.not863 = icmp eq ptr %877, null
  br i1 %.not863, label %.loopexit, label %878

878:                                              ; preds = %875
  %879 = load i64, ptr %862, align 8, !tbaa !40
  %880 = sub i64 0, %879
  %881 = getelementptr inbounds i8, ptr %877, i64 %880
  br label %863, !llvm.loop !83

882:                                              ; preds = %871
  %883 = getelementptr inbounds i8, ptr %.17361110, i64 8
  %884 = load i16, ptr %883, align 8, !tbaa !48
  br label %.loopexit

.loopexit:                                        ; preds = %875, %808, %846, %882
  %.sink = phi i16 [ %884, %882 ], [ 0, %846 ], [ 0, %808 ], [ 0, %875 ]
  %885 = load ptr, ptr %672, align 8, !tbaa !79
  %886 = getelementptr inbounds %struct.otl_MarkRecord, ptr %885, i64 %679, i32 1
  store i16 %.sink, ptr %886, align 8, !tbaa !17
  call void @sdsfree(ptr noundef %694) #12
  %.pre1142 = load i64, ptr %1, align 8, !tbaa !76
  br label %887

887:                                              ; preds = %677, %.loopexit
  %888 = phi i64 [ %678, %677 ], [ %.pre1142, %.loopexit ]
  %889 = add i16 %.07561113, 1
  %890 = zext i16 %889 to i64
  %891 = icmp ugt i64 %888, %890
  br i1 %891, label %677, label %._crit_edge1115, !llvm.loop !84
}

declare ptr @sdsnewlen(ptr noundef, i64 noundef) local_unnamed_addr #2

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden ptr @json_obj_get_type(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #4

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: read)
declare i64 @strlen(ptr nocapture noundef) local_unnamed_addr #5

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

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

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

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

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

declare void @sdsfree(ptr noundef) local_unnamed_addr #2

; Function Attrs: inlinehint nounwind uwtable
declare hidden double @json_obj_getnum(ptr noundef, ptr noundef) local_unnamed_addr #4

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

; Function Attrs: nounwind uwtable
declare dso_local void @otl_anchor_absent(ptr dead_on_unwind noalias writable sret(%struct.otl_Anchor) align 8) local_unnamed_addr #1

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

; 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 #11

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"omnipotent char", !7, i64 0}
!7 = !{!"Simple C/C++ TBAA"}
!8 = !{!9, !10, i64 72}
!9 = !{!"otfcc_HandlePackage", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !10, i64 48, !10, i64 56, !10, i64 64, !10, i64 72, !10, i64 80, !10, i64 88}
!10 = !{!"any pointer", !6, i64 0}
!11 = !{!10, !10, i64 0}
!12 = !{!13, !10, i64 0}
!13 = !{!"_json_object_entry", !10, i64 0, !14, i64 8, !10, i64 16}
!14 = !{!"int", !6, i64 0}
!15 = !{!13, !10, i64 16}
!16 = !{!13, !14, i64 8}
!17 = !{!18, !20, i64 16}
!18 = !{!"", !19, i64 0, !20, i64 16, !21, i64 24}
!19 = !{!"otfcc_Handle", !14, i64 0, !20, i64 4, !10, i64 8}
!20 = !{!"short", !6, i64 0}
!21 = !{!"", !22, i64 0, !23, i64 8, !23, i64 16}
!22 = !{!"_Bool", !6, i64 0}
!23 = !{!"double", !6, i64 0}
!24 = !{i64 0, i64 1, !25, i64 8, i64 8, !26, i64 16, i64 8, !26}
!25 = !{!22, !22, i64 0}
!26 = !{!23, !23, i64 0}
!27 = !{!28, !14, i64 8}
!28 = !{!"_json_value", !10, i64 0, !14, i64 8, !6, i64 16, !6, i64 32}
!29 = distinct !{!29, !30}
!30 = !{!"llvm.loop.mustprogress"}
!31 = !{!32, !10, i64 16}
!32 = !{!"", !10, i64 0, !20, i64 8, !33, i64 16}
!33 = !{!"UT_hash_handle", !10, i64 0, !10, i64 8, !10, i64 16, !10, i64 24, !10, i64 32, !10, i64 40, !14, i64 48, !14, i64 52}
!34 = !{!35, !14, i64 8}
!35 = !{!"UT_hash_table", !10, i64 0, !14, i64 8, !14, i64 12, !14, i64 16, !10, i64 24, !36, i64 32, !14, i64 40, !14, i64 44, !14, i64 48, !14, i64 52, !14, i64 56}
!36 = !{!"long", !6, i64 0}
!37 = !{!35, !10, i64 0}
!38 = !{!39, !10, i64 0}
!39 = !{!"UT_hash_bucket", !10, i64 0, !14, i64 8, !14, i64 12}
!40 = !{!35, !36, i64 32}
!41 = !{!32, !14, i64 68}
!42 = !{!32, !14, i64 64}
!43 = !{!32, !10, i64 56}
!44 = !{!32, !10, i64 48}
!45 = distinct !{!45, !30}
!46 = !{!32, !10, i64 0}
!47 = !{!35, !14, i64 16}
!48 = !{!32, !20, i64 8}
!49 = distinct !{!49, !30}
!50 = !{!35, !10, i64 24}
!51 = !{!35, !14, i64 12}
!52 = !{!35, !14, i64 56}
!53 = !{!32, !10, i64 32}
!54 = !{!32, !10, i64 24}
!55 = !{!33, !10, i64 16}
!56 = !{!39, !14, i64 8}
!57 = !{!32, !10, i64 40}
!58 = !{!33, !10, i64 24}
!59 = !{!39, !14, i64 12}
!60 = !{!35, !14, i64 52}
!61 = !{!35, !14, i64 40}
!62 = !{!35, !14, i64 44}
!63 = !{!33, !10, i64 32}
!64 = !{!33, !14, i64 52}
!65 = distinct !{!65, !30}
!66 = distinct !{!66, !30}
!67 = !{!35, !14, i64 48}
!68 = !{!18, !22, i64 24}
!69 = !{!18, !23, i64 32}
!70 = !{!18, !23, i64 40}
!71 = distinct !{!71, !30}
!72 = distinct !{!72, !30}
!73 = distinct !{!73, !30}
!74 = distinct !{!74, !30}
!75 = !{!33, !10, i64 8}
!76 = !{!77, !36, i64 0}
!77 = !{!"", !36, i64 0, !36, i64 8, !10, i64 16}
!78 = distinct !{!78, !30}
!79 = !{!77, !10, i64 16}
!80 = !{i8 0, i8 2}
!81 = !{}
!82 = distinct !{!82, !30}
!83 = distinct !{!83, !30}
!84 = distinct !{!84, !30}


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