; LLVM IR from facebook/hermes :: API/hermes_sandbox/external (hermes_sandbox_impl_compiled_1)

; 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.w2c_hermes = type { ptr, ptr, ptr, i32, i32, i32, %struct.wasm_rt_memory_t, %struct.wasm_rt_funcref_table_t }
%struct.wasm_rt_memory_t = type { ptr, i64, i64, i64, i8 }
%struct.wasm_rt_funcref_table_t = type { ptr, i32, i32 }
%struct.wasm_rt_funcref_t = type { ptr, ptr, ptr }

@w2c_hermes_t3 = external constant ptr, align 8

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @i32_store(ptr noundef, i64 noundef, i32 noundef) #1

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @func_types_eq(ptr noundef, ptr noundef) #1

; Function Attrs: nocallback nofree nosync nounwind willreturn memory(none)
declare i64 @llvm.expect.i64(i64, i64) #2

; Function Attrs: noreturn
declare void @wasm_rt_trap(i32 noundef) #3

declare void @w2c_hermes_0x5F_assert_fail(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #4

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

declare void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef, i32 noundef) #4

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

declare void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #4

declare void @w2c_hermes_dlfree(ptr noundef, i32 noundef) #4

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fshared_weak_count0x3A0x3A_0x5Frelease_weak0x280x29(ptr noundef, i32 noundef) #4

; Function Attrs: nounwind uwtable
declare dso_local void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef, i32 noundef) #5

; Function Attrs: nounwind uwtable
declare dso_local i32 @w2c_hermes_hermes0x3A0x3AScopeDesc0x3A0x3A0x7EScopeDesc0x280x29(ptr noundef, i32 noundef) #5

; Function Attrs: nounwind uwtable
define dso_local i32 @w2c_hermes_hermes0x3A0x3AModule0x3A0x3A0x7EModule0x280x29(ptr noundef %0, i32 noundef %1) #5 {
  %3 = alloca ptr, align 8
  %4 = alloca i32, align 4
  %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 i32, align 4
  %11 = alloca i32, align 4
  %12 = alloca i32, align 4
  %13 = alloca i32, align 4
  %14 = alloca i32, align 4
  %15 = alloca i32, align 4
  %16 = alloca i32, align 4
  %17 = alloca i32, align 4
  %18 = alloca i64, align 8
  store ptr %0, ptr %3, align 8, !tbaa !5
  store i32 %1, ptr %4, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %5) #6
  store i32 0, ptr %5, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %6) #6
  store i32 0, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #6
  store i32 0, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #6
  store i32 0, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #6
  store i32 0, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #6
  store i32 0, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  %19 = load ptr, ptr %3, align 8, !tbaa !5
  %20 = getelementptr inbounds %struct.w2c_hermes, ptr %19, i32 0, i32 3
  %21 = load i32, ptr %20, align 8, !tbaa !11
  store i32 %21, ptr %13, align 4, !tbaa !9
  store i32 160, ptr %14, align 4, !tbaa !9
  %22 = load i32, ptr %14, align 4, !tbaa !9
  %23 = load i32, ptr %13, align 4, !tbaa !9
  %24 = sub i32 %23, %22
  store i32 %24, ptr %13, align 4, !tbaa !9
  %25 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %25, ptr %6, align 4, !tbaa !9
  %26 = load i32, ptr %13, align 4, !tbaa !9
  %27 = load ptr, ptr %3, align 8, !tbaa !5
  %28 = getelementptr inbounds %struct.w2c_hermes, ptr %27, i32 0, i32 3
  store i32 %26, ptr %28, align 8, !tbaa !11
  %29 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %29, ptr %13, align 4, !tbaa !9
  %30 = load ptr, ptr %3, align 8, !tbaa !5
  %31 = getelementptr inbounds %struct.w2c_hermes, ptr %30, i32 0, i32 6
  %32 = load i32, ptr %13, align 4, !tbaa !9
  %33 = zext i32 %32 to i64
  %34 = add i64 %33, 44
  %35 = call i32 @i32_load(ptr noundef %31, i64 noundef %34)
  store i32 %35, ptr %13, align 4, !tbaa !9
  %36 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %36, ptr %5, align 4, !tbaa !9
  %37 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %37, ptr %14, align 4, !tbaa !9
  store i32 40, ptr %15, align 4, !tbaa !9
  %38 = load i32, ptr %15, align 4, !tbaa !9
  %39 = load i32, ptr %14, align 4, !tbaa !9
  %40 = add i32 %39, %38
  store i32 %40, ptr %14, align 4, !tbaa !9
  %41 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %41, ptr %11, align 4, !tbaa !9
  %42 = load i32, ptr %13, align 4, !tbaa !9
  %43 = load i32, ptr %14, align 4, !tbaa !9
  %44 = icmp ne i32 %42, %43
  %45 = zext i1 %44 to i32
  store i32 %45, ptr %13, align 4, !tbaa !9
  %46 = load i32, ptr %13, align 4, !tbaa !9
  %47 = icmp ne i32 %46, 0
  br i1 %47, label %48, label %101

48:                                               ; preds = %2
  br label %49

49:                                               ; preds = %99, %48
  %50 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %50, ptr %13, align 4, !tbaa !9
  %51 = load ptr, ptr %3, align 8, !tbaa !5
  %52 = getelementptr inbounds %struct.w2c_hermes, ptr %51, i32 0, i32 6
  %53 = load i32, ptr %13, align 4, !tbaa !9
  %54 = zext i32 %53 to i64
  %55 = add i64 %54, 4
  %56 = call i32 @i32_load(ptr noundef %52, i64 noundef %55)
  store i32 %56, ptr %13, align 4, !tbaa !9
  %57 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %57, ptr %7, align 4, !tbaa !9
  %58 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %58, ptr %14, align 4, !tbaa !9
  %59 = load ptr, ptr %3, align 8, !tbaa !5
  %60 = getelementptr inbounds %struct.w2c_hermes, ptr %59, i32 0, i32 6
  %61 = load i32, ptr %14, align 4, !tbaa !9
  %62 = zext i32 %61 to i64
  %63 = call i32 @i32_load(ptr noundef %60, i64 noundef %62)
  store i32 %63, ptr %14, align 4, !tbaa !9
  %64 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %64, ptr %8, align 4, !tbaa !9
  %65 = load ptr, ptr %3, align 8, !tbaa !5
  %66 = getelementptr inbounds %struct.w2c_hermes, ptr %65, i32 0, i32 6
  %67 = load i32, ptr %13, align 4, !tbaa !9
  %68 = zext i32 %67 to i64
  %69 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %66, i64 noundef %68, i32 noundef %69)
  %70 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %70, ptr %13, align 4, !tbaa !9
  %71 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %71, ptr %14, align 4, !tbaa !9
  %72 = load ptr, ptr %3, align 8, !tbaa !5
  %73 = getelementptr inbounds %struct.w2c_hermes, ptr %72, i32 0, i32 6
  %74 = load i32, ptr %13, align 4, !tbaa !9
  %75 = zext i32 %74 to i64
  %76 = add i64 %75, 4
  %77 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %73, i64 noundef %76, i32 noundef %77)
  %78 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %78, ptr %13, align 4, !tbaa !9
  store i64 0, ptr %18, align 8, !tbaa !17
  %79 = load ptr, ptr %3, align 8, !tbaa !5
  %80 = getelementptr inbounds %struct.w2c_hermes, ptr %79, i32 0, i32 6
  %81 = load i32, ptr %13, align 4, !tbaa !9
  %82 = zext i32 %81 to i64
  %83 = load i64, ptr %18, align 8, !tbaa !17
  call void @i64_store(ptr noundef %80, i64 noundef %82, i64 noundef %83)
  %84 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %84, ptr %13, align 4, !tbaa !9
  store i32 8, ptr %14, align 4, !tbaa !9
  %85 = load i32, ptr %14, align 4, !tbaa !9
  %86 = load i32, ptr %13, align 4, !tbaa !9
  %87 = add i32 %86, %85
  store i32 %87, ptr %13, align 4, !tbaa !9
  %88 = load ptr, ptr %3, align 8, !tbaa !5
  %89 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %88, i32 noundef %89)
  %90 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %90, ptr %13, align 4, !tbaa !9
  %91 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %91, ptr %5, align 4, !tbaa !9
  %92 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %92, ptr %14, align 4, !tbaa !9
  %93 = load i32, ptr %13, align 4, !tbaa !9
  %94 = load i32, ptr %14, align 4, !tbaa !9
  %95 = icmp ne i32 %93, %94
  %96 = zext i1 %95 to i32
  store i32 %96, ptr %13, align 4, !tbaa !9
  %97 = load i32, ptr %13, align 4, !tbaa !9
  %98 = icmp ne i32 %97, 0
  br i1 %98, label %99, label %100

99:                                               ; preds = %49
  br label %49

100:                                              ; preds = %49
  br label %101

101:                                              ; preds = %100, %2
  %102 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %102, ptr %13, align 4, !tbaa !9
  store i32 -64, ptr %14, align 4, !tbaa !9
  %103 = load i32, ptr %14, align 4, !tbaa !9
  %104 = load i32, ptr %13, align 4, !tbaa !9
  %105 = sub i32 %104, %103
  store i32 %105, ptr %13, align 4, !tbaa !9
  %106 = load ptr, ptr %3, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.w2c_hermes, ptr %106, i32 0, i32 6
  %108 = load i32, ptr %13, align 4, !tbaa !9
  %109 = zext i32 %108 to i64
  %110 = call i32 @i32_load(ptr noundef %107, i64 noundef %109)
  store i32 %110, ptr %13, align 4, !tbaa !9
  %111 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %111, ptr %5, align 4, !tbaa !9
  %112 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %112, ptr %14, align 4, !tbaa !9
  %113 = load ptr, ptr %3, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.w2c_hermes, ptr %113, i32 0, i32 6
  %115 = load i32, ptr %14, align 4, !tbaa !9
  %116 = zext i32 %115 to i64
  %117 = add i64 %116, 68
  %118 = call i32 @i32_load(ptr noundef %114, i64 noundef %117)
  store i32 %118, ptr %14, align 4, !tbaa !9
  %119 = load i32, ptr %14, align 4, !tbaa !9
  %120 = load i32, ptr %13, align 4, !tbaa !9
  %121 = or i32 %120, %119
  store i32 %121, ptr %13, align 4, !tbaa !9
  %122 = load i32, ptr %13, align 4, !tbaa !9
  %123 = icmp ne i32 %122, 0
  %124 = xor i1 %123, true
  %125 = zext i1 %124 to i32
  store i32 %125, ptr %13, align 4, !tbaa !9
  %126 = load i32, ptr %13, align 4, !tbaa !9
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %129

128:                                              ; preds = %101
  br label %327

129:                                              ; preds = %101
  %130 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %130, ptr %13, align 4, !tbaa !9
  store i32 60, ptr %14, align 4, !tbaa !9
  %131 = load i32, ptr %14, align 4, !tbaa !9
  %132 = load i32, ptr %13, align 4, !tbaa !9
  %133 = add i32 %132, %131
  store i32 %133, ptr %13, align 4, !tbaa !9
  %134 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %134, ptr %7, align 4, !tbaa !9
  %135 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %135, ptr %13, align 4, !tbaa !9
  %136 = load ptr, ptr %3, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.w2c_hermes, ptr %136, i32 0, i32 6
  %138 = load i32, ptr %13, align 4, !tbaa !9
  %139 = zext i32 %138 to i64
  %140 = add i64 %139, 72
  %141 = call i32 @i32_load(ptr noundef %137, i64 noundef %140)
  store i32 %141, ptr %13, align 4, !tbaa !9
  %142 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %142, ptr %9, align 4, !tbaa !9
  %143 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %143, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %15, align 4, !tbaa !9
  %144 = load i32, ptr %15, align 4, !tbaa !9
  %145 = and i32 %144, 31
  %146 = load i32, ptr %14, align 4, !tbaa !9
  %147 = shl i32 %146, %145
  store i32 %147, ptr %14, align 4, !tbaa !9
  %148 = load i32, ptr %13, align 4, !tbaa !9
  %149 = load i32, ptr %14, align 4, !tbaa !9
  %150 = icmp ule i32 %148, %149
  %151 = zext i1 %150 to i32
  store i32 %151, ptr %13, align 4, !tbaa !9
  %152 = load i32, ptr %13, align 4, !tbaa !9
  %153 = icmp ne i32 %152, 0
  br i1 %153, label %154, label %155

154:                                              ; preds = %129
  br label %168

155:                                              ; preds = %129
  %156 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %156, ptr %13, align 4, !tbaa !9
  store i32 65, ptr %14, align 4, !tbaa !9
  %157 = load i32, ptr %13, align 4, !tbaa !9
  %158 = load i32, ptr %14, align 4, !tbaa !9
  %159 = icmp ult i32 %157, %158
  %160 = zext i1 %159 to i32
  store i32 %160, ptr %13, align 4, !tbaa !9
  %161 = load i32, ptr %13, align 4, !tbaa !9
  %162 = icmp ne i32 %161, 0
  br i1 %162, label %163, label %164

163:                                              ; preds = %155
  br label %168

164:                                              ; preds = %155
  %165 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %165, ptr %13, align 4, !tbaa !9
  %166 = load ptr, ptr %3, align 8, !tbaa !5
  %167 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ADenseMap0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x2C0x20llvh0x3A0x3ADenseMapInfo0x3Chermes0x3A0x3AIdentifier0x3E0x2C0x20llvh0x3A0x3Adetail0x3A0x3ADenseMapPair0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x3E0x3E0x3A0x3Ashrink_and_clear0x280x29(ptr noundef %166, i32 noundef %167)
  br label %327

168:                                              ; preds = %163, %154
  %169 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %169, ptr %13, align 4, !tbaa !9
  %170 = load i32, ptr %13, align 4, !tbaa !9
  %171 = icmp ne i32 %170, 0
  %172 = xor i1 %171, true
  %173 = zext i1 %172 to i32
  store i32 %173, ptr %13, align 4, !tbaa !9
  %174 = load i32, ptr %13, align 4, !tbaa !9
  %175 = icmp ne i32 %174, 0
  br i1 %175, label %176, label %177

176:                                              ; preds = %168
  br label %319

177:                                              ; preds = %168
  %178 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %178, ptr %13, align 4, !tbaa !9
  store i32 1, ptr %14, align 4, !tbaa !9
  %179 = load i32, ptr %14, align 4, !tbaa !9
  %180 = load i32, ptr %13, align 4, !tbaa !9
  %181 = sub i32 %180, %179
  store i32 %181, ptr %13, align 4, !tbaa !9
  store i32 536870911, ptr %14, align 4, !tbaa !9
  %182 = load i32, ptr %14, align 4, !tbaa !9
  %183 = load i32, ptr %13, align 4, !tbaa !9
  %184 = and i32 %183, %182
  store i32 %184, ptr %13, align 4, !tbaa !9
  %185 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %185, ptr %12, align 4, !tbaa !9
  %186 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %186, ptr %13, align 4, !tbaa !9
  %187 = load ptr, ptr %3, align 8, !tbaa !5
  %188 = getelementptr inbounds %struct.w2c_hermes, ptr %187, i32 0, i32 6
  %189 = load i32, ptr %13, align 4, !tbaa !9
  %190 = zext i32 %189 to i64
  %191 = call i32 @i32_load(ptr noundef %188, i64 noundef %190)
  store i32 %191, ptr %13, align 4, !tbaa !9
  %192 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %192, ptr %10, align 4, !tbaa !9
  %193 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %193, ptr %5, align 4, !tbaa !9
  %194 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %194, ptr %13, align 4, !tbaa !9
  store i32 7, ptr %14, align 4, !tbaa !9
  %195 = load i32, ptr %14, align 4, !tbaa !9
  %196 = load i32, ptr %13, align 4, !tbaa !9
  %197 = and i32 %196, %195
  store i32 %197, ptr %13, align 4, !tbaa !9
  %198 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %198, ptr %8, align 4, !tbaa !9
  %199 = load i32, ptr %13, align 4, !tbaa !9
  %200 = icmp ne i32 %199, 0
  br i1 %200, label %201, label %229

201:                                              ; preds = %177
  store i32 0, ptr %13, align 4, !tbaa !9
  %202 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %202, ptr %7, align 4, !tbaa !9
  br label %203

203:                                              ; preds = %227, %201
  %204 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %204, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %205 = load ptr, ptr %3, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.w2c_hermes, ptr %205, i32 0, i32 6
  %207 = load i32, ptr %13, align 4, !tbaa !9
  %208 = zext i32 %207 to i64
  %209 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %206, i64 noundef %208, i32 noundef %209)
  %210 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %210, ptr %13, align 4, !tbaa !9
  store i32 8, ptr %14, align 4, !tbaa !9
  %211 = load i32, ptr %14, align 4, !tbaa !9
  %212 = load i32, ptr %13, align 4, !tbaa !9
  %213 = add i32 %212, %211
  store i32 %213, ptr %13, align 4, !tbaa !9
  %214 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %214, ptr %5, align 4, !tbaa !9
  %215 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %215, ptr %13, align 4, !tbaa !9
  store i32 1, ptr %14, align 4, !tbaa !9
  %216 = load i32, ptr %14, align 4, !tbaa !9
  %217 = load i32, ptr %13, align 4, !tbaa !9
  %218 = add i32 %217, %216
  store i32 %218, ptr %13, align 4, !tbaa !9
  %219 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %219, ptr %7, align 4, !tbaa !9
  %220 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %220, ptr %14, align 4, !tbaa !9
  %221 = load i32, ptr %13, align 4, !tbaa !9
  %222 = load i32, ptr %14, align 4, !tbaa !9
  %223 = icmp ne i32 %221, %222
  %224 = zext i1 %223 to i32
  store i32 %224, ptr %13, align 4, !tbaa !9
  %225 = load i32, ptr %13, align 4, !tbaa !9
  %226 = icmp ne i32 %225, 0
  br i1 %226, label %227, label %228

227:                                              ; preds = %203
  br label %203

228:                                              ; preds = %203
  br label %229

229:                                              ; preds = %228, %177
  %230 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %230, ptr %13, align 4, !tbaa !9
  store i32 6, ptr %14, align 4, !tbaa !9
  %231 = load i32, ptr %13, align 4, !tbaa !9
  %232 = load i32, ptr %14, align 4, !tbaa !9
  %233 = icmp ule i32 %231, %232
  %234 = zext i1 %233 to i32
  store i32 %234, ptr %13, align 4, !tbaa !9
  %235 = load i32, ptr %13, align 4, !tbaa !9
  %236 = icmp ne i32 %235, 0
  br i1 %236, label %237, label %238

237:                                              ; preds = %229
  br label %319

238:                                              ; preds = %229
  %239 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %239, ptr %13, align 4, !tbaa !9
  %240 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %240, ptr %14, align 4, !tbaa !9
  store i32 3, ptr %15, align 4, !tbaa !9
  %241 = load i32, ptr %15, align 4, !tbaa !9
  %242 = and i32 %241, 31
  %243 = load i32, ptr %14, align 4, !tbaa !9
  %244 = shl i32 %243, %242
  store i32 %244, ptr %14, align 4, !tbaa !9
  %245 = load i32, ptr %14, align 4, !tbaa !9
  %246 = load i32, ptr %13, align 4, !tbaa !9
  %247 = add i32 %246, %245
  store i32 %247, ptr %13, align 4, !tbaa !9
  %248 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %248, ptr %7, align 4, !tbaa !9
  br label %249

249:                                              ; preds = %317, %238
  %250 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %250, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %251 = load ptr, ptr %3, align 8, !tbaa !5
  %252 = getelementptr inbounds %struct.w2c_hermes, ptr %251, i32 0, i32 6
  %253 = load i32, ptr %13, align 4, !tbaa !9
  %254 = zext i32 %253 to i64
  %255 = add i64 %254, 56
  %256 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %252, i64 noundef %255, i32 noundef %256)
  %257 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %257, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %258 = load ptr, ptr %3, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.w2c_hermes, ptr %258, i32 0, i32 6
  %260 = load i32, ptr %13, align 4, !tbaa !9
  %261 = zext i32 %260 to i64
  %262 = add i64 %261, 48
  %263 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %259, i64 noundef %262, i32 noundef %263)
  %264 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %264, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %265 = load ptr, ptr %3, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.w2c_hermes, ptr %265, i32 0, i32 6
  %267 = load i32, ptr %13, align 4, !tbaa !9
  %268 = zext i32 %267 to i64
  %269 = add i64 %268, 40
  %270 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %266, i64 noundef %269, i32 noundef %270)
  %271 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %271, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %272 = load ptr, ptr %3, align 8, !tbaa !5
  %273 = getelementptr inbounds %struct.w2c_hermes, ptr %272, i32 0, i32 6
  %274 = load i32, ptr %13, align 4, !tbaa !9
  %275 = zext i32 %274 to i64
  %276 = add i64 %275, 32
  %277 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %273, i64 noundef %276, i32 noundef %277)
  %278 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %278, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %279 = load ptr, ptr %3, align 8, !tbaa !5
  %280 = getelementptr inbounds %struct.w2c_hermes, ptr %279, i32 0, i32 6
  %281 = load i32, ptr %13, align 4, !tbaa !9
  %282 = zext i32 %281 to i64
  %283 = add i64 %282, 24
  %284 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %280, i64 noundef %283, i32 noundef %284)
  %285 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %285, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %286 = load ptr, ptr %3, align 8, !tbaa !5
  %287 = getelementptr inbounds %struct.w2c_hermes, ptr %286, i32 0, i32 6
  %288 = load i32, ptr %13, align 4, !tbaa !9
  %289 = zext i32 %288 to i64
  %290 = add i64 %289, 16
  %291 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %287, i64 noundef %290, i32 noundef %291)
  %292 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %292, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %293 = load ptr, ptr %3, align 8, !tbaa !5
  %294 = getelementptr inbounds %struct.w2c_hermes, ptr %293, i32 0, i32 6
  %295 = load i32, ptr %13, align 4, !tbaa !9
  %296 = zext i32 %295 to i64
  %297 = add i64 %296, 8
  %298 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %294, i64 noundef %297, i32 noundef %298)
  %299 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %299, ptr %13, align 4, !tbaa !9
  store i32 -4, ptr %14, align 4, !tbaa !9
  %300 = load ptr, ptr %3, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.w2c_hermes, ptr %300, i32 0, i32 6
  %302 = load i32, ptr %13, align 4, !tbaa !9
  %303 = zext i32 %302 to i64
  %304 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %301, i64 noundef %303, i32 noundef %304)
  %305 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %305, ptr %13, align 4, !tbaa !9
  store i32 -64, ptr %14, align 4, !tbaa !9
  %306 = load i32, ptr %14, align 4, !tbaa !9
  %307 = load i32, ptr %13, align 4, !tbaa !9
  %308 = sub i32 %307, %306
  store i32 %308, ptr %13, align 4, !tbaa !9
  %309 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %309, ptr %5, align 4, !tbaa !9
  %310 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %310, ptr %14, align 4, !tbaa !9
  %311 = load i32, ptr %13, align 4, !tbaa !9
  %312 = load i32, ptr %14, align 4, !tbaa !9
  %313 = icmp ne i32 %311, %312
  %314 = zext i1 %313 to i32
  store i32 %314, ptr %13, align 4, !tbaa !9
  %315 = load i32, ptr %13, align 4, !tbaa !9
  %316 = icmp ne i32 %315, 0
  br i1 %316, label %317, label %318

