; LLVM IR from p4lang/p4c :: backends/ebpf/runtime (ebpf_registry)

; 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.bpf_table = type { ptr, i32, i32, i32, i32, ptr }
%struct.registry_entry = type { [256 x i8], ptr, i32, %struct.UT_hash_handle, %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 }

@stderr = external global ptr, align 8
@.str = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [34 x i8], align 1
@table_indexer = external hidden global i32, align 4
@reg_tables_name = external hidden global ptr, align 8
@reg_tables_id = external hidden global ptr, align 8

; Function Attrs: nounwind uwtable
define dso_local i32 @registry_add(ptr noundef %0) #0 {
  %2 = alloca i32, align 4
  %3 = alloca ptr, align 8
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %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 ptr, align 8
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca ptr, align 8
  %16 = alloca ptr, align 8
  %17 = alloca ptr, align 8
  %18 = alloca ptr, align 8
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca ptr, align 8
  %24 = alloca i32, align 4
  %25 = alloca ptr, align 8
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca ptr, align 8
  %29 = alloca ptr, align 8
  %30 = alloca ptr, align 8
  %31 = alloca ptr, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  call void @llvm.lifetime.start.p0(i64 8, ptr %4) #9
  %32 = load ptr, ptr %3, align 8, !tbaa !5
  %33 = getelementptr inbounds %struct.bpf_table, ptr %32, i32 0, i32 0
  %34 = load ptr, ptr %33, align 8, !tbaa !9
  %35 = call ptr @find_register(ptr noundef %34)
  store ptr %35, ptr %4, align 8, !tbaa !5
  %36 = load ptr, ptr %4, align 8, !tbaa !5
  %37 = icmp ne ptr %36, null
  br i1 %37, label %38, label %44

38:                                               ; preds = %1
  %39 = load ptr, ptr @stderr, align 8, !tbaa !5
  %40 = load ptr, ptr %3, align 8, !tbaa !5
  %41 = getelementptr inbounds %struct.bpf_table, ptr %40, i32 0, i32 0
  %42 = load ptr, ptr %41, align 8, !tbaa !9
  %43 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %39, ptr noundef @.str, ptr noundef %42) #9
  store i32 1, ptr %2, align 4
  store i32 1, ptr %5, align 4
  br label %1781

44:                                               ; preds = %1
  %45 = load ptr, ptr %3, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.bpf_table, ptr %45, i32 0, i32 0
  %47 = load ptr, ptr %46, align 8, !tbaa !9
  %48 = call i64 @strlen(ptr noundef %47) #10
  %49 = icmp ugt i64 %48, 256
  br i1 %49, label %50, label %56

50:                                               ; preds = %44
  %51 = load ptr, ptr @stderr, align 8, !tbaa !5
  %52 = load ptr, ptr %3, align 8, !tbaa !5
  %53 = getelementptr inbounds %struct.bpf_table, ptr %52, i32 0, i32 0
  %54 = load ptr, ptr %53, align 8, !tbaa !9
  %55 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %51, ptr noundef @.str.1, ptr noundef %54, i32 noundef 256) #9
  store i32 1, ptr %2, align 4
  store i32 1, ptr %5, align 4
  br label %1781

56:                                               ; preds = %44
  %57 = call noalias ptr @malloc(i64 noundef 384) #11
  store ptr %57, ptr %4, align 8, !tbaa !5
  %58 = load ptr, ptr %4, align 8, !tbaa !5
  %59 = icmp ne ptr %58, null
  br i1 %59, label %61, label %60

60:                                               ; preds = %56
  call void @perror(ptr noundef @.str.2)
  call void @exit(i32 noundef 1) #12
  unreachable

61:                                               ; preds = %56
  %62 = load ptr, ptr %4, align 8, !tbaa !5
  %63 = getelementptr inbounds %struct.registry_entry, ptr %62, i32 0, i32 0
  %64 = getelementptr inbounds [256 x i8], ptr %63, i64 0, i64 0
  %65 = load ptr, ptr %3, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.bpf_table, ptr %65, i32 0, i32 0
  %67 = load ptr, ptr %66, align 8, !tbaa !9
  %68 = load ptr, ptr %3, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.bpf_table, ptr %68, i32 0, i32 0
  %70 = load ptr, ptr %69, align 8, !tbaa !9
  %71 = call i64 @strlen(ptr noundef %70) #10
  call void @llvm.memcpy.p0.p0.i64(ptr align 8 %64, ptr align 1 %67, i64 %71, i1 false)
  %72 = load i32, ptr @table_indexer, align 4, !tbaa !12
  %73 = load ptr, ptr %4, align 8, !tbaa !5
  %74 = getelementptr inbounds %struct.registry_entry, ptr %73, i32 0, i32 2
  store i32 %72, ptr %74, align 8, !tbaa !13
  %75 = load ptr, ptr %3, align 8, !tbaa !5
  %76 = load ptr, ptr %4, align 8, !tbaa !5
  %77 = getelementptr inbounds %struct.registry_entry, ptr %76, i32 0, i32 1
  store ptr %75, ptr %77, align 8, !tbaa !16
  br label %78

78:                                               ; preds = %61
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #9
  br label %79

79:                                               ; preds = %78
  br label %80

80:                                               ; preds = %79
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %10) #9
  %81 = load ptr, ptr %4, align 8, !tbaa !5
  %82 = getelementptr inbounds %struct.registry_entry, ptr %81, i32 0, i32 0
  store ptr %82, ptr %10, align 8, !tbaa !5
  store i32 -17973521, ptr %6, align 4, !tbaa !12
  store i32 -1640531527, ptr %8, align 4, !tbaa !12
  store i32 -1640531527, ptr %7, align 4, !tbaa !12
  %83 = load ptr, ptr %3, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.bpf_table, ptr %83, i32 0, i32 0
  %85 = load ptr, ptr %84, align 8, !tbaa !9
  %86 = call i64 @strlen(ptr noundef %85) #10
  %87 = trunc i64 %86 to i32
  store i32 %87, ptr %9, align 4, !tbaa !12
  br label %88

88:                                               ; preds = %256, %80
  %89 = load i32, ptr %9, align 4, !tbaa !12
  %90 = icmp uge i32 %89, 12
  br i1 %90, label %91, label %261

91:                                               ; preds = %88
  %92 = load ptr, ptr %10, align 8, !tbaa !5
  %93 = getelementptr inbounds i8, ptr %92, i64 0
  %94 = load i8, ptr %93, align 1, !tbaa !17
  %95 = zext i8 %94 to i32
  %96 = load ptr, ptr %10, align 8, !tbaa !5
  %97 = getelementptr inbounds i8, ptr %96, i64 1
  %98 = load i8, ptr %97, align 1, !tbaa !17
  %99 = zext i8 %98 to i32
  %100 = shl i32 %99, 8
  %101 = add i32 %95, %100
  %102 = load ptr, ptr %10, align 8, !tbaa !5
  %103 = getelementptr inbounds i8, ptr %102, i64 2
  %104 = load i8, ptr %103, align 1, !tbaa !17
  %105 = zext i8 %104 to i32
  %106 = shl i32 %105, 16
  %107 = add i32 %101, %106
  %108 = load ptr, ptr %10, align 8, !tbaa !5
  %109 = getelementptr inbounds i8, ptr %108, i64 3
  %110 = load i8, ptr %109, align 1, !tbaa !17
  %111 = zext i8 %110 to i32
  %112 = shl i32 %111, 24
  %113 = add i32 %107, %112
  %114 = load i32, ptr %7, align 4, !tbaa !12
  %115 = add i32 %114, %113
  store i32 %115, ptr %7, align 4, !tbaa !12
  %116 = load ptr, ptr %10, align 8, !tbaa !5
  %117 = getelementptr inbounds i8, ptr %116, i64 4
  %118 = load i8, ptr %117, align 1, !tbaa !17
  %119 = zext i8 %118 to i32
  %120 = load ptr, ptr %10, align 8, !tbaa !5
  %121 = getelementptr inbounds i8, ptr %120, i64 5
  %122 = load i8, ptr %121, align 1, !tbaa !17
  %123 = zext i8 %122 to i32
  %124 = shl i32 %123, 8
  %125 = add i32 %119, %124
  %126 = load ptr, ptr %10, align 8, !tbaa !5
  %127 = getelementptr inbounds i8, ptr %126, i64 6
  %128 = load i8, ptr %127, align 1, !tbaa !17
  %129 = zext i8 %128 to i32
  %130 = shl i32 %129, 16
  %131 = add i32 %125, %130
  %132 = load ptr, ptr %10, align 8, !tbaa !5
  %133 = getelementptr inbounds i8, ptr %132, i64 7
  %134 = load i8, ptr %133, align 1, !tbaa !17
  %135 = zext i8 %134 to i32
  %136 = shl i32 %135, 24
  %137 = add i32 %131, %136
  %138 = load i32, ptr %8, align 4, !tbaa !12
  %139 = add i32 %138, %137
  store i32 %139, ptr %8, align 4, !tbaa !12
  %140 = load ptr, ptr %10, align 8, !tbaa !5
  %141 = getelementptr inbounds i8, ptr %140, i64 8
  %142 = load i8, ptr %141, align 1, !tbaa !17
  %143 = zext i8 %142 to i32
  %144 = load ptr, ptr %10, align 8, !tbaa !5
  %145 = getelementptr inbounds i8, ptr %144, i64 9
  %146 = load i8, ptr %145, align 1, !tbaa !17
  %147 = zext i8 %146 to i32
  %148 = shl i32 %147, 8
  %149 = add i32 %143, %148
  %150 = load ptr, ptr %10, align 8, !tbaa !5
  %151 = getelementptr inbounds i8, ptr %150, i64 10
  %152 = load i8, ptr %151, align 1, !tbaa !17
  %153 = zext i8 %152 to i32
  %154 = shl i32 %153, 16
  %155 = add i32 %149, %154
  %156 = load ptr, ptr %10, align 8, !tbaa !5
  %157 = getelementptr inbounds i8, ptr %156, i64 11
  %158 = load i8, ptr %157, align 1, !tbaa !17
  %159 = zext i8 %158 to i32
  %160 = shl i32 %159, 24
  %161 = add i32 %155, %160
  %162 = load i32, ptr %6, align 4, !tbaa !12
  %163 = add i32 %162, %161
  store i32 %163, ptr %6, align 4, !tbaa !12
  br label %164

164:                                              ; preds = %91
  %165 = load i32, ptr %8, align 4, !tbaa !12
  %166 = load i32, ptr %7, align 4, !tbaa !12
  %167 = sub i32 %166, %165
  store i32 %167, ptr %7, align 4, !tbaa !12
  %168 = load i32, ptr %6, align 4, !tbaa !12
  %169 = load i32, ptr %7, align 4, !tbaa !12
  %170 = sub i32 %169, %168
  store i32 %170, ptr %7, align 4, !tbaa !12
  %171 = load i32, ptr %6, align 4, !tbaa !12
  %172 = lshr i32 %171, 13
  %173 = load i32, ptr %7, align 4, !tbaa !12
  %174 = xor i32 %173, %172
  store i32 %174, ptr %7, align 4, !tbaa !12
  %175 = load i32, ptr %6, align 4, !tbaa !12
  %176 = load i32, ptr %8, align 4, !tbaa !12
  %177 = sub i32 %176, %175
  store i32 %177, ptr %8, align 4, !tbaa !12
  %178 = load i32, ptr %7, align 4, !tbaa !12
  %179 = load i32, ptr %8, align 4, !tbaa !12
  %180 = sub i32 %179, %178
  store i32 %180, ptr %8, align 4, !tbaa !12
  %181 = load i32, ptr %7, align 4, !tbaa !12
  %182 = shl i32 %181, 8
  %183 = load i32, ptr %8, align 4, !tbaa !12
  %184 = xor i32 %183, %182
  store i32 %184, ptr %8, align 4, !tbaa !12
  %185 = load i32, ptr %7, align 4, !tbaa !12
  %186 = load i32, ptr %6, align 4, !tbaa !12
  %187 = sub i32 %186, %185
  store i32 %187, ptr %6, align 4, !tbaa !12
  %188 = load i32, ptr %8, align 4, !tbaa !12
  %189 = load i32, ptr %6, align 4, !tbaa !12
  %190 = sub i32 %189, %188
  store i32 %190, ptr %6, align 4, !tbaa !12
  %191 = load i32, ptr %8, align 4, !tbaa !12
  %192 = lshr i32 %191, 13
  %193 = load i32, ptr %6, align 4, !tbaa !12
  %194 = xor i32 %193, %192
  store i32 %194, ptr %6, align 4, !tbaa !12
  %195 = load i32, ptr %8, align 4, !tbaa !12
  %196 = load i32, ptr %7, align 4, !tbaa !12
  %197 = sub i32 %196, %195
  store i32 %197, ptr %7, align 4, !tbaa !12
  %198 = load i32, ptr %6, align 4, !tbaa !12
  %199 = load i32, ptr %7, align 4, !tbaa !12
  %200 = sub i32 %199, %198
  store i32 %200, ptr %7, align 4, !tbaa !12
  %201 = load i32, ptr %6, align 4, !tbaa !12
  %202 = lshr i32 %201, 12
  %203 = load i32, ptr %7, align 4, !tbaa !12
  %204 = xor i32 %203, %202
  store i32 %204, ptr %7, align 4, !tbaa !12
  %205 = load i32, ptr %6, align 4, !tbaa !12
  %206 = load i32, ptr %8, align 4, !tbaa !12
  %207 = sub i32 %206, %205
  store i32 %207, ptr %8, align 4, !tbaa !12
  %208 = load i32, ptr %7, align 4, !tbaa !12
  %209 = load i32, ptr %8, align 4, !tbaa !12
  %210 = sub i32 %209, %208
  store i32 %210, ptr %8, align 4, !tbaa !12
  %211 = load i32, ptr %7, align 4, !tbaa !12
  %212 = shl i32 %211, 16
  %213 = load i32, ptr %8, align 4, !tbaa !12
  %214 = xor i32 %213, %212
  store i32 %214, ptr %8, align 4, !tbaa !12
  %215 = load i32, ptr %7, align 4, !tbaa !12
  %216 = load i32, ptr %6, align 4, !tbaa !12
  %217 = sub i32 %216, %215
  store i32 %217, ptr %6, align 4, !tbaa !12
  %218 = load i32, ptr %8, align 4, !tbaa !12
  %219 = load i32, ptr %6, align 4, !tbaa !12
  %220 = sub i32 %219, %218
  store i32 %220, ptr %6, align 4, !tbaa !12
  %221 = load i32, ptr %8, align 4, !tbaa !12
  %222 = lshr i32 %221, 5
  %223 = load i32, ptr %6, align 4, !tbaa !12
  %224 = xor i32 %223, %222
  store i32 %224, ptr %6, align 4, !tbaa !12
  %225 = load i32, ptr %8, align 4, !tbaa !12
  %226 = load i32, ptr %7, align 4, !tbaa !12
  %227 = sub i32 %226, %225
  store i32 %227, ptr %7, align 4, !tbaa !12
  %228 = load i32, ptr %6, align 4, !tbaa !12
  %229 = load i32, ptr %7, align 4, !tbaa !12
  %230 = sub i32 %229, %228
  store i32 %230, ptr %7, align 4, !tbaa !12
  %231 = load i32, ptr %6, align 4, !tbaa !12
  %232 = lshr i32 %231, 3
  %233 = load i32, ptr %7, align 4, !tbaa !12
  %234 = xor i32 %233, %232
  store i32 %234, ptr %7, align 4, !tbaa !12
  %235 = load i32, ptr %6, align 4, !tbaa !12
  %236 = load i32, ptr %8, align 4, !tbaa !12
  %237 = sub i32 %236, %235
  store i32 %237, ptr %8, align 4, !tbaa !12
  %238 = load i32, ptr %7, align 4, !tbaa !12
  %239 = load i32, ptr %8, align 4, !tbaa !12
  %240 = sub i32 %239, %238
  store i32 %240, ptr %8, align 4, !tbaa !12
  %241 = load i32, ptr %7, align 4, !tbaa !12
  %242 = shl i32 %241, 10
  %243 = load i32, ptr %8, align 4, !tbaa !12
  %244 = xor i32 %243, %242
  store i32 %244, ptr %8, align 4, !tbaa !12
  %245 = load i32, ptr %7, align 4, !tbaa !12
  %246 = load i32, ptr %6, align 4, !tbaa !12
  %247 = sub i32 %246, %245
  store i32 %247, ptr %6, align 4, !tbaa !12
  %248 = load i32, ptr %8, align 4, !tbaa !12
  %249 = load i32, ptr %6, align 4, !tbaa !12
  %250 = sub i32 %249, %248
  store i32 %250, ptr %6, align 4, !tbaa !12
  %251 = load i32, ptr %8, align 4, !tbaa !12
  %252 = lshr i32 %251, 15
  %253 = load i32, ptr %6, align 4, !tbaa !12
  %254 = xor i32 %253, %252
  store i32 %254, ptr %6, align 4, !tbaa !12
  br label %255

255:                                              ; preds = %164
  br label %256

256:                                              ; preds = %255
  %257 = load ptr, ptr %10, align 8, !tbaa !5
  %258 = getelementptr inbounds i8, ptr %257, i64 12
  store ptr %258, ptr %10, align 8, !tbaa !5
  %259 = load i32, ptr %9, align 4, !tbaa !12
  %260 = sub i32 %259, 12
  store i32 %260, ptr %9, align 4, !tbaa !12
  br label %88, !llvm.loop !18

261:                                              ; preds = %88
  %262 = load ptr, ptr %3, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.bpf_table, ptr %262, i32 0, i32 0
  %264 = load ptr, ptr %263, align 8, !tbaa !9
  %265 = call i64 @strlen(ptr noundef %264) #10
  %266 = trunc i64 %265 to i32
  %267 = load i32, ptr %6, align 4, !tbaa !12
  %268 = add i32 %267, %266
  store i32 %268, ptr %6, align 4, !tbaa !12
  %269 = load i32, ptr %9, align 4, !tbaa !12
  switch i32 %269, label %356 [
    i32 11, label %270
    i32 10, label %278
    i32 9, label %286
    i32 8, label %294
    i32 7, label %302
    i32 6, label %310
    i32 5, label %318
    i32 4, label %325
    i32 3, label %333
    i32 2, label %341
    i32 1, label %349
  ]

270:                                              ; preds = %261
  %271 = load ptr, ptr %10, align 8, !tbaa !5
  %272 = getelementptr inbounds i8, ptr %271, i64 10
  %273 = load i8, ptr %272, align 1, !tbaa !17
  %274 = zext i8 %273 to i32
  %275 = shl i32 %274, 24
  %276 = load i32, ptr %6, align 4, !tbaa !12
  %277 = add i32 %276, %275
  store i32 %277, ptr %6, align 4, !tbaa !12
  br label %278

278:                                              ; preds = %270, %261
  %279 = load ptr, ptr %10, align 8, !tbaa !5
  %280 = getelementptr inbounds i8, ptr %279, i64 9
  %281 = load i8, ptr %280, align 1, !tbaa !17
  %282 = zext i8 %281 to i32
  %283 = shl i32 %282, 16
  %284 = load i32, ptr %6, align 4, !tbaa !12
  %285 = add i32 %284, %283
  store i32 %285, ptr %6, align 4, !tbaa !12
  br label %286

286:                                              ; preds = %278, %261
  %287 = load ptr, ptr %10, align 8, !tbaa !5
  %288 = getelementptr inbounds i8, ptr %287, i64 8
  %289 = load i8, ptr %288, align 1, !tbaa !17
  %290 = zext i8 %289 to i32
  %291 = shl i32 %290, 8
  %292 = load i32, ptr %6, align 4, !tbaa !12
  %293 = add i32 %292, %291
  store i32 %293, ptr %6, align 4, !tbaa !12
  br label %294

294:                                              ; preds = %286, %261
  %295 = load ptr, ptr %10, align 8, !tbaa !5
  %296 = getelementptr inbounds i8, ptr %295, i64 7
  %297 = load i8, ptr %296, align 1, !tbaa !17
  %298 = zext i8 %297 to i32
  %299 = shl i32 %298, 24
  %300 = load i32, ptr %8, align 4, !tbaa !12
  %301 = add i32 %300, %299
  store i32 %301, ptr %8, align 4, !tbaa !12
  br label %302

302:                                              ; preds = %294, %261
  %303 = load ptr, ptr %10, align 8, !tbaa !5
  %304 = getelementptr inbounds i8, ptr %303, i64 6
  %305 = load i8, ptr %304, align 1, !tbaa !17
  %306 = zext i8 %305 to i32
  %307 = shl i32 %306, 16
  %308 = load i32, ptr %8, align 4, !tbaa !12
  %309 = add i32 %308, %307
  store i32 %309, ptr %8, align 4, !tbaa !12
  br label %310

310:                                              ; preds = %302, %261
  %311 = load ptr, ptr %10, align 8, !tbaa !5
  %312 = getelementptr inbounds i8, ptr %311, i64 5
  %313 = load i8, ptr %312, align 1, !tbaa !17
  %314 = zext i8 %313 to i32
  %315 = shl i32 %314, 8
  %316 = load i32, ptr %8, align 4, !tbaa !12
  %317 = add i32 %316, %315
  store i32 %317, ptr %8, align 4, !tbaa !12
  br label %318

318:                                              ; preds = %310, %261
  %319 = load ptr, ptr %10, align 8, !tbaa !5
  %320 = getelementptr inbounds i8, ptr %319, i64 4
  %321 = load i8, ptr %320, align 1, !tbaa !17
  %322 = zext i8 %321 to i32
  %323 = load i32, ptr %8, align 4, !tbaa !12
  %324 = add i32 %323, %322
  store i32 %324, ptr %8, align 4, !tbaa !12
  br label %325

325:                                              ; preds = %318, %261
  %326 = load ptr, ptr %10, align 8, !tbaa !5
  %327 = getelementptr inbounds i8, ptr %326, i64 3
  %328 = load i8, ptr %327, align 1, !tbaa !17
  %329 = zext i8 %328 to i32
  %330 = shl i32 %329, 24
  %331 = load i32, ptr %7, align 4, !tbaa !12
  %332 = add i32 %331, %330
  store i32 %332, ptr %7, align 4, !tbaa !12
  br label %333

333:                                              ; preds = %325, %261
  %334 = load ptr, ptr %10, align 8, !tbaa !5
  %335 = getelementptr inbounds i8, ptr %334, i64 2
  %336 = load i8, ptr %335, align 1, !tbaa !17
  %337 = zext i8 %336 to i32
  %338 = shl i32 %337, 16
  %339 = load i32, ptr %7, align 4, !tbaa !12
  %340 = add i32 %339, %338
  store i32 %340, ptr %7, align 4, !tbaa !12
  br label %341

