; LLVM IR from LamberttLiu/CS-Basic-SelfLearning :: 【DSA】数据结构与算法（C语言版本）/src/search/uthash (example)

; 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.my_struct = type { i32, [21 x i8], %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 }

@users = external dso_local global ptr, align 8

; Function Attrs: nounwind uwtable
define dso_local void @add_user(i32 noundef %0, ptr noundef %1) #0 {
  %3 = alloca i32, align 4
  %4 = alloca ptr, align 8
  %5 = alloca ptr, align 8
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca ptr, align 8
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca ptr, align 8
  %17 = alloca i32, align 4
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca ptr, align 8
  %22 = alloca ptr, align 8
  %23 = alloca ptr, align 8
  %24 = alloca ptr, align 8
  store i32 %0, ptr %3, align 4, !tbaa !5
  store ptr %1, ptr %4, align 8, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %5) #7
  br label %25

25:                                               ; preds = %2
  store ptr null, ptr %5, align 8, !tbaa !9
  %26 = load ptr, ptr @users, align 8, !tbaa !9
  %27 = icmp ne ptr %26, null
  br i1 %27, label %28, label %503

28:                                               ; preds = %25
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #7
  br label %29

29:                                               ; preds = %28
  br label %30

30:                                               ; preds = %29
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #7
  store ptr %3, ptr %10, align 8, !tbaa !9
  store i32 -17973521, ptr %6, align 4, !tbaa !5
  store i32 -1640531527, ptr %8, align 4, !tbaa !5
  store i32 -1640531527, ptr %7, align 4, !tbaa !5
  store i32 4, ptr %9, align 4, !tbaa !5
  br label %31

31:                                               ; preds = %199, %30
  %32 = load i32, ptr %9, align 4, !tbaa !5
  %33 = icmp uge i32 %32, 12
  br i1 %33, label %34, label %204

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

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

198:                                              ; preds = %107
  br label %199

199:                                              ; preds = %198
  %200 = load ptr, ptr %10, align 8, !tbaa !9
  %201 = getelementptr inbounds i8, ptr %200, i64 12
  store ptr %201, ptr %10, align 8, !tbaa !9
  %202 = load i32, ptr %9, align 4, !tbaa !5
  %203 = sub i32 %202, 12
  store i32 %203, ptr %9, align 4, !tbaa !5
  br label %31, !llvm.loop !12

204:                                              ; preds = %31
  %205 = load i32, ptr %6, align 4, !tbaa !5
  %206 = add i32 %205, 4
  store i32 %206, ptr %6, align 4, !tbaa !5
  %207 = load i32, ptr %9, align 4, !tbaa !5
  switch i32 %207, label %294 [
    i32 11, label %208
    i32 10, label %216
    i32 9, label %224
    i32 8, label %232
    i32 7, label %240
    i32 6, label %248
    i32 5, label %256
    i32 4, label %263
    i32 3, label %271
    i32 2, label %279
    i32 1, label %287
  ]

208:                                              ; preds = %204
  %209 = load ptr, ptr %10, align 8, !tbaa !9
  %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, 24
  %214 = load i32, ptr %6, align 4, !tbaa !5
  %215 = add i32 %214, %213
  store i32 %215, ptr %6, align 4, !tbaa !5
  br label %216

216:                                              ; preds = %208, %204
  %217 = load ptr, ptr %10, align 8, !tbaa !9
  %218 = getelementptr inbounds i8, ptr %217, i64 9
  %219 = load i8, ptr %218, align 1, !tbaa !11
  %220 = zext i8 %219 to i32
  %221 = shl i32 %220, 16
  %222 = load i32, ptr %6, align 4, !tbaa !5
  %223 = add i32 %222, %221
  store i32 %223, ptr %6, align 4, !tbaa !5
  br label %224

224:                                              ; preds = %216, %204
  %225 = load ptr, ptr %10, align 8, !tbaa !9
  %226 = getelementptr inbounds i8, ptr %225, i64 8
  %227 = load i8, ptr %226, align 1, !tbaa !11
  %228 = zext i8 %227 to i32
  %229 = shl i32 %228, 8
  %230 = load i32, ptr %6, align 4, !tbaa !5
  %231 = add i32 %230, %229
  store i32 %231, ptr %6, align 4, !tbaa !5
  br label %232

232:                                              ; preds = %224, %204
  %233 = load ptr, ptr %10, align 8, !tbaa !9
  %234 = getelementptr inbounds i8, ptr %233, i64 7
  %235 = load i8, ptr %234, align 1, !tbaa !11
  %236 = zext i8 %235 to i32
  %237 = shl i32 %236, 24
  %238 = load i32, ptr %8, align 4, !tbaa !5
  %239 = add i32 %238, %237
  store i32 %239, ptr %8, align 4, !tbaa !5
  br label %240

240:                                              ; preds = %232, %204
  %241 = load ptr, ptr %10, align 8, !tbaa !9
  %242 = getelementptr inbounds i8, ptr %241, i64 6
  %243 = load i8, ptr %242, align 1, !tbaa !11
  %244 = zext i8 %243 to i32
  %245 = shl i32 %244, 16
  %246 = load i32, ptr %8, align 4, !tbaa !5
  %247 = add i32 %246, %245
  store i32 %247, ptr %8, align 4, !tbaa !5
  br label %248

248:                                              ; preds = %240, %204
  %249 = load ptr, ptr %10, align 8, !tbaa !9
  %250 = getelementptr inbounds i8, ptr %249, i64 5
  %251 = load i8, ptr %250, align 1, !tbaa !11
  %252 = zext i8 %251 to i32
  %253 = shl i32 %252, 8
  %254 = load i32, ptr %8, align 4, !tbaa !5
  %255 = add i32 %254, %253
  store i32 %255, ptr %8, align 4, !tbaa !5
  br label %256

256:                                              ; preds = %248, %204
  %257 = load ptr, ptr %10, align 8, !tbaa !9
  %258 = getelementptr inbounds i8, ptr %257, i64 4
  %259 = load i8, ptr %258, align 1, !tbaa !11
  %260 = zext i8 %259 to i32
  %261 = load i32, ptr %8, align 4, !tbaa !5
  %262 = add i32 %261, %260
  store i32 %262, ptr %8, align 4, !tbaa !5
  br label %263

263:                                              ; preds = %256, %204
  %264 = load ptr, ptr %10, align 8, !tbaa !9
  %265 = getelementptr inbounds i8, ptr %264, i64 3
  %266 = load i8, ptr %265, align 1, !tbaa !11
  %267 = zext i8 %266 to i32
  %268 = shl i32 %267, 24
  %269 = load i32, ptr %7, align 4, !tbaa !5
  %270 = add i32 %269, %268
  store i32 %270, ptr %7, align 4, !tbaa !5
  br label %271

271:                                              ; preds = %263, %204
  %272 = load ptr, ptr %10, align 8, !tbaa !9
  %273 = getelementptr inbounds i8, ptr %272, i64 2
  %274 = load i8, ptr %273, align 1, !tbaa !11
  %275 = zext i8 %274 to i32
  %276 = shl i32 %275, 16
  %277 = load i32, ptr %7, align 4, !tbaa !5
  %278 = add i32 %277, %276
  store i32 %278, ptr %7, align 4, !tbaa !5
  br label %279

279:                                              ; preds = %271, %204
  %280 = load ptr, ptr %10, align 8, !tbaa !9
  %281 = getelementptr inbounds i8, ptr %280, i64 1
  %282 = load i8, ptr %281, align 1, !tbaa !11
  %283 = zext i8 %282 to i32
  %284 = shl i32 %283, 8
  %285 = load i32, ptr %7, align 4, !tbaa !5
  %286 = add i32 %285, %284
  store i32 %286, ptr %7, align 4, !tbaa !5
  br label %287

287:                                              ; preds = %279, %204
  %288 = load ptr, ptr %10, align 8, !tbaa !9
  %289 = getelementptr inbounds i8, ptr %288, i64 0
  %290 = load i8, ptr %289, align 1, !tbaa !11
  %291 = zext i8 %290 to i32
  %292 = load i32, ptr %7, align 4, !tbaa !5
  %293 = add i32 %292, %291
  store i32 %293, ptr %7, align 4, !tbaa !5
  br label %294

294:                                              ; preds = %287, %204
  br label %295

295:                                              ; preds = %294
  br label %296

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

387:                                              ; preds = %296
  br label %388

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

389:                                              ; preds = %388
  br label %390

390:                                              ; preds = %389
  br label %391

391:                                              ; preds = %390
  br label %392

392:                                              ; preds = %391
  br label %393

393:                                              ; preds = %392
  store ptr null, ptr %5, align 8, !tbaa !9
  %394 = load ptr, ptr @users, align 8, !tbaa !9
  %395 = icmp ne ptr %394, null
  br i1 %395, label %396, label %500

396:                                              ; preds = %393
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  br label %397

397:                                              ; preds = %396
  %398 = load i32, ptr %6, align 4, !tbaa !5
  %399 = load ptr, ptr @users, align 8, !tbaa !9
  %400 = getelementptr inbounds %struct.my_struct, ptr %399, i32 0, i32 2
  %401 = getelementptr inbounds %struct.UT_hash_handle, ptr %400, i32 0, i32 0
  %402 = load ptr, ptr %401, align 8, !tbaa !14
  %403 = getelementptr inbounds %struct.UT_hash_table, ptr %402, i32 0, i32 1
  %404 = load i32, ptr %403, align 8, !tbaa !17
  %405 = sub i32 %404, 1
  %406 = and i32 %398, %405
  store i32 %406, ptr %11, align 4, !tbaa !5
  br label %407

407:                                              ; preds = %397
  br label %408

408:                                              ; preds = %407
  br label %409

409:                                              ; preds = %408
  %410 = load ptr, ptr @users, align 8, !tbaa !9
  %411 = getelementptr inbounds %struct.my_struct, ptr %410, i32 0, i32 2
  %412 = getelementptr inbounds %struct.UT_hash_handle, ptr %411, i32 0, i32 0
  %413 = load ptr, ptr %412, align 8, !tbaa !14
  %414 = getelementptr inbounds %struct.UT_hash_table, ptr %413, i32 0, i32 0
  %415 = load ptr, ptr %414, align 8, !tbaa !20
  %416 = load i32, ptr %11, align 4, !tbaa !5
  %417 = zext i32 %416 to i64
  %418 = getelementptr inbounds %struct.UT_hash_bucket, ptr %415, i64 %417
  %419 = getelementptr inbounds %struct.UT_hash_bucket, ptr %418, i32 0, i32 0
  %420 = load ptr, ptr %419, align 8, !tbaa !21
  %421 = icmp ne ptr %420, null
  br i1 %421, label %422, label %445

422:                                              ; preds = %409
  br label %423

423:                                              ; preds = %422
  %424 = load ptr, ptr @users, align 8, !tbaa !9
  %425 = getelementptr inbounds %struct.my_struct, ptr %424, i32 0, i32 2
  %426 = getelementptr inbounds %struct.UT_hash_handle, ptr %425, i32 0, i32 0
  %427 = load ptr, ptr %426, align 8, !tbaa !14
  %428 = getelementptr inbounds %struct.UT_hash_table, ptr %427, i32 0, i32 0
  %429 = load ptr, ptr %428, align 8, !tbaa !20
  %430 = load i32, ptr %11, align 4, !tbaa !5
  %431 = zext i32 %430 to i64
  %432 = getelementptr inbounds %struct.UT_hash_bucket, ptr %429, i64 %431
  %433 = getelementptr inbounds %struct.UT_hash_bucket, ptr %432, i32 0, i32 0
  %434 = load ptr, ptr %433, align 8, !tbaa !21
  %435 = load ptr, ptr @users, align 8, !tbaa !9
  %436 = getelementptr inbounds %struct.my_struct, ptr %435, i32 0, i32 2
  %437 = getelementptr inbounds %struct.UT_hash_handle, ptr %436, i32 0, i32 0
  %438 = load ptr, ptr %437, align 8, !tbaa !14
  %439 = getelementptr inbounds %struct.UT_hash_table, ptr %438, i32 0, i32 5
  %440 = load i64, ptr %439, align 8, !tbaa !23
  %441 = sub i64 0, %440
  %442 = getelementptr inbounds i8, ptr %434, i64 %441
  store ptr %442, ptr %5, align 8, !tbaa !9
  br label %443

443:                                              ; preds = %423
  br label %444

444:                                              ; preds = %443
  br label %446

445:                                              ; preds = %409
  store ptr null, ptr %5, align 8, !tbaa !9
  br label %446

446:                                              ; preds = %445, %444
  br label %447

447:                                              ; preds = %496, %446
  %448 = load ptr, ptr %5, align 8, !tbaa !9
  %449 = icmp ne ptr %448, null
  br i1 %449, label %450, label %497