317:                                              ; preds = %249
  br label %249

318:                                              ; preds = %249
  br label %319

319:                                              ; preds = %318, %237, %176
  %320 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %320, ptr %13, align 4, !tbaa !9
  store i64 0, ptr %18, align 8, !tbaa !17
  %321 = load ptr, ptr %3, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.w2c_hermes, ptr %321, i32 0, i32 6
  %323 = load i32, ptr %13, align 4, !tbaa !9
  %324 = zext i32 %323 to i64
  %325 = add i64 %324, 64
  %326 = load i64, ptr %18, align 8, !tbaa !17
  call void @i64_store(ptr noundef %322, i64 noundef %325, i64 noundef %326)
  br label %327

327:                                              ; preds = %319, %164, %128
  %328 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %328, ptr %13, align 4, !tbaa !9
  %329 = load ptr, ptr %3, align 8, !tbaa !5
  %330 = getelementptr inbounds %struct.w2c_hermes, ptr %329, i32 0, i32 6
  %331 = load i32, ptr %13, align 4, !tbaa !9
  %332 = zext i32 %331 to i64
  %333 = add i64 %332, 48
  %334 = call i32 @i32_load(ptr noundef %330, i64 noundef %333)
  store i32 %334, ptr %13, align 4, !tbaa !9
  %335 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %335, ptr %5, align 4, !tbaa !9
  %336 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %336, ptr %14, align 4, !tbaa !9
  %337 = load ptr, ptr %3, align 8, !tbaa !5
  %338 = getelementptr inbounds %struct.w2c_hermes, ptr %337, i32 0, i32 6
  %339 = load i32, ptr %14, align 4, !tbaa !9
  %340 = zext i32 %339 to i64
  %341 = add i64 %340, 52
  %342 = call i32 @i32_load(ptr noundef %338, i64 noundef %341)
  store i32 %342, ptr %14, align 4, !tbaa !9
  %343 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %343, ptr %7, align 4, !tbaa !9
  %344 = load i32, ptr %13, align 4, !tbaa !9
  %345 = load i32, ptr %14, align 4, !tbaa !9
  %346 = icmp ne i32 %344, %345
  %347 = zext i1 %346 to i32
  store i32 %347, ptr %13, align 4, !tbaa !9
  %348 = load i32, ptr %13, align 4, !tbaa !9
  %349 = icmp ne i32 %348, 0
  br i1 %349, label %350, label %374

350:                                              ; preds = %327
  br label %351

351:                                              ; preds = %372, %350
  %352 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %352, ptr %13, align 4, !tbaa !9
  %353 = load ptr, ptr %3, align 8, !tbaa !5
  %354 = getelementptr inbounds %struct.w2c_hermes, ptr %353, i32 0, i32 6
  %355 = load i32, ptr %13, align 4, !tbaa !9
  %356 = zext i32 %355 to i64
  %357 = call i32 @i32_load(ptr noundef %354, i64 noundef %356)
  store i32 %357, ptr %13, align 4, !tbaa !9
  %358 = load ptr, ptr %3, align 8, !tbaa !5
  %359 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %358, i32 noundef %359)
  %360 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %360, ptr %13, align 4, !tbaa !9
  store i32 4, ptr %14, align 4, !tbaa !9
  %361 = load i32, ptr %14, align 4, !tbaa !9
  %362 = load i32, ptr %13, align 4, !tbaa !9
  %363 = add i32 %362, %361
  store i32 %363, ptr %13, align 4, !tbaa !9
  %364 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %364, ptr %5, align 4, !tbaa !9
  %365 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %365, ptr %14, align 4, !tbaa !9
  %366 = load i32, ptr %13, align 4, !tbaa !9
  %367 = load i32, ptr %14, align 4, !tbaa !9
  %368 = icmp ne i32 %366, %367
  %369 = zext i1 %368 to i32
  store i32 %369, ptr %13, align 4, !tbaa !9
  %370 = load i32, ptr %13, align 4, !tbaa !9
  %371 = icmp ne i32 %370, 0
  br i1 %371, label %372, label %373

372:                                              ; preds = %351
  br label %351

373:                                              ; preds = %351
  br label %374

374:                                              ; preds = %373, %327
  %375 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %375, ptr %13, align 4, !tbaa !9
  store i64 137438953472, ptr %18, align 8, !tbaa !17
  %376 = load ptr, ptr %3, align 8, !tbaa !5
  %377 = getelementptr inbounds %struct.w2c_hermes, ptr %376, i32 0, i32 6
  %378 = load i32, ptr %13, align 4, !tbaa !9
  %379 = zext i32 %378 to i64
  %380 = add i64 %379, 20
  %381 = load i64, ptr %18, align 8, !tbaa !17
  call void @i64_store(ptr noundef %377, i64 noundef %380, i64 noundef %381)
  %382 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %382, ptr %13, align 4, !tbaa !9
  %383 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %383, ptr %14, align 4, !tbaa !9
  store i32 28, ptr %15, align 4, !tbaa !9
  %384 = load i32, ptr %15, align 4, !tbaa !9
  %385 = load i32, ptr %14, align 4, !tbaa !9
  %386 = add i32 %385, %384
  store i32 %386, ptr %14, align 4, !tbaa !9
  %387 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %387, ptr %9, align 4, !tbaa !9
  %388 = load ptr, ptr %3, align 8, !tbaa !5
  %389 = getelementptr inbounds %struct.w2c_hermes, ptr %388, i32 0, i32 6
  %390 = load i32, ptr %13, align 4, !tbaa !9
  %391 = zext i32 %390 to i64
  %392 = add i64 %391, 16
  %393 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %389, i64 noundef %392, i32 noundef %393)
  %394 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %394, ptr %13, align 4, !tbaa !9
  %395 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %395, ptr %14, align 4, !tbaa !9
  store i32 156, ptr %15, align 4, !tbaa !9
  %396 = load i32, ptr %15, align 4, !tbaa !9
  %397 = load i32, ptr %14, align 4, !tbaa !9
  %398 = add i32 %397, %396
  store i32 %398, ptr %14, align 4, !tbaa !9
  %399 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %399, ptr %15, align 4, !tbaa !9
  store i32 420, ptr %16, align 4, !tbaa !9
  %400 = load i32, ptr %16, align 4, !tbaa !9
  %401 = load i32, ptr %15, align 4, !tbaa !9
  %402 = add i32 %401, %400
  store i32 %402, ptr %15, align 4, !tbaa !9
  %403 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %403, ptr %5, align 4, !tbaa !9
  %404 = load ptr, ptr %3, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.w2c_hermes, ptr %404, i32 0, i32 6
  %406 = load i32, ptr %15, align 4, !tbaa !9
  %407 = zext i32 %406 to i64
  %408 = call i32 @i32_load(ptr noundef %405, i64 noundef %407)
  store i32 %408, ptr %15, align 4, !tbaa !9
  %409 = load ptr, ptr %3, align 8, !tbaa !5
  %410 = load i32, ptr %14, align 4, !tbaa !9
  %411 = load i32, ptr %15, align 4, !tbaa !9
  %412 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %409, i32 noundef %410, i32 noundef %411)
  store i32 %412, ptr %14, align 4, !tbaa !9
  %413 = load ptr, ptr %3, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.w2c_hermes, ptr %413, i32 0, i32 6
  %415 = load i32, ptr %14, align 4, !tbaa !9
  %416 = zext i32 %415 to i64
  %417 = call i32 @i32_load(ptr noundef %414, i64 noundef %416)
  store i32 %417, ptr %14, align 4, !tbaa !9
  %418 = load ptr, ptr %3, align 8, !tbaa !5
  %419 = getelementptr inbounds %struct.w2c_hermes, ptr %418, i32 0, i32 6
  %420 = load i32, ptr %13, align 4, !tbaa !9
  %421 = zext i32 %420 to i64
  %422 = add i64 %421, 12
  %423 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %419, i64 noundef %422, i32 noundef %423)
  %424 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %424, ptr %13, align 4, !tbaa !9
  store i32 156, ptr %14, align 4, !tbaa !9
  %425 = load i32, ptr %14, align 4, !tbaa !9
  %426 = load i32, ptr %13, align 4, !tbaa !9
  %427 = add i32 %426, %425
  store i32 %427, ptr %13, align 4, !tbaa !9
  %428 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %428, ptr %14, align 4, !tbaa !9
  %429 = load ptr, ptr %3, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.w2c_hermes, ptr %429, i32 0, i32 6
  %431 = load i32, ptr %14, align 4, !tbaa !9
  %432 = zext i32 %431 to i64
  %433 = call i32 @i32_load(ptr noundef %430, i64 noundef %432)
  store i32 %433, ptr %14, align 4, !tbaa !9
  %434 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %434, ptr %15, align 4, !tbaa !9
  %435 = load ptr, ptr %3, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.w2c_hermes, ptr %435, i32 0, i32 6
  %437 = load i32, ptr %15, align 4, !tbaa !9
  %438 = zext i32 %437 to i64
  %439 = add i64 %438, 424
  %440 = call i32 @i32_load(ptr noundef %436, i64 noundef %439)
  store i32 %440, ptr %15, align 4, !tbaa !9
  store i32 2, ptr %16, align 4, !tbaa !9
  %441 = load i32, ptr %16, align 4, !tbaa !9
  %442 = and i32 %441, 31
  %443 = load i32, ptr %15, align 4, !tbaa !9
  %444 = shl i32 %443, %442
  store i32 %444, ptr %15, align 4, !tbaa !9
  %445 = load i32, ptr %15, align 4, !tbaa !9
  %446 = load i32, ptr %14, align 4, !tbaa !9
  %447 = add i32 %446, %445
  store i32 %447, ptr %14, align 4, !tbaa !9
  %448 = load ptr, ptr %3, align 8, !tbaa !5
  %449 = load i32, ptr %13, align 4, !tbaa !9
  %450 = load i32, ptr %14, align 4, !tbaa !9
  %451 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %448, i32 noundef %449, i32 noundef %450)
  store i32 %451, ptr %13, align 4, !tbaa !9
  %452 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %452, ptr %7, align 4, !tbaa !9
  %453 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %453, ptr %13, align 4, !tbaa !9
  %454 = load ptr, ptr %3, align 8, !tbaa !5
  %455 = getelementptr inbounds %struct.w2c_hermes, ptr %454, i32 0, i32 6
  %456 = load i32, ptr %13, align 4, !tbaa !9
  %457 = zext i32 %456 to i64
  %458 = add i64 %457, 12
  %459 = call i32 @i32_load(ptr noundef %455, i64 noundef %458)
  store i32 %459, ptr %13, align 4, !tbaa !9
  %460 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %460, ptr %5, align 4, !tbaa !9
  %461 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %461, ptr %14, align 4, !tbaa !9
  %462 = load ptr, ptr %3, align 8, !tbaa !5
  %463 = getelementptr inbounds %struct.w2c_hermes, ptr %462, i32 0, i32 6
  %464 = load i32, ptr %14, align 4, !tbaa !9
  %465 = zext i32 %464 to i64
  %466 = call i32 @i32_load(ptr noundef %463, i64 noundef %465)
  store i32 %466, ptr %14, align 4, !tbaa !9
  %467 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %467, ptr %8, align 4, !tbaa !9
  %468 = load i32, ptr %13, align 4, !tbaa !9
  %469 = load i32, ptr %14, align 4, !tbaa !9
  %470 = icmp ne i32 %468, %469
  %471 = zext i1 %470 to i32
  store i32 %471, ptr %13, align 4, !tbaa !9
  %472 = load i32, ptr %13, align 4, !tbaa !9
  %473 = icmp ne i32 %472, 0
  br i1 %473, label %474, label %609

474:                                              ; preds = %374
  br label %475

475:                                              ; preds = %607, %474
  %476 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %476, ptr %13, align 4, !tbaa !9
  store i32 28, ptr %14, align 4, !tbaa !9
  %477 = load i32, ptr %14, align 4, !tbaa !9
  %478 = load i32, ptr %13, align 4, !tbaa !9
  %479 = sub i32 %478, %477
  store i32 %479, ptr %13, align 4, !tbaa !9
  store i32 0, ptr %14, align 4, !tbaa !9
  %480 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %480, ptr %15, align 4, !tbaa !9
  %481 = load i32, ptr %15, align 4, !tbaa !9
  %482 = icmp ne i32 %481, 0
  br i1 %482, label %483, label %485

483:                                              ; preds = %475
  %484 = load i32, ptr %13, align 4, !tbaa !9
  br label %487

485:                                              ; preds = %475
  %486 = load i32, ptr %14, align 4, !tbaa !9
  br label %487

487:                                              ; preds = %485, %483
  %488 = phi i32 [ %484, %483 ], [ %486, %485 ]
  store i32 %488, ptr %13, align 4, !tbaa !9
  %489 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %489, ptr %7, align 4, !tbaa !9
  %490 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %490, ptr %13, align 4, !tbaa !9
  %491 = load ptr, ptr %3, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.w2c_hermes, ptr %491, i32 0, i32 6
  %493 = load i32, ptr %13, align 4, !tbaa !9
  %494 = zext i32 %493 to i64
  %495 = add i64 %494, 20
  %496 = call i32 @i32_load(ptr noundef %492, i64 noundef %495)
  store i32 %496, ptr %13, align 4, !tbaa !9
  %497 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %497, ptr %5, align 4, !tbaa !9
  %498 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %498, ptr %14, align 4, !tbaa !9
  %499 = load ptr, ptr %3, align 8, !tbaa !5
  %500 = getelementptr inbounds %struct.w2c_hermes, ptr %499, i32 0, i32 6
  %501 = load i32, ptr %14, align 4, !tbaa !9
  %502 = zext i32 %501 to i64
  %503 = add i64 %502, 24
  %504 = call i32 @i32_load(ptr noundef %500, i64 noundef %503)
  store i32 %504, ptr %14, align 4, !tbaa !9
  %505 = load i32, ptr %13, align 4, !tbaa !9
  %506 = load i32, ptr %14, align 4, !tbaa !9
  %507 = icmp uge i32 %505, %506
  %508 = zext i1 %507 to i32
  store i32 %508, ptr %13, align 4, !tbaa !9
  %509 = load i32, ptr %13, align 4, !tbaa !9
  %510 = icmp ne i32 %509, 0
  br i1 %510, label %511, label %530

511:                                              ; preds = %487
  %512 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %512, ptr %13, align 4, !tbaa !9
  store i32 16, ptr %14, align 4, !tbaa !9
  %513 = load i32, ptr %14, align 4, !tbaa !9
  %514 = load i32, ptr %13, align 4, !tbaa !9
  %515 = add i32 %514, %513
  store i32 %515, ptr %13, align 4, !tbaa !9
  %516 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %516, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %15, align 4, !tbaa !9
  store i32 4, ptr %16, align 4, !tbaa !9
  %517 = load ptr, ptr %3, align 8, !tbaa !5
  %518 = load i32, ptr %13, align 4, !tbaa !9
  %519 = load i32, ptr %14, align 4, !tbaa !9
  %520 = load i32, ptr %15, align 4, !tbaa !9
  %521 = load i32, ptr %16, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %517, i32 noundef %518, i32 noundef %519, i32 noundef %520, i32 noundef %521)
  %522 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %522, ptr %13, align 4, !tbaa !9
  %523 = load ptr, ptr %3, align 8, !tbaa !5
  %524 = getelementptr inbounds %struct.w2c_hermes, ptr %523, i32 0, i32 6
  %525 = load i32, ptr %13, align 4, !tbaa !9
  %526 = zext i32 %525 to i64
  %527 = add i64 %526, 20
  %528 = call i32 @i32_load(ptr noundef %524, i64 noundef %527)
  store i32 %528, ptr %13, align 4, !tbaa !9
  %529 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %529, ptr %5, align 4, !tbaa !9
  br label %530

530:                                              ; preds = %511, %487
  %531 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %531, ptr %13, align 4, !tbaa !9
  %532 = load ptr, ptr %3, align 8, !tbaa !5
  %533 = getelementptr inbounds %struct.w2c_hermes, ptr %532, i32 0, i32 6
  %534 = load i32, ptr %13, align 4, !tbaa !9
  %535 = zext i32 %534 to i64
  %536 = add i64 %535, 16
  %537 = call i32 @i32_load(ptr noundef %533, i64 noundef %536)
  store i32 %537, ptr %13, align 4, !tbaa !9
  %538 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %538, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %15, align 4, !tbaa !9
  %539 = load i32, ptr %15, align 4, !tbaa !9
  %540 = and i32 %539, 31
  %541 = load i32, ptr %14, align 4, !tbaa !9
  %542 = shl i32 %541, %540
  store i32 %542, ptr %14, align 4, !tbaa !9
  %543 = load i32, ptr %14, align 4, !tbaa !9
  %544 = load i32, ptr %13, align 4, !tbaa !9
  %545 = add i32 %544, %543
  store i32 %545, ptr %13, align 4, !tbaa !9
  %546 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %546, ptr %14, align 4, !tbaa !9
  %547 = load ptr, ptr %3, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.w2c_hermes, ptr %547, i32 0, i32 6
  %549 = load i32, ptr %13, align 4, !tbaa !9
  %550 = zext i32 %549 to i64
  %551 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %548, i64 noundef %550, i32 noundef %551)
  %552 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %552, ptr %13, align 4, !tbaa !9
  %553 = load ptr, ptr %3, align 8, !tbaa !5
  %554 = getelementptr inbounds %struct.w2c_hermes, ptr %553, i32 0, i32 6
  %555 = load i32, ptr %13, align 4, !tbaa !9
  %556 = zext i32 %555 to i64
  %557 = add i64 %556, 20
  %558 = call i32 @i32_load(ptr noundef %554, i64 noundef %557)
  store i32 %558, ptr %13, align 4, !tbaa !9
  store i32 1, ptr %14, align 4, !tbaa !9
  %559 = load i32, ptr %14, align 4, !tbaa !9
  %560 = load i32, ptr %13, align 4, !tbaa !9
  %561 = add i32 %560, %559
  store i32 %561, ptr %13, align 4, !tbaa !9
  %562 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %562, ptr %5, align 4, !tbaa !9
  %563 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %563, ptr %14, align 4, !tbaa !9
  %564 = load ptr, ptr %3, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.w2c_hermes, ptr %564, i32 0, i32 6
  %566 = load i32, ptr %14, align 4, !tbaa !9
  %567 = zext i32 %566 to i64
  %568 = add i64 %567, 24
  %569 = call i32 @i32_load(ptr noundef %565, i64 noundef %568)
  store i32 %569, ptr %14, align 4, !tbaa !9
  %570 = load i32, ptr %13, align 4, !tbaa !9
  %571 = load i32, ptr %14, align 4, !tbaa !9
  %572 = icmp ugt i32 %570, %571
  %573 = zext i1 %572 to i32
  store i32 %573, ptr %13, align 4, !tbaa !9
  %574 = load i32, ptr %13, align 4, !tbaa !9
  %575 = icmp ne i32 %574, 0
  br i1 %575, label %576, label %577

576:                                              ; preds = %530
  br label %1842