341:                                              ; preds = %333, %261
  %342 = load ptr, ptr %10, align 8, !tbaa !5
  %343 = getelementptr inbounds i8, ptr %342, i64 1
  %344 = load i8, ptr %343, align 1, !tbaa !17
  %345 = zext i8 %344 to i32
  %346 = shl i32 %345, 8
  %347 = load i32, ptr %7, align 4, !tbaa !12
  %348 = add i32 %347, %346
  store i32 %348, ptr %7, align 4, !tbaa !12
  br label %349

349:                                              ; preds = %341, %261
  %350 = load ptr, ptr %10, align 8, !tbaa !5
  %351 = getelementptr inbounds i8, ptr %350, i64 0
  %352 = load i8, ptr %351, align 1, !tbaa !17
  %353 = zext i8 %352 to i32
  %354 = load i32, ptr %7, align 4, !tbaa !12
  %355 = add i32 %354, %353
  store i32 %355, ptr %7, align 4, !tbaa !12
  br label %356

356:                                              ; preds = %349, %261
  br label %357

357:                                              ; preds = %356
  %358 = load i32, ptr %8, align 4, !tbaa !12
  %359 = load i32, ptr %7, align 4, !tbaa !12
  %360 = sub i32 %359, %358
  store i32 %360, ptr %7, align 4, !tbaa !12
  %361 = load i32, ptr %6, align 4, !tbaa !12
  %362 = load i32, ptr %7, align 4, !tbaa !12
  %363 = sub i32 %362, %361
  store i32 %363, ptr %7, align 4, !tbaa !12
  %364 = load i32, ptr %6, align 4, !tbaa !12
  %365 = lshr i32 %364, 13
  %366 = load i32, ptr %7, align 4, !tbaa !12
  %367 = xor i32 %366, %365
  store i32 %367, ptr %7, align 4, !tbaa !12
  %368 = load i32, ptr %6, align 4, !tbaa !12
  %369 = load i32, ptr %8, align 4, !tbaa !12
  %370 = sub i32 %369, %368
  store i32 %370, ptr %8, align 4, !tbaa !12
  %371 = load i32, ptr %7, align 4, !tbaa !12
  %372 = load i32, ptr %8, align 4, !tbaa !12
  %373 = sub i32 %372, %371
  store i32 %373, ptr %8, align 4, !tbaa !12
  %374 = load i32, ptr %7, align 4, !tbaa !12
  %375 = shl i32 %374, 8
  %376 = load i32, ptr %8, align 4, !tbaa !12
  %377 = xor i32 %376, %375
  store i32 %377, ptr %8, align 4, !tbaa !12
  %378 = load i32, ptr %7, align 4, !tbaa !12
  %379 = load i32, ptr %6, align 4, !tbaa !12
  %380 = sub i32 %379, %378
  store i32 %380, ptr %6, align 4, !tbaa !12
  %381 = load i32, ptr %8, align 4, !tbaa !12
  %382 = load i32, ptr %6, align 4, !tbaa !12
  %383 = sub i32 %382, %381
  store i32 %383, ptr %6, align 4, !tbaa !12
  %384 = load i32, ptr %8, align 4, !tbaa !12
  %385 = lshr i32 %384, 13
  %386 = load i32, ptr %6, align 4, !tbaa !12
  %387 = xor i32 %386, %385
  store i32 %387, ptr %6, align 4, !tbaa !12
  %388 = load i32, ptr %8, align 4, !tbaa !12
  %389 = load i32, ptr %7, align 4, !tbaa !12
  %390 = sub i32 %389, %388
  store i32 %390, ptr %7, align 4, !tbaa !12
  %391 = load i32, ptr %6, align 4, !tbaa !12
  %392 = load i32, ptr %7, align 4, !tbaa !12
  %393 = sub i32 %392, %391
  store i32 %393, ptr %7, align 4, !tbaa !12
  %394 = load i32, ptr %6, align 4, !tbaa !12
  %395 = lshr i32 %394, 12
  %396 = load i32, ptr %7, align 4, !tbaa !12
  %397 = xor i32 %396, %395
  store i32 %397, ptr %7, align 4, !tbaa !12
  %398 = load i32, ptr %6, align 4, !tbaa !12
  %399 = load i32, ptr %8, align 4, !tbaa !12
  %400 = sub i32 %399, %398
  store i32 %400, ptr %8, align 4, !tbaa !12
  %401 = load i32, ptr %7, align 4, !tbaa !12
  %402 = load i32, ptr %8, align 4, !tbaa !12
  %403 = sub i32 %402, %401
  store i32 %403, ptr %8, align 4, !tbaa !12
  %404 = load i32, ptr %7, align 4, !tbaa !12
  %405 = shl i32 %404, 16
  %406 = load i32, ptr %8, align 4, !tbaa !12
  %407 = xor i32 %406, %405
  store i32 %407, ptr %8, align 4, !tbaa !12
  %408 = load i32, ptr %7, align 4, !tbaa !12
  %409 = load i32, ptr %6, align 4, !tbaa !12
  %410 = sub i32 %409, %408
  store i32 %410, ptr %6, align 4, !tbaa !12
  %411 = load i32, ptr %8, align 4, !tbaa !12
  %412 = load i32, ptr %6, align 4, !tbaa !12
  %413 = sub i32 %412, %411
  store i32 %413, ptr %6, align 4, !tbaa !12
  %414 = load i32, ptr %8, align 4, !tbaa !12
  %415 = lshr i32 %414, 5
  %416 = load i32, ptr %6, align 4, !tbaa !12
  %417 = xor i32 %416, %415
  store i32 %417, ptr %6, align 4, !tbaa !12
  %418 = load i32, ptr %8, align 4, !tbaa !12
  %419 = load i32, ptr %7, align 4, !tbaa !12
  %420 = sub i32 %419, %418
  store i32 %420, ptr %7, align 4, !tbaa !12
  %421 = load i32, ptr %6, align 4, !tbaa !12
  %422 = load i32, ptr %7, align 4, !tbaa !12
  %423 = sub i32 %422, %421
  store i32 %423, ptr %7, align 4, !tbaa !12
  %424 = load i32, ptr %6, align 4, !tbaa !12
  %425 = lshr i32 %424, 3
  %426 = load i32, ptr %7, align 4, !tbaa !12
  %427 = xor i32 %426, %425
  store i32 %427, ptr %7, align 4, !tbaa !12
  %428 = load i32, ptr %6, align 4, !tbaa !12
  %429 = load i32, ptr %8, align 4, !tbaa !12
  %430 = sub i32 %429, %428
  store i32 %430, ptr %8, align 4, !tbaa !12
  %431 = load i32, ptr %7, align 4, !tbaa !12
  %432 = load i32, ptr %8, align 4, !tbaa !12
  %433 = sub i32 %432, %431
  store i32 %433, ptr %8, align 4, !tbaa !12
  %434 = load i32, ptr %7, align 4, !tbaa !12
  %435 = shl i32 %434, 10
  %436 = load i32, ptr %8, align 4, !tbaa !12
  %437 = xor i32 %436, %435
  store i32 %437, ptr %8, align 4, !tbaa !12
  %438 = load i32, ptr %7, align 4, !tbaa !12
  %439 = load i32, ptr %6, align 4, !tbaa !12
  %440 = sub i32 %439, %438
  store i32 %440, ptr %6, align 4, !tbaa !12
  %441 = load i32, ptr %8, align 4, !tbaa !12
  %442 = load i32, ptr %6, align 4, !tbaa !12
  %443 = sub i32 %442, %441
  store i32 %443, ptr %6, align 4, !tbaa !12
  %444 = load i32, ptr %8, align 4, !tbaa !12
  %445 = lshr i32 %444, 15
  %446 = load i32, ptr %6, align 4, !tbaa !12
  %447 = xor i32 %446, %445
  store i32 %447, ptr %6, align 4, !tbaa !12
  br label %448

448:                                              ; preds = %357
  br label %449

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

450:                                              ; preds = %449
  br label %451

451:                                              ; preds = %450
  br label %452

452:                                              ; preds = %451
  br label %453

453:                                              ; preds = %452
  br label %454

454:                                              ; preds = %453
  %455 = load i32, ptr %6, align 4, !tbaa !12
  %456 = load ptr, ptr %4, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.registry_entry, ptr %456, i32 0, i32 3
  %458 = getelementptr inbounds %struct.UT_hash_handle, ptr %457, i32 0, i32 7
  store i32 %455, ptr %458, align 4, !tbaa !20
  %459 = load ptr, ptr %4, align 8, !tbaa !5
  %460 = getelementptr inbounds %struct.registry_entry, ptr %459, i32 0, i32 0
  %461 = load ptr, ptr %4, align 8, !tbaa !5
  %462 = getelementptr inbounds %struct.registry_entry, ptr %461, i32 0, i32 3
  %463 = getelementptr inbounds %struct.UT_hash_handle, ptr %462, i32 0, i32 5
  store ptr %460, ptr %463, align 8, !tbaa !21
  %464 = load ptr, ptr %3, align 8, !tbaa !5
  %465 = getelementptr inbounds %struct.bpf_table, ptr %464, i32 0, i32 0
  %466 = load ptr, ptr %465, align 8, !tbaa !9
  %467 = call i64 @strlen(ptr noundef %466) #10
  %468 = trunc i64 %467 to i32
  %469 = load ptr, ptr %4, align 8, !tbaa !5
  %470 = getelementptr inbounds %struct.registry_entry, ptr %469, i32 0, i32 3
  %471 = getelementptr inbounds %struct.UT_hash_handle, ptr %470, i32 0, i32 6
  store i32 %468, ptr %471, align 8, !tbaa !22
  %472 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %473 = icmp ne ptr %472, null
  br i1 %473, label %556, label %474

474:                                              ; preds = %454
  %475 = load ptr, ptr %4, align 8, !tbaa !5
  %476 = getelementptr inbounds %struct.registry_entry, ptr %475, i32 0, i32 3
  %477 = getelementptr inbounds %struct.UT_hash_handle, ptr %476, i32 0, i32 2
  store ptr null, ptr %477, align 8, !tbaa !23
  %478 = load ptr, ptr %4, align 8, !tbaa !5
  %479 = getelementptr inbounds %struct.registry_entry, ptr %478, i32 0, i32 3
  %480 = getelementptr inbounds %struct.UT_hash_handle, ptr %479, i32 0, i32 1
  store ptr null, ptr %480, align 8, !tbaa !24
  br label %481

481:                                              ; preds = %474
  %482 = call noalias ptr @malloc(i64 noundef 64) #11
  %483 = load ptr, ptr %4, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.registry_entry, ptr %483, i32 0, i32 3
  %485 = getelementptr inbounds %struct.UT_hash_handle, ptr %484, i32 0, i32 0
  store ptr %482, ptr %485, align 8, !tbaa !25
  %486 = load ptr, ptr %4, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.registry_entry, ptr %486, i32 0, i32 3
  %488 = getelementptr inbounds %struct.UT_hash_handle, ptr %487, i32 0, i32 0
  %489 = load ptr, ptr %488, align 8, !tbaa !25
  %490 = icmp ne ptr %489, null
  br i1 %490, label %492, label %491

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

492:                                              ; preds = %481
  %493 = load ptr, ptr %4, align 8, !tbaa !5
  %494 = getelementptr inbounds %struct.registry_entry, ptr %493, i32 0, i32 3
  %495 = getelementptr inbounds %struct.UT_hash_handle, ptr %494, i32 0, i32 0
  %496 = load ptr, ptr %495, align 8, !tbaa !25
  call void @llvm.memset.p0.i64(ptr align 8 %496, i8 0, i64 64, i1 false)
  %497 = load ptr, ptr %4, align 8, !tbaa !5
  %498 = getelementptr inbounds %struct.registry_entry, ptr %497, i32 0, i32 3
  %499 = load ptr, ptr %4, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.registry_entry, ptr %499, i32 0, i32 3
  %501 = getelementptr inbounds %struct.UT_hash_handle, ptr %500, i32 0, i32 0
  %502 = load ptr, ptr %501, align 8, !tbaa !25
  %503 = getelementptr inbounds %struct.UT_hash_table, ptr %502, i32 0, i32 4
  store ptr %498, ptr %503, align 8, !tbaa !26
  %504 = load ptr, ptr %4, align 8, !tbaa !5
  %505 = getelementptr inbounds %struct.registry_entry, ptr %504, i32 0, i32 3
  %506 = getelementptr inbounds %struct.UT_hash_handle, ptr %505, i32 0, i32 0
  %507 = load ptr, ptr %506, align 8, !tbaa !25
  %508 = getelementptr inbounds %struct.UT_hash_table, ptr %507, i32 0, i32 1
  store i32 32, ptr %508, align 8, !tbaa !29
  %509 = load ptr, ptr %4, align 8, !tbaa !5
  %510 = getelementptr inbounds %struct.registry_entry, ptr %509, i32 0, i32 3
  %511 = getelementptr inbounds %struct.UT_hash_handle, ptr %510, i32 0, i32 0
  %512 = load ptr, ptr %511, align 8, !tbaa !25
  %513 = getelementptr inbounds %struct.UT_hash_table, ptr %512, i32 0, i32 2
  store i32 5, ptr %513, align 4, !tbaa !30
  %514 = load ptr, ptr %4, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.registry_entry, ptr %514, i32 0, i32 3
  %516 = load ptr, ptr %4, align 8, !tbaa !5
  %517 = ptrtoint ptr %515 to i64
  %518 = ptrtoint ptr %516 to i64
  %519 = sub i64 %517, %518
  %520 = load ptr, ptr %4, align 8, !tbaa !5
  %521 = getelementptr inbounds %struct.registry_entry, ptr %520, i32 0, i32 3
  %522 = getelementptr inbounds %struct.UT_hash_handle, ptr %521, i32 0, i32 0
  %523 = load ptr, ptr %522, align 8, !tbaa !25
  %524 = getelementptr inbounds %struct.UT_hash_table, ptr %523, i32 0, i32 5
  store i64 %519, ptr %524, align 8, !tbaa !31
  %525 = call noalias ptr @malloc(i64 noundef 512) #11
  %526 = load ptr, ptr %4, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.registry_entry, ptr %526, i32 0, i32 3
  %528 = getelementptr inbounds %struct.UT_hash_handle, ptr %527, i32 0, i32 0
  %529 = load ptr, ptr %528, align 8, !tbaa !25
  %530 = getelementptr inbounds %struct.UT_hash_table, ptr %529, i32 0, i32 0
  store ptr %525, ptr %530, align 8, !tbaa !32
  %531 = load ptr, ptr %4, align 8, !tbaa !5
  %532 = getelementptr inbounds %struct.registry_entry, ptr %531, i32 0, i32 3
  %533 = getelementptr inbounds %struct.UT_hash_handle, ptr %532, i32 0, i32 0
  %534 = load ptr, ptr %533, align 8, !tbaa !25
  %535 = getelementptr inbounds %struct.UT_hash_table, ptr %534, i32 0, i32 10
  store i32 -1609490463, ptr %535, align 8, !tbaa !33
  %536 = load ptr, ptr %4, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.registry_entry, ptr %536, i32 0, i32 3
  %538 = getelementptr inbounds %struct.UT_hash_handle, ptr %537, i32 0, i32 0
  %539 = load ptr, ptr %538, align 8, !tbaa !25
  %540 = getelementptr inbounds %struct.UT_hash_table, ptr %539, i32 0, i32 0
  %541 = load ptr, ptr %540, align 8, !tbaa !32
  %542 = icmp ne ptr %541, null
  br i1 %542, label %544, label %543

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

544:                                              ; preds = %492
  %545 = load ptr, ptr %4, align 8, !tbaa !5
  %546 = getelementptr inbounds %struct.registry_entry, ptr %545, i32 0, i32 3
  %547 = getelementptr inbounds %struct.UT_hash_handle, ptr %546, i32 0, i32 0
  %548 = load ptr, ptr %547, align 8, !tbaa !25
  %549 = getelementptr inbounds %struct.UT_hash_table, ptr %548, i32 0, i32 0
  %550 = load ptr, ptr %549, align 8, !tbaa !32
  call void @llvm.memset.p0.i64(ptr align 8 %550, i8 0, i64 512, i1 false)
  br label %551

551:                                              ; preds = %544
  br label %552

552:                                              ; preds = %551
  br label %553

553:                                              ; preds = %552
  br label %554

554:                                              ; preds = %553
  %555 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %555, ptr @reg_tables_name, align 8, !tbaa !5
  br label %602

556:                                              ; preds = %454
  %557 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %558 = getelementptr inbounds %struct.registry_entry, ptr %557, i32 0, i32 3
  %559 = getelementptr inbounds %struct.UT_hash_handle, ptr %558, i32 0, i32 0
  %560 = load ptr, ptr %559, align 8, !tbaa !25
  %561 = load ptr, ptr %4, align 8, !tbaa !5
  %562 = getelementptr inbounds %struct.registry_entry, ptr %561, i32 0, i32 3
  %563 = getelementptr inbounds %struct.UT_hash_handle, ptr %562, i32 0, i32 0
  store ptr %560, ptr %563, align 8, !tbaa !25
  br label %564

564:                                              ; preds = %556
  %565 = load ptr, ptr %4, align 8, !tbaa !5
  %566 = getelementptr inbounds %struct.registry_entry, ptr %565, i32 0, i32 3
  %567 = getelementptr inbounds %struct.UT_hash_handle, ptr %566, i32 0, i32 2
  store ptr null, ptr %567, align 8, !tbaa !23
  %568 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.registry_entry, ptr %568, i32 0, i32 3
  %570 = getelementptr inbounds %struct.UT_hash_handle, ptr %569, i32 0, i32 0
  %571 = load ptr, ptr %570, align 8, !tbaa !25
  %572 = getelementptr inbounds %struct.UT_hash_table, ptr %571, i32 0, i32 4
  %573 = load ptr, ptr %572, align 8, !tbaa !26
  %574 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %575 = getelementptr inbounds %struct.registry_entry, ptr %574, i32 0, i32 3
  %576 = getelementptr inbounds %struct.UT_hash_handle, ptr %575, i32 0, i32 0
  %577 = load ptr, ptr %576, align 8, !tbaa !25
  %578 = getelementptr inbounds %struct.UT_hash_table, ptr %577, i32 0, i32 5
  %579 = load i64, ptr %578, align 8, !tbaa !31
  %580 = sub i64 0, %579
  %581 = getelementptr inbounds i8, ptr %573, i64 %580
  %582 = load ptr, ptr %4, align 8, !tbaa !5
  %583 = getelementptr inbounds %struct.registry_entry, ptr %582, i32 0, i32 3
  %584 = getelementptr inbounds %struct.UT_hash_handle, ptr %583, i32 0, i32 1
  store ptr %581, ptr %584, align 8, !tbaa !24
  %585 = load ptr, ptr %4, align 8, !tbaa !5
  %586 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %587 = getelementptr inbounds %struct.registry_entry, ptr %586, i32 0, i32 3
  %588 = getelementptr inbounds %struct.UT_hash_handle, ptr %587, i32 0, i32 0
  %589 = load ptr, ptr %588, align 8, !tbaa !25
  %590 = getelementptr inbounds %struct.UT_hash_table, ptr %589, i32 0, i32 4
  %591 = load ptr, ptr %590, align 8, !tbaa !26
  %592 = getelementptr inbounds %struct.UT_hash_handle, ptr %591, i32 0, i32 2
  store ptr %585, ptr %592, align 8, !tbaa !34
  %593 = load ptr, ptr %4, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.registry_entry, ptr %593, i32 0, i32 3
  %595 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.registry_entry, ptr %595, i32 0, i32 3
  %597 = getelementptr inbounds %struct.UT_hash_handle, ptr %596, i32 0, i32 0
  %598 = load ptr, ptr %597, align 8, !tbaa !25
  %599 = getelementptr inbounds %struct.UT_hash_table, ptr %598, i32 0, i32 4
  store ptr %594, ptr %599, align 8, !tbaa !26
  br label %600

600:                                              ; preds = %564
  br label %601

601:                                              ; preds = %600
  br label %602

602:                                              ; preds = %601, %554
  br label %603

603:                                              ; preds = %602
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #9
  %604 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %605 = getelementptr inbounds %struct.registry_entry, ptr %604, i32 0, i32 3
  %606 = getelementptr inbounds %struct.UT_hash_handle, ptr %605, i32 0, i32 0
  %607 = load ptr, ptr %606, align 8, !tbaa !25
  %608 = getelementptr inbounds %struct.UT_hash_table, ptr %607, i32 0, i32 3
  %609 = load i32, ptr %608, align 8, !tbaa !35
  %610 = add i32 %609, 1
  store i32 %610, ptr %608, align 8, !tbaa !35
  br label %611

611:                                              ; preds = %603
  %612 = load i32, ptr %6, align 4, !tbaa !12
  %613 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.registry_entry, ptr %613, i32 0, i32 3
  %615 = getelementptr inbounds %struct.UT_hash_handle, ptr %614, i32 0, i32 0
  %616 = load ptr, ptr %615, align 8, !tbaa !25
  %617 = getelementptr inbounds %struct.UT_hash_table, ptr %616, i32 0, i32 1
  %618 = load i32, ptr %617, align 8, !tbaa !29
  %619 = sub i32 %618, 1
  %620 = and i32 %612, %619
  store i32 %620, ptr %11, align 4, !tbaa !12
  br label %621

621:                                              ; preds = %611
  br label %622

622:                                              ; preds = %621
  br label %623

623:                                              ; preds = %622
  call void @llvm.lifetime.start.p0(i64 8, ptr %12) #9
  %624 = load ptr, ptr @reg_tables_name, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.registry_entry, ptr %624, i32 0, i32 3
  %626 = getelementptr inbounds %struct.UT_hash_handle, ptr %625, i32 0, i32 0
  %627 = load ptr, ptr %626, align 8, !tbaa !25
  %628 = getelementptr inbounds %struct.UT_hash_table, ptr %627, i32 0, i32 0
  %629 = load ptr, ptr %628, align 8, !tbaa !32
  %630 = load i32, ptr %11, align 4, !tbaa !12
  %631 = zext i32 %630 to i64
  %632 = getelementptr inbounds %struct.UT_hash_bucket, ptr %629, i64 %631
  store ptr %632, ptr %12, align 8, !tbaa !5
  %633 = load ptr, ptr %12, align 8, !tbaa !5
  %634 = getelementptr inbounds %struct.UT_hash_bucket, ptr %633, i32 0, i32 1
  %635 = load i32, ptr %634, align 8, !tbaa !36
  %636 = add i32 %635, 1
  store i32 %636, ptr %634, align 8, !tbaa !36
  %637 = load ptr, ptr %12, align 8, !tbaa !5
  %638 = getelementptr inbounds %struct.UT_hash_bucket, ptr %637, i32 0, i32 0
  %639 = load ptr, ptr %638, align 8, !tbaa !38
  %640 = load ptr, ptr %4, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.registry_entry, ptr %640, i32 0, i32 3
  %642 = getelementptr inbounds %struct.UT_hash_handle, ptr %641, i32 0, i32 4
  store ptr %639, ptr %642, align 8, !tbaa !39
  %643 = load ptr, ptr %4, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.registry_entry, ptr %643, i32 0, i32 3
  %645 = getelementptr inbounds %struct.UT_hash_handle, ptr %644, i32 0, i32 3
  store ptr null, ptr %645, align 8, !tbaa !40
  %646 = load ptr, ptr %12, align 8, !tbaa !5
  %647 = getelementptr inbounds %struct.UT_hash_bucket, ptr %646, i32 0, i32 0
  %648 = load ptr, ptr %647, align 8, !tbaa !38
  %649 = icmp ne ptr %648, null
  br i1 %649, label %650, label %657