450:                                              ; preds = %447
  %451 = load ptr, ptr %5, align 8, !tbaa !9
  %452 = getelementptr inbounds %struct.my_struct, ptr %451, i32 0, i32 2
  %453 = getelementptr inbounds %struct.UT_hash_handle, ptr %452, i32 0, i32 7
  %454 = load i32, ptr %453, align 4, !tbaa !24
  %455 = load i32, ptr %6, align 4, !tbaa !5
  %456 = icmp eq i32 %454, %455
  br i1 %456, label %457, label %473

457:                                              ; preds = %450
  %458 = load ptr, ptr %5, align 8, !tbaa !9
  %459 = getelementptr inbounds %struct.my_struct, ptr %458, i32 0, i32 2
  %460 = getelementptr inbounds %struct.UT_hash_handle, ptr %459, i32 0, i32 6
  %461 = load i32, ptr %460, align 8, !tbaa !25
  %462 = zext i32 %461 to i64
  %463 = icmp eq i64 %462, 4
  br i1 %463, label %464, label %473

464:                                              ; preds = %457
  %465 = load ptr, ptr %5, align 8, !tbaa !9
  %466 = getelementptr inbounds %struct.my_struct, ptr %465, i32 0, i32 2
  %467 = getelementptr inbounds %struct.UT_hash_handle, ptr %466, i32 0, i32 5
  %468 = load ptr, ptr %467, align 8, !tbaa !26
  %469 = call i32 @memcmp(ptr noundef %468, ptr noundef %3, i64 noundef 4) #8
  %470 = icmp eq i32 %469, 0
  br i1 %470, label %471, label %472

471:                                              ; preds = %464
  br label %497

472:                                              ; preds = %464
  br label %473

473:                                              ; preds = %472, %457, %450
  %474 = load ptr, ptr %5, align 8, !tbaa !9
  %475 = getelementptr inbounds %struct.my_struct, ptr %474, i32 0, i32 2
  %476 = getelementptr inbounds %struct.UT_hash_handle, ptr %475, i32 0, i32 4
  %477 = load ptr, ptr %476, align 8, !tbaa !27
  %478 = icmp ne ptr %477, null
  br i1 %478, label %479, label %495

479:                                              ; preds = %473
  br label %480

480:                                              ; preds = %479
  %481 = load ptr, ptr %5, align 8, !tbaa !9
  %482 = getelementptr inbounds %struct.my_struct, ptr %481, i32 0, i32 2
  %483 = getelementptr inbounds %struct.UT_hash_handle, ptr %482, i32 0, i32 4
  %484 = load ptr, ptr %483, align 8, !tbaa !27
  %485 = load ptr, ptr @users, align 8, !tbaa !9
  %486 = getelementptr inbounds %struct.my_struct, ptr %485, i32 0, i32 2
  %487 = getelementptr inbounds %struct.UT_hash_handle, ptr %486, i32 0, i32 0
  %488 = load ptr, ptr %487, align 8, !tbaa !14
  %489 = getelementptr inbounds %struct.UT_hash_table, ptr %488, i32 0, i32 5
  %490 = load i64, ptr %489, align 8, !tbaa !23
  %491 = sub i64 0, %490
  %492 = getelementptr inbounds i8, ptr %484, i64 %491
  store ptr %492, ptr %5, align 8, !tbaa !9
  br label %493

493:                                              ; preds = %480
  br label %494

494:                                              ; preds = %493
  br label %496

495:                                              ; preds = %473
  store ptr null, ptr %5, align 8, !tbaa !9
  br label %496

496:                                              ; preds = %495, %494
  br label %447, !llvm.loop !28

497:                                              ; preds = %471, %447
  br label %498

498:                                              ; preds = %497
  br label %499

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

500:                                              ; preds = %499, %393
  br label %501

501:                                              ; preds = %500
  br label %502

502:                                              ; preds = %501
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #7
  br label %503

503:                                              ; preds = %502, %25
  br label %504

504:                                              ; preds = %503
  br label %505

505:                                              ; preds = %504
  %506 = load ptr, ptr %5, align 8, !tbaa !9
  %507 = icmp eq ptr %506, null
  br i1 %507, label %508, label %1365

508:                                              ; preds = %505
  %509 = call noalias ptr @malloc(i64 noundef 88) #9
  store ptr %509, ptr %5, align 8, !tbaa !9
  %510 = load i32, ptr %3, align 4, !tbaa !5
  %511 = load ptr, ptr %5, align 8, !tbaa !9
  %512 = getelementptr inbounds %struct.my_struct, ptr %511, i32 0, i32 0
  store i32 %510, ptr %512, align 8, !tbaa !29
  br label %513

513:                                              ; preds = %508
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  br label %514

514:                                              ; preds = %513
  br label %515

515:                                              ; preds = %514
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #7
  %516 = load ptr, ptr %5, align 8, !tbaa !9
  %517 = getelementptr inbounds %struct.my_struct, ptr %516, i32 0, i32 0
  store ptr %517, ptr %16, align 8, !tbaa !9
  store i32 -17973521, ptr %12, align 4, !tbaa !5
  store i32 -1640531527, ptr %14, align 4, !tbaa !5
  store i32 -1640531527, ptr %13, align 4, !tbaa !5
  store i32 4, ptr %15, align 4, !tbaa !5
  br label %518

518:                                              ; preds = %686, %515
  %519 = load i32, ptr %15, align 4, !tbaa !5
  %520 = icmp uge i32 %519, 12
  br i1 %520, label %521, label %691

521:                                              ; preds = %518
  %522 = load ptr, ptr %16, align 8, !tbaa !9
  %523 = getelementptr inbounds i8, ptr %522, i64 0
  %524 = load i8, ptr %523, align 1, !tbaa !11
  %525 = zext i8 %524 to i32
  %526 = load ptr, ptr %16, align 8, !tbaa !9
  %527 = getelementptr inbounds i8, ptr %526, i64 1
  %528 = load i8, ptr %527, align 1, !tbaa !11
  %529 = zext i8 %528 to i32
  %530 = shl i32 %529, 8
  %531 = add i32 %525, %530
  %532 = load ptr, ptr %16, align 8, !tbaa !9
  %533 = getelementptr inbounds i8, ptr %532, i64 2
  %534 = load i8, ptr %533, align 1, !tbaa !11
  %535 = zext i8 %534 to i32
  %536 = shl i32 %535, 16
  %537 = add i32 %531, %536
  %538 = load ptr, ptr %16, align 8, !tbaa !9
  %539 = getelementptr inbounds i8, ptr %538, i64 3
  %540 = load i8, ptr %539, align 1, !tbaa !11
  %541 = zext i8 %540 to i32
  %542 = shl i32 %541, 24
  %543 = add i32 %537, %542
  %544 = load i32, ptr %13, align 4, !tbaa !5
  %545 = add i32 %544, %543
  store i32 %545, ptr %13, align 4, !tbaa !5
  %546 = load ptr, ptr %16, align 8, !tbaa !9
  %547 = getelementptr inbounds i8, ptr %546, i64 4
  %548 = load i8, ptr %547, align 1, !tbaa !11
  %549 = zext i8 %548 to i32
  %550 = load ptr, ptr %16, align 8, !tbaa !9
  %551 = getelementptr inbounds i8, ptr %550, i64 5
  %552 = load i8, ptr %551, align 1, !tbaa !11
  %553 = zext i8 %552 to i32
  %554 = shl i32 %553, 8
  %555 = add i32 %549, %554
  %556 = load ptr, ptr %16, align 8, !tbaa !9
  %557 = getelementptr inbounds i8, ptr %556, i64 6
  %558 = load i8, ptr %557, align 1, !tbaa !11
  %559 = zext i8 %558 to i32
  %560 = shl i32 %559, 16
  %561 = add i32 %555, %560
  %562 = load ptr, ptr %16, align 8, !tbaa !9
  %563 = getelementptr inbounds i8, ptr %562, i64 7
  %564 = load i8, ptr %563, align 1, !tbaa !11
  %565 = zext i8 %564 to i32
  %566 = shl i32 %565, 24
  %567 = add i32 %561, %566
  %568 = load i32, ptr %14, align 4, !tbaa !5
  %569 = add i32 %568, %567
  store i32 %569, ptr %14, align 4, !tbaa !5
  %570 = load ptr, ptr %16, align 8, !tbaa !9
  %571 = getelementptr inbounds i8, ptr %570, i64 8
  %572 = load i8, ptr %571, align 1, !tbaa !11
  %573 = zext i8 %572 to i32
  %574 = load ptr, ptr %16, align 8, !tbaa !9
  %575 = getelementptr inbounds i8, ptr %574, i64 9
  %576 = load i8, ptr %575, align 1, !tbaa !11
  %577 = zext i8 %576 to i32
  %578 = shl i32 %577, 8
  %579 = add i32 %573, %578
  %580 = load ptr, ptr %16, align 8, !tbaa !9
  %581 = getelementptr inbounds i8, ptr %580, i64 10
  %582 = load i8, ptr %581, align 1, !tbaa !11
  %583 = zext i8 %582 to i32
  %584 = shl i32 %583, 16
  %585 = add i32 %579, %584
  %586 = load ptr, ptr %16, align 8, !tbaa !9
  %587 = getelementptr inbounds i8, ptr %586, i64 11
  %588 = load i8, ptr %587, align 1, !tbaa !11
  %589 = zext i8 %588 to i32
  %590 = shl i32 %589, 24
  %591 = add i32 %585, %590
  %592 = load i32, ptr %12, align 4, !tbaa !5
  %593 = add i32 %592, %591
  store i32 %593, ptr %12, align 4, !tbaa !5
  br label %594