577:                                              ; preds = %530
  %578 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %578, ptr %13, align 4, !tbaa !9
  %579 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %579, ptr %14, align 4, !tbaa !9
  %580 = load ptr, ptr %3, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.w2c_hermes, ptr %580, i32 0, i32 6
  %582 = load i32, ptr %13, align 4, !tbaa !9
  %583 = zext i32 %582 to i64
  %584 = add i64 %583, 20
  %585 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %581, i64 noundef %584, i32 noundef %585)
  %586 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %586, ptr %13, align 4, !tbaa !9
  store i32 12, ptr %14, align 4, !tbaa !9
  %587 = load i32, ptr %14, align 4, !tbaa !9
  %588 = load i32, ptr %13, align 4, !tbaa !9
  %589 = add i32 %588, %587
  store i32 %589, ptr %13, align 4, !tbaa !9
  %590 = load ptr, ptr %3, align 8, !tbaa !5
  %591 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef %590, i32 noundef %591)
  %592 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %592, ptr %13, align 4, !tbaa !9
  %593 = load ptr, ptr %3, align 8, !tbaa !5
  %594 = getelementptr inbounds %struct.w2c_hermes, ptr %593, i32 0, i32 6
  %595 = load i32, ptr %13, align 4, !tbaa !9
  %596 = zext i32 %595 to i64
  %597 = add i64 %596, 12
  %598 = call i32 @i32_load(ptr noundef %594, i64 noundef %597)
  store i32 %598, ptr %13, align 4, !tbaa !9
  %599 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %599, ptr %5, align 4, !tbaa !9
  %600 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %600, ptr %14, align 4, !tbaa !9
  %601 = load i32, ptr %13, align 4, !tbaa !9
  %602 = load i32, ptr %14, align 4, !tbaa !9
  %603 = icmp ne i32 %601, %602
  %604 = zext i1 %603 to i32
  store i32 %604, ptr %13, align 4, !tbaa !9
  %605 = load i32, ptr %13, align 4, !tbaa !9
  %606 = icmp ne i32 %605, 0
  br i1 %606, label %607, label %608

607:                                              ; preds = %577
  br label %475

608:                                              ; preds = %577
  br label %609

609:                                              ; preds = %608, %374
  %610 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %610, ptr %13, align 4, !tbaa !9
  %611 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %611, ptr %14, align 4, !tbaa !9
  store i32 156, ptr %15, align 4, !tbaa !9
  %612 = load i32, ptr %15, align 4, !tbaa !9
  %613 = load i32, ptr %14, align 4, !tbaa !9
  %614 = add i32 %613, %612
  store i32 %614, ptr %14, align 4, !tbaa !9
  %615 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %615, ptr %15, align 4, !tbaa !9
  store i32 436, ptr %16, align 4, !tbaa !9
  %616 = load i32, ptr %16, align 4, !tbaa !9
  %617 = load i32, ptr %15, align 4, !tbaa !9
  %618 = add i32 %617, %616
  store i32 %618, ptr %15, align 4, !tbaa !9
  %619 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %619, ptr %5, align 4, !tbaa !9
  %620 = load ptr, ptr %3, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.w2c_hermes, ptr %620, i32 0, i32 6
  %622 = load i32, ptr %15, align 4, !tbaa !9
  %623 = zext i32 %622 to i64
  %624 = call i32 @i32_load(ptr noundef %621, i64 noundef %623)
  store i32 %624, ptr %15, align 4, !tbaa !9
  %625 = load ptr, ptr %3, align 8, !tbaa !5
  %626 = load i32, ptr %14, align 4, !tbaa !9
  %627 = load i32, ptr %15, align 4, !tbaa !9
  %628 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %625, i32 noundef %626, i32 noundef %627)
  store i32 %628, ptr %14, align 4, !tbaa !9
  %629 = load ptr, ptr %3, align 8, !tbaa !5
  %630 = getelementptr inbounds %struct.w2c_hermes, ptr %629, i32 0, i32 6
  %631 = load i32, ptr %14, align 4, !tbaa !9
  %632 = zext i32 %631 to i64
  %633 = call i32 @i32_load(ptr noundef %630, i64 noundef %632)
  store i32 %633, ptr %14, align 4, !tbaa !9
  %634 = load ptr, ptr %3, align 8, !tbaa !5
  %635 = getelementptr inbounds %struct.w2c_hermes, ptr %634, i32 0, i32 6
  %636 = load i32, ptr %13, align 4, !tbaa !9
  %637 = zext i32 %636 to i64
  %638 = add i64 %637, 12
  %639 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %635, i64 noundef %638, i32 noundef %639)
  %640 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %640, ptr %13, align 4, !tbaa !9
  store i32 156, ptr %14, align 4, !tbaa !9
  %641 = load i32, ptr %14, align 4, !tbaa !9
  %642 = load i32, ptr %13, align 4, !tbaa !9
  %643 = add i32 %642, %641
  store i32 %643, ptr %13, align 4, !tbaa !9
  %644 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %644, ptr %14, align 4, !tbaa !9
  %645 = load ptr, ptr %3, align 8, !tbaa !5
  %646 = getelementptr inbounds %struct.w2c_hermes, ptr %645, i32 0, i32 6
  %647 = load i32, ptr %14, align 4, !tbaa !9
  %648 = zext i32 %647 to i64
  %649 = call i32 @i32_load(ptr noundef %646, i64 noundef %648)
  store i32 %649, ptr %14, align 4, !tbaa !9
  %650 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %650, ptr %15, align 4, !tbaa !9
  %651 = load ptr, ptr %3, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.w2c_hermes, ptr %651, i32 0, i32 6
  %653 = load i32, ptr %15, align 4, !tbaa !9
  %654 = zext i32 %653 to i64
  %655 = add i64 %654, 440
  %656 = call i32 @i32_load(ptr noundef %652, i64 noundef %655)
  store i32 %656, ptr %15, align 4, !tbaa !9
  store i32 2, ptr %16, align 4, !tbaa !9
  %657 = load i32, ptr %16, align 4, !tbaa !9
  %658 = and i32 %657, 31
  %659 = load i32, ptr %15, align 4, !tbaa !9
  %660 = shl i32 %659, %658
  store i32 %660, ptr %15, align 4, !tbaa !9
  %661 = load i32, ptr %15, align 4, !tbaa !9
  %662 = load i32, ptr %14, align 4, !tbaa !9
  %663 = add i32 %662, %661
  store i32 %663, ptr %14, align 4, !tbaa !9
  %664 = load ptr, ptr %3, align 8, !tbaa !5
  %665 = load i32, ptr %13, align 4, !tbaa !9
  %666 = load i32, ptr %14, align 4, !tbaa !9
  %667 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %664, i32 noundef %665, i32 noundef %666)
  store i32 %667, ptr %13, align 4, !tbaa !9
  %668 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %668, ptr %7, align 4, !tbaa !9
  %669 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %669, ptr %13, align 4, !tbaa !9
  %670 = load ptr, ptr %3, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.w2c_hermes, ptr %670, i32 0, i32 6
  %672 = load i32, ptr %13, align 4, !tbaa !9
  %673 = zext i32 %672 to i64
  %674 = add i64 %673, 12
  %675 = call i32 @i32_load(ptr noundef %671, i64 noundef %674)
  store i32 %675, ptr %13, align 4, !tbaa !9
  %676 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %676, ptr %5, align 4, !tbaa !9
  %677 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %677, ptr %14, align 4, !tbaa !9
  %678 = load ptr, ptr %3, align 8, !tbaa !5
  %679 = getelementptr inbounds %struct.w2c_hermes, ptr %678, i32 0, i32 6
  %680 = load i32, ptr %14, align 4, !tbaa !9
  %681 = zext i32 %680 to i64
  %682 = call i32 @i32_load(ptr noundef %679, i64 noundef %681)
  store i32 %682, ptr %14, align 4, !tbaa !9
  %683 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %683, ptr %8, align 4, !tbaa !9
  %684 = load i32, ptr %13, align 4, !tbaa !9
  %685 = load i32, ptr %14, align 4, !tbaa !9
  %686 = icmp ne i32 %684, %685
  %687 = zext i1 %686 to i32
  store i32 %687, ptr %13, align 4, !tbaa !9
  %688 = load i32, ptr %13, align 4, !tbaa !9
  %689 = icmp ne i32 %688, 0
  br i1 %689, label %690, label %825

690:                                              ; preds = %609
  br label %691

691:                                              ; preds = %823, %690
  %692 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %692, ptr %13, align 4, !tbaa !9
  store i32 28, ptr %14, align 4, !tbaa !9
  %693 = load i32, ptr %14, align 4, !tbaa !9
  %694 = load i32, ptr %13, align 4, !tbaa !9
  %695 = sub i32 %694, %693
  store i32 %695, ptr %13, align 4, !tbaa !9
  store i32 0, ptr %14, align 4, !tbaa !9
  %696 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %696, ptr %15, align 4, !tbaa !9
  %697 = load i32, ptr %15, align 4, !tbaa !9
  %698 = icmp ne i32 %697, 0
  br i1 %698, label %699, label %701

699:                                              ; preds = %691
  %700 = load i32, ptr %13, align 4, !tbaa !9
  br label %703

701:                                              ; preds = %691
  %702 = load i32, ptr %14, align 4, !tbaa !9
  br label %703

703:                                              ; preds = %701, %699
  %704 = phi i32 [ %700, %699 ], [ %702, %701 ]
  store i32 %704, ptr %13, align 4, !tbaa !9
  %705 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %705, ptr %7, align 4, !tbaa !9
  %706 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %706, ptr %13, align 4, !tbaa !9
  %707 = load ptr, ptr %3, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.w2c_hermes, ptr %707, i32 0, i32 6
  %709 = load i32, ptr %13, align 4, !tbaa !9
  %710 = zext i32 %709 to i64
  %711 = add i64 %710, 20
  %712 = call i32 @i32_load(ptr noundef %708, i64 noundef %711)
  store i32 %712, ptr %13, align 4, !tbaa !9
  %713 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %713, ptr %5, align 4, !tbaa !9
  %714 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %714, ptr %14, align 4, !tbaa !9
  %715 = load ptr, ptr %3, align 8, !tbaa !5
  %716 = getelementptr inbounds %struct.w2c_hermes, ptr %715, i32 0, i32 6
  %717 = load i32, ptr %14, align 4, !tbaa !9
  %718 = zext i32 %717 to i64
  %719 = add i64 %718, 24
  %720 = call i32 @i32_load(ptr noundef %716, i64 noundef %719)
  store i32 %720, ptr %14, align 4, !tbaa !9
  %721 = load i32, ptr %13, align 4, !tbaa !9
  %722 = load i32, ptr %14, align 4, !tbaa !9
  %723 = icmp uge i32 %721, %722
  %724 = zext i1 %723 to i32
  store i32 %724, ptr %13, align 4, !tbaa !9
  %725 = load i32, ptr %13, align 4, !tbaa !9
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %746

727:                                              ; preds = %703
  %728 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %728, ptr %13, align 4, !tbaa !9
  store i32 16, ptr %14, align 4, !tbaa !9
  %729 = load i32, ptr %14, align 4, !tbaa !9
  %730 = load i32, ptr %13, align 4, !tbaa !9
  %731 = add i32 %730, %729
  store i32 %731, ptr %13, align 4, !tbaa !9
  %732 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %732, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %15, align 4, !tbaa !9
  store i32 4, ptr %16, align 4, !tbaa !9
  %733 = load ptr, ptr %3, align 8, !tbaa !5
  %734 = load i32, ptr %13, align 4, !tbaa !9
  %735 = load i32, ptr %14, align 4, !tbaa !9
  %736 = load i32, ptr %15, align 4, !tbaa !9
  %737 = load i32, ptr %16, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %733, i32 noundef %734, i32 noundef %735, i32 noundef %736, i32 noundef %737)
  %738 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %738, ptr %13, align 4, !tbaa !9
  %739 = load ptr, ptr %3, align 8, !tbaa !5
  %740 = getelementptr inbounds %struct.w2c_hermes, ptr %739, i32 0, i32 6
  %741 = load i32, ptr %13, align 4, !tbaa !9
  %742 = zext i32 %741 to i64
  %743 = add i64 %742, 20
  %744 = call i32 @i32_load(ptr noundef %740, i64 noundef %743)
  store i32 %744, ptr %13, align 4, !tbaa !9
  %745 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %745, ptr %5, align 4, !tbaa !9
  br label %746

746:                                              ; preds = %727, %703
  %747 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %747, ptr %13, align 4, !tbaa !9
  %748 = load ptr, ptr %3, align 8, !tbaa !5
  %749 = getelementptr inbounds %struct.w2c_hermes, ptr %748, i32 0, i32 6
  %750 = load i32, ptr %13, align 4, !tbaa !9
  %751 = zext i32 %750 to i64
  %752 = add i64 %751, 16
  %753 = call i32 @i32_load(ptr noundef %749, i64 noundef %752)
  store i32 %753, ptr %13, align 4, !tbaa !9
  %754 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %754, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %15, align 4, !tbaa !9
  %755 = load i32, ptr %15, align 4, !tbaa !9
  %756 = and i32 %755, 31
  %757 = load i32, ptr %14, align 4, !tbaa !9
  %758 = shl i32 %757, %756
  store i32 %758, ptr %14, align 4, !tbaa !9
  %759 = load i32, ptr %14, align 4, !tbaa !9
  %760 = load i32, ptr %13, align 4, !tbaa !9
  %761 = add i32 %760, %759
  store i32 %761, ptr %13, align 4, !tbaa !9
  %762 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %762, ptr %14, align 4, !tbaa !9
  %763 = load ptr, ptr %3, align 8, !tbaa !5
  %764 = getelementptr inbounds %struct.w2c_hermes, ptr %763, i32 0, i32 6
  %765 = load i32, ptr %13, align 4, !tbaa !9
  %766 = zext i32 %765 to i64
  %767 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %764, i64 noundef %766, i32 noundef %767)
  %768 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %768, ptr %13, align 4, !tbaa !9
  %769 = load ptr, ptr %3, align 8, !tbaa !5
  %770 = getelementptr inbounds %struct.w2c_hermes, ptr %769, i32 0, i32 6
  %771 = load i32, ptr %13, align 4, !tbaa !9
  %772 = zext i32 %771 to i64
  %773 = add i64 %772, 20
  %774 = call i32 @i32_load(ptr noundef %770, i64 noundef %773)
  store i32 %774, ptr %13, align 4, !tbaa !9
  store i32 1, ptr %14, align 4, !tbaa !9
  %775 = load i32, ptr %14, align 4, !tbaa !9
  %776 = load i32, ptr %13, align 4, !tbaa !9
  %777 = add i32 %776, %775
  store i32 %777, ptr %13, align 4, !tbaa !9
  %778 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %778, ptr %5, align 4, !tbaa !9
  %779 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %779, ptr %14, align 4, !tbaa !9
  %780 = load ptr, ptr %3, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.w2c_hermes, ptr %780, i32 0, i32 6
  %782 = load i32, ptr %14, align 4, !tbaa !9
  %783 = zext i32 %782 to i64
  %784 = add i64 %783, 24
  %785 = call i32 @i32_load(ptr noundef %781, i64 noundef %784)
  store i32 %785, ptr %14, align 4, !tbaa !9
  %786 = load i32, ptr %13, align 4, !tbaa !9
  %787 = load i32, ptr %14, align 4, !tbaa !9
  %788 = icmp ugt i32 %786, %787
  %789 = zext i1 %788 to i32
  store i32 %789, ptr %13, align 4, !tbaa !9
  %790 = load i32, ptr %13, align 4, !tbaa !9
  %791 = icmp ne i32 %790, 0
  br i1 %791, label %792, label %793

792:                                              ; preds = %746
  br label %1860

793:                                              ; preds = %746
  %794 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %794, ptr %13, align 4, !tbaa !9
  %795 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %795, ptr %14, align 4, !tbaa !9
  %796 = load ptr, ptr %3, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.w2c_hermes, ptr %796, i32 0, i32 6
  %798 = load i32, ptr %13, align 4, !tbaa !9
  %799 = zext i32 %798 to i64
  %800 = add i64 %799, 20
  %801 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %797, i64 noundef %800, i32 noundef %801)
  %802 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %802, ptr %13, align 4, !tbaa !9
  store i32 12, ptr %14, align 4, !tbaa !9
  %803 = load i32, ptr %14, align 4, !tbaa !9
  %804 = load i32, ptr %13, align 4, !tbaa !9
  %805 = add i32 %804, %803
  store i32 %805, ptr %13, align 4, !tbaa !9
  %806 = load ptr, ptr %3, align 8, !tbaa !5
  %807 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef %806, i32 noundef %807)
  %808 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %808, ptr %13, align 4, !tbaa !9
  %809 = load ptr, ptr %3, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.w2c_hermes, ptr %809, i32 0, i32 6
  %811 = load i32, ptr %13, align 4, !tbaa !9
  %812 = zext i32 %811 to i64
  %813 = add i64 %812, 12
  %814 = call i32 @i32_load(ptr noundef %810, i64 noundef %813)
  store i32 %814, ptr %13, align 4, !tbaa !9
  %815 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %815, ptr %5, align 4, !tbaa !9
  %816 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %816, ptr %14, align 4, !tbaa !9
  %817 = load i32, ptr %13, align 4, !tbaa !9
  %818 = load i32, ptr %14, align 4, !tbaa !9
  %819 = icmp ne i32 %817, %818
  %820 = zext i1 %819 to i32
  store i32 %820, ptr %13, align 4, !tbaa !9
  %821 = load i32, ptr %13, align 4, !tbaa !9
  %822 = icmp ne i32 %821, 0
  br i1 %822, label %823, label %824

823:                                              ; preds = %793
  br label %691

824:                                              ; preds = %793
  br label %825

825:                                              ; preds = %824, %609
  %826 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %826, ptr %13, align 4, !tbaa !9
  %827 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %827, ptr %14, align 4, !tbaa !9
  store i32 156, ptr %15, align 4, !tbaa !9
  %828 = load i32, ptr %15, align 4, !tbaa !9
  %829 = load i32, ptr %14, align 4, !tbaa !9
  %830 = add i32 %829, %828
  store i32 %830, ptr %14, align 4, !tbaa !9
  %831 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %831, ptr %15, align 4, !tbaa !9
  store i32 452, ptr %16, align 4, !tbaa !9
  %832 = load i32, ptr %16, align 4, !tbaa !9
  %833 = load i32, ptr %15, align 4, !tbaa !9
  %834 = add i32 %833, %832
  store i32 %834, ptr %15, align 4, !tbaa !9
  %835 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %835, ptr %5, align 4, !tbaa !9
  %836 = load ptr, ptr %3, align 8, !tbaa !5
  %837 = getelementptr inbounds %struct.w2c_hermes, ptr %836, i32 0, i32 6
  %838 = load i32, ptr %15, align 4, !tbaa !9
  %839 = zext i32 %838 to i64
  %840 = call i32 @i32_load(ptr noundef %837, i64 noundef %839)
  store i32 %840, ptr %15, align 4, !tbaa !9
  %841 = load ptr, ptr %3, align 8, !tbaa !5
  %842 = load i32, ptr %14, align 4, !tbaa !9
  %843 = load i32, ptr %15, align 4, !tbaa !9
  %844 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %841, i32 noundef %842, i32 noundef %843)
  store i32 %844, ptr %14, align 4, !tbaa !9
  %845 = load ptr, ptr %3, align 8, !tbaa !5
  %846 = getelementptr inbounds %struct.w2c_hermes, ptr %845, i32 0, i32 6
  %847 = load i32, ptr %14, align 4, !tbaa !9
  %848 = zext i32 %847 to i64
  %849 = call i32 @i32_load(ptr noundef %846, i64 noundef %848)
  store i32 %849, ptr %14, align 4, !tbaa !9
  %850 = load ptr, ptr %3, align 8, !tbaa !5
  %851 = getelementptr inbounds %struct.w2c_hermes, ptr %850, i32 0, i32 6
  %852 = load i32, ptr %13, align 4, !tbaa !9
  %853 = zext i32 %852 to i64
  %854 = add i64 %853, 12
  %855 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %851, i64 noundef %854, i32 noundef %855)
  %856 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %856, ptr %13, align 4, !tbaa !9
  store i32 156, ptr %14, align 4, !tbaa !9
  %857 = load i32, ptr %14, align 4, !tbaa !9
  %858 = load i32, ptr %13, align 4, !tbaa !9
  %859 = add i32 %858, %857
  store i32 %859, ptr %13, align 4, !tbaa !9
  %860 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %860, ptr %14, align 4, !tbaa !9
  %861 = load ptr, ptr %3, align 8, !tbaa !5
  %862 = getelementptr inbounds %struct.w2c_hermes, ptr %861, i32 0, i32 6
  %863 = load i32, ptr %14, align 4, !tbaa !9
  %864 = zext i32 %863 to i64
  %865 = call i32 @i32_load(ptr noundef %862, i64 noundef %864)
  store i32 %865, ptr %14, align 4, !tbaa !9
  %866 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %866, ptr %15, align 4, !tbaa !9
  %867 = load ptr, ptr %3, align 8, !tbaa !5
  %868 = getelementptr inbounds %struct.w2c_hermes, ptr %867, i32 0, i32 6
  %869 = load i32, ptr %15, align 4, !tbaa !9
  %870 = zext i32 %869 to i64
  %871 = add i64 %870, 456
  %872 = call i32 @i32_load(ptr noundef %868, i64 noundef %871)
  store i32 %872, ptr %15, align 4, !tbaa !9
  store i32 2, ptr %16, align 4, !tbaa !9
  %873 = load i32, ptr %16, align 4, !tbaa !9
  %874 = and i32 %873, 31
  %875 = load i32, ptr %15, align 4, !tbaa !9
  %876 = shl i32 %875, %874
  store i32 %876, ptr %15, align 4, !tbaa !9
  %877 = load i32, ptr %15, align 4, !tbaa !9
  %878 = load i32, ptr %14, align 4, !tbaa !9
  %879 = add i32 %878, %877
  store i32 %879, ptr %14, align 4, !tbaa !9
  %880 = load ptr, ptr %3, align 8, !tbaa !5
  %881 = load i32, ptr %13, align 4, !tbaa !9
  %882 = load i32, ptr %14, align 4, !tbaa !9
  %883 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %880, i32 noundef %881, i32 noundef %882)
  store i32 %883, ptr %13, align 4, !tbaa !9
  %884 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %884, ptr %7, align 4, !tbaa !9
  %885 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %885, ptr %13, align 4, !tbaa !9
  %886 = load ptr, ptr %3, align 8, !tbaa !5
  %887 = getelementptr inbounds %struct.w2c_hermes, ptr %886, i32 0, i32 6
  %888 = load i32, ptr %13, align 4, !tbaa !9
  %889 = zext i32 %888 to i64
  %890 = add i64 %889, 12
  %891 = call i32 @i32_load(ptr noundef %887, i64 noundef %890)
  store i32 %891, ptr %13, align 4, !tbaa !9
  %892 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %892, ptr %5, align 4, !tbaa !9
  %893 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %893, ptr %14, align 4, !tbaa !9
  %894 = load ptr, ptr %3, align 8, !tbaa !5
  %895 = getelementptr inbounds %struct.w2c_hermes, ptr %894, i32 0, i32 6
  %896 = load i32, ptr %14, align 4, !tbaa !9
  %897 = zext i32 %896 to i64
  %898 = call i32 @i32_load(ptr noundef %895, i64 noundef %897)
  store i32 %898, ptr %14, align 4, !tbaa !9
  %899 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %899, ptr %8, align 4, !tbaa !9
  %900 = load i32, ptr %13, align 4, !tbaa !9
  %901 = load i32, ptr %14, align 4, !tbaa !9
  %902 = icmp ne i32 %900, %901
  %903 = zext i1 %902 to i32
  store i32 %903, ptr %13, align 4, !tbaa !9
  %904 = load i32, ptr %13, align 4, !tbaa !9
  %905 = icmp ne i32 %904, 0
  br i1 %905, label %906, label %1041