650:                                              ; preds = %623
  %651 = load ptr, ptr %4, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.registry_entry, ptr %651, i32 0, i32 3
  %653 = load ptr, ptr %12, align 8, !tbaa !5
  %654 = getelementptr inbounds %struct.UT_hash_bucket, ptr %653, i32 0, i32 0
  %655 = load ptr, ptr %654, align 8, !tbaa !38
  %656 = getelementptr inbounds %struct.UT_hash_handle, ptr %655, i32 0, i32 3
  store ptr %652, ptr %656, align 8, !tbaa !41
  br label %657

657:                                              ; preds = %650, %623
  %658 = load ptr, ptr %4, align 8, !tbaa !5
  %659 = getelementptr inbounds %struct.registry_entry, ptr %658, i32 0, i32 3
  %660 = load ptr, ptr %12, align 8, !tbaa !5
  %661 = getelementptr inbounds %struct.UT_hash_bucket, ptr %660, i32 0, i32 0
  store ptr %659, ptr %661, align 8, !tbaa !38
  %662 = load ptr, ptr %12, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.UT_hash_bucket, ptr %662, i32 0, i32 1
  %664 = load i32, ptr %663, align 8, !tbaa !36
  %665 = load ptr, ptr %12, align 8, !tbaa !5
  %666 = getelementptr inbounds %struct.UT_hash_bucket, ptr %665, i32 0, i32 2
  %667 = load i32, ptr %666, align 4, !tbaa !42
  %668 = add i32 %667, 1
  %669 = mul i32 %668, 10
  %670 = icmp uge i32 %664, %669
  br i1 %670, label %671, label %927

671:                                              ; preds = %657
  %672 = load ptr, ptr %4, align 8, !tbaa !5
  %673 = getelementptr inbounds %struct.registry_entry, ptr %672, i32 0, i32 3
  %674 = getelementptr inbounds %struct.UT_hash_handle, ptr %673, i32 0, i32 0
  %675 = load ptr, ptr %674, align 8, !tbaa !25
  %676 = getelementptr inbounds %struct.UT_hash_table, ptr %675, i32 0, i32 9
  %677 = load i32, ptr %676, align 4, !tbaa !43
  %678 = icmp ne i32 %677, 0
  br i1 %678, label %927, label %679

679:                                              ; preds = %671
  br label %680

680:                                              ; preds = %679
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #9
  %681 = load ptr, ptr %4, align 8, !tbaa !5
  %682 = getelementptr inbounds %struct.registry_entry, ptr %681, i32 0, i32 3
  %683 = getelementptr inbounds %struct.UT_hash_handle, ptr %682, i32 0, i32 0
  %684 = load ptr, ptr %683, align 8, !tbaa !25
  %685 = getelementptr inbounds %struct.UT_hash_table, ptr %684, i32 0, i32 1
  %686 = load i32, ptr %685, align 8, !tbaa !29
  %687 = zext i32 %686 to i64
  %688 = mul i64 2, %687
  %689 = mul i64 %688, 16
  %690 = call noalias ptr @malloc(i64 noundef %689) #11
  store ptr %690, ptr %17, align 8, !tbaa !5
  %691 = load ptr, ptr %17, align 8, !tbaa !5
  %692 = icmp ne ptr %691, null
  br i1 %692, label %694, label %693

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

694:                                              ; preds = %680
  %695 = load ptr, ptr %17, align 8, !tbaa !5
  %696 = load ptr, ptr %4, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.registry_entry, ptr %696, i32 0, i32 3
  %698 = getelementptr inbounds %struct.UT_hash_handle, ptr %697, i32 0, i32 0
  %699 = load ptr, ptr %698, align 8, !tbaa !25
  %700 = getelementptr inbounds %struct.UT_hash_table, ptr %699, i32 0, i32 1
  %701 = load i32, ptr %700, align 8, !tbaa !29
  %702 = zext i32 %701 to i64
  %703 = mul i64 2, %702
  %704 = mul i64 %703, 16
  call void @llvm.memset.p0.i64(ptr align 8 %695, i8 0, i64 %704, i1 false)
  %705 = load ptr, ptr %4, align 8, !tbaa !5
  %706 = getelementptr inbounds %struct.registry_entry, ptr %705, i32 0, i32 3
  %707 = getelementptr inbounds %struct.UT_hash_handle, ptr %706, i32 0, i32 0
  %708 = load ptr, ptr %707, align 8, !tbaa !25
  %709 = getelementptr inbounds %struct.UT_hash_table, ptr %708, i32 0, i32 3
  %710 = load i32, ptr %709, align 8, !tbaa !35
  %711 = load ptr, ptr %4, align 8, !tbaa !5
  %712 = getelementptr inbounds %struct.registry_entry, ptr %711, i32 0, i32 3
  %713 = getelementptr inbounds %struct.UT_hash_handle, ptr %712, i32 0, i32 0
  %714 = load ptr, ptr %713, align 8, !tbaa !25
  %715 = getelementptr inbounds %struct.UT_hash_table, ptr %714, i32 0, i32 2
  %716 = load i32, ptr %715, align 4, !tbaa !30
  %717 = add i32 %716, 1
  %718 = lshr i32 %710, %717
  %719 = load ptr, ptr %4, align 8, !tbaa !5
  %720 = getelementptr inbounds %struct.registry_entry, ptr %719, i32 0, i32 3
  %721 = getelementptr inbounds %struct.UT_hash_handle, ptr %720, i32 0, i32 0
  %722 = load ptr, ptr %721, align 8, !tbaa !25
  %723 = getelementptr inbounds %struct.UT_hash_table, ptr %722, i32 0, i32 3
  %724 = load i32, ptr %723, align 8, !tbaa !35
  %725 = load ptr, ptr %4, align 8, !tbaa !5
  %726 = getelementptr inbounds %struct.registry_entry, ptr %725, i32 0, i32 3
  %727 = getelementptr inbounds %struct.UT_hash_handle, ptr %726, i32 0, i32 0
  %728 = load ptr, ptr %727, align 8, !tbaa !25
  %729 = getelementptr inbounds %struct.UT_hash_table, ptr %728, i32 0, i32 1
  %730 = load i32, ptr %729, align 8, !tbaa !29
  %731 = mul i32 %730, 2
  %732 = sub i32 %731, 1
  %733 = and i32 %724, %732
  %734 = icmp ne i32 %733, 0
  %735 = zext i1 %734 to i64
  %736 = select i1 %734, i32 1, i32 0
  %737 = add i32 %718, %736
  %738 = load ptr, ptr %4, align 8, !tbaa !5
  %739 = getelementptr inbounds %struct.registry_entry, ptr %738, i32 0, i32 3
  %740 = getelementptr inbounds %struct.UT_hash_handle, ptr %739, i32 0, i32 0
  %741 = load ptr, ptr %740, align 8, !tbaa !25
  %742 = getelementptr inbounds %struct.UT_hash_table, ptr %741, i32 0, i32 6
  store i32 %737, ptr %742, align 8, !tbaa !44
  %743 = load ptr, ptr %4, align 8, !tbaa !5
  %744 = getelementptr inbounds %struct.registry_entry, ptr %743, i32 0, i32 3
  %745 = getelementptr inbounds %struct.UT_hash_handle, ptr %744, i32 0, i32 0
  %746 = load ptr, ptr %745, align 8, !tbaa !25
  %747 = getelementptr inbounds %struct.UT_hash_table, ptr %746, i32 0, i32 7
  store i32 0, ptr %747, align 4, !tbaa !45
  store i32 0, ptr %14, align 4, !tbaa !12
  br label %748

748:                                              ; preds = %850, %694
  %749 = load i32, ptr %14, align 4, !tbaa !12
  %750 = load ptr, ptr %4, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.registry_entry, ptr %750, i32 0, i32 3
  %752 = getelementptr inbounds %struct.UT_hash_handle, ptr %751, i32 0, i32 0
  %753 = load ptr, ptr %752, align 8, !tbaa !25
  %754 = getelementptr inbounds %struct.UT_hash_table, ptr %753, i32 0, i32 1
  %755 = load i32, ptr %754, align 8, !tbaa !29
  %756 = icmp ult i32 %749, %755
  br i1 %756, label %757, label %853

757:                                              ; preds = %748
  %758 = load ptr, ptr %4, align 8, !tbaa !5
  %759 = getelementptr inbounds %struct.registry_entry, ptr %758, i32 0, i32 3
  %760 = getelementptr inbounds %struct.UT_hash_handle, ptr %759, i32 0, i32 0
  %761 = load ptr, ptr %760, align 8, !tbaa !25
  %762 = getelementptr inbounds %struct.UT_hash_table, ptr %761, i32 0, i32 0
  %763 = load ptr, ptr %762, align 8, !tbaa !32
  %764 = load i32, ptr %14, align 4, !tbaa !12
  %765 = zext i32 %764 to i64
  %766 = getelementptr inbounds %struct.UT_hash_bucket, ptr %763, i64 %765
  %767 = getelementptr inbounds %struct.UT_hash_bucket, ptr %766, i32 0, i32 0
  %768 = load ptr, ptr %767, align 8, !tbaa !38
  store ptr %768, ptr %15, align 8, !tbaa !5
  br label %769

769:                                              ; preds = %844, %757
  %770 = load ptr, ptr %15, align 8, !tbaa !5
  %771 = icmp ne ptr %770, null
  br i1 %771, label %772, label %849

772:                                              ; preds = %769
  %773 = load ptr, ptr %15, align 8, !tbaa !5
  %774 = getelementptr inbounds %struct.UT_hash_handle, ptr %773, i32 0, i32 4
  %775 = load ptr, ptr %774, align 8, !tbaa !46
  store ptr %775, ptr %16, align 8, !tbaa !5
  br label %776

776:                                              ; preds = %772
  %777 = load ptr, ptr %15, align 8, !tbaa !5
  %778 = getelementptr inbounds %struct.UT_hash_handle, ptr %777, i32 0, i32 7
  %779 = load i32, ptr %778, align 4, !tbaa !47
  %780 = load ptr, ptr %4, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.registry_entry, ptr %780, i32 0, i32 3
  %782 = getelementptr inbounds %struct.UT_hash_handle, ptr %781, i32 0, i32 0
  %783 = load ptr, ptr %782, align 8, !tbaa !25
  %784 = getelementptr inbounds %struct.UT_hash_table, ptr %783, i32 0, i32 1
  %785 = load i32, ptr %784, align 8, !tbaa !29
  %786 = mul i32 %785, 2
  %787 = sub i32 %786, 1
  %788 = and i32 %779, %787
  store i32 %788, ptr %13, align 4, !tbaa !12
  br label %789

789:                                              ; preds = %776
  br label %790

790:                                              ; preds = %789
  %791 = load ptr, ptr %17, align 8, !tbaa !5
  %792 = load i32, ptr %13, align 4, !tbaa !12
  %793 = zext i32 %792 to i64
  %794 = getelementptr inbounds %struct.UT_hash_bucket, ptr %791, i64 %793
  store ptr %794, ptr %18, align 8, !tbaa !5
  %795 = load ptr, ptr %18, align 8, !tbaa !5
  %796 = getelementptr inbounds %struct.UT_hash_bucket, ptr %795, i32 0, i32 1
  %797 = load i32, ptr %796, align 8, !tbaa !36
  %798 = add i32 %797, 1
  store i32 %798, ptr %796, align 8, !tbaa !36
  %799 = load ptr, ptr %4, align 8, !tbaa !5
  %800 = getelementptr inbounds %struct.registry_entry, ptr %799, i32 0, i32 3
  %801 = getelementptr inbounds %struct.UT_hash_handle, ptr %800, i32 0, i32 0
  %802 = load ptr, ptr %801, align 8, !tbaa !25
  %803 = getelementptr inbounds %struct.UT_hash_table, ptr %802, i32 0, i32 6
  %804 = load i32, ptr %803, align 8, !tbaa !44
  %805 = icmp ugt i32 %798, %804
  br i1 %805, label %806, label %826

806:                                              ; preds = %790
  %807 = load ptr, ptr %4, align 8, !tbaa !5
  %808 = getelementptr inbounds %struct.registry_entry, ptr %807, i32 0, i32 3
  %809 = getelementptr inbounds %struct.UT_hash_handle, ptr %808, i32 0, i32 0
  %810 = load ptr, ptr %809, align 8, !tbaa !25
  %811 = getelementptr inbounds %struct.UT_hash_table, ptr %810, i32 0, i32 7
  %812 = load i32, ptr %811, align 4, !tbaa !45
  %813 = add i32 %812, 1
  store i32 %813, ptr %811, align 4, !tbaa !45
  %814 = load ptr, ptr %18, align 8, !tbaa !5
  %815 = getelementptr inbounds %struct.UT_hash_bucket, ptr %814, i32 0, i32 1
  %816 = load i32, ptr %815, align 8, !tbaa !36
  %817 = load ptr, ptr %4, align 8, !tbaa !5
  %818 = getelementptr inbounds %struct.registry_entry, ptr %817, i32 0, i32 3
  %819 = getelementptr inbounds %struct.UT_hash_handle, ptr %818, i32 0, i32 0
  %820 = load ptr, ptr %819, align 8, !tbaa !25
  %821 = getelementptr inbounds %struct.UT_hash_table, ptr %820, i32 0, i32 6
  %822 = load i32, ptr %821, align 8, !tbaa !44
  %823 = udiv i32 %816, %822
  %824 = load ptr, ptr %18, align 8, !tbaa !5
  %825 = getelementptr inbounds %struct.UT_hash_bucket, ptr %824, i32 0, i32 2
  store i32 %823, ptr %825, align 4, !tbaa !42
  br label %826

826:                                              ; preds = %806, %790
  %827 = load ptr, ptr %15, align 8, !tbaa !5
  %828 = getelementptr inbounds %struct.UT_hash_handle, ptr %827, i32 0, i32 3
  store ptr null, ptr %828, align 8, !tbaa !41
  %829 = load ptr, ptr %18, align 8, !tbaa !5
  %830 = getelementptr inbounds %struct.UT_hash_bucket, ptr %829, i32 0, i32 0
  %831 = load ptr, ptr %830, align 8, !tbaa !38
  %832 = load ptr, ptr %15, align 8, !tbaa !5
  %833 = getelementptr inbounds %struct.UT_hash_handle, ptr %832, i32 0, i32 4
  store ptr %831, ptr %833, align 8, !tbaa !46
  %834 = load ptr, ptr %18, align 8, !tbaa !5
  %835 = getelementptr inbounds %struct.UT_hash_bucket, ptr %834, i32 0, i32 0
  %836 = load ptr, ptr %835, align 8, !tbaa !38
  %837 = icmp ne ptr %836, null
  br i1 %837, label %838, label %844

838:                                              ; preds = %826
  %839 = load ptr, ptr %15, align 8, !tbaa !5
  %840 = load ptr, ptr %18, align 8, !tbaa !5
  %841 = getelementptr inbounds %struct.UT_hash_bucket, ptr %840, i32 0, i32 0
  %842 = load ptr, ptr %841, align 8, !tbaa !38
  %843 = getelementptr inbounds %struct.UT_hash_handle, ptr %842, i32 0, i32 3
  store ptr %839, ptr %843, align 8, !tbaa !41
  br label %844

844:                                              ; preds = %838, %826
  %845 = load ptr, ptr %15, align 8, !tbaa !5
  %846 = load ptr, ptr %18, align 8, !tbaa !5
  %847 = getelementptr inbounds %struct.UT_hash_bucket, ptr %846, i32 0, i32 0
  store ptr %845, ptr %847, align 8, !tbaa !38
  %848 = load ptr, ptr %16, align 8, !tbaa !5
  store ptr %848, ptr %15, align 8, !tbaa !5
  br label %769, !llvm.loop !48

849:                                              ; preds = %769
  br label %850

850:                                              ; preds = %849
  %851 = load i32, ptr %14, align 4, !tbaa !12
  %852 = add i32 %851, 1
  store i32 %852, ptr %14, align 4, !tbaa !12
  br label %748, !llvm.loop !49

853:                                              ; preds = %748
  %854 = load ptr, ptr %4, align 8, !tbaa !5
  %855 = getelementptr inbounds %struct.registry_entry, ptr %854, i32 0, i32 3
  %856 = getelementptr inbounds %struct.UT_hash_handle, ptr %855, i32 0, i32 0
  %857 = load ptr, ptr %856, align 8, !tbaa !25
  %858 = getelementptr inbounds %struct.UT_hash_table, ptr %857, i32 0, i32 0
  %859 = load ptr, ptr %858, align 8, !tbaa !32
  call void @free(ptr noundef %859) #9
  %860 = load ptr, ptr %4, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.registry_entry, ptr %860, i32 0, i32 3
  %862 = getelementptr inbounds %struct.UT_hash_handle, ptr %861, i32 0, i32 0
  %863 = load ptr, ptr %862, align 8, !tbaa !25
  %864 = getelementptr inbounds %struct.UT_hash_table, ptr %863, i32 0, i32 1
  %865 = load i32, ptr %864, align 8, !tbaa !29
  %866 = mul i32 %865, 2
  store i32 %866, ptr %864, align 8, !tbaa !29
  %867 = load ptr, ptr %4, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.registry_entry, ptr %867, i32 0, i32 3
  %869 = getelementptr inbounds %struct.UT_hash_handle, ptr %868, i32 0, i32 0
  %870 = load ptr, ptr %869, align 8, !tbaa !25
  %871 = getelementptr inbounds %struct.UT_hash_table, ptr %870, i32 0, i32 2
  %872 = load i32, ptr %871, align 4, !tbaa !30
  %873 = add i32 %872, 1
  store i32 %873, ptr %871, align 4, !tbaa !30
  %874 = load ptr, ptr %17, align 8, !tbaa !5
  %875 = load ptr, ptr %4, align 8, !tbaa !5
  %876 = getelementptr inbounds %struct.registry_entry, ptr %875, i32 0, i32 3
  %877 = getelementptr inbounds %struct.UT_hash_handle, ptr %876, i32 0, i32 0
  %878 = load ptr, ptr %877, align 8, !tbaa !25
  %879 = getelementptr inbounds %struct.UT_hash_table, ptr %878, i32 0, i32 0
  store ptr %874, ptr %879, align 8, !tbaa !32
  %880 = load ptr, ptr %4, align 8, !tbaa !5
  %881 = getelementptr inbounds %struct.registry_entry, ptr %880, i32 0, i32 3
  %882 = getelementptr inbounds %struct.UT_hash_handle, ptr %881, i32 0, i32 0
  %883 = load ptr, ptr %882, align 8, !tbaa !25
  %884 = getelementptr inbounds %struct.UT_hash_table, ptr %883, i32 0, i32 7
  %885 = load i32, ptr %884, align 4, !tbaa !45
  %886 = load ptr, ptr %4, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.registry_entry, ptr %886, i32 0, i32 3
  %888 = getelementptr inbounds %struct.UT_hash_handle, ptr %887, i32 0, i32 0
  %889 = load ptr, ptr %888, align 8, !tbaa !25
  %890 = getelementptr inbounds %struct.UT_hash_table, ptr %889, i32 0, i32 3
  %891 = load i32, ptr %890, align 8, !tbaa !35
  %892 = lshr i32 %891, 1
  %893 = icmp ugt i32 %885, %892
  br i1 %893, label %894, label %902

894:                                              ; preds = %853
  %895 = load ptr, ptr %4, align 8, !tbaa !5
  %896 = getelementptr inbounds %struct.registry_entry, ptr %895, i32 0, i32 3
  %897 = getelementptr inbounds %struct.UT_hash_handle, ptr %896, i32 0, i32 0
  %898 = load ptr, ptr %897, align 8, !tbaa !25
  %899 = getelementptr inbounds %struct.UT_hash_table, ptr %898, i32 0, i32 8
  %900 = load i32, ptr %899, align 8, !tbaa !50
  %901 = add i32 %900, 1
  br label %903

902:                                              ; preds = %853
  br label %903

903:                                              ; preds = %902, %894
  %904 = phi i32 [ %901, %894 ], [ 0, %902 ]
  %905 = load ptr, ptr %4, align 8, !tbaa !5
  %906 = getelementptr inbounds %struct.registry_entry, ptr %905, i32 0, i32 3
  %907 = getelementptr inbounds %struct.UT_hash_handle, ptr %906, i32 0, i32 0
  %908 = load ptr, ptr %907, align 8, !tbaa !25
  %909 = getelementptr inbounds %struct.UT_hash_table, ptr %908, i32 0, i32 8
  store i32 %904, ptr %909, align 8, !tbaa !50
  %910 = load ptr, ptr %4, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.registry_entry, ptr %910, i32 0, i32 3
  %912 = getelementptr inbounds %struct.UT_hash_handle, ptr %911, i32 0, i32 0
  %913 = load ptr, ptr %912, align 8, !tbaa !25
  %914 = getelementptr inbounds %struct.UT_hash_table, ptr %913, i32 0, i32 8
  %915 = load i32, ptr %914, align 8, !tbaa !50
  %916 = icmp ugt i32 %915, 1
  br i1 %916, label %917, label %923

917:                                              ; preds = %903
  %918 = load ptr, ptr %4, align 8, !tbaa !5
  %919 = getelementptr inbounds %struct.registry_entry, ptr %918, i32 0, i32 3
  %920 = getelementptr inbounds %struct.UT_hash_handle, ptr %919, i32 0, i32 0
  %921 = load ptr, ptr %920, align 8, !tbaa !25
  %922 = getelementptr inbounds %struct.UT_hash_table, ptr %921, i32 0, i32 9
  store i32 1, ptr %922, align 4, !tbaa !43
  br label %923

923:                                              ; preds = %917, %903
  br label %924