594:                                              ; preds = %521
  %595 = load i32, ptr %14, align 4, !tbaa !5
  %596 = load i32, ptr %13, align 4, !tbaa !5
  %597 = sub i32 %596, %595
  store i32 %597, ptr %13, align 4, !tbaa !5
  %598 = load i32, ptr %12, align 4, !tbaa !5
  %599 = load i32, ptr %13, align 4, !tbaa !5
  %600 = sub i32 %599, %598
  store i32 %600, ptr %13, align 4, !tbaa !5
  %601 = load i32, ptr %12, align 4, !tbaa !5
  %602 = lshr i32 %601, 13
  %603 = load i32, ptr %13, align 4, !tbaa !5
  %604 = xor i32 %603, %602
  store i32 %604, ptr %13, align 4, !tbaa !5
  %605 = load i32, ptr %12, align 4, !tbaa !5
  %606 = load i32, ptr %14, align 4, !tbaa !5
  %607 = sub i32 %606, %605
  store i32 %607, ptr %14, align 4, !tbaa !5
  %608 = load i32, ptr %13, align 4, !tbaa !5
  %609 = load i32, ptr %14, align 4, !tbaa !5
  %610 = sub i32 %609, %608
  store i32 %610, ptr %14, align 4, !tbaa !5
  %611 = load i32, ptr %13, align 4, !tbaa !5
  %612 = shl i32 %611, 8
  %613 = load i32, ptr %14, align 4, !tbaa !5
  %614 = xor i32 %613, %612
  store i32 %614, ptr %14, align 4, !tbaa !5
  %615 = load i32, ptr %13, align 4, !tbaa !5
  %616 = load i32, ptr %12, align 4, !tbaa !5
  %617 = sub i32 %616, %615
  store i32 %617, ptr %12, align 4, !tbaa !5
  %618 = load i32, ptr %14, align 4, !tbaa !5
  %619 = load i32, ptr %12, align 4, !tbaa !5
  %620 = sub i32 %619, %618
  store i32 %620, ptr %12, align 4, !tbaa !5
  %621 = load i32, ptr %14, align 4, !tbaa !5
  %622 = lshr i32 %621, 13
  %623 = load i32, ptr %12, align 4, !tbaa !5
  %624 = xor i32 %623, %622
  store i32 %624, ptr %12, align 4, !tbaa !5
  %625 = load i32, ptr %14, align 4, !tbaa !5
  %626 = load i32, ptr %13, align 4, !tbaa !5
  %627 = sub i32 %626, %625
  store i32 %627, ptr %13, align 4, !tbaa !5
  %628 = load i32, ptr %12, align 4, !tbaa !5
  %629 = load i32, ptr %13, align 4, !tbaa !5
  %630 = sub i32 %629, %628
  store i32 %630, ptr %13, align 4, !tbaa !5
  %631 = load i32, ptr %12, align 4, !tbaa !5
  %632 = lshr i32 %631, 12
  %633 = load i32, ptr %13, align 4, !tbaa !5
  %634 = xor i32 %633, %632
  store i32 %634, ptr %13, align 4, !tbaa !5
  %635 = load i32, ptr %12, align 4, !tbaa !5
  %636 = load i32, ptr %14, align 4, !tbaa !5
  %637 = sub i32 %636, %635
  store i32 %637, ptr %14, align 4, !tbaa !5
  %638 = load i32, ptr %13, align 4, !tbaa !5
  %639 = load i32, ptr %14, align 4, !tbaa !5
  %640 = sub i32 %639, %638
  store i32 %640, ptr %14, align 4, !tbaa !5
  %641 = load i32, ptr %13, align 4, !tbaa !5
  %642 = shl i32 %641, 16
  %643 = load i32, ptr %14, align 4, !tbaa !5
  %644 = xor i32 %643, %642
  store i32 %644, ptr %14, align 4, !tbaa !5
  %645 = load i32, ptr %13, align 4, !tbaa !5
  %646 = load i32, ptr %12, align 4, !tbaa !5
  %647 = sub i32 %646, %645
  store i32 %647, ptr %12, align 4, !tbaa !5
  %648 = load i32, ptr %14, align 4, !tbaa !5
  %649 = load i32, ptr %12, align 4, !tbaa !5
  %650 = sub i32 %649, %648
  store i32 %650, ptr %12, align 4, !tbaa !5
  %651 = load i32, ptr %14, align 4, !tbaa !5
  %652 = lshr i32 %651, 5
  %653 = load i32, ptr %12, align 4, !tbaa !5
  %654 = xor i32 %653, %652
  store i32 %654, ptr %12, align 4, !tbaa !5
  %655 = load i32, ptr %14, align 4, !tbaa !5
  %656 = load i32, ptr %13, align 4, !tbaa !5
  %657 = sub i32 %656, %655
  store i32 %657, ptr %13, align 4, !tbaa !5
  %658 = load i32, ptr %12, align 4, !tbaa !5
  %659 = load i32, ptr %13, align 4, !tbaa !5
  %660 = sub i32 %659, %658
  store i32 %660, ptr %13, align 4, !tbaa !5
  %661 = load i32, ptr %12, align 4, !tbaa !5
  %662 = lshr i32 %661, 3
  %663 = load i32, ptr %13, align 4, !tbaa !5
  %664 = xor i32 %663, %662
  store i32 %664, ptr %13, align 4, !tbaa !5
  %665 = load i32, ptr %12, align 4, !tbaa !5
  %666 = load i32, ptr %14, align 4, !tbaa !5
  %667 = sub i32 %666, %665
  store i32 %667, ptr %14, align 4, !tbaa !5
  %668 = load i32, ptr %13, align 4, !tbaa !5
  %669 = load i32, ptr %14, align 4, !tbaa !5
  %670 = sub i32 %669, %668
  store i32 %670, ptr %14, align 4, !tbaa !5
  %671 = load i32, ptr %13, align 4, !tbaa !5
  %672 = shl i32 %671, 10
  %673 = load i32, ptr %14, align 4, !tbaa !5
  %674 = xor i32 %673, %672
  store i32 %674, ptr %14, align 4, !tbaa !5
  %675 = load i32, ptr %13, align 4, !tbaa !5
  %676 = load i32, ptr %12, align 4, !tbaa !5
  %677 = sub i32 %676, %675
  store i32 %677, ptr %12, align 4, !tbaa !5
  %678 = load i32, ptr %14, align 4, !tbaa !5
  %679 = load i32, ptr %12, align 4, !tbaa !5
  %680 = sub i32 %679, %678
  store i32 %680, ptr %12, align 4, !tbaa !5
  %681 = load i32, ptr %14, align 4, !tbaa !5
  %682 = lshr i32 %681, 15
  %683 = load i32, ptr %12, align 4, !tbaa !5
  %684 = xor i32 %683, %682
  store i32 %684, ptr %12, align 4, !tbaa !5
  br label %685

685:                                              ; preds = %594
  br label %686

686:                                              ; preds = %685
  %687 = load ptr, ptr %16, align 8, !tbaa !9
  %688 = getelementptr inbounds i8, ptr %687, i64 12
  store ptr %688, ptr %16, align 8, !tbaa !9
  %689 = load i32, ptr %15, align 4, !tbaa !5
  %690 = sub i32 %689, 12
  store i32 %690, ptr %15, align 4, !tbaa !5
  br label %518, !llvm.loop !30

691:                                              ; preds = %518
  %692 = load i32, ptr %12, align 4, !tbaa !5
  %693 = add i32 %692, 4
  store i32 %693, ptr %12, align 4, !tbaa !5
  %694 = load i32, ptr %15, align 4, !tbaa !5
  switch i32 %694, label %781 [
    i32 11, label %695
    i32 10, label %703
    i32 9, label %711
    i32 8, label %719
    i32 7, label %727
    i32 6, label %735
    i32 5, label %743
    i32 4, label %750
    i32 3, label %758
    i32 2, label %766
    i32 1, label %774
  ]

695:                                              ; preds = %691
  %696 = load ptr, ptr %16, align 8, !tbaa !9
  %697 = getelementptr inbounds i8, ptr %696, i64 10
  %698 = load i8, ptr %697, align 1, !tbaa !11
  %699 = zext i8 %698 to i32
  %700 = shl i32 %699, 24
  %701 = load i32, ptr %12, align 4, !tbaa !5
  %702 = add i32 %701, %700
  store i32 %702, ptr %12, align 4, !tbaa !5
  br label %703

703:                                              ; preds = %695, %691
  %704 = load ptr, ptr %16, align 8, !tbaa !9
  %705 = getelementptr inbounds i8, ptr %704, i64 9
  %706 = load i8, ptr %705, align 1, !tbaa !11
  %707 = zext i8 %706 to i32
  %708 = shl i32 %707, 16
  %709 = load i32, ptr %12, align 4, !tbaa !5
  %710 = add i32 %709, %708
  store i32 %710, ptr %12, align 4, !tbaa !5
  br label %711

711:                                              ; preds = %703, %691
  %712 = load ptr, ptr %16, align 8, !tbaa !9
  %713 = getelementptr inbounds i8, ptr %712, i64 8
  %714 = load i8, ptr %713, align 1, !tbaa !11
  %715 = zext i8 %714 to i32
  %716 = shl i32 %715, 8
  %717 = load i32, ptr %12, align 4, !tbaa !5
  %718 = add i32 %717, %716
  store i32 %718, ptr %12, align 4, !tbaa !5
  br label %719

719:                                              ; preds = %711, %691
  %720 = load ptr, ptr %16, align 8, !tbaa !9
  %721 = getelementptr inbounds i8, ptr %720, i64 7
  %722 = load i8, ptr %721, align 1, !tbaa !11
  %723 = zext i8 %722 to i32
  %724 = shl i32 %723, 24
  %725 = load i32, ptr %14, align 4, !tbaa !5
  %726 = add i32 %725, %724
  store i32 %726, ptr %14, align 4, !tbaa !5
  br label %727

727:                                              ; preds = %719, %691
  %728 = load ptr, ptr %16, align 8, !tbaa !9
  %729 = getelementptr inbounds i8, ptr %728, i64 6
  %730 = load i8, ptr %729, align 1, !tbaa !11
  %731 = zext i8 %730 to i32
  %732 = shl i32 %731, 16
  %733 = load i32, ptr %14, align 4, !tbaa !5
  %734 = add i32 %733, %732
  store i32 %734, ptr %14, align 4, !tbaa !5
  br label %735

735:                                              ; preds = %727, %691
  %736 = load ptr, ptr %16, align 8, !tbaa !9
  %737 = getelementptr inbounds i8, ptr %736, i64 5
  %738 = load i8, ptr %737, align 1, !tbaa !11
  %739 = zext i8 %738 to i32
  %740 = shl i32 %739, 8
  %741 = load i32, ptr %14, align 4, !tbaa !5
  %742 = add i32 %741, %740
  store i32 %742, ptr %14, align 4, !tbaa !5
  br label %743

743:                                              ; preds = %735, %691
  %744 = load ptr, ptr %16, align 8, !tbaa !9
  %745 = getelementptr inbounds i8, ptr %744, i64 4
  %746 = load i8, ptr %745, align 1, !tbaa !11
  %747 = zext i8 %746 to i32
  %748 = load i32, ptr %14, align 4, !tbaa !5
  %749 = add i32 %748, %747
  store i32 %749, ptr %14, align 4, !tbaa !5
  br label %750

750:                                              ; preds = %743, %691
  %751 = load ptr, ptr %16, align 8, !tbaa !9
  %752 = getelementptr inbounds i8, ptr %751, i64 3
  %753 = load i8, ptr %752, align 1, !tbaa !11
  %754 = zext i8 %753 to i32
  %755 = shl i32 %754, 24
  %756 = load i32, ptr %13, align 4, !tbaa !5
  %757 = add i32 %756, %755
  store i32 %757, ptr %13, align 4, !tbaa !5
  br label %758

758:                                              ; preds = %750, %691
  %759 = load ptr, ptr %16, align 8, !tbaa !9
  %760 = getelementptr inbounds i8, ptr %759, i64 2
  %761 = load i8, ptr %760, align 1, !tbaa !11
  %762 = zext i8 %761 to i32
  %763 = shl i32 %762, 16
  %764 = load i32, ptr %13, align 4, !tbaa !5
  %765 = add i32 %764, %763
  store i32 %765, ptr %13, align 4, !tbaa !5
  br label %766

766:                                              ; preds = %758, %691
  %767 = load ptr, ptr %16, align 8, !tbaa !9
  %768 = getelementptr inbounds i8, ptr %767, i64 1
  %769 = load i8, ptr %768, align 1, !tbaa !11
  %770 = zext i8 %769 to i32
  %771 = shl i32 %770, 8
  %772 = load i32, ptr %13, align 4, !tbaa !5
  %773 = add i32 %772, %771
  store i32 %773, ptr %13, align 4, !tbaa !5
  br label %774

774:                                              ; preds = %766, %691
  %775 = load ptr, ptr %16, align 8, !tbaa !9
  %776 = getelementptr inbounds i8, ptr %775, i64 0
  %777 = load i8, ptr %776, align 1, !tbaa !11
  %778 = zext i8 %777 to i32
  %779 = load i32, ptr %13, align 4, !tbaa !5
  %780 = add i32 %779, %778
  store i32 %780, ptr %13, align 4, !tbaa !5
  br label %781

781:                                              ; preds = %774, %691
  br label %782

782:                                              ; preds = %781
  br label %783