906:                                              ; preds = %825
  br label %907

907:                                              ; preds = %1039, %906
  %908 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %908, ptr %13, align 4, !tbaa !9
  store i32 28, ptr %14, align 4, !tbaa !9
  %909 = load i32, ptr %14, align 4, !tbaa !9
  %910 = load i32, ptr %13, align 4, !tbaa !9
  %911 = sub i32 %910, %909
  store i32 %911, ptr %13, align 4, !tbaa !9
  store i32 0, ptr %14, align 4, !tbaa !9
  %912 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %912, ptr %15, align 4, !tbaa !9
  %913 = load i32, ptr %15, align 4, !tbaa !9
  %914 = icmp ne i32 %913, 0
  br i1 %914, label %915, label %917

915:                                              ; preds = %907
  %916 = load i32, ptr %13, align 4, !tbaa !9
  br label %919

917:                                              ; preds = %907
  %918 = load i32, ptr %14, align 4, !tbaa !9
  br label %919

919:                                              ; preds = %917, %915
  %920 = phi i32 [ %916, %915 ], [ %918, %917 ]
  store i32 %920, ptr %13, align 4, !tbaa !9
  %921 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %921, ptr %7, align 4, !tbaa !9
  %922 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %922, ptr %13, align 4, !tbaa !9
  %923 = load ptr, ptr %3, align 8, !tbaa !5
  %924 = getelementptr inbounds %struct.w2c_hermes, ptr %923, i32 0, i32 6
  %925 = load i32, ptr %13, align 4, !tbaa !9
  %926 = zext i32 %925 to i64
  %927 = add i64 %926, 20
  %928 = call i32 @i32_load(ptr noundef %924, i64 noundef %927)
  store i32 %928, ptr %13, align 4, !tbaa !9
  %929 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %929, ptr %5, align 4, !tbaa !9
  %930 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %930, ptr %14, align 4, !tbaa !9
  %931 = load ptr, ptr %3, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.w2c_hermes, ptr %931, i32 0, i32 6
  %933 = load i32, ptr %14, align 4, !tbaa !9
  %934 = zext i32 %933 to i64
  %935 = add i64 %934, 24
  %936 = call i32 @i32_load(ptr noundef %932, i64 noundef %935)
  store i32 %936, ptr %14, align 4, !tbaa !9
  %937 = load i32, ptr %13, align 4, !tbaa !9
  %938 = load i32, ptr %14, align 4, !tbaa !9
  %939 = icmp uge i32 %937, %938
  %940 = zext i1 %939 to i32
  store i32 %940, ptr %13, align 4, !tbaa !9
  %941 = load i32, ptr %13, align 4, !tbaa !9
  %942 = icmp ne i32 %941, 0
  br i1 %942, label %943, label %962

943:                                              ; preds = %919
  %944 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %944, ptr %13, align 4, !tbaa !9
  store i32 16, ptr %14, align 4, !tbaa !9
  %945 = load i32, ptr %14, align 4, !tbaa !9
  %946 = load i32, ptr %13, align 4, !tbaa !9
  %947 = add i32 %946, %945
  store i32 %947, ptr %13, align 4, !tbaa !9
  %948 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %948, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %15, align 4, !tbaa !9
  store i32 4, ptr %16, align 4, !tbaa !9
  %949 = load ptr, ptr %3, align 8, !tbaa !5
  %950 = load i32, ptr %13, align 4, !tbaa !9
  %951 = load i32, ptr %14, align 4, !tbaa !9
  %952 = load i32, ptr %15, align 4, !tbaa !9
  %953 = load i32, ptr %16, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %949, i32 noundef %950, i32 noundef %951, i32 noundef %952, i32 noundef %953)
  %954 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %954, ptr %13, align 4, !tbaa !9
  %955 = load ptr, ptr %3, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.w2c_hermes, ptr %955, i32 0, i32 6
  %957 = load i32, ptr %13, align 4, !tbaa !9
  %958 = zext i32 %957 to i64
  %959 = add i64 %958, 20
  %960 = call i32 @i32_load(ptr noundef %956, i64 noundef %959)
  store i32 %960, ptr %13, align 4, !tbaa !9
  %961 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %961, ptr %5, align 4, !tbaa !9
  br label %962

962:                                              ; preds = %943, %919
  %963 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %963, ptr %13, align 4, !tbaa !9
  %964 = load ptr, ptr %3, align 8, !tbaa !5
  %965 = getelementptr inbounds %struct.w2c_hermes, ptr %964, i32 0, i32 6
  %966 = load i32, ptr %13, align 4, !tbaa !9
  %967 = zext i32 %966 to i64
  %968 = add i64 %967, 16
  %969 = call i32 @i32_load(ptr noundef %965, i64 noundef %968)
  store i32 %969, ptr %13, align 4, !tbaa !9
  %970 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %970, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %15, align 4, !tbaa !9
  %971 = load i32, ptr %15, align 4, !tbaa !9
  %972 = and i32 %971, 31
  %973 = load i32, ptr %14, align 4, !tbaa !9
  %974 = shl i32 %973, %972
  store i32 %974, ptr %14, align 4, !tbaa !9
  %975 = load i32, ptr %14, align 4, !tbaa !9
  %976 = load i32, ptr %13, align 4, !tbaa !9
  %977 = add i32 %976, %975
  store i32 %977, ptr %13, align 4, !tbaa !9
  %978 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %978, ptr %14, align 4, !tbaa !9
  %979 = load ptr, ptr %3, align 8, !tbaa !5
  %980 = getelementptr inbounds %struct.w2c_hermes, ptr %979, i32 0, i32 6
  %981 = load i32, ptr %13, align 4, !tbaa !9
  %982 = zext i32 %981 to i64
  %983 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %980, i64 noundef %982, i32 noundef %983)
  %984 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %984, ptr %13, align 4, !tbaa !9
  %985 = load ptr, ptr %3, align 8, !tbaa !5
  %986 = getelementptr inbounds %struct.w2c_hermes, ptr %985, i32 0, i32 6
  %987 = load i32, ptr %13, align 4, !tbaa !9
  %988 = zext i32 %987 to i64
  %989 = add i64 %988, 20
  %990 = call i32 @i32_load(ptr noundef %986, i64 noundef %989)
  store i32 %990, ptr %13, align 4, !tbaa !9
  store i32 1, ptr %14, align 4, !tbaa !9
  %991 = load i32, ptr %14, align 4, !tbaa !9
  %992 = load i32, ptr %13, align 4, !tbaa !9
  %993 = add i32 %992, %991
  store i32 %993, ptr %13, align 4, !tbaa !9
  %994 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %994, ptr %5, align 4, !tbaa !9
  %995 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %995, ptr %14, align 4, !tbaa !9
  %996 = load ptr, ptr %3, align 8, !tbaa !5
  %997 = getelementptr inbounds %struct.w2c_hermes, ptr %996, i32 0, i32 6
  %998 = load i32, ptr %14, align 4, !tbaa !9
  %999 = zext i32 %998 to i64
  %1000 = add i64 %999, 24
  %1001 = call i32 @i32_load(ptr noundef %997, i64 noundef %1000)
  store i32 %1001, ptr %14, align 4, !tbaa !9
  %1002 = load i32, ptr %13, align 4, !tbaa !9
  %1003 = load i32, ptr %14, align 4, !tbaa !9
  %1004 = icmp ugt i32 %1002, %1003
  %1005 = zext i1 %1004 to i32
  store i32 %1005, ptr %13, align 4, !tbaa !9
  %1006 = load i32, ptr %13, align 4, !tbaa !9
  %1007 = icmp ne i32 %1006, 0
  br i1 %1007, label %1008, label %1009

1008:                                             ; preds = %962
  br label %1878

1009:                                             ; preds = %962
  %1010 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1010, ptr %13, align 4, !tbaa !9
  %1011 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1011, ptr %14, align 4, !tbaa !9
  %1012 = load ptr, ptr %3, align 8, !tbaa !5
  %1013 = getelementptr inbounds %struct.w2c_hermes, ptr %1012, i32 0, i32 6
  %1014 = load i32, ptr %13, align 4, !tbaa !9
  %1015 = zext i32 %1014 to i64
  %1016 = add i64 %1015, 20
  %1017 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1013, i64 noundef %1016, i32 noundef %1017)
  %1018 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1018, ptr %13, align 4, !tbaa !9
  store i32 12, ptr %14, align 4, !tbaa !9
  %1019 = load i32, ptr %14, align 4, !tbaa !9
  %1020 = load i32, ptr %13, align 4, !tbaa !9
  %1021 = add i32 %1020, %1019
  store i32 %1021, ptr %13, align 4, !tbaa !9
  %1022 = load ptr, ptr %3, align 8, !tbaa !5
  %1023 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef %1022, i32 noundef %1023)
  %1024 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1024, ptr %13, align 4, !tbaa !9
  %1025 = load ptr, ptr %3, align 8, !tbaa !5
  %1026 = getelementptr inbounds %struct.w2c_hermes, ptr %1025, i32 0, i32 6
  %1027 = load i32, ptr %13, align 4, !tbaa !9
  %1028 = zext i32 %1027 to i64
  %1029 = add i64 %1028, 12
  %1030 = call i32 @i32_load(ptr noundef %1026, i64 noundef %1029)
  store i32 %1030, ptr %13, align 4, !tbaa !9
  %1031 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1031, ptr %5, align 4, !tbaa !9
  %1032 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1032, ptr %14, align 4, !tbaa !9
  %1033 = load i32, ptr %13, align 4, !tbaa !9
  %1034 = load i32, ptr %14, align 4, !tbaa !9
  %1035 = icmp ne i32 %1033, %1034
  %1036 = zext i1 %1035 to i32
  store i32 %1036, ptr %13, align 4, !tbaa !9
  %1037 = load i32, ptr %13, align 4, !tbaa !9
  %1038 = icmp ne i32 %1037, 0
  br i1 %1038, label %1039, label %1040

1039:                                             ; preds = %1009
  br label %907

1040:                                             ; preds = %1009
  br label %1041

1041:                                             ; preds = %1040, %825
  %1042 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1042, ptr %13, align 4, !tbaa !9
  %1043 = load ptr, ptr %3, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.w2c_hermes, ptr %1043, i32 0, i32 6
  %1045 = load i32, ptr %13, align 4, !tbaa !9
  %1046 = zext i32 %1045 to i64
  %1047 = add i64 %1046, 16
  %1048 = call i32 @i32_load(ptr noundef %1044, i64 noundef %1047)
  store i32 %1048, ptr %13, align 4, !tbaa !9
  %1049 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1049, ptr %5, align 4, !tbaa !9
  %1050 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1050, ptr %13, align 4, !tbaa !9
  %1051 = load ptr, ptr %3, align 8, !tbaa !5
  %1052 = getelementptr inbounds %struct.w2c_hermes, ptr %1051, i32 0, i32 6
  %1053 = load i32, ptr %13, align 4, !tbaa !9
  %1054 = zext i32 %1053 to i64
  %1055 = add i64 %1054, 20
  %1056 = call i32 @i32_load(ptr noundef %1052, i64 noundef %1055)
  store i32 %1056, ptr %13, align 4, !tbaa !9
  %1057 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1057, ptr %7, align 4, !tbaa !9
  %1058 = load i32, ptr %13, align 4, !tbaa !9
  %1059 = icmp ne i32 %1058, 0
  br i1 %1059, label %1060, label %1102

1060:                                             ; preds = %1041
  %1061 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1061, ptr %13, align 4, !tbaa !9
  %1062 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1062, ptr %14, align 4, !tbaa !9
  store i32 2, ptr %15, align 4, !tbaa !9
  %1063 = load i32, ptr %15, align 4, !tbaa !9
  %1064 = and i32 %1063, 31
  %1065 = load i32, ptr %14, align 4, !tbaa !9
  %1066 = shl i32 %1065, %1064
  store i32 %1066, ptr %14, align 4, !tbaa !9
  %1067 = load i32, ptr %14, align 4, !tbaa !9
  %1068 = load i32, ptr %13, align 4, !tbaa !9
  %1069 = add i32 %1068, %1067
  store i32 %1069, ptr %13, align 4, !tbaa !9
  %1070 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1070, ptr %7, align 4, !tbaa !9
  br label %1071

1071:                                             ; preds = %1092, %1060
  %1072 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1072, ptr %13, align 4, !tbaa !9
  %1073 = load ptr, ptr %3, align 8, !tbaa !5
  %1074 = getelementptr inbounds %struct.w2c_hermes, ptr %1073, i32 0, i32 6
  %1075 = load i32, ptr %13, align 4, !tbaa !9
  %1076 = zext i32 %1075 to i64
  %1077 = call i32 @i32_load(ptr noundef %1074, i64 noundef %1076)
  store i32 %1077, ptr %13, align 4, !tbaa !9
  %1078 = load ptr, ptr %3, align 8, !tbaa !5
  %1079 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %1078, i32 noundef %1079)
  %1080 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1080, ptr %13, align 4, !tbaa !9
  store i32 4, ptr %14, align 4, !tbaa !9
  %1081 = load i32, ptr %14, align 4, !tbaa !9
  %1082 = load i32, ptr %13, align 4, !tbaa !9
  %1083 = add i32 %1082, %1081
  store i32 %1083, ptr %13, align 4, !tbaa !9
  %1084 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1084, ptr %5, align 4, !tbaa !9
  %1085 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1085, ptr %14, align 4, !tbaa !9
  %1086 = load i32, ptr %13, align 4, !tbaa !9
  %1087 = load i32, ptr %14, align 4, !tbaa !9
  %1088 = icmp ne i32 %1086, %1087
  %1089 = zext i1 %1088 to i32
  store i32 %1089, ptr %13, align 4, !tbaa !9
  %1090 = load i32, ptr %13, align 4, !tbaa !9
  %1091 = icmp ne i32 %1090, 0
  br i1 %1091, label %1092, label %1093

1092:                                             ; preds = %1071
  br label %1071

1093:                                             ; preds = %1071
  %1094 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1094, ptr %13, align 4, !tbaa !9
  %1095 = load ptr, ptr %3, align 8, !tbaa !5
  %1096 = getelementptr inbounds %struct.w2c_hermes, ptr %1095, i32 0, i32 6
  %1097 = load i32, ptr %13, align 4, !tbaa !9
  %1098 = zext i32 %1097 to i64
  %1099 = add i64 %1098, 16
  %1100 = call i32 @i32_load(ptr noundef %1096, i64 noundef %1099)
  store i32 %1100, ptr %13, align 4, !tbaa !9
  %1101 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1101, ptr %5, align 4, !tbaa !9
  br label %1102

1102:                                             ; preds = %1093, %1041
  %1103 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1103, ptr %13, align 4, !tbaa !9
  %1104 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1104, ptr %14, align 4, !tbaa !9
  %1105 = load i32, ptr %13, align 4, !tbaa !9
  %1106 = load i32, ptr %14, align 4, !tbaa !9
  %1107 = icmp ne i32 %1105, %1106
  %1108 = zext i1 %1107 to i32
  store i32 %1108, ptr %13, align 4, !tbaa !9
  %1109 = load i32, ptr %13, align 4, !tbaa !9
  %1110 = icmp ne i32 %1109, 0
  br i1 %1110, label %1111, label %1115

1111:                                             ; preds = %1102
  %1112 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1112, ptr %13, align 4, !tbaa !9
  %1113 = load ptr, ptr %3, align 8, !tbaa !5
  %1114 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1113, i32 noundef %1114)
  br label %1115

1115:                                             ; preds = %1111, %1102
  %1116 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1116, ptr %13, align 4, !tbaa !9
  %1117 = load ptr, ptr %3, align 8, !tbaa !5
  %1118 = getelementptr inbounds %struct.w2c_hermes, ptr %1117, i32 0, i32 6
  %1119 = load i32, ptr %13, align 4, !tbaa !9
  %1120 = zext i32 %1119 to i64
  %1121 = add i64 %1120, 584
  %1122 = call i32 @i32_load(ptr noundef %1118, i64 noundef %1121)
  store i32 %1122, ptr %13, align 4, !tbaa !9
  %1123 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1123, ptr %5, align 4, !tbaa !9
  %1124 = load i32, ptr %13, align 4, !tbaa !9
  %1125 = icmp ne i32 %1124, 0
  br i1 %1125, label %1126, label %1167

1126:                                             ; preds = %1115
  br label %1127

1127:                                             ; preds = %1165, %1126
  %1128 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1128, ptr %13, align 4, !tbaa !9
  %1129 = load ptr, ptr %3, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.w2c_hermes, ptr %1129, i32 0, i32 6
  %1131 = load i32, ptr %13, align 4, !tbaa !9
  %1132 = zext i32 %1131 to i64
  %1133 = call i32 @i32_load(ptr noundef %1130, i64 noundef %1132)
  store i32 %1133, ptr %13, align 4, !tbaa !9
  %1134 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1134, ptr %7, align 4, !tbaa !9
  %1135 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1135, ptr %13, align 4, !tbaa !9
  %1136 = load ptr, ptr %3, align 8, !tbaa !5
  %1137 = getelementptr inbounds %struct.w2c_hermes, ptr %1136, i32 0, i32 6
  %1138 = load i32, ptr %13, align 4, !tbaa !9
  %1139 = zext i32 %1138 to i64
  %1140 = add i64 %1139, 8
  %1141 = call i32 @i32_load(ptr noundef %1137, i64 noundef %1140)
  store i32 %1141, ptr %13, align 4, !tbaa !9
  %1142 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1142, ptr %8, align 4, !tbaa !9
  %1143 = load i32, ptr %13, align 4, !tbaa !9
  %1144 = icmp ne i32 %1143, 0
  br i1 %1144, label %1145, label %1157

1145:                                             ; preds = %1127
  %1146 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1146, ptr %13, align 4, !tbaa !9
  %1147 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1147, ptr %14, align 4, !tbaa !9
  %1148 = load ptr, ptr %3, align 8, !tbaa !5
  %1149 = getelementptr inbounds %struct.w2c_hermes, ptr %1148, i32 0, i32 6
  %1150 = load i32, ptr %13, align 4, !tbaa !9
  %1151 = zext i32 %1150 to i64
  %1152 = add i64 %1151, 12
  %1153 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1149, i64 noundef %1152, i32 noundef %1153)
  %1154 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1154, ptr %13, align 4, !tbaa !9
  %1155 = load ptr, ptr %3, align 8, !tbaa !5
  %1156 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1155, i32 noundef %1156)
  br label %1157

1157:                                             ; preds = %1145, %1127
  %1158 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1158, ptr %13, align 4, !tbaa !9
  %1159 = load ptr, ptr %3, align 8, !tbaa !5
  %1160 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1159, i32 noundef %1160)
  %1161 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1161, ptr %13, align 4, !tbaa !9
  %1162 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1162, ptr %5, align 4, !tbaa !9
  %1163 = load i32, ptr %13, align 4, !tbaa !9
  %1164 = icmp ne i32 %1163, 0
  br i1 %1164, label %1165, label %1166

1165:                                             ; preds = %1157
  br label %1127

1166:                                             ; preds = %1157
  br label %1167

1167:                                             ; preds = %1166, %1115
  %1168 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1168, ptr %13, align 4, !tbaa !9
  %1169 = load ptr, ptr %3, align 8, !tbaa !5
  %1170 = getelementptr inbounds %struct.w2c_hermes, ptr %1169, i32 0, i32 6
  %1171 = load i32, ptr %13, align 4, !tbaa !9
  %1172 = zext i32 %1171 to i64
  %1173 = add i64 %1172, 576
  %1174 = call i32 @i32_load(ptr noundef %1170, i64 noundef %1173)
  store i32 %1174, ptr %13, align 4, !tbaa !9
  %1175 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1175, ptr %5, align 4, !tbaa !9
  %1176 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1176, ptr %13, align 4, !tbaa !9
  store i32 0, ptr %14, align 4, !tbaa !9
  %1177 = load ptr, ptr %3, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.w2c_hermes, ptr %1177, i32 0, i32 6
  %1179 = load i32, ptr %13, align 4, !tbaa !9
  %1180 = zext i32 %1179 to i64
  %1181 = add i64 %1180, 576
  %1182 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1178, i64 noundef %1181, i32 noundef %1182)
  %1183 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1183, ptr %13, align 4, !tbaa !9
  %1184 = load i32, ptr %13, align 4, !tbaa !9
  %1185 = icmp ne i32 %1184, 0
  br i1 %1185, label %1186, label %1190