924:                                              ; preds = %923
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %15) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #9
  br label %925

925:                                              ; preds = %924
  br label %926

926:                                              ; preds = %925
  br label %927

927:                                              ; preds = %926, %671, %657
  call void @llvm.lifetime.end.p0(i64 8, ptr %12) #9
  br label %928

928:                                              ; preds = %927
  br label %929

929:                                              ; preds = %928
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #9
  br label %930

930:                                              ; preds = %929
  br label %931

931:                                              ; preds = %930
  br label %932

932:                                              ; preds = %931
  br label %933

933:                                              ; preds = %932
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #9
  br label %934

934:                                              ; preds = %933
  br label %935

935:                                              ; preds = %934
  br label %936

936:                                              ; preds = %935
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #9
  br label %937

937:                                              ; preds = %936
  br label %938

938:                                              ; preds = %937
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %23) #9
  %939 = load ptr, ptr %4, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.registry_entry, ptr %939, i32 0, i32 2
  store ptr %940, ptr %23, align 8, !tbaa !5
  store i32 -17973521, ptr %19, align 4, !tbaa !12
  store i32 -1640531527, ptr %21, align 4, !tbaa !12
  store i32 -1640531527, ptr %20, align 4, !tbaa !12
  store i32 4, ptr %22, align 4, !tbaa !12
  br label %941

941:                                              ; preds = %1109, %938
  %942 = load i32, ptr %22, align 4, !tbaa !12
  %943 = icmp uge i32 %942, 12
  br i1 %943, label %944, label %1114

944:                                              ; preds = %941
  %945 = load ptr, ptr %23, align 8, !tbaa !5
  %946 = getelementptr inbounds i8, ptr %945, i64 0
  %947 = load i8, ptr %946, align 1, !tbaa !17
  %948 = zext i8 %947 to i32
  %949 = load ptr, ptr %23, align 8, !tbaa !5
  %950 = getelementptr inbounds i8, ptr %949, i64 1
  %951 = load i8, ptr %950, align 1, !tbaa !17
  %952 = zext i8 %951 to i32
  %953 = shl i32 %952, 8
  %954 = add i32 %948, %953
  %955 = load ptr, ptr %23, align 8, !tbaa !5
  %956 = getelementptr inbounds i8, ptr %955, i64 2
  %957 = load i8, ptr %956, align 1, !tbaa !17
  %958 = zext i8 %957 to i32
  %959 = shl i32 %958, 16
  %960 = add i32 %954, %959
  %961 = load ptr, ptr %23, align 8, !tbaa !5
  %962 = getelementptr inbounds i8, ptr %961, i64 3
  %963 = load i8, ptr %962, align 1, !tbaa !17
  %964 = zext i8 %963 to i32
  %965 = shl i32 %964, 24
  %966 = add i32 %960, %965
  %967 = load i32, ptr %20, align 4, !tbaa !12
  %968 = add i32 %967, %966
  store i32 %968, ptr %20, align 4, !tbaa !12
  %969 = load ptr, ptr %23, align 8, !tbaa !5
  %970 = getelementptr inbounds i8, ptr %969, i64 4
  %971 = load i8, ptr %970, align 1, !tbaa !17
  %972 = zext i8 %971 to i32
  %973 = load ptr, ptr %23, align 8, !tbaa !5
  %974 = getelementptr inbounds i8, ptr %973, i64 5
  %975 = load i8, ptr %974, align 1, !tbaa !17
  %976 = zext i8 %975 to i32
  %977 = shl i32 %976, 8
  %978 = add i32 %972, %977
  %979 = load ptr, ptr %23, align 8, !tbaa !5
  %980 = getelementptr inbounds i8, ptr %979, i64 6
  %981 = load i8, ptr %980, align 1, !tbaa !17
  %982 = zext i8 %981 to i32
  %983 = shl i32 %982, 16
  %984 = add i32 %978, %983
  %985 = load ptr, ptr %23, align 8, !tbaa !5
  %986 = getelementptr inbounds i8, ptr %985, i64 7
  %987 = load i8, ptr %986, align 1, !tbaa !17
  %988 = zext i8 %987 to i32
  %989 = shl i32 %988, 24
  %990 = add i32 %984, %989
  %991 = load i32, ptr %21, align 4, !tbaa !12
  %992 = add i32 %991, %990
  store i32 %992, ptr %21, align 4, !tbaa !12
  %993 = load ptr, ptr %23, align 8, !tbaa !5
  %994 = getelementptr inbounds i8, ptr %993, i64 8
  %995 = load i8, ptr %994, align 1, !tbaa !17
  %996 = zext i8 %995 to i32
  %997 = load ptr, ptr %23, align 8, !tbaa !5
  %998 = getelementptr inbounds i8, ptr %997, i64 9
  %999 = load i8, ptr %998, align 1, !tbaa !17
  %1000 = zext i8 %999 to i32
  %1001 = shl i32 %1000, 8
  %1002 = add i32 %996, %1001
  %1003 = load ptr, ptr %23, align 8, !tbaa !5
  %1004 = getelementptr inbounds i8, ptr %1003, i64 10
  %1005 = load i8, ptr %1004, align 1, !tbaa !17
  %1006 = zext i8 %1005 to i32
  %1007 = shl i32 %1006, 16
  %1008 = add i32 %1002, %1007
  %1009 = load ptr, ptr %23, align 8, !tbaa !5
  %1010 = getelementptr inbounds i8, ptr %1009, i64 11
  %1011 = load i8, ptr %1010, align 1, !tbaa !17
  %1012 = zext i8 %1011 to i32
  %1013 = shl i32 %1012, 24
  %1014 = add i32 %1008, %1013
  %1015 = load i32, ptr %19, align 4, !tbaa !12
  %1016 = add i32 %1015, %1014
  store i32 %1016, ptr %19, align 4, !tbaa !12
  br label %1017

1017:                                             ; preds = %944
  %1018 = load i32, ptr %21, align 4, !tbaa !12
  %1019 = load i32, ptr %20, align 4, !tbaa !12
  %1020 = sub i32 %1019, %1018
  store i32 %1020, ptr %20, align 4, !tbaa !12
  %1021 = load i32, ptr %19, align 4, !tbaa !12
  %1022 = load i32, ptr %20, align 4, !tbaa !12
  %1023 = sub i32 %1022, %1021
  store i32 %1023, ptr %20, align 4, !tbaa !12
  %1024 = load i32, ptr %19, align 4, !tbaa !12
  %1025 = lshr i32 %1024, 13
  %1026 = load i32, ptr %20, align 4, !tbaa !12
  %1027 = xor i32 %1026, %1025
  store i32 %1027, ptr %20, align 4, !tbaa !12
  %1028 = load i32, ptr %19, align 4, !tbaa !12
  %1029 = load i32, ptr %21, align 4, !tbaa !12
  %1030 = sub i32 %1029, %1028
  store i32 %1030, ptr %21, align 4, !tbaa !12
  %1031 = load i32, ptr %20, align 4, !tbaa !12
  %1032 = load i32, ptr %21, align 4, !tbaa !12
  %1033 = sub i32 %1032, %1031
  store i32 %1033, ptr %21, align 4, !tbaa !12
  %1034 = load i32, ptr %20, align 4, !tbaa !12
  %1035 = shl i32 %1034, 8
  %1036 = load i32, ptr %21, align 4, !tbaa !12
  %1037 = xor i32 %1036, %1035
  store i32 %1037, ptr %21, align 4, !tbaa !12
  %1038 = load i32, ptr %20, align 4, !tbaa !12
  %1039 = load i32, ptr %19, align 4, !tbaa !12
  %1040 = sub i32 %1039, %1038
  store i32 %1040, ptr %19, align 4, !tbaa !12
  %1041 = load i32, ptr %21, align 4, !tbaa !12
  %1042 = load i32, ptr %19, align 4, !tbaa !12
  %1043 = sub i32 %1042, %1041
  store i32 %1043, ptr %19, align 4, !tbaa !12
  %1044 = load i32, ptr %21, align 4, !tbaa !12
  %1045 = lshr i32 %1044, 13
  %1046 = load i32, ptr %19, align 4, !tbaa !12
  %1047 = xor i32 %1046, %1045
  store i32 %1047, ptr %19, align 4, !tbaa !12
  %1048 = load i32, ptr %21, align 4, !tbaa !12
  %1049 = load i32, ptr %20, align 4, !tbaa !12
  %1050 = sub i32 %1049, %1048
  store i32 %1050, ptr %20, align 4, !tbaa !12
  %1051 = load i32, ptr %19, align 4, !tbaa !12
  %1052 = load i32, ptr %20, align 4, !tbaa !12
  %1053 = sub i32 %1052, %1051
  store i32 %1053, ptr %20, align 4, !tbaa !12
  %1054 = load i32, ptr %19, align 4, !tbaa !12
  %1055 = lshr i32 %1054, 12
  %1056 = load i32, ptr %20, align 4, !tbaa !12
  %1057 = xor i32 %1056, %1055
  store i32 %1057, ptr %20, align 4, !tbaa !12
  %1058 = load i32, ptr %19, align 4, !tbaa !12
  %1059 = load i32, ptr %21, align 4, !tbaa !12
  %1060 = sub i32 %1059, %1058
  store i32 %1060, ptr %21, align 4, !tbaa !12
  %1061 = load i32, ptr %20, align 4, !tbaa !12
  %1062 = load i32, ptr %21, align 4, !tbaa !12
  %1063 = sub i32 %1062, %1061
  store i32 %1063, ptr %21, align 4, !tbaa !12
  %1064 = load i32, ptr %20, align 4, !tbaa !12
  %1065 = shl i32 %1064, 16
  %1066 = load i32, ptr %21, align 4, !tbaa !12
  %1067 = xor i32 %1066, %1065
  store i32 %1067, ptr %21, align 4, !tbaa !12
  %1068 = load i32, ptr %20, align 4, !tbaa !12
  %1069 = load i32, ptr %19, align 4, !tbaa !12
  %1070 = sub i32 %1069, %1068
  store i32 %1070, ptr %19, align 4, !tbaa !12
  %1071 = load i32, ptr %21, align 4, !tbaa !12
  %1072 = load i32, ptr %19, align 4, !tbaa !12
  %1073 = sub i32 %1072, %1071
  store i32 %1073, ptr %19, align 4, !tbaa !12
  %1074 = load i32, ptr %21, align 4, !tbaa !12
  %1075 = lshr i32 %1074, 5
  %1076 = load i32, ptr %19, align 4, !tbaa !12
  %1077 = xor i32 %1076, %1075
  store i32 %1077, ptr %19, align 4, !tbaa !12
  %1078 = load i32, ptr %21, align 4, !tbaa !12
  %1079 = load i32, ptr %20, align 4, !tbaa !12
  %1080 = sub i32 %1079, %1078
  store i32 %1080, ptr %20, align 4, !tbaa !12
  %1081 = load i32, ptr %19, align 4, !tbaa !12
  %1082 = load i32, ptr %20, align 4, !tbaa !12
  %1083 = sub i32 %1082, %1081
  store i32 %1083, ptr %20, align 4, !tbaa !12
  %1084 = load i32, ptr %19, align 4, !tbaa !12
  %1085 = lshr i32 %1084, 3
  %1086 = load i32, ptr %20, align 4, !tbaa !12
  %1087 = xor i32 %1086, %1085
  store i32 %1087, ptr %20, align 4, !tbaa !12
  %1088 = load i32, ptr %19, align 4, !tbaa !12
  %1089 = load i32, ptr %21, align 4, !tbaa !12
  %1090 = sub i32 %1089, %1088
  store i32 %1090, ptr %21, align 4, !tbaa !12
  %1091 = load i32, ptr %20, align 4, !tbaa !12
  %1092 = load i32, ptr %21, align 4, !tbaa !12
  %1093 = sub i32 %1092, %1091
  store i32 %1093, ptr %21, align 4, !tbaa !12
  %1094 = load i32, ptr %20, align 4, !tbaa !12
  %1095 = shl i32 %1094, 10
  %1096 = load i32, ptr %21, align 4, !tbaa !12
  %1097 = xor i32 %1096, %1095
  store i32 %1097, ptr %21, align 4, !tbaa !12
  %1098 = load i32, ptr %20, align 4, !tbaa !12
  %1099 = load i32, ptr %19, align 4, !tbaa !12
  %1100 = sub i32 %1099, %1098
  store i32 %1100, ptr %19, align 4, !tbaa !12
  %1101 = load i32, ptr %21, align 4, !tbaa !12
  %1102 = load i32, ptr %19, align 4, !tbaa !12
  %1103 = sub i32 %1102, %1101
  store i32 %1103, ptr %19, align 4, !tbaa !12
  %1104 = load i32, ptr %21, align 4, !tbaa !12
  %1105 = lshr i32 %1104, 15
  %1106 = load i32, ptr %19, align 4, !tbaa !12
  %1107 = xor i32 %1106, %1105
  store i32 %1107, ptr %19, align 4, !tbaa !12
  br label %1108

1108:                                             ; preds = %1017
  br label %1109

1109:                                             ; preds = %1108
  %1110 = load ptr, ptr %23, align 8, !tbaa !5
  %1111 = getelementptr inbounds i8, ptr %1110, i64 12
  store ptr %1111, ptr %23, align 8, !tbaa !5
  %1112 = load i32, ptr %22, align 4, !tbaa !12
  %1113 = sub i32 %1112, 12
  store i32 %1113, ptr %22, align 4, !tbaa !12
  br label %941, !llvm.loop !51

1114:                                             ; preds = %941
  %1115 = load i32, ptr %19, align 4, !tbaa !12
  %1116 = add i32 %1115, 4
  store i32 %1116, ptr %19, align 4, !tbaa !12
  %1117 = load i32, ptr %22, align 4, !tbaa !12
  switch i32 %1117, label %1204 [
    i32 11, label %1118
    i32 10, label %1126
    i32 9, label %1134
    i32 8, label %1142
    i32 7, label %1150
    i32 6, label %1158
    i32 5, label %1166
    i32 4, label %1173
    i32 3, label %1181
    i32 2, label %1189
    i32 1, label %1197
  ]

1118:                                             ; preds = %1114
  %1119 = load ptr, ptr %23, align 8, !tbaa !5
  %1120 = getelementptr inbounds i8, ptr %1119, i64 10
  %1121 = load i8, ptr %1120, align 1, !tbaa !17
  %1122 = zext i8 %1121 to i32
  %1123 = shl i32 %1122, 24
  %1124 = load i32, ptr %19, align 4, !tbaa !12
  %1125 = add i32 %1124, %1123
  store i32 %1125, ptr %19, align 4, !tbaa !12
  br label %1126

1126:                                             ; preds = %1118, %1114
  %1127 = load ptr, ptr %23, align 8, !tbaa !5
  %1128 = getelementptr inbounds i8, ptr %1127, i64 9
  %1129 = load i8, ptr %1128, align 1, !tbaa !17
  %1130 = zext i8 %1129 to i32
  %1131 = shl i32 %1130, 16
  %1132 = load i32, ptr %19, align 4, !tbaa !12
  %1133 = add i32 %1132, %1131
  store i32 %1133, ptr %19, align 4, !tbaa !12
  br label %1134

1134:                                             ; preds = %1126, %1114
  %1135 = load ptr, ptr %23, align 8, !tbaa !5
  %1136 = getelementptr inbounds i8, ptr %1135, i64 8
  %1137 = load i8, ptr %1136, align 1, !tbaa !17
  %1138 = zext i8 %1137 to i32
  %1139 = shl i32 %1138, 8
  %1140 = load i32, ptr %19, align 4, !tbaa !12
  %1141 = add i32 %1140, %1139
  store i32 %1141, ptr %19, align 4, !tbaa !12
  br label %1142

1142:                                             ; preds = %1134, %1114
  %1143 = load ptr, ptr %23, align 8, !tbaa !5
  %1144 = getelementptr inbounds i8, ptr %1143, i64 7
  %1145 = load i8, ptr %1144, align 1, !tbaa !17
  %1146 = zext i8 %1145 to i32
  %1147 = shl i32 %1146, 24
  %1148 = load i32, ptr %21, align 4, !tbaa !12
  %1149 = add i32 %1148, %1147
  store i32 %1149, ptr %21, align 4, !tbaa !12
  br label %1150

1150:                                             ; preds = %1142, %1114
  %1151 = load ptr, ptr %23, align 8, !tbaa !5
  %1152 = getelementptr inbounds i8, ptr %1151, i64 6
  %1153 = load i8, ptr %1152, align 1, !tbaa !17
  %1154 = zext i8 %1153 to i32
  %1155 = shl i32 %1154, 16
  %1156 = load i32, ptr %21, align 4, !tbaa !12
  %1157 = add i32 %1156, %1155
  store i32 %1157, ptr %21, align 4, !tbaa !12
  br label %1158

1158:                                             ; preds = %1150, %1114
  %1159 = load ptr, ptr %23, align 8, !tbaa !5
  %1160 = getelementptr inbounds i8, ptr %1159, i64 5
  %1161 = load i8, ptr %1160, align 1, !tbaa !17
  %1162 = zext i8 %1161 to i32
  %1163 = shl i32 %1162, 8
  %1164 = load i32, ptr %21, align 4, !tbaa !12
  %1165 = add i32 %1164, %1163
  store i32 %1165, ptr %21, align 4, !tbaa !12
  br label %1166

1166:                                             ; preds = %1158, %1114
  %1167 = load ptr, ptr %23, align 8, !tbaa !5
  %1168 = getelementptr inbounds i8, ptr %1167, i64 4
  %1169 = load i8, ptr %1168, align 1, !tbaa !17
  %1170 = zext i8 %1169 to i32
  %1171 = load i32, ptr %21, align 4, !tbaa !12
  %1172 = add i32 %1171, %1170
  store i32 %1172, ptr %21, align 4, !tbaa !12
  br label %1173

1173:                                             ; preds = %1166, %1114
  %1174 = load ptr, ptr %23, align 8, !tbaa !5
  %1175 = getelementptr inbounds i8, ptr %1174, i64 3
  %1176 = load i8, ptr %1175, align 1, !tbaa !17
  %1177 = zext i8 %1176 to i32
  %1178 = shl i32 %1177, 24
  %1179 = load i32, ptr %20, align 4, !tbaa !12
  %1180 = add i32 %1179, %1178
  store i32 %1180, ptr %20, align 4, !tbaa !12
  br label %1181

1181:                                             ; preds = %1173, %1114
  %1182 = load ptr, ptr %23, align 8, !tbaa !5
  %1183 = getelementptr inbounds i8, ptr %1182, i64 2
  %1184 = load i8, ptr %1183, align 1, !tbaa !17
  %1185 = zext i8 %1184 to i32
  %1186 = shl i32 %1185, 16
  %1187 = load i32, ptr %20, align 4, !tbaa !12
  %1188 = add i32 %1187, %1186
  store i32 %1188, ptr %20, align 4, !tbaa !12
  br label %1189

1189:                                             ; preds = %1181, %1114
  %1190 = load ptr, ptr %23, align 8, !tbaa !5
  %1191 = getelementptr inbounds i8, ptr %1190, i64 1
  %1192 = load i8, ptr %1191, align 1, !tbaa !17
  %1193 = zext i8 %1192 to i32
  %1194 = shl i32 %1193, 8
  %1195 = load i32, ptr %20, align 4, !tbaa !12
  %1196 = add i32 %1195, %1194
  store i32 %1196, ptr %20, align 4, !tbaa !12
  br label %1197

1197:                                             ; preds = %1189, %1114
  %1198 = load ptr, ptr %23, align 8, !tbaa !5
  %1199 = getelementptr inbounds i8, ptr %1198, i64 0
  %1200 = load i8, ptr %1199, align 1, !tbaa !17
  %1201 = zext i8 %1200 to i32
  %1202 = load i32, ptr %20, align 4, !tbaa !12
  %1203 = add i32 %1202, %1201
  store i32 %1203, ptr %20, align 4, !tbaa !12
  br label %1204

1204:                                             ; preds = %1197, %1114
  br label %1205