783:                                              ; preds = %782
  %784 = load i32, ptr %14, align 4, !tbaa !5
  %785 = load i32, ptr %13, align 4, !tbaa !5
  %786 = sub i32 %785, %784
  store i32 %786, ptr %13, align 4, !tbaa !5
  %787 = load i32, ptr %12, align 4, !tbaa !5
  %788 = load i32, ptr %13, align 4, !tbaa !5
  %789 = sub i32 %788, %787
  store i32 %789, ptr %13, align 4, !tbaa !5
  %790 = load i32, ptr %12, align 4, !tbaa !5
  %791 = lshr i32 %790, 13
  %792 = load i32, ptr %13, align 4, !tbaa !5
  %793 = xor i32 %792, %791
  store i32 %793, ptr %13, align 4, !tbaa !5
  %794 = load i32, ptr %12, align 4, !tbaa !5
  %795 = load i32, ptr %14, align 4, !tbaa !5
  %796 = sub i32 %795, %794
  store i32 %796, ptr %14, align 4, !tbaa !5
  %797 = load i32, ptr %13, align 4, !tbaa !5
  %798 = load i32, ptr %14, align 4, !tbaa !5
  %799 = sub i32 %798, %797
  store i32 %799, ptr %14, align 4, !tbaa !5
  %800 = load i32, ptr %13, align 4, !tbaa !5
  %801 = shl i32 %800, 8
  %802 = load i32, ptr %14, align 4, !tbaa !5
  %803 = xor i32 %802, %801
  store i32 %803, ptr %14, align 4, !tbaa !5
  %804 = load i32, ptr %13, align 4, !tbaa !5
  %805 = load i32, ptr %12, align 4, !tbaa !5
  %806 = sub i32 %805, %804
  store i32 %806, ptr %12, align 4, !tbaa !5
  %807 = load i32, ptr %14, align 4, !tbaa !5
  %808 = load i32, ptr %12, align 4, !tbaa !5
  %809 = sub i32 %808, %807
  store i32 %809, ptr %12, align 4, !tbaa !5
  %810 = load i32, ptr %14, align 4, !tbaa !5
  %811 = lshr i32 %810, 13
  %812 = load i32, ptr %12, align 4, !tbaa !5
  %813 = xor i32 %812, %811
  store i32 %813, ptr %12, align 4, !tbaa !5
  %814 = load i32, ptr %14, align 4, !tbaa !5
  %815 = load i32, ptr %13, align 4, !tbaa !5
  %816 = sub i32 %815, %814
  store i32 %816, ptr %13, align 4, !tbaa !5
  %817 = load i32, ptr %12, align 4, !tbaa !5
  %818 = load i32, ptr %13, align 4, !tbaa !5
  %819 = sub i32 %818, %817
  store i32 %819, ptr %13, align 4, !tbaa !5
  %820 = load i32, ptr %12, align 4, !tbaa !5
  %821 = lshr i32 %820, 12
  %822 = load i32, ptr %13, align 4, !tbaa !5
  %823 = xor i32 %822, %821
  store i32 %823, ptr %13, align 4, !tbaa !5
  %824 = load i32, ptr %12, align 4, !tbaa !5
  %825 = load i32, ptr %14, align 4, !tbaa !5
  %826 = sub i32 %825, %824
  store i32 %826, ptr %14, align 4, !tbaa !5
  %827 = load i32, ptr %13, align 4, !tbaa !5
  %828 = load i32, ptr %14, align 4, !tbaa !5
  %829 = sub i32 %828, %827
  store i32 %829, ptr %14, align 4, !tbaa !5
  %830 = load i32, ptr %13, align 4, !tbaa !5
  %831 = shl i32 %830, 16
  %832 = load i32, ptr %14, align 4, !tbaa !5
  %833 = xor i32 %832, %831
  store i32 %833, ptr %14, align 4, !tbaa !5
  %834 = load i32, ptr %13, align 4, !tbaa !5
  %835 = load i32, ptr %12, align 4, !tbaa !5
  %836 = sub i32 %835, %834
  store i32 %836, ptr %12, align 4, !tbaa !5
  %837 = load i32, ptr %14, align 4, !tbaa !5
  %838 = load i32, ptr %12, align 4, !tbaa !5
  %839 = sub i32 %838, %837
  store i32 %839, ptr %12, align 4, !tbaa !5
  %840 = load i32, ptr %14, align 4, !tbaa !5
  %841 = lshr i32 %840, 5
  %842 = load i32, ptr %12, align 4, !tbaa !5
  %843 = xor i32 %842, %841
  store i32 %843, ptr %12, align 4, !tbaa !5
  %844 = load i32, ptr %14, align 4, !tbaa !5
  %845 = load i32, ptr %13, align 4, !tbaa !5
  %846 = sub i32 %845, %844
  store i32 %846, ptr %13, align 4, !tbaa !5
  %847 = load i32, ptr %12, align 4, !tbaa !5
  %848 = load i32, ptr %13, align 4, !tbaa !5
  %849 = sub i32 %848, %847
  store i32 %849, ptr %13, align 4, !tbaa !5
  %850 = load i32, ptr %12, align 4, !tbaa !5
  %851 = lshr i32 %850, 3
  %852 = load i32, ptr %13, align 4, !tbaa !5
  %853 = xor i32 %852, %851
  store i32 %853, ptr %13, align 4, !tbaa !5
  %854 = load i32, ptr %12, align 4, !tbaa !5
  %855 = load i32, ptr %14, align 4, !tbaa !5
  %856 = sub i32 %855, %854
  store i32 %856, ptr %14, align 4, !tbaa !5
  %857 = load i32, ptr %13, align 4, !tbaa !5
  %858 = load i32, ptr %14, align 4, !tbaa !5
  %859 = sub i32 %858, %857
  store i32 %859, ptr %14, align 4, !tbaa !5
  %860 = load i32, ptr %13, align 4, !tbaa !5
  %861 = shl i32 %860, 10
  %862 = load i32, ptr %14, align 4, !tbaa !5
  %863 = xor i32 %862, %861
  store i32 %863, ptr %14, align 4, !tbaa !5
  %864 = load i32, ptr %13, align 4, !tbaa !5
  %865 = load i32, ptr %12, align 4, !tbaa !5
  %866 = sub i32 %865, %864
  store i32 %866, ptr %12, align 4, !tbaa !5
  %867 = load i32, ptr %14, align 4, !tbaa !5
  %868 = load i32, ptr %12, align 4, !tbaa !5
  %869 = sub i32 %868, %867
  store i32 %869, ptr %12, align 4, !tbaa !5
  %870 = load i32, ptr %14, align 4, !tbaa !5
  %871 = lshr i32 %870, 15
  %872 = load i32, ptr %12, align 4, !tbaa !5
  %873 = xor i32 %872, %871
  store i32 %873, ptr %12, align 4, !tbaa !5
  br label %874

874:                                              ; preds = %783
  br label %875

875:                                              ; preds = %874
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  br label %876

876:                                              ; preds = %875
  br label %877

877:                                              ; preds = %876
  br label %878

878:                                              ; preds = %877
  br label %879

879:                                              ; preds = %878
  br label %880

880:                                              ; preds = %879
  %881 = load i32, ptr %12, align 4, !tbaa !5
  %882 = load ptr, ptr %5, align 8, !tbaa !9
  %883 = getelementptr inbounds %struct.my_struct, ptr %882, i32 0, i32 2
  %884 = getelementptr inbounds %struct.UT_hash_handle, ptr %883, i32 0, i32 7
  store i32 %881, ptr %884, align 4, !tbaa !24
  %885 = load ptr, ptr %5, align 8, !tbaa !9
  %886 = getelementptr inbounds %struct.my_struct, ptr %885, i32 0, i32 0
  %887 = load ptr, ptr %5, align 8, !tbaa !9
  %888 = getelementptr inbounds %struct.my_struct, ptr %887, i32 0, i32 2
  %889 = getelementptr inbounds %struct.UT_hash_handle, ptr %888, i32 0, i32 5
  store ptr %886, ptr %889, align 8, !tbaa !26
  %890 = load ptr, ptr %5, align 8, !tbaa !9
  %891 = getelementptr inbounds %struct.my_struct, ptr %890, i32 0, i32 2
  %892 = getelementptr inbounds %struct.UT_hash_handle, ptr %891, i32 0, i32 6
  store i32 4, ptr %892, align 8, !tbaa !25
  %893 = load ptr, ptr @users, align 8, !tbaa !9
  %894 = icmp ne ptr %893, null
  br i1 %894, label %977, label %895

895:                                              ; preds = %880
  %896 = load ptr, ptr %5, align 8, !tbaa !9
  %897 = getelementptr inbounds %struct.my_struct, ptr %896, i32 0, i32 2
  %898 = getelementptr inbounds %struct.UT_hash_handle, ptr %897, i32 0, i32 2
  store ptr null, ptr %898, align 8, !tbaa !31
  %899 = load ptr, ptr %5, align 8, !tbaa !9
  %900 = getelementptr inbounds %struct.my_struct, ptr %899, i32 0, i32 2
  %901 = getelementptr inbounds %struct.UT_hash_handle, ptr %900, i32 0, i32 1
  store ptr null, ptr %901, align 8, !tbaa !32
  br label %902

902:                                              ; preds = %895
  %903 = call noalias ptr @malloc(i64 noundef 64) #9
  %904 = load ptr, ptr %5, align 8, !tbaa !9
  %905 = getelementptr inbounds %struct.my_struct, ptr %904, i32 0, i32 2
  %906 = getelementptr inbounds %struct.UT_hash_handle, ptr %905, i32 0, i32 0
  store ptr %903, ptr %906, align 8, !tbaa !14
  %907 = load ptr, ptr %5, align 8, !tbaa !9
  %908 = getelementptr inbounds %struct.my_struct, ptr %907, i32 0, i32 2
  %909 = getelementptr inbounds %struct.UT_hash_handle, ptr %908, i32 0, i32 0
  %910 = load ptr, ptr %909, align 8, !tbaa !14
  %911 = icmp ne ptr %910, null
  br i1 %911, label %913, label %912

912:                                              ; preds = %902
  call void @exit(i32 noundef -1) #10
  unreachable

913:                                              ; preds = %902
  %914 = load ptr, ptr %5, align 8, !tbaa !9
  %915 = getelementptr inbounds %struct.my_struct, ptr %914, i32 0, i32 2
  %916 = getelementptr inbounds %struct.UT_hash_handle, ptr %915, i32 0, i32 0
  %917 = load ptr, ptr %916, align 8, !tbaa !14
  call void @llvm.memset.p0.i64(ptr align 8 %917, i8 0, i64 64, i1 false)
  %918 = load ptr, ptr %5, align 8, !tbaa !9
  %919 = getelementptr inbounds %struct.my_struct, ptr %918, i32 0, i32 2
  %920 = load ptr, ptr %5, align 8, !tbaa !9
  %921 = getelementptr inbounds %struct.my_struct, ptr %920, i32 0, i32 2
  %922 = getelementptr inbounds %struct.UT_hash_handle, ptr %921, i32 0, i32 0
  %923 = load ptr, ptr %922, align 8, !tbaa !14
  %924 = getelementptr inbounds %struct.UT_hash_table, ptr %923, i32 0, i32 4
  store ptr %919, ptr %924, align 8, !tbaa !33
  %925 = load ptr, ptr %5, align 8, !tbaa !9
  %926 = getelementptr inbounds %struct.my_struct, ptr %925, i32 0, i32 2
  %927 = getelementptr inbounds %struct.UT_hash_handle, ptr %926, i32 0, i32 0
  %928 = load ptr, ptr %927, align 8, !tbaa !14
  %929 = getelementptr inbounds %struct.UT_hash_table, ptr %928, i32 0, i32 1
  store i32 32, ptr %929, align 8, !tbaa !17
  %930 = load ptr, ptr %5, align 8, !tbaa !9
  %931 = getelementptr inbounds %struct.my_struct, ptr %930, i32 0, i32 2
  %932 = getelementptr inbounds %struct.UT_hash_handle, ptr %931, i32 0, i32 0
  %933 = load ptr, ptr %932, align 8, !tbaa !14
  %934 = getelementptr inbounds %struct.UT_hash_table, ptr %933, i32 0, i32 2
  store i32 5, ptr %934, align 4, !tbaa !34
  %935 = load ptr, ptr %5, align 8, !tbaa !9
  %936 = getelementptr inbounds %struct.my_struct, ptr %935, i32 0, i32 2
  %937 = load ptr, ptr %5, align 8, !tbaa !9
  %938 = ptrtoint ptr %936 to i64
  %939 = ptrtoint ptr %937 to i64
  %940 = sub i64 %938, %939
  %941 = load ptr, ptr %5, align 8, !tbaa !9
  %942 = getelementptr inbounds %struct.my_struct, ptr %941, i32 0, i32 2
  %943 = getelementptr inbounds %struct.UT_hash_handle, ptr %942, i32 0, i32 0
  %944 = load ptr, ptr %943, align 8, !tbaa !14
  %945 = getelementptr inbounds %struct.UT_hash_table, ptr %944, i32 0, i32 5
  store i64 %940, ptr %945, align 8, !tbaa !23
  %946 = call noalias ptr @malloc(i64 noundef 512) #9
  %947 = load ptr, ptr %5, align 8, !tbaa !9
  %948 = getelementptr inbounds %struct.my_struct, ptr %947, i32 0, i32 2
  %949 = getelementptr inbounds %struct.UT_hash_handle, ptr %948, i32 0, i32 0
  %950 = load ptr, ptr %949, align 8, !tbaa !14
  %951 = getelementptr inbounds %struct.UT_hash_table, ptr %950, i32 0, i32 0
  store ptr %946, ptr %951, align 8, !tbaa !20
  %952 = load ptr, ptr %5, align 8, !tbaa !9
  %953 = getelementptr inbounds %struct.my_struct, ptr %952, i32 0, i32 2
  %954 = getelementptr inbounds %struct.UT_hash_handle, ptr %953, i32 0, i32 0
  %955 = load ptr, ptr %954, align 8, !tbaa !14
  %956 = getelementptr inbounds %struct.UT_hash_table, ptr %955, i32 0, i32 10
  store i32 -1609490463, ptr %956, align 8, !tbaa !35
  %957 = load ptr, ptr %5, align 8, !tbaa !9
  %958 = getelementptr inbounds %struct.my_struct, ptr %957, i32 0, i32 2
  %959 = getelementptr inbounds %struct.UT_hash_handle, ptr %958, i32 0, i32 0
  %960 = load ptr, ptr %959, align 8, !tbaa !14
  %961 = getelementptr inbounds %struct.UT_hash_table, ptr %960, i32 0, i32 0
  %962 = load ptr, ptr %961, align 8, !tbaa !20
  %963 = icmp ne ptr %962, null
  br i1 %963, label %965, label %964

964:                                              ; preds = %913
  call void @exit(i32 noundef -1) #10
  unreachable

965:                                              ; preds = %913
  %966 = load ptr, ptr %5, align 8, !tbaa !9
  %967 = getelementptr inbounds %struct.my_struct, ptr %966, i32 0, i32 2
  %968 = getelementptr inbounds %struct.UT_hash_handle, ptr %967, i32 0, i32 0
  %969 = load ptr, ptr %968, align 8, !tbaa !14
  %970 = getelementptr inbounds %struct.UT_hash_table, ptr %969, i32 0, i32 0
  %971 = load ptr, ptr %970, align 8, !tbaa !20
  call void @llvm.memset.p0.i64(ptr align 8 %971, i8 0, i64 512, i1 false)
  br label %972