1186:                                             ; preds = %1167
  %1187 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1187, ptr %13, align 4, !tbaa !9
  %1188 = load ptr, ptr %3, align 8, !tbaa !5
  %1189 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1188, i32 noundef %1189)
  br label %1190

1190:                                             ; preds = %1186, %1167
  %1191 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1191, ptr %13, align 4, !tbaa !9
  %1192 = load ptr, ptr %3, align 8, !tbaa !5
  %1193 = getelementptr inbounds %struct.w2c_hermes, ptr %1192, i32 0, i32 6
  %1194 = load i32, ptr %13, align 4, !tbaa !9
  %1195 = zext i32 %1194 to i64
  %1196 = add i64 %1195, 564
  %1197 = call i32 @i32_load(ptr noundef %1193, i64 noundef %1196)
  store i32 %1197, ptr %13, align 4, !tbaa !9
  %1198 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1198, ptr %5, align 4, !tbaa !9
  %1199 = load i32, ptr %13, align 4, !tbaa !9
  %1200 = icmp ne i32 %1199, 0
  br i1 %1200, label %1201, label %1245

1201:                                             ; preds = %1190
  br label %1202

1202:                                             ; preds = %1243, %1201
  %1203 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1203, ptr %13, align 4, !tbaa !9
  %1204 = load ptr, ptr %3, align 8, !tbaa !5
  %1205 = getelementptr inbounds %struct.w2c_hermes, ptr %1204, i32 0, i32 6
  %1206 = load i32, ptr %13, align 4, !tbaa !9
  %1207 = zext i32 %1206 to i64
  %1208 = call i32 @i32_load(ptr noundef %1205, i64 noundef %1207)
  store i32 %1208, ptr %13, align 4, !tbaa !9
  %1209 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1209, ptr %7, align 4, !tbaa !9
  %1210 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1210, ptr %13, align 4, !tbaa !9
  %1211 = load ptr, ptr %3, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.w2c_hermes, ptr %1211, i32 0, i32 6
  %1213 = load i32, ptr %13, align 4, !tbaa !9
  %1214 = zext i32 %1213 to i64
  %1215 = add i64 %1214, 16
  %1216 = call i32 @i32_load(ptr noundef %1212, i64 noundef %1215)
  store i32 %1216, ptr %13, align 4, !tbaa !9
  %1217 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1217, ptr %8, align 4, !tbaa !9
  %1218 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1218, ptr %14, align 4, !tbaa !9
  %1219 = load ptr, ptr %3, align 8, !tbaa !5
  %1220 = getelementptr inbounds %struct.w2c_hermes, ptr %1219, i32 0, i32 6
  %1221 = load i32, ptr %14, align 4, !tbaa !9
  %1222 = zext i32 %1221 to i64
  %1223 = add i64 %1222, 12
  %1224 = call i32 @i32_load(ptr noundef %1220, i64 noundef %1223)
  store i32 %1224, ptr %14, align 4, !tbaa !9
  %1225 = load i32, ptr %13, align 4, !tbaa !9
  %1226 = load i32, ptr %14, align 4, !tbaa !9
  %1227 = icmp ne i32 %1225, %1226
  %1228 = zext i1 %1227 to i32
  store i32 %1228, ptr %13, align 4, !tbaa !9
  %1229 = load i32, ptr %13, align 4, !tbaa !9
  %1230 = icmp ne i32 %1229, 0
  br i1 %1230, label %1231, label %1235

1231:                                             ; preds = %1202
  %1232 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1232, ptr %13, align 4, !tbaa !9
  %1233 = load ptr, ptr %3, align 8, !tbaa !5
  %1234 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1233, i32 noundef %1234)
  br label %1235

1235:                                             ; preds = %1231, %1202
  %1236 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1236, ptr %13, align 4, !tbaa !9
  %1237 = load ptr, ptr %3, align 8, !tbaa !5
  %1238 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1237, i32 noundef %1238)
  %1239 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1239, ptr %13, align 4, !tbaa !9
  %1240 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1240, ptr %5, align 4, !tbaa !9
  %1241 = load i32, ptr %13, align 4, !tbaa !9
  %1242 = icmp ne i32 %1241, 0
  br i1 %1242, label %1243, label %1244

1243:                                             ; preds = %1235
  br label %1202

1244:                                             ; preds = %1235
  br label %1245

1245:                                             ; preds = %1244, %1190
  %1246 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1246, ptr %13, align 4, !tbaa !9
  %1247 = load ptr, ptr %3, align 8, !tbaa !5
  %1248 = getelementptr inbounds %struct.w2c_hermes, ptr %1247, i32 0, i32 6
  %1249 = load i32, ptr %13, align 4, !tbaa !9
  %1250 = zext i32 %1249 to i64
  %1251 = add i64 %1250, 556
  %1252 = call i32 @i32_load(ptr noundef %1248, i64 noundef %1251)
  store i32 %1252, ptr %13, align 4, !tbaa !9
  %1253 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1253, ptr %5, align 4, !tbaa !9
  %1254 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1254, ptr %13, align 4, !tbaa !9
  store i32 0, ptr %14, align 4, !tbaa !9
  %1255 = load ptr, ptr %3, align 8, !tbaa !5
  %1256 = getelementptr inbounds %struct.w2c_hermes, ptr %1255, i32 0, i32 6
  %1257 = load i32, ptr %13, align 4, !tbaa !9
  %1258 = zext i32 %1257 to i64
  %1259 = add i64 %1258, 556
  %1260 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1256, i64 noundef %1259, i32 noundef %1260)
  %1261 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1261, ptr %13, align 4, !tbaa !9
  %1262 = load i32, ptr %13, align 4, !tbaa !9
  %1263 = icmp ne i32 %1262, 0
  br i1 %1263, label %1264, label %1268

1264:                                             ; preds = %1245
  %1265 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1265, ptr %13, align 4, !tbaa !9
  %1266 = load ptr, ptr %3, align 8, !tbaa !5
  %1267 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1266, i32 noundef %1267)
  br label %1268

1268:                                             ; preds = %1264, %1245
  %1269 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1269, ptr %13, align 4, !tbaa !9
  store i32 416, ptr %14, align 4, !tbaa !9
  %1270 = load i32, ptr %14, align 4, !tbaa !9
  %1271 = load i32, ptr %13, align 4, !tbaa !9
  %1272 = add i32 %1271, %1270
  store i32 %1272, ptr %13, align 4, !tbaa !9
  %1273 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1273, ptr %9, align 4, !tbaa !9
  %1274 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1274, ptr %13, align 4, !tbaa !9
  store i32 432, ptr %14, align 4, !tbaa !9
  %1275 = load i32, ptr %14, align 4, !tbaa !9
  %1276 = load i32, ptr %13, align 4, !tbaa !9
  %1277 = add i32 %1276, %1275
  store i32 %1277, ptr %13, align 4, !tbaa !9
  %1278 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1278, ptr %10, align 4, !tbaa !9
  %1279 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1279, ptr %13, align 4, !tbaa !9
  store i32 448, ptr %14, align 4, !tbaa !9
  %1280 = load i32, ptr %14, align 4, !tbaa !9
  %1281 = load i32, ptr %13, align 4, !tbaa !9
  %1282 = add i32 %1281, %1280
  store i32 %1282, ptr %13, align 4, !tbaa !9
  %1283 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1283, ptr %12, align 4, !tbaa !9
  %1284 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1284, ptr %13, align 4, !tbaa !9
  %1285 = load ptr, ptr %3, align 8, !tbaa !5
  %1286 = getelementptr inbounds %struct.w2c_hermes, ptr %1285, i32 0, i32 6
  %1287 = load i32, ptr %13, align 4, !tbaa !9
  %1288 = zext i32 %1287 to i64
  %1289 = add i64 %1288, 548
  %1290 = call i32 @i32_load(ptr noundef %1286, i64 noundef %1289)
  store i32 %1290, ptr %13, align 4, !tbaa !9
  %1291 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1291, ptr %7, align 4, !tbaa !9
  %1292 = load i32, ptr %13, align 4, !tbaa !9
  %1293 = icmp ne i32 %1292, 0
  br i1 %1293, label %1294, label %1369

1294:                                             ; preds = %1268
  %1295 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1295, ptr %13, align 4, !tbaa !9
  %1296 = load ptr, ptr %3, align 8, !tbaa !5
  %1297 = getelementptr inbounds %struct.w2c_hermes, ptr %1296, i32 0, i32 6
  %1298 = load i32, ptr %13, align 4, !tbaa !9
  %1299 = zext i32 %1298 to i64
  %1300 = add i64 %1299, 536
  %1301 = call i32 @i32_load(ptr noundef %1297, i64 noundef %1300)
  store i32 %1301, ptr %13, align 4, !tbaa !9
  %1302 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1302, ptr %5, align 4, !tbaa !9
  %1303 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1303, ptr %14, align 4, !tbaa !9
  store i32 4, ptr %15, align 4, !tbaa !9
  %1304 = load i32, ptr %15, align 4, !tbaa !9
  %1305 = and i32 %1304, 31
  %1306 = load i32, ptr %14, align 4, !tbaa !9
  %1307 = shl i32 %1306, %1305
  store i32 %1307, ptr %14, align 4, !tbaa !9
  %1308 = load i32, ptr %14, align 4, !tbaa !9
  %1309 = load i32, ptr %13, align 4, !tbaa !9
  %1310 = add i32 %1309, %1308
  store i32 %1310, ptr %13, align 4, !tbaa !9
  %1311 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1311, ptr %8, align 4, !tbaa !9
  br label %1312

1312:                                             ; preds = %1367, %1294
  %1313 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1313, ptr %13, align 4, !tbaa !9
  %1314 = load ptr, ptr %3, align 8, !tbaa !5
  %1315 = getelementptr inbounds %struct.w2c_hermes, ptr %1314, i32 0, i32 6
  %1316 = load i32, ptr %13, align 4, !tbaa !9
  %1317 = zext i32 %1316 to i64
  %1318 = call i32 @i32_load(ptr noundef %1315, i64 noundef %1317)
  store i32 %1318, ptr %13, align 4, !tbaa !9
  store i32 -3, ptr %14, align 4, !tbaa !9
  %1319 = load i32, ptr %13, align 4, !tbaa !9
  %1320 = load i32, ptr %14, align 4, !tbaa !9
  %1321 = icmp ugt i32 %1319, %1320
  %1322 = zext i1 %1321 to i32
  store i32 %1322, ptr %13, align 4, !tbaa !9
  %1323 = load i32, ptr %13, align 4, !tbaa !9
  %1324 = icmp ne i32 %1323, 0
  br i1 %1324, label %1325, label %1326

1325:                                             ; preds = %1312
  br label %1354

1326:                                             ; preds = %1312
  %1327 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1327, ptr %13, align 4, !tbaa !9
  %1328 = load ptr, ptr %3, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.w2c_hermes, ptr %1328, i32 0, i32 6
  %1330 = load i32, ptr %13, align 4, !tbaa !9
  %1331 = zext i32 %1330 to i64
  %1332 = add i64 %1331, 4
  %1333 = call i32 @i32_load(ptr noundef %1329, i64 noundef %1332)
  store i32 %1333, ptr %13, align 4, !tbaa !9
  %1334 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1334, ptr %7, align 4, !tbaa !9
  %1335 = load i32, ptr %13, align 4, !tbaa !9
  %1336 = icmp ne i32 %1335, 0
  %1337 = xor i1 %1336, true
  %1338 = zext i1 %1337 to i32
  store i32 %1338, ptr %13, align 4, !tbaa !9
  %1339 = load i32, ptr %13, align 4, !tbaa !9
  %1340 = icmp ne i32 %1339, 0
  br i1 %1340, label %1341, label %1342

1341:                                             ; preds = %1326
  br label %1354

1342:                                             ; preds = %1326
  %1343 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1343, ptr %13, align 4, !tbaa !9
  %1344 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1344, ptr %14, align 4, !tbaa !9
  %1345 = load ptr, ptr %3, align 8, !tbaa !5
  %1346 = getelementptr inbounds %struct.w2c_hermes, ptr %1345, i32 0, i32 6
  %1347 = load i32, ptr %13, align 4, !tbaa !9
  %1348 = zext i32 %1347 to i64
  %1349 = add i64 %1348, 8
  %1350 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1346, i64 noundef %1349, i32 noundef %1350)
  %1351 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1351, ptr %13, align 4, !tbaa !9
  %1352 = load ptr, ptr %3, align 8, !tbaa !5
  %1353 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1352, i32 noundef %1353)
  br label %1354

1354:                                             ; preds = %1342, %1341, %1325
  %1355 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1355, ptr %13, align 4, !tbaa !9
  store i32 16, ptr %14, align 4, !tbaa !9
  %1356 = load i32, ptr %14, align 4, !tbaa !9
  %1357 = load i32, ptr %13, align 4, !tbaa !9
  %1358 = add i32 %1357, %1356
  store i32 %1358, ptr %13, align 4, !tbaa !9
  %1359 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1359, ptr %5, align 4, !tbaa !9
  %1360 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1360, ptr %14, align 4, !tbaa !9
  %1361 = load i32, ptr %13, align 4, !tbaa !9
  %1362 = load i32, ptr %14, align 4, !tbaa !9
  %1363 = icmp ne i32 %1361, %1362
  %1364 = zext i1 %1363 to i32
  store i32 %1364, ptr %13, align 4, !tbaa !9
  %1365 = load i32, ptr %13, align 4, !tbaa !9
  %1366 = icmp ne i32 %1365, 0
  br i1 %1366, label %1367, label %1368

1367:                                             ; preds = %1354
  br label %1312

1368:                                             ; preds = %1354
  br label %1369

1369:                                             ; preds = %1368, %1268
  %1370 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1370, ptr %13, align 4, !tbaa !9
  %1371 = load ptr, ptr %3, align 8, !tbaa !5
  %1372 = getelementptr inbounds %struct.w2c_hermes, ptr %1371, i32 0, i32 6
  %1373 = load i32, ptr %13, align 4, !tbaa !9
  %1374 = zext i32 %1373 to i64
  %1375 = add i64 %1374, 536
  %1376 = call i32 @i32_load(ptr noundef %1372, i64 noundef %1375)
  store i32 %1376, ptr %13, align 4, !tbaa !9
  %1377 = load ptr, ptr %3, align 8, !tbaa !5
  %1378 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1377, i32 noundef %1378)
  %1379 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1379, ptr %13, align 4, !tbaa !9
  %1380 = load ptr, ptr %3, align 8, !tbaa !5
  %1381 = getelementptr inbounds %struct.w2c_hermes, ptr %1380, i32 0, i32 6
  %1382 = load i32, ptr %13, align 4, !tbaa !9
  %1383 = zext i32 %1382 to i64
  %1384 = add i64 %1383, 520
  %1385 = call i32 @i32_load(ptr noundef %1381, i64 noundef %1384)
  store i32 %1385, ptr %13, align 4, !tbaa !9
  %1386 = load ptr, ptr %3, align 8, !tbaa !5
  %1387 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1386, i32 noundef %1387)
  %1388 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1388, ptr %13, align 4, !tbaa !9
  %1389 = load ptr, ptr %3, align 8, !tbaa !5
  %1390 = getelementptr inbounds %struct.w2c_hermes, ptr %1389, i32 0, i32 6
  %1391 = load i32, ptr %13, align 4, !tbaa !9
  %1392 = zext i32 %1391 to i64
  %1393 = add i64 %1392, 504
  %1394 = call i32 @i32_load(ptr noundef %1390, i64 noundef %1393)
  store i32 %1394, ptr %13, align 4, !tbaa !9
  %1395 = load ptr, ptr %3, align 8, !tbaa !5
  %1396 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1395, i32 noundef %1396)
  %1397 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1397, ptr %13, align 4, !tbaa !9
  store i32 480, ptr %14, align 4, !tbaa !9
  %1398 = load i32, ptr %14, align 4, !tbaa !9
  %1399 = load i32, ptr %13, align 4, !tbaa !9
  %1400 = add i32 %1399, %1398
  store i32 %1400, ptr %13, align 4, !tbaa !9
  %1401 = load ptr, ptr %3, align 8, !tbaa !5
  %1402 = load i32, ptr %13, align 4, !tbaa !9
  %1403 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fdeque_base0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x3E0x3E0x3A0x3A0x7E_0x5Fdeque_base0x280x29(ptr noundef %1401, i32 noundef %1402)
  store i32 %1403, ptr %13, align 4, !tbaa !9
  %1404 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1404, ptr %13, align 4, !tbaa !9
  %1405 = load ptr, ptr %3, align 8, !tbaa !5
  %1406 = getelementptr inbounds %struct.w2c_hermes, ptr %1405, i32 0, i32 6
  %1407 = load i32, ptr %13, align 4, !tbaa !9
  %1408 = zext i32 %1407 to i64
  %1409 = add i64 %1408, 464
  %1410 = call i32 @i32_load(ptr noundef %1406, i64 noundef %1409)
  store i32 %1410, ptr %13, align 4, !tbaa !9
  %1411 = load ptr, ptr %3, align 8, !tbaa !5
  %1412 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1411, i32 noundef %1412)
  %1413 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1413, ptr %13, align 4, !tbaa !9
  %1414 = load ptr, ptr %3, align 8, !tbaa !5
  %1415 = load i32, ptr %13, align 4, !tbaa !9
  %1416 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef %1414, i32 noundef %1415)
  store i32 %1416, ptr %13, align 4, !tbaa !9
  %1417 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1417, ptr %13, align 4, !tbaa !9
  %1418 = load ptr, ptr %3, align 8, !tbaa !5
  %1419 = load i32, ptr %13, align 4, !tbaa !9
  %1420 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef %1418, i32 noundef %1419)
  store i32 %1420, ptr %13, align 4, !tbaa !9
  %1421 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1421, ptr %13, align 4, !tbaa !9
  %1422 = load ptr, ptr %3, align 8, !tbaa !5
  %1423 = load i32, ptr %13, align 4, !tbaa !9
  %1424 = call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef %1422, i32 noundef %1423)
  store i32 %1424, ptr %13, align 4, !tbaa !9
  %1425 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1425, ptr %13, align 4, !tbaa !9
  %1426 = load ptr, ptr %3, align 8, !tbaa !5
  %1427 = getelementptr inbounds %struct.w2c_hermes, ptr %1426, i32 0, i32 6
  %1428 = load i32, ptr %13, align 4, !tbaa !9
  %1429 = zext i32 %1428 to i64
  %1430 = add i64 %1429, 396
  %1431 = call i32 @i32_load(ptr noundef %1427, i64 noundef %1430)
  store i32 %1431, ptr %13, align 4, !tbaa !9
  %1432 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1432, ptr %5, align 4, !tbaa !9
  %1433 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1433, ptr %14, align 4, !tbaa !9
  store i32 408, ptr %15, align 4, !tbaa !9
  %1434 = load i32, ptr %15, align 4, !tbaa !9
  %1435 = load i32, ptr %14, align 4, !tbaa !9
  %1436 = add i32 %1435, %1434
  store i32 %1436, ptr %14, align 4, !tbaa !9
  %1437 = load i32, ptr %13, align 4, !tbaa !9
  %1438 = load i32, ptr %14, align 4, !tbaa !9
  %1439 = icmp ne i32 %1437, %1438
  %1440 = zext i1 %1439 to i32
  store i32 %1440, ptr %13, align 4, !tbaa !9
  %1441 = load i32, ptr %13, align 4, !tbaa !9
  %1442 = icmp ne i32 %1441, 0
  br i1 %1442, label %1443, label %1447

1443:                                             ; preds = %1369
  %1444 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1444, ptr %13, align 4, !tbaa !9
  %1445 = load ptr, ptr %3, align 8, !tbaa !5
  %1446 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1445, i32 noundef %1446)
  br label %1447

1447:                                             ; preds = %1443, %1369
  %1448 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1448, ptr %13, align 4, !tbaa !9
  %1449 = load ptr, ptr %3, align 8, !tbaa !5
  %1450 = getelementptr inbounds %struct.w2c_hermes, ptr %1449, i32 0, i32 6
  %1451 = load i32, ptr %13, align 4, !tbaa !9
  %1452 = zext i32 %1451 to i64
  %1453 = add i64 %1452, 364
  %1454 = call i32 @i32_load(ptr noundef %1450, i64 noundef %1453)
  store i32 %1454, ptr %13, align 4, !tbaa !9
  %1455 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1455, ptr %5, align 4, !tbaa !9
  %1456 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1456, ptr %14, align 4, !tbaa !9
  store i32 376, ptr %15, align 4, !tbaa !9
  %1457 = load i32, ptr %15, align 4, !tbaa !9
  %1458 = load i32, ptr %14, align 4, !tbaa !9
  %1459 = add i32 %1458, %1457
  store i32 %1459, ptr %14, align 4, !tbaa !9
  %1460 = load i32, ptr %13, align 4, !tbaa !9
  %1461 = load i32, ptr %14, align 4, !tbaa !9
  %1462 = icmp ne i32 %1460, %1461
  %1463 = zext i1 %1462 to i32
  store i32 %1463, ptr %13, align 4, !tbaa !9
  %1464 = load i32, ptr %13, align 4, !tbaa !9
  %1465 = icmp ne i32 %1464, 0
  br i1 %1465, label %1466, label %1470

1466:                                             ; preds = %1447
  %1467 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1467, ptr %13, align 4, !tbaa !9
  %1468 = load ptr, ptr %3, align 8, !tbaa !5
  %1469 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1468, i32 noundef %1469)
  br label %1470