1205:                                             ; preds = %1204
  %1206 = load i32, ptr %21, align 4, !tbaa !12
  %1207 = load i32, ptr %20, align 4, !tbaa !12
  %1208 = sub i32 %1207, %1206
  store i32 %1208, ptr %20, align 4, !tbaa !12
  %1209 = load i32, ptr %19, align 4, !tbaa !12
  %1210 = load i32, ptr %20, align 4, !tbaa !12
  %1211 = sub i32 %1210, %1209
  store i32 %1211, ptr %20, align 4, !tbaa !12
  %1212 = load i32, ptr %19, align 4, !tbaa !12
  %1213 = lshr i32 %1212, 13
  %1214 = load i32, ptr %20, align 4, !tbaa !12
  %1215 = xor i32 %1214, %1213
  store i32 %1215, ptr %20, align 4, !tbaa !12
  %1216 = load i32, ptr %19, align 4, !tbaa !12
  %1217 = load i32, ptr %21, align 4, !tbaa !12
  %1218 = sub i32 %1217, %1216
  store i32 %1218, ptr %21, align 4, !tbaa !12
  %1219 = load i32, ptr %20, align 4, !tbaa !12
  %1220 = load i32, ptr %21, align 4, !tbaa !12
  %1221 = sub i32 %1220, %1219
  store i32 %1221, ptr %21, align 4, !tbaa !12
  %1222 = load i32, ptr %20, align 4, !tbaa !12
  %1223 = shl i32 %1222, 8
  %1224 = load i32, ptr %21, align 4, !tbaa !12
  %1225 = xor i32 %1224, %1223
  store i32 %1225, ptr %21, align 4, !tbaa !12
  %1226 = load i32, ptr %20, align 4, !tbaa !12
  %1227 = load i32, ptr %19, align 4, !tbaa !12
  %1228 = sub i32 %1227, %1226
  store i32 %1228, ptr %19, align 4, !tbaa !12
  %1229 = load i32, ptr %21, align 4, !tbaa !12
  %1230 = load i32, ptr %19, align 4, !tbaa !12
  %1231 = sub i32 %1230, %1229
  store i32 %1231, ptr %19, align 4, !tbaa !12
  %1232 = load i32, ptr %21, align 4, !tbaa !12
  %1233 = lshr i32 %1232, 13
  %1234 = load i32, ptr %19, align 4, !tbaa !12
  %1235 = xor i32 %1234, %1233
  store i32 %1235, ptr %19, align 4, !tbaa !12
  %1236 = load i32, ptr %21, align 4, !tbaa !12
  %1237 = load i32, ptr %20, align 4, !tbaa !12
  %1238 = sub i32 %1237, %1236
  store i32 %1238, ptr %20, align 4, !tbaa !12
  %1239 = load i32, ptr %19, align 4, !tbaa !12
  %1240 = load i32, ptr %20, align 4, !tbaa !12
  %1241 = sub i32 %1240, %1239
  store i32 %1241, ptr %20, align 4, !tbaa !12
  %1242 = load i32, ptr %19, align 4, !tbaa !12
  %1243 = lshr i32 %1242, 12
  %1244 = load i32, ptr %20, align 4, !tbaa !12
  %1245 = xor i32 %1244, %1243
  store i32 %1245, ptr %20, align 4, !tbaa !12
  %1246 = load i32, ptr %19, align 4, !tbaa !12
  %1247 = load i32, ptr %21, align 4, !tbaa !12
  %1248 = sub i32 %1247, %1246
  store i32 %1248, ptr %21, align 4, !tbaa !12
  %1249 = load i32, ptr %20, align 4, !tbaa !12
  %1250 = load i32, ptr %21, align 4, !tbaa !12
  %1251 = sub i32 %1250, %1249
  store i32 %1251, ptr %21, align 4, !tbaa !12
  %1252 = load i32, ptr %20, align 4, !tbaa !12
  %1253 = shl i32 %1252, 16
  %1254 = load i32, ptr %21, align 4, !tbaa !12
  %1255 = xor i32 %1254, %1253
  store i32 %1255, ptr %21, align 4, !tbaa !12
  %1256 = load i32, ptr %20, align 4, !tbaa !12
  %1257 = load i32, ptr %19, align 4, !tbaa !12
  %1258 = sub i32 %1257, %1256
  store i32 %1258, ptr %19, align 4, !tbaa !12
  %1259 = load i32, ptr %21, align 4, !tbaa !12
  %1260 = load i32, ptr %19, align 4, !tbaa !12
  %1261 = sub i32 %1260, %1259
  store i32 %1261, ptr %19, align 4, !tbaa !12
  %1262 = load i32, ptr %21, align 4, !tbaa !12
  %1263 = lshr i32 %1262, 5
  %1264 = load i32, ptr %19, align 4, !tbaa !12
  %1265 = xor i32 %1264, %1263
  store i32 %1265, ptr %19, align 4, !tbaa !12
  %1266 = load i32, ptr %21, align 4, !tbaa !12
  %1267 = load i32, ptr %20, align 4, !tbaa !12
  %1268 = sub i32 %1267, %1266
  store i32 %1268, ptr %20, align 4, !tbaa !12
  %1269 = load i32, ptr %19, align 4, !tbaa !12
  %1270 = load i32, ptr %20, align 4, !tbaa !12
  %1271 = sub i32 %1270, %1269
  store i32 %1271, ptr %20, align 4, !tbaa !12
  %1272 = load i32, ptr %19, align 4, !tbaa !12
  %1273 = lshr i32 %1272, 3
  %1274 = load i32, ptr %20, align 4, !tbaa !12
  %1275 = xor i32 %1274, %1273
  store i32 %1275, ptr %20, align 4, !tbaa !12
  %1276 = load i32, ptr %19, align 4, !tbaa !12
  %1277 = load i32, ptr %21, align 4, !tbaa !12
  %1278 = sub i32 %1277, %1276
  store i32 %1278, ptr %21, align 4, !tbaa !12
  %1279 = load i32, ptr %20, align 4, !tbaa !12
  %1280 = load i32, ptr %21, align 4, !tbaa !12
  %1281 = sub i32 %1280, %1279
  store i32 %1281, ptr %21, align 4, !tbaa !12
  %1282 = load i32, ptr %20, align 4, !tbaa !12
  %1283 = shl i32 %1282, 10
  %1284 = load i32, ptr %21, align 4, !tbaa !12
  %1285 = xor i32 %1284, %1283
  store i32 %1285, ptr %21, align 4, !tbaa !12
  %1286 = load i32, ptr %20, align 4, !tbaa !12
  %1287 = load i32, ptr %19, align 4, !tbaa !12
  %1288 = sub i32 %1287, %1286
  store i32 %1288, ptr %19, align 4, !tbaa !12
  %1289 = load i32, ptr %21, align 4, !tbaa !12
  %1290 = load i32, ptr %19, align 4, !tbaa !12
  %1291 = sub i32 %1290, %1289
  store i32 %1291, ptr %19, align 4, !tbaa !12
  %1292 = load i32, ptr %21, align 4, !tbaa !12
  %1293 = lshr i32 %1292, 15
  %1294 = load i32, ptr %19, align 4, !tbaa !12
  %1295 = xor i32 %1294, %1293
  store i32 %1295, ptr %19, align 4, !tbaa !12
  br label %1296

1296:                                             ; preds = %1205
  br label %1297

1297:                                             ; preds = %1296
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #9
  br label %1298

1298:                                             ; preds = %1297
  br label %1299

1299:                                             ; preds = %1298
  br label %1300

1300:                                             ; preds = %1299
  br label %1301

1301:                                             ; preds = %1300
  br label %1302

1302:                                             ; preds = %1301
  %1303 = load i32, ptr %19, align 4, !tbaa !12
  %1304 = load ptr, ptr %4, align 8, !tbaa !5
  %1305 = getelementptr inbounds %struct.registry_entry, ptr %1304, i32 0, i32 4
  %1306 = getelementptr inbounds %struct.UT_hash_handle, ptr %1305, i32 0, i32 7
  store i32 %1303, ptr %1306, align 4, !tbaa !52
  %1307 = load ptr, ptr %4, align 8, !tbaa !5
  %1308 = getelementptr inbounds %struct.registry_entry, ptr %1307, i32 0, i32 2
  %1309 = load ptr, ptr %4, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.registry_entry, ptr %1309, i32 0, i32 4
  %1311 = getelementptr inbounds %struct.UT_hash_handle, ptr %1310, i32 0, i32 5
  store ptr %1308, ptr %1311, align 8, !tbaa !53
  %1312 = load ptr, ptr %4, align 8, !tbaa !5
  %1313 = getelementptr inbounds %struct.registry_entry, ptr %1312, i32 0, i32 4
  %1314 = getelementptr inbounds %struct.UT_hash_handle, ptr %1313, i32 0, i32 6
  store i32 4, ptr %1314, align 8, !tbaa !54
  %1315 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1316 = icmp ne ptr %1315, null
  br i1 %1316, label %1399, label %1317

1317:                                             ; preds = %1302
  %1318 = load ptr, ptr %4, align 8, !tbaa !5
  %1319 = getelementptr inbounds %struct.registry_entry, ptr %1318, i32 0, i32 4
  %1320 = getelementptr inbounds %struct.UT_hash_handle, ptr %1319, i32 0, i32 2
  store ptr null, ptr %1320, align 8, !tbaa !55
  %1321 = load ptr, ptr %4, align 8, !tbaa !5
  %1322 = getelementptr inbounds %struct.registry_entry, ptr %1321, i32 0, i32 4
  %1323 = getelementptr inbounds %struct.UT_hash_handle, ptr %1322, i32 0, i32 1
  store ptr null, ptr %1323, align 8, !tbaa !56
  br label %1324

1324:                                             ; preds = %1317
  %1325 = call noalias ptr @malloc(i64 noundef 64) #11
  %1326 = load ptr, ptr %4, align 8, !tbaa !5
  %1327 = getelementptr inbounds %struct.registry_entry, ptr %1326, i32 0, i32 4
  %1328 = getelementptr inbounds %struct.UT_hash_handle, ptr %1327, i32 0, i32 0
  store ptr %1325, ptr %1328, align 8, !tbaa !57
  %1329 = load ptr, ptr %4, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.registry_entry, ptr %1329, i32 0, i32 4
  %1331 = getelementptr inbounds %struct.UT_hash_handle, ptr %1330, i32 0, i32 0
  %1332 = load ptr, ptr %1331, align 8, !tbaa !57
  %1333 = icmp ne ptr %1332, null
  br i1 %1333, label %1335, label %1334

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

1335:                                             ; preds = %1324
  %1336 = load ptr, ptr %4, align 8, !tbaa !5
  %1337 = getelementptr inbounds %struct.registry_entry, ptr %1336, i32 0, i32 4
  %1338 = getelementptr inbounds %struct.UT_hash_handle, ptr %1337, i32 0, i32 0
  %1339 = load ptr, ptr %1338, align 8, !tbaa !57
  call void @llvm.memset.p0.i64(ptr align 8 %1339, i8 0, i64 64, i1 false)
  %1340 = load ptr, ptr %4, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.registry_entry, ptr %1340, i32 0, i32 4
  %1342 = load ptr, ptr %4, align 8, !tbaa !5
  %1343 = getelementptr inbounds %struct.registry_entry, ptr %1342, i32 0, i32 4
  %1344 = getelementptr inbounds %struct.UT_hash_handle, ptr %1343, i32 0, i32 0
  %1345 = load ptr, ptr %1344, align 8, !tbaa !57
  %1346 = getelementptr inbounds %struct.UT_hash_table, ptr %1345, i32 0, i32 4
  store ptr %1341, ptr %1346, align 8, !tbaa !26
  %1347 = load ptr, ptr %4, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.registry_entry, ptr %1347, i32 0, i32 4
  %1349 = getelementptr inbounds %struct.UT_hash_handle, ptr %1348, i32 0, i32 0
  %1350 = load ptr, ptr %1349, align 8, !tbaa !57
  %1351 = getelementptr inbounds %struct.UT_hash_table, ptr %1350, i32 0, i32 1
  store i32 32, ptr %1351, align 8, !tbaa !29
  %1352 = load ptr, ptr %4, align 8, !tbaa !5
  %1353 = getelementptr inbounds %struct.registry_entry, ptr %1352, i32 0, i32 4
  %1354 = getelementptr inbounds %struct.UT_hash_handle, ptr %1353, i32 0, i32 0
  %1355 = load ptr, ptr %1354, align 8, !tbaa !57
  %1356 = getelementptr inbounds %struct.UT_hash_table, ptr %1355, i32 0, i32 2
  store i32 5, ptr %1356, align 4, !tbaa !30
  %1357 = load ptr, ptr %4, align 8, !tbaa !5
  %1358 = getelementptr inbounds %struct.registry_entry, ptr %1357, i32 0, i32 4
  %1359 = load ptr, ptr %4, align 8, !tbaa !5
  %1360 = ptrtoint ptr %1358 to i64
  %1361 = ptrtoint ptr %1359 to i64
  %1362 = sub i64 %1360, %1361
  %1363 = load ptr, ptr %4, align 8, !tbaa !5
  %1364 = getelementptr inbounds %struct.registry_entry, ptr %1363, i32 0, i32 4
  %1365 = getelementptr inbounds %struct.UT_hash_handle, ptr %1364, i32 0, i32 0
  %1366 = load ptr, ptr %1365, align 8, !tbaa !57
  %1367 = getelementptr inbounds %struct.UT_hash_table, ptr %1366, i32 0, i32 5
  store i64 %1362, ptr %1367, align 8, !tbaa !31
  %1368 = call noalias ptr @malloc(i64 noundef 512) #11
  %1369 = load ptr, ptr %4, align 8, !tbaa !5
  %1370 = getelementptr inbounds %struct.registry_entry, ptr %1369, i32 0, i32 4
  %1371 = getelementptr inbounds %struct.UT_hash_handle, ptr %1370, i32 0, i32 0
  %1372 = load ptr, ptr %1371, align 8, !tbaa !57
  %1373 = getelementptr inbounds %struct.UT_hash_table, ptr %1372, i32 0, i32 0
  store ptr %1368, ptr %1373, align 8, !tbaa !32
  %1374 = load ptr, ptr %4, align 8, !tbaa !5
  %1375 = getelementptr inbounds %struct.registry_entry, ptr %1374, i32 0, i32 4
  %1376 = getelementptr inbounds %struct.UT_hash_handle, ptr %1375, i32 0, i32 0
  %1377 = load ptr, ptr %1376, align 8, !tbaa !57
  %1378 = getelementptr inbounds %struct.UT_hash_table, ptr %1377, i32 0, i32 10
  store i32 -1609490463, ptr %1378, align 8, !tbaa !33
  %1379 = load ptr, ptr %4, align 8, !tbaa !5
  %1380 = getelementptr inbounds %struct.registry_entry, ptr %1379, i32 0, i32 4
  %1381 = getelementptr inbounds %struct.UT_hash_handle, ptr %1380, i32 0, i32 0
  %1382 = load ptr, ptr %1381, align 8, !tbaa !57
  %1383 = getelementptr inbounds %struct.UT_hash_table, ptr %1382, i32 0, i32 0
  %1384 = load ptr, ptr %1383, align 8, !tbaa !32
  %1385 = icmp ne ptr %1384, null
  br i1 %1385, label %1387, label %1386

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

1387:                                             ; preds = %1335
  %1388 = load ptr, ptr %4, align 8, !tbaa !5
  %1389 = getelementptr inbounds %struct.registry_entry, ptr %1388, i32 0, i32 4
  %1390 = getelementptr inbounds %struct.UT_hash_handle, ptr %1389, i32 0, i32 0
  %1391 = load ptr, ptr %1390, align 8, !tbaa !57
  %1392 = getelementptr inbounds %struct.UT_hash_table, ptr %1391, i32 0, i32 0
  %1393 = load ptr, ptr %1392, align 8, !tbaa !32
  call void @llvm.memset.p0.i64(ptr align 8 %1393, i8 0, i64 512, i1 false)
  br label %1394

1394:                                             ; preds = %1387
  br label %1395

1395:                                             ; preds = %1394
  br label %1396

1396:                                             ; preds = %1395
  br label %1397

1397:                                             ; preds = %1396
  %1398 = load ptr, ptr %4, align 8, !tbaa !5
  store ptr %1398, ptr @reg_tables_id, align 8, !tbaa !5
  br label %1445

1399:                                             ; preds = %1302
  %1400 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1401 = getelementptr inbounds %struct.registry_entry, ptr %1400, i32 0, i32 4
  %1402 = getelementptr inbounds %struct.UT_hash_handle, ptr %1401, i32 0, i32 0
  %1403 = load ptr, ptr %1402, align 8, !tbaa !57
  %1404 = load ptr, ptr %4, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.registry_entry, ptr %1404, i32 0, i32 4
  %1406 = getelementptr inbounds %struct.UT_hash_handle, ptr %1405, i32 0, i32 0
  store ptr %1403, ptr %1406, align 8, !tbaa !57
  br label %1407

1407:                                             ; preds = %1399
  %1408 = load ptr, ptr %4, align 8, !tbaa !5
  %1409 = getelementptr inbounds %struct.registry_entry, ptr %1408, i32 0, i32 4
  %1410 = getelementptr inbounds %struct.UT_hash_handle, ptr %1409, i32 0, i32 2
  store ptr null, ptr %1410, align 8, !tbaa !55
  %1411 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1412 = getelementptr inbounds %struct.registry_entry, ptr %1411, i32 0, i32 4
  %1413 = getelementptr inbounds %struct.UT_hash_handle, ptr %1412, i32 0, i32 0
  %1414 = load ptr, ptr %1413, align 8, !tbaa !57
  %1415 = getelementptr inbounds %struct.UT_hash_table, ptr %1414, i32 0, i32 4
  %1416 = load ptr, ptr %1415, align 8, !tbaa !26
  %1417 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1418 = getelementptr inbounds %struct.registry_entry, ptr %1417, i32 0, i32 4
  %1419 = getelementptr inbounds %struct.UT_hash_handle, ptr %1418, i32 0, i32 0
  %1420 = load ptr, ptr %1419, align 8, !tbaa !57
  %1421 = getelementptr inbounds %struct.UT_hash_table, ptr %1420, i32 0, i32 5
  %1422 = load i64, ptr %1421, align 8, !tbaa !31
  %1423 = sub i64 0, %1422
  %1424 = getelementptr inbounds i8, ptr %1416, i64 %1423
  %1425 = load ptr, ptr %4, align 8, !tbaa !5
  %1426 = getelementptr inbounds %struct.registry_entry, ptr %1425, i32 0, i32 4
  %1427 = getelementptr inbounds %struct.UT_hash_handle, ptr %1426, i32 0, i32 1
  store ptr %1424, ptr %1427, align 8, !tbaa !56
  %1428 = load ptr, ptr %4, align 8, !tbaa !5
  %1429 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1430 = getelementptr inbounds %struct.registry_entry, ptr %1429, i32 0, i32 4
  %1431 = getelementptr inbounds %struct.UT_hash_handle, ptr %1430, i32 0, i32 0
  %1432 = load ptr, ptr %1431, align 8, !tbaa !57
  %1433 = getelementptr inbounds %struct.UT_hash_table, ptr %1432, i32 0, i32 4
  %1434 = load ptr, ptr %1433, align 8, !tbaa !26
  %1435 = getelementptr inbounds %struct.UT_hash_handle, ptr %1434, i32 0, i32 2
  store ptr %1428, ptr %1435, align 8, !tbaa !34
  %1436 = load ptr, ptr %4, align 8, !tbaa !5
  %1437 = getelementptr inbounds %struct.registry_entry, ptr %1436, i32 0, i32 4
  %1438 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.registry_entry, ptr %1438, i32 0, i32 4
  %1440 = getelementptr inbounds %struct.UT_hash_handle, ptr %1439, i32 0, i32 0
  %1441 = load ptr, ptr %1440, align 8, !tbaa !57
  %1442 = getelementptr inbounds %struct.UT_hash_table, ptr %1441, i32 0, i32 4
  store ptr %1437, ptr %1442, align 8, !tbaa !26
  br label %1443

1443:                                             ; preds = %1407
  br label %1444

1444:                                             ; preds = %1443
  br label %1445

1445:                                             ; preds = %1444, %1397
  br label %1446

1446:                                             ; preds = %1445
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #9
  %1447 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1448 = getelementptr inbounds %struct.registry_entry, ptr %1447, i32 0, i32 4
  %1449 = getelementptr inbounds %struct.UT_hash_handle, ptr %1448, i32 0, i32 0
  %1450 = load ptr, ptr %1449, align 8, !tbaa !57
  %1451 = getelementptr inbounds %struct.UT_hash_table, ptr %1450, i32 0, i32 3
  %1452 = load i32, ptr %1451, align 8, !tbaa !35
  %1453 = add i32 %1452, 1
  store i32 %1453, ptr %1451, align 8, !tbaa !35
  br label %1454

1454:                                             ; preds = %1446
  %1455 = load i32, ptr %19, align 4, !tbaa !12
  %1456 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1457 = getelementptr inbounds %struct.registry_entry, ptr %1456, i32 0, i32 4
  %1458 = getelementptr inbounds %struct.UT_hash_handle, ptr %1457, i32 0, i32 0
  %1459 = load ptr, ptr %1458, align 8, !tbaa !57
  %1460 = getelementptr inbounds %struct.UT_hash_table, ptr %1459, i32 0, i32 1
  %1461 = load i32, ptr %1460, align 8, !tbaa !29
  %1462 = sub i32 %1461, 1
  %1463 = and i32 %1455, %1462
  store i32 %1463, ptr %24, align 4, !tbaa !12
  br label %1464

1464:                                             ; preds = %1454
  br label %1465

1465:                                             ; preds = %1464
  br label %1466

1466:                                             ; preds = %1465
  call void @llvm.lifetime.start.p0(i64 8, ptr %25) #9
  %1467 = load ptr, ptr @reg_tables_id, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.registry_entry, ptr %1467, i32 0, i32 4
  %1469 = getelementptr inbounds %struct.UT_hash_handle, ptr %1468, i32 0, i32 0
  %1470 = load ptr, ptr %1469, align 8, !tbaa !57
  %1471 = getelementptr inbounds %struct.UT_hash_table, ptr %1470, i32 0, i32 0
  %1472 = load ptr, ptr %1471, align 8, !tbaa !32
  %1473 = load i32, ptr %24, align 4, !tbaa !12
  %1474 = zext i32 %1473 to i64
  %1475 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1472, i64 %1474
  store ptr %1475, ptr %25, align 8, !tbaa !5
  %1476 = load ptr, ptr %25, align 8, !tbaa !5
  %1477 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1476, i32 0, i32 1
  %1478 = load i32, ptr %1477, align 8, !tbaa !36
  %1479 = add i32 %1478, 1
  store i32 %1479, ptr %1477, align 8, !tbaa !36
  %1480 = load ptr, ptr %25, align 8, !tbaa !5
  %1481 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1480, i32 0, i32 0
  %1482 = load ptr, ptr %1481, align 8, !tbaa !38
  %1483 = load ptr, ptr %4, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.registry_entry, ptr %1483, i32 0, i32 4
  %1485 = getelementptr inbounds %struct.UT_hash_handle, ptr %1484, i32 0, i32 4
  store ptr %1482, ptr %1485, align 8, !tbaa !58
  %1486 = load ptr, ptr %4, align 8, !tbaa !5
  %1487 = getelementptr inbounds %struct.registry_entry, ptr %1486, i32 0, i32 4
  %1488 = getelementptr inbounds %struct.UT_hash_handle, ptr %1487, i32 0, i32 3
  store ptr null, ptr %1488, align 8, !tbaa !59
  %1489 = load ptr, ptr %25, align 8, !tbaa !5
  %1490 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1489, i32 0, i32 0
  %1491 = load ptr, ptr %1490, align 8, !tbaa !38
  %1492 = icmp ne ptr %1491, null
  br i1 %1492, label %1493, label %1500

1493:                                             ; preds = %1466
  %1494 = load ptr, ptr %4, align 8, !tbaa !5
  %1495 = getelementptr inbounds %struct.registry_entry, ptr %1494, i32 0, i32 4
  %1496 = load ptr, ptr %25, align 8, !tbaa !5
  %1497 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1496, i32 0, i32 0
  %1498 = load ptr, ptr %1497, align 8, !tbaa !38
  %1499 = getelementptr inbounds %struct.UT_hash_handle, ptr %1498, i32 0, i32 3
  store ptr %1495, ptr %1499, align 8, !tbaa !41
  br label %1500

1500:                                             ; preds = %1493, %1466
  %1501 = load ptr, ptr %4, align 8, !tbaa !5
  %1502 = getelementptr inbounds %struct.registry_entry, ptr %1501, i32 0, i32 4
  %1503 = load ptr, ptr %25, align 8, !tbaa !5
  %1504 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1503, i32 0, i32 0
  store ptr %1502, ptr %1504, align 8, !tbaa !38
  %1505 = load ptr, ptr %25, align 8, !tbaa !5
  %1506 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1505, i32 0, i32 1
  %1507 = load i32, ptr %1506, align 8, !tbaa !36
  %1508 = load ptr, ptr %25, align 8, !tbaa !5
  %1509 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1508, i32 0, i32 2
  %1510 = load i32, ptr %1509, align 4, !tbaa !42
  %1511 = add i32 %1510, 1
  %1512 = mul i32 %1511, 10
  %1513 = icmp uge i32 %1507, %1512
  br i1 %1513, label %1514, label %1770