972:                                              ; preds = %965
  br label %973

973:                                              ; preds = %972
  br label %974

974:                                              ; preds = %973
  br label %975

975:                                              ; preds = %974
  %976 = load ptr, ptr %5, align 8, !tbaa !9
  store ptr %976, ptr @users, align 8, !tbaa !9
  br label %1023

977:                                              ; preds = %880
  %978 = load ptr, ptr @users, align 8, !tbaa !9
  %979 = getelementptr inbounds %struct.my_struct, ptr %978, i32 0, i32 2
  %980 = getelementptr inbounds %struct.UT_hash_handle, ptr %979, i32 0, i32 0
  %981 = load ptr, ptr %980, align 8, !tbaa !14
  %982 = load ptr, ptr %5, align 8, !tbaa !9
  %983 = getelementptr inbounds %struct.my_struct, ptr %982, i32 0, i32 2
  %984 = getelementptr inbounds %struct.UT_hash_handle, ptr %983, i32 0, i32 0
  store ptr %981, ptr %984, align 8, !tbaa !14
  br label %985

985:                                              ; preds = %977
  %986 = load ptr, ptr %5, align 8, !tbaa !9
  %987 = getelementptr inbounds %struct.my_struct, ptr %986, i32 0, i32 2
  %988 = getelementptr inbounds %struct.UT_hash_handle, ptr %987, i32 0, i32 2
  store ptr null, ptr %988, align 8, !tbaa !31
  %989 = load ptr, ptr @users, align 8, !tbaa !9
  %990 = getelementptr inbounds %struct.my_struct, ptr %989, i32 0, i32 2
  %991 = getelementptr inbounds %struct.UT_hash_handle, ptr %990, i32 0, i32 0
  %992 = load ptr, ptr %991, align 8, !tbaa !14
  %993 = getelementptr inbounds %struct.UT_hash_table, ptr %992, i32 0, i32 4
  %994 = load ptr, ptr %993, align 8, !tbaa !33
  %995 = load ptr, ptr @users, align 8, !tbaa !9
  %996 = getelementptr inbounds %struct.my_struct, ptr %995, i32 0, i32 2
  %997 = getelementptr inbounds %struct.UT_hash_handle, ptr %996, i32 0, i32 0
  %998 = load ptr, ptr %997, align 8, !tbaa !14
  %999 = getelementptr inbounds %struct.UT_hash_table, ptr %998, i32 0, i32 5
  %1000 = load i64, ptr %999, align 8, !tbaa !23
  %1001 = sub i64 0, %1000
  %1002 = getelementptr inbounds i8, ptr %994, i64 %1001
  %1003 = load ptr, ptr %5, align 8, !tbaa !9
  %1004 = getelementptr inbounds %struct.my_struct, ptr %1003, i32 0, i32 2
  %1005 = getelementptr inbounds %struct.UT_hash_handle, ptr %1004, i32 0, i32 1
  store ptr %1002, ptr %1005, align 8, !tbaa !32
  %1006 = load ptr, ptr %5, align 8, !tbaa !9
  %1007 = load ptr, ptr @users, align 8, !tbaa !9
  %1008 = getelementptr inbounds %struct.my_struct, ptr %1007, i32 0, i32 2
  %1009 = getelementptr inbounds %struct.UT_hash_handle, ptr %1008, i32 0, i32 0
  %1010 = load ptr, ptr %1009, align 8, !tbaa !14
  %1011 = getelementptr inbounds %struct.UT_hash_table, ptr %1010, i32 0, i32 4
  %1012 = load ptr, ptr %1011, align 8, !tbaa !33
  %1013 = getelementptr inbounds %struct.UT_hash_handle, ptr %1012, i32 0, i32 2
  store ptr %1006, ptr %1013, align 8, !tbaa !36
  %1014 = load ptr, ptr %5, align 8, !tbaa !9
  %1015 = getelementptr inbounds %struct.my_struct, ptr %1014, i32 0, i32 2
  %1016 = load ptr, ptr @users, align 8, !tbaa !9
  %1017 = getelementptr inbounds %struct.my_struct, ptr %1016, i32 0, i32 2
  %1018 = getelementptr inbounds %struct.UT_hash_handle, ptr %1017, i32 0, i32 0
  %1019 = load ptr, ptr %1018, align 8, !tbaa !14
  %1020 = getelementptr inbounds %struct.UT_hash_table, ptr %1019, i32 0, i32 4
  store ptr %1015, ptr %1020, align 8, !tbaa !33
  br label %1021

1021:                                             ; preds = %985
  br label %1022

1022:                                             ; preds = %1021
  br label %1023

1023:                                             ; preds = %1022, %975
  br label %1024

1024:                                             ; preds = %1023
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  %1025 = load ptr, ptr @users, align 8, !tbaa !9
  %1026 = getelementptr inbounds %struct.my_struct, ptr %1025, i32 0, i32 2
  %1027 = getelementptr inbounds %struct.UT_hash_handle, ptr %1026, i32 0, i32 0
  %1028 = load ptr, ptr %1027, align 8, !tbaa !14
  %1029 = getelementptr inbounds %struct.UT_hash_table, ptr %1028, i32 0, i32 3
  %1030 = load i32, ptr %1029, align 8, !tbaa !37
  %1031 = add i32 %1030, 1
  store i32 %1031, ptr %1029, align 8, !tbaa !37
  br label %1032

1032:                                             ; preds = %1024
  %1033 = load i32, ptr %12, align 4, !tbaa !5
  %1034 = load ptr, ptr @users, align 8, !tbaa !9
  %1035 = getelementptr inbounds %struct.my_struct, ptr %1034, i32 0, i32 2
  %1036 = getelementptr inbounds %struct.UT_hash_handle, ptr %1035, i32 0, i32 0
  %1037 = load ptr, ptr %1036, align 8, !tbaa !14
  %1038 = getelementptr inbounds %struct.UT_hash_table, ptr %1037, i32 0, i32 1
  %1039 = load i32, ptr %1038, align 8, !tbaa !17
  %1040 = sub i32 %1039, 1
  %1041 = and i32 %1033, %1040
  store i32 %1041, ptr %17, align 4, !tbaa !5
  br label %1042

1042:                                             ; preds = %1032
  br label %1043

1043:                                             ; preds = %1042
  br label %1044

1044:                                             ; preds = %1043
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #7
  %1045 = load ptr, ptr @users, align 8, !tbaa !9
  %1046 = getelementptr inbounds %struct.my_struct, ptr %1045, i32 0, i32 2
  %1047 = getelementptr inbounds %struct.UT_hash_handle, ptr %1046, i32 0, i32 0
  %1048 = load ptr, ptr %1047, align 8, !tbaa !14
  %1049 = getelementptr inbounds %struct.UT_hash_table, ptr %1048, i32 0, i32 0
  %1050 = load ptr, ptr %1049, align 8, !tbaa !20
  %1051 = load i32, ptr %17, align 4, !tbaa !5
  %1052 = zext i32 %1051 to i64
  %1053 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1050, i64 %1052
  store ptr %1053, ptr %18, align 8, !tbaa !9
  %1054 = load ptr, ptr %18, align 8, !tbaa !9
  %1055 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1054, i32 0, i32 1
  %1056 = load i32, ptr %1055, align 8, !tbaa !38
  %1057 = add i32 %1056, 1
  store i32 %1057, ptr %1055, align 8, !tbaa !38
  %1058 = load ptr, ptr %18, align 8, !tbaa !9
  %1059 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1058, i32 0, i32 0
  %1060 = load ptr, ptr %1059, align 8, !tbaa !21
  %1061 = load ptr, ptr %5, align 8, !tbaa !9
  %1062 = getelementptr inbounds %struct.my_struct, ptr %1061, i32 0, i32 2
  %1063 = getelementptr inbounds %struct.UT_hash_handle, ptr %1062, i32 0, i32 4
  store ptr %1060, ptr %1063, align 8, !tbaa !27
  %1064 = load ptr, ptr %5, align 8, !tbaa !9
  %1065 = getelementptr inbounds %struct.my_struct, ptr %1064, i32 0, i32 2
  %1066 = getelementptr inbounds %struct.UT_hash_handle, ptr %1065, i32 0, i32 3
  store ptr null, ptr %1066, align 8, !tbaa !39
  %1067 = load ptr, ptr %18, align 8, !tbaa !9
  %1068 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1067, i32 0, i32 0
  %1069 = load ptr, ptr %1068, align 8, !tbaa !21
  %1070 = icmp ne ptr %1069, null
  br i1 %1070, label %1071, label %1078

1071:                                             ; preds = %1044
  %1072 = load ptr, ptr %5, align 8, !tbaa !9
  %1073 = getelementptr inbounds %struct.my_struct, ptr %1072, i32 0, i32 2
  %1074 = load ptr, ptr %18, align 8, !tbaa !9
  %1075 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1074, i32 0, i32 0
  %1076 = load ptr, ptr %1075, align 8, !tbaa !21
  %1077 = getelementptr inbounds %struct.UT_hash_handle, ptr %1076, i32 0, i32 3
  store ptr %1073, ptr %1077, align 8, !tbaa !40
  br label %1078

1078:                                             ; preds = %1071, %1044
  %1079 = load ptr, ptr %5, align 8, !tbaa !9
  %1080 = getelementptr inbounds %struct.my_struct, ptr %1079, i32 0, i32 2
  %1081 = load ptr, ptr %18, align 8, !tbaa !9
  %1082 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1081, i32 0, i32 0
  store ptr %1080, ptr %1082, align 8, !tbaa !21
  %1083 = load ptr, ptr %18, align 8, !tbaa !9
  %1084 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1083, i32 0, i32 1
  %1085 = load i32, ptr %1084, align 8, !tbaa !38
  %1086 = load ptr, ptr %18, align 8, !tbaa !9
  %1087 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1086, i32 0, i32 2
  %1088 = load i32, ptr %1087, align 4, !tbaa !41
  %1089 = add i32 %1088, 1
  %1090 = mul i32 %1089, 10
  %1091 = icmp uge i32 %1085, %1090
  br i1 %1091, label %1092, label %1356

1092:                                             ; preds = %1078
  %1093 = load ptr, ptr %5, align 8, !tbaa !9
  %1094 = getelementptr inbounds %struct.my_struct, ptr %1093, i32 0, i32 2
  %1095 = getelementptr inbounds %struct.UT_hash_handle, ptr %1094, i32 0, i32 0
  %1096 = load ptr, ptr %1095, align 8, !tbaa !14
  %1097 = getelementptr inbounds %struct.UT_hash_table, ptr %1096, i32 0, i32 9
  %1098 = load i32, ptr %1097, align 4, !tbaa !42
  %1099 = icmp ne i32 %1098, 0
  br i1 %1099, label %1356, label %1100

1100:                                             ; preds = %1092
  br label %1101

1101:                                             ; preds = %1100
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %24) #7
  %1102 = load ptr, ptr %5, align 8, !tbaa !9
  %1103 = getelementptr inbounds %struct.my_struct, ptr %1102, i32 0, i32 2
  %1104 = getelementptr inbounds %struct.UT_hash_handle, ptr %1103, i32 0, i32 0
  %1105 = load ptr, ptr %1104, align 8, !tbaa !14
  %1106 = getelementptr inbounds %struct.UT_hash_table, ptr %1105, i32 0, i32 1
  %1107 = load i32, ptr %1106, align 8, !tbaa !17
  %1108 = zext i32 %1107 to i64
  %1109 = mul i64 16, %1108
  %1110 = mul i64 %1109, 2
  %1111 = call noalias ptr @malloc(i64 noundef %1110) #9
  store ptr %1111, ptr %23, align 8, !tbaa !9
  %1112 = load ptr, ptr %23, align 8, !tbaa !9
  %1113 = icmp ne ptr %1112, null
  br i1 %1113, label %1115, label %1114

1114:                                             ; preds = %1101
  call void @exit(i32 noundef -1) #10
  unreachable