1470:                                             ; preds = %1466, %1447
  %1471 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1471, ptr %13, align 4, !tbaa !9
  %1472 = load ptr, ptr %3, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.w2c_hermes, ptr %1472, i32 0, i32 6
  %1474 = load i32, ptr %13, align 4, !tbaa !9
  %1475 = zext i32 %1474 to i64
  %1476 = add i64 %1475, 332
  %1477 = call i32 @i32_load(ptr noundef %1473, i64 noundef %1476)
  store i32 %1477, ptr %13, align 4, !tbaa !9
  %1478 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1478, ptr %5, align 4, !tbaa !9
  %1479 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1479, ptr %14, align 4, !tbaa !9
  store i32 344, ptr %15, align 4, !tbaa !9
  %1480 = load i32, ptr %15, align 4, !tbaa !9
  %1481 = load i32, ptr %14, align 4, !tbaa !9
  %1482 = add i32 %1481, %1480
  store i32 %1482, ptr %14, align 4, !tbaa !9
  %1483 = load i32, ptr %13, align 4, !tbaa !9
  %1484 = load i32, ptr %14, align 4, !tbaa !9
  %1485 = icmp ne i32 %1483, %1484
  %1486 = zext i1 %1485 to i32
  store i32 %1486, ptr %13, align 4, !tbaa !9
  %1487 = load i32, ptr %13, align 4, !tbaa !9
  %1488 = icmp ne i32 %1487, 0
  br i1 %1488, label %1489, label %1493

1489:                                             ; preds = %1470
  %1490 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1490, ptr %13, align 4, !tbaa !9
  %1491 = load ptr, ptr %3, align 8, !tbaa !5
  %1492 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1491, i32 noundef %1492)
  br label %1493

1493:                                             ; preds = %1489, %1470
  %1494 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1494, ptr %13, align 4, !tbaa !9
  %1495 = load ptr, ptr %3, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.w2c_hermes, ptr %1495, i32 0, i32 6
  %1497 = load i32, ptr %13, align 4, !tbaa !9
  %1498 = zext i32 %1497 to i64
  %1499 = add i64 %1498, 304
  %1500 = call i32 @i32_load(ptr noundef %1496, i64 noundef %1499)
  store i32 %1500, ptr %13, align 4, !tbaa !9
  %1501 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1501, ptr %5, align 4, !tbaa !9
  %1502 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1502, ptr %14, align 4, !tbaa !9
  store i32 316, ptr %15, align 4, !tbaa !9
  %1503 = load i32, ptr %15, align 4, !tbaa !9
  %1504 = load i32, ptr %14, align 4, !tbaa !9
  %1505 = add i32 %1504, %1503
  store i32 %1505, ptr %14, align 4, !tbaa !9
  %1506 = load i32, ptr %13, align 4, !tbaa !9
  %1507 = load i32, ptr %14, align 4, !tbaa !9
  %1508 = icmp ne i32 %1506, %1507
  %1509 = zext i1 %1508 to i32
  store i32 %1509, ptr %13, align 4, !tbaa !9
  %1510 = load i32, ptr %13, align 4, !tbaa !9
  %1511 = icmp ne i32 %1510, 0
  br i1 %1511, label %1512, label %1516

1512:                                             ; preds = %1493
  %1513 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1513, ptr %13, align 4, !tbaa !9
  %1514 = load ptr, ptr %3, align 8, !tbaa !5
  %1515 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1514, i32 noundef %1515)
  br label %1516

1516:                                             ; preds = %1512, %1493
  %1517 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1517, ptr %13, align 4, !tbaa !9
  %1518 = load ptr, ptr %3, align 8, !tbaa !5
  %1519 = getelementptr inbounds %struct.w2c_hermes, ptr %1518, i32 0, i32 6
  %1520 = load i32, ptr %13, align 4, !tbaa !9
  %1521 = zext i32 %1520 to i64
  %1522 = add i64 %1521, 276
  %1523 = call i32 @i32_load(ptr noundef %1519, i64 noundef %1522)
  store i32 %1523, ptr %13, align 4, !tbaa !9
  %1524 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1524, ptr %5, align 4, !tbaa !9
  %1525 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1525, ptr %14, align 4, !tbaa !9
  store i32 288, ptr %15, align 4, !tbaa !9
  %1526 = load i32, ptr %15, align 4, !tbaa !9
  %1527 = load i32, ptr %14, align 4, !tbaa !9
  %1528 = add i32 %1527, %1526
  store i32 %1528, ptr %14, align 4, !tbaa !9
  %1529 = load i32, ptr %13, align 4, !tbaa !9
  %1530 = load i32, ptr %14, align 4, !tbaa !9
  %1531 = icmp ne i32 %1529, %1530
  %1532 = zext i1 %1531 to i32
  store i32 %1532, ptr %13, align 4, !tbaa !9
  %1533 = load i32, ptr %13, align 4, !tbaa !9
  %1534 = icmp ne i32 %1533, 0
  br i1 %1534, label %1535, label %1539

1535:                                             ; preds = %1516
  %1536 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1536, ptr %13, align 4, !tbaa !9
  %1537 = load ptr, ptr %3, align 8, !tbaa !5
  %1538 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1537, i32 noundef %1538)
  br label %1539

1539:                                             ; preds = %1535, %1516
  %1540 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1540, ptr %13, align 4, !tbaa !9
  %1541 = load ptr, ptr %3, align 8, !tbaa !5
  %1542 = getelementptr inbounds %struct.w2c_hermes, ptr %1541, i32 0, i32 6
  %1543 = load i32, ptr %13, align 4, !tbaa !9
  %1544 = zext i32 %1543 to i64
  %1545 = add i64 %1544, 248
  %1546 = call i32 @i32_load(ptr noundef %1542, i64 noundef %1545)
  store i32 %1546, ptr %13, align 4, !tbaa !9
  %1547 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1547, ptr %5, align 4, !tbaa !9
  %1548 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1548, ptr %14, align 4, !tbaa !9
  store i32 260, ptr %15, align 4, !tbaa !9
  %1549 = load i32, ptr %15, align 4, !tbaa !9
  %1550 = load i32, ptr %14, align 4, !tbaa !9
  %1551 = add i32 %1550, %1549
  store i32 %1551, ptr %14, align 4, !tbaa !9
  %1552 = load i32, ptr %13, align 4, !tbaa !9
  %1553 = load i32, ptr %14, align 4, !tbaa !9
  %1554 = icmp ne i32 %1552, %1553
  %1555 = zext i1 %1554 to i32
  store i32 %1555, ptr %13, align 4, !tbaa !9
  %1556 = load i32, ptr %13, align 4, !tbaa !9
  %1557 = icmp ne i32 %1556, 0
  br i1 %1557, label %1558, label %1562

1558:                                             ; preds = %1539
  %1559 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1559, ptr %13, align 4, !tbaa !9
  %1560 = load ptr, ptr %3, align 8, !tbaa !5
  %1561 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1560, i32 noundef %1561)
  br label %1562

1562:                                             ; preds = %1558, %1539
  %1563 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1563, ptr %13, align 4, !tbaa !9
  %1564 = load ptr, ptr %3, align 8, !tbaa !5
  %1565 = getelementptr inbounds %struct.w2c_hermes, ptr %1564, i32 0, i32 6
  %1566 = load i32, ptr %13, align 4, !tbaa !9
  %1567 = zext i32 %1566 to i64
  %1568 = add i64 %1567, 220
  %1569 = call i32 @i32_load(ptr noundef %1565, i64 noundef %1568)
  store i32 %1569, ptr %13, align 4, !tbaa !9
  %1570 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1570, ptr %5, align 4, !tbaa !9
  %1571 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1571, ptr %14, align 4, !tbaa !9
  store i32 232, ptr %15, align 4, !tbaa !9
  %1572 = load i32, ptr %15, align 4, !tbaa !9
  %1573 = load i32, ptr %14, align 4, !tbaa !9
  %1574 = add i32 %1573, %1572
  store i32 %1574, ptr %14, align 4, !tbaa !9
  %1575 = load i32, ptr %13, align 4, !tbaa !9
  %1576 = load i32, ptr %14, align 4, !tbaa !9
  %1577 = icmp ne i32 %1575, %1576
  %1578 = zext i1 %1577 to i32
  store i32 %1578, ptr %13, align 4, !tbaa !9
  %1579 = load i32, ptr %13, align 4, !tbaa !9
  %1580 = icmp ne i32 %1579, 0
  br i1 %1580, label %1581, label %1585

1581:                                             ; preds = %1562
  %1582 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1582, ptr %13, align 4, !tbaa !9
  %1583 = load ptr, ptr %3, align 8, !tbaa !5
  %1584 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1583, i32 noundef %1584)
  br label %1585

1585:                                             ; preds = %1581, %1562
  %1586 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1586, ptr %13, align 4, !tbaa !9
  store i32 76, ptr %14, align 4, !tbaa !9
  %1587 = load i32, ptr %14, align 4, !tbaa !9
  %1588 = load i32, ptr %13, align 4, !tbaa !9
  %1589 = add i32 %1588, %1587
  store i32 %1589, ptr %13, align 4, !tbaa !9
  %1590 = load ptr, ptr %3, align 8, !tbaa !5
  %1591 = load i32, ptr %13, align 4, !tbaa !9
  %1592 = call i32 @w2c_hermes_hermes0x3A0x3AScopeDesc0x3A0x3A0x7EScopeDesc0x280x29(ptr noundef %1590, i32 noundef %1591)
  store i32 %1592, ptr %13, align 4, !tbaa !9
  %1593 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1593, ptr %13, align 4, !tbaa !9
  %1594 = load ptr, ptr %3, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.w2c_hermes, ptr %1594, i32 0, i32 6
  %1596 = load i32, ptr %13, align 4, !tbaa !9
  %1597 = zext i32 %1596 to i64
  %1598 = add i64 %1597, 60
  %1599 = call i32 @i32_load(ptr noundef %1595, i64 noundef %1598)
  store i32 %1599, ptr %13, align 4, !tbaa !9
  %1600 = load ptr, ptr %3, align 8, !tbaa !5
  %1601 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1600, i32 noundef %1601)
  %1602 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1602, ptr %13, align 4, !tbaa !9
  %1603 = load ptr, ptr %3, align 8, !tbaa !5
  %1604 = getelementptr inbounds %struct.w2c_hermes, ptr %1603, i32 0, i32 6
  %1605 = load i32, ptr %13, align 4, !tbaa !9
  %1606 = zext i32 %1605 to i64
  %1607 = add i64 %1606, 48
  %1608 = call i32 @i32_load(ptr noundef %1604, i64 noundef %1607)
  store i32 %1608, ptr %13, align 4, !tbaa !9
  %1609 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1609, ptr %5, align 4, !tbaa !9
  %1610 = load i32, ptr %13, align 4, !tbaa !9
  %1611 = icmp ne i32 %1610, 0
  br i1 %1611, label %1612, label %1624

1612:                                             ; preds = %1585
  %1613 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1613, ptr %13, align 4, !tbaa !9
  %1614 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1614, ptr %14, align 4, !tbaa !9
  %1615 = load ptr, ptr %3, align 8, !tbaa !5
  %1616 = getelementptr inbounds %struct.w2c_hermes, ptr %1615, i32 0, i32 6
  %1617 = load i32, ptr %13, align 4, !tbaa !9
  %1618 = zext i32 %1617 to i64
  %1619 = add i64 %1618, 52
  %1620 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1616, i64 noundef %1619, i32 noundef %1620)
  %1621 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1621, ptr %13, align 4, !tbaa !9
  %1622 = load ptr, ptr %3, align 8, !tbaa !5
  %1623 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1622, i32 noundef %1623)
  br label %1624

1624:                                             ; preds = %1612, %1585
  %1625 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1625, ptr %13, align 4, !tbaa !9
  %1626 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1626, ptr %14, align 4, !tbaa !9
  %1627 = load ptr, ptr %3, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.w2c_hermes, ptr %1627, i32 0, i32 6
  %1629 = load i32, ptr %14, align 4, !tbaa !9
  %1630 = zext i32 %1629 to i64
  %1631 = add i64 %1630, 44
  %1632 = call i32 @i32_load(ptr noundef %1628, i64 noundef %1631)
  store i32 %1632, ptr %14, align 4, !tbaa !9
  %1633 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1633, ptr %5, align 4, !tbaa !9
  %1634 = load i32, ptr %13, align 4, !tbaa !9
  %1635 = load i32, ptr %14, align 4, !tbaa !9
  %1636 = icmp ne i32 %1634, %1635
  %1637 = zext i1 %1636 to i32
  store i32 %1637, ptr %13, align 4, !tbaa !9
  %1638 = load i32, ptr %13, align 4, !tbaa !9
  %1639 = icmp ne i32 %1638, 0
  br i1 %1639, label %1640, label %1693

1640:                                             ; preds = %1624
  br label %1641

1641:                                             ; preds = %1691, %1640
  %1642 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1642, ptr %13, align 4, !tbaa !9
  %1643 = load ptr, ptr %3, align 8, !tbaa !5
  %1644 = getelementptr inbounds %struct.w2c_hermes, ptr %1643, i32 0, i32 6
  %1645 = load i32, ptr %13, align 4, !tbaa !9
  %1646 = zext i32 %1645 to i64
  %1647 = add i64 %1646, 4
  %1648 = call i32 @i32_load(ptr noundef %1644, i64 noundef %1647)
  store i32 %1648, ptr %13, align 4, !tbaa !9
  %1649 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1649, ptr %7, align 4, !tbaa !9
  %1650 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1650, ptr %14, align 4, !tbaa !9
  %1651 = load ptr, ptr %3, align 8, !tbaa !5
  %1652 = getelementptr inbounds %struct.w2c_hermes, ptr %1651, i32 0, i32 6
  %1653 = load i32, ptr %14, align 4, !tbaa !9
  %1654 = zext i32 %1653 to i64
  %1655 = call i32 @i32_load(ptr noundef %1652, i64 noundef %1654)
  store i32 %1655, ptr %14, align 4, !tbaa !9
  %1656 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1656, ptr %8, align 4, !tbaa !9
  %1657 = load ptr, ptr %3, align 8, !tbaa !5
  %1658 = getelementptr inbounds %struct.w2c_hermes, ptr %1657, i32 0, i32 6
  %1659 = load i32, ptr %13, align 4, !tbaa !9
  %1660 = zext i32 %1659 to i64
  %1661 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1658, i64 noundef %1660, i32 noundef %1661)
  %1662 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1662, ptr %13, align 4, !tbaa !9
  %1663 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1663, ptr %14, align 4, !tbaa !9
  %1664 = load ptr, ptr %3, align 8, !tbaa !5
  %1665 = getelementptr inbounds %struct.w2c_hermes, ptr %1664, i32 0, i32 6
  %1666 = load i32, ptr %13, align 4, !tbaa !9
  %1667 = zext i32 %1666 to i64
  %1668 = add i64 %1667, 4
  %1669 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1665, i64 noundef %1668, i32 noundef %1669)
  %1670 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1670, ptr %13, align 4, !tbaa !9
  store i64 0, ptr %18, align 8, !tbaa !17
  %1671 = load ptr, ptr %3, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.w2c_hermes, ptr %1671, i32 0, i32 6
  %1673 = load i32, ptr %13, align 4, !tbaa !9
  %1674 = zext i32 %1673 to i64
  %1675 = load i64, ptr %18, align 8, !tbaa !17
  call void @i64_store(ptr noundef %1672, i64 noundef %1674, i64 noundef %1675)
  %1676 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1676, ptr %13, align 4, !tbaa !9
  store i32 8, ptr %14, align 4, !tbaa !9
  %1677 = load i32, ptr %14, align 4, !tbaa !9
  %1678 = load i32, ptr %13, align 4, !tbaa !9
  %1679 = add i32 %1678, %1677
  store i32 %1679, ptr %13, align 4, !tbaa !9
  %1680 = load ptr, ptr %3, align 8, !tbaa !5
  %1681 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %1680, i32 noundef %1681)
  %1682 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1682, ptr %13, align 4, !tbaa !9
  %1683 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1683, ptr %5, align 4, !tbaa !9
  %1684 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1684, ptr %14, align 4, !tbaa !9
  %1685 = load i32, ptr %13, align 4, !tbaa !9
  %1686 = load i32, ptr %14, align 4, !tbaa !9
  %1687 = icmp ne i32 %1685, %1686
  %1688 = zext i1 %1687 to i32
  store i32 %1688, ptr %13, align 4, !tbaa !9
  %1689 = load i32, ptr %13, align 4, !tbaa !9
  %1690 = icmp ne i32 %1689, 0
  br i1 %1690, label %1691, label %1692

1691:                                             ; preds = %1641
  br label %1641

1692:                                             ; preds = %1641
  br label %1693

1693:                                             ; preds = %1692, %1624
  %1694 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1694, ptr %13, align 4, !tbaa !9
  %1695 = load ptr, ptr %3, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.w2c_hermes, ptr %1695, i32 0, i32 6
  %1697 = load i32, ptr %13, align 4, !tbaa !9
  %1698 = zext i32 %1697 to i64
  %1699 = add i64 %1698, 32
  %1700 = call i32 @i32_load(ptr noundef %1696, i64 noundef %1699)
  store i32 %1700, ptr %13, align 4, !tbaa !9
  %1701 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1701, ptr %5, align 4, !tbaa !9
  %1702 = load i32, ptr %13, align 4, !tbaa !9
  %1703 = icmp ne i32 %1702, 0
  %1704 = xor i1 %1703, true
  %1705 = zext i1 %1704 to i32
  store i32 %1705, ptr %13, align 4, !tbaa !9
  %1706 = load i32, ptr %13, align 4, !tbaa !9
  %1707 = icmp ne i32 %1706, 0
  br i1 %1707, label %1708, label %1709

1708:                                             ; preds = %1693
  br label %1810

1709:                                             ; preds = %1693
  %1710 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1710, ptr %13, align 4, !tbaa !9
  %1711 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1711, ptr %14, align 4, !tbaa !9
  %1712 = load ptr, ptr %3, align 8, !tbaa !5
  %1713 = getelementptr inbounds %struct.w2c_hermes, ptr %1712, i32 0, i32 6
  %1714 = load i32, ptr %14, align 4, !tbaa !9
  %1715 = zext i32 %1714 to i64
  %1716 = add i64 %1715, 4
  %1717 = call i32 @i32_load(ptr noundef %1713, i64 noundef %1716)
  store i32 %1717, ptr %14, align 4, !tbaa !9
  %1718 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1718, ptr %7, align 4, !tbaa !9
  store i32 1, ptr %15, align 4, !tbaa !9
  %1719 = load i32, ptr %15, align 4, !tbaa !9
  %1720 = load i32, ptr %14, align 4, !tbaa !9
  %1721 = sub i32 %1720, %1719
  store i32 %1721, ptr %14, align 4, !tbaa !9
  %1722 = load ptr, ptr %3, align 8, !tbaa !5
  %1723 = getelementptr inbounds %struct.w2c_hermes, ptr %1722, i32 0, i32 6
  %1724 = load i32, ptr %13, align 4, !tbaa !9
  %1725 = zext i32 %1724 to i64
  %1726 = add i64 %1725, 4
  %1727 = load i32, ptr %14, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1723, i64 noundef %1726, i32 noundef %1727)
  %1728 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1728, ptr %13, align 4, !tbaa !9
  %1729 = load i32, ptr %13, align 4, !tbaa !9
  %1730 = icmp ne i32 %1729, 0
  br i1 %1730, label %1731, label %1732

1731:                                             ; preds = %1709
  br label %1810

1732:                                             ; preds = %1709
  %1733 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1733, ptr %13, align 4, !tbaa !9
  %1734 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1734, ptr %14, align 4, !tbaa !9
  %1735 = load ptr, ptr %3, align 8, !tbaa !5
  %1736 = getelementptr inbounds %struct.w2c_hermes, ptr %1735, i32 0, i32 6
  %1737 = load i32, ptr %14, align 4, !tbaa !9
  %1738 = zext i32 %1737 to i64
  %1739 = call i32 @i32_load(ptr noundef %1736, i64 noundef %1738)
  store i32 %1739, ptr %14, align 4, !tbaa !9
  %1740 = load ptr, ptr %3, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.w2c_hermes, ptr %1740, i32 0, i32 6
  %1742 = load i32, ptr %14, align 4, !tbaa !9
  %1743 = zext i32 %1742 to i64
  %1744 = add i64 %1743, 8
  %1745 = call i32 @i32_load(ptr noundef %1741, i64 noundef %1744)
  store i32 %1745, ptr %14, align 4, !tbaa !9
  %1746 = load i32, ptr %14, align 4, !tbaa !9
  %1747 = load ptr, ptr %3, align 8, !tbaa !5
  %1748 = getelementptr inbounds %struct.w2c_hermes, ptr %1747, i32 0, i32 7
  %1749 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1748, i32 0, i32 2
  %1750 = load i32, ptr %1749, align 4, !tbaa !18
  %1751 = icmp ult i32 %1746, %1750
  br i1 %1751, label %1752, label %1775

1752:                                             ; preds = %1732
  %1753 = load ptr, ptr %3, align 8, !tbaa !5
  %1754 = getelementptr inbounds %struct.w2c_hermes, ptr %1753, i32 0, i32 7
  %1755 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1754, i32 0, i32 0
  %1756 = load ptr, ptr %1755, align 8, !tbaa !19
  %1757 = load i32, ptr %14, align 4, !tbaa !9
  %1758 = zext i32 %1757 to i64
  %1759 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1756, i64 %1758
  %1760 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1759, i32 0, i32 1
  %1761 = load ptr, ptr %1760, align 8, !tbaa !20
  %1762 = icmp ne ptr %1761, null
  br i1 %1762, label %1763, label %1775