1514:                                             ; preds = %1500
  %1515 = load ptr, ptr %4, align 8, !tbaa !5
  %1516 = getelementptr inbounds %struct.registry_entry, ptr %1515, i32 0, i32 4
  %1517 = getelementptr inbounds %struct.UT_hash_handle, ptr %1516, i32 0, i32 0
  %1518 = load ptr, ptr %1517, align 8, !tbaa !57
  %1519 = getelementptr inbounds %struct.UT_hash_table, ptr %1518, i32 0, i32 9
  %1520 = load i32, ptr %1519, align 4, !tbaa !43
  %1521 = icmp ne i32 %1520, 0
  br i1 %1521, label %1770, label %1522

1522:                                             ; preds = %1514
  br label %1523

1523:                                             ; preds = %1522
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #9
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #9
  %1524 = load ptr, ptr %4, align 8, !tbaa !5
  %1525 = getelementptr inbounds %struct.registry_entry, ptr %1524, i32 0, i32 4
  %1526 = getelementptr inbounds %struct.UT_hash_handle, ptr %1525, i32 0, i32 0
  %1527 = load ptr, ptr %1526, align 8, !tbaa !57
  %1528 = getelementptr inbounds %struct.UT_hash_table, ptr %1527, i32 0, i32 1
  %1529 = load i32, ptr %1528, align 8, !tbaa !29
  %1530 = zext i32 %1529 to i64
  %1531 = mul i64 2, %1530
  %1532 = mul i64 %1531, 16
  %1533 = call noalias ptr @malloc(i64 noundef %1532) #11
  store ptr %1533, ptr %30, align 8, !tbaa !5
  %1534 = load ptr, ptr %30, align 8, !tbaa !5
  %1535 = icmp ne ptr %1534, null
  br i1 %1535, label %1537, label %1536

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

1537:                                             ; preds = %1523
  %1538 = load ptr, ptr %30, align 8, !tbaa !5
  %1539 = load ptr, ptr %4, align 8, !tbaa !5
  %1540 = getelementptr inbounds %struct.registry_entry, ptr %1539, i32 0, i32 4
  %1541 = getelementptr inbounds %struct.UT_hash_handle, ptr %1540, i32 0, i32 0
  %1542 = load ptr, ptr %1541, align 8, !tbaa !57
  %1543 = getelementptr inbounds %struct.UT_hash_table, ptr %1542, i32 0, i32 1
  %1544 = load i32, ptr %1543, align 8, !tbaa !29
  %1545 = zext i32 %1544 to i64
  %1546 = mul i64 2, %1545
  %1547 = mul i64 %1546, 16
  call void @llvm.memset.p0.i64(ptr align 8 %1538, i8 0, i64 %1547, i1 false)
  %1548 = load ptr, ptr %4, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.registry_entry, ptr %1548, i32 0, i32 4
  %1550 = getelementptr inbounds %struct.UT_hash_handle, ptr %1549, i32 0, i32 0
  %1551 = load ptr, ptr %1550, align 8, !tbaa !57
  %1552 = getelementptr inbounds %struct.UT_hash_table, ptr %1551, i32 0, i32 3
  %1553 = load i32, ptr %1552, align 8, !tbaa !35
  %1554 = load ptr, ptr %4, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.registry_entry, ptr %1554, i32 0, i32 4
  %1556 = getelementptr inbounds %struct.UT_hash_handle, ptr %1555, i32 0, i32 0
  %1557 = load ptr, ptr %1556, align 8, !tbaa !57
  %1558 = getelementptr inbounds %struct.UT_hash_table, ptr %1557, i32 0, i32 2
  %1559 = load i32, ptr %1558, align 4, !tbaa !30
  %1560 = add i32 %1559, 1
  %1561 = lshr i32 %1553, %1560
  %1562 = load ptr, ptr %4, align 8, !tbaa !5
  %1563 = getelementptr inbounds %struct.registry_entry, ptr %1562, i32 0, i32 4
  %1564 = getelementptr inbounds %struct.UT_hash_handle, ptr %1563, i32 0, i32 0
  %1565 = load ptr, ptr %1564, align 8, !tbaa !57
  %1566 = getelementptr inbounds %struct.UT_hash_table, ptr %1565, i32 0, i32 3
  %1567 = load i32, ptr %1566, align 8, !tbaa !35
  %1568 = load ptr, ptr %4, align 8, !tbaa !5
  %1569 = getelementptr inbounds %struct.registry_entry, ptr %1568, i32 0, i32 4
  %1570 = getelementptr inbounds %struct.UT_hash_handle, ptr %1569, i32 0, i32 0
  %1571 = load ptr, ptr %1570, align 8, !tbaa !57
  %1572 = getelementptr inbounds %struct.UT_hash_table, ptr %1571, i32 0, i32 1
  %1573 = load i32, ptr %1572, align 8, !tbaa !29
  %1574 = mul i32 %1573, 2
  %1575 = sub i32 %1574, 1
  %1576 = and i32 %1567, %1575
  %1577 = icmp ne i32 %1576, 0
  %1578 = zext i1 %1577 to i64
  %1579 = select i1 %1577, i32 1, i32 0
  %1580 = add i32 %1561, %1579
  %1581 = load ptr, ptr %4, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.registry_entry, ptr %1581, i32 0, i32 4
  %1583 = getelementptr inbounds %struct.UT_hash_handle, ptr %1582, i32 0, i32 0
  %1584 = load ptr, ptr %1583, align 8, !tbaa !57
  %1585 = getelementptr inbounds %struct.UT_hash_table, ptr %1584, i32 0, i32 6
  store i32 %1580, ptr %1585, align 8, !tbaa !44
  %1586 = load ptr, ptr %4, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.registry_entry, ptr %1586, i32 0, i32 4
  %1588 = getelementptr inbounds %struct.UT_hash_handle, ptr %1587, i32 0, i32 0
  %1589 = load ptr, ptr %1588, align 8, !tbaa !57
  %1590 = getelementptr inbounds %struct.UT_hash_table, ptr %1589, i32 0, i32 7
  store i32 0, ptr %1590, align 4, !tbaa !45
  store i32 0, ptr %27, align 4, !tbaa !12
  br label %1591

1591:                                             ; preds = %1693, %1537
  %1592 = load i32, ptr %27, align 4, !tbaa !12
  %1593 = load ptr, ptr %4, align 8, !tbaa !5
  %1594 = getelementptr inbounds %struct.registry_entry, ptr %1593, i32 0, i32 4
  %1595 = getelementptr inbounds %struct.UT_hash_handle, ptr %1594, i32 0, i32 0
  %1596 = load ptr, ptr %1595, align 8, !tbaa !57
  %1597 = getelementptr inbounds %struct.UT_hash_table, ptr %1596, i32 0, i32 1
  %1598 = load i32, ptr %1597, align 8, !tbaa !29
  %1599 = icmp ult i32 %1592, %1598
  br i1 %1599, label %1600, label %1696

1600:                                             ; preds = %1591
  %1601 = load ptr, ptr %4, align 8, !tbaa !5
  %1602 = getelementptr inbounds %struct.registry_entry, ptr %1601, i32 0, i32 4
  %1603 = getelementptr inbounds %struct.UT_hash_handle, ptr %1602, i32 0, i32 0
  %1604 = load ptr, ptr %1603, align 8, !tbaa !57
  %1605 = getelementptr inbounds %struct.UT_hash_table, ptr %1604, i32 0, i32 0
  %1606 = load ptr, ptr %1605, align 8, !tbaa !32
  %1607 = load i32, ptr %27, align 4, !tbaa !12
  %1608 = zext i32 %1607 to i64
  %1609 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1606, i64 %1608
  %1610 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1609, i32 0, i32 0
  %1611 = load ptr, ptr %1610, align 8, !tbaa !38
  store ptr %1611, ptr %28, align 8, !tbaa !5
  br label %1612

1612:                                             ; preds = %1687, %1600
  %1613 = load ptr, ptr %28, align 8, !tbaa !5
  %1614 = icmp ne ptr %1613, null
  br i1 %1614, label %1615, label %1692

1615:                                             ; preds = %1612
  %1616 = load ptr, ptr %28, align 8, !tbaa !5
  %1617 = getelementptr inbounds %struct.UT_hash_handle, ptr %1616, i32 0, i32 4
  %1618 = load ptr, ptr %1617, align 8, !tbaa !46
  store ptr %1618, ptr %29, align 8, !tbaa !5
  br label %1619

1619:                                             ; preds = %1615
  %1620 = load ptr, ptr %28, align 8, !tbaa !5
  %1621 = getelementptr inbounds %struct.UT_hash_handle, ptr %1620, i32 0, i32 7
  %1622 = load i32, ptr %1621, align 4, !tbaa !47
  %1623 = load ptr, ptr %4, align 8, !tbaa !5
  %1624 = getelementptr inbounds %struct.registry_entry, ptr %1623, i32 0, i32 4
  %1625 = getelementptr inbounds %struct.UT_hash_handle, ptr %1624, i32 0, i32 0
  %1626 = load ptr, ptr %1625, align 8, !tbaa !57
  %1627 = getelementptr inbounds %struct.UT_hash_table, ptr %1626, i32 0, i32 1
  %1628 = load i32, ptr %1627, align 8, !tbaa !29
  %1629 = mul i32 %1628, 2
  %1630 = sub i32 %1629, 1
  %1631 = and i32 %1622, %1630
  store i32 %1631, ptr %26, align 4, !tbaa !12
  br label %1632

1632:                                             ; preds = %1619
  br label %1633

1633:                                             ; preds = %1632
  %1634 = load ptr, ptr %30, align 8, !tbaa !5
  %1635 = load i32, ptr %26, align 4, !tbaa !12
  %1636 = zext i32 %1635 to i64
  %1637 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1634, i64 %1636
  store ptr %1637, ptr %31, align 8, !tbaa !5
  %1638 = load ptr, ptr %31, align 8, !tbaa !5
  %1639 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1638, i32 0, i32 1
  %1640 = load i32, ptr %1639, align 8, !tbaa !36
  %1641 = add i32 %1640, 1
  store i32 %1641, ptr %1639, align 8, !tbaa !36
  %1642 = load ptr, ptr %4, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.registry_entry, ptr %1642, i32 0, i32 4
  %1644 = getelementptr inbounds %struct.UT_hash_handle, ptr %1643, i32 0, i32 0
  %1645 = load ptr, ptr %1644, align 8, !tbaa !57
  %1646 = getelementptr inbounds %struct.UT_hash_table, ptr %1645, i32 0, i32 6
  %1647 = load i32, ptr %1646, align 8, !tbaa !44
  %1648 = icmp ugt i32 %1641, %1647
  br i1 %1648, label %1649, label %1669

1649:                                             ; preds = %1633
  %1650 = load ptr, ptr %4, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.registry_entry, ptr %1650, i32 0, i32 4
  %1652 = getelementptr inbounds %struct.UT_hash_handle, ptr %1651, i32 0, i32 0
  %1653 = load ptr, ptr %1652, align 8, !tbaa !57
  %1654 = getelementptr inbounds %struct.UT_hash_table, ptr %1653, i32 0, i32 7
  %1655 = load i32, ptr %1654, align 4, !tbaa !45
  %1656 = add i32 %1655, 1
  store i32 %1656, ptr %1654, align 4, !tbaa !45
  %1657 = load ptr, ptr %31, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1657, i32 0, i32 1
  %1659 = load i32, ptr %1658, align 8, !tbaa !36
  %1660 = load ptr, ptr %4, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.registry_entry, ptr %1660, i32 0, i32 4
  %1662 = getelementptr inbounds %struct.UT_hash_handle, ptr %1661, i32 0, i32 0
  %1663 = load ptr, ptr %1662, align 8, !tbaa !57
  %1664 = getelementptr inbounds %struct.UT_hash_table, ptr %1663, i32 0, i32 6
  %1665 = load i32, ptr %1664, align 8, !tbaa !44
  %1666 = udiv i32 %1659, %1665
  %1667 = load ptr, ptr %31, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1667, i32 0, i32 2
  store i32 %1666, ptr %1668, align 4, !tbaa !42
  br label %1669

1669:                                             ; preds = %1649, %1633
  %1670 = load ptr, ptr %28, align 8, !tbaa !5
  %1671 = getelementptr inbounds %struct.UT_hash_handle, ptr %1670, i32 0, i32 3
  store ptr null, ptr %1671, align 8, !tbaa !41
  %1672 = load ptr, ptr %31, align 8, !tbaa !5
  %1673 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1672, i32 0, i32 0
  %1674 = load ptr, ptr %1673, align 8, !tbaa !38
  %1675 = load ptr, ptr %28, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.UT_hash_handle, ptr %1675, i32 0, i32 4
  store ptr %1674, ptr %1676, align 8, !tbaa !46
  %1677 = load ptr, ptr %31, align 8, !tbaa !5
  %1678 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1677, i32 0, i32 0
  %1679 = load ptr, ptr %1678, align 8, !tbaa !38
  %1680 = icmp ne ptr %1679, null
  br i1 %1680, label %1681, label %1687

1681:                                             ; preds = %1669
  %1682 = load ptr, ptr %28, align 8, !tbaa !5
  %1683 = load ptr, ptr %31, align 8, !tbaa !5
  %1684 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1683, i32 0, i32 0
  %1685 = load ptr, ptr %1684, align 8, !tbaa !38
  %1686 = getelementptr inbounds %struct.UT_hash_handle, ptr %1685, i32 0, i32 3
  store ptr %1682, ptr %1686, align 8, !tbaa !41
  br label %1687

1687:                                             ; preds = %1681, %1669
  %1688 = load ptr, ptr %28, align 8, !tbaa !5
  %1689 = load ptr, ptr %31, align 8, !tbaa !5
  %1690 = getelementptr inbounds %struct.UT_hash_bucket, ptr %1689, i32 0, i32 0
  store ptr %1688, ptr %1690, align 8, !tbaa !38
  %1691 = load ptr, ptr %29, align 8, !tbaa !5
  store ptr %1691, ptr %28, align 8, !tbaa !5
  br label %1612, !llvm.loop !60

1692:                                             ; preds = %1612
  br label %1693

1693:                                             ; preds = %1692
  %1694 = load i32, ptr %27, align 4, !tbaa !12
  %1695 = add i32 %1694, 1
  store i32 %1695, ptr %27, align 4, !tbaa !12
  br label %1591, !llvm.loop !61

1696:                                             ; preds = %1591
  %1697 = load ptr, ptr %4, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.registry_entry, ptr %1697, i32 0, i32 4
  %1699 = getelementptr inbounds %struct.UT_hash_handle, ptr %1698, i32 0, i32 0
  %1700 = load ptr, ptr %1699, align 8, !tbaa !57
  %1701 = getelementptr inbounds %struct.UT_hash_table, ptr %1700, i32 0, i32 0
  %1702 = load ptr, ptr %1701, align 8, !tbaa !32
  call void @free(ptr noundef %1702) #9
  %1703 = load ptr, ptr %4, align 8, !tbaa !5
  %1704 = getelementptr inbounds %struct.registry_entry, ptr %1703, i32 0, i32 4
  %1705 = getelementptr inbounds %struct.UT_hash_handle, ptr %1704, i32 0, i32 0
  %1706 = load ptr, ptr %1705, align 8, !tbaa !57
  %1707 = getelementptr inbounds %struct.UT_hash_table, ptr %1706, i32 0, i32 1
  %1708 = load i32, ptr %1707, align 8, !tbaa !29
  %1709 = mul i32 %1708, 2
  store i32 %1709, ptr %1707, align 8, !tbaa !29
  %1710 = load ptr, ptr %4, align 8, !tbaa !5
  %1711 = getelementptr inbounds %struct.registry_entry, ptr %1710, i32 0, i32 4
  %1712 = getelementptr inbounds %struct.UT_hash_handle, ptr %1711, i32 0, i32 0
  %1713 = load ptr, ptr %1712, align 8, !tbaa !57
  %1714 = getelementptr inbounds %struct.UT_hash_table, ptr %1713, i32 0, i32 2
  %1715 = load i32, ptr %1714, align 4, !tbaa !30
  %1716 = add i32 %1715, 1
  store i32 %1716, ptr %1714, align 4, !tbaa !30
  %1717 = load ptr, ptr %30, align 8, !tbaa !5
  %1718 = load ptr, ptr %4, align 8, !tbaa !5
  %1719 = getelementptr inbounds %struct.registry_entry, ptr %1718, i32 0, i32 4
  %1720 = getelementptr inbounds %struct.UT_hash_handle, ptr %1719, i32 0, i32 0
  %1721 = load ptr, ptr %1720, align 8, !tbaa !57
  %1722 = getelementptr inbounds %struct.UT_hash_table, ptr %1721, i32 0, i32 0
  store ptr %1717, ptr %1722, align 8, !tbaa !32
  %1723 = load ptr, ptr %4, align 8, !tbaa !5
  %1724 = getelementptr inbounds %struct.registry_entry, ptr %1723, i32 0, i32 4
  %1725 = getelementptr inbounds %struct.UT_hash_handle, ptr %1724, i32 0, i32 0
  %1726 = load ptr, ptr %1725, align 8, !tbaa !57
  %1727 = getelementptr inbounds %struct.UT_hash_table, ptr %1726, i32 0, i32 7
  %1728 = load i32, ptr %1727, align 4, !tbaa !45
  %1729 = load ptr, ptr %4, align 8, !tbaa !5
  %1730 = getelementptr inbounds %struct.registry_entry, ptr %1729, i32 0, i32 4
  %1731 = getelementptr inbounds %struct.UT_hash_handle, ptr %1730, i32 0, i32 0
  %1732 = load ptr, ptr %1731, align 8, !tbaa !57
  %1733 = getelementptr inbounds %struct.UT_hash_table, ptr %1732, i32 0, i32 3
  %1734 = load i32, ptr %1733, align 8, !tbaa !35
  %1735 = lshr i32 %1734, 1
  %1736 = icmp ugt i32 %1728, %1735
  br i1 %1736, label %1737, label %1745

1737:                                             ; preds = %1696
  %1738 = load ptr, ptr %4, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.registry_entry, ptr %1738, i32 0, i32 4
  %1740 = getelementptr inbounds %struct.UT_hash_handle, ptr %1739, i32 0, i32 0
  %1741 = load ptr, ptr %1740, align 8, !tbaa !57
  %1742 = getelementptr inbounds %struct.UT_hash_table, ptr %1741, i32 0, i32 8
  %1743 = load i32, ptr %1742, align 8, !tbaa !50
  %1744 = add i32 %1743, 1
  br label %1746

1745:                                             ; preds = %1696
  br label %1746

1746:                                             ; preds = %1745, %1737
  %1747 = phi i32 [ %1744, %1737 ], [ 0, %1745 ]
  %1748 = load ptr, ptr %4, align 8, !tbaa !5
  %1749 = getelementptr inbounds %struct.registry_entry, ptr %1748, i32 0, i32 4
  %1750 = getelementptr inbounds %struct.UT_hash_handle, ptr %1749, i32 0, i32 0
  %1751 = load ptr, ptr %1750, align 8, !tbaa !57
  %1752 = getelementptr inbounds %struct.UT_hash_table, ptr %1751, i32 0, i32 8
  store i32 %1747, ptr %1752, align 8, !tbaa !50
  %1753 = load ptr, ptr %4, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.registry_entry, ptr %1753, i32 0, i32 4
  %1755 = getelementptr inbounds %struct.UT_hash_handle, ptr %1754, i32 0, i32 0
  %1756 = load ptr, ptr %1755, align 8, !tbaa !57
  %1757 = getelementptr inbounds %struct.UT_hash_table, ptr %1756, i32 0, i32 8
  %1758 = load i32, ptr %1757, align 8, !tbaa !50
  %1759 = icmp ugt i32 %1758, 1
  br i1 %1759, label %1760, label %1766

1760:                                             ; preds = %1746
  %1761 = load ptr, ptr %4, align 8, !tbaa !5
  %1762 = getelementptr inbounds %struct.registry_entry, ptr %1761, i32 0, i32 4
  %1763 = getelementptr inbounds %struct.UT_hash_handle, ptr %1762, i32 0, i32 0
  %1764 = load ptr, ptr %1763, align 8, !tbaa !57
  %1765 = getelementptr inbounds %struct.UT_hash_table, ptr %1764, i32 0, i32 9
  store i32 1, ptr %1765, align 4, !tbaa !43
  br label %1766

1766:                                             ; preds = %1760, %1746
  br label %1767

1767:                                             ; preds = %1766
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #9
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #9
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #9
  br label %1768

1768:                                             ; preds = %1767
  br label %1769

1769:                                             ; preds = %1768
  br label %1770

1770:                                             ; preds = %1769, %1514, %1500
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #9
  br label %1771

1771:                                             ; preds = %1770
  br label %1772

1772:                                             ; preds = %1771
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #9
  br label %1773

1773:                                             ; preds = %1772
  br label %1774

1774:                                             ; preds = %1773
  br label %1775

1775:                                             ; preds = %1774
  br label %1776

1776:                                             ; preds = %1775
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #9
  br label %1777

1777:                                             ; preds = %1776
  br label %1778

1778:                                             ; preds = %1777
  %1779 = load i32, ptr @table_indexer, align 4, !tbaa !12
  %1780 = add nsw i32 %1779, 1
  store i32 %1780, ptr @table_indexer, align 4, !tbaa !12
  store i32 0, ptr %2, align 4
  store i32 1, ptr %5, align 4
  br label %1781

1781:                                             ; preds = %1778, %50, %38
  call void @llvm.lifetime.end.p0(i64 8, ptr %4) #9
  %1782 = load i32, ptr %2, align 4
  ret i32 %1782
}

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

; Function Attrs: nounwind uwtable
declare hidden ptr @find_register(ptr noundef) #0

; Function Attrs: nounwind
declare i32 @fprintf(ptr noundef, ptr noundef, ...) #2

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

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