1115:                                             ; preds = %1101
  %1116 = load ptr, ptr %23, align 8, !tbaa !9
  %1117 = load ptr, ptr %5, align 8, !tbaa !9
  %1118 = getelementptr inbounds %struct.my_struct, ptr %1117, i32 0, i32 2
  %1119 = getelementptr inbounds %struct.UT_hash_handle, ptr %1118, i32 0, i32 0
  %1120 = load ptr, ptr %1119, align 8, !tbaa !14
  %1121 = getelementptr inbounds %struct.UT_hash_table, ptr %1120, i32 0, i32 1
  %1122 = load i32, ptr %1121, align 8, !tbaa !17
  %1123 = zext i32 %1122 to i64
  %1124 = mul i64 16, %1123
  %1125 = mul i64 %1124, 2
  call void @llvm.memset.p0.i64(ptr align 8 %1116, i8 0, i64 %1125, i1 false)
  %1126 = load ptr, ptr %5, align 8, !tbaa !9
  %1127 = getelementptr inbounds %struct.my_struct, ptr %1126, i32 0, i32 2
  %1128 = getelementptr inbounds %struct.UT_hash_handle, ptr %1127, i32 0, i32 0
  %1129 = load ptr, ptr %1128, align 8, !tbaa !14
  %1130 = getelementptr inbounds %struct.UT_hash_table, ptr %1129, i32 0, i32 3
  %1131 = load i32, ptr %1130, align 8, !tbaa !37
  %1132 = load ptr, ptr %5, align 8, !tbaa !9
  %1133 = getelementptr inbounds %struct.my_struct, 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 !14
  %1136 = getelementptr inbounds %struct.UT_hash_table, ptr %1135, i32 0, i32 2
  %1137 = load i32, ptr %1136, align 4, !tbaa !34
  %1138 = add i32 %1137, 1
  %1139 = lshr i32 %1131, %1138
  %1140 = load ptr, ptr %5, align 8, !tbaa !9
  %1141 = getelementptr inbounds %struct.my_struct, ptr %1140, i32 0, i32 2
  %1142 = getelementptr inbounds %struct.UT_hash_handle, ptr %1141, i32 0, i32 0
  %1143 = load ptr, ptr %1142, align 8, !tbaa !14
  %1144 = getelementptr inbounds %struct.UT_hash_table, ptr %1143, i32 0, i32 3
  %1145 = load i32, ptr %1144, align 8, !tbaa !37
  %1146 = load ptr, ptr %5, align 8, !tbaa !9
  %1147 = getelementptr inbounds %struct.my_struct, 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 !14
  %1150 = getelementptr inbounds %struct.UT_hash_table, ptr %1149, i32 0, i32 1
  %1151 = load i32, ptr %1150, align 8, !tbaa !17
  %1152 = mul i32 %1151, 2
  %1153 = sub i32 %1152, 1
  %1154 = and i32 %1145, %1153
  %1155 = icmp ne i32 %1154, 0
  %1156 = zext i1 %1155 to i64
  %1157 = select i1 %1155, i32 1, i32 0
  %1158 = add i32 %1139, %1157
  %1159 = load ptr, ptr %5, align 8, !tbaa !9
  %1160 = getelementptr inbounds %struct.my_struct, ptr %1159, i32 0, i32 2
  %1161 = getelementptr inbounds %struct.UT_hash_handle, ptr %1160, i32 0, i32 0
  %1162 = load ptr, ptr %1161, align 8, !tbaa !14
  %1163 = getelementptr inbounds %struct.UT_hash_table, ptr %1162, i32 0, i32 6
  store i32 %1158, ptr %1163, align 8, !tbaa !43
  %1164 = load ptr, ptr %5, align 8, !tbaa !9
  %1165 = getelementptr inbounds %struct.my_struct, ptr %1164, i32 0, i32 2
  %1166 = getelementptr inbounds %struct.UT_hash_handle, ptr %1165, i32 0, i32 0
  %1167 = load ptr, ptr %1166, align 8, !tbaa !14
  %1168 = getelementptr inbounds %struct.UT_hash_table, ptr %1167, i32 0, i32 7
  store i32 0, ptr %1168, align 4, !tbaa !44
  store i32 0, ptr %20, align 4, !tbaa !5
  br label %1169

1169:                                             ; preds = %1279, %1115
  %1170 = load i32, ptr %20, align 4, !tbaa !5
  %1171 = load ptr, ptr %5, align 8, !tbaa !9
  %1172 = getelementptr inbounds %struct.my_struct, ptr %1171, i32 0, i32 2
  %1173 = getelementptr inbounds %struct.UT_hash_handle, ptr %1172, i32 0, i32 0
  %1174 = load ptr, ptr %1173, align 8, !tbaa !14
  %1175 = getelementptr inbounds %struct.UT_hash_table, ptr %1174, i32 0, i32 1
  %1176 = load i32, ptr %1175, align 8, !tbaa !17
  %1177 = icmp ult i32 %1170, %1176
  br i1 %1177, label %1178, label %1282

1178:                                             ; preds = %1169
  %1179 = load ptr, ptr %5, align 8, !tbaa !9
  %1180 = getelementptr inbounds %struct.my_struct, ptr %1179, i32 0, i32 2
  %1181 = getelementptr inbounds %struct.UT_hash_handle, ptr %1180, i32 0, i32 0
  %1182 = load ptr, ptr %1181, align 8, !tbaa !14
  %1183 = getelementptr inbounds %struct.UT_hash_table, ptr %1182, i32 0, i32 0
  %1184 = load ptr, ptr %1183, align 8, !tbaa !20
  %1185 = load i32, ptr %20, align 4, !tbaa !5
  %1186 = zext i32 %1185 to i64
  %1187 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1184, i64 %1186
  %1188 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1187, i32 0, i32 0
  %1189 = load ptr, ptr %1188, align 8, !tbaa !21
  store ptr %1189, ptr %21, align 8, !tbaa !9
  br label %1190

1190:                                             ; preds = %1273, %1178
  %1191 = load ptr, ptr %21, align 8, !tbaa !9
  %1192 = icmp ne ptr %1191, null
  br i1 %1192, label %1193, label %1278

1193:                                             ; preds = %1190
  %1194 = load ptr, ptr %21, align 8, !tbaa !9
  %1195 = getelementptr inbounds %struct.UT_hash_handle, ptr %1194, i32 0, i32 4
  %1196 = load ptr, ptr %1195, align 8, !tbaa !45
  store ptr %1196, ptr %22, align 8, !tbaa !9
  br label %1197

1197:                                             ; preds = %1193
  %1198 = load ptr, ptr %21, align 8, !tbaa !9
  %1199 = getelementptr inbounds %struct.UT_hash_handle, ptr %1198, i32 0, i32 7
  %1200 = load i32, ptr %1199, align 4, !tbaa !46
  %1201 = load ptr, ptr %5, align 8, !tbaa !9
  %1202 = getelementptr inbounds %struct.my_struct, ptr %1201, i32 0, i32 2
  %1203 = getelementptr inbounds %struct.UT_hash_handle, ptr %1202, i32 0, i32 0
  %1204 = load ptr, ptr %1203, align 8, !tbaa !14
  %1205 = getelementptr inbounds %struct.UT_hash_table, ptr %1204, i32 0, i32 1
  %1206 = load i32, ptr %1205, align 8, !tbaa !17
  %1207 = mul i32 %1206, 2
  %1208 = sub i32 %1207, 1
  %1209 = and i32 %1200, %1208
  store i32 %1209, ptr %19, align 4, !tbaa !5
  br label %1210

1210:                                             ; preds = %1197
  br label %1211

1211:                                             ; preds = %1210
  %1212 = load ptr, ptr %23, align 8, !tbaa !9
  %1213 = load i32, ptr %19, align 4, !tbaa !5
  %1214 = zext i32 %1213 to i64
  %1215 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1212, i64 %1214
  store ptr %1215, ptr %24, align 8, !tbaa !9
  %1216 = load ptr, ptr %24, align 8, !tbaa !9
  %1217 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1216, i32 0, i32 1
  %1218 = load i32, ptr %1217, align 8, !tbaa !38
  %1219 = add i32 %1218, 1
  store i32 %1219, ptr %1217, align 8, !tbaa !38
  %1220 = load ptr, ptr %5, align 8, !tbaa !9
  %1221 = getelementptr inbounds %struct.my_struct, 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 !14
  %1224 = getelementptr inbounds %struct.UT_hash_table, ptr %1223, i32 0, i32 6
  %1225 = load i32, ptr %1224, align 8, !tbaa !43
  %1226 = icmp ugt i32 %1219, %1225
  br i1 %1226, label %1227, label %1255

1227:                                             ; preds = %1211
  %1228 = load ptr, ptr %5, align 8, !tbaa !9
  %1229 = getelementptr inbounds %struct.my_struct, ptr %1228, i32 0, i32 2
  %1230 = getelementptr inbounds %struct.UT_hash_handle, ptr %1229, i32 0, i32 0
  %1231 = load ptr, ptr %1230, align 8, !tbaa !14
  %1232 = getelementptr inbounds %struct.UT_hash_table, ptr %1231, i32 0, i32 7
  %1233 = load i32, ptr %1232, align 4, !tbaa !44
  %1234 = add i32 %1233, 1
  store i32 %1234, ptr %1232, align 4, !tbaa !44
  %1235 = load ptr, ptr %24, align 8, !tbaa !9
  %1236 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1235, i32 0, i32 1
  %1237 = load i32, ptr %1236, align 8, !tbaa !38
  %1238 = load ptr, ptr %24, align 8, !tbaa !9
  %1239 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1238, i32 0, i32 2
  %1240 = load i32, ptr %1239, align 4, !tbaa !41
  %1241 = load ptr, ptr %5, align 8, !tbaa !9
  %1242 = getelementptr inbounds %struct.my_struct, ptr %1241, i32 0, i32 2
  %1243 = getelementptr inbounds %struct.UT_hash_handle, ptr %1242, i32 0, i32 0
  %1244 = load ptr, ptr %1243, align 8, !tbaa !14
  %1245 = getelementptr inbounds %struct.UT_hash_table, ptr %1244, i32 0, i32 6
  %1246 = load i32, ptr %1245, align 8, !tbaa !43
  %1247 = mul i32 %1240, %1246
  %1248 = icmp ugt i32 %1237, %1247
  br i1 %1248, label %1249, label %1254

1249:                                             ; preds = %1227
  %1250 = load ptr, ptr %24, align 8, !tbaa !9
  %1251 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1250, i32 0, i32 2
  %1252 = load i32, ptr %1251, align 4, !tbaa !41
  %1253 = add i32 %1252, 1
  store i32 %1253, ptr %1251, align 4, !tbaa !41
  br label %1254

1254:                                             ; preds = %1249, %1227
  br label %1255

1255:                                             ; preds = %1254, %1211
  %1256 = load ptr, ptr %21, align 8, !tbaa !9
  %1257 = getelementptr inbounds %struct.UT_hash_handle, ptr %1256, i32 0, i32 3
  store ptr null, ptr %1257, align 8, !tbaa !40
  %1258 = load ptr, ptr %24, align 8, !tbaa !9
  %1259 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1258, i32 0, i32 0
  %1260 = load ptr, ptr %1259, align 8, !tbaa !21
  %1261 = load ptr, ptr %21, align 8, !tbaa !9
  %1262 = getelementptr inbounds %struct.UT_hash_handle, ptr %1261, i32 0, i32 4
  store ptr %1260, ptr %1262, align 8, !tbaa !45
  %1263 = load ptr, ptr %24, align 8, !tbaa !9
  %1264 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1263, i32 0, i32 0
  %1265 = load ptr, ptr %1264, align 8, !tbaa !21
  %1266 = icmp ne ptr %1265, null
  br i1 %1266, label %1267, label %1273

1267:                                             ; preds = %1255
  %1268 = load ptr, ptr %21, align 8, !tbaa !9
  %1269 = load ptr, ptr %24, align 8, !tbaa !9
  %1270 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1269, i32 0, i32 0
  %1271 = load ptr, ptr %1270, align 8, !tbaa !21
  %1272 = getelementptr inbounds %struct.UT_hash_handle, ptr %1271, i32 0, i32 3
  store ptr %1268, ptr %1272, align 8, !tbaa !40
  br label %1273

1273:                                             ; preds = %1267, %1255
  %1274 = load ptr, ptr %21, align 8, !tbaa !9
  %1275 = load ptr, ptr %24, align 8, !tbaa !9
  %1276 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1275, i32 0, i32 0
  store ptr %1274, ptr %1276, align 8, !tbaa !21
  %1277 = load ptr, ptr %22, align 8, !tbaa !9
  store ptr %1277, ptr %21, align 8, !tbaa !9
  br label %1190, !llvm.loop !47

1278:                                             ; preds = %1190
  br label %1279

1279:                                             ; preds = %1278
  %1280 = load i32, ptr %20, align 4, !tbaa !5
  %1281 = add i32 %1280, 1
  store i32 %1281, ptr %20, align 4, !tbaa !5
  br label %1169, !llvm.loop !48