1763:                                             ; preds = %1752
  %1764 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %1765 = load ptr, ptr %3, align 8, !tbaa !5
  %1766 = getelementptr inbounds %struct.w2c_hermes, ptr %1765, i32 0, i32 7
  %1767 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1766, i32 0, i32 0
  %1768 = load ptr, ptr %1767, align 8, !tbaa !19
  %1769 = load i32, ptr %14, align 4, !tbaa !9
  %1770 = zext i32 %1769 to i64
  %1771 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1768, i64 %1770
  %1772 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1771, i32 0, i32 0
  %1773 = load ptr, ptr %1772, align 8, !tbaa !22
  %1774 = call zeroext i1 @func_types_eq(ptr noundef %1764, ptr noundef %1773)
  br label %1775

1775:                                             ; preds = %1763, %1752, %1732
  %1776 = phi i1 [ false, %1752 ], [ false, %1732 ], [ %1774, %1763 ]
  %1777 = xor i1 %1776, true
  %1778 = xor i1 %1777, true
  %1779 = zext i1 %1778 to i32
  %1780 = sext i32 %1779 to i64
  %1781 = call i64 @llvm.expect.i64(i64 %1780, i64 1)
  %1782 = icmp ne i64 %1781, 0
  br i1 %1782, label %1785, label %1783

1783:                                             ; preds = %1775
  call void @wasm_rt_trap(i32 noundef 6) #7
  unreachable

1784:                                             ; No predecessors!
  br label %1785

1785:                                             ; preds = %1784, %1775
  %1786 = phi i1 [ true, %1775 ], [ false, %1784 ]
  %1787 = zext i1 %1786 to i32
  %1788 = load ptr, ptr %3, align 8, !tbaa !5
  %1789 = getelementptr inbounds %struct.w2c_hermes, ptr %1788, i32 0, i32 7
  %1790 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1789, i32 0, i32 0
  %1791 = load ptr, ptr %1790, align 8, !tbaa !19
  %1792 = load i32, ptr %14, align 4, !tbaa !9
  %1793 = zext i32 %1792 to i64
  %1794 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1791, i64 %1793
  %1795 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1794, i32 0, i32 1
  %1796 = load ptr, ptr %1795, align 8, !tbaa !20
  %1797 = load ptr, ptr %3, align 8, !tbaa !5
  %1798 = getelementptr inbounds %struct.w2c_hermes, ptr %1797, i32 0, i32 7
  %1799 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1798, i32 0, i32 0
  %1800 = load ptr, ptr %1799, align 8, !tbaa !19
  %1801 = load i32, ptr %14, align 4, !tbaa !9
  %1802 = zext i32 %1801 to i64
  %1803 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1800, i64 %1802
  %1804 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1803, i32 0, i32 2
  %1805 = load ptr, ptr %1804, align 8, !tbaa !23
  %1806 = load i32, ptr %13, align 4, !tbaa !9
  call void %1796(ptr noundef %1805, i32 noundef %1806)
  %1807 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1807, ptr %13, align 4, !tbaa !9
  %1808 = load ptr, ptr %3, align 8, !tbaa !5
  %1809 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fshared_weak_count0x3A0x3A_0x5Frelease_weak0x280x29(ptr noundef %1808, i32 noundef %1809)
  br label %1810

1810:                                             ; preds = %1785, %1731, %1708
  %1811 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1811, ptr %13, align 4, !tbaa !9
  %1812 = load ptr, ptr %3, align 8, !tbaa !5
  %1813 = getelementptr inbounds %struct.w2c_hermes, ptr %1812, i32 0, i32 6
  %1814 = load i32, ptr %13, align 4, !tbaa !9
  %1815 = zext i32 %1814 to i64
  %1816 = add i64 %1815, 8
  %1817 = call i32 @i32_load(ptr noundef %1813, i64 noundef %1816)
  store i32 %1817, ptr %13, align 4, !tbaa !9
  %1818 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1818, ptr %5, align 4, !tbaa !9
  %1819 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1819, ptr %14, align 4, !tbaa !9
  store i32 20, ptr %15, align 4, !tbaa !9
  %1820 = load i32, ptr %15, align 4, !tbaa !9
  %1821 = load i32, ptr %14, align 4, !tbaa !9
  %1822 = add i32 %1821, %1820
  store i32 %1822, ptr %14, align 4, !tbaa !9
  %1823 = load i32, ptr %13, align 4, !tbaa !9
  %1824 = load i32, ptr %14, align 4, !tbaa !9
  %1825 = icmp ne i32 %1823, %1824
  %1826 = zext i1 %1825 to i32
  store i32 %1826, ptr %13, align 4, !tbaa !9
  %1827 = load i32, ptr %13, align 4, !tbaa !9
  %1828 = icmp ne i32 %1827, 0
  br i1 %1828, label %1829, label %1833

1829:                                             ; preds = %1810
  %1830 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1830, ptr %13, align 4, !tbaa !9
  %1831 = load ptr, ptr %3, align 8, !tbaa !5
  %1832 = load i32, ptr %13, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1831, i32 noundef %1832)
  br label %1833

1833:                                             ; preds = %1829, %1810
  %1834 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1834, ptr %13, align 4, !tbaa !9
  store i32 160, ptr %14, align 4, !tbaa !9
  %1835 = load i32, ptr %14, align 4, !tbaa !9
  %1836 = load i32, ptr %13, align 4, !tbaa !9
  %1837 = add i32 %1836, %1835
  store i32 %1837, ptr %13, align 4, !tbaa !9
  %1838 = load i32, ptr %13, align 4, !tbaa !9
  %1839 = load ptr, ptr %3, align 8, !tbaa !5
  %1840 = getelementptr inbounds %struct.w2c_hermes, ptr %1839, i32 0, i32 3
  store i32 %1838, ptr %1840, align 8, !tbaa !11
  %1841 = load i32, ptr %4, align 4, !tbaa !9
  store i32 %1841, ptr %13, align 4, !tbaa !9
  br label %1896

1842:                                             ; preds = %576
  store i32 0, ptr %13, align 4, !tbaa !9
  %1843 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1843, ptr %6, align 4, !tbaa !9
  store i32 117789, ptr %14, align 4, !tbaa !9
  %1844 = load i32, ptr %14, align 4, !tbaa !9
  %1845 = load i32, ptr %13, align 4, !tbaa !9
  %1846 = add i32 %1845, %1844
  store i32 %1846, ptr %13, align 4, !tbaa !9
  %1847 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1847, ptr %14, align 4, !tbaa !9
  store i32 79572, ptr %15, align 4, !tbaa !9
  %1848 = load i32, ptr %15, align 4, !tbaa !9
  %1849 = load i32, ptr %14, align 4, !tbaa !9
  %1850 = add i32 %1849, %1848
  store i32 %1850, ptr %14, align 4, !tbaa !9
  store i32 74, ptr %15, align 4, !tbaa !9
  %1851 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1851, ptr %16, align 4, !tbaa !9
  store i32 88407, ptr %17, align 4, !tbaa !9
  %1852 = load i32, ptr %17, align 4, !tbaa !9
  %1853 = load i32, ptr %16, align 4, !tbaa !9
  %1854 = add i32 %1853, %1852
  store i32 %1854, ptr %16, align 4, !tbaa !9
  %1855 = load ptr, ptr %3, align 8, !tbaa !5
  %1856 = load i32, ptr %13, align 4, !tbaa !9
  %1857 = load i32, ptr %14, align 4, !tbaa !9
  %1858 = load i32, ptr %15, align 4, !tbaa !9
  %1859 = load i32, ptr %16, align 4, !tbaa !9
  call void @w2c_hermes_0x5F_assert_fail(ptr noundef %1855, i32 noundef %1856, i32 noundef %1857, i32 noundef %1858, i32 noundef %1859)
  call void @wasm_rt_trap(i32 noundef 5) #7
  unreachable

1860:                                             ; preds = %792
  store i32 0, ptr %13, align 4, !tbaa !9
  %1861 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1861, ptr %6, align 4, !tbaa !9
  store i32 117789, ptr %14, align 4, !tbaa !9
  %1862 = load i32, ptr %14, align 4, !tbaa !9
  %1863 = load i32, ptr %13, align 4, !tbaa !9
  %1864 = add i32 %1863, %1862
  store i32 %1864, ptr %13, align 4, !tbaa !9
  %1865 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1865, ptr %14, align 4, !tbaa !9
  store i32 79572, ptr %15, align 4, !tbaa !9
  %1866 = load i32, ptr %15, align 4, !tbaa !9
  %1867 = load i32, ptr %14, align 4, !tbaa !9
  %1868 = add i32 %1867, %1866
  store i32 %1868, ptr %14, align 4, !tbaa !9
  store i32 74, ptr %15, align 4, !tbaa !9
  %1869 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1869, ptr %16, align 4, !tbaa !9
  store i32 88407, ptr %17, align 4, !tbaa !9
  %1870 = load i32, ptr %17, align 4, !tbaa !9
  %1871 = load i32, ptr %16, align 4, !tbaa !9
  %1872 = add i32 %1871, %1870
  store i32 %1872, ptr %16, align 4, !tbaa !9
  %1873 = load ptr, ptr %3, align 8, !tbaa !5
  %1874 = load i32, ptr %13, align 4, !tbaa !9
  %1875 = load i32, ptr %14, align 4, !tbaa !9
  %1876 = load i32, ptr %15, align 4, !tbaa !9
  %1877 = load i32, ptr %16, align 4, !tbaa !9
  call void @w2c_hermes_0x5F_assert_fail(ptr noundef %1873, i32 noundef %1874, i32 noundef %1875, i32 noundef %1876, i32 noundef %1877)
  call void @wasm_rt_trap(i32 noundef 5) #7
  unreachable

1878:                                             ; preds = %1008
  store i32 0, ptr %13, align 4, !tbaa !9
  %1879 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1879, ptr %6, align 4, !tbaa !9
  store i32 117789, ptr %14, align 4, !tbaa !9
  %1880 = load i32, ptr %14, align 4, !tbaa !9
  %1881 = load i32, ptr %13, align 4, !tbaa !9
  %1882 = add i32 %1881, %1880
  store i32 %1882, ptr %13, align 4, !tbaa !9
  %1883 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1883, ptr %14, align 4, !tbaa !9
  store i32 79572, ptr %15, align 4, !tbaa !9
  %1884 = load i32, ptr %15, align 4, !tbaa !9
  %1885 = load i32, ptr %14, align 4, !tbaa !9
  %1886 = add i32 %1885, %1884
  store i32 %1886, ptr %14, align 4, !tbaa !9
  store i32 74, ptr %15, align 4, !tbaa !9
  %1887 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1887, ptr %16, align 4, !tbaa !9
  store i32 88407, ptr %17, align 4, !tbaa !9
  %1888 = load i32, ptr %17, align 4, !tbaa !9
  %1889 = load i32, ptr %16, align 4, !tbaa !9
  %1890 = add i32 %1889, %1888
  store i32 %1890, ptr %16, align 4, !tbaa !9
  %1891 = load ptr, ptr %3, align 8, !tbaa !5
  %1892 = load i32, ptr %13, align 4, !tbaa !9
  %1893 = load i32, ptr %14, align 4, !tbaa !9
  %1894 = load i32, ptr %15, align 4, !tbaa !9
  %1895 = load i32, ptr %16, align 4, !tbaa !9
  call void @w2c_hermes_0x5F_assert_fail(ptr noundef %1891, i32 noundef %1892, i32 noundef %1893, i32 noundef %1894, i32 noundef %1895)
  call void @wasm_rt_trap(i32 noundef 5) #7
  unreachable

1896:                                             ; preds = %1833
  %1897 = load i32, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %6) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %5) #6
  ret i32 %1897
}

declare void @w2c_hermes_llvh0x3A0x3ADenseMap0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x2C0x20llvh0x3A0x3ADenseMapInfo0x3Chermes0x3A0x3AIdentifier0x3E0x2C0x20llvh0x3A0x3Adetail0x3A0x3ADenseMapPair0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x3E0x3E0x3A0x3Ashrink_and_clear0x280x29(ptr noundef, i32 noundef) #4

declare i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef, i32 noundef, i32 noundef) #4

declare void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef, i32 noundef) #4

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fdeque_base0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x3E0x3E0x3A0x3A0x7E_0x5Fdeque_base0x280x29(ptr noundef, i32 noundef) #4

declare i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef, i32 noundef) #4

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

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

!0 = !{i32 1, !"wchar_size", i32 4}
!1 = !{i32 8, !"PIC Level", i32 2}
!2 = !{i32 7, !"PIE Level", i32 2}
!3 = !{i32 7, !"uwtable", i32 2}
!4 = !{!"clang version 19.1.0 (git@github.com:llvm/llvm-project.git a4bf6cd7cfb1a1421ba92bca9d017b49936c55e4)"}
!5 = !{!6, !6, i64 0}
!6 = !{!"any pointer", !7, i64 0}
!7 = !{!"omnipotent char", !8, i64 0}
!8 = !{!"Simple C/C++ TBAA"}
!9 = !{!10, !10, i64 0}
!10 = !{!"int", !7, i64 0}
!11 = !{!12, !10, i64 24}
!12 = !{!"w2c_hermes", !6, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !13, i64 40, !16, i64 80}
!13 = !{!"", !6, i64 0, !14, i64 8, !14, i64 16, !14, i64 24, !15, i64 32}
!14 = !{!"long", !7, i64 0}
!15 = !{!"_Bool", !7, i64 0}
!16 = !{!"", !6, i64 0, !10, i64 8, !10, i64 12}
!17 = !{!14, !14, i64 0}
!18 = !{!12, !10, i64 92}
!19 = !{!12, !6, i64 80}
!20 = !{!21, !6, i64 8}
!21 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!21, !6, i64 0}
!23 = !{!21, !6, i64 16}


; 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.wasm_rt_funcref_t = type { ptr, ptr, ptr }

@w2c_hermes_t3 = external local_unnamed_addr constant ptr, align 8

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden zeroext i1 @func_types_eq(ptr noundef, ptr noundef) local_unnamed_addr #0

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

declare void @w2c_hermes_0x5F_assert_fail(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

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

declare void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @w2c_hermes_dlfree(ptr noundef, i32 noundef) local_unnamed_addr #2

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fshared_weak_count0x3A0x3A_0x5Frelease_weak0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
declare dso_local void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
declare dso_local i32 @w2c_hermes_hermes0x3A0x3AScopeDesc0x3A0x3A0x7EScopeDesc0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @w2c_hermes_hermes0x3A0x3AModule0x3A0x3A0x7EModule0x280x29(ptr noundef %0, i32 noundef returned %1) local_unnamed_addr #3 {
  %3 = getelementptr inbounds i8, ptr %0, i64 24
  %4 = load i32, ptr %3, align 8, !tbaa !5
  %5 = add i32 %4, -160
  store i32 %5, ptr %3, align 8, !tbaa !5
  %6 = getelementptr inbounds i8, ptr %0, i64 40
  %7 = zext i32 %1 to i64
  %8 = add nuw nsw i64 %7, 44
  %9 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %8)
  %10 = add i32 %1, 40
  %.not = icmp eq i32 %9, %10
  br i1 %.not, label %.loopexit1135, label %.preheader1134

.preheader1134:                                   ; preds = %2, %.preheader1134
  %.01030 = phi i32 [ %13, %.preheader1134 ], [ %9, %2 ]
  %11 = zext i32 %.01030 to i64
  %12 = add nuw nsw i64 %11, 4
  %13 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %12)
  %14 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %11)
  %15 = zext i32 %13 to i64
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %15, i32 noundef %14)
  %16 = zext i32 %14 to i64
  %17 = add nuw nsw i64 %16, 4
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %17, i32 noundef %13)
  tail call void @i64_store(ptr noundef nonnull %6, i64 noundef %11, i64 noundef 0)
  %18 = add i32 %.01030, 8
  tail call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %18)
  %.not1069 = icmp eq i32 %13, %10
  br i1 %.not1069, label %.loopexit1135, label %.preheader1134

.loopexit1135:                                    ; preds = %.preheader1134, %2
  %19 = add i32 %1, 64
  %20 = zext i32 %19 to i64
  %21 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %20)
  %22 = add nuw nsw i64 %7, 68
  %23 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %22)
  %24 = or i32 %23, %21
  %.not1070 = icmp eq i32 %24, 0
  br i1 %.not1070, label %57, label %25

25:                                               ; preds = %.loopexit1135
  %26 = add i32 %1, 60
  %27 = add nuw nsw i64 %7, 72
  %28 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %27)
  %29 = shl i32 %21, 2
  %.not1071 = icmp ule i32 %28, %29
  %30 = icmp ult i32 %28, 65
  %or.cond = or i1 %.not1071, %30
  br i1 %or.cond, label %32, label %31

31:                                               ; preds = %25
  tail call void @w2c_hermes_llvh0x3A0x3ADenseMap0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x2C0x20llvh0x3A0x3ADenseMapInfo0x3Chermes0x3A0x3AIdentifier0x3E0x2C0x20llvh0x3A0x3Adetail0x3A0x3ADenseMapPair0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x3E0x3E0x3A0x3Ashrink_and_clear0x280x29(ptr noundef %0, i32 noundef %26) #4
  br label %57

32:                                               ; preds = %25
  %.not1072 = icmp eq i32 %28, 0
  br i1 %.not1072, label %.loopexit1131, label %33

33:                                               ; preds = %32
  %34 = add i32 %28, 536870911
  %35 = and i32 %34, 536870911
  %36 = zext i32 %26 to i64
  %37 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %36)
  %38 = and i32 %28, 7
  %.not1073 = icmp eq i32 %38, 0
  br i1 %.not1073, label %.loopexit1133, label %.preheader1132

.preheader1132:                                   ; preds = %33, %.preheader1132
  %.1 = phi i32 [ %40, %.preheader1132 ], [ %37, %33 ]
  %.0 = phi i32 [ %41, %.preheader1132 ], [ 0, %33 ]
  %39 = zext i32 %.1 to i64
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %39, i32 noundef -4)
  %40 = add i32 %.1, 8
  %41 = add nuw nsw i32 %.0, 1
  %.not1074 = icmp eq i32 %41, %38
  br i1 %.not1074, label %.loopexit1133, label %.preheader1132

.loopexit1133:                                    ; preds = %.preheader1132, %33
  %.2 = phi i32 [ %37, %33 ], [ %40, %.preheader1132 ]
  %42 = icmp ult i32 %35, 7
  br i1 %42, label %.loopexit1131, label %43

43:                                               ; preds = %.loopexit1133
  %44 = shl i32 %28, 3
  %45 = add i32 %37, %44
  br label %46

46:                                               ; preds = %46, %43
  %.3 = phi i32 [ %.2, %43 ], [ %55, %46 ]
  %47 = zext i32 %.3 to i64
  %48 = add nuw nsw i64 %47, 56
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %48, i32 noundef -4)
  %49 = add nuw nsw i64 %47, 48
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %49, i32 noundef -4)
  %50 = add nuw nsw i64 %47, 40
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %50, i32 noundef -4)
  %51 = add nuw nsw i64 %47, 32
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %51, i32 noundef -4)
  %52 = add nuw nsw i64 %47, 24
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %52, i32 noundef -4)
  %53 = add nuw nsw i64 %47, 16
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %53, i32 noundef -4)
  %54 = add nuw nsw i64 %47, 8
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %54, i32 noundef -4)
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %47, i32 noundef -4)
  %55 = add i32 %.3, 64
  %.not1075 = icmp eq i32 %55, %45
  br i1 %.not1075, label %.loopexit1131, label %46

.loopexit1131:                                    ; preds = %46, %.loopexit1133, %32
  %56 = add nuw nsw i64 %7, 64
  tail call void @i64_store(ptr noundef nonnull %6, i64 noundef %56, i64 noundef 0)
  br label %57

57:                                               ; preds = %.loopexit1135, %.loopexit1131, %31
  %58 = add nuw nsw i64 %7, 48
  %59 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %58)
  %60 = add nuw nsw i64 %7, 52
  %61 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %60)
  %.not1076 = icmp eq i32 %59, %61
  br i1 %.not1076, label %.loopexit1130, label %.preheader1129

.preheader1129:                                   ; preds = %57, %.preheader1129
  %.4 = phi i32 [ %64, %.preheader1129 ], [ %59, %57 ]
  %62 = zext i32 %.4 to i64
  %63 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %62)
  tail call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %63)
  %64 = add i32 %.4, 4
  %.not1077 = icmp eq i32 %64, %61
  br i1 %.not1077, label %.loopexit1130, label %.preheader1129

.loopexit1130:                                    ; preds = %.preheader1129, %57
  %65 = zext i32 %5 to i64
  %66 = add nuw nsw i64 %65, 20
  tail call void @i64_store(ptr noundef nonnull %6, i64 noundef %66, i64 noundef 137438953472)
  %67 = add i32 %4, -132
  %68 = add nuw nsw i64 %65, 16
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %68, i32 noundef %67)
  %69 = add i32 %4, -4
  %70 = add i32 %1, 420
  %71 = zext i32 %70 to i64
  %72 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %71)
  %73 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %0, i32 noundef %69, i32 noundef %72) #4
  %74 = zext i32 %73 to i64
  %75 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %74)
  %76 = add nuw nsw i64 %65, 12
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %76, i32 noundef %75)
  %77 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %71)
  %78 = add nuw nsw i64 %7, 424
  %79 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %78)
  %80 = shl i32 %79, 2
  %81 = add i32 %80, %77
  %82 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %0, i32 noundef %69, i32 noundef %81) #4
  %83 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %76)
  %84 = zext i32 %82 to i64
  %85 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %84)
  %.not1078 = icmp eq i32 %83, %85
  br i1 %.not1078, label %.loopexit1128, label %.preheader1127