declare void @perror(ptr noundef) #5

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !6, i64 0}
!10 = !{!"bpf_table", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !11, i64 20, !6, i64 24}
!11 = !{!"int", !7, i64 0}
!12 = !{!11, !11, i64 0}
!13 = !{!14, !11, i64 264}
!14 = !{!"", !7, i64 0, !6, i64 256, !11, i64 264, !15, i64 272, !15, i64 328}
!15 = !{!"UT_hash_handle", !6, i64 0, !6, i64 8, !6, i64 16, !6, i64 24, !6, i64 32, !6, i64 40, !11, i64 48, !11, i64 52}
!16 = !{!14, !6, i64 256}
!17 = !{!7, !7, i64 0}
!18 = distinct !{!18, !19}
!19 = !{!"llvm.loop.mustprogress"}
!20 = !{!14, !11, i64 324}
!21 = !{!14, !6, i64 312}
!22 = !{!14, !11, i64 320}
!23 = !{!14, !6, i64 288}
!24 = !{!14, !6, i64 280}
!25 = !{!14, !6, i64 272}
!26 = !{!27, !6, i64 24}
!27 = !{!"UT_hash_table", !6, i64 0, !11, i64 8, !11, i64 12, !11, i64 16, !6, i64 24, !28, i64 32, !11, i64 40, !11, i64 44, !11, i64 48, !11, i64 52, !11, i64 56}
!28 = !{!"long", !7, i64 0}
!29 = !{!27, !11, i64 8}
!30 = !{!27, !11, i64 12}
!31 = !{!27, !28, i64 32}
!32 = !{!27, !6, i64 0}
!33 = !{!27, !11, i64 56}
!34 = !{!15, !6, i64 16}
!35 = !{!27, !11, i64 16}
!36 = !{!37, !11, i64 8}
!37 = !{!"UT_hash_bucket", !6, i64 0, !11, i64 8, !11, i64 12}
!38 = !{!37, !6, i64 0}
!39 = !{!14, !6, i64 304}
!40 = !{!14, !6, i64 296}
!41 = !{!15, !6, i64 24}
!42 = !{!37, !11, i64 12}
!43 = !{!27, !11, i64 52}
!44 = !{!27, !11, i64 40}
!45 = !{!27, !11, i64 44}
!46 = !{!15, !6, i64 32}
!47 = !{!15, !11, i64 52}
!48 = distinct !{!48, !19}
!49 = distinct !{!49, !19}
!50 = !{!27, !11, i64 48}
!51 = distinct !{!51, !19}
!52 = !{!14, !11, i64 380}
!53 = !{!14, !6, i64 368}
!54 = !{!14, !11, i64 376}
!55 = !{!14, !6, i64 344}
!56 = !{!14, !6, i64 336}
!57 = !{!14, !6, i64 328}
!58 = !{!14, !6, i64 360}
!59 = !{!14, !6, i64 352}
!60 = distinct !{!60, !19}
!61 = distinct !{!61, !19}


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

@stderr = external local_unnamed_addr global ptr, align 8
@.str = external hidden unnamed_addr constant [33 x i8], align 1
@.str.1 = external hidden unnamed_addr constant [43 x i8], align 1
@.str.2 = external hidden unnamed_addr constant [34 x i8], align 1
@table_indexer = external hidden local_unnamed_addr global i32, align 4
@reg_tables_name = external hidden local_unnamed_addr global ptr, align 8
@reg_tables_id = external hidden local_unnamed_addr global ptr, align 8

; Function Attrs: nounwind uwtable
define dso_local range(i32 0, 2) i32 @registry_add(ptr noundef %0) local_unnamed_addr #0 {
  %2 = load ptr, ptr %0, align 8, !tbaa !5
  %3 = tail call ptr @find_register(ptr noundef %2)
  %.not = icmp eq ptr %3, null
  br i1 %.not, label %8, label %4

4:                                                ; preds = %1
  %5 = load ptr, ptr @stderr, align 8, !tbaa !11
  %6 = load ptr, ptr %0, align 8, !tbaa !5
  %7 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %5, ptr noundef nonnull @.str, ptr noundef %6) #9
  br label %468

8:                                                ; preds = %1
  %9 = load ptr, ptr %0, align 8, !tbaa !5
  %10 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #10
  %11 = icmp ugt i64 %10, 256
  br i1 %11, label %12, label %15

12:                                               ; preds = %8
  %13 = load ptr, ptr @stderr, align 8, !tbaa !11
  %14 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %13, ptr noundef nonnull @.str.1, ptr noundef %9, i32 noundef 256) #9
  br label %468

15:                                               ; preds = %8
  %16 = tail call noalias dereferenceable_or_null(384) ptr @malloc(i64 noundef 384) #11
  %.not555 = icmp eq ptr %16, null
  br i1 %.not555, label %17, label %18

17:                                               ; preds = %15
  tail call void @perror(ptr noundef nonnull @.str.2) #12
  tail call void @exit(i32 noundef 1) #13
  unreachable

18:                                               ; preds = %15
  tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %16, ptr align 1 %9, i64 %10, i1 false)
  %19 = load i32, ptr @table_indexer, align 4, !tbaa !12
  %20 = getelementptr inbounds i8, ptr %16, i64 264
  store i32 %19, ptr %20, align 8, !tbaa !13
  %21 = getelementptr inbounds i8, ptr %16, i64 256
  store ptr %0, ptr %21, align 8, !tbaa !16
  %22 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #10
  %23 = trunc i64 %22 to i32
  %24 = icmp ugt i32 %23, 11
  br i1 %24, label %.lr.ph, label %._crit_edge

.lr.ph:                                           ; preds = %18, %.lr.ph
  %.0495631 = phi i32 [ %67, %.lr.ph ], [ -17973521, %18 ]
  %.0496630 = phi i32 [ %59, %.lr.ph ], [ -1640531527, %18 ]
  %.0501629 = phi i32 [ %63, %.lr.ph ], [ -1640531527, %18 ]
  %.0538628 = phi i32 [ %69, %.lr.ph ], [ %23, %18 ]
  %.0539627 = phi ptr [ %68, %.lr.ph ], [ %16, %18 ]
  %25 = load i32, ptr %.0539627, align 1
  %26 = getelementptr inbounds i8, ptr %.0539627, i64 4
  %27 = load i32, ptr %26, align 1
  %28 = add i32 %27, %.0501629
  %29 = getelementptr inbounds i8, ptr %.0539627, i64 8
  %30 = load i32, ptr %29, align 1
  %31 = add i32 %30, %.0495631
  %.neg610 = add i32 %25, %.0496630
  %32 = add i32 %28, %31
  %33 = sub i32 %.neg610, %32
  %34 = lshr i32 %31, 13
  %35 = xor i32 %33, %34
  %36 = add i32 %31, %35
  %37 = sub i32 %28, %36
  %38 = shl i32 %35, 8
  %39 = xor i32 %37, %38
  %40 = add i32 %35, %39
  %41 = sub i32 %31, %40
  %42 = lshr i32 %39, 13
  %43 = xor i32 %41, %42
  %44 = add i32 %39, %43
  %45 = sub i32 %35, %44
  %46 = lshr i32 %43, 12
  %47 = xor i32 %45, %46
  %48 = add i32 %43, %47
  %49 = sub i32 %39, %48
  %50 = shl i32 %47, 16
  %51 = xor i32 %49, %50
  %52 = add i32 %47, %51
  %53 = sub i32 %43, %52
  %54 = lshr i32 %51, 5
  %55 = xor i32 %53, %54
  %56 = add i32 %51, %55
  %57 = sub i32 %47, %56
  %58 = lshr i32 %55, 3
  %59 = xor i32 %57, %58
  %60 = add i32 %55, %59
  %61 = sub i32 %51, %60
  %62 = shl i32 %59, 10
  %63 = xor i32 %61, %62
  %64 = add i32 %59, %63
  %65 = sub i32 %55, %64
  %66 = lshr i32 %63, 15
  %67 = xor i32 %65, %66
  %68 = getelementptr inbounds i8, ptr %.0539627, i64 12
  %69 = add i32 %.0538628, -12
  %70 = icmp ugt i32 %69, 11
  br i1 %70, label %.lr.ph, label %._crit_edge, !llvm.loop !17

._crit_edge:                                      ; preds = %.lr.ph, %18
  %.0539.lcssa = phi ptr [ %16, %18 ], [ %68, %.lr.ph ]
  %.0538.lcssa = phi i32 [ %23, %18 ], [ %69, %.lr.ph ]
  %.0501.lcssa = phi i32 [ -1640531527, %18 ], [ %63, %.lr.ph ]
  %.0496.lcssa = phi i32 [ -1640531527, %18 ], [ %59, %.lr.ph ]
  %.0495.lcssa = phi i32 [ -17973521, %18 ], [ %67, %.lr.ph ]
  %71 = add i32 %.0495.lcssa, %23
  switch i32 %.0538.lcssa, label %135 [
    i32 11, label %72
    i32 10, label %78
    i32 9, label %84
    i32 8, label %90
    i32 7, label %96
    i32 6, label %102
    i32 5, label %108
    i32 4, label %113
    i32 3, label %119
    i32 2, label %125
    i32 1, label %131
  ]

72:                                               ; preds = %._crit_edge
  %73 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 10
  %74 = load i8, ptr %73, align 1, !tbaa !19
  %75 = zext i8 %74 to i32
  %76 = shl nuw i32 %75, 24
  %77 = add i32 %76, %71
  br label %78

78:                                               ; preds = %72, %._crit_edge
  %.1 = phi i32 [ %71, %._crit_edge ], [ %77, %72 ]
  %79 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 9
  %80 = load i8, ptr %79, align 1, !tbaa !19
  %81 = zext i8 %80 to i32
  %82 = shl nuw nsw i32 %81, 16
  %83 = add i32 %82, %.1
  br label %84

84:                                               ; preds = %78, %._crit_edge
  %.2 = phi i32 [ %71, %._crit_edge ], [ %83, %78 ]
  %85 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 8
  %86 = load i8, ptr %85, align 1, !tbaa !19
  %87 = zext i8 %86 to i32
  %88 = shl nuw nsw i32 %87, 8
  %89 = add i32 %88, %.2
  br label %90

90:                                               ; preds = %84, %._crit_edge
  %.3 = phi i32 [ %71, %._crit_edge ], [ %89, %84 ]
  %91 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 7
  %92 = load i8, ptr %91, align 1, !tbaa !19
  %93 = zext i8 %92 to i32
  %94 = shl nuw i32 %93, 24
  %95 = add i32 %94, %.0501.lcssa
  br label %96

96:                                               ; preds = %90, %._crit_edge
  %.1502 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %95, %90 ]
  %.4 = phi i32 [ %71, %._crit_edge ], [ %.3, %90 ]
  %97 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 6
  %98 = load i8, ptr %97, align 1, !tbaa !19
  %99 = zext i8 %98 to i32
  %100 = shl nuw nsw i32 %99, 16
  %101 = add i32 %100, %.1502
  br label %102

102:                                              ; preds = %96, %._crit_edge
  %.2503 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %101, %96 ]
  %.5 = phi i32 [ %71, %._crit_edge ], [ %.4, %96 ]
  %103 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 5
  %104 = load i8, ptr %103, align 1, !tbaa !19
  %105 = zext i8 %104 to i32
  %106 = shl nuw nsw i32 %105, 8
  %107 = add i32 %106, %.2503
  br label %108

108:                                              ; preds = %102, %._crit_edge
  %.3504 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %107, %102 ]
  %.6 = phi i32 [ %71, %._crit_edge ], [ %.5, %102 ]
  %109 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 4
  %110 = load i8, ptr %109, align 1, !tbaa !19
  %111 = zext i8 %110 to i32
  %112 = add i32 %.3504, %111
  br label %113

113:                                              ; preds = %108, %._crit_edge
  %.4505 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %112, %108 ]
  %.7 = phi i32 [ %71, %._crit_edge ], [ %.6, %108 ]
  %114 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 3
  %115 = load i8, ptr %114, align 1, !tbaa !19
  %116 = zext i8 %115 to i32
  %117 = shl nuw i32 %116, 24
  %118 = add i32 %117, %.0496.lcssa
  br label %119

119:                                              ; preds = %113, %._crit_edge
  %.5506 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %.4505, %113 ]
  %.1497 = phi i32 [ %.0496.lcssa, %._crit_edge ], [ %118, %113 ]
  %.8 = phi i32 [ %71, %._crit_edge ], [ %.7, %113 ]
  %120 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 2
  %121 = load i8, ptr %120, align 1, !tbaa !19
  %122 = zext i8 %121 to i32
  %123 = shl nuw nsw i32 %122, 16
  %124 = add i32 %123, %.1497
  br label %125

125:                                              ; preds = %119, %._crit_edge
  %.6507 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %.5506, %119 ]
  %.2498 = phi i32 [ %.0496.lcssa, %._crit_edge ], [ %124, %119 ]
  %.9 = phi i32 [ %71, %._crit_edge ], [ %.8, %119 ]
  %126 = getelementptr inbounds i8, ptr %.0539.lcssa, i64 1
  %127 = load i8, ptr %126, align 1, !tbaa !19
  %128 = zext i8 %127 to i32
  %129 = shl nuw nsw i32 %128, 8
  %130 = add i32 %129, %.2498
  br label %131

131:                                              ; preds = %125, %._crit_edge
  %.7508 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %.6507, %125 ]
  %.3499 = phi i32 [ %.0496.lcssa, %._crit_edge ], [ %130, %125 ]
  %.10 = phi i32 [ %71, %._crit_edge ], [ %.9, %125 ]
  %132 = load i8, ptr %.0539.lcssa, align 1, !tbaa !19
  %133 = zext i8 %132 to i32
  %134 = add i32 %.3499, %133
  br label %135

135:                                              ; preds = %._crit_edge, %131
  %.8509 = phi i32 [ %.0501.lcssa, %._crit_edge ], [ %.7508, %131 ]
  %.4500 = phi i32 [ %.0496.lcssa, %._crit_edge ], [ %134, %131 ]
  %.11 = phi i32 [ %71, %._crit_edge ], [ %.10, %131 ]
  %136 = add i32 %.8509, %.11
  %137 = sub i32 %.4500, %136
  %138 = lshr i32 %.11, 13
  %139 = xor i32 %137, %138
  %140 = add i32 %.11, %139
  %141 = sub i32 %.8509, %140
  %142 = shl i32 %139, 8
  %143 = xor i32 %141, %142
  %144 = add i32 %139, %143
  %145 = sub i32 %.11, %144
  %146 = lshr i32 %143, 13
  %147 = xor i32 %145, %146
  %148 = add i32 %143, %147
  %149 = sub i32 %139, %148
  %150 = lshr i32 %147, 12
  %151 = xor i32 %149, %150
  %152 = add i32 %147, %151
  %153 = sub i32 %143, %152
  %154 = shl i32 %151, 16
  %155 = xor i32 %153, %154
  %156 = add i32 %151, %155
  %157 = sub i32 %147, %156
  %158 = lshr i32 %155, 5
  %159 = xor i32 %157, %158
  %160 = add i32 %155, %159
  %161 = sub i32 %151, %160
  %162 = lshr i32 %159, 3
  %163 = xor i32 %161, %162
  %164 = add i32 %159, %163
  %165 = sub i32 %155, %164
  %166 = shl i32 %163, 10
  %167 = xor i32 %165, %166
  %168 = add i32 %163, %167
  %169 = sub i32 %159, %168
  %170 = lshr i32 %167, 15
  %171 = xor i32 %169, %170
  %172 = getelementptr inbounds i8, ptr %16, i64 272
  %173 = getelementptr inbounds i8, ptr %16, i64 324
  store i32 %171, ptr %173, align 4, !tbaa !20
  %174 = getelementptr inbounds i8, ptr %16, i64 312
  store ptr %16, ptr %174, align 8, !tbaa !21
  %175 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #10
  %176 = trunc i64 %175 to i32
  %177 = getelementptr inbounds i8, ptr %16, i64 320
  store i32 %176, ptr %177, align 8, !tbaa !22
  %178 = load ptr, ptr @reg_tables_name, align 8, !tbaa !11
  %.not556 = icmp eq ptr %178, null
  br i1 %.not556, label %179, label %190

179:                                              ; preds = %135
  %180 = getelementptr inbounds i8, ptr %16, i64 280
  %calloc675 = 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) %180, i8 0, i64 16, i1 false)
  store ptr %calloc675, ptr %172, align 8, !tbaa !23
  %.not557 = icmp eq ptr %calloc675, null
  br i1 %.not557, label %181, label %182

181:                                              ; preds = %179
  tail call void @exit(i32 noundef -1) #13
  unreachable

182:                                              ; preds = %179
  %183 = getelementptr inbounds i8, ptr %calloc675, i64 24
  store ptr %172, ptr %183, align 8, !tbaa !24
  %184 = getelementptr inbounds i8, ptr %calloc675, i64 8
  store i32 32, ptr %184, align 8, !tbaa !27
  %185 = getelementptr inbounds i8, ptr %calloc675, i64 12
  store i32 5, ptr %185, align 4, !tbaa !28
  %186 = getelementptr inbounds i8, ptr %calloc675, i64 32
  store i64 272, ptr %186, align 8, !tbaa !29
  %calloc674 = tail call dereferenceable_or_null(512) ptr @calloc(i64 1, i64 512)
  store ptr %calloc674, ptr %calloc675, align 8, !tbaa !30
  %187 = getelementptr inbounds i8, ptr %calloc675, i64 56
  store i32 -1609490463, ptr %187, align 8, !tbaa !31
  %.not558 = icmp eq ptr %calloc674, null
  br i1 %.not558, label %188, label %189

188:                                              ; preds = %182
  tail call void @exit(i32 noundef -1) #13
  unreachable

189:                                              ; preds = %182
  store ptr %16, ptr @reg_tables_name, align 8, !tbaa !11
  br label %202

190:                                              ; preds = %135
  %191 = getelementptr inbounds i8, ptr %178, i64 272
  %192 = load ptr, ptr %191, align 8, !tbaa !23
  store ptr %192, ptr %172, align 8, !tbaa !23
  %193 = getelementptr inbounds i8, ptr %16, i64 288
  store ptr null, ptr %193, align 8, !tbaa !32
  %194 = getelementptr inbounds i8, ptr %192, i64 24
  %195 = load ptr, ptr %194, align 8, !tbaa !24
  %196 = getelementptr inbounds i8, ptr %192, i64 32
  %197 = load i64, ptr %196, align 8, !tbaa !29
  %198 = sub i64 0, %197
  %199 = getelementptr inbounds i8, ptr %195, i64 %198
  %200 = getelementptr inbounds i8, ptr %16, i64 280
  store ptr %199, ptr %200, align 8, !tbaa !33
  %201 = getelementptr inbounds i8, ptr %195, i64 16
  store ptr %16, ptr %201, align 8, !tbaa !34
  store ptr %172, ptr %194, align 8, !tbaa !24
  %.phi.trans.insert = getelementptr inbounds i8, ptr %192, i64 8
  %.pre = load i32, ptr %.phi.trans.insert, align 8, !tbaa !27
  %.pre666 = load ptr, ptr %192, align 8, !tbaa !30
  br label %202

202:                                              ; preds = %189, %190
  %203 = phi ptr [ %calloc674, %189 ], [ %.pre666, %190 ]
  %204 = phi i32 [ 32, %189 ], [ %.pre, %190 ]
  %205 = phi ptr [ %calloc675, %189 ], [ %192, %190 ]
  %206 = getelementptr inbounds i8, ptr %205, i64 16
  %207 = load i32, ptr %206, align 8, !tbaa !35
  %208 = add i32 %207, 1
  store i32 %208, ptr %206, align 8, !tbaa !35
  %209 = getelementptr inbounds i8, ptr %205, i64 8
  %210 = add i32 %204, -1
  %211 = and i32 %210, %171
  %212 = zext i32 %211 to i64
  %213 = getelementptr inbounds %struct.UT_hash_bucket, ptr %203, i64 %212
  %214 = getelementptr inbounds i8, ptr %213, i64 8
  %215 = load i32, ptr %214, align 8, !tbaa !36
  %216 = add i32 %215, 1
  store i32 %216, ptr %214, align 8, !tbaa !36
  %217 = load ptr, ptr %213, align 8, !tbaa !38
  %218 = getelementptr inbounds i8, ptr %16, i64 304
  store ptr %217, ptr %218, align 8, !tbaa !39
  %219 = getelementptr inbounds i8, ptr %16, i64 296
  store ptr null, ptr %219, align 8, !tbaa !40
  %.not559 = icmp eq ptr %217, null
  br i1 %.not559, label %222, label %220

220:                                              ; preds = %202
  %221 = getelementptr inbounds i8, ptr %217, i64 24
  store ptr %172, ptr %221, align 8, !tbaa !41
  br label %222

222:                                              ; preds = %220, %202
  store ptr %172, ptr %213, align 8, !tbaa !38
  %223 = getelementptr inbounds i8, ptr %213, i64 12
  %224 = load i32, ptr %223, align 4, !tbaa !42
  %225 = mul i32 %224, 10
  %226 = add i32 %225, 10
  %.not560 = icmp ult i32 %216, %226
  br i1 %.not560, label %296, label %227

227:                                              ; preds = %222
  %228 = getelementptr inbounds i8, ptr %205, i64 52
  %229 = load i32, ptr %228, align 4, !tbaa !43
  %.not561 = icmp eq i32 %229, 0
  br i1 %.not561, label %230, label %296

230:                                              ; preds = %227
  %231 = zext i32 %204 to i64
  %232 = shl nuw nsw i64 %231, 5
  %calloc673 = tail call ptr @calloc(i64 1, i64 %232)
  %.not562 = icmp eq ptr %calloc673, null
  br i1 %.not562, label %233, label %234

233:                                              ; preds = %230
  tail call void @exit(i32 noundef -1) #13
  unreachable

234:                                              ; preds = %230
  %235 = load i32, ptr %206, align 8, !tbaa !35
  %236 = getelementptr inbounds i8, ptr %205, i64 12
  %237 = load i32, ptr %236, align 4, !tbaa !28
  %238 = add i32 %237, 1
  %239 = lshr i32 %235, %238
  %240 = load i32, ptr %209, align 8, !tbaa !27
  %241 = shl i32 %240, 1
  %242 = add i32 %241, -1
  %243 = and i32 %242, %235
  %.not563 = icmp ne i32 %243, 0
  %244 = zext i1 %.not563 to i32
  %245 = add i32 %239, %244
  %246 = getelementptr inbounds i8, ptr %205, i64 40
  store i32 %245, ptr %246, align 8, !tbaa !44
  %247 = getelementptr inbounds i8, ptr %205, i64 44
  store i32 0, ptr %247, align 4, !tbaa !45
  %.not654 = icmp eq i32 %240, 0
  %.pre667 = load ptr, ptr %205, align 8, !tbaa !30
  br i1 %.not654, label %._crit_edge644, label %.lr.ph643

.lr.ph643:                                        ; preds = %234
  %wide.trip.count = zext i32 %240 to i64
  br label %248

248:                                              ; preds = %.lr.ph643, %._crit_edge640
  %249 = phi i32 [ 0, %.lr.ph643 ], [ %275, %._crit_edge640 ]
  %indvars.iv = phi i64 [ 0, %.lr.ph643 ], [ %indvars.iv.next, %._crit_edge640 ]
  %250 = getelementptr inbounds %struct.UT_hash_bucket, ptr %.pre667, i64 %indvars.iv
  %251 = load ptr, ptr %250, align 8, !tbaa !38
  %.not564636 = icmp eq ptr %251, null
  br i1 %.not564636, label %._crit_edge640, label %.lr.ph639