1282:                                             ; preds = %1169
  %1283 = load ptr, ptr %5, align 8, !tbaa !9
  %1284 = getelementptr inbounds %struct.my_struct, ptr %1283, i32 0, i32 2
  %1285 = getelementptr inbounds %struct.UT_hash_handle, ptr %1284, i32 0, i32 0
  %1286 = load ptr, ptr %1285, align 8, !tbaa !14
  %1287 = getelementptr inbounds %struct.UT_hash_table, ptr %1286, i32 0, i32 0
  %1288 = load ptr, ptr %1287, align 8, !tbaa !20
  call void @free(ptr noundef %1288) #7
  %1289 = load ptr, ptr %5, align 8, !tbaa !9
  %1290 = getelementptr inbounds %struct.my_struct, ptr %1289, i32 0, i32 2
  %1291 = getelementptr inbounds %struct.UT_hash_handle, ptr %1290, i32 0, i32 0
  %1292 = load ptr, ptr %1291, align 8, !tbaa !14
  %1293 = getelementptr inbounds %struct.UT_hash_table, ptr %1292, i32 0, i32 1
  %1294 = load i32, ptr %1293, align 8, !tbaa !17
  %1295 = mul i32 %1294, 2
  store i32 %1295, ptr %1293, align 8, !tbaa !17
  %1296 = load ptr, ptr %5, align 8, !tbaa !9
  %1297 = getelementptr inbounds %struct.my_struct, ptr %1296, i32 0, i32 2
  %1298 = getelementptr inbounds %struct.UT_hash_handle, ptr %1297, i32 0, i32 0
  %1299 = load ptr, ptr %1298, align 8, !tbaa !14
  %1300 = getelementptr inbounds %struct.UT_hash_table, ptr %1299, i32 0, i32 2
  %1301 = load i32, ptr %1300, align 4, !tbaa !34
  %1302 = add i32 %1301, 1
  store i32 %1302, ptr %1300, align 4, !tbaa !34
  %1303 = load ptr, ptr %23, align 8, !tbaa !9
  %1304 = load ptr, ptr %5, align 8, !tbaa !9
  %1305 = getelementptr inbounds %struct.my_struct, ptr %1304, i32 0, i32 2
  %1306 = getelementptr inbounds %struct.UT_hash_handle, ptr %1305, i32 0, i32 0
  %1307 = load ptr, ptr %1306, align 8, !tbaa !14
  %1308 = getelementptr inbounds %struct.UT_hash_table, ptr %1307, i32 0, i32 0
  store ptr %1303, ptr %1308, align 8, !tbaa !20
  %1309 = load ptr, ptr %5, align 8, !tbaa !9
  %1310 = getelementptr inbounds %struct.my_struct, ptr %1309, i32 0, i32 2
  %1311 = getelementptr inbounds %struct.UT_hash_handle, ptr %1310, i32 0, i32 0
  %1312 = load ptr, ptr %1311, align 8, !tbaa !14
  %1313 = getelementptr inbounds %struct.UT_hash_table, ptr %1312, i32 0, i32 7
  %1314 = load i32, ptr %1313, align 4, !tbaa !44
  %1315 = load ptr, ptr %5, align 8, !tbaa !9
  %1316 = getelementptr inbounds %struct.my_struct, 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 !14
  %1319 = getelementptr inbounds %struct.UT_hash_table, ptr %1318, i32 0, i32 3
  %1320 = load i32, ptr %1319, align 8, !tbaa !37
  %1321 = lshr i32 %1320, 1
  %1322 = icmp ugt i32 %1314, %1321
  br i1 %1322, label %1323, label %1331

1323:                                             ; preds = %1282
  %1324 = load ptr, ptr %5, align 8, !tbaa !9
  %1325 = getelementptr inbounds %struct.my_struct, ptr %1324, i32 0, i32 2
  %1326 = getelementptr inbounds %struct.UT_hash_handle, ptr %1325, i32 0, i32 0
  %1327 = load ptr, ptr %1326, align 8, !tbaa !14
  %1328 = getelementptr inbounds %struct.UT_hash_table, ptr %1327, i32 0, i32 8
  %1329 = load i32, ptr %1328, align 8, !tbaa !49
  %1330 = add i32 %1329, 1
  br label %1332

1331:                                             ; preds = %1282
  br label %1332

1332:                                             ; preds = %1331, %1323
  %1333 = phi i32 [ %1330, %1323 ], [ 0, %1331 ]
  %1334 = load ptr, ptr %5, align 8, !tbaa !9
  %1335 = getelementptr inbounds %struct.my_struct, 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 !14
  %1338 = getelementptr inbounds %struct.UT_hash_table, ptr %1337, i32 0, i32 8
  store i32 %1333, ptr %1338, align 8, !tbaa !49
  %1339 = load ptr, ptr %5, align 8, !tbaa !9
  %1340 = getelementptr inbounds %struct.my_struct, 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 !14
  %1343 = getelementptr inbounds %struct.UT_hash_table, ptr %1342, i32 0, i32 8
  %1344 = load i32, ptr %1343, align 8, !tbaa !49
  %1345 = icmp ugt i32 %1344, 1
  br i1 %1345, label %1346, label %1352

1346:                                             ; preds = %1332
  %1347 = load ptr, ptr %5, align 8, !tbaa !9
  %1348 = getelementptr inbounds %struct.my_struct, ptr %1347, i32 0, i32 2
  %1349 = getelementptr inbounds %struct.UT_hash_handle, ptr %1348, i32 0, i32 0
  %1350 = load ptr, ptr %1349, align 8, !tbaa !14
  %1351 = getelementptr inbounds %struct.UT_hash_table, ptr %1350, i32 0, i32 9
  store i32 1, ptr %1351, align 4, !tbaa !42
  br label %1352

1352:                                             ; preds = %1346, %1332
  br label %1353

1353:                                             ; preds = %1352
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  br label %1354

1354:                                             ; preds = %1353
  br label %1355

1355:                                             ; preds = %1354
  br label %1356

1356:                                             ; preds = %1355, %1092, %1078
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #7
  br label %1357

1357:                                             ; preds = %1356
  br label %1358

1358:                                             ; preds = %1357
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  br label %1359

1359:                                             ; preds = %1358
  br label %1360

1360:                                             ; preds = %1359
  br label %1361

1361:                                             ; preds = %1360
  br label %1362

1362:                                             ; preds = %1361
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  br label %1363

1363:                                             ; preds = %1362
  br label %1364

1364:                                             ; preds = %1363
  br label %1365

1365:                                             ; preds = %1364, %505
  %1366 = load ptr, ptr %5, align 8, !tbaa !9
  %1367 = getelementptr inbounds %struct.my_struct, ptr %1366, i32 0, i32 1
  %1368 = getelementptr inbounds [21 x i8], ptr %1367, i64 0, i64 0
  %1369 = load ptr, ptr %4, align 8, !tbaa !9
  %1370 = call ptr @strcpy(ptr noundef %1368, ptr noundef %1369) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %5) #7
  ret void
}

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

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

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

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

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

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

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

; Function Attrs: nounwind
declare ptr @strcpy(ptr noundef, ptr noundef) #6

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

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

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


; Optimized IR (opt -passes='default<O3>'):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.UT_hash_bucket = type { ptr, i32, i32 }

@users = external dso_local local_unnamed_addr global ptr, align 8

; Function Attrs: nounwind uwtable
define dso_local void @add_user(i32 noundef %0, ptr nocapture noundef readonly %1) local_unnamed_addr #0 {
  %3 = alloca i32, align 4
  store i32 %0, ptr %3, align 4, !tbaa !5
  %4 = load ptr, ptr @users, align 8, !tbaa !9
  %.not = icmp eq ptr %4, null
  %.pre525 = and i32 %0, -16777216
  %.pre527 = and i32 %0, 16711680
  %.pre531 = and i32 %0, 65280
  %.pre535 = and i32 %0, 255
  %.pre537 = add i32 %.pre525, 17973517
  %.pre539 = add i32 %.pre537, %.pre527
  %.pre541 = add i32 %.pre539, %.pre531
  %.pre543 = add i32 %.pre541, %.pre535
  %.pre545 = xor i32 %.pre543, 522093
  %.pre547 = sub i32 -1622558010, %.pre545
  %.pre549 = shl i32 %.pre545, 8
  %.pre551 = xor i32 %.pre547, %.pre549
  %.pre553 = add i32 %.pre545, %.pre551
  %.pre555 = sub i32 -17973517, %.pre553
  %.pre557 = lshr i32 %.pre551, 13
  %.pre559 = xor i32 %.pre555, %.pre557
  %.pre561 = add i32 %.pre551, %.pre559
  %.pre563 = sub i32 %.pre545, %.pre561
  %.pre565 = lshr i32 %.pre559, 12
  %.pre567 = xor i32 %.pre563, %.pre565
  %.pre569 = add i32 %.pre559, %.pre567
  %.pre571 = sub i32 %.pre551, %.pre569
  %.pre573 = shl i32 %.pre567, 16
  %.pre575 = xor i32 %.pre571, %.pre573
  %.pre577 = add i32 %.pre567, %.pre575
  %.pre579 = sub i32 %.pre559, %.pre577
  %.pre581 = lshr i32 %.pre575, 5
  %.pre583 = xor i32 %.pre579, %.pre581
  %.pre585 = add i32 %.pre575, %.pre583
  %.pre587 = sub i32 %.pre567, %.pre585
  %.pre589 = lshr i32 %.pre583, 3
  %.pre591 = xor i32 %.pre587, %.pre589
  %.pre593 = add i32 %.pre583, %.pre591
  %.pre595 = sub i32 %.pre575, %.pre593
  %.pre597 = shl i32 %.pre591, 10
  %.pre599 = xor i32 %.pre595, %.pre597
  %.pre601 = add i32 %.pre591, %.pre599
  %.pre603 = sub i32 %.pre583, %.pre601
  %.pre605 = lshr i32 %.pre599, 15
  %.pre607 = xor i32 %.pre603, %.pre605
  br i1 %.not, label %.loopexit, label %5

5:                                                ; preds = %2
  %6 = getelementptr inbounds i8, ptr %4, i64 32
  %7 = load ptr, ptr %6, align 8, !tbaa !11
  %8 = getelementptr inbounds i8, ptr %7, i64 8
  %9 = load i32, ptr %8, align 8, !tbaa !14
  %10 = add i32 %9, -1
  %11 = and i32 %.pre607, %10
  %12 = load ptr, ptr %7, align 8, !tbaa !17
  %13 = zext i32 %11 to i64
  %14 = getelementptr inbounds %struct.UT_hash_bucket, ptr %12, i64 %13
  %15 = load ptr, ptr %14, align 8, !tbaa !18
  %.not465 = icmp eq ptr %15, null
  br i1 %.not465, label %.loopexit, label %.lr.ph

.lr.ph:                                           ; preds = %5
  %16 = getelementptr inbounds i8, ptr %7, i64 32
  %17 = load i64, ptr %16, align 8, !tbaa !20
  %18 = sub i64 0, %17
  %19 = getelementptr inbounds i8, ptr %15, i64 %18
  %20 = getelementptr inbounds i8, ptr %7, i64 32
  br label %21

21:                                               ; preds = %36, %.lr.ph
  %.1512 = phi ptr [ %19, %.lr.ph ], [ %39, %36 ]
  %22 = getelementptr inbounds i8, ptr %.1512, i64 84
  %23 = load i32, ptr %22, align 4, !tbaa !21
  %24 = icmp eq i32 %23, %.pre607
  br i1 %24, label %25, label %33

25:                                               ; preds = %21
  %26 = getelementptr inbounds i8, ptr %.1512, i64 80
  %27 = load i32, ptr %26, align 8, !tbaa !22
  %28 = icmp eq i32 %27, 4
  br i1 %28, label %29, label %33

29:                                               ; preds = %25
  %30 = getelementptr inbounds i8, ptr %.1512, i64 72
  %31 = load ptr, ptr %30, align 8, !tbaa !23
  %bcmp = call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %31, ptr noundef nonnull dereferenceable(4) %3, i64 4)
  %32 = icmp eq i32 %bcmp, 0
  br i1 %32, label %.loopexit509, label %33

33:                                               ; preds = %29, %25, %21
  %34 = getelementptr inbounds i8, ptr %.1512, i64 64
  %35 = load ptr, ptr %34, align 8, !tbaa !24
  %.not467 = icmp eq ptr %35, null
  br i1 %.not467, label %.loopexit, label %36

36:                                               ; preds = %33
  %37 = load i64, ptr %20, align 8, !tbaa !20
  %38 = sub i64 0, %37
  %39 = getelementptr inbounds i8, ptr %35, i64 %38
  br label %21, !llvm.loop !25

.loopexit:                                        ; preds = %33, %2, %5
  %40 = tail call noalias dereferenceable_or_null(88) ptr @malloc(i64 noundef 88) #8
  store i32 %0, ptr %40, align 8, !tbaa !27
  %41 = getelementptr inbounds i8, ptr %40, i64 32
  %42 = getelementptr inbounds i8, ptr %40, i64 84
  store i32 %.pre607, ptr %42, align 4, !tbaa !21
  %43 = getelementptr inbounds i8, ptr %40, i64 72
  store ptr %40, ptr %43, align 8, !tbaa !23
  %44 = getelementptr inbounds i8, ptr %40, i64 80
  store i32 4, ptr %44, align 8, !tbaa !22
  br i1 %.not, label %45, label %56