.preheader1127:                                   ; preds = %.loopexit1130
  %86 = add nuw nsw i64 %65, 24
  %87 = add i32 %4, -144
  %88 = add i32 %4, -148
  br label %89

89:                                               ; preds = %.preheader1127, %105
  %.5 = phi i32 [ %106, %105 ], [ %83, %.preheader1127 ]
  %90 = add i32 %.5, -28
  %.not1079 = icmp eq i32 %.5, 0
  %91 = select i1 %.not1079, i32 0, i32 %90
  %92 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %93 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %86)
  %.not1080 = icmp ult i32 %92, %93
  br i1 %.not1080, label %96, label %94

94:                                               ; preds = %89
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %87, i32 noundef %67, i32 noundef 0, i32 noundef 4) #4
  %95 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  br label %96

96:                                               ; preds = %94, %89
  %.6 = phi i32 [ %95, %94 ], [ %92, %89 ]
  %97 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %68)
  %98 = shl i32 %.6, 2
  %99 = add i32 %97, %98
  %100 = zext i32 %99 to i64
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %100, i32 noundef %91)
  %101 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %102 = add i32 %101, 1
  %103 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %86)
  %104 = icmp ugt i32 %102, %103
  br i1 %104, label %342, label %105

105:                                              ; preds = %96
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %66, i32 noundef %102)
  tail call void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef %0, i32 noundef %88) #4
  %106 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %76)
  %.not1081 = icmp eq i32 %106, %85
  br i1 %.not1081, label %.loopexit1128, label %89

.loopexit1128:                                    ; preds = %105, %.loopexit1130
  %107 = add i32 %1, 436
  %108 = zext i32 %107 to i64
  %109 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %108)
  %110 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %0, i32 noundef %69, i32 noundef %109) #4
  %111 = zext i32 %110 to i64
  %112 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %111)
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %76, i32 noundef %112)
  %113 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %108)
  %114 = add nuw nsw i64 %7, 440
  %115 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %114)
  %116 = shl i32 %115, 2
  %117 = add i32 %116, %113
  %118 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %0, i32 noundef %69, i32 noundef %117) #4
  %119 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %76)
  %120 = zext i32 %118 to i64
  %121 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %120)
  %.not1082 = icmp eq i32 %119, %121
  br i1 %.not1082, label %.loopexit1126, label %.preheader1125

.preheader1125:                                   ; preds = %.loopexit1128
  %122 = add nuw nsw i64 %65, 24
  %123 = add i32 %4, -144
  %124 = add i32 %4, -148
  br label %125

125:                                              ; preds = %.preheader1125, %141
  %.7 = phi i32 [ %142, %141 ], [ %119, %.preheader1125 ]
  %126 = add i32 %.7, -28
  %.not1083 = icmp eq i32 %.7, 0
  %127 = select i1 %.not1083, i32 0, i32 %126
  %128 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %129 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %122)
  %.not1084 = icmp ult i32 %128, %129
  br i1 %.not1084, label %132, label %130

130:                                              ; preds = %125
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %123, i32 noundef %67, i32 noundef 0, i32 noundef 4) #4
  %131 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  br label %132

132:                                              ; preds = %130, %125
  %.8 = phi i32 [ %131, %130 ], [ %128, %125 ]
  %133 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %68)
  %134 = shl i32 %.8, 2
  %135 = add i32 %133, %134
  %136 = zext i32 %135 to i64
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %136, i32 noundef %127)
  %137 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %138 = add i32 %137, 1
  %139 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %122)
  %140 = icmp ugt i32 %138, %139
  br i1 %140, label %343, label %141

141:                                              ; preds = %132
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %66, i32 noundef %138)
  tail call void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef %0, i32 noundef %124) #4
  %142 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %76)
  %.not1085 = icmp eq i32 %142, %121
  br i1 %.not1085, label %.loopexit1126, label %125

.loopexit1126:                                    ; preds = %141, %.loopexit1128
  %143 = add i32 %1, 452
  %144 = zext i32 %143 to i64
  %145 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %144)
  %146 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %0, i32 noundef %69, i32 noundef %145) #4
  %147 = zext i32 %146 to i64
  %148 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %147)
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %76, i32 noundef %148)
  %149 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %144)
  %150 = add nuw nsw i64 %7, 456
  %151 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %150)
  %152 = shl i32 %151, 2
  %153 = add i32 %152, %149
  %154 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef %0, i32 noundef %69, i32 noundef %153) #4
  %155 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %76)
  %156 = zext i32 %154 to i64
  %157 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %156)
  %.not1086 = icmp eq i32 %155, %157
  br i1 %.not1086, label %.loopexit1124, label %.preheader1123

.preheader1123:                                   ; preds = %.loopexit1126
  %158 = add nuw nsw i64 %65, 24
  %159 = add i32 %4, -144
  %160 = add i32 %4, -148
  br label %161

161:                                              ; preds = %.preheader1123, %177
  %.9 = phi i32 [ %178, %177 ], [ %155, %.preheader1123 ]
  %162 = add i32 %.9, -28
  %.not1087 = icmp eq i32 %.9, 0
  %163 = select i1 %.not1087, i32 0, i32 %162
  %164 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %165 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %158)
  %.not1088 = icmp ult i32 %164, %165
  br i1 %.not1088, label %168, label %166

166:                                              ; preds = %161
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %159, i32 noundef %67, i32 noundef 0, i32 noundef 4) #4
  %167 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  br label %168

168:                                              ; preds = %166, %161
  %.10 = phi i32 [ %167, %166 ], [ %164, %161 ]
  %169 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %68)
  %170 = shl i32 %.10, 2
  %171 = add i32 %169, %170
  %172 = zext i32 %171 to i64
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %172, i32 noundef %163)
  %173 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %174 = add i32 %173, 1
  %175 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %158)
  %176 = icmp ugt i32 %174, %175
  br i1 %176, label %344, label %177

177:                                              ; preds = %168
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %66, i32 noundef %174)
  tail call void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef %0, i32 noundef %160) #4
  %178 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %76)
  %.not1089 = icmp eq i32 %178, %157
  br i1 %.not1089, label %.loopexit1124, label %161

.loopexit1124:                                    ; preds = %177, %.loopexit1126
  %179 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %68)
  %180 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %66)
  %.not1090 = icmp eq i32 %180, 0
  br i1 %.not1090, label %190, label %181

181:                                              ; preds = %.loopexit1124
  %182 = shl i32 %180, 2
  %183 = add i32 %182, %179
  br label %184

184:                                              ; preds = %184, %181
  %.11 = phi i32 [ %179, %181 ], [ %187, %184 ]
  %185 = zext i32 %.11 to i64
  %186 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %185)
  tail call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %186)
  %187 = add i32 %.11, 4
  %.not1091 = icmp eq i32 %187, %183
  br i1 %.not1091, label %188, label %184

188:                                              ; preds = %184
  %189 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %68)
  br label %190

190:                                              ; preds = %188, %.loopexit1124
  %.12 = phi i32 [ %189, %188 ], [ %179, %.loopexit1124 ]
  %.not1092 = icmp eq i32 %.12, %67
  br i1 %.not1092, label %192, label %191

191:                                              ; preds = %190
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %.12) #4
  br label %192

192:                                              ; preds = %191, %190
  %193 = add nuw nsw i64 %7, 584
  %194 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %193)
  %.not1093 = icmp eq i32 %194, 0
  br i1 %.not1093, label %.loopexit1122, label %.preheader1121

.preheader1121:                                   ; preds = %192, %201
  %.13 = phi i32 [ %196, %201 ], [ %194, %192 ]
  %195 = zext i32 %.13 to i64
  %196 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %195)
  %197 = add nuw nsw i64 %195, 8
  %198 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %197)
  %.not1094 = icmp eq i32 %198, 0
  br i1 %.not1094, label %201, label %199

199:                                              ; preds = %.preheader1121
  %200 = add nuw nsw i64 %195, 12
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %200, i32 noundef %198)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %198) #4
  br label %201

201:                                              ; preds = %199, %.preheader1121
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %.13) #4
  %.not1095 = icmp eq i32 %196, 0
  br i1 %.not1095, label %.loopexit1122, label %.preheader1121

.loopexit1122:                                    ; preds = %201, %192
  %202 = add nuw nsw i64 %7, 576
  %203 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %202)
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %202, i32 noundef 0)
  %.not1096 = icmp eq i32 %203, 0
  br i1 %.not1096, label %205, label %204

204:                                              ; preds = %.loopexit1122
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %203) #4
  br label %205

205:                                              ; preds = %204, %.loopexit1122
  %206 = add nuw nsw i64 %7, 564
  %207 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %206)
  %.not1097 = icmp eq i32 %207, 0
  br i1 %.not1097, label %.loopexit1120, label %.preheader1119

.preheader1119:                                   ; preds = %205, %215
  %.14 = phi i32 [ %209, %215 ], [ %207, %205 ]
  %208 = zext i32 %.14 to i64
  %209 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %208)
  %210 = add nuw nsw i64 %208, 16
  %211 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %210)
  %212 = add nuw nsw i64 %208, 12
  %213 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %212)
  %.not1098 = icmp eq i32 %211, %213
  br i1 %.not1098, label %215, label %214

214:                                              ; preds = %.preheader1119
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %211) #4
  br label %215

215:                                              ; preds = %214, %.preheader1119
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %.14) #4
  %.not1099 = icmp eq i32 %209, 0
  br i1 %.not1099, label %.loopexit1120, label %.preheader1119

.loopexit1120:                                    ; preds = %215, %205
  %216 = add nuw nsw i64 %7, 556
  %217 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %216)
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %216, i32 noundef 0)
  %.not1100 = icmp eq i32 %217, 0
  br i1 %.not1100, label %219, label %218

218:                                              ; preds = %.loopexit1120
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %217) #4
  br label %219

219:                                              ; preds = %218, %.loopexit1120
  %220 = add i32 %1, 416
  %221 = add i32 %1, 432
  %222 = add i32 %1, 448
  %223 = add nuw nsw i64 %7, 548
  %224 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %223)
  %.not1101 = icmp eq i32 %224, 0
  %.pre = add nuw nsw i64 %7, 536
  br i1 %.not1101, label %.loopexit1118, label %225

225:                                              ; preds = %219
  %226 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %.pre)
  %227 = shl i32 %224, 4
  %228 = add i32 %226, %227
  br label %229

229:                                              ; preds = %238, %225
  %.15 = phi i32 [ %226, %225 ], [ %239, %238 ]
  %230 = zext i32 %.15 to i64
  %231 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %230)
  %232 = icmp ugt i32 %231, -3
  br i1 %232, label %238, label %233

233:                                              ; preds = %229
  %234 = add nuw nsw i64 %230, 4
  %235 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %234)
  %.not1102 = icmp eq i32 %235, 0
  br i1 %.not1102, label %238, label %236

236:                                              ; preds = %233
  %237 = add nuw nsw i64 %230, 8
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %237, i32 noundef %235)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %235) #4
  br label %238

238:                                              ; preds = %233, %229, %236
  %239 = add i32 %.15, 16
  %.not1103 = icmp eq i32 %239, %228
  br i1 %.not1103, label %.loopexit1118, label %229

.loopexit1118:                                    ; preds = %238, %219
  %240 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %.pre)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %240) #4
  %241 = add nuw nsw i64 %7, 520
  %242 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %241)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %242) #4
  %243 = add nuw nsw i64 %7, 504
  %244 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %243)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %244) #4
  %245 = add i32 %1, 480
  %246 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fdeque_base0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x3E0x3E0x3A0x3A0x7E_0x5Fdeque_base0x280x29(ptr noundef %0, i32 noundef %245) #4
  %247 = add nuw nsw i64 %7, 464
  %248 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %247)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %248) #4
  %249 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef %0, i32 noundef %222) #4
  %250 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef %0, i32 noundef %221) #4
  %251 = tail call i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef %0, i32 noundef %220) #4
  %252 = add nuw nsw i64 %7, 396
  %253 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %252)
  %254 = add i32 %1, 408
  %.not1104 = icmp eq i32 %253, %254
  br i1 %.not1104, label %256, label %255

255:                                              ; preds = %.loopexit1118
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %253) #4
  br label %256

256:                                              ; preds = %255, %.loopexit1118
  %257 = add nuw nsw i64 %7, 364
  %258 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %257)
  %259 = add i32 %1, 376
  %.not1105 = icmp eq i32 %258, %259
  br i1 %.not1105, label %261, label %260

260:                                              ; preds = %256
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %258) #4
  br label %261

261:                                              ; preds = %260, %256
  %262 = add nuw nsw i64 %7, 332
  %263 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %262)
  %264 = add i32 %1, 344
  %.not1106 = icmp eq i32 %263, %264
  br i1 %.not1106, label %266, label %265

265:                                              ; preds = %261
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %263) #4
  br label %266

266:                                              ; preds = %265, %261
  %267 = add nuw nsw i64 %7, 304
  %268 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %267)
  %269 = add i32 %1, 316
  %.not1107 = icmp eq i32 %268, %269
  br i1 %.not1107, label %271, label %270

270:                                              ; preds = %266
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %268) #4
  br label %271

271:                                              ; preds = %270, %266
  %272 = add nuw nsw i64 %7, 276
  %273 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %272)
  %274 = add i32 %1, 288
  %.not1108 = icmp eq i32 %273, %274
  br i1 %.not1108, label %276, label %275

275:                                              ; preds = %271
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %273) #4
  br label %276

276:                                              ; preds = %275, %271
  %277 = add nuw nsw i64 %7, 248
  %278 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %277)
  %279 = add i32 %1, 260
  %.not1109 = icmp eq i32 %278, %279
  br i1 %.not1109, label %281, label %280

280:                                              ; preds = %276
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %278) #4
  br label %281

281:                                              ; preds = %280, %276
  %282 = add nuw nsw i64 %7, 220
  %283 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %282)
  %284 = add i32 %1, 232
  %.not1110 = icmp eq i32 %283, %284
  br i1 %.not1110, label %286, label %285

285:                                              ; preds = %281
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %283) #4
  br label %286

286:                                              ; preds = %285, %281
  %287 = add i32 %1, 76
  %288 = tail call i32 @w2c_hermes_hermes0x3A0x3AScopeDesc0x3A0x3A0x7EScopeDesc0x280x29(ptr noundef %0, i32 noundef %287)
  %289 = add nuw nsw i64 %7, 60
  %290 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %289)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %290) #4
  %291 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %58)
  %.not1111 = icmp eq i32 %291, 0
  br i1 %.not1111, label %293, label %292

292:                                              ; preds = %286
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %60, i32 noundef %291)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %0, i32 noundef %291) #4
  br label %293

293:                                              ; preds = %292, %286
  %294 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %8)
  %.not1112 = icmp eq i32 %10, %294
  br i1 %.not1112, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %293, %.preheader
  %.16 = phi i32 [ %297, %.preheader ], [ %294, %293 ]
  %295 = zext i32 %.16 to i64
  %296 = add nuw nsw i64 %295, 4
  %297 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %296)
  %298 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %295)
  %299 = zext i32 %297 to i64
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %299, i32 noundef %298)
  %300 = zext i32 %298 to i64
  %301 = add nuw nsw i64 %300, 4
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %301, i32 noundef %297)
  tail call void @i64_store(ptr noundef nonnull %6, i64 noundef %295, i64 noundef 0)
  %302 = add i32 %.16, 8
  tail call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3Adestroy0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %302)
  %.not1113 = icmp eq i32 %297, %10
  br i1 %.not1113, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %.preheader, %293
  %303 = add nuw nsw i64 %7, 32
  %304 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %303)
  %.not1114 = icmp eq i32 %304, 0
  br i1 %.not1114, label %336, label %305

305:                                              ; preds = %.loopexit
  %306 = zext i32 %304 to i64
  %307 = add nuw nsw i64 %306, 4
  %308 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %307)
  %309 = add i32 %308, -1
  tail call void @i32_store(ptr noundef nonnull %6, i64 noundef %307, i32 noundef %309)
  %.not1115 = icmp eq i32 %308, 0
  br i1 %.not1115, label %310, label %336

310:                                              ; preds = %305
  %311 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %306)
  %312 = zext i32 %311 to i64
  %313 = add nuw nsw i64 %312, 8
  %314 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %313)
  %315 = getelementptr inbounds i8, ptr %0, i64 80
  %316 = getelementptr inbounds i8, ptr %0, i64 92
  %317 = load i32, ptr %316, align 4, !tbaa !15
  %318 = icmp ult i32 %314, %317
  br i1 %318, label %319, label %.critedge, !prof !16

319:                                              ; preds = %310
  %320 = load ptr, ptr %315, align 8, !tbaa !17
  %321 = zext i32 %314 to i64
  %322 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %320, i64 %321
  %323 = getelementptr inbounds i8, ptr %322, i64 8
  %324 = load ptr, ptr %323, align 8, !tbaa !18
  %.not1116 = icmp eq ptr %324, null
  br i1 %.not1116, label %.critedge, label %325, !prof !20

325:                                              ; preds = %319
  %326 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !21
  %327 = load ptr, ptr %322, align 8, !tbaa !22
  %328 = tail call zeroext i1 @func_types_eq(ptr noundef %326, ptr noundef %327)
  br i1 %328, label %329, label %.critedge, !prof !16

.critedge:                                        ; preds = %319, %310, %325
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

329:                                              ; preds = %325
  %330 = load ptr, ptr %315, align 8, !tbaa !17
  %331 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %330, i64 %321
  %332 = getelementptr inbounds i8, ptr %331, i64 8
  %333 = load ptr, ptr %332, align 8, !tbaa !18
  %334 = getelementptr inbounds i8, ptr %331, i64 16
  %335 = load ptr, ptr %334, align 8, !tbaa !23
  tail call void %333(ptr noundef %335, i32 noundef %304) #4
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fshared_weak_count0x3A0x3A_0x5Frelease_weak0x280x29(ptr noundef nonnull %0, i32 noundef %304) #4
  br label %336

336:                                              ; preds = %305, %.loopexit, %329
  %337 = add nuw nsw i64 %7, 8
  %338 = tail call i32 @i32_load(ptr noundef nonnull %6, i64 noundef %337)
  %339 = add i32 %1, 20
  %.not1117 = icmp eq i32 %338, %339
  br i1 %.not1117, label %341, label %340

340:                                              ; preds = %336
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %338) #4
  br label %341

341:                                              ; preds = %340, %336
  store i32 %4, ptr %3, align 8, !tbaa !5
  ret i32 %1

342:                                              ; preds = %96
  tail call void @w2c_hermes_0x5F_assert_fail(ptr noundef %0, i32 noundef 117789, i32 noundef 79572, i32 noundef 74, i32 noundef 88407) #4
  tail call void @wasm_rt_trap(i32 noundef 5) #5
  unreachable

343:                                              ; preds = %132
  tail call void @w2c_hermes_0x5F_assert_fail(ptr noundef %0, i32 noundef 117789, i32 noundef 79572, i32 noundef 74, i32 noundef 88407) #4
  tail call void @wasm_rt_trap(i32 noundef 5) #5
  unreachable

344:                                              ; preds = %168
  tail call void @w2c_hermes_0x5F_assert_fail(ptr noundef %0, i32 noundef 117789, i32 noundef 79572, i32 noundef 74, i32 noundef 88407) #4
  tail call void @wasm_rt_trap(i32 noundef 5) #5
  unreachable
}

declare void @w2c_hermes_llvh0x3A0x3ADenseMap0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x2C0x20llvh0x3A0x3ADenseMapInfo0x3Chermes0x3A0x3AIdentifier0x3E0x2C0x20llvh0x3A0x3Adetail0x3A0x3ADenseMapPair0x3Chermes0x3A0x3AIdentifier0x2C0x20hermes0x3A0x3AGlobalObjectProperty0x2A0x3E0x3E0x3A0x3Ashrink_and_clear0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3AFoldingSetIteratorImpl0x28void0x2A0x2A0x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #2

declare void @w2c_hermes_llvh0x3A0x3AFoldingSetIteratorImpl0x3A0x3Aadvance0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fdeque_base0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Chermes0x3A0x3AModule0x3A0x3ACJSModule0x3E0x3E0x3A0x3A0x7E_0x5Fdeque_base0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #2

declare i32 @w2c_hermes_llvh0x3A0x3AFoldingSetBase0x3A0x3A0x7EFoldingSetBase0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #2

attributes #0 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }
attributes #5 = { 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, !10, i64 24}
!6 = !{!"w2c_hermes", !7, i64 0, !7, i64 8, !7, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !11, i64 40, !14, i64 80}
!7 = !{!"any pointer", !8, i64 0}
!8 = !{!"omnipotent char", !9, i64 0}
!9 = !{!"Simple C/C++ TBAA"}
!10 = !{!"int", !8, i64 0}
!11 = !{!"", !7, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !13, i64 32}
!12 = !{!"long", !8, i64 0}
!13 = !{!"_Bool", !8, i64 0}
!14 = !{!"", !7, i64 0, !10, i64 8, !10, i64 12}
!15 = !{!6, !10, i64 92}
!16 = !{!"branch_weights", !"expected", i32 2000, i32 1}
!17 = !{!6, !7, i64 80}
!18 = !{!19, !7, i64 8}
!19 = !{!"", !7, i64 0, !7, i64 8, !7, i64 16}
!20 = !{!"branch_weights", !"expected", i32 1, i32 2000}
!21 = !{!7, !7, i64 0}
!22 = !{!19, !7, i64 0}
!23 = !{!19, !7, i64 16}


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