.lr.ph639:                                        ; preds = %248, %274
  %252 = phi i32 [ %269, %274 ], [ %249, %248 ]
  %.0541637 = phi ptr [ %254, %274 ], [ %251, %248 ]
  %253 = getelementptr inbounds i8, ptr %.0541637, i64 32
  %254 = load ptr, ptr %253, align 8, !tbaa !46
  %255 = getelementptr inbounds i8, ptr %.0541637, i64 52
  %256 = load i32, ptr %255, align 4, !tbaa !47
  %257 = and i32 %256, %242
  %258 = zext i32 %257 to i64
  %259 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc673, i64 %258
  %260 = getelementptr inbounds i8, ptr %259, i64 8
  %261 = load i32, ptr %260, align 8, !tbaa !36
  %262 = add i32 %261, 1
  store i32 %262, ptr %260, align 8, !tbaa !36
  %263 = icmp ugt i32 %262, %245
  br i1 %263, label %264, label %268

264:                                              ; preds = %.lr.ph639
  %265 = add i32 %252, 1
  store i32 %265, ptr %247, align 4, !tbaa !45
  %266 = udiv i32 %262, %245
  %267 = getelementptr inbounds i8, ptr %259, i64 12
  store i32 %266, ptr %267, align 4, !tbaa !42
  br label %268

268:                                              ; preds = %264, %.lr.ph639
  %269 = phi i32 [ %265, %264 ], [ %252, %.lr.ph639 ]
  %270 = getelementptr inbounds i8, ptr %.0541637, i64 24
  store ptr null, ptr %270, align 8, !tbaa !41
  %271 = load ptr, ptr %259, align 8, !tbaa !38
  store ptr %271, ptr %253, align 8, !tbaa !46
  %.not565 = icmp eq ptr %271, null
  br i1 %.not565, label %274, label %272

272:                                              ; preds = %268
  %273 = getelementptr inbounds i8, ptr %271, i64 24
  store ptr %.0541637, ptr %273, align 8, !tbaa !41
  br label %274

274:                                              ; preds = %272, %268
  store ptr %.0541637, ptr %259, align 8, !tbaa !38
  %.not564 = icmp eq ptr %254, null
  br i1 %.not564, label %._crit_edge640, label %.lr.ph639, !llvm.loop !48

._crit_edge640:                                   ; preds = %274, %248
  %275 = phi i32 [ %249, %248 ], [ %269, %274 ]
  %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
  %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count
  br i1 %exitcond.not, label %._crit_edge644, label %248, !llvm.loop !49

._crit_edge644:                                   ; preds = %._crit_edge640, %234
  tail call void @free(ptr noundef %.pre667) #14
  %276 = load ptr, ptr %172, align 8, !tbaa !23
  %277 = getelementptr inbounds i8, ptr %276, i64 8
  %278 = load i32, ptr %277, align 8, !tbaa !27
  %279 = shl i32 %278, 1
  store i32 %279, ptr %277, align 8, !tbaa !27
  %280 = getelementptr inbounds i8, ptr %276, i64 12
  %281 = load i32, ptr %280, align 4, !tbaa !28
  %282 = add i32 %281, 1
  store i32 %282, ptr %280, align 4, !tbaa !28
  store ptr %calloc673, ptr %276, align 8, !tbaa !30
  %283 = getelementptr inbounds i8, ptr %276, i64 44
  %284 = load i32, ptr %283, align 4, !tbaa !45
  %285 = getelementptr inbounds i8, ptr %276, i64 16
  %286 = load i32, ptr %285, align 8, !tbaa !35
  %287 = lshr i32 %286, 1
  %288 = icmp ugt i32 %284, %287
  %289 = getelementptr inbounds i8, ptr %276, i64 48
  br i1 %288, label %290, label %.thread

.thread:                                          ; preds = %._crit_edge644
  store i32 0, ptr %289, align 8, !tbaa !50
  br label %296

290:                                              ; preds = %._crit_edge644
  %291 = load i32, ptr %289, align 8, !tbaa !50
  %292 = add i32 %291, 1
  store i32 %292, ptr %289, align 8, !tbaa !50
  %293 = icmp ugt i32 %292, 1
  br i1 %293, label %294, label %296

294:                                              ; preds = %290
  %295 = getelementptr inbounds i8, ptr %276, i64 52
  store i32 1, ptr %295, align 4, !tbaa !43
  br label %296

296:                                              ; preds = %.thread, %222, %227, %290, %294
  %297 = getelementptr inbounds i8, ptr %16, i64 267
  %298 = load i8, ptr %297, align 1, !tbaa !19
  %299 = zext i8 %298 to i32
  %300 = shl nuw i32 %299, 24
  %301 = getelementptr inbounds i8, ptr %16, i64 266
  %302 = load i8, ptr %301, align 1, !tbaa !19
  %303 = zext i8 %302 to i32
  %304 = shl nuw nsw i32 %303, 16
  %305 = getelementptr inbounds i8, ptr %16, i64 265
  %306 = load i8, ptr %305, align 1, !tbaa !19
  %307 = zext i8 %306 to i32
  %308 = shl nuw nsw i32 %307, 8
  %309 = load i8, ptr %20, align 1, !tbaa !19
  %310 = zext i8 %309 to i32
  %311 = add i32 %300, 17973517
  %312 = add i32 %311, %304
  %313 = add i32 %312, %308
  %314 = add i32 %313, %310
  %315 = xor i32 %314, 522093
  %316 = sub i32 -1622558010, %315
  %317 = shl i32 %315, 8
  %318 = xor i32 %316, %317
  %319 = add i32 %315, %318
  %320 = sub i32 -17973517, %319
  %321 = lshr i32 %318, 13
  %322 = xor i32 %320, %321
  %323 = add i32 %318, %322
  %324 = sub i32 %315, %323
  %325 = lshr i32 %322, 12
  %326 = xor i32 %324, %325
  %327 = add i32 %322, %326
  %328 = sub i32 %318, %327
  %329 = shl i32 %326, 16
  %330 = xor i32 %328, %329
  %331 = add i32 %326, %330
  %332 = sub i32 %322, %331
  %333 = lshr i32 %330, 5
  %334 = xor i32 %332, %333
  %335 = add i32 %330, %334
  %336 = sub i32 %326, %335
  %337 = lshr i32 %334, 3
  %338 = xor i32 %336, %337
  %339 = add i32 %334, %338
  %340 = sub i32 %330, %339
  %341 = shl i32 %338, 10
  %342 = xor i32 %340, %341
  %343 = add i32 %338, %342
  %344 = sub i32 %334, %343
  %345 = lshr i32 %342, 15
  %346 = xor i32 %344, %345
  %347 = getelementptr inbounds i8, ptr %16, i64 328
  %348 = getelementptr inbounds i8, ptr %16, i64 380
  store i32 %346, ptr %348, align 4, !tbaa !51
  %349 = getelementptr inbounds i8, ptr %16, i64 368
  store ptr %20, ptr %349, align 8, !tbaa !52
  %350 = getelementptr inbounds i8, ptr %16, i64 376
  store i32 4, ptr %350, align 8, !tbaa !53
  %351 = load ptr, ptr @reg_tables_id, align 8, !tbaa !11
  %.not566 = icmp eq ptr %351, null
  br i1 %.not566, label %352, label %363

352:                                              ; preds = %296
  %353 = getelementptr inbounds i8, ptr %16, i64 336
  %calloc672 = 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) %353, i8 0, i64 16, i1 false)
  store ptr %calloc672, ptr %347, align 8, !tbaa !54
  %.not567 = icmp eq ptr %calloc672, null
  br i1 %.not567, label %354, label %355

354:                                              ; preds = %352
  tail call void @exit(i32 noundef -1) #13
  unreachable

355:                                              ; preds = %352
  %356 = getelementptr inbounds i8, ptr %calloc672, i64 24
  store ptr %347, ptr %356, align 8, !tbaa !24
  %357 = getelementptr inbounds i8, ptr %calloc672, i64 8
  store i32 32, ptr %357, align 8, !tbaa !27
  %358 = getelementptr inbounds i8, ptr %calloc672, i64 12
  store i32 5, ptr %358, align 4, !tbaa !28
  %359 = getelementptr inbounds i8, ptr %calloc672, i64 32
  store i64 328, ptr %359, align 8, !tbaa !29
  %calloc671 = tail call dereferenceable_or_null(512) ptr @calloc(i64 1, i64 512)
  store ptr %calloc671, ptr %calloc672, align 8, !tbaa !30
  %360 = getelementptr inbounds i8, ptr %calloc672, i64 56
  store i32 -1609490463, ptr %360, align 8, !tbaa !31
  %.not568 = icmp eq ptr %calloc671, null
  br i1 %.not568, label %361, label %362

361:                                              ; preds = %355
  tail call void @exit(i32 noundef -1) #13
  unreachable

362:                                              ; preds = %355
  store ptr %16, ptr @reg_tables_id, align 8, !tbaa !11
  br label %375

363:                                              ; preds = %296
  %364 = getelementptr inbounds i8, ptr %351, i64 328
  %365 = load ptr, ptr %364, align 8, !tbaa !54
  store ptr %365, ptr %347, align 8, !tbaa !54
  %366 = getelementptr inbounds i8, ptr %16, i64 344
  store ptr null, ptr %366, align 8, !tbaa !55
  %367 = getelementptr inbounds i8, ptr %365, i64 24
  %368 = load ptr, ptr %367, align 8, !tbaa !24
  %369 = getelementptr inbounds i8, ptr %365, i64 32
  %370 = load i64, ptr %369, align 8, !tbaa !29
  %371 = sub i64 0, %370
  %372 = getelementptr inbounds i8, ptr %368, i64 %371
  %373 = getelementptr inbounds i8, ptr %16, i64 336
  store ptr %372, ptr %373, align 8, !tbaa !56
  %374 = getelementptr inbounds i8, ptr %368, i64 16
  store ptr %16, ptr %374, align 8, !tbaa !34
  store ptr %347, ptr %367, align 8, !tbaa !24
  %.phi.trans.insert668 = getelementptr inbounds i8, ptr %365, i64 8
  %.pre669 = load i32, ptr %.phi.trans.insert668, align 8, !tbaa !27
  %.pre670 = load ptr, ptr %365, align 8, !tbaa !30
  br label %375

375:                                              ; preds = %362, %363
  %376 = phi ptr [ %calloc671, %362 ], [ %.pre670, %363 ]
  %377 = phi i32 [ 32, %362 ], [ %.pre669, %363 ]
  %378 = phi ptr [ %calloc672, %362 ], [ %365, %363 ]
  %379 = getelementptr inbounds i8, ptr %378, i64 16
  %380 = load i32, ptr %379, align 8, !tbaa !35
  %381 = add i32 %380, 1
  store i32 %381, ptr %379, align 8, !tbaa !35
  %382 = add i32 %377, -1
  %383 = and i32 %382, %346
  %384 = zext i32 %383 to i64
  %385 = getelementptr inbounds %struct.UT_hash_bucket, ptr %376, i64 %384
  %386 = getelementptr inbounds i8, ptr %385, i64 8
  %387 = load i32, ptr %386, align 8, !tbaa !36
  %388 = add i32 %387, 1
  store i32 %388, ptr %386, align 8, !tbaa !36
  %389 = load ptr, ptr %385, align 8, !tbaa !38
  %390 = getelementptr inbounds i8, ptr %16, i64 360
  store ptr %389, ptr %390, align 8, !tbaa !57
  %391 = getelementptr inbounds i8, ptr %16, i64 352
  store ptr null, ptr %391, align 8, !tbaa !58
  %.not569 = icmp eq ptr %389, null
  br i1 %.not569, label %394, label %392

392:                                              ; preds = %375
  %393 = getelementptr inbounds i8, ptr %389, i64 24
  store ptr %347, ptr %393, align 8, !tbaa !41
  br label %394

394:                                              ; preds = %392, %375
  store ptr %347, ptr %385, align 8, !tbaa !38
  %395 = getelementptr inbounds i8, ptr %385, i64 12
  %396 = load i32, ptr %395, align 4, !tbaa !42
  %397 = mul i32 %396, 10
  %398 = add i32 %397, 10
  %.not570 = icmp ult i32 %388, %398
  br i1 %.not570, label %465, label %399

399:                                              ; preds = %394
  %400 = getelementptr inbounds i8, ptr %378, i64 52
  %401 = load i32, ptr %400, align 4, !tbaa !43
  %.not571 = icmp eq i32 %401, 0
  br i1 %.not571, label %402, label %465

402:                                              ; preds = %399
  %403 = zext i32 %377 to i64
  %404 = shl nuw nsw i64 %403, 5
  %calloc = tail call ptr @calloc(i64 1, i64 %404)
  %.not572 = icmp eq ptr %calloc, null
  br i1 %.not572, label %405, label %406

405:                                              ; preds = %402
  tail call void @exit(i32 noundef -1) #13
  unreachable

406:                                              ; preds = %402
  %407 = getelementptr inbounds i8, ptr %378, i64 12
  %408 = load i32, ptr %407, align 4, !tbaa !28
  %409 = add i32 %408, 1
  %410 = lshr i32 %381, %409
  %411 = shl i32 %377, 1
  %412 = add i32 %411, -1
  %413 = and i32 %412, %381
  %.not573 = icmp ne i32 %413, 0
  %414 = zext i1 %.not573 to i32
  %415 = add i32 %410, %414
  %416 = getelementptr inbounds i8, ptr %378, i64 40
  store i32 %415, ptr %416, align 8, !tbaa !44
  %417 = getelementptr inbounds i8, ptr %378, i64 44
  store i32 0, ptr %417, align 4, !tbaa !45
  %.not655 = icmp eq i32 %377, 0
  br i1 %.not655, label %._crit_edge653, label %.lr.ph652

.lr.ph652:                                        ; preds = %406, %._crit_edge649
  %418 = phi i32 [ %444, %._crit_edge649 ], [ 0, %406 ]
  %indvars.iv661 = phi i64 [ %indvars.iv.next662, %._crit_edge649 ], [ 0, %406 ]
  %419 = getelementptr inbounds %struct.UT_hash_bucket, ptr %376, i64 %indvars.iv661
  %420 = load ptr, ptr %419, align 8, !tbaa !38
  %.not574645 = icmp eq ptr %420, null
  br i1 %.not574645, label %._crit_edge649, label %.lr.ph648

.lr.ph648:                                        ; preds = %.lr.ph652, %443
  %421 = phi i32 [ %438, %443 ], [ %418, %.lr.ph652 ]
  %.0493646 = phi ptr [ %423, %443 ], [ %420, %.lr.ph652 ]
  %422 = getelementptr inbounds i8, ptr %.0493646, i64 32
  %423 = load ptr, ptr %422, align 8, !tbaa !46
  %424 = getelementptr inbounds i8, ptr %.0493646, i64 52
  %425 = load i32, ptr %424, align 4, !tbaa !47
  %426 = and i32 %425, %412
  %427 = zext i32 %426 to i64
  %428 = getelementptr inbounds %struct.UT_hash_bucket, ptr %calloc, i64 %427
  %429 = getelementptr inbounds i8, ptr %428, i64 8
  %430 = load i32, ptr %429, align 8, !tbaa !36
  %431 = add i32 %430, 1
  store i32 %431, ptr %429, align 8, !tbaa !36
  %432 = icmp ugt i32 %431, %415
  br i1 %432, label %433, label %437

433:                                              ; preds = %.lr.ph648
  %434 = add i32 %421, 1
  store i32 %434, ptr %417, align 4, !tbaa !45
  %435 = udiv i32 %431, %415
  %436 = getelementptr inbounds i8, ptr %428, i64 12
  store i32 %435, ptr %436, align 4, !tbaa !42
  br label %437

437:                                              ; preds = %433, %.lr.ph648
  %438 = phi i32 [ %434, %433 ], [ %421, %.lr.ph648 ]
  %439 = getelementptr inbounds i8, ptr %.0493646, i64 24
  store ptr null, ptr %439, align 8, !tbaa !41
  %440 = load ptr, ptr %428, align 8, !tbaa !38
  store ptr %440, ptr %422, align 8, !tbaa !46
  %.not575 = icmp eq ptr %440, null
  br i1 %.not575, label %443, label %441

441:                                              ; preds = %437
  %442 = getelementptr inbounds i8, ptr %440, i64 24
  store ptr %.0493646, ptr %442, align 8, !tbaa !41
  br label %443

443:                                              ; preds = %441, %437
  store ptr %.0493646, ptr %428, align 8, !tbaa !38
  %.not574 = icmp eq ptr %423, null
  br i1 %.not574, label %._crit_edge649, label %.lr.ph648, !llvm.loop !59

._crit_edge649:                                   ; preds = %443, %.lr.ph652
  %444 = phi i32 [ %418, %.lr.ph652 ], [ %438, %443 ]
  %indvars.iv.next662 = add nuw nsw i64 %indvars.iv661, 1
  %exitcond665.not = icmp eq i64 %indvars.iv.next662, %403
  br i1 %exitcond665.not, label %._crit_edge653, label %.lr.ph652, !llvm.loop !60

._crit_edge653:                                   ; preds = %._crit_edge649, %406
  tail call void @free(ptr noundef %376) #14
  %445 = load ptr, ptr %347, align 8, !tbaa !54
  %446 = getelementptr inbounds i8, ptr %445, i64 8
  %447 = load i32, ptr %446, align 8, !tbaa !27
  %448 = shl i32 %447, 1
  store i32 %448, ptr %446, align 8, !tbaa !27
  %449 = getelementptr inbounds i8, ptr %445, i64 12
  %450 = load i32, ptr %449, align 4, !tbaa !28
  %451 = add i32 %450, 1
  store i32 %451, ptr %449, align 4, !tbaa !28
  store ptr %calloc, ptr %445, align 8, !tbaa !30
  %452 = getelementptr inbounds i8, ptr %445, i64 44
  %453 = load i32, ptr %452, align 4, !tbaa !45
  %454 = getelementptr inbounds i8, ptr %445, i64 16
  %455 = load i32, ptr %454, align 8, !tbaa !35
  %456 = lshr i32 %455, 1
  %457 = icmp ugt i32 %453, %456
  %458 = getelementptr inbounds i8, ptr %445, i64 48
  br i1 %457, label %459, label %.thread576

.thread576:                                       ; preds = %._crit_edge653
  store i32 0, ptr %458, align 8, !tbaa !50
  br label %465

459:                                              ; preds = %._crit_edge653
  %460 = load i32, ptr %458, align 8, !tbaa !50
  %461 = add i32 %460, 1
  store i32 %461, ptr %458, align 8, !tbaa !50
  %462 = icmp ugt i32 %461, 1
  br i1 %462, label %463, label %465

463:                                              ; preds = %459
  %464 = getelementptr inbounds i8, ptr %445, i64 52
  store i32 1, ptr %464, align 4, !tbaa !43
  br label %465

465:                                              ; preds = %.thread576, %463, %459, %399, %394
  %466 = load i32, ptr @table_indexer, align 4, !tbaa !12
  %467 = add nsw i32 %466, 1
  store i32 %467, ptr @table_indexer, align 4, !tbaa !12
  br label %468

468:                                              ; preds = %465, %12, %4
  %.0 = phi i32 [ 1, %4 ], [ 1, %12 ], [ 0, %465 ]
  ret i32 %.0
}

; Function Attrs: nounwind uwtable
declare hidden ptr @find_register(ptr noundef) local_unnamed_addr #0

; Function Attrs: nofree nounwind
declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readonly, ...) local_unnamed_addr #1

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

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

; Function Attrs: nofree nounwind
declare void @perror(ptr nocapture noundef readonly) local_unnamed_addr #1

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

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

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

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

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

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !7, i64 0}
!6 = !{!"bpf_table", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !10, i64 20, !7, i64 24}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!7, !7, i64 0}
!12 = !{!10, !10, i64 0}
!13 = !{!14, !10, i64 264}
!14 = !{!"", !8, i64 0, !7, i64 256, !10, i64 264, !15, i64 272, !15, i64 328}
!15 = !{!"UT_hash_handle", !7, i64 0, !7, i64 8, !7, i64 16, !7, i64 24, !7, i64 32, !7, i64 40, !10, i64 48, !10, i64 52}
!16 = !{!14, !7, i64 256}
!17 = distinct !{!17, !18}
!18 = !{!"llvm.loop.mustprogress"}
!19 = !{!8, !8, i64 0}
!20 = !{!14, !10, i64 324}
!21 = !{!14, !7, i64 312}
!22 = !{!14, !10, i64 320}
!23 = !{!14, !7, i64 272}
!24 = !{!25, !7, i64 24}
!25 = !{!"UT_hash_table", !7, i64 0, !10, i64 8, !10, i64 12, !10, i64 16, !7, i64 24, !26, i64 32, !10, i64 40, !10, i64 44, !10, i64 48, !10, i64 52, !10, i64 56}
!26 = !{!"long", !8, i64 0}
!27 = !{!25, !10, i64 8}
!28 = !{!25, !10, i64 12}
!29 = !{!25, !26, i64 32}
!30 = !{!25, !7, i64 0}
!31 = !{!25, !10, i64 56}
!32 = !{!14, !7, i64 288}
!33 = !{!14, !7, i64 280}
!34 = !{!15, !7, i64 16}
!35 = !{!25, !10, i64 16}
!36 = !{!37, !10, i64 8}
!37 = !{!"UT_hash_bucket", !7, i64 0, !10, i64 8, !10, i64 12}
!38 = !{!37, !7, i64 0}
!39 = !{!14, !7, i64 304}
!40 = !{!14, !7, i64 296}
!41 = !{!15, !7, i64 24}
!42 = !{!37, !10, i64 12}
!43 = !{!25, !10, i64 52}
!44 = !{!25, !10, i64 40}
!45 = !{!25, !10, i64 44}
!46 = !{!15, !7, i64 32}
!47 = !{!15, !10, i64 52}
!48 = distinct !{!48, !18}
!49 = distinct !{!49, !18}
!50 = !{!25, !10, i64 48}
!51 = !{!14, !10, i64 380}
!52 = !{!14, !7, i64 368}
!53 = !{!14, !10, i64 376}
!54 = !{!14, !7, i64 328}
!55 = !{!14, !7, i64 344}
!56 = !{!14, !7, i64 336}
!57 = !{!14, !7, i64 360}
!58 = !{!14, !7, i64 352}
!59 = distinct !{!59, !18}
!60 = distinct !{!60, !18}


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