45:                                               ; preds = %.loopexit
  %46 = getelementptr inbounds i8, ptr %40, i64 40
  %calloc615 = tail call dereferenceable_or_null(64) ptr @calloc(i64 1, i64 64)
  tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %46, i8 0, i64 16, i1 false)
  store ptr %calloc615, ptr %41, align 8, !tbaa !11
  %.not469 = icmp eq ptr %calloc615, null
  br i1 %.not469, label %47, label %48

47:                                               ; preds = %45
  tail call void @exit(i32 noundef -1) #9
  unreachable

48:                                               ; preds = %45
  %49 = getelementptr inbounds i8, ptr %calloc615, i64 24
  store ptr %41, ptr %49, align 8, !tbaa !28
  %50 = getelementptr inbounds i8, ptr %calloc615, i64 8
  store i32 32, ptr %50, align 8, !tbaa !14
  %51 = getelementptr inbounds i8, ptr %calloc615, i64 12
  store i32 5, ptr %51, align 4, !tbaa !29
  %52 = getelementptr inbounds i8, ptr %calloc615, i64 32
  store i64 32, ptr %52, align 8, !tbaa !20
  %calloc614 = tail call dereferenceable_or_null(512) ptr @calloc(i64 1, i64 512)
  store ptr %calloc614, ptr %calloc615, align 8, !tbaa !17
  %53 = getelementptr inbounds i8, ptr %calloc615, i64 56
  store i32 -1609490463, ptr %53, align 8, !tbaa !30
  %.not470 = icmp eq ptr %calloc614, null
  br i1 %.not470, label %54, label %55

54:                                               ; preds = %48
  tail call void @exit(i32 noundef -1) #9
  unreachable

55:                                               ; preds = %48
  store ptr %40, ptr @users, align 8, !tbaa !9
  br label %68

56:                                               ; preds = %.loopexit
  %57 = getelementptr inbounds i8, ptr %4, i64 32
  %58 = load ptr, ptr %57, align 8, !tbaa !11
  store ptr %58, ptr %41, align 8, !tbaa !11
  %59 = getelementptr inbounds i8, ptr %40, i64 48
  store ptr null, ptr %59, align 8, !tbaa !31
  %60 = getelementptr inbounds i8, ptr %58, i64 24
  %61 = load ptr, ptr %60, align 8, !tbaa !28
  %62 = getelementptr inbounds i8, ptr %58, i64 32
  %63 = load i64, ptr %62, align 8, !tbaa !20
  %64 = sub i64 0, %63
  %65 = getelementptr inbounds i8, ptr %61, i64 %64
  %66 = getelementptr inbounds i8, ptr %40, i64 40
  store ptr %65, ptr %66, align 8, !tbaa !32
  %67 = getelementptr inbounds i8, ptr %61, i64 16
  store ptr %40, ptr %67, align 8, !tbaa !33
  store ptr %41, ptr %60, align 8, !tbaa !28
  %.phi.trans.insert = getelementptr inbounds i8, ptr %58, i64 8
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !14
  %.pre523 = load ptr, ptr %58, align 8, !tbaa !17
  br label %68

68:                                               ; preds = %55, %56
  %69 = phi ptr [ %calloc614, %55 ], [ %.pre523, %56 ]
  %70 = phi i32 [ 32, %55 ], [ %.pre, %56 ]
  %71 = phi ptr [ %calloc615, %55 ], [ %58, %56 ]
  %72 = getelementptr inbounds i8, ptr %71, i64 16
  %73 = load i32, ptr %72, align 8, !tbaa !34
  %74 = add i32 %73, 1
  store i32 %74, ptr %72, align 8, !tbaa !34
  %75 = add i32 %70, -1
  %76 = and i32 %75, %.pre607
  %77 = zext i32 %76 to i64
  %78 = getelementptr inbounds %struct.UT_hash_bucket, ptr %69, i64 %77
  %79 = getelementptr inbounds i8, ptr %78, i64 8
  %80 = load i32, ptr %79, align 8, !tbaa !35
  %81 = add i32 %80, 1
  store i32 %81, ptr %79, align 8, !tbaa !35
  %82 = load ptr, ptr %78, align 8, !tbaa !18
  %83 = getelementptr inbounds i8, ptr %40, i64 64
  store ptr %82, ptr %83, align 8, !tbaa !24
  %84 = getelementptr inbounds i8, ptr %40, i64 56
  store ptr null, ptr %84, align 8, !tbaa !36
  %.not471 = icmp eq ptr %82, null
  br i1 %.not471, label %87, label %85

85:                                               ; preds = %68
  %86 = getelementptr inbounds i8, ptr %82, i64 24
  store ptr %41, ptr %86, align 8, !tbaa !37
  br label %87

87:                                               ; preds = %85, %68
  store ptr %41, ptr %78, align 8, !tbaa !18
  %88 = getelementptr inbounds i8, ptr %78, i64 12
  %89 = load i32, ptr %88, align 4, !tbaa !38
  %90 = mul i32 %89, 10
  %91 = add i32 %90, 10
  %.not472 = icmp ult i32 %81, %91
  br i1 %.not472, label %.loopexit509, label %92

92:                                               ; preds = %87
  %93 = getelementptr inbounds i8, ptr %71, i64 52
  %94 = load i32, ptr %93, align 4, !tbaa !39
  %.not473 = icmp eq i32 %94, 0
  br i1 %.not473, label %95, label %.loopexit509

95:                                               ; preds = %92
  %96 = zext i32 %70 to i64
  %97 = shl nuw nsw i64 %96, 5
  %calloc = tail call ptr @calloc(i64 1, i64 %97)
  %.not474 = icmp eq ptr %calloc, null
  br i1 %.not474, label %98, label %99

98:                                               ; preds = %95
  tail call void @exit(i32 noundef -1) #9
  unreachable

99:                                               ; preds = %95
  %100 = getelementptr inbounds i8, ptr %71, i64 12
  %101 = load i32, ptr %100, align 4, !tbaa !29
  %102 = add i32 %101, 1
  %103 = lshr i32 %74, %102
  %104 = shl i32 %70, 1
  %105 = add i32 %104, -1
  %106 = and i32 %105, %74
  %.not475 = icmp ne i32 %106, 0
  %107 = zext i1 %.not475 to i32
  %108 = add i32 %103, %107
  %109 = getelementptr inbounds i8, ptr %71, i64 40
  store i32 %108, ptr %109, align 8, !tbaa !40
  %110 = getelementptr inbounds i8, ptr %71, i64 44
  store i32 0, ptr %110, align 4, !tbaa !41
  %.not520 = icmp eq i32 %70, 0
  br i1 %.not520, label %._crit_edge519, label %.lr.ph518

.lr.ph518:                                        ; preds = %99, %._crit_edge
  %111 = phi i32 [ %141, %._crit_edge ], [ 0, %99 ]
  %indvars.iv = phi i64 [ %indvars.iv.next, %._crit_edge ], [ 0, %99 ]
  %112 = getelementptr inbounds %struct.UT_hash_bucket, ptr %69, i64 %indvars.iv
  %113 = load ptr, ptr %112, align 8, !tbaa !18
  %.not476513 = icmp eq ptr %113, null
  br i1 %.not476513, label %._crit_edge, label %.lr.ph515

.lr.ph515:                                        ; preds = %.lr.ph518, %140
  %114 = phi i32 [ %135, %140 ], [ %111, %.lr.ph518 ]
  %.0414514 = phi ptr [ %116, %140 ], [ %113, %.lr.ph518 ]
  %115 = getelementptr inbounds i8, ptr %.0414514, i64 32
  %116 = load ptr, ptr %115, align 8, !tbaa !42
  %117 = getelementptr inbounds i8, ptr %.0414514, i64 52
  %118 = load i32, ptr %117, align 4, !tbaa !43
  %119 = and i32 %118, %105
  %120 = zext i32 %119 to i64
  %121 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc, i64 %120
  %122 = getelementptr inbounds i8, ptr %121, i64 8
  %123 = load i32, ptr %122, align 8, !tbaa !35
  %124 = add i32 %123, 1
  store i32 %124, ptr %122, align 8, !tbaa !35
  %125 = icmp ugt i32 %124, %108
  br i1 %125, label %126, label %134

126:                                              ; preds = %.lr.ph515
  %127 = add i32 %114, 1
  store i32 %127, ptr %110, align 4, !tbaa !41
  %128 = getelementptr inbounds i8, ptr %121, i64 12
  %129 = load i32, ptr %128, align 4, !tbaa !38
  %130 = mul i32 %129, %108
  %131 = icmp ugt i32 %124, %130
  br i1 %131, label %132, label %134

132:                                              ; preds = %126
  %133 = add i32 %129, 1
  store i32 %133, ptr %128, align 4, !tbaa !38
  br label %134

134:                                              ; preds = %126, %132, %.lr.ph515
  %135 = phi i32 [ %127, %126 ], [ %127, %132 ], [ %114, %.lr.ph515 ]
  %136 = getelementptr inbounds i8, ptr %.0414514, i64 24
  store ptr null, ptr %136, align 8, !tbaa !37
  %137 = load ptr, ptr %121, align 8, !tbaa !18
  store ptr %137, ptr %115, align 8, !tbaa !42
  %.not477 = icmp eq ptr %137, null
  br i1 %.not477, label %140, label %138

138:                                              ; preds = %134
  %139 = getelementptr inbounds i8, ptr %137, i64 24
  store ptr %.0414514, ptr %139, align 8, !tbaa !37
  br label %140

140:                                              ; preds = %138, %134
  store ptr %.0414514, ptr %121, align 8, !tbaa !18
  %.not476 = icmp eq ptr %116, null
  br i1 %.not476, label %._crit_edge, label %.lr.ph515, !llvm.loop !44

._crit_edge:                                      ; preds = %140, %.lr.ph518
  %141 = phi i32 [ %111, %.lr.ph518 ], [ %135, %140 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %96
  br i1 %exitcond.not, label %._crit_edge519, label %.lr.ph518, !llvm.loop !45

._crit_edge519:                                   ; preds = %._crit_edge, %99
  tail call void @free(ptr noundef %69) #10
  %142 = load ptr, ptr %41, align 8, !tbaa !11
  %143 = getelementptr inbounds i8, ptr %142, i64 8
  %144 = load i32, ptr %143, align 8, !tbaa !14
  %145 = shl i32 %144, 1
  store i32 %145, ptr %143, align 8, !tbaa !14
  %146 = getelementptr inbounds i8, ptr %142, i64 12
  %147 = load i32, ptr %146, align 4, !tbaa !29
  %148 = add i32 %147, 1
  store i32 %148, ptr %146, align 4, !tbaa !29
  store ptr %calloc, ptr %142, align 8, !tbaa !17
  %149 = getelementptr inbounds i8, ptr %142, i64 44
  %150 = load i32, ptr %149, align 4, !tbaa !41
  %151 = getelementptr inbounds i8, ptr %142, i64 16
  %152 = load i32, ptr %151, align 8, !tbaa !34
  %153 = lshr i32 %152, 1
  %154 = icmp ugt i32 %150, %153
  %155 = getelementptr inbounds i8, ptr %142, i64 48
  br i1 %154, label %156, label %.thread479

.thread479:                                       ; preds = %._crit_edge519
  store i32 0, ptr %155, align 8, !tbaa !46
  br label %.loopexit509

156:                                              ; preds = %._crit_edge519
  %157 = load i32, ptr %155, align 8, !tbaa !46
  %158 = add i32 %157, 1
  store i32 %158, ptr %155, align 8, !tbaa !46
  %159 = icmp ugt i32 %158, 1
  br i1 %159, label %160, label %.loopexit509

160:                                              ; preds = %156
  %161 = getelementptr inbounds i8, ptr %142, i64 52
  store i32 1, ptr %161, align 4, !tbaa !39
  br label %.loopexit509

.loopexit509:                                     ; preds = %29, %.thread479, %87, %92, %156, %160
  %.5 = phi ptr [ %40, %160 ], [ %40, %156 ], [ %40, %92 ], [ %40, %87 ], [ %40, %.thread479 ], [ %.1512, %29 ]
  %162 = getelementptr inbounds i8, ptr %.5, i64 4
  %163 = tail call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %162, ptr noundef nonnull dereferenceable(1) %1) #10
  ret void
}

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

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

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

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

; Function Attrs: mustprogress nofree nounwind willreturn memory(argmem: readwrite)
declare ptr @strcpy(ptr noalias noundef returned writeonly, ptr noalias nocapture noundef readonly) local_unnamed_addr #5

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

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

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

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

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


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