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

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

; 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 void @i64_store(ptr noundef, i64 noundef, i64 noundef) #1

; 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_dlfree(ptr noundef, i32 noundef) #2

declare i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef, i32 noundef) #2

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

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

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

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

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

declare i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x3A0x3AAlignedStorage0x28hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x260x260x29(ptr noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nounwind uwtable
define dso_local void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AOldGen0x3A0x3AaddSegment0x28hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AHeapSegment0x29(ptr noundef %0, i32 noundef %1, i32 noundef %2) #5 {
  %4 = alloca ptr, align 8
  %5 = alloca i32, align 4
  %6 = alloca i32, align 4
  %7 = alloca i32, align 4
  %8 = alloca i32, align 4
  %9 = alloca i32, align 4
  %10 = alloca 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 i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i32, align 4
  %21 = alloca i32, align 4
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i64, align 8
  %27 = alloca i64, align 8
  store ptr %0, ptr %4, align 8, !tbaa !5
  store i32 %1, ptr %5, align 4, !tbaa !9
  store i32 %2, ptr %6, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %7) #7
  store i32 0, ptr %7, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %8) #7
  store i32 0, ptr %8, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %9) #7
  store i32 0, ptr %9, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %10) #7
  store i32 0, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #7
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #7
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #7
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #7
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #7
  store i32 0, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %16) #7
  store i32 0, ptr %16, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #7
  store i32 0, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #7
  store i32 0, ptr %18, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #7
  store i32 0, ptr %19, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %20) #7
  store i32 0, ptr %20, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.start.p0(i64 8, ptr %27) #7
  %28 = load ptr, ptr %4, align 8, !tbaa !5
  %29 = getelementptr inbounds %struct.w2c_hermes, ptr %28, i32 0, i32 3
  %30 = load i32, ptr %29, align 8, !tbaa !11
  store i32 %30, ptr %21, align 4, !tbaa !9
  store i32 16, ptr %22, align 4, !tbaa !9
  %31 = load i32, ptr %22, align 4, !tbaa !9
  %32 = load i32, ptr %21, align 4, !tbaa !9
  %33 = sub i32 %32, %31
  store i32 %33, ptr %21, align 4, !tbaa !9
  %34 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %34, ptr %20, align 4, !tbaa !9
  %35 = load i32, ptr %21, align 4, !tbaa !9
  %36 = load ptr, ptr %4, align 8, !tbaa !5
  %37 = getelementptr inbounds %struct.w2c_hermes, ptr %36, i32 0, i32 3
  store i32 %35, ptr %37, align 8, !tbaa !11
  %38 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %38, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %39 = load i32, ptr %22, align 4, !tbaa !9
  %40 = load i32, ptr %21, align 4, !tbaa !9
  %41 = add i32 %40, %39
  store i32 %41, ptr %21, align 4, !tbaa !9
  %42 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %42, ptr %9, align 4, !tbaa !9
  %43 = load ptr, ptr %4, align 8, !tbaa !5
  %44 = getelementptr inbounds %struct.w2c_hermes, ptr %43, i32 0, i32 6
  %45 = load i32, ptr %21, align 4, !tbaa !9
  %46 = zext i32 %45 to i64
  %47 = add i64 %46, 20
  %48 = call i32 @i32_load(ptr noundef %44, i64 noundef %47)
  store i32 %48, ptr %21, align 4, !tbaa !9
  %49 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %49, ptr %22, align 4, !tbaa !9
  %50 = load ptr, ptr %4, align 8, !tbaa !5
  %51 = getelementptr inbounds %struct.w2c_hermes, ptr %50, i32 0, i32 6
  %52 = load i32, ptr %22, align 4, !tbaa !9
  %53 = zext i32 %52 to i64
  %54 = add i64 %53, 16
  %55 = call i32 @i32_load(ptr noundef %51, i64 noundef %54)
  store i32 %55, ptr %22, align 4, !tbaa !9
  %56 = load i32, ptr %22, align 4, !tbaa !9
  %57 = load i32, ptr %21, align 4, !tbaa !9
  %58 = add i32 %57, %56
  store i32 %58, ptr %21, align 4, !tbaa !9
  %59 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %59, ptr %22, align 4, !tbaa !9
  %60 = load ptr, ptr %4, align 8, !tbaa !5
  %61 = getelementptr inbounds %struct.w2c_hermes, ptr %60, i32 0, i32 6
  %62 = load i32, ptr %22, align 4, !tbaa !9
  %63 = zext i32 %62 to i64
  %64 = add i64 %63, 8
  %65 = call i32 @i32_load(ptr noundef %61, i64 noundef %64)
  store i32 %65, ptr %22, align 4, !tbaa !9
  %66 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %66, ptr %7, align 4, !tbaa !9
  %67 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %67, ptr %23, align 4, !tbaa !9
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.w2c_hermes, ptr %68, i32 0, i32 6
  %70 = load i32, ptr %23, align 4, !tbaa !9
  %71 = zext i32 %70 to i64
  %72 = add i64 %71, 4
  %73 = call i32 @i32_load(ptr noundef %69, i64 noundef %72)
  store i32 %73, ptr %23, align 4, !tbaa !9
  %74 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %74, ptr %8, align 4, !tbaa !9
  %75 = load i32, ptr %23, align 4, !tbaa !9
  %76 = load i32, ptr %22, align 4, !tbaa !9
  %77 = sub i32 %76, %75
  store i32 %77, ptr %22, align 4, !tbaa !9
  store i32 6, ptr %23, align 4, !tbaa !9
  %78 = load i32, ptr %23, align 4, !tbaa !9
  %79 = and i32 %78, 31
  %80 = load i32, ptr %22, align 4, !tbaa !9
  %81 = shl i32 %80, %79
  store i32 %81, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %82 = load i32, ptr %23, align 4, !tbaa !9
  %83 = load i32, ptr %22, align 4, !tbaa !9
  %84 = sub i32 %83, %82
  store i32 %84, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %85 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %85, ptr %24, align 4, !tbaa !9
  %86 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %86, ptr %25, align 4, !tbaa !9
  %87 = load i32, ptr %24, align 4, !tbaa !9
  %88 = load i32, ptr %25, align 4, !tbaa !9
  %89 = icmp ne i32 %87, %88
  %90 = zext i1 %89 to i32
  store i32 %90, ptr %24, align 4, !tbaa !9
  %91 = load i32, ptr %24, align 4, !tbaa !9
  %92 = icmp ne i32 %91, 0
  br i1 %92, label %93, label %95

93:                                               ; preds = %3
  %94 = load i32, ptr %22, align 4, !tbaa !9
  br label %97

95:                                               ; preds = %3
  %96 = load i32, ptr %23, align 4, !tbaa !9
  br label %97

97:                                               ; preds = %95, %93
  %98 = phi i32 [ %94, %93 ], [ %96, %95 ]
  store i32 %98, ptr %22, align 4, !tbaa !9
  %99 = load i32, ptr %21, align 4, !tbaa !9
  %100 = load i32, ptr %22, align 4, !tbaa !9
  %101 = icmp eq i32 %99, %100
  %102 = zext i1 %101 to i32
  store i32 %102, ptr %21, align 4, !tbaa !9
  %103 = load i32, ptr %21, align 4, !tbaa !9
  %104 = icmp ne i32 %103, 0
  br i1 %104, label %105, label %1814

105:                                              ; preds = %97
  %106 = load ptr, ptr %4, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.w2c_hermes, ptr %106, i32 0, i32 3
  %108 = load i32, ptr %107, align 8, !tbaa !11
  store i32 %108, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %109 = load i32, ptr %22, align 4, !tbaa !9
  %110 = load i32, ptr %21, align 4, !tbaa !9
  %111 = sub i32 %110, %109
  store i32 %111, ptr %21, align 4, !tbaa !9
  %112 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %112, ptr %11, align 4, !tbaa !9
  %113 = load i32, ptr %21, align 4, !tbaa !9
  %114 = load ptr, ptr %4, align 8, !tbaa !5
  %115 = getelementptr inbounds %struct.w2c_hermes, ptr %114, i32 0, i32 3
  store i32 %113, ptr %115, align 8, !tbaa !11
  %116 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %116, ptr %21, align 4, !tbaa !9
  %117 = load ptr, ptr %4, align 8, !tbaa !5
  %118 = getelementptr inbounds %struct.w2c_hermes, ptr %117, i32 0, i32 6
  %119 = load i32, ptr %21, align 4, !tbaa !9
  %120 = zext i32 %119 to i64
  %121 = add i64 %120, 16
  %122 = call i32 @i32_load(ptr noundef %118, i64 noundef %121)
  store i32 %122, ptr %21, align 4, !tbaa !9
  %123 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %123, ptr %7, align 4, !tbaa !9
  store i32 256, ptr %22, align 4, !tbaa !9
  %124 = load i32, ptr %21, align 4, !tbaa !9
  %125 = load i32, ptr %22, align 4, !tbaa !9
  %126 = icmp uge i32 %124, %125
  %127 = zext i1 %126 to i32
  store i32 %127, ptr %21, align 4, !tbaa !9
  %128 = load i32, ptr %21, align 4, !tbaa !9
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %130, label %672

130:                                              ; preds = %105
  %131 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %131, ptr %21, align 4, !tbaa !9
  %132 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %132, ptr %22, align 4, !tbaa !9
  store i32 256, ptr %23, align 4, !tbaa !9
  %133 = load i32, ptr %23, align 4, !tbaa !9
  %134 = load i32, ptr %22, align 4, !tbaa !9
  %135 = sub i32 %134, %133
  store i32 %135, ptr %22, align 4, !tbaa !9
  %136 = load ptr, ptr %4, align 8, !tbaa !5
  %137 = getelementptr inbounds %struct.w2c_hermes, ptr %136, i32 0, i32 6
  %138 = load i32, ptr %21, align 4, !tbaa !9
  %139 = zext i32 %138 to i64
  %140 = add i64 %139, 16
  %141 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %137, i64 noundef %140, i32 noundef %141)
  %142 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %142, ptr %21, align 4, !tbaa !9
  %143 = load ptr, ptr %4, align 8, !tbaa !5
  %144 = getelementptr inbounds %struct.w2c_hermes, ptr %143, i32 0, i32 6
  %145 = load i32, ptr %21, align 4, !tbaa !9
  %146 = zext i32 %145 to i64
  %147 = add i64 %146, 4
  %148 = call i32 @i32_load(ptr noundef %144, i64 noundef %147)
  store i32 %148, ptr %21, align 4, !tbaa !9
  %149 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %149, ptr %7, align 4, !tbaa !9
  %150 = load ptr, ptr %4, align 8, !tbaa !5
  %151 = getelementptr inbounds %struct.w2c_hermes, ptr %150, i32 0, i32 6
  %152 = load i32, ptr %21, align 4, !tbaa !9
  %153 = zext i32 %152 to i64
  %154 = call i32 @i32_load(ptr noundef %151, i64 noundef %153)
  store i32 %154, ptr %21, align 4, !tbaa !9
  %155 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %155, ptr %17, align 4, !tbaa !9
  %156 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %156, ptr %21, align 4, !tbaa !9
  %157 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %157, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %158 = load i32, ptr %23, align 4, !tbaa !9
  %159 = load i32, ptr %22, align 4, !tbaa !9
  %160 = add i32 %159, %158
  store i32 %160, ptr %22, align 4, !tbaa !9
  %161 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %161, ptr %12, align 4, !tbaa !9
  %162 = load ptr, ptr %4, align 8, !tbaa !5
  %163 = getelementptr inbounds %struct.w2c_hermes, ptr %162, i32 0, i32 6
  %164 = load i32, ptr %21, align 4, !tbaa !9
  %165 = zext i32 %164 to i64
  %166 = add i64 %165, 4
  %167 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %163, i64 noundef %166, i32 noundef %167)
  %168 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %168, ptr %21, align 4, !tbaa !9
  %169 = load ptr, ptr %4, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.w2c_hermes, ptr %169, i32 0, i32 6
  %171 = load i32, ptr %21, align 4, !tbaa !9
  %172 = zext i32 %171 to i64
  %173 = add i64 %172, 8
  %174 = call i32 @i32_load(ptr noundef %170, i64 noundef %173)
  store i32 %174, ptr %21, align 4, !tbaa !9
  %175 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %175, ptr %7, align 4, !tbaa !9
  %176 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %176, ptr %22, align 4, !tbaa !9
  %177 = load ptr, ptr %4, align 8, !tbaa !5
  %178 = getelementptr inbounds %struct.w2c_hermes, ptr %177, i32 0, i32 6
  %179 = load i32, ptr %22, align 4, !tbaa !9
  %180 = zext i32 %179 to i64
  %181 = add i64 %180, 12
  %182 = call i32 @i32_load(ptr noundef %178, i64 noundef %181)
  store i32 %182, ptr %22, align 4, !tbaa !9
  %183 = load i32, ptr %21, align 4, !tbaa !9
  %184 = load i32, ptr %22, align 4, !tbaa !9
  %185 = icmp ne i32 %183, %184
  %186 = zext i1 %185 to i32
  store i32 %186, ptr %21, align 4, !tbaa !9
  %187 = load i32, ptr %21, align 4, !tbaa !9
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %189, label %192

189:                                              ; preds = %130
  %190 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %190, ptr %21, align 4, !tbaa !9
  %191 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %191, ptr %13, align 4, !tbaa !9
  br label %647

192:                                              ; preds = %130
  %193 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %193, ptr %21, align 4, !tbaa !9
  %194 = load ptr, ptr %4, align 8, !tbaa !5
  %195 = getelementptr inbounds %struct.w2c_hermes, ptr %194, i32 0, i32 6
  %196 = load i32, ptr %21, align 4, !tbaa !9
  %197 = zext i32 %196 to i64
  %198 = call i32 @i32_load(ptr noundef %195, i64 noundef %197)
  store i32 %198, ptr %21, align 4, !tbaa !9
  %199 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %199, ptr %14, align 4, !tbaa !9
  %200 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %200, ptr %22, align 4, !tbaa !9
  %201 = load i32, ptr %21, align 4, !tbaa !9
  %202 = load i32, ptr %22, align 4, !tbaa !9
  %203 = icmp ult i32 %201, %202
  %204 = zext i1 %203 to i32
  store i32 %204, ptr %21, align 4, !tbaa !9
  %205 = load i32, ptr %21, align 4, !tbaa !9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %305

207:                                              ; preds = %192
  %208 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %208, ptr %21, align 4, !tbaa !9
  %209 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %209, ptr %22, align 4, !tbaa !9
  %210 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %210, ptr %23, align 4, !tbaa !9
  %211 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %211, ptr %24, align 4, !tbaa !9
  %212 = load i32, ptr %24, align 4, !tbaa !9
  %213 = load i32, ptr %23, align 4, !tbaa !9
  %214 = sub i32 %213, %212
  store i32 %214, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %215 = load i32, ptr %23, align 4, !tbaa !9
  %216 = load i32, ptr %24, align 4, !tbaa !9
  %217 = and i32 %216, 31
  %218 = ashr i32 %215, %217
  store i32 %218, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %219 = load i32, ptr %24, align 4, !tbaa !9
  %220 = load i32, ptr %23, align 4, !tbaa !9
  %221 = add i32 %220, %219
  store i32 %221, ptr %23, align 4, !tbaa !9
  store i32 -2, ptr %24, align 4, !tbaa !9
  %222 = load i32, ptr %24, align 4, !tbaa !9
  %223 = icmp eq i32 %222, 0
  %224 = xor i1 %223, true
  %225 = xor i1 %224, true
  %226 = zext i1 %225 to i32
  %227 = sext i32 %226 to i64
  %228 = call i64 @llvm.expect.i64(i64 %227, i64 0)
  %229 = icmp ne i64 %228, 0
  br i1 %229, label %230, label %232

230:                                              ; preds = %207
  call void @wasm_rt_trap(i32 noundef 3) #8
  unreachable

231:                                              ; No predecessors!
  br label %254

232:                                              ; preds = %207
  %233 = load i32, ptr %23, align 4, !tbaa !9
  %234 = icmp eq i32 %233, -2147483648
  br i1 %234, label %235, label %238

235:                                              ; preds = %232
  %236 = load i32, ptr %24, align 4, !tbaa !9
  %237 = icmp eq i32 %236, -1
  br label %238

238:                                              ; preds = %235, %232
  %239 = phi i1 [ false, %232 ], [ %237, %235 ]
  %240 = xor i1 %239, true
  %241 = xor i1 %240, true
  %242 = zext i1 %241 to i32
  %243 = sext i32 %242 to i64
  %244 = call i64 @llvm.expect.i64(i64 %243, i64 0)
  %245 = icmp ne i64 %244, 0
  br i1 %245, label %246, label %248

246:                                              ; preds = %238
  call void @wasm_rt_trap(i32 noundef 2) #8
  unreachable

247:                                              ; No predecessors!
  br label %252

248:                                              ; preds = %238
  %249 = load i32, ptr %23, align 4, !tbaa !9
  %250 = load i32, ptr %24, align 4, !tbaa !9
  %251 = sdiv i32 %249, %250
  br label %252

252:                                              ; preds = %248, %247
  %253 = phi i32 [ 0, %247 ], [ %251, %248 ]
  br label %254

254:                                              ; preds = %252, %231
  %255 = phi i32 [ 0, %231 ], [ %253, %252 ]
  store i32 %255, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %256 = load i32, ptr %24, align 4, !tbaa !9
  %257 = and i32 %256, 31
  %258 = load i32, ptr %23, align 4, !tbaa !9
  %259 = shl i32 %258, %257
  store i32 %259, ptr %23, align 4, !tbaa !9
  %260 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %260, ptr %8, align 4, !tbaa !9
  %261 = load i32, ptr %23, align 4, !tbaa !9
  %262 = load i32, ptr %22, align 4, !tbaa !9
  %263 = add i32 %262, %261
  store i32 %263, ptr %22, align 4, !tbaa !9
  %264 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %264, ptr %23, align 4, !tbaa !9
  %265 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %265, ptr %24, align 4, !tbaa !9
  %266 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %266, ptr %25, align 4, !tbaa !9
  %267 = load i32, ptr %25, align 4, !tbaa !9
  %268 = load i32, ptr %24, align 4, !tbaa !9
  %269 = sub i32 %268, %267
  store i32 %269, ptr %24, align 4, !tbaa !9
  %270 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %270, ptr %7, align 4, !tbaa !9
  %271 = load ptr, ptr %4, align 8, !tbaa !5
  %272 = load i32, ptr %22, align 4, !tbaa !9
  %273 = load i32, ptr %23, align 4, !tbaa !9
  %274 = load i32, ptr %24, align 4, !tbaa !9
  %275 = call i32 @w2c_hermes_memmove(ptr noundef %271, i32 noundef %272, i32 noundef %273, i32 noundef %274)
  store i32 %275, ptr %22, align 4, !tbaa !9
  %276 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %276, ptr %23, align 4, !tbaa !9
  %277 = load i32, ptr %23, align 4, !tbaa !9
  %278 = load i32, ptr %22, align 4, !tbaa !9
  %279 = add i32 %278, %277
  store i32 %279, ptr %22, align 4, !tbaa !9
  %280 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %280, ptr %13, align 4, !tbaa !9
  %281 = load ptr, ptr %4, align 8, !tbaa !5
  %282 = getelementptr inbounds %struct.w2c_hermes, ptr %281, i32 0, i32 6
  %283 = load i32, ptr %21, align 4, !tbaa !9
  %284 = zext i32 %283 to i64
  %285 = add i64 %284, 8
  %286 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %282, i64 noundef %285, i32 noundef %286)
  %287 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %287, ptr %21, align 4, !tbaa !9
  %288 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %288, ptr %22, align 4, !tbaa !9
  %289 = load ptr, ptr %4, align 8, !tbaa !5
  %290 = getelementptr inbounds %struct.w2c_hermes, ptr %289, i32 0, i32 6
  %291 = load i32, ptr %22, align 4, !tbaa !9
  %292 = zext i32 %291 to i64
  %293 = add i64 %292, 4
  %294 = call i32 @i32_load(ptr noundef %290, i64 noundef %293)
  store i32 %294, ptr %22, align 4, !tbaa !9
  %295 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %295, ptr %23, align 4, !tbaa !9
  %296 = load i32, ptr %23, align 4, !tbaa !9
  %297 = load i32, ptr %22, align 4, !tbaa !9
  %298 = add i32 %297, %296
  store i32 %298, ptr %22, align 4, !tbaa !9
  %299 = load ptr, ptr %4, align 8, !tbaa !5
  %300 = getelementptr inbounds %struct.w2c_hermes, ptr %299, i32 0, i32 6
  %301 = load i32, ptr %21, align 4, !tbaa !9
  %302 = zext i32 %301 to i64
  %303 = add i64 %302, 4
  %304 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %300, i64 noundef %303, i32 noundef %304)
  br label %647

305:                                              ; preds = %192
  store i32 1, ptr %21, align 4, !tbaa !9
  %306 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %306, ptr %22, align 4, !tbaa !9
  %307 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %307, ptr %23, align 4, !tbaa !9
  %308 = load i32, ptr %23, align 4, !tbaa !9
  %309 = load i32, ptr %22, align 4, !tbaa !9
  %310 = sub i32 %309, %308
  store i32 %310, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %311 = load i32, ptr %22, align 4, !tbaa !9
  %312 = load i32, ptr %23, align 4, !tbaa !9
  %313 = and i32 %312, 31
  %314 = ashr i32 %311, %313
  store i32 %314, ptr %22, align 4, !tbaa !9
  %315 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %315, ptr %23, align 4, !tbaa !9
  %316 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %316, ptr %24, align 4, !tbaa !9
  %317 = load i32, ptr %23, align 4, !tbaa !9
  %318 = load i32, ptr %24, align 4, !tbaa !9
  %319 = icmp eq i32 %317, %318
  %320 = zext i1 %319 to i32
  store i32 %320, ptr %23, align 4, !tbaa !9
  %321 = load i32, ptr %23, align 4, !tbaa !9
  %322 = icmp ne i32 %321, 0
  br i1 %322, label %323, label %325

323:                                              ; preds = %305
  %324 = load i32, ptr %21, align 4, !tbaa !9
  br label %327

325:                                              ; preds = %305
  %326 = load i32, ptr %22, align 4, !tbaa !9
  br label %327

327:                                              ; preds = %325, %323
  %328 = phi i32 [ %324, %323 ], [ %326, %325 ]
  store i32 %328, ptr %21, align 4, !tbaa !9
  %329 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %329, ptr %13, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %330 = load i32, ptr %21, align 4, !tbaa !9
  %331 = load i32, ptr %22, align 4, !tbaa !9
  %332 = icmp uge i32 %330, %331
  %333 = zext i1 %332 to i32
  store i32 %333, ptr %21, align 4, !tbaa !9
  %334 = load i32, ptr %21, align 4, !tbaa !9
  %335 = icmp ne i32 %334, 0
  br i1 %335, label %336, label %337

336:                                              ; preds = %327
  br label %1796

337:                                              ; preds = %327
  %338 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %338, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %339 = load i32, ptr %22, align 4, !tbaa !9
  %340 = and i32 %339, 31
  %341 = load i32, ptr %21, align 4, !tbaa !9
  %342 = shl i32 %341, %340
  store i32 %342, ptr %21, align 4, !tbaa !9
  %343 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %343, ptr %8, align 4, !tbaa !9
  %344 = load ptr, ptr %4, align 8, !tbaa !5
  %345 = load i32, ptr %21, align 4, !tbaa !9
  %346 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %344, i32 noundef %345)
  store i32 %346, ptr %21, align 4, !tbaa !9
  %347 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %347, ptr %19, align 4, !tbaa !9
  %348 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %348, ptr %22, align 4, !tbaa !9
  %349 = load i32, ptr %22, align 4, !tbaa !9
  %350 = load i32, ptr %21, align 4, !tbaa !9
  %351 = add i32 %350, %349
  store i32 %351, ptr %21, align 4, !tbaa !9
  %352 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %352, ptr %18, align 4, !tbaa !9
  %353 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %353, ptr %21, align 4, !tbaa !9
  %354 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %354, ptr %22, align 4, !tbaa !9
  store i32 -4, ptr %23, align 4, !tbaa !9
  %355 = load i32, ptr %23, align 4, !tbaa !9
  %356 = load i32, ptr %22, align 4, !tbaa !9
  %357 = and i32 %356, %355
  store i32 %357, ptr %22, align 4, !tbaa !9
  %358 = load i32, ptr %22, align 4, !tbaa !9
  %359 = load i32, ptr %21, align 4, !tbaa !9
  %360 = add i32 %359, %358
  store i32 %360, ptr %21, align 4, !tbaa !9
  %361 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %361, ptr %8, align 4, !tbaa !9
  %362 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %362, ptr %13, align 4, !tbaa !9
  %363 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %363, ptr %21, align 4, !tbaa !9
  %364 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %364, ptr %22, align 4, !tbaa !9
  %365 = load i32, ptr %21, align 4, !tbaa !9
  %366 = load i32, ptr %22, align 4, !tbaa !9
  %367 = icmp eq i32 %365, %366
  %368 = zext i1 %367 to i32
  store i32 %368, ptr %21, align 4, !tbaa !9
  %369 = load i32, ptr %21, align 4, !tbaa !9
  %370 = icmp ne i32 %369, 0
  br i1 %370, label %371, label %372

371:                                              ; preds = %337
  br label %595

372:                                              ; preds = %337
  %373 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %373, ptr %21, align 4, !tbaa !9
  %374 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %374, ptr %22, align 4, !tbaa !9
  %375 = load i32, ptr %22, align 4, !tbaa !9
  %376 = load i32, ptr %21, align 4, !tbaa !9
  %377 = sub i32 %376, %375
  store i32 %377, ptr %21, align 4, !tbaa !9
  %378 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %378, ptr %7, align 4, !tbaa !9
  store i32 -4, ptr %22, align 4, !tbaa !9
  %379 = load i32, ptr %22, align 4, !tbaa !9
  %380 = load i32, ptr %21, align 4, !tbaa !9
  %381 = and i32 %380, %379
  store i32 %381, ptr %21, align 4, !tbaa !9
  %382 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %382, ptr %15, align 4, !tbaa !9
  %383 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %383, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %384 = load i32, ptr %22, align 4, !tbaa !9
  %385 = load i32, ptr %21, align 4, !tbaa !9
  %386 = sub i32 %385, %384
  store i32 %386, ptr %21, align 4, !tbaa !9
  %387 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %387, ptr %16, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %388 = load i32, ptr %22, align 4, !tbaa !9
  %389 = and i32 %388, 31
  %390 = load i32, ptr %21, align 4, !tbaa !9
  %391 = lshr i32 %390, %389
  store i32 %391, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %392 = load i32, ptr %22, align 4, !tbaa !9
  %393 = load i32, ptr %21, align 4, !tbaa !9
  %394 = add i32 %393, %392
  store i32 %394, ptr %21, align 4, !tbaa !9
  store i32 7, ptr %22, align 4, !tbaa !9
  %395 = load i32, ptr %22, align 4, !tbaa !9
  %396 = load i32, ptr %21, align 4, !tbaa !9
  %397 = and i32 %396, %395
  store i32 %397, ptr %21, align 4, !tbaa !9
  %398 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %398, ptr %10, align 4, !tbaa !9
  %399 = load i32, ptr %21, align 4, !tbaa !9
  %400 = icmp ne i32 %399, 0
  %401 = xor i1 %400, true
  %402 = zext i1 %401 to i32
  store i32 %402, ptr %21, align 4, !tbaa !9
  %403 = load i32, ptr %21, align 4, !tbaa !9
  %404 = icmp ne i32 %403, 0
  br i1 %404, label %405, label %408

405:                                              ; preds = %372
  %406 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %406, ptr %21, align 4, !tbaa !9
  %407 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %407, ptr %7, align 4, !tbaa !9
  br label %449

408:                                              ; preds = %372
  store i32 0, ptr %21, align 4, !tbaa !9
  %409 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %409, ptr %13, align 4, !tbaa !9
  %410 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %410, ptr %21, align 4, !tbaa !9
  %411 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %411, ptr %7, align 4, !tbaa !9
  br label %412

412:                                              ; preds = %447, %408
  %413 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %413, ptr %21, align 4, !tbaa !9
  %414 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %414, ptr %22, align 4, !tbaa !9
  %415 = load ptr, ptr %4, align 8, !tbaa !5
  %416 = getelementptr inbounds %struct.w2c_hermes, ptr %415, i32 0, i32 6
  %417 = load i32, ptr %22, align 4, !tbaa !9
  %418 = zext i32 %417 to i64
  %419 = call i32 @i32_load(ptr noundef %416, i64 noundef %418)
  store i32 %419, ptr %22, align 4, !tbaa !9
  %420 = load ptr, ptr %4, align 8, !tbaa !5
  %421 = getelementptr inbounds %struct.w2c_hermes, ptr %420, i32 0, i32 6
  %422 = load i32, ptr %21, align 4, !tbaa !9
  %423 = zext i32 %422 to i64
  %424 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %421, i64 noundef %423, i32 noundef %424)
  %425 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %425, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %426 = load i32, ptr %22, align 4, !tbaa !9
  %427 = load i32, ptr %21, align 4, !tbaa !9
  %428 = add i32 %427, %426
  store i32 %428, ptr %21, align 4, !tbaa !9
  %429 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %429, ptr %12, align 4, !tbaa !9
  %430 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %430, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %431 = load i32, ptr %22, align 4, !tbaa !9
  %432 = load i32, ptr %21, align 4, !tbaa !9
  %433 = add i32 %432, %431
  store i32 %433, ptr %21, align 4, !tbaa !9
  %434 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %434, ptr %7, align 4, !tbaa !9
  %435 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %435, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %436 = load i32, ptr %22, align 4, !tbaa !9
  %437 = load i32, ptr %21, align 4, !tbaa !9
  %438 = add i32 %437, %436
  store i32 %438, ptr %21, align 4, !tbaa !9
  %439 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %439, ptr %13, align 4, !tbaa !9
  %440 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %440, ptr %22, align 4, !tbaa !9
  %441 = load i32, ptr %21, align 4, !tbaa !9
  %442 = load i32, ptr %22, align 4, !tbaa !9
  %443 = icmp ne i32 %441, %442
  %444 = zext i1 %443 to i32
  store i32 %444, ptr %21, align 4, !tbaa !9
  %445 = load i32, ptr %21, align 4, !tbaa !9
  %446 = icmp ne i32 %445, 0
  br i1 %446, label %447, label %448

447:                                              ; preds = %412
  br label %412

448:                                              ; preds = %412
  br label %449

449:                                              ; preds = %448, %405
  %450 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %450, ptr %21, align 4, !tbaa !9
  %451 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %451, ptr %22, align 4, !tbaa !9
  %452 = load i32, ptr %22, align 4, !tbaa !9
  %453 = load i32, ptr %21, align 4, !tbaa !9
  %454 = add i32 %453, %452
  store i32 %454, ptr %21, align 4, !tbaa !9
  %455 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %455, ptr %13, align 4, !tbaa !9
  %456 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %456, ptr %21, align 4, !tbaa !9
  store i32 28, ptr %22, align 4, !tbaa !9
  %457 = load i32, ptr %21, align 4, !tbaa !9
  %458 = load i32, ptr %22, align 4, !tbaa !9
  %459 = icmp ult i32 %457, %458
  %460 = zext i1 %459 to i32
  store i32 %460, ptr %21, align 4, !tbaa !9
  %461 = load i32, ptr %21, align 4, !tbaa !9
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %464

463:                                              ; preds = %449
  br label %595

464:                                              ; preds = %449
  br label %465

465:                                              ; preds = %593, %464
  %466 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %466, ptr %21, align 4, !tbaa !9
  %467 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %467, ptr %22, align 4, !tbaa !9
  %468 = load ptr, ptr %4, align 8, !tbaa !5
  %469 = getelementptr inbounds %struct.w2c_hermes, ptr %468, i32 0, i32 6
  %470 = load i32, ptr %22, align 4, !tbaa !9
  %471 = zext i32 %470 to i64
  %472 = call i32 @i32_load(ptr noundef %469, i64 noundef %471)
  store i32 %472, ptr %22, align 4, !tbaa !9
  %473 = load ptr, ptr %4, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.w2c_hermes, ptr %473, i32 0, i32 6
  %475 = load i32, ptr %21, align 4, !tbaa !9
  %476 = zext i32 %475 to i64
  %477 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %474, i64 noundef %476, i32 noundef %477)
  %478 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %478, ptr %21, align 4, !tbaa !9
  %479 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %479, ptr %22, align 4, !tbaa !9
  %480 = load ptr, ptr %4, align 8, !tbaa !5
  %481 = getelementptr inbounds %struct.w2c_hermes, ptr %480, i32 0, i32 6
  %482 = load i32, ptr %22, align 4, !tbaa !9
  %483 = zext i32 %482 to i64
  %484 = add i64 %483, 4
  %485 = call i32 @i32_load(ptr noundef %481, i64 noundef %484)
  store i32 %485, ptr %22, align 4, !tbaa !9
  %486 = load ptr, ptr %4, align 8, !tbaa !5
  %487 = getelementptr inbounds %struct.w2c_hermes, ptr %486, i32 0, i32 6
  %488 = load i32, ptr %21, align 4, !tbaa !9
  %489 = zext i32 %488 to i64
  %490 = add i64 %489, 4
  %491 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %487, i64 noundef %490, i32 noundef %491)
  %492 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %492, ptr %21, align 4, !tbaa !9
  %493 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %493, ptr %22, align 4, !tbaa !9
  %494 = load ptr, ptr %4, align 8, !tbaa !5
  %495 = getelementptr inbounds %struct.w2c_hermes, ptr %494, i32 0, i32 6
  %496 = load i32, ptr %22, align 4, !tbaa !9
  %497 = zext i32 %496 to i64
  %498 = add i64 %497, 8
  %499 = call i32 @i32_load(ptr noundef %495, i64 noundef %498)
  store i32 %499, ptr %22, align 4, !tbaa !9
  %500 = load ptr, ptr %4, align 8, !tbaa !5
  %501 = getelementptr inbounds %struct.w2c_hermes, ptr %500, i32 0, i32 6
  %502 = load i32, ptr %21, align 4, !tbaa !9
  %503 = zext i32 %502 to i64
  %504 = add i64 %503, 8
  %505 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %501, i64 noundef %504, i32 noundef %505)
  %506 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %506, ptr %21, align 4, !tbaa !9
  %507 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %507, ptr %22, align 4, !tbaa !9
  %508 = load ptr, ptr %4, align 8, !tbaa !5
  %509 = getelementptr inbounds %struct.w2c_hermes, ptr %508, i32 0, i32 6
  %510 = load i32, ptr %22, align 4, !tbaa !9
  %511 = zext i32 %510 to i64
  %512 = add i64 %511, 12
  %513 = call i32 @i32_load(ptr noundef %509, i64 noundef %512)
  store i32 %513, ptr %22, align 4, !tbaa !9
  %514 = load ptr, ptr %4, align 8, !tbaa !5
  %515 = getelementptr inbounds %struct.w2c_hermes, ptr %514, i32 0, i32 6
  %516 = load i32, ptr %21, align 4, !tbaa !9
  %517 = zext i32 %516 to i64
  %518 = add i64 %517, 12
  %519 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %515, i64 noundef %518, i32 noundef %519)
  %520 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %520, ptr %21, align 4, !tbaa !9
  %521 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %521, ptr %22, align 4, !tbaa !9
  %522 = load ptr, ptr %4, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.w2c_hermes, ptr %522, i32 0, i32 6
  %524 = load i32, ptr %22, align 4, !tbaa !9
  %525 = zext i32 %524 to i64
  %526 = add i64 %525, 16
  %527 = call i32 @i32_load(ptr noundef %523, i64 noundef %526)
  store i32 %527, ptr %22, align 4, !tbaa !9
  %528 = load ptr, ptr %4, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.w2c_hermes, ptr %528, i32 0, i32 6
  %530 = load i32, ptr %21, align 4, !tbaa !9
  %531 = zext i32 %530 to i64
  %532 = add i64 %531, 16
  %533 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %529, i64 noundef %532, i32 noundef %533)
  %534 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %534, ptr %21, align 4, !tbaa !9
  %535 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %535, ptr %22, align 4, !tbaa !9
  %536 = load ptr, ptr %4, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.w2c_hermes, ptr %536, i32 0, i32 6
  %538 = load i32, ptr %22, align 4, !tbaa !9
  %539 = zext i32 %538 to i64
  %540 = add i64 %539, 20
  %541 = call i32 @i32_load(ptr noundef %537, i64 noundef %540)
  store i32 %541, ptr %22, align 4, !tbaa !9
  %542 = load ptr, ptr %4, align 8, !tbaa !5
  %543 = getelementptr inbounds %struct.w2c_hermes, ptr %542, i32 0, i32 6
  %544 = load i32, ptr %21, align 4, !tbaa !9
  %545 = zext i32 %544 to i64
  %546 = add i64 %545, 20
  %547 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %543, i64 noundef %546, i32 noundef %547)
  %548 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %548, ptr %21, align 4, !tbaa !9
  %549 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %549, ptr %22, align 4, !tbaa !9
  %550 = load ptr, ptr %4, align 8, !tbaa !5
  %551 = getelementptr inbounds %struct.w2c_hermes, ptr %550, i32 0, i32 6
  %552 = load i32, ptr %22, align 4, !tbaa !9
  %553 = zext i32 %552 to i64
  %554 = add i64 %553, 24
  %555 = call i32 @i32_load(ptr noundef %551, i64 noundef %554)
  store i32 %555, ptr %22, align 4, !tbaa !9
  %556 = load ptr, ptr %4, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.w2c_hermes, ptr %556, i32 0, i32 6
  %558 = load i32, ptr %21, align 4, !tbaa !9
  %559 = zext i32 %558 to i64
  %560 = add i64 %559, 24
  %561 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %557, i64 noundef %560, i32 noundef %561)
  %562 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %562, ptr %21, align 4, !tbaa !9
  %563 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %563, ptr %22, align 4, !tbaa !9
  %564 = load ptr, ptr %4, align 8, !tbaa !5
  %565 = getelementptr inbounds %struct.w2c_hermes, ptr %564, i32 0, i32 6
  %566 = load i32, ptr %22, align 4, !tbaa !9
  %567 = zext i32 %566 to i64
  %568 = add i64 %567, 28
  %569 = call i32 @i32_load(ptr noundef %565, i64 noundef %568)
  store i32 %569, ptr %22, align 4, !tbaa !9
  %570 = load ptr, ptr %4, align 8, !tbaa !5
  %571 = getelementptr inbounds %struct.w2c_hermes, ptr %570, i32 0, i32 6
  %572 = load i32, ptr %21, align 4, !tbaa !9
  %573 = zext i32 %572 to i64
  %574 = add i64 %573, 28
  %575 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %571, i64 noundef %574, i32 noundef %575)
  %576 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %576, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %577 = load i32, ptr %22, align 4, !tbaa !9
  %578 = load i32, ptr %21, align 4, !tbaa !9
  %579 = add i32 %578, %577
  store i32 %579, ptr %21, align 4, !tbaa !9
  %580 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %580, ptr %12, align 4, !tbaa !9
  %581 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %581, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %582 = load i32, ptr %22, align 4, !tbaa !9
  %583 = load i32, ptr %21, align 4, !tbaa !9
  %584 = add i32 %583, %582
  store i32 %584, ptr %21, align 4, !tbaa !9
  %585 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %585, ptr %7, align 4, !tbaa !9
  %586 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %586, ptr %22, align 4, !tbaa !9
  %587 = load i32, ptr %21, align 4, !tbaa !9
  %588 = load i32, ptr %22, align 4, !tbaa !9
  %589 = icmp ne i32 %587, %588
  %590 = zext i1 %589 to i32
  store i32 %590, ptr %21, align 4, !tbaa !9
  %591 = load i32, ptr %21, align 4, !tbaa !9
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %594

593:                                              ; preds = %465
  br label %465

594:                                              ; preds = %465
  br label %595

595:                                              ; preds = %594, %463, %371
  %596 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %596, ptr %21, align 4, !tbaa !9
  %597 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %597, ptr %22, align 4, !tbaa !9
  %598 = load ptr, ptr %4, align 8, !tbaa !5
  %599 = getelementptr inbounds %struct.w2c_hermes, ptr %598, i32 0, i32 6
  %600 = load i32, ptr %21, align 4, !tbaa !9
  %601 = zext i32 %600 to i64
  %602 = add i64 %601, 12
  %603 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %599, i64 noundef %602, i32 noundef %603)
  %604 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %604, ptr %21, align 4, !tbaa !9
  %605 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %605, ptr %22, align 4, !tbaa !9
  %606 = load ptr, ptr %4, align 8, !tbaa !5
  %607 = getelementptr inbounds %struct.w2c_hermes, ptr %606, i32 0, i32 6
  %608 = load i32, ptr %21, align 4, !tbaa !9
  %609 = zext i32 %608 to i64
  %610 = add i64 %609, 8
  %611 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %607, i64 noundef %610, i32 noundef %611)
  %612 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %612, ptr %21, align 4, !tbaa !9
  %613 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %613, ptr %22, align 4, !tbaa !9
  %614 = load ptr, ptr %4, align 8, !tbaa !5
  %615 = getelementptr inbounds %struct.w2c_hermes, ptr %614, i32 0, i32 6
  %616 = load i32, ptr %21, align 4, !tbaa !9
  %617 = zext i32 %616 to i64
  %618 = add i64 %617, 4
  %619 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %615, i64 noundef %618, i32 noundef %619)
  %620 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %620, ptr %21, align 4, !tbaa !9
  %621 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %621, ptr %22, align 4, !tbaa !9
  %622 = load ptr, ptr %4, align 8, !tbaa !5
  %623 = getelementptr inbounds %struct.w2c_hermes, ptr %622, i32 0, i32 6
  %624 = load i32, ptr %21, align 4, !tbaa !9
  %625 = zext i32 %624 to i64
  %626 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %623, i64 noundef %625, i32 noundef %626)
  %627 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %627, ptr %21, align 4, !tbaa !9
  %628 = load i32, ptr %21, align 4, !tbaa !9
  %629 = icmp ne i32 %628, 0
  %630 = xor i1 %629, true
  %631 = zext i1 %630 to i32
  store i32 %631, ptr %21, align 4, !tbaa !9
  %632 = load i32, ptr %21, align 4, !tbaa !9
  %633 = icmp ne i32 %632, 0
  br i1 %633, label %634, label %635

634:                                              ; preds = %595
  br label %647

635:                                              ; preds = %595
  %636 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %636, ptr %21, align 4, !tbaa !9
  %637 = load ptr, ptr %4, align 8, !tbaa !5
  %638 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %637, i32 noundef %638)
  %639 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %639, ptr %21, align 4, !tbaa !9
  %640 = load ptr, ptr %4, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.w2c_hermes, ptr %640, i32 0, i32 6
  %642 = load i32, ptr %21, align 4, !tbaa !9
  %643 = zext i32 %642 to i64
  %644 = add i64 %643, 8
  %645 = call i32 @i32_load(ptr noundef %641, i64 noundef %644)
  store i32 %645, ptr %21, align 4, !tbaa !9
  %646 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %646, ptr %13, align 4, !tbaa !9
  br label %647

647:                                              ; preds = %635, %634, %254, %189
  %648 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %648, ptr %21, align 4, !tbaa !9
  %649 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %649, ptr %22, align 4, !tbaa !9
  %650 = load ptr, ptr %4, align 8, !tbaa !5
  %651 = getelementptr inbounds %struct.w2c_hermes, ptr %650, i32 0, i32 6
  %652 = load i32, ptr %21, align 4, !tbaa !9
  %653 = zext i32 %652 to i64
  %654 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %651, i64 noundef %653, i32 noundef %654)
  %655 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %655, ptr %21, align 4, !tbaa !9
  %656 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %656, ptr %22, align 4, !tbaa !9
  %657 = load ptr, ptr %4, align 8, !tbaa !5
  %658 = getelementptr inbounds %struct.w2c_hermes, ptr %657, i32 0, i32 6
  %659 = load i32, ptr %22, align 4, !tbaa !9
  %660 = zext i32 %659 to i64
  %661 = add i64 %660, 8
  %662 = call i32 @i32_load(ptr noundef %658, i64 noundef %661)
  store i32 %662, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %663 = load i32, ptr %23, align 4, !tbaa !9
  %664 = load i32, ptr %22, align 4, !tbaa !9
  %665 = add i32 %664, %663
  store i32 %665, ptr %22, align 4, !tbaa !9
  %666 = load ptr, ptr %4, align 8, !tbaa !5
  %667 = getelementptr inbounds %struct.w2c_hermes, ptr %666, i32 0, i32 6
  %668 = load i32, ptr %21, align 4, !tbaa !9
  %669 = zext i32 %668 to i64
  %670 = add i64 %669, 8
  %671 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %667, i64 noundef %670, i32 noundef %671)
  br label %1788

672:                                              ; preds = %105
  %673 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %673, ptr %21, align 4, !tbaa !9
  %674 = load ptr, ptr %4, align 8, !tbaa !5
  %675 = getelementptr inbounds %struct.w2c_hermes, ptr %674, i32 0, i32 6
  %676 = load i32, ptr %21, align 4, !tbaa !9
  %677 = zext i32 %676 to i64
  %678 = add i64 %677, 8
  %679 = call i32 @i32_load(ptr noundef %675, i64 noundef %678)
  store i32 %679, ptr %21, align 4, !tbaa !9
  %680 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %680, ptr %12, align 4, !tbaa !9
  %681 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %681, ptr %22, align 4, !tbaa !9
  %682 = load ptr, ptr %4, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.w2c_hermes, ptr %682, i32 0, i32 6
  %684 = load i32, ptr %22, align 4, !tbaa !9
  %685 = zext i32 %684 to i64
  %686 = add i64 %685, 4
  %687 = call i32 @i32_load(ptr noundef %683, i64 noundef %686)
  store i32 %687, ptr %22, align 4, !tbaa !9
  %688 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %688, ptr %7, align 4, !tbaa !9
  %689 = load i32, ptr %22, align 4, !tbaa !9
  %690 = load i32, ptr %21, align 4, !tbaa !9
  %691 = sub i32 %690, %689
  store i32 %691, ptr %21, align 4, !tbaa !9
  %692 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %692, ptr %18, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %693 = load i32, ptr %21, align 4, !tbaa !9
  %694 = load i32, ptr %22, align 4, !tbaa !9
  %695 = and i32 %694, 31
  %696 = ashr i32 %693, %695
  store i32 %696, ptr %21, align 4, !tbaa !9
  %697 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %697, ptr %19, align 4, !tbaa !9
  %698 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %698, ptr %22, align 4, !tbaa !9
  %699 = load ptr, ptr %4, align 8, !tbaa !5
  %700 = getelementptr inbounds %struct.w2c_hermes, ptr %699, i32 0, i32 6
  %701 = load i32, ptr %22, align 4, !tbaa !9
  %702 = zext i32 %701 to i64
  %703 = add i64 %702, 12
  %704 = call i32 @i32_load(ptr noundef %700, i64 noundef %703)
  store i32 %704, ptr %22, align 4, !tbaa !9
  %705 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %705, ptr %10, align 4, !tbaa !9
  %706 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %706, ptr %23, align 4, !tbaa !9
  %707 = load ptr, ptr %4, align 8, !tbaa !5
  %708 = getelementptr inbounds %struct.w2c_hermes, ptr %707, i32 0, i32 6
  %709 = load i32, ptr %23, align 4, !tbaa !9
  %710 = zext i32 %709 to i64
  %711 = call i32 @i32_load(ptr noundef %708, i64 noundef %710)
  store i32 %711, ptr %23, align 4, !tbaa !9
  %712 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %712, ptr %13, align 4, !tbaa !9
  %713 = load i32, ptr %23, align 4, !tbaa !9
  %714 = load i32, ptr %22, align 4, !tbaa !9
  %715 = sub i32 %714, %713
  store i32 %715, ptr %22, align 4, !tbaa !9
  %716 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %716, ptr %8, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %717 = load i32, ptr %22, align 4, !tbaa !9
  %718 = load i32, ptr %23, align 4, !tbaa !9
  %719 = and i32 %718, 31
  %720 = ashr i32 %717, %719
  store i32 %720, ptr %22, align 4, !tbaa !9
  %721 = load i32, ptr %21, align 4, !tbaa !9
  %722 = load i32, ptr %22, align 4, !tbaa !9
  %723 = icmp ult i32 %721, %722
  %724 = zext i1 %723 to i32
  store i32 %724, ptr %21, align 4, !tbaa !9
  %725 = load i32, ptr %21, align 4, !tbaa !9
  %726 = icmp ne i32 %725, 0
  br i1 %726, label %727, label %1304

727:                                              ; preds = %672
  %728 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %728, ptr %21, align 4, !tbaa !9
  %729 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %729, ptr %22, align 4, !tbaa !9
  %730 = load i32, ptr %21, align 4, !tbaa !9
  %731 = load i32, ptr %22, align 4, !tbaa !9
  %732 = icmp ne i32 %730, %731
  %733 = zext i1 %732 to i32
  store i32 %733, ptr %21, align 4, !tbaa !9
  %734 = load i32, ptr %21, align 4, !tbaa !9
  %735 = icmp ne i32 %734, 0
  br i1 %735, label %736, label %755

736:                                              ; preds = %727
  %737 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %737, ptr %21, align 4, !tbaa !9
  store i32 4096, ptr %22, align 4, !tbaa !9
  %738 = load ptr, ptr %4, align 8, !tbaa !5
  %739 = load i32, ptr %22, align 4, !tbaa !9
  %740 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %738, i32 noundef %739)
  store i32 %740, ptr %22, align 4, !tbaa !9
  %741 = load ptr, ptr %4, align 8, !tbaa !5
  %742 = getelementptr inbounds %struct.w2c_hermes, ptr %741, i32 0, i32 6
  %743 = load i32, ptr %21, align 4, !tbaa !9
  %744 = zext i32 %743 to i64
  %745 = add i64 %744, 12
  %746 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %742, i64 noundef %745, i32 noundef %746)
  %747 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %747, ptr %21, align 4, !tbaa !9
  %748 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %748, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %749 = load i32, ptr %23, align 4, !tbaa !9
  %750 = load i32, ptr %22, align 4, !tbaa !9
  %751 = add i32 %750, %749
  store i32 %751, ptr %22, align 4, !tbaa !9
  %752 = load ptr, ptr %4, align 8, !tbaa !5
  %753 = load i32, ptr %21, align 4, !tbaa !9
  %754 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_back0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %752, i32 noundef %753, i32 noundef %754)
  br label %1788

755:                                              ; preds = %727
  %756 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %756, ptr %21, align 4, !tbaa !9
  store i32 4096, ptr %22, align 4, !tbaa !9
  %757 = load ptr, ptr %4, align 8, !tbaa !5
  %758 = load i32, ptr %22, align 4, !tbaa !9
  %759 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %757, i32 noundef %758)
  store i32 %759, ptr %22, align 4, !tbaa !9
  %760 = load ptr, ptr %4, align 8, !tbaa !5
  %761 = getelementptr inbounds %struct.w2c_hermes, ptr %760, i32 0, i32 6
  %762 = load i32, ptr %21, align 4, !tbaa !9
  %763 = zext i32 %762 to i64
  %764 = add i64 %763, 12
  %765 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %761, i64 noundef %764, i32 noundef %765)
  %766 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %766, ptr %21, align 4, !tbaa !9
  %767 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %767, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %768 = load i32, ptr %23, align 4, !tbaa !9
  %769 = load i32, ptr %22, align 4, !tbaa !9
  %770 = add i32 %769, %768
  store i32 %770, ptr %22, align 4, !tbaa !9
  %771 = load ptr, ptr %4, align 8, !tbaa !5
  %772 = load i32, ptr %21, align 4, !tbaa !9
  %773 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %771, i32 noundef %772, i32 noundef %773)
  %774 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %774, ptr %21, align 4, !tbaa !9
  %775 = load ptr, ptr %4, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.w2c_hermes, ptr %775, i32 0, i32 6
  %777 = load i32, ptr %21, align 4, !tbaa !9
  %778 = zext i32 %777 to i64
  %779 = add i64 %778, 4
  %780 = call i32 @i32_load(ptr noundef %776, i64 noundef %779)
  store i32 %780, ptr %21, align 4, !tbaa !9
  %781 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %781, ptr %7, align 4, !tbaa !9
  %782 = load ptr, ptr %4, align 8, !tbaa !5
  %783 = getelementptr inbounds %struct.w2c_hermes, ptr %782, i32 0, i32 6
  %784 = load i32, ptr %21, align 4, !tbaa !9
  %785 = zext i32 %784 to i64
  %786 = call i32 @i32_load(ptr noundef %783, i64 noundef %785)
  store i32 %786, ptr %21, align 4, !tbaa !9
  %787 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %787, ptr %17, align 4, !tbaa !9
  %788 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %788, ptr %21, align 4, !tbaa !9
  %789 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %789, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %790 = load i32, ptr %23, align 4, !tbaa !9
  %791 = load i32, ptr %22, align 4, !tbaa !9
  %792 = add i32 %791, %790
  store i32 %792, ptr %22, align 4, !tbaa !9
  %793 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %793, ptr %12, align 4, !tbaa !9
  %794 = load ptr, ptr %4, align 8, !tbaa !5
  %795 = getelementptr inbounds %struct.w2c_hermes, ptr %794, i32 0, i32 6
  %796 = load i32, ptr %21, align 4, !tbaa !9
  %797 = zext i32 %796 to i64
  %798 = add i64 %797, 4
  %799 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %795, i64 noundef %798, i32 noundef %799)
  %800 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %800, ptr %21, align 4, !tbaa !9
  %801 = load ptr, ptr %4, align 8, !tbaa !5
  %802 = getelementptr inbounds %struct.w2c_hermes, ptr %801, i32 0, i32 6
  %803 = load i32, ptr %21, align 4, !tbaa !9
  %804 = zext i32 %803 to i64
  %805 = add i64 %804, 8
  %806 = call i32 @i32_load(ptr noundef %802, i64 noundef %805)
  store i32 %806, ptr %21, align 4, !tbaa !9
  %807 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %807, ptr %7, align 4, !tbaa !9
  %808 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %808, ptr %22, align 4, !tbaa !9
  %809 = load ptr, ptr %4, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.w2c_hermes, ptr %809, i32 0, i32 6
  %811 = load i32, ptr %22, 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 %22, align 4, !tbaa !9
  %815 = load i32, ptr %21, align 4, !tbaa !9
  %816 = load i32, ptr %22, align 4, !tbaa !9
  %817 = icmp ne i32 %815, %816
  %818 = zext i1 %817 to i32
  store i32 %818, ptr %21, align 4, !tbaa !9
  %819 = load i32, ptr %21, align 4, !tbaa !9
  %820 = icmp ne i32 %819, 0
  br i1 %820, label %821, label %824

821:                                              ; preds = %755
  %822 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %822, ptr %21, align 4, !tbaa !9
  %823 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %823, ptr %13, align 4, !tbaa !9
  br label %1279

824:                                              ; preds = %755
  %825 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %825, ptr %21, align 4, !tbaa !9
  %826 = load ptr, ptr %4, align 8, !tbaa !5
  %827 = getelementptr inbounds %struct.w2c_hermes, ptr %826, i32 0, i32 6
  %828 = load i32, ptr %21, align 4, !tbaa !9
  %829 = zext i32 %828 to i64
  %830 = call i32 @i32_load(ptr noundef %827, i64 noundef %829)
  store i32 %830, ptr %21, align 4, !tbaa !9
  %831 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %831, ptr %14, align 4, !tbaa !9
  %832 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %832, ptr %22, align 4, !tbaa !9
  %833 = load i32, ptr %21, align 4, !tbaa !9
  %834 = load i32, ptr %22, align 4, !tbaa !9
  %835 = icmp ult i32 %833, %834
  %836 = zext i1 %835 to i32
  store i32 %836, ptr %21, align 4, !tbaa !9
  %837 = load i32, ptr %21, align 4, !tbaa !9
  %838 = icmp ne i32 %837, 0
  br i1 %838, label %839, label %937

839:                                              ; preds = %824
  %840 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %840, ptr %21, align 4, !tbaa !9
  %841 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %841, ptr %22, align 4, !tbaa !9
  %842 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %842, ptr %23, align 4, !tbaa !9
  %843 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %843, ptr %24, align 4, !tbaa !9
  %844 = load i32, ptr %24, align 4, !tbaa !9
  %845 = load i32, ptr %23, align 4, !tbaa !9
  %846 = sub i32 %845, %844
  store i32 %846, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %847 = load i32, ptr %23, align 4, !tbaa !9
  %848 = load i32, ptr %24, align 4, !tbaa !9
  %849 = and i32 %848, 31
  %850 = ashr i32 %847, %849
  store i32 %850, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %851 = load i32, ptr %24, align 4, !tbaa !9
  %852 = load i32, ptr %23, align 4, !tbaa !9
  %853 = add i32 %852, %851
  store i32 %853, ptr %23, align 4, !tbaa !9
  store i32 -2, ptr %24, align 4, !tbaa !9
  %854 = load i32, ptr %24, align 4, !tbaa !9
  %855 = icmp eq i32 %854, 0
  %856 = xor i1 %855, true
  %857 = xor i1 %856, true
  %858 = zext i1 %857 to i32
  %859 = sext i32 %858 to i64
  %860 = call i64 @llvm.expect.i64(i64 %859, i64 0)
  %861 = icmp ne i64 %860, 0
  br i1 %861, label %862, label %864

862:                                              ; preds = %839
  call void @wasm_rt_trap(i32 noundef 3) #8
  unreachable

863:                                              ; No predecessors!
  br label %886

864:                                              ; preds = %839
  %865 = load i32, ptr %23, align 4, !tbaa !9
  %866 = icmp eq i32 %865, -2147483648
  br i1 %866, label %867, label %870

867:                                              ; preds = %864
  %868 = load i32, ptr %24, align 4, !tbaa !9
  %869 = icmp eq i32 %868, -1
  br label %870

870:                                              ; preds = %867, %864
  %871 = phi i1 [ false, %864 ], [ %869, %867 ]
  %872 = xor i1 %871, true
  %873 = xor i1 %872, true
  %874 = zext i1 %873 to i32
  %875 = sext i32 %874 to i64
  %876 = call i64 @llvm.expect.i64(i64 %875, i64 0)
  %877 = icmp ne i64 %876, 0
  br i1 %877, label %878, label %880

878:                                              ; preds = %870
  call void @wasm_rt_trap(i32 noundef 2) #8
  unreachable

879:                                              ; No predecessors!
  br label %884

880:                                              ; preds = %870
  %881 = load i32, ptr %23, align 4, !tbaa !9
  %882 = load i32, ptr %24, align 4, !tbaa !9
  %883 = sdiv i32 %881, %882
  br label %884

884:                                              ; preds = %880, %879
  %885 = phi i32 [ 0, %879 ], [ %883, %880 ]
  br label %886

886:                                              ; preds = %884, %863
  %887 = phi i32 [ 0, %863 ], [ %885, %884 ]
  store i32 %887, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %888 = load i32, ptr %24, align 4, !tbaa !9
  %889 = and i32 %888, 31
  %890 = load i32, ptr %23, align 4, !tbaa !9
  %891 = shl i32 %890, %889
  store i32 %891, ptr %23, align 4, !tbaa !9
  %892 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %892, ptr %8, align 4, !tbaa !9
  %893 = load i32, ptr %23, align 4, !tbaa !9
  %894 = load i32, ptr %22, align 4, !tbaa !9
  %895 = add i32 %894, %893
  store i32 %895, ptr %22, align 4, !tbaa !9
  %896 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %896, ptr %23, align 4, !tbaa !9
  %897 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %897, ptr %24, align 4, !tbaa !9
  %898 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %898, ptr %25, align 4, !tbaa !9
  %899 = load i32, ptr %25, align 4, !tbaa !9
  %900 = load i32, ptr %24, align 4, !tbaa !9
  %901 = sub i32 %900, %899
  store i32 %901, ptr %24, align 4, !tbaa !9
  %902 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %902, ptr %7, align 4, !tbaa !9
  %903 = load ptr, ptr %4, align 8, !tbaa !5
  %904 = load i32, ptr %22, align 4, !tbaa !9
  %905 = load i32, ptr %23, align 4, !tbaa !9
  %906 = load i32, ptr %24, align 4, !tbaa !9
  %907 = call i32 @w2c_hermes_memmove(ptr noundef %903, i32 noundef %904, i32 noundef %905, i32 noundef %906)
  store i32 %907, ptr %22, align 4, !tbaa !9
  %908 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %908, ptr %23, align 4, !tbaa !9
  %909 = load i32, ptr %23, align 4, !tbaa !9
  %910 = load i32, ptr %22, align 4, !tbaa !9
  %911 = add i32 %910, %909
  store i32 %911, ptr %22, align 4, !tbaa !9
  %912 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %912, ptr %13, align 4, !tbaa !9
  %913 = load ptr, ptr %4, align 8, !tbaa !5
  %914 = getelementptr inbounds %struct.w2c_hermes, ptr %913, i32 0, i32 6
  %915 = load i32, ptr %21, align 4, !tbaa !9
  %916 = zext i32 %915 to i64
  %917 = add i64 %916, 8
  %918 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %914, i64 noundef %917, i32 noundef %918)
  %919 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %919, ptr %21, align 4, !tbaa !9
  %920 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %920, ptr %22, align 4, !tbaa !9
  %921 = load ptr, ptr %4, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.w2c_hermes, ptr %921, i32 0, i32 6
  %923 = load i32, ptr %22, align 4, !tbaa !9
  %924 = zext i32 %923 to i64
  %925 = add i64 %924, 4
  %926 = call i32 @i32_load(ptr noundef %922, i64 noundef %925)
  store i32 %926, ptr %22, align 4, !tbaa !9
  %927 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %927, ptr %23, align 4, !tbaa !9
  %928 = load i32, ptr %23, align 4, !tbaa !9
  %929 = load i32, ptr %22, align 4, !tbaa !9
  %930 = add i32 %929, %928
  store i32 %930, ptr %22, align 4, !tbaa !9
  %931 = load ptr, ptr %4, align 8, !tbaa !5
  %932 = getelementptr inbounds %struct.w2c_hermes, ptr %931, i32 0, i32 6
  %933 = load i32, ptr %21, align 4, !tbaa !9
  %934 = zext i32 %933 to i64
  %935 = add i64 %934, 4
  %936 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %932, i64 noundef %935, i32 noundef %936)
  br label %1279

937:                                              ; preds = %824
  store i32 1, ptr %21, align 4, !tbaa !9
  %938 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %938, ptr %22, align 4, !tbaa !9
  %939 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %939, ptr %23, align 4, !tbaa !9
  %940 = load i32, ptr %23, align 4, !tbaa !9
  %941 = load i32, ptr %22, align 4, !tbaa !9
  %942 = sub i32 %941, %940
  store i32 %942, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %943 = load i32, ptr %22, align 4, !tbaa !9
  %944 = load i32, ptr %23, align 4, !tbaa !9
  %945 = and i32 %944, 31
  %946 = ashr i32 %943, %945
  store i32 %946, ptr %22, align 4, !tbaa !9
  %947 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %947, ptr %23, align 4, !tbaa !9
  %948 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %948, ptr %24, align 4, !tbaa !9
  %949 = load i32, ptr %23, align 4, !tbaa !9
  %950 = load i32, ptr %24, align 4, !tbaa !9
  %951 = icmp eq i32 %949, %950
  %952 = zext i1 %951 to i32
  store i32 %952, ptr %23, align 4, !tbaa !9
  %953 = load i32, ptr %23, align 4, !tbaa !9
  %954 = icmp ne i32 %953, 0
  br i1 %954, label %955, label %957

955:                                              ; preds = %937
  %956 = load i32, ptr %21, align 4, !tbaa !9
  br label %959

957:                                              ; preds = %937
  %958 = load i32, ptr %22, align 4, !tbaa !9
  br label %959

959:                                              ; preds = %957, %955
  %960 = phi i32 [ %956, %955 ], [ %958, %957 ]
  store i32 %960, ptr %21, align 4, !tbaa !9
  %961 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %961, ptr %13, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %962 = load i32, ptr %21, align 4, !tbaa !9
  %963 = load i32, ptr %22, align 4, !tbaa !9
  %964 = icmp uge i32 %962, %963
  %965 = zext i1 %964 to i32
  store i32 %965, ptr %21, align 4, !tbaa !9
  %966 = load i32, ptr %21, align 4, !tbaa !9
  %967 = icmp ne i32 %966, 0
  br i1 %967, label %968, label %969

968:                                              ; preds = %959
  br label %1796

969:                                              ; preds = %959
  %970 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %970, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %971 = load i32, ptr %22, align 4, !tbaa !9
  %972 = and i32 %971, 31
  %973 = load i32, ptr %21, align 4, !tbaa !9
  %974 = shl i32 %973, %972
  store i32 %974, ptr %21, align 4, !tbaa !9
  %975 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %975, ptr %8, align 4, !tbaa !9
  %976 = load ptr, ptr %4, align 8, !tbaa !5
  %977 = load i32, ptr %21, align 4, !tbaa !9
  %978 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %976, i32 noundef %977)
  store i32 %978, ptr %21, align 4, !tbaa !9
  %979 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %979, ptr %19, align 4, !tbaa !9
  %980 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %980, ptr %22, align 4, !tbaa !9
  %981 = load i32, ptr %22, align 4, !tbaa !9
  %982 = load i32, ptr %21, align 4, !tbaa !9
  %983 = add i32 %982, %981
  store i32 %983, ptr %21, align 4, !tbaa !9
  %984 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %984, ptr %18, align 4, !tbaa !9
  %985 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %985, ptr %21, align 4, !tbaa !9
  %986 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %986, ptr %22, align 4, !tbaa !9
  store i32 -4, ptr %23, align 4, !tbaa !9
  %987 = load i32, ptr %23, align 4, !tbaa !9
  %988 = load i32, ptr %22, align 4, !tbaa !9
  %989 = and i32 %988, %987
  store i32 %989, ptr %22, align 4, !tbaa !9
  %990 = load i32, ptr %22, align 4, !tbaa !9
  %991 = load i32, ptr %21, align 4, !tbaa !9
  %992 = add i32 %991, %990
  store i32 %992, ptr %21, align 4, !tbaa !9
  %993 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %993, ptr %8, align 4, !tbaa !9
  %994 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %994, ptr %13, align 4, !tbaa !9
  %995 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %995, ptr %21, align 4, !tbaa !9
  %996 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %996, ptr %22, align 4, !tbaa !9
  %997 = load i32, ptr %21, align 4, !tbaa !9
  %998 = load i32, ptr %22, align 4, !tbaa !9
  %999 = icmp eq i32 %997, %998
  %1000 = zext i1 %999 to i32
  store i32 %1000, ptr %21, align 4, !tbaa !9
  %1001 = load i32, ptr %21, align 4, !tbaa !9
  %1002 = icmp ne i32 %1001, 0
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %969
  br label %1227

1004:                                             ; preds = %969
  %1005 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1005, ptr %21, align 4, !tbaa !9
  %1006 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1006, ptr %22, align 4, !tbaa !9
  %1007 = load i32, ptr %22, align 4, !tbaa !9
  %1008 = load i32, ptr %21, align 4, !tbaa !9
  %1009 = sub i32 %1008, %1007
  store i32 %1009, ptr %21, align 4, !tbaa !9
  %1010 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1010, ptr %7, align 4, !tbaa !9
  store i32 -4, ptr %22, align 4, !tbaa !9
  %1011 = load i32, ptr %22, align 4, !tbaa !9
  %1012 = load i32, ptr %21, align 4, !tbaa !9
  %1013 = and i32 %1012, %1011
  store i32 %1013, ptr %21, align 4, !tbaa !9
  %1014 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1014, ptr %15, align 4, !tbaa !9
  %1015 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1015, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %1016 = load i32, ptr %22, align 4, !tbaa !9
  %1017 = load i32, ptr %21, align 4, !tbaa !9
  %1018 = sub i32 %1017, %1016
  store i32 %1018, ptr %21, align 4, !tbaa !9
  %1019 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1019, ptr %16, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %1020 = load i32, ptr %22, align 4, !tbaa !9
  %1021 = and i32 %1020, 31
  %1022 = load i32, ptr %21, align 4, !tbaa !9
  %1023 = lshr i32 %1022, %1021
  store i32 %1023, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %1024 = load i32, ptr %22, align 4, !tbaa !9
  %1025 = load i32, ptr %21, align 4, !tbaa !9
  %1026 = add i32 %1025, %1024
  store i32 %1026, ptr %21, align 4, !tbaa !9
  store i32 7, ptr %22, align 4, !tbaa !9
  %1027 = load i32, ptr %22, align 4, !tbaa !9
  %1028 = load i32, ptr %21, align 4, !tbaa !9
  %1029 = and i32 %1028, %1027
  store i32 %1029, ptr %21, align 4, !tbaa !9
  %1030 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1030, ptr %10, align 4, !tbaa !9
  %1031 = load i32, ptr %21, align 4, !tbaa !9
  %1032 = icmp ne i32 %1031, 0
  %1033 = xor i1 %1032, true
  %1034 = zext i1 %1033 to i32
  store i32 %1034, ptr %21, align 4, !tbaa !9
  %1035 = load i32, ptr %21, align 4, !tbaa !9
  %1036 = icmp ne i32 %1035, 0
  br i1 %1036, label %1037, label %1040

1037:                                             ; preds = %1004
  %1038 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1038, ptr %21, align 4, !tbaa !9
  %1039 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1039, ptr %7, align 4, !tbaa !9
  br label %1081

1040:                                             ; preds = %1004
  store i32 0, ptr %21, align 4, !tbaa !9
  %1041 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1041, ptr %13, align 4, !tbaa !9
  %1042 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1042, ptr %21, align 4, !tbaa !9
  %1043 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1043, ptr %7, align 4, !tbaa !9
  br label %1044

1044:                                             ; preds = %1079, %1040
  %1045 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1045, ptr %21, align 4, !tbaa !9
  %1046 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1046, ptr %22, align 4, !tbaa !9
  %1047 = load ptr, ptr %4, align 8, !tbaa !5
  %1048 = getelementptr inbounds %struct.w2c_hermes, ptr %1047, i32 0, i32 6
  %1049 = load i32, ptr %22, align 4, !tbaa !9
  %1050 = zext i32 %1049 to i64
  %1051 = call i32 @i32_load(ptr noundef %1048, i64 noundef %1050)
  store i32 %1051, ptr %22, align 4, !tbaa !9
  %1052 = load ptr, ptr %4, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.w2c_hermes, ptr %1052, i32 0, i32 6
  %1054 = load i32, ptr %21, align 4, !tbaa !9
  %1055 = zext i32 %1054 to i64
  %1056 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1053, i64 noundef %1055, i32 noundef %1056)
  %1057 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1057, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %1058 = load i32, ptr %22, align 4, !tbaa !9
  %1059 = load i32, ptr %21, align 4, !tbaa !9
  %1060 = add i32 %1059, %1058
  store i32 %1060, ptr %21, align 4, !tbaa !9
  %1061 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1061, ptr %12, align 4, !tbaa !9
  %1062 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1062, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %1063 = load i32, ptr %22, align 4, !tbaa !9
  %1064 = load i32, ptr %21, align 4, !tbaa !9
  %1065 = add i32 %1064, %1063
  store i32 %1065, ptr %21, align 4, !tbaa !9
  %1066 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1066, ptr %7, align 4, !tbaa !9
  %1067 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1067, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %1068 = load i32, ptr %22, align 4, !tbaa !9
  %1069 = load i32, ptr %21, align 4, !tbaa !9
  %1070 = add i32 %1069, %1068
  store i32 %1070, ptr %21, align 4, !tbaa !9
  %1071 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1071, ptr %13, align 4, !tbaa !9
  %1072 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1072, ptr %22, align 4, !tbaa !9
  %1073 = load i32, ptr %21, align 4, !tbaa !9
  %1074 = load i32, ptr %22, align 4, !tbaa !9
  %1075 = icmp ne i32 %1073, %1074
  %1076 = zext i1 %1075 to i32
  store i32 %1076, ptr %21, align 4, !tbaa !9
  %1077 = load i32, ptr %21, align 4, !tbaa !9
  %1078 = icmp ne i32 %1077, 0
  br i1 %1078, label %1079, label %1080

1079:                                             ; preds = %1044
  br label %1044

1080:                                             ; preds = %1044
  br label %1081

1081:                                             ; preds = %1080, %1037
  %1082 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1082, ptr %21, align 4, !tbaa !9
  %1083 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1083, ptr %22, align 4, !tbaa !9
  %1084 = load i32, ptr %22, align 4, !tbaa !9
  %1085 = load i32, ptr %21, align 4, !tbaa !9
  %1086 = add i32 %1085, %1084
  store i32 %1086, ptr %21, align 4, !tbaa !9
  %1087 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1087, ptr %13, align 4, !tbaa !9
  %1088 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1088, ptr %21, align 4, !tbaa !9
  store i32 28, ptr %22, align 4, !tbaa !9
  %1089 = load i32, ptr %21, align 4, !tbaa !9
  %1090 = load i32, ptr %22, align 4, !tbaa !9
  %1091 = icmp ult i32 %1089, %1090
  %1092 = zext i1 %1091 to i32
  store i32 %1092, ptr %21, align 4, !tbaa !9
  %1093 = load i32, ptr %21, align 4, !tbaa !9
  %1094 = icmp ne i32 %1093, 0
  br i1 %1094, label %1095, label %1096

1095:                                             ; preds = %1081
  br label %1227

1096:                                             ; preds = %1081
  br label %1097

1097:                                             ; preds = %1225, %1096
  %1098 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1098, ptr %21, align 4, !tbaa !9
  %1099 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1099, ptr %22, align 4, !tbaa !9
  %1100 = load ptr, ptr %4, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.w2c_hermes, ptr %1100, i32 0, i32 6
  %1102 = load i32, ptr %22, align 4, !tbaa !9
  %1103 = zext i32 %1102 to i64
  %1104 = call i32 @i32_load(ptr noundef %1101, i64 noundef %1103)
  store i32 %1104, ptr %22, align 4, !tbaa !9
  %1105 = load ptr, ptr %4, align 8, !tbaa !5
  %1106 = getelementptr inbounds %struct.w2c_hermes, ptr %1105, i32 0, i32 6
  %1107 = load i32, ptr %21, align 4, !tbaa !9
  %1108 = zext i32 %1107 to i64
  %1109 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1106, i64 noundef %1108, i32 noundef %1109)
  %1110 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1110, ptr %21, align 4, !tbaa !9
  %1111 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1111, ptr %22, align 4, !tbaa !9
  %1112 = load ptr, ptr %4, align 8, !tbaa !5
  %1113 = getelementptr inbounds %struct.w2c_hermes, ptr %1112, i32 0, i32 6
  %1114 = load i32, ptr %22, align 4, !tbaa !9
  %1115 = zext i32 %1114 to i64
  %1116 = add i64 %1115, 4
  %1117 = call i32 @i32_load(ptr noundef %1113, i64 noundef %1116)
  store i32 %1117, ptr %22, align 4, !tbaa !9
  %1118 = load ptr, ptr %4, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.w2c_hermes, ptr %1118, i32 0, i32 6
  %1120 = load i32, ptr %21, align 4, !tbaa !9
  %1121 = zext i32 %1120 to i64
  %1122 = add i64 %1121, 4
  %1123 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1119, i64 noundef %1122, i32 noundef %1123)
  %1124 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1124, ptr %21, align 4, !tbaa !9
  %1125 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1125, ptr %22, align 4, !tbaa !9
  %1126 = load ptr, ptr %4, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.w2c_hermes, ptr %1126, i32 0, i32 6
  %1128 = load i32, ptr %22, align 4, !tbaa !9
  %1129 = zext i32 %1128 to i64
  %1130 = add i64 %1129, 8
  %1131 = call i32 @i32_load(ptr noundef %1127, i64 noundef %1130)
  store i32 %1131, ptr %22, align 4, !tbaa !9
  %1132 = load ptr, ptr %4, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.w2c_hermes, ptr %1132, i32 0, i32 6
  %1134 = load i32, ptr %21, align 4, !tbaa !9
  %1135 = zext i32 %1134 to i64
  %1136 = add i64 %1135, 8
  %1137 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1133, i64 noundef %1136, i32 noundef %1137)
  %1138 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1138, ptr %21, align 4, !tbaa !9
  %1139 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1139, ptr %22, align 4, !tbaa !9
  %1140 = load ptr, ptr %4, align 8, !tbaa !5
  %1141 = getelementptr inbounds %struct.w2c_hermes, ptr %1140, i32 0, i32 6
  %1142 = load i32, ptr %22, align 4, !tbaa !9
  %1143 = zext i32 %1142 to i64
  %1144 = add i64 %1143, 12
  %1145 = call i32 @i32_load(ptr noundef %1141, i64 noundef %1144)
  store i32 %1145, ptr %22, align 4, !tbaa !9
  %1146 = load ptr, ptr %4, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.w2c_hermes, ptr %1146, i32 0, i32 6
  %1148 = load i32, ptr %21, align 4, !tbaa !9
  %1149 = zext i32 %1148 to i64
  %1150 = add i64 %1149, 12
  %1151 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1147, i64 noundef %1150, i32 noundef %1151)
  %1152 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1152, ptr %21, align 4, !tbaa !9
  %1153 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1153, ptr %22, align 4, !tbaa !9
  %1154 = load ptr, ptr %4, align 8, !tbaa !5
  %1155 = getelementptr inbounds %struct.w2c_hermes, ptr %1154, i32 0, i32 6
  %1156 = load i32, ptr %22, align 4, !tbaa !9
  %1157 = zext i32 %1156 to i64
  %1158 = add i64 %1157, 16
  %1159 = call i32 @i32_load(ptr noundef %1155, i64 noundef %1158)
  store i32 %1159, ptr %22, align 4, !tbaa !9
  %1160 = load ptr, ptr %4, align 8, !tbaa !5
  %1161 = getelementptr inbounds %struct.w2c_hermes, ptr %1160, i32 0, i32 6
  %1162 = load i32, ptr %21, align 4, !tbaa !9
  %1163 = zext i32 %1162 to i64
  %1164 = add i64 %1163, 16
  %1165 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1161, i64 noundef %1164, i32 noundef %1165)
  %1166 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1166, ptr %21, align 4, !tbaa !9
  %1167 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1167, ptr %22, align 4, !tbaa !9
  %1168 = load ptr, ptr %4, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.w2c_hermes, ptr %1168, i32 0, i32 6
  %1170 = load i32, ptr %22, align 4, !tbaa !9
  %1171 = zext i32 %1170 to i64
  %1172 = add i64 %1171, 20
  %1173 = call i32 @i32_load(ptr noundef %1169, i64 noundef %1172)
  store i32 %1173, ptr %22, align 4, !tbaa !9
  %1174 = load ptr, ptr %4, align 8, !tbaa !5
  %1175 = getelementptr inbounds %struct.w2c_hermes, ptr %1174, i32 0, i32 6
  %1176 = load i32, ptr %21, align 4, !tbaa !9
  %1177 = zext i32 %1176 to i64
  %1178 = add i64 %1177, 20
  %1179 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1175, i64 noundef %1178, i32 noundef %1179)
  %1180 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1180, ptr %21, align 4, !tbaa !9
  %1181 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1181, ptr %22, align 4, !tbaa !9
  %1182 = load ptr, ptr %4, align 8, !tbaa !5
  %1183 = getelementptr inbounds %struct.w2c_hermes, ptr %1182, i32 0, i32 6
  %1184 = load i32, ptr %22, align 4, !tbaa !9
  %1185 = zext i32 %1184 to i64
  %1186 = add i64 %1185, 24
  %1187 = call i32 @i32_load(ptr noundef %1183, i64 noundef %1186)
  store i32 %1187, ptr %22, align 4, !tbaa !9
  %1188 = load ptr, ptr %4, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.w2c_hermes, ptr %1188, i32 0, i32 6
  %1190 = load i32, ptr %21, align 4, !tbaa !9
  %1191 = zext i32 %1190 to i64
  %1192 = add i64 %1191, 24
  %1193 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1189, i64 noundef %1192, i32 noundef %1193)
  %1194 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1194, ptr %21, align 4, !tbaa !9
  %1195 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1195, ptr %22, align 4, !tbaa !9
  %1196 = load ptr, ptr %4, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.w2c_hermes, ptr %1196, i32 0, i32 6
  %1198 = load i32, ptr %22, align 4, !tbaa !9
  %1199 = zext i32 %1198 to i64
  %1200 = add i64 %1199, 28
  %1201 = call i32 @i32_load(ptr noundef %1197, i64 noundef %1200)
  store i32 %1201, ptr %22, align 4, !tbaa !9
  %1202 = load ptr, ptr %4, align 8, !tbaa !5
  %1203 = getelementptr inbounds %struct.w2c_hermes, ptr %1202, i32 0, i32 6
  %1204 = load i32, ptr %21, align 4, !tbaa !9
  %1205 = zext i32 %1204 to i64
  %1206 = add i64 %1205, 28
  %1207 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1203, i64 noundef %1206, i32 noundef %1207)
  %1208 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1208, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %1209 = load i32, ptr %22, align 4, !tbaa !9
  %1210 = load i32, ptr %21, align 4, !tbaa !9
  %1211 = add i32 %1210, %1209
  store i32 %1211, ptr %21, align 4, !tbaa !9
  %1212 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1212, ptr %12, align 4, !tbaa !9
  %1213 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1213, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %1214 = load i32, ptr %22, align 4, !tbaa !9
  %1215 = load i32, ptr %21, align 4, !tbaa !9
  %1216 = add i32 %1215, %1214
  store i32 %1216, ptr %21, align 4, !tbaa !9
  %1217 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1217, ptr %7, align 4, !tbaa !9
  %1218 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1218, ptr %22, align 4, !tbaa !9
  %1219 = load i32, ptr %21, align 4, !tbaa !9
  %1220 = load i32, ptr %22, align 4, !tbaa !9
  %1221 = icmp ne i32 %1219, %1220
  %1222 = zext i1 %1221 to i32
  store i32 %1222, ptr %21, align 4, !tbaa !9
  %1223 = load i32, ptr %21, align 4, !tbaa !9
  %1224 = icmp ne i32 %1223, 0
  br i1 %1224, label %1225, label %1226

1225:                                             ; preds = %1097
  br label %1097

1226:                                             ; preds = %1097
  br label %1227

1227:                                             ; preds = %1226, %1095, %1003
  %1228 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1228, ptr %21, align 4, !tbaa !9
  %1229 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1229, ptr %22, align 4, !tbaa !9
  %1230 = load ptr, ptr %4, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.w2c_hermes, ptr %1230, i32 0, i32 6
  %1232 = load i32, ptr %21, align 4, !tbaa !9
  %1233 = zext i32 %1232 to i64
  %1234 = add i64 %1233, 12
  %1235 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1231, i64 noundef %1234, i32 noundef %1235)
  %1236 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1236, ptr %21, align 4, !tbaa !9
  %1237 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1237, ptr %22, align 4, !tbaa !9
  %1238 = load ptr, ptr %4, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.w2c_hermes, ptr %1238, i32 0, i32 6
  %1240 = load i32, ptr %21, align 4, !tbaa !9
  %1241 = zext i32 %1240 to i64
  %1242 = add i64 %1241, 8
  %1243 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1239, i64 noundef %1242, i32 noundef %1243)
  %1244 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1244, ptr %21, align 4, !tbaa !9
  %1245 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1245, ptr %22, align 4, !tbaa !9
  %1246 = load ptr, ptr %4, align 8, !tbaa !5
  %1247 = getelementptr inbounds %struct.w2c_hermes, ptr %1246, i32 0, i32 6
  %1248 = load i32, ptr %21, align 4, !tbaa !9
  %1249 = zext i32 %1248 to i64
  %1250 = add i64 %1249, 4
  %1251 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1247, i64 noundef %1250, i32 noundef %1251)
  %1252 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1252, ptr %21, align 4, !tbaa !9
  %1253 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1253, ptr %22, align 4, !tbaa !9
  %1254 = load ptr, ptr %4, align 8, !tbaa !5
  %1255 = getelementptr inbounds %struct.w2c_hermes, ptr %1254, i32 0, i32 6
  %1256 = load i32, ptr %21, align 4, !tbaa !9
  %1257 = zext i32 %1256 to i64
  %1258 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1255, i64 noundef %1257, i32 noundef %1258)
  %1259 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1259, ptr %21, align 4, !tbaa !9
  %1260 = load i32, ptr %21, align 4, !tbaa !9
  %1261 = icmp ne i32 %1260, 0
  %1262 = xor i1 %1261, true
  %1263 = zext i1 %1262 to i32
  store i32 %1263, ptr %21, align 4, !tbaa !9
  %1264 = load i32, ptr %21, align 4, !tbaa !9
  %1265 = icmp ne i32 %1264, 0
  br i1 %1265, label %1266, label %1267

1266:                                             ; preds = %1227
  br label %1279

1267:                                             ; preds = %1227
  %1268 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1268, ptr %21, align 4, !tbaa !9
  %1269 = load ptr, ptr %4, align 8, !tbaa !5
  %1270 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1269, i32 noundef %1270)
  %1271 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1271, ptr %21, align 4, !tbaa !9
  %1272 = load ptr, ptr %4, align 8, !tbaa !5
  %1273 = getelementptr inbounds %struct.w2c_hermes, ptr %1272, i32 0, i32 6
  %1274 = load i32, ptr %21, align 4, !tbaa !9
  %1275 = zext i32 %1274 to i64
  %1276 = add i64 %1275, 8
  %1277 = call i32 @i32_load(ptr noundef %1273, i64 noundef %1276)
  store i32 %1277, ptr %21, align 4, !tbaa !9
  %1278 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1278, ptr %13, align 4, !tbaa !9
  br label %1279

1279:                                             ; preds = %1267, %1266, %886, %821
  %1280 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1280, ptr %21, align 4, !tbaa !9
  %1281 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1281, ptr %22, align 4, !tbaa !9
  %1282 = load ptr, ptr %4, align 8, !tbaa !5
  %1283 = getelementptr inbounds %struct.w2c_hermes, ptr %1282, i32 0, i32 6
  %1284 = load i32, ptr %21, align 4, !tbaa !9
  %1285 = zext i32 %1284 to i64
  %1286 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1283, i64 noundef %1285, i32 noundef %1286)
  %1287 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1287, ptr %21, align 4, !tbaa !9
  %1288 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1288, ptr %22, align 4, !tbaa !9
  %1289 = load ptr, ptr %4, align 8, !tbaa !5
  %1290 = getelementptr inbounds %struct.w2c_hermes, ptr %1289, i32 0, i32 6
  %1291 = load i32, ptr %22, align 4, !tbaa !9
  %1292 = zext i32 %1291 to i64
  %1293 = add i64 %1292, 8
  %1294 = call i32 @i32_load(ptr noundef %1290, i64 noundef %1293)
  store i32 %1294, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %1295 = load i32, ptr %23, align 4, !tbaa !9
  %1296 = load i32, ptr %22, align 4, !tbaa !9
  %1297 = add i32 %1296, %1295
  store i32 %1297, ptr %22, align 4, !tbaa !9
  %1298 = load ptr, ptr %4, align 8, !tbaa !5
  %1299 = getelementptr inbounds %struct.w2c_hermes, ptr %1298, i32 0, i32 6
  %1300 = load i32, ptr %21, align 4, !tbaa !9
  %1301 = zext i32 %1300 to i64
  %1302 = add i64 %1301, 8
  %1303 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1299, i64 noundef %1302, i32 noundef %1303)
  br label %1788

1304:                                             ; preds = %672
  %1305 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1305, ptr %21, align 4, !tbaa !9
  %1306 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1306, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %1307 = load i32, ptr %23, align 4, !tbaa !9
  %1308 = load i32, ptr %22, align 4, !tbaa !9
  %1309 = add i32 %1308, %1307
  store i32 %1309, ptr %22, align 4, !tbaa !9
  %1310 = load ptr, ptr %4, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.w2c_hermes, ptr %1310, i32 0, i32 6
  %1312 = load i32, ptr %21, align 4, !tbaa !9
  %1313 = zext i32 %1312 to i64
  %1314 = add i64 %1313, 28
  %1315 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1311, i64 noundef %1314, i32 noundef %1315)
  store i32 1, ptr %21, align 4, !tbaa !9
  %1316 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1316, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1317 = load i32, ptr %22, align 4, !tbaa !9
  %1318 = load i32, ptr %23, align 4, !tbaa !9
  %1319 = and i32 %1318, 31
  %1320 = ashr i32 %1317, %1319
  store i32 %1320, ptr %22, align 4, !tbaa !9
  %1321 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1321, ptr %23, align 4, !tbaa !9
  %1322 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1322, ptr %24, align 4, !tbaa !9
  %1323 = load i32, ptr %23, align 4, !tbaa !9
  %1324 = load i32, ptr %24, align 4, !tbaa !9
  %1325 = icmp eq i32 %1323, %1324
  %1326 = zext i1 %1325 to i32
  store i32 %1326, ptr %23, align 4, !tbaa !9
  %1327 = load i32, ptr %23, align 4, !tbaa !9
  %1328 = icmp ne i32 %1327, 0
  br i1 %1328, label %1329, label %1331

1329:                                             ; preds = %1304
  %1330 = load i32, ptr %21, align 4, !tbaa !9
  br label %1333

1331:                                             ; preds = %1304
  %1332 = load i32, ptr %22, align 4, !tbaa !9
  br label %1333

1333:                                             ; preds = %1331, %1329
  %1334 = phi i32 [ %1330, %1329 ], [ %1332, %1331 ]
  store i32 %1334, ptr %21, align 4, !tbaa !9
  %1335 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1335, ptr %15, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %1336 = load i32, ptr %21, align 4, !tbaa !9
  %1337 = load i32, ptr %22, align 4, !tbaa !9
  %1338 = icmp uge i32 %1336, %1337
  %1339 = zext i1 %1338 to i32
  store i32 %1339, ptr %21, align 4, !tbaa !9
  %1340 = load i32, ptr %21, align 4, !tbaa !9
  %1341 = icmp ne i32 %1340, 0
  br i1 %1341, label %1342, label %1343

1342:                                             ; preds = %1333
  br label %1796

1343:                                             ; preds = %1333
  %1344 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1344, ptr %21, align 4, !tbaa !9
  %1345 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1345, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %1346 = load i32, ptr %23, align 4, !tbaa !9
  %1347 = and i32 %1346, 31
  %1348 = load i32, ptr %22, align 4, !tbaa !9
  %1349 = shl i32 %1348, %1347
  store i32 %1349, ptr %22, align 4, !tbaa !9
  %1350 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1350, ptr %8, align 4, !tbaa !9
  %1351 = load ptr, ptr %4, align 8, !tbaa !5
  %1352 = load i32, ptr %22, align 4, !tbaa !9
  %1353 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %1351, i32 noundef %1352)
  store i32 %1353, ptr %22, align 4, !tbaa !9
  %1354 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1354, ptr %10, align 4, !tbaa !9
  %1355 = load ptr, ptr %4, align 8, !tbaa !5
  %1356 = getelementptr inbounds %struct.w2c_hermes, ptr %1355, i32 0, i32 6
  %1357 = load i32, ptr %21, align 4, !tbaa !9
  %1358 = zext i32 %1357 to i64
  %1359 = add i64 %1358, 12
  %1360 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1356, i64 noundef %1359, i32 noundef %1360)
  %1361 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1361, ptr %21, align 4, !tbaa !9
  %1362 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1362, ptr %22, align 4, !tbaa !9
  %1363 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1363, ptr %23, align 4, !tbaa !9
  %1364 = load i32, ptr %23, align 4, !tbaa !9
  %1365 = load i32, ptr %22, align 4, !tbaa !9
  %1366 = add i32 %1365, %1364
  store i32 %1366, ptr %22, align 4, !tbaa !9
  %1367 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1367, ptr %17, align 4, !tbaa !9
  %1368 = load ptr, ptr %4, align 8, !tbaa !5
  %1369 = getelementptr inbounds %struct.w2c_hermes, ptr %1368, i32 0, i32 6
  %1370 = load i32, ptr %21, align 4, !tbaa !9
  %1371 = zext i32 %1370 to i64
  %1372 = add i64 %1371, 24
  %1373 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1369, i64 noundef %1372, i32 noundef %1373)
  %1374 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1374, ptr %21, align 4, !tbaa !9
  %1375 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1375, ptr %22, align 4, !tbaa !9
  %1376 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1376, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %1377 = load i32, ptr %24, align 4, !tbaa !9
  %1378 = and i32 %1377, 31
  %1379 = load i32, ptr %23, align 4, !tbaa !9
  %1380 = shl i32 %1379, %1378
  store i32 %1380, ptr %23, align 4, !tbaa !9
  %1381 = load i32, ptr %23, align 4, !tbaa !9
  %1382 = load i32, ptr %22, align 4, !tbaa !9
  %1383 = add i32 %1382, %1381
  store i32 %1383, ptr %22, align 4, !tbaa !9
  %1384 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1384, ptr %13, align 4, !tbaa !9
  %1385 = load ptr, ptr %4, align 8, !tbaa !5
  %1386 = getelementptr inbounds %struct.w2c_hermes, ptr %1385, i32 0, i32 6
  %1387 = load i32, ptr %21, align 4, !tbaa !9
  %1388 = zext i32 %1387 to i64
  %1389 = add i64 %1388, 16
  %1390 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1386, i64 noundef %1389, i32 noundef %1390)
  store i32 4096, ptr %21, align 4, !tbaa !9
  %1391 = load ptr, ptr %4, align 8, !tbaa !5
  %1392 = load i32, ptr %21, align 4, !tbaa !9
  %1393 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %1391, i32 noundef %1392)
  store i32 %1393, ptr %21, align 4, !tbaa !9
  %1394 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1394, ptr %16, align 4, !tbaa !9
  %1395 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1395, ptr %21, align 4, !tbaa !9
  %1396 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1396, ptr %22, align 4, !tbaa !9
  %1397 = load i32, ptr %21, align 4, !tbaa !9
  %1398 = load i32, ptr %22, align 4, !tbaa !9
  %1399 = icmp ne i32 %1397, %1398
  %1400 = zext i1 %1399 to i32
  store i32 %1400, ptr %21, align 4, !tbaa !9
  %1401 = load i32, ptr %21, align 4, !tbaa !9
  %1402 = icmp ne i32 %1401, 0
  br i1 %1402, label %1403, label %1404

1403:                                             ; preds = %1343
  br label %1563

1404:                                             ; preds = %1343
  %1405 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1405, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  %1406 = load i32, ptr %21, align 4, !tbaa !9
  %1407 = load i32, ptr %22, align 4, !tbaa !9
  %1408 = icmp sgt i32 %1406, %1407
  %1409 = zext i1 %1408 to i32
  store i32 %1409, ptr %21, align 4, !tbaa !9
  %1410 = load i32, ptr %21, align 4, !tbaa !9
  %1411 = icmp ne i32 %1410, 0
  br i1 %1411, label %1412, label %1467

1412:                                             ; preds = %1404
  %1413 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1413, ptr %21, align 4, !tbaa !9
  %1414 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1414, ptr %22, align 4, !tbaa !9
  %1415 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1415, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %1416 = load i32, ptr %24, align 4, !tbaa !9
  %1417 = load i32, ptr %23, align 4, !tbaa !9
  %1418 = add i32 %1417, %1416
  store i32 %1418, ptr %23, align 4, !tbaa !9
  store i32 -2, ptr %24, align 4, !tbaa !9
  %1419 = load i32, ptr %24, align 4, !tbaa !9
  %1420 = icmp eq i32 %1419, 0
  %1421 = xor i1 %1420, true
  %1422 = xor i1 %1421, true
  %1423 = zext i1 %1422 to i32
  %1424 = sext i32 %1423 to i64
  %1425 = call i64 @llvm.expect.i64(i64 %1424, i64 0)
  %1426 = icmp ne i64 %1425, 0
  br i1 %1426, label %1427, label %1429

1427:                                             ; preds = %1412
  call void @wasm_rt_trap(i32 noundef 3) #8
  unreachable

1428:                                             ; No predecessors!
  br label %1451

1429:                                             ; preds = %1412
  %1430 = load i32, ptr %23, align 4, !tbaa !9
  %1431 = icmp eq i32 %1430, -2147483648
  br i1 %1431, label %1432, label %1435

1432:                                             ; preds = %1429
  %1433 = load i32, ptr %24, align 4, !tbaa !9
  %1434 = icmp eq i32 %1433, -1
  br label %1435

1435:                                             ; preds = %1432, %1429
  %1436 = phi i1 [ false, %1429 ], [ %1434, %1432 ]
  %1437 = xor i1 %1436, true
  %1438 = xor i1 %1437, true
  %1439 = zext i1 %1438 to i32
  %1440 = sext i32 %1439 to i64
  %1441 = call i64 @llvm.expect.i64(i64 %1440, i64 0)
  %1442 = icmp ne i64 %1441, 0
  br i1 %1442, label %1443, label %1445

1443:                                             ; preds = %1435
  call void @wasm_rt_trap(i32 noundef 2) #8
  unreachable

1444:                                             ; No predecessors!
  br label %1449

1445:                                             ; preds = %1435
  %1446 = load i32, ptr %23, align 4, !tbaa !9
  %1447 = load i32, ptr %24, align 4, !tbaa !9
  %1448 = sdiv i32 %1446, %1447
  br label %1449

1449:                                             ; preds = %1445, %1444
  %1450 = phi i32 [ 0, %1444 ], [ %1448, %1445 ]
  br label %1451

1451:                                             ; preds = %1449, %1428
  %1452 = phi i32 [ 0, %1428 ], [ %1450, %1449 ]
  store i32 %1452, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %1453 = load i32, ptr %24, align 4, !tbaa !9
  %1454 = and i32 %1453, 31
  %1455 = load i32, ptr %23, align 4, !tbaa !9
  %1456 = shl i32 %1455, %1454
  store i32 %1456, ptr %23, align 4, !tbaa !9
  %1457 = load i32, ptr %23, align 4, !tbaa !9
  %1458 = load i32, ptr %22, align 4, !tbaa !9
  %1459 = add i32 %1458, %1457
  store i32 %1459, ptr %22, align 4, !tbaa !9
  %1460 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1460, ptr %13, align 4, !tbaa !9
  %1461 = load ptr, ptr %4, align 8, !tbaa !5
  %1462 = getelementptr inbounds %struct.w2c_hermes, ptr %1461, i32 0, i32 6
  %1463 = load i32, ptr %21, align 4, !tbaa !9
  %1464 = zext i32 %1463 to i64
  %1465 = add i64 %1464, 16
  %1466 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1462, i64 noundef %1465, i32 noundef %1466)
  br label %1563

1467:                                             ; preds = %1404
  store i32 1, ptr %21, align 4, !tbaa !9
  %1468 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1468, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1469 = load i32, ptr %22, align 4, !tbaa !9
  %1470 = load i32, ptr %23, align 4, !tbaa !9
  %1471 = and i32 %1470, 31
  %1472 = ashr i32 %1469, %1471
  store i32 %1472, ptr %22, align 4, !tbaa !9
  %1473 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1473, ptr %23, align 4, !tbaa !9
  %1474 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1474, ptr %24, align 4, !tbaa !9
  %1475 = load i32, ptr %23, align 4, !tbaa !9
  %1476 = load i32, ptr %24, align 4, !tbaa !9
  %1477 = icmp eq i32 %1475, %1476
  %1478 = zext i1 %1477 to i32
  store i32 %1478, ptr %23, align 4, !tbaa !9
  %1479 = load i32, ptr %23, align 4, !tbaa !9
  %1480 = icmp ne i32 %1479, 0
  br i1 %1480, label %1481, label %1483

1481:                                             ; preds = %1467
  %1482 = load i32, ptr %21, align 4, !tbaa !9
  br label %1485

1483:                                             ; preds = %1467
  %1484 = load i32, ptr %22, align 4, !tbaa !9
  br label %1485

1485:                                             ; preds = %1483, %1481
  %1486 = phi i32 [ %1482, %1481 ], [ %1484, %1483 ]
  store i32 %1486, ptr %21, align 4, !tbaa !9
  %1487 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1487, ptr %13, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %1488 = load i32, ptr %21, align 4, !tbaa !9
  %1489 = load i32, ptr %22, align 4, !tbaa !9
  %1490 = icmp uge i32 %1488, %1489
  %1491 = zext i1 %1490 to i32
  store i32 %1491, ptr %21, align 4, !tbaa !9
  %1492 = load i32, ptr %21, align 4, !tbaa !9
  %1493 = icmp ne i32 %1492, 0
  br i1 %1493, label %1494, label %1495

1494:                                             ; preds = %1485
  br label %1796

1495:                                             ; preds = %1485
  %1496 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1496, ptr %21, align 4, !tbaa !9
  %1497 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1497, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %1498 = load i32, ptr %23, align 4, !tbaa !9
  %1499 = and i32 %1498, 31
  %1500 = load i32, ptr %22, align 4, !tbaa !9
  %1501 = shl i32 %1500, %1499
  store i32 %1501, ptr %22, align 4, !tbaa !9
  %1502 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1502, ptr %7, align 4, !tbaa !9
  %1503 = load ptr, ptr %4, align 8, !tbaa !5
  %1504 = load i32, ptr %22, align 4, !tbaa !9
  %1505 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %1503, i32 noundef %1504)
  store i32 %1505, ptr %22, align 4, !tbaa !9
  %1506 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1506, ptr %8, align 4, !tbaa !9
  %1507 = load ptr, ptr %4, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.w2c_hermes, ptr %1507, i32 0, i32 6
  %1509 = load i32, ptr %21, align 4, !tbaa !9
  %1510 = zext i32 %1509 to i64
  %1511 = add i64 %1510, 12
  %1512 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1508, i64 noundef %1511, i32 noundef %1512)
  %1513 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1513, ptr %21, align 4, !tbaa !9
  %1514 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1514, ptr %22, align 4, !tbaa !9
  %1515 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1515, ptr %23, align 4, !tbaa !9
  %1516 = load i32, ptr %23, align 4, !tbaa !9
  %1517 = load i32, ptr %22, align 4, !tbaa !9
  %1518 = add i32 %1517, %1516
  store i32 %1518, ptr %22, align 4, !tbaa !9
  %1519 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1519, ptr %17, align 4, !tbaa !9
  %1520 = load ptr, ptr %4, align 8, !tbaa !5
  %1521 = getelementptr inbounds %struct.w2c_hermes, ptr %1520, i32 0, i32 6
  %1522 = load i32, ptr %21, align 4, !tbaa !9
  %1523 = zext i32 %1522 to i64
  %1524 = add i64 %1523, 24
  %1525 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1521, i64 noundef %1524, i32 noundef %1525)
  %1526 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1526, ptr %21, align 4, !tbaa !9
  %1527 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1527, ptr %22, align 4, !tbaa !9
  %1528 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1528, ptr %23, align 4, !tbaa !9
  store i32 -4, ptr %24, align 4, !tbaa !9
  %1529 = load i32, ptr %24, align 4, !tbaa !9
  %1530 = load i32, ptr %23, align 4, !tbaa !9
  %1531 = and i32 %1530, %1529
  store i32 %1531, ptr %23, align 4, !tbaa !9
  %1532 = load i32, ptr %23, align 4, !tbaa !9
  %1533 = load i32, ptr %22, align 4, !tbaa !9
  %1534 = add i32 %1533, %1532
  store i32 %1534, ptr %22, align 4, !tbaa !9
  %1535 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1535, ptr %13, align 4, !tbaa !9
  %1536 = load ptr, ptr %4, align 8, !tbaa !5
  %1537 = getelementptr inbounds %struct.w2c_hermes, ptr %1536, i32 0, i32 6
  %1538 = load i32, ptr %21, align 4, !tbaa !9
  %1539 = zext i32 %1538 to i64
  %1540 = add i64 %1539, 16
  %1541 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1537, i64 noundef %1540, i32 noundef %1541)
  %1542 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1542, ptr %21, align 4, !tbaa !9
  %1543 = load ptr, ptr %4, align 8, !tbaa !5
  %1544 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1543, i32 noundef %1544)
  %1545 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1545, ptr %21, align 4, !tbaa !9
  %1546 = load ptr, ptr %4, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.w2c_hermes, ptr %1546, i32 0, i32 6
  %1548 = load i32, ptr %21, align 4, !tbaa !9
  %1549 = zext i32 %1548 to i64
  %1550 = add i64 %1549, 4
  %1551 = call i32 @i32_load(ptr noundef %1547, i64 noundef %1550)
  store i32 %1551, ptr %21, align 4, !tbaa !9
  %1552 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1552, ptr %7, align 4, !tbaa !9
  %1553 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1553, ptr %21, align 4, !tbaa !9
  %1554 = load ptr, ptr %4, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.w2c_hermes, ptr %1554, i32 0, i32 6
  %1556 = load i32, ptr %21, align 4, !tbaa !9
  %1557 = zext i32 %1556 to i64
  %1558 = add i64 %1557, 8
  %1559 = call i32 @i32_load(ptr noundef %1555, i64 noundef %1558)
  store i32 %1559, ptr %21, align 4, !tbaa !9
  %1560 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1560, ptr %12, align 4, !tbaa !9
  %1561 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1561, ptr %21, align 4, !tbaa !9
  %1562 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1562, ptr %10, align 4, !tbaa !9
  br label %1563

1563:                                             ; preds = %1495, %1451, %1403
  %1564 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1564, ptr %21, align 4, !tbaa !9
  %1565 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1565, ptr %22, align 4, !tbaa !9
  %1566 = load ptr, ptr %4, align 8, !tbaa !5
  %1567 = getelementptr inbounds %struct.w2c_hermes, ptr %1566, i32 0, i32 6
  %1568 = load i32, ptr %21, align 4, !tbaa !9
  %1569 = zext i32 %1568 to i64
  %1570 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1567, i64 noundef %1569, i32 noundef %1570)
  %1571 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1571, ptr %21, align 4, !tbaa !9
  %1572 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1572, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %1573 = load i32, ptr %23, align 4, !tbaa !9
  %1574 = load i32, ptr %22, align 4, !tbaa !9
  %1575 = add i32 %1574, %1573
  store i32 %1575, ptr %22, align 4, !tbaa !9
  %1576 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1576, ptr %16, align 4, !tbaa !9
  %1577 = load ptr, ptr %4, align 8, !tbaa !5
  %1578 = getelementptr inbounds %struct.w2c_hermes, ptr %1577, i32 0, i32 6
  %1579 = load i32, ptr %21, align 4, !tbaa !9
  %1580 = zext i32 %1579 to i64
  %1581 = add i64 %1580, 20
  %1582 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1578, i64 noundef %1581, i32 noundef %1582)
  %1583 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1583, ptr %21, align 4, !tbaa !9
  %1584 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1584, ptr %8, align 4, !tbaa !9
  %1585 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1585, ptr %21, align 4, !tbaa !9
  %1586 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1586, ptr %22, align 4, !tbaa !9
  %1587 = load i32, ptr %21, align 4, !tbaa !9
  %1588 = load i32, ptr %22, align 4, !tbaa !9
  %1589 = icmp ne i32 %1587, %1588
  %1590 = zext i1 %1589 to i32
  store i32 %1590, ptr %21, align 4, !tbaa !9
  %1591 = load i32, ptr %21, align 4, !tbaa !9
  %1592 = icmp ne i32 %1591, 0
  br i1 %1592, label %1593, label %1665

1593:                                             ; preds = %1563
  br label %1594

1594:                                             ; preds = %1621, %1593
  %1595 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1595, ptr %21, align 4, !tbaa !9
  store i32 12, ptr %22, align 4, !tbaa !9
  %1596 = load i32, ptr %22, align 4, !tbaa !9
  %1597 = load i32, ptr %21, align 4, !tbaa !9
  %1598 = add i32 %1597, %1596
  store i32 %1598, ptr %21, align 4, !tbaa !9
  %1599 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1599, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %1600 = load i32, ptr %23, align 4, !tbaa !9
  %1601 = load i32, ptr %22, align 4, !tbaa !9
  %1602 = sub i32 %1601, %1600
  store i32 %1602, ptr %22, align 4, !tbaa !9
  %1603 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1603, ptr %12, align 4, !tbaa !9
  %1604 = load ptr, ptr %4, align 8, !tbaa !5
  %1605 = load i32, ptr %21, align 4, !tbaa !9
  %1606 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %1604, i32 noundef %1605, i32 noundef %1606)
  %1607 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1607, ptr %21, align 4, !tbaa !9
  %1608 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1608, ptr %22, align 4, !tbaa !9
  %1609 = load ptr, ptr %4, align 8, !tbaa !5
  %1610 = getelementptr inbounds %struct.w2c_hermes, ptr %1609, i32 0, i32 6
  %1611 = load i32, ptr %22, align 4, !tbaa !9
  %1612 = zext i32 %1611 to i64
  %1613 = add i64 %1612, 4
  %1614 = call i32 @i32_load(ptr noundef %1610, i64 noundef %1613)
  store i32 %1614, ptr %22, align 4, !tbaa !9
  %1615 = load i32, ptr %21, align 4, !tbaa !9
  %1616 = load i32, ptr %22, align 4, !tbaa !9
  %1617 = icmp ne i32 %1615, %1616
  %1618 = zext i1 %1617 to i32
  store i32 %1618, ptr %21, align 4, !tbaa !9
  %1619 = load i32, ptr %21, align 4, !tbaa !9
  %1620 = icmp ne i32 %1619, 0
  br i1 %1620, label %1621, label %1622

1621:                                             ; preds = %1594
  br label %1594

1622:                                             ; preds = %1594
  %1623 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1623, ptr %21, align 4, !tbaa !9
  %1624 = load ptr, ptr %4, align 8, !tbaa !5
  %1625 = getelementptr inbounds %struct.w2c_hermes, ptr %1624, i32 0, i32 6
  %1626 = load i32, ptr %21, align 4, !tbaa !9
  %1627 = zext i32 %1626 to i64
  %1628 = add i64 %1627, 24
  %1629 = call i32 @i32_load(ptr noundef %1625, i64 noundef %1628)
  store i32 %1629, ptr %21, align 4, !tbaa !9
  %1630 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1630, ptr %17, align 4, !tbaa !9
  %1631 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1631, ptr %21, align 4, !tbaa !9
  %1632 = load ptr, ptr %4, align 8, !tbaa !5
  %1633 = getelementptr inbounds %struct.w2c_hermes, ptr %1632, i32 0, i32 6
  %1634 = load i32, ptr %21, align 4, !tbaa !9
  %1635 = zext i32 %1634 to i64
  %1636 = add i64 %1635, 20
  %1637 = call i32 @i32_load(ptr noundef %1633, i64 noundef %1636)
  store i32 %1637, ptr %21, align 4, !tbaa !9
  %1638 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1638, ptr %16, align 4, !tbaa !9
  %1639 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1639, ptr %21, align 4, !tbaa !9
  %1640 = load ptr, ptr %4, align 8, !tbaa !5
  %1641 = getelementptr inbounds %struct.w2c_hermes, ptr %1640, i32 0, i32 6
  %1642 = load i32, ptr %21, align 4, !tbaa !9
  %1643 = zext i32 %1642 to i64
  %1644 = add i64 %1643, 16
  %1645 = call i32 @i32_load(ptr noundef %1641, i64 noundef %1644)
  store i32 %1645, ptr %21, align 4, !tbaa !9
  %1646 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1646, ptr %13, align 4, !tbaa !9
  %1647 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1647, ptr %21, align 4, !tbaa !9
  %1648 = load ptr, ptr %4, align 8, !tbaa !5
  %1649 = getelementptr inbounds %struct.w2c_hermes, ptr %1648, i32 0, i32 6
  %1650 = load i32, ptr %21, align 4, !tbaa !9
  %1651 = zext i32 %1650 to i64
  %1652 = add i64 %1651, 12
  %1653 = call i32 @i32_load(ptr noundef %1649, i64 noundef %1652)
  store i32 %1653, ptr %21, align 4, !tbaa !9
  %1654 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1654, ptr %10, align 4, !tbaa !9
  %1655 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1655, ptr %21, align 4, !tbaa !9
  %1656 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1656, ptr %8, align 4, !tbaa !9
  %1657 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1657, ptr %21, align 4, !tbaa !9
  %1658 = load ptr, ptr %4, align 8, !tbaa !5
  %1659 = getelementptr inbounds %struct.w2c_hermes, ptr %1658, i32 0, i32 6
  %1660 = load i32, ptr %21, align 4, !tbaa !9
  %1661 = zext i32 %1660 to i64
  %1662 = add i64 %1661, 8
  %1663 = call i32 @i32_load(ptr noundef %1659, i64 noundef %1662)
  store i32 %1663, ptr %21, align 4, !tbaa !9
  %1664 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1664, ptr %7, align 4, !tbaa !9
  br label %1665

1665:                                             ; preds = %1622, %1563
  %1666 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1666, ptr %21, align 4, !tbaa !9
  %1667 = load ptr, ptr %4, align 8, !tbaa !5
  %1668 = getelementptr inbounds %struct.w2c_hermes, ptr %1667, i32 0, i32 6
  %1669 = load i32, ptr %21, align 4, !tbaa !9
  %1670 = zext i32 %1669 to i64
  %1671 = call i32 @i32_load(ptr noundef %1668, i64 noundef %1670)
  store i32 %1671, ptr %21, align 4, !tbaa !9
  %1672 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1672, ptr %12, align 4, !tbaa !9
  %1673 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1673, ptr %21, align 4, !tbaa !9
  %1674 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1674, ptr %22, align 4, !tbaa !9
  %1675 = load ptr, ptr %4, align 8, !tbaa !5
  %1676 = getelementptr inbounds %struct.w2c_hermes, ptr %1675, i32 0, i32 6
  %1677 = load i32, ptr %21, align 4, !tbaa !9
  %1678 = zext i32 %1677 to i64
  %1679 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1676, i64 noundef %1678, i32 noundef %1679)
  %1680 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1680, ptr %21, align 4, !tbaa !9
  %1681 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1681, ptr %22, align 4, !tbaa !9
  %1682 = load ptr, ptr %4, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.w2c_hermes, ptr %1682, i32 0, i32 6
  %1684 = load i32, ptr %21, align 4, !tbaa !9
  %1685 = zext i32 %1684 to i64
  %1686 = add i64 %1685, 12
  %1687 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1683, i64 noundef %1686, i32 noundef %1687)
  %1688 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1688, ptr %21, align 4, !tbaa !9
  %1689 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1689, ptr %22, align 4, !tbaa !9
  %1690 = load ptr, ptr %4, align 8, !tbaa !5
  %1691 = getelementptr inbounds %struct.w2c_hermes, ptr %1690, i32 0, i32 6
  %1692 = load i32, ptr %21, align 4, !tbaa !9
  %1693 = zext i32 %1692 to i64
  %1694 = add i64 %1693, 4
  %1695 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1691, i64 noundef %1694, i32 noundef %1695)
  %1696 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1696, ptr %21, align 4, !tbaa !9
  %1697 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1697, ptr %22, align 4, !tbaa !9
  %1698 = load ptr, ptr %4, align 8, !tbaa !5
  %1699 = getelementptr inbounds %struct.w2c_hermes, ptr %1698, i32 0, i32 6
  %1700 = load i32, ptr %21, align 4, !tbaa !9
  %1701 = zext i32 %1700 to i64
  %1702 = add i64 %1701, 16
  %1703 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1699, i64 noundef %1702, i32 noundef %1703)
  %1704 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1704, ptr %21, align 4, !tbaa !9
  %1705 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1705, ptr %22, align 4, !tbaa !9
  %1706 = load ptr, ptr %4, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.w2c_hermes, ptr %1706, i32 0, i32 6
  %1708 = load i32, ptr %21, align 4, !tbaa !9
  %1709 = zext i32 %1708 to i64
  %1710 = add i64 %1709, 8
  %1711 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1707, i64 noundef %1710, i32 noundef %1711)
  %1712 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1712, ptr %21, align 4, !tbaa !9
  %1713 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1713, ptr %22, align 4, !tbaa !9
  %1714 = load ptr, ptr %4, align 8, !tbaa !5
  %1715 = getelementptr inbounds %struct.w2c_hermes, ptr %1714, i32 0, i32 6
  %1716 = load i32, ptr %21, align 4, !tbaa !9
  %1717 = zext i32 %1716 to i64
  %1718 = add i64 %1717, 20
  %1719 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1715, i64 noundef %1718, i32 noundef %1719)
  %1720 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1720, ptr %21, align 4, !tbaa !9
  %1721 = load ptr, ptr %4, align 8, !tbaa !5
  %1722 = getelementptr inbounds %struct.w2c_hermes, ptr %1721, i32 0, i32 6
  %1723 = load i32, ptr %21, align 4, !tbaa !9
  %1724 = zext i32 %1723 to i64
  %1725 = add i64 %1724, 12
  %1726 = call i32 @i32_load(ptr noundef %1722, i64 noundef %1725)
  store i32 %1726, ptr %21, align 4, !tbaa !9
  %1727 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1727, ptr %13, align 4, !tbaa !9
  %1728 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1728, ptr %21, align 4, !tbaa !9
  %1729 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1729, ptr %22, align 4, !tbaa !9
  %1730 = load ptr, ptr %4, align 8, !tbaa !5
  %1731 = getelementptr inbounds %struct.w2c_hermes, ptr %1730, i32 0, i32 6
  %1732 = load i32, ptr %21, align 4, !tbaa !9
  %1733 = zext i32 %1732 to i64
  %1734 = add i64 %1733, 12
  %1735 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1731, i64 noundef %1734, i32 noundef %1735)
  %1736 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1736, ptr %21, align 4, !tbaa !9
  %1737 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1737, ptr %22, align 4, !tbaa !9
  %1738 = load ptr, ptr %4, align 8, !tbaa !5
  %1739 = getelementptr inbounds %struct.w2c_hermes, ptr %1738, i32 0, i32 6
  %1740 = load i32, ptr %21, align 4, !tbaa !9
  %1741 = zext i32 %1740 to i64
  %1742 = add i64 %1741, 24
  %1743 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1739, i64 noundef %1742, i32 noundef %1743)
  %1744 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1744, ptr %21, align 4, !tbaa !9
  %1745 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1745, ptr %22, align 4, !tbaa !9
  %1746 = load i32, ptr %21, align 4, !tbaa !9
  %1747 = load i32, ptr %22, align 4, !tbaa !9
  %1748 = icmp ne i32 %1746, %1747
  %1749 = zext i1 %1748 to i32
  store i32 %1749, ptr %21, align 4, !tbaa !9
  %1750 = load i32, ptr %21, align 4, !tbaa !9
  %1751 = icmp ne i32 %1750, 0
  br i1 %1751, label %1752, label %1775

1752:                                             ; preds = %1665
  %1753 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1753, ptr %21, align 4, !tbaa !9
  %1754 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1754, ptr %22, align 4, !tbaa !9
  %1755 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1755, ptr %23, align 4, !tbaa !9
  %1756 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1756, ptr %24, align 4, !tbaa !9
  %1757 = load i32, ptr %24, align 4, !tbaa !9
  %1758 = load i32, ptr %23, align 4, !tbaa !9
  %1759 = sub i32 %1758, %1757
  store i32 %1759, ptr %23, align 4, !tbaa !9
  store i32 3, ptr %24, align 4, !tbaa !9
  %1760 = load i32, ptr %24, align 4, !tbaa !9
  %1761 = load i32, ptr %23, align 4, !tbaa !9
  %1762 = add i32 %1761, %1760
  store i32 %1762, ptr %23, align 4, !tbaa !9
  store i32 -4, ptr %24, align 4, !tbaa !9
  %1763 = load i32, ptr %24, align 4, !tbaa !9
  %1764 = load i32, ptr %23, align 4, !tbaa !9
  %1765 = and i32 %1764, %1763
  store i32 %1765, ptr %23, align 4, !tbaa !9
  %1766 = load i32, ptr %23, align 4, !tbaa !9
  %1767 = load i32, ptr %22, align 4, !tbaa !9
  %1768 = add i32 %1767, %1766
  store i32 %1768, ptr %22, align 4, !tbaa !9
  %1769 = load ptr, ptr %4, align 8, !tbaa !5
  %1770 = getelementptr inbounds %struct.w2c_hermes, ptr %1769, i32 0, i32 6
  %1771 = load i32, ptr %21, align 4, !tbaa !9
  %1772 = zext i32 %1771 to i64
  %1773 = add i64 %1772, 20
  %1774 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1770, i64 noundef %1773, i32 noundef %1774)
  br label %1775

1775:                                             ; preds = %1752, %1665
  %1776 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1776, ptr %21, align 4, !tbaa !9
  %1777 = load i32, ptr %21, align 4, !tbaa !9
  %1778 = icmp ne i32 %1777, 0
  %1779 = xor i1 %1778, true
  %1780 = zext i1 %1779 to i32
  store i32 %1780, ptr %21, align 4, !tbaa !9
  %1781 = load i32, ptr %21, align 4, !tbaa !9
  %1782 = icmp ne i32 %1781, 0
  br i1 %1782, label %1783, label %1784

1783:                                             ; preds = %1775
  br label %1788

1784:                                             ; preds = %1775
  %1785 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1785, ptr %21, align 4, !tbaa !9
  %1786 = load ptr, ptr %4, align 8, !tbaa !5
  %1787 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1786, i32 noundef %1787)
  br label %1788

1788:                                             ; preds = %1784, %1783, %1279, %736, %647
  %1789 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1789, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %1790 = load i32, ptr %22, align 4, !tbaa !9
  %1791 = load i32, ptr %21, align 4, !tbaa !9
  %1792 = add i32 %1791, %1790
  store i32 %1792, ptr %21, align 4, !tbaa !9
  %1793 = load i32, ptr %21, align 4, !tbaa !9
  %1794 = load ptr, ptr %4, align 8, !tbaa !5
  %1795 = getelementptr inbounds %struct.w2c_hermes, ptr %1794, i32 0, i32 3
  store i32 %1793, ptr %1795, align 8, !tbaa !11
  br label %1798

1796:                                             ; preds = %1494, %1342, %968, %336
  %1797 = load ptr, ptr %4, align 8, !tbaa !5
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef %1797)
  call void @wasm_rt_trap(i32 noundef 5) #8
  unreachable

1798:                                             ; preds = %1788
  %1799 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1799, ptr %21, align 4, !tbaa !9
  %1800 = load ptr, ptr %4, align 8, !tbaa !5
  %1801 = getelementptr inbounds %struct.w2c_hermes, ptr %1800, i32 0, i32 6
  %1802 = load i32, ptr %21, align 4, !tbaa !9
  %1803 = zext i32 %1802 to i64
  %1804 = add i64 %1803, 4
  %1805 = call i32 @i32_load(ptr noundef %1801, i64 noundef %1804)
  store i32 %1805, ptr %21, align 4, !tbaa !9
  %1806 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1806, ptr %8, align 4, !tbaa !9
  %1807 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1807, ptr %21, align 4, !tbaa !9
  %1808 = load ptr, ptr %4, align 8, !tbaa !5
  %1809 = getelementptr inbounds %struct.w2c_hermes, ptr %1808, i32 0, i32 6
  %1810 = load i32, ptr %21, align 4, !tbaa !9
  %1811 = zext i32 %1810 to i64
  %1812 = add i64 %1811, 8
  %1813 = call i32 @i32_load(ptr noundef %1809, i64 noundef %1812)
  store i32 %1813, ptr %21, align 4, !tbaa !9
  br label %1816

1814:                                             ; preds = %97
  %1815 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1815, ptr %21, align 4, !tbaa !9
  br label %1816

1816:                                             ; preds = %1814, %1798
  %1817 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1817, ptr %22, align 4, !tbaa !9
  %1818 = load i32, ptr %21, align 4, !tbaa !9
  %1819 = load i32, ptr %22, align 4, !tbaa !9
  %1820 = icmp ne i32 %1818, %1819
  %1821 = zext i1 %1820 to i32
  store i32 %1821, ptr %21, align 4, !tbaa !9
  %1822 = load i32, ptr %21, align 4, !tbaa !9
  %1823 = icmp ne i32 %1822, 0
  br i1 %1823, label %1824, label %1870

1824:                                             ; preds = %1816
  %1825 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1825, ptr %21, align 4, !tbaa !9
  %1826 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1826, ptr %22, align 4, !tbaa !9
  %1827 = load ptr, ptr %4, align 8, !tbaa !5
  %1828 = getelementptr inbounds %struct.w2c_hermes, ptr %1827, i32 0, i32 6
  %1829 = load i32, ptr %22, align 4, !tbaa !9
  %1830 = zext i32 %1829 to i64
  %1831 = add i64 %1830, 20
  %1832 = call i32 @i32_load(ptr noundef %1828, i64 noundef %1831)
  store i32 %1832, ptr %22, align 4, !tbaa !9
  %1833 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1833, ptr %23, align 4, !tbaa !9
  %1834 = load ptr, ptr %4, align 8, !tbaa !5
  %1835 = getelementptr inbounds %struct.w2c_hermes, ptr %1834, i32 0, i32 6
  %1836 = load i32, ptr %23, align 4, !tbaa !9
  %1837 = zext i32 %1836 to i64
  %1838 = add i64 %1837, 16
  %1839 = call i32 @i32_load(ptr noundef %1835, i64 noundef %1838)
  store i32 %1839, ptr %23, align 4, !tbaa !9
  %1840 = load i32, ptr %23, align 4, !tbaa !9
  %1841 = load i32, ptr %22, align 4, !tbaa !9
  %1842 = add i32 %1841, %1840
  store i32 %1842, ptr %22, align 4, !tbaa !9
  %1843 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1843, ptr %7, align 4, !tbaa !9
  store i32 6, ptr %23, align 4, !tbaa !9
  %1844 = load i32, ptr %23, align 4, !tbaa !9
  %1845 = and i32 %1844, 31
  %1846 = load i32, ptr %22, align 4, !tbaa !9
  %1847 = lshr i32 %1846, %1845
  store i32 %1847, ptr %22, align 4, !tbaa !9
  store i32 67108860, ptr %23, align 4, !tbaa !9
  %1848 = load i32, ptr %23, align 4, !tbaa !9
  %1849 = load i32, ptr %22, align 4, !tbaa !9
  %1850 = and i32 %1849, %1848
  store i32 %1850, ptr %22, align 4, !tbaa !9
  %1851 = load i32, ptr %22, align 4, !tbaa !9
  %1852 = load i32, ptr %21, align 4, !tbaa !9
  %1853 = add i32 %1852, %1851
  store i32 %1853, ptr %21, align 4, !tbaa !9
  %1854 = load ptr, ptr %4, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.w2c_hermes, ptr %1854, i32 0, i32 6
  %1856 = load i32, ptr %21, align 4, !tbaa !9
  %1857 = zext i32 %1856 to i64
  %1858 = call i32 @i32_load(ptr noundef %1855, i64 noundef %1857)
  store i32 %1858, ptr %21, align 4, !tbaa !9
  %1859 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1859, ptr %22, align 4, !tbaa !9
  store i32 255, ptr %23, align 4, !tbaa !9
  %1860 = load i32, ptr %23, align 4, !tbaa !9
  %1861 = load i32, ptr %22, align 4, !tbaa !9
  %1862 = and i32 %1861, %1860
  store i32 %1862, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %1863 = load i32, ptr %23, align 4, !tbaa !9
  %1864 = and i32 %1863, 31
  %1865 = load i32, ptr %22, align 4, !tbaa !9
  %1866 = shl i32 %1865, %1864
  store i32 %1866, ptr %22, align 4, !tbaa !9
  %1867 = load i32, ptr %22, align 4, !tbaa !9
  %1868 = load i32, ptr %21, align 4, !tbaa !9
  %1869 = add i32 %1868, %1867
  store i32 %1869, ptr %21, align 4, !tbaa !9
  br label %1871

1870:                                             ; preds = %1816
  store i32 0, ptr %21, align 4, !tbaa !9
  br label %1871

1871:                                             ; preds = %1870, %1824
  %1872 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1872, ptr %22, align 4, !tbaa !9
  %1873 = load ptr, ptr %4, align 8, !tbaa !5
  %1874 = load i32, ptr %21, align 4, !tbaa !9
  %1875 = load i32, ptr %22, align 4, !tbaa !9
  %1876 = call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x3A0x3AAlignedStorage0x28hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x260x260x29(ptr noundef %1873, i32 noundef %1874, i32 noundef %1875)
  store i32 %1876, ptr %21, align 4, !tbaa !9
  %1877 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1877, ptr %22, align 4, !tbaa !9
  %1878 = load ptr, ptr %4, align 8, !tbaa !5
  %1879 = getelementptr inbounds %struct.w2c_hermes, ptr %1878, i32 0, i32 6
  %1880 = load i32, ptr %22, align 4, !tbaa !9
  %1881 = zext i32 %1880 to i64
  %1882 = add i64 %1881, 8
  %1883 = call i64 @i64_load(ptr noundef %1879, i64 noundef %1882)
  store i64 %1883, ptr %26, align 8, !tbaa !17
  %1884 = load ptr, ptr %4, align 8, !tbaa !5
  %1885 = getelementptr inbounds %struct.w2c_hermes, ptr %1884, i32 0, i32 6
  %1886 = load i32, ptr %21, align 4, !tbaa !9
  %1887 = zext i32 %1886 to i64
  %1888 = add i64 %1887, 8
  %1889 = load i64, ptr %26, align 8, !tbaa !17
  call void @i64_store(ptr noundef %1885, i64 noundef %1888, i64 noundef %1889)
  %1890 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1890, ptr %21, align 4, !tbaa !9
  %1891 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1891, ptr %22, align 4, !tbaa !9
  %1892 = load ptr, ptr %4, align 8, !tbaa !5
  %1893 = getelementptr inbounds %struct.w2c_hermes, ptr %1892, i32 0, i32 6
  %1894 = load i32, ptr %22, align 4, !tbaa !9
  %1895 = zext i32 %1894 to i64
  %1896 = add i64 %1895, 20
  %1897 = call i32 @i32_load(ptr noundef %1893, i64 noundef %1896)
  store i32 %1897, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1898 = load i32, ptr %23, align 4, !tbaa !9
  %1899 = load i32, ptr %22, align 4, !tbaa !9
  %1900 = add i32 %1899, %1898
  store i32 %1900, ptr %22, align 4, !tbaa !9
  %1901 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1901, ptr %6, align 4, !tbaa !9
  %1902 = load ptr, ptr %4, align 8, !tbaa !5
  %1903 = getelementptr inbounds %struct.w2c_hermes, ptr %1902, i32 0, i32 6
  %1904 = load i32, ptr %21, align 4, !tbaa !9
  %1905 = zext i32 %1904 to i64
  %1906 = add i64 %1905, 20
  %1907 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1903, i64 noundef %1906, i32 noundef %1907)
  %1908 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1908, ptr %21, align 4, !tbaa !9
  %1909 = load ptr, ptr %4, align 8, !tbaa !5
  %1910 = getelementptr inbounds %struct.w2c_hermes, ptr %1909, i32 0, i32 6
  %1911 = load i32, ptr %21, align 4, !tbaa !9
  %1912 = zext i32 %1911 to i64
  %1913 = add i64 %1912, 4
  %1914 = call i32 @i32_load(ptr noundef %1910, i64 noundef %1913)
  store i32 %1914, ptr %21, align 4, !tbaa !9
  %1915 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1915, ptr %13, align 4, !tbaa !9
  %1916 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1916, ptr %22, align 4, !tbaa !9
  %1917 = load ptr, ptr %4, align 8, !tbaa !5
  %1918 = getelementptr inbounds %struct.w2c_hermes, ptr %1917, i32 0, i32 6
  %1919 = load i32, ptr %22, align 4, !tbaa !9
  %1920 = zext i32 %1919 to i64
  %1921 = add i64 %1920, 16
  %1922 = call i32 @i32_load(ptr noundef %1918, i64 noundef %1921)
  store i32 %1922, ptr %22, align 4, !tbaa !9
  %1923 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1923, ptr %23, align 4, !tbaa !9
  %1924 = load i32, ptr %23, align 4, !tbaa !9
  %1925 = load i32, ptr %22, align 4, !tbaa !9
  %1926 = add i32 %1925, %1924
  store i32 %1926, ptr %22, align 4, !tbaa !9
  %1927 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1927, ptr %6, align 4, !tbaa !9
  store i32 6, ptr %23, align 4, !tbaa !9
  %1928 = load i32, ptr %23, align 4, !tbaa !9
  %1929 = and i32 %1928, 31
  %1930 = load i32, ptr %22, align 4, !tbaa !9
  %1931 = lshr i32 %1930, %1929
  store i32 %1931, ptr %22, align 4, !tbaa !9
  store i32 67108860, ptr %23, align 4, !tbaa !9
  %1932 = load i32, ptr %23, align 4, !tbaa !9
  %1933 = load i32, ptr %22, align 4, !tbaa !9
  %1934 = and i32 %1933, %1932
  store i32 %1934, ptr %22, align 4, !tbaa !9
  %1935 = load i32, ptr %22, align 4, !tbaa !9
  %1936 = load i32, ptr %21, align 4, !tbaa !9
  %1937 = add i32 %1936, %1935
  store i32 %1937, ptr %21, align 4, !tbaa !9
  %1938 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1938, ptr %8, align 4, !tbaa !9
  %1939 = load ptr, ptr %4, align 8, !tbaa !5
  %1940 = getelementptr inbounds %struct.w2c_hermes, ptr %1939, i32 0, i32 6
  %1941 = load i32, ptr %21, align 4, !tbaa !9
  %1942 = zext i32 %1941 to i64
  %1943 = call i32 @i32_load(ptr noundef %1940, i64 noundef %1942)
  store i32 %1943, ptr %21, align 4, !tbaa !9
  %1944 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1944, ptr %7, align 4, !tbaa !9
  %1945 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1945, ptr %22, align 4, !tbaa !9
  store i32 255, ptr %23, align 4, !tbaa !9
  %1946 = load i32, ptr %23, align 4, !tbaa !9
  %1947 = load i32, ptr %22, align 4, !tbaa !9
  %1948 = and i32 %1947, %1946
  store i32 %1948, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %1949 = load i32, ptr %23, align 4, !tbaa !9
  %1950 = and i32 %1949, 31
  %1951 = load i32, ptr %22, align 4, !tbaa !9
  %1952 = shl i32 %1951, %1950
  store i32 %1952, ptr %22, align 4, !tbaa !9
  %1953 = load i32, ptr %22, align 4, !tbaa !9
  %1954 = load i32, ptr %21, align 4, !tbaa !9
  %1955 = add i32 %1954, %1953
  store i32 %1955, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  %1956 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1956, ptr %23, align 4, !tbaa !9
  %1957 = load ptr, ptr %4, align 8, !tbaa !5
  %1958 = getelementptr inbounds %struct.w2c_hermes, ptr %1957, i32 0, i32 6
  %1959 = load i32, ptr %23, align 4, !tbaa !9
  %1960 = zext i32 %1959 to i64
  %1961 = add i64 %1960, 8
  %1962 = call i32 @i32_load(ptr noundef %1958, i64 noundef %1961)
  store i32 %1962, ptr %23, align 4, !tbaa !9
  %1963 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1963, ptr %24, align 4, !tbaa !9
  %1964 = load i32, ptr %23, align 4, !tbaa !9
  %1965 = load i32, ptr %24, align 4, !tbaa !9
  %1966 = icmp ne i32 %1964, %1965
  %1967 = zext i1 %1966 to i32
  store i32 %1967, ptr %23, align 4, !tbaa !9
  %1968 = load i32, ptr %23, align 4, !tbaa !9
  %1969 = icmp ne i32 %1968, 0
  br i1 %1969, label %1970, label %1972

1970:                                             ; preds = %1871
  %1971 = load i32, ptr %21, align 4, !tbaa !9
  br label %1974

1972:                                             ; preds = %1871
  %1973 = load i32, ptr %22, align 4, !tbaa !9
  br label %1974

1974:                                             ; preds = %1972, %1970
  %1975 = phi i32 [ %1971, %1970 ], [ %1973, %1972 ]
  store i32 %1975, ptr %21, align 4, !tbaa !9
  %1976 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1976, ptr %6, align 4, !tbaa !9
  %1977 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1977, ptr %22, align 4, !tbaa !9
  %1978 = load i32, ptr %21, align 4, !tbaa !9
  %1979 = load i32, ptr %22, align 4, !tbaa !9
  %1980 = icmp eq i32 %1978, %1979
  %1981 = zext i1 %1980 to i32
  store i32 %1981, ptr %21, align 4, !tbaa !9
  %1982 = load i32, ptr %21, align 4, !tbaa !9
  %1983 = icmp ne i32 %1982, 0
  br i1 %1983, label %1984, label %1997

1984:                                             ; preds = %1974
  %1985 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1985, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %1986 = load i32, ptr %22, align 4, !tbaa !9
  %1987 = load i32, ptr %21, align 4, !tbaa !9
  %1988 = sub i32 %1987, %1986
  store i32 %1988, ptr %21, align 4, !tbaa !9
  %1989 = load ptr, ptr %4, align 8, !tbaa !5
  %1990 = getelementptr inbounds %struct.w2c_hermes, ptr %1989, i32 0, i32 6
  %1991 = load i32, ptr %21, align 4, !tbaa !9
  %1992 = zext i32 %1991 to i64
  %1993 = call i32 @i32_load(ptr noundef %1990, i64 noundef %1992)
  store i32 %1993, ptr %21, align 4, !tbaa !9
  store i32 4096, ptr %22, align 4, !tbaa !9
  %1994 = load i32, ptr %22, align 4, !tbaa !9
  %1995 = load i32, ptr %21, align 4, !tbaa !9
  %1996 = add i32 %1995, %1994
  store i32 %1996, ptr %21, align 4, !tbaa !9
  br label %1999

1997:                                             ; preds = %1974
  %1998 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1998, ptr %21, align 4, !tbaa !9
  br label %1999

1999:                                             ; preds = %1997, %1984
  %2000 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2000, ptr %21, align 4, !tbaa !9
  %2001 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2001, ptr %22, align 4, !tbaa !9
  %2002 = load ptr, ptr %4, align 8, !tbaa !5
  %2003 = getelementptr inbounds %struct.w2c_hermes, ptr %2002, i32 0, i32 6
  %2004 = load i32, ptr %22, align 4, !tbaa !9
  %2005 = zext i32 %2004 to i64
  %2006 = add i64 %2005, 48
  %2007 = call i64 @i64_load(ptr noundef %2003, i64 noundef %2006)
  store i64 %2007, ptr %26, align 8, !tbaa !17
  %2008 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2008, ptr %23, align 4, !tbaa !9
  %2009 = load ptr, ptr %4, align 8, !tbaa !5
  %2010 = getelementptr inbounds %struct.w2c_hermes, ptr %2009, i32 0, i32 6
  %2011 = load i32, ptr %23, align 4, !tbaa !9
  %2012 = zext i32 %2011 to i64
  %2013 = add i64 %2012, 8
  %2014 = call i32 @i32_load(ptr noundef %2010, i64 noundef %2013)
  store i32 %2014, ptr %23, align 4, !tbaa !9
  %2015 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2015, ptr %24, align 4, !tbaa !9
  %2016 = load ptr, ptr %4, align 8, !tbaa !5
  %2017 = getelementptr inbounds %struct.w2c_hermes, ptr %2016, i32 0, i32 6
  %2018 = load i32, ptr %24, align 4, !tbaa !9
  %2019 = zext i32 %2018 to i64
  %2020 = add i64 %2019, 24
  %2021 = call i32 @i32_load(ptr noundef %2017, i64 noundef %2020)
  store i32 %2021, ptr %24, align 4, !tbaa !9
  %2022 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2022, ptr %25, align 4, !tbaa !9
  %2023 = load ptr, ptr %4, align 8, !tbaa !5
  %2024 = getelementptr inbounds %struct.w2c_hermes, ptr %2023, i32 0, i32 6
  %2025 = load i32, ptr %25, align 4, !tbaa !9
  %2026 = zext i32 %2025 to i64
  %2027 = add i64 %2026, 20
  %2028 = call i32 @i32_load(ptr noundef %2024, i64 noundef %2027)
  store i32 %2028, ptr %25, align 4, !tbaa !9
  %2029 = load i32, ptr %25, align 4, !tbaa !9
  %2030 = load i32, ptr %24, align 4, !tbaa !9
  %2031 = add i32 %2030, %2029
  store i32 %2031, ptr %24, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  %2032 = load i32, ptr %25, align 4, !tbaa !9
  %2033 = load i32, ptr %24, align 4, !tbaa !9
  %2034 = sub i32 %2033, %2032
  store i32 %2034, ptr %24, align 4, !tbaa !9
  %2035 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %2035, ptr %6, align 4, !tbaa !9
  store i32 6, ptr %25, align 4, !tbaa !9
  %2036 = load i32, ptr %25, align 4, !tbaa !9
  %2037 = and i32 %2036, 31
  %2038 = load i32, ptr %24, align 4, !tbaa !9
  %2039 = lshr i32 %2038, %2037
  store i32 %2039, ptr %24, align 4, !tbaa !9
  store i32 67108860, ptr %25, align 4, !tbaa !9
  %2040 = load i32, ptr %25, align 4, !tbaa !9
  %2041 = load i32, ptr %24, align 4, !tbaa !9
  %2042 = and i32 %2041, %2040
  store i32 %2042, ptr %24, align 4, !tbaa !9
  %2043 = load i32, ptr %24, align 4, !tbaa !9
  %2044 = load i32, ptr %23, align 4, !tbaa !9
  %2045 = add i32 %2044, %2043
  store i32 %2045, ptr %23, align 4, !tbaa !9
  %2046 = load ptr, ptr %4, align 8, !tbaa !5
  %2047 = getelementptr inbounds %struct.w2c_hermes, ptr %2046, i32 0, i32 6
  %2048 = load i32, ptr %23, align 4, !tbaa !9
  %2049 = zext i32 %2048 to i64
  %2050 = call i32 @i32_load(ptr noundef %2047, i64 noundef %2049)
  store i32 %2050, ptr %23, align 4, !tbaa !9
  %2051 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2051, ptr %24, align 4, !tbaa !9
  store i32 255, ptr %25, align 4, !tbaa !9
  %2052 = load i32, ptr %25, align 4, !tbaa !9
  %2053 = load i32, ptr %24, align 4, !tbaa !9
  %2054 = and i32 %2053, %2052
  store i32 %2054, ptr %24, align 4, !tbaa !9
  store i32 4, ptr %25, align 4, !tbaa !9
  %2055 = load i32, ptr %25, align 4, !tbaa !9
  %2056 = and i32 %2055, 31
  %2057 = load i32, ptr %24, align 4, !tbaa !9
  %2058 = shl i32 %2057, %2056
  store i32 %2058, ptr %24, align 4, !tbaa !9
  %2059 = load i32, ptr %24, align 4, !tbaa !9
  %2060 = load i32, ptr %23, align 4, !tbaa !9
  %2061 = add i32 %2060, %2059
  store i32 %2061, ptr %23, align 4, !tbaa !9
  %2062 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %2062, ptr %19, align 4, !tbaa !9
  %2063 = load ptr, ptr %4, align 8, !tbaa !5
  %2064 = getelementptr inbounds %struct.w2c_hermes, ptr %2063, i32 0, i32 6
  %2065 = load i32, ptr %23, align 4, !tbaa !9
  %2066 = zext i32 %2065 to i64
  %2067 = add i64 %2066, 8
  %2068 = call i32 @i32_load(ptr noundef %2064, i64 noundef %2067)
  store i32 %2068, ptr %23, align 4, !tbaa !9
  %2069 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2069, ptr %24, align 4, !tbaa !9
  %2070 = load ptr, ptr %4, align 8, !tbaa !5
  %2071 = getelementptr inbounds %struct.w2c_hermes, ptr %2070, i32 0, i32 6
  %2072 = load i32, ptr %24, align 4, !tbaa !9
  %2073 = zext i32 %2072 to i64
  %2074 = call i32 @i32_load(ptr noundef %2071, i64 noundef %2073)
  store i32 %2074, ptr %24, align 4, !tbaa !9
  %2075 = load i32, ptr %24, align 4, !tbaa !9
  %2076 = load i32, ptr %23, align 4, !tbaa !9
  %2077 = sub i32 %2076, %2075
  store i32 %2077, ptr %23, align 4, !tbaa !9
  store i32 86016, ptr %24, align 4, !tbaa !9
  %2078 = load i32, ptr %24, align 4, !tbaa !9
  %2079 = load i32, ptr %23, align 4, !tbaa !9
  %2080 = sub i32 %2079, %2078
  store i32 %2080, ptr %23, align 4, !tbaa !9
  %2081 = load i32, ptr %23, align 4, !tbaa !9
  %2082 = sext i32 %2081 to i64
  store i64 %2082, ptr %27, align 8, !tbaa !17
  %2083 = load i64, ptr %27, align 8, !tbaa !17
  %2084 = load i64, ptr %26, align 8, !tbaa !17
  %2085 = add i64 %2084, %2083
  store i64 %2085, ptr %26, align 8, !tbaa !17
  %2086 = load ptr, ptr %4, align 8, !tbaa !5
  %2087 = getelementptr inbounds %struct.w2c_hermes, ptr %2086, i32 0, i32 6
  %2088 = load i32, ptr %21, align 4, !tbaa !9
  %2089 = zext i32 %2088 to i64
  %2090 = add i64 %2089, 48
  %2091 = load i64, ptr %26, align 8, !tbaa !17
  call void @i64_store(ptr noundef %2087, i64 noundef %2090, i64 noundef %2091)
  %2092 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2092, ptr %21, align 4, !tbaa !9
  %2093 = load ptr, ptr %4, align 8, !tbaa !5
  %2094 = getelementptr inbounds %struct.w2c_hermes, ptr %2093, i32 0, i32 6
  %2095 = load i32, ptr %21, align 4, !tbaa !9
  %2096 = zext i32 %2095 to i64
  %2097 = add i64 %2096, 120
  %2098 = call i32 @i32_load(ptr noundef %2094, i64 noundef %2097)
  store i32 %2098, ptr %21, align 4, !tbaa !9
  %2099 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2099, ptr %22, align 4, !tbaa !9
  %2100 = load ptr, ptr %4, align 8, !tbaa !5
  %2101 = getelementptr inbounds %struct.w2c_hermes, ptr %2100, i32 0, i32 6
  %2102 = load i32, ptr %22, align 4, !tbaa !9
  %2103 = zext i32 %2102 to i64
  %2104 = add i64 %2103, 116
  %2105 = call i32 @i32_load(ptr noundef %2101, i64 noundef %2104)
  store i32 %2105, ptr %22, align 4, !tbaa !9
  %2106 = load i32, ptr %22, align 4, !tbaa !9
  %2107 = load i32, ptr %21, align 4, !tbaa !9
  %2108 = add i32 %2107, %2106
  store i32 %2108, ptr %21, align 4, !tbaa !9
  %2109 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2109, ptr %6, align 4, !tbaa !9
  %2110 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2110, ptr %22, align 4, !tbaa !9
  %2111 = load ptr, ptr %4, align 8, !tbaa !5
  %2112 = getelementptr inbounds %struct.w2c_hermes, ptr %2111, i32 0, i32 6
  %2113 = load i32, ptr %22, align 4, !tbaa !9
  %2114 = zext i32 %2113 to i64
  %2115 = add i64 %2114, 108
  %2116 = call i32 @i32_load(ptr noundef %2112, i64 noundef %2115)
  store i32 %2116, ptr %22, align 4, !tbaa !9
  %2117 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2117, ptr %7, align 4, !tbaa !9
  %2118 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2118, ptr %23, align 4, !tbaa !9
  %2119 = load ptr, ptr %4, align 8, !tbaa !5
  %2120 = getelementptr inbounds %struct.w2c_hermes, ptr %2119, i32 0, i32 6
  %2121 = load i32, ptr %23, align 4, !tbaa !9
  %2122 = zext i32 %2121 to i64
  %2123 = add i64 %2122, 104
  %2124 = call i32 @i32_load(ptr noundef %2120, i64 noundef %2123)
  store i32 %2124, ptr %23, align 4, !tbaa !9
  %2125 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %2125, ptr %8, align 4, !tbaa !9
  %2126 = load i32, ptr %23, align 4, !tbaa !9
  %2127 = load i32, ptr %22, align 4, !tbaa !9
  %2128 = sub i32 %2127, %2126
  store i32 %2128, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %2129 = load i32, ptr %23, align 4, !tbaa !9
  %2130 = and i32 %2129, 31
  %2131 = load i32, ptr %22, align 4, !tbaa !9
  %2132 = shl i32 %2131, %2130
  store i32 %2132, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %2133 = load i32, ptr %23, align 4, !tbaa !9
  %2134 = load i32, ptr %22, align 4, !tbaa !9
  %2135 = sub i32 %2134, %2133
  store i32 %2135, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %2136 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2136, ptr %24, align 4, !tbaa !9
  %2137 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2137, ptr %25, align 4, !tbaa !9
  %2138 = load i32, ptr %24, align 4, !tbaa !9
  %2139 = load i32, ptr %25, align 4, !tbaa !9
  %2140 = icmp ne i32 %2138, %2139
  %2141 = zext i1 %2140 to i32
  store i32 %2141, ptr %24, align 4, !tbaa !9
  %2142 = load i32, ptr %24, align 4, !tbaa !9
  %2143 = icmp ne i32 %2142, 0
  br i1 %2143, label %2144, label %2146

2144:                                             ; preds = %1999
  %2145 = load i32, ptr %22, align 4, !tbaa !9
  br label %2148

2146:                                             ; preds = %1999
  %2147 = load i32, ptr %23, align 4, !tbaa !9
  br label %2148

2148:                                             ; preds = %2146, %2144
  %2149 = phi i32 [ %2145, %2144 ], [ %2147, %2146 ]
  store i32 %2149, ptr %22, align 4, !tbaa !9
  %2150 = load i32, ptr %21, align 4, !tbaa !9
  %2151 = load i32, ptr %22, align 4, !tbaa !9
  %2152 = icmp eq i32 %2150, %2151
  %2153 = zext i1 %2152 to i32
  store i32 %2153, ptr %21, align 4, !tbaa !9
  %2154 = load i32, ptr %21, align 4, !tbaa !9
  %2155 = icmp ne i32 %2154, 0
  br i1 %2155, label %2156, label %3879

2156:                                             ; preds = %2148
  %2157 = load ptr, ptr %4, align 8, !tbaa !5
  %2158 = getelementptr inbounds %struct.w2c_hermes, ptr %2157, i32 0, i32 3
  %2159 = load i32, ptr %2158, align 8, !tbaa !11
  store i32 %2159, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %2160 = load i32, ptr %22, align 4, !tbaa !9
  %2161 = load i32, ptr %21, align 4, !tbaa !9
  %2162 = sub i32 %2161, %2160
  store i32 %2162, ptr %21, align 4, !tbaa !9
  %2163 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2163, ptr %14, align 4, !tbaa !9
  %2164 = load i32, ptr %21, align 4, !tbaa !9
  %2165 = load ptr, ptr %4, align 8, !tbaa !5
  %2166 = getelementptr inbounds %struct.w2c_hermes, ptr %2165, i32 0, i32 3
  store i32 %2164, ptr %2166, align 8, !tbaa !11
  %2167 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %2167, ptr %21, align 4, !tbaa !9
  store i32 100, ptr %22, align 4, !tbaa !9
  %2168 = load i32, ptr %22, align 4, !tbaa !9
  %2169 = load i32, ptr %21, align 4, !tbaa !9
  %2170 = add i32 %2169, %2168
  store i32 %2170, ptr %21, align 4, !tbaa !9
  %2171 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2171, ptr %11, align 4, !tbaa !9
  %2172 = load ptr, ptr %4, align 8, !tbaa !5
  %2173 = getelementptr inbounds %struct.w2c_hermes, ptr %2172, i32 0, i32 6
  %2174 = load i32, ptr %21, align 4, !tbaa !9
  %2175 = zext i32 %2174 to i64
  %2176 = add i64 %2175, 16
  %2177 = call i32 @i32_load(ptr noundef %2173, i64 noundef %2176)
  store i32 %2177, ptr %21, align 4, !tbaa !9
  %2178 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2178, ptr %6, align 4, !tbaa !9
  store i32 16, ptr %22, align 4, !tbaa !9
  %2179 = load i32, ptr %21, align 4, !tbaa !9
  %2180 = load i32, ptr %22, align 4, !tbaa !9
  %2181 = icmp uge i32 %2179, %2180
  %2182 = zext i1 %2181 to i32
  store i32 %2182, ptr %21, align 4, !tbaa !9
  %2183 = load i32, ptr %21, align 4, !tbaa !9
  %2184 = icmp ne i32 %2183, 0
  br i1 %2184, label %2185, label %2727

2185:                                             ; preds = %2156
  %2186 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2186, ptr %21, align 4, !tbaa !9
  %2187 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2187, ptr %22, align 4, !tbaa !9
  store i32 16, ptr %23, align 4, !tbaa !9
  %2188 = load i32, ptr %23, align 4, !tbaa !9
  %2189 = load i32, ptr %22, align 4, !tbaa !9
  %2190 = sub i32 %2189, %2188
  store i32 %2190, ptr %22, align 4, !tbaa !9
  %2191 = load ptr, ptr %4, align 8, !tbaa !5
  %2192 = getelementptr inbounds %struct.w2c_hermes, ptr %2191, i32 0, i32 6
  %2193 = load i32, ptr %21, align 4, !tbaa !9
  %2194 = zext i32 %2193 to i64
  %2195 = add i64 %2194, 16
  %2196 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2192, i64 noundef %2195, i32 noundef %2196)
  %2197 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2197, ptr %21, align 4, !tbaa !9
  %2198 = load ptr, ptr %4, align 8, !tbaa !5
  %2199 = getelementptr inbounds %struct.w2c_hermes, ptr %2198, i32 0, i32 6
  %2200 = load i32, ptr %21, align 4, !tbaa !9
  %2201 = zext i32 %2200 to i64
  %2202 = add i64 %2201, 4
  %2203 = call i32 @i32_load(ptr noundef %2199, i64 noundef %2202)
  store i32 %2203, ptr %21, align 4, !tbaa !9
  %2204 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2204, ptr %6, align 4, !tbaa !9
  %2205 = load ptr, ptr %4, align 8, !tbaa !5
  %2206 = getelementptr inbounds %struct.w2c_hermes, ptr %2205, i32 0, i32 6
  %2207 = load i32, ptr %21, align 4, !tbaa !9
  %2208 = zext i32 %2207 to i64
  %2209 = call i32 @i32_load(ptr noundef %2206, i64 noundef %2208)
  store i32 %2209, ptr %21, align 4, !tbaa !9
  %2210 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2210, ptr %15, align 4, !tbaa !9
  %2211 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2211, ptr %21, align 4, !tbaa !9
  %2212 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2212, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %2213 = load i32, ptr %23, align 4, !tbaa !9
  %2214 = load i32, ptr %22, align 4, !tbaa !9
  %2215 = add i32 %2214, %2213
  store i32 %2215, ptr %22, align 4, !tbaa !9
  %2216 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2216, ptr %10, align 4, !tbaa !9
  %2217 = load ptr, ptr %4, align 8, !tbaa !5
  %2218 = getelementptr inbounds %struct.w2c_hermes, ptr %2217, i32 0, i32 6
  %2219 = load i32, ptr %21, align 4, !tbaa !9
  %2220 = zext i32 %2219 to i64
  %2221 = add i64 %2220, 4
  %2222 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2218, i64 noundef %2221, i32 noundef %2222)
  %2223 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2223, ptr %21, align 4, !tbaa !9
  %2224 = load ptr, ptr %4, align 8, !tbaa !5
  %2225 = getelementptr inbounds %struct.w2c_hermes, ptr %2224, i32 0, i32 6
  %2226 = load i32, ptr %21, align 4, !tbaa !9
  %2227 = zext i32 %2226 to i64
  %2228 = add i64 %2227, 8
  %2229 = call i32 @i32_load(ptr noundef %2225, i64 noundef %2228)
  store i32 %2229, ptr %21, align 4, !tbaa !9
  %2230 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2230, ptr %6, align 4, !tbaa !9
  %2231 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2231, ptr %22, align 4, !tbaa !9
  %2232 = load ptr, ptr %4, align 8, !tbaa !5
  %2233 = getelementptr inbounds %struct.w2c_hermes, ptr %2232, i32 0, i32 6
  %2234 = load i32, ptr %22, align 4, !tbaa !9
  %2235 = zext i32 %2234 to i64
  %2236 = add i64 %2235, 12
  %2237 = call i32 @i32_load(ptr noundef %2233, i64 noundef %2236)
  store i32 %2237, ptr %22, align 4, !tbaa !9
  %2238 = load i32, ptr %21, align 4, !tbaa !9
  %2239 = load i32, ptr %22, align 4, !tbaa !9
  %2240 = icmp ne i32 %2238, %2239
  %2241 = zext i1 %2240 to i32
  store i32 %2241, ptr %21, align 4, !tbaa !9
  %2242 = load i32, ptr %21, align 4, !tbaa !9
  %2243 = icmp ne i32 %2242, 0
  br i1 %2243, label %2244, label %2247

2244:                                             ; preds = %2185
  %2245 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2245, ptr %21, align 4, !tbaa !9
  %2246 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2246, ptr %8, align 4, !tbaa !9
  br label %2702

2247:                                             ; preds = %2185
  %2248 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2248, ptr %21, align 4, !tbaa !9
  %2249 = load ptr, ptr %4, align 8, !tbaa !5
  %2250 = getelementptr inbounds %struct.w2c_hermes, ptr %2249, i32 0, i32 6
  %2251 = load i32, ptr %21, align 4, !tbaa !9
  %2252 = zext i32 %2251 to i64
  %2253 = call i32 @i32_load(ptr noundef %2250, i64 noundef %2252)
  store i32 %2253, ptr %21, align 4, !tbaa !9
  %2254 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2254, ptr %17, align 4, !tbaa !9
  %2255 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2255, ptr %22, align 4, !tbaa !9
  %2256 = load i32, ptr %21, align 4, !tbaa !9
  %2257 = load i32, ptr %22, align 4, !tbaa !9
  %2258 = icmp ult i32 %2256, %2257
  %2259 = zext i1 %2258 to i32
  store i32 %2259, ptr %21, align 4, !tbaa !9
  %2260 = load i32, ptr %21, align 4, !tbaa !9
  %2261 = icmp ne i32 %2260, 0
  br i1 %2261, label %2262, label %2360

2262:                                             ; preds = %2247
  %2263 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2263, ptr %21, align 4, !tbaa !9
  %2264 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2264, ptr %22, align 4, !tbaa !9
  %2265 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2265, ptr %23, align 4, !tbaa !9
  %2266 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2266, ptr %24, align 4, !tbaa !9
  %2267 = load i32, ptr %24, align 4, !tbaa !9
  %2268 = load i32, ptr %23, align 4, !tbaa !9
  %2269 = sub i32 %2268, %2267
  store i32 %2269, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %2270 = load i32, ptr %23, align 4, !tbaa !9
  %2271 = load i32, ptr %24, align 4, !tbaa !9
  %2272 = and i32 %2271, 31
  %2273 = ashr i32 %2270, %2272
  store i32 %2273, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %2274 = load i32, ptr %24, align 4, !tbaa !9
  %2275 = load i32, ptr %23, align 4, !tbaa !9
  %2276 = add i32 %2275, %2274
  store i32 %2276, ptr %23, align 4, !tbaa !9
  store i32 -2, ptr %24, align 4, !tbaa !9
  %2277 = load i32, ptr %24, align 4, !tbaa !9
  %2278 = icmp eq i32 %2277, 0
  %2279 = xor i1 %2278, true
  %2280 = xor i1 %2279, true
  %2281 = zext i1 %2280 to i32
  %2282 = sext i32 %2281 to i64
  %2283 = call i64 @llvm.expect.i64(i64 %2282, i64 0)
  %2284 = icmp ne i64 %2283, 0
  br i1 %2284, label %2285, label %2287

2285:                                             ; preds = %2262
  call void @wasm_rt_trap(i32 noundef 3) #8
  unreachable

2286:                                             ; No predecessors!
  br label %2309

2287:                                             ; preds = %2262
  %2288 = load i32, ptr %23, align 4, !tbaa !9
  %2289 = icmp eq i32 %2288, -2147483648
  br i1 %2289, label %2290, label %2293

2290:                                             ; preds = %2287
  %2291 = load i32, ptr %24, align 4, !tbaa !9
  %2292 = icmp eq i32 %2291, -1
  br label %2293

2293:                                             ; preds = %2290, %2287
  %2294 = phi i1 [ false, %2287 ], [ %2292, %2290 ]
  %2295 = xor i1 %2294, true
  %2296 = xor i1 %2295, true
  %2297 = zext i1 %2296 to i32
  %2298 = sext i32 %2297 to i64
  %2299 = call i64 @llvm.expect.i64(i64 %2298, i64 0)
  %2300 = icmp ne i64 %2299, 0
  br i1 %2300, label %2301, label %2303

2301:                                             ; preds = %2293
  call void @wasm_rt_trap(i32 noundef 2) #8
  unreachable

2302:                                             ; No predecessors!
  br label %2307

2303:                                             ; preds = %2293
  %2304 = load i32, ptr %23, align 4, !tbaa !9
  %2305 = load i32, ptr %24, align 4, !tbaa !9
  %2306 = sdiv i32 %2304, %2305
  br label %2307

2307:                                             ; preds = %2303, %2302
  %2308 = phi i32 [ 0, %2302 ], [ %2306, %2303 ]
  br label %2309

2309:                                             ; preds = %2307, %2286
  %2310 = phi i32 [ 0, %2286 ], [ %2308, %2307 ]
  store i32 %2310, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %2311 = load i32, ptr %24, align 4, !tbaa !9
  %2312 = and i32 %2311, 31
  %2313 = load i32, ptr %23, align 4, !tbaa !9
  %2314 = shl i32 %2313, %2312
  store i32 %2314, ptr %23, align 4, !tbaa !9
  %2315 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %2315, ptr %7, align 4, !tbaa !9
  %2316 = load i32, ptr %23, align 4, !tbaa !9
  %2317 = load i32, ptr %22, align 4, !tbaa !9
  %2318 = add i32 %2317, %2316
  store i32 %2318, ptr %22, align 4, !tbaa !9
  %2319 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2319, ptr %23, align 4, !tbaa !9
  %2320 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2320, ptr %24, align 4, !tbaa !9
  %2321 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2321, ptr %25, align 4, !tbaa !9
  %2322 = load i32, ptr %25, align 4, !tbaa !9
  %2323 = load i32, ptr %24, align 4, !tbaa !9
  %2324 = sub i32 %2323, %2322
  store i32 %2324, ptr %24, align 4, !tbaa !9
  %2325 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %2325, ptr %6, align 4, !tbaa !9
  %2326 = load ptr, ptr %4, align 8, !tbaa !5
  %2327 = load i32, ptr %22, align 4, !tbaa !9
  %2328 = load i32, ptr %23, align 4, !tbaa !9
  %2329 = load i32, ptr %24, align 4, !tbaa !9
  %2330 = call i32 @w2c_hermes_memmove(ptr noundef %2326, i32 noundef %2327, i32 noundef %2328, i32 noundef %2329)
  store i32 %2330, ptr %22, align 4, !tbaa !9
  %2331 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2331, ptr %23, align 4, !tbaa !9
  %2332 = load i32, ptr %23, align 4, !tbaa !9
  %2333 = load i32, ptr %22, align 4, !tbaa !9
  %2334 = add i32 %2333, %2332
  store i32 %2334, ptr %22, align 4, !tbaa !9
  %2335 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2335, ptr %8, align 4, !tbaa !9
  %2336 = load ptr, ptr %4, align 8, !tbaa !5
  %2337 = getelementptr inbounds %struct.w2c_hermes, ptr %2336, i32 0, i32 6
  %2338 = load i32, ptr %21, align 4, !tbaa !9
  %2339 = zext i32 %2338 to i64
  %2340 = add i64 %2339, 8
  %2341 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2337, i64 noundef %2340, i32 noundef %2341)
  %2342 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2342, ptr %21, align 4, !tbaa !9
  %2343 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2343, ptr %22, align 4, !tbaa !9
  %2344 = load ptr, ptr %4, align 8, !tbaa !5
  %2345 = getelementptr inbounds %struct.w2c_hermes, ptr %2344, i32 0, i32 6
  %2346 = load i32, ptr %22, align 4, !tbaa !9
  %2347 = zext i32 %2346 to i64
  %2348 = add i64 %2347, 4
  %2349 = call i32 @i32_load(ptr noundef %2345, i64 noundef %2348)
  store i32 %2349, ptr %22, align 4, !tbaa !9
  %2350 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2350, ptr %23, align 4, !tbaa !9
  %2351 = load i32, ptr %23, align 4, !tbaa !9
  %2352 = load i32, ptr %22, align 4, !tbaa !9
  %2353 = add i32 %2352, %2351
  store i32 %2353, ptr %22, align 4, !tbaa !9
  %2354 = load ptr, ptr %4, align 8, !tbaa !5
  %2355 = getelementptr inbounds %struct.w2c_hermes, ptr %2354, i32 0, i32 6
  %2356 = load i32, ptr %21, align 4, !tbaa !9
  %2357 = zext i32 %2356 to i64
  %2358 = add i64 %2357, 4
  %2359 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2355, i64 noundef %2358, i32 noundef %2359)
  br label %2702

2360:                                             ; preds = %2247
  store i32 1, ptr %21, align 4, !tbaa !9
  %2361 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2361, ptr %22, align 4, !tbaa !9
  %2362 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2362, ptr %23, align 4, !tbaa !9
  %2363 = load i32, ptr %23, align 4, !tbaa !9
  %2364 = load i32, ptr %22, align 4, !tbaa !9
  %2365 = sub i32 %2364, %2363
  store i32 %2365, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %2366 = load i32, ptr %22, align 4, !tbaa !9
  %2367 = load i32, ptr %23, align 4, !tbaa !9
  %2368 = and i32 %2367, 31
  %2369 = ashr i32 %2366, %2368
  store i32 %2369, ptr %22, align 4, !tbaa !9
  %2370 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2370, ptr %23, align 4, !tbaa !9
  %2371 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2371, ptr %24, align 4, !tbaa !9
  %2372 = load i32, ptr %23, align 4, !tbaa !9
  %2373 = load i32, ptr %24, align 4, !tbaa !9
  %2374 = icmp eq i32 %2372, %2373
  %2375 = zext i1 %2374 to i32
  store i32 %2375, ptr %23, align 4, !tbaa !9
  %2376 = load i32, ptr %23, align 4, !tbaa !9
  %2377 = icmp ne i32 %2376, 0
  br i1 %2377, label %2378, label %2380

2378:                                             ; preds = %2360
  %2379 = load i32, ptr %21, align 4, !tbaa !9
  br label %2382

2380:                                             ; preds = %2360
  %2381 = load i32, ptr %22, align 4, !tbaa !9
  br label %2382

2382:                                             ; preds = %2380, %2378
  %2383 = phi i32 [ %2379, %2378 ], [ %2381, %2380 ]
  store i32 %2383, ptr %21, align 4, !tbaa !9
  %2384 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2384, ptr %8, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %2385 = load i32, ptr %21, align 4, !tbaa !9
  %2386 = load i32, ptr %22, align 4, !tbaa !9
  %2387 = icmp uge i32 %2385, %2386
  %2388 = zext i1 %2387 to i32
  store i32 %2388, ptr %21, align 4, !tbaa !9
  %2389 = load i32, ptr %21, align 4, !tbaa !9
  %2390 = icmp ne i32 %2389, 0
  br i1 %2390, label %2391, label %2392

2391:                                             ; preds = %2382
  br label %3850

2392:                                             ; preds = %2382
  %2393 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2393, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %2394 = load i32, ptr %22, align 4, !tbaa !9
  %2395 = and i32 %2394, 31
  %2396 = load i32, ptr %21, align 4, !tbaa !9
  %2397 = shl i32 %2396, %2395
  store i32 %2397, ptr %21, align 4, !tbaa !9
  %2398 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2398, ptr %7, align 4, !tbaa !9
  %2399 = load ptr, ptr %4, align 8, !tbaa !5
  %2400 = load i32, ptr %21, align 4, !tbaa !9
  %2401 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %2399, i32 noundef %2400)
  store i32 %2401, ptr %21, align 4, !tbaa !9
  %2402 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2402, ptr %18, align 4, !tbaa !9
  %2403 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2403, ptr %22, align 4, !tbaa !9
  %2404 = load i32, ptr %22, align 4, !tbaa !9
  %2405 = load i32, ptr %21, align 4, !tbaa !9
  %2406 = add i32 %2405, %2404
  store i32 %2406, ptr %21, align 4, !tbaa !9
  %2407 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2407, ptr %16, align 4, !tbaa !9
  %2408 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %2408, ptr %21, align 4, !tbaa !9
  %2409 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2409, ptr %22, align 4, !tbaa !9
  store i32 -4, ptr %23, align 4, !tbaa !9
  %2410 = load i32, ptr %23, align 4, !tbaa !9
  %2411 = load i32, ptr %22, align 4, !tbaa !9
  %2412 = and i32 %2411, %2410
  store i32 %2412, ptr %22, align 4, !tbaa !9
  %2413 = load i32, ptr %22, align 4, !tbaa !9
  %2414 = load i32, ptr %21, align 4, !tbaa !9
  %2415 = add i32 %2414, %2413
  store i32 %2415, ptr %21, align 4, !tbaa !9
  %2416 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2416, ptr %7, align 4, !tbaa !9
  %2417 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2417, ptr %8, align 4, !tbaa !9
  %2418 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2418, ptr %21, align 4, !tbaa !9
  %2419 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2419, ptr %22, align 4, !tbaa !9
  %2420 = load i32, ptr %21, align 4, !tbaa !9
  %2421 = load i32, ptr %22, align 4, !tbaa !9
  %2422 = icmp eq i32 %2420, %2421
  %2423 = zext i1 %2422 to i32
  store i32 %2423, ptr %21, align 4, !tbaa !9
  %2424 = load i32, ptr %21, align 4, !tbaa !9
  %2425 = icmp ne i32 %2424, 0
  br i1 %2425, label %2426, label %2427

2426:                                             ; preds = %2392
  br label %2650

2427:                                             ; preds = %2392
  %2428 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2428, ptr %21, align 4, !tbaa !9
  %2429 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2429, ptr %22, align 4, !tbaa !9
  %2430 = load i32, ptr %22, align 4, !tbaa !9
  %2431 = load i32, ptr %21, align 4, !tbaa !9
  %2432 = sub i32 %2431, %2430
  store i32 %2432, ptr %21, align 4, !tbaa !9
  %2433 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2433, ptr %6, align 4, !tbaa !9
  store i32 -4, ptr %22, align 4, !tbaa !9
  %2434 = load i32, ptr %22, align 4, !tbaa !9
  %2435 = load i32, ptr %21, align 4, !tbaa !9
  %2436 = and i32 %2435, %2434
  store i32 %2436, ptr %21, align 4, !tbaa !9
  %2437 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2437, ptr %12, align 4, !tbaa !9
  %2438 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2438, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %2439 = load i32, ptr %22, align 4, !tbaa !9
  %2440 = load i32, ptr %21, align 4, !tbaa !9
  %2441 = sub i32 %2440, %2439
  store i32 %2441, ptr %21, align 4, !tbaa !9
  %2442 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2442, ptr %9, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %2443 = load i32, ptr %22, align 4, !tbaa !9
  %2444 = and i32 %2443, 31
  %2445 = load i32, ptr %21, align 4, !tbaa !9
  %2446 = lshr i32 %2445, %2444
  store i32 %2446, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %2447 = load i32, ptr %22, align 4, !tbaa !9
  %2448 = load i32, ptr %21, align 4, !tbaa !9
  %2449 = add i32 %2448, %2447
  store i32 %2449, ptr %21, align 4, !tbaa !9
  store i32 7, ptr %22, align 4, !tbaa !9
  %2450 = load i32, ptr %22, align 4, !tbaa !9
  %2451 = load i32, ptr %21, align 4, !tbaa !9
  %2452 = and i32 %2451, %2450
  store i32 %2452, ptr %21, align 4, !tbaa !9
  %2453 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2453, ptr %13, align 4, !tbaa !9
  %2454 = load i32, ptr %21, align 4, !tbaa !9
  %2455 = icmp ne i32 %2454, 0
  %2456 = xor i1 %2455, true
  %2457 = zext i1 %2456 to i32
  store i32 %2457, ptr %21, align 4, !tbaa !9
  %2458 = load i32, ptr %21, align 4, !tbaa !9
  %2459 = icmp ne i32 %2458, 0
  br i1 %2459, label %2460, label %2463

2460:                                             ; preds = %2427
  %2461 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2461, ptr %21, align 4, !tbaa !9
  %2462 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2462, ptr %6, align 4, !tbaa !9
  br label %2504

2463:                                             ; preds = %2427
  store i32 0, ptr %21, align 4, !tbaa !9
  %2464 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2464, ptr %8, align 4, !tbaa !9
  %2465 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2465, ptr %21, align 4, !tbaa !9
  %2466 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2466, ptr %6, align 4, !tbaa !9
  br label %2467

2467:                                             ; preds = %2502, %2463
  %2468 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2468, ptr %21, align 4, !tbaa !9
  %2469 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2469, ptr %22, align 4, !tbaa !9
  %2470 = load ptr, ptr %4, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.w2c_hermes, ptr %2470, i32 0, i32 6
  %2472 = load i32, ptr %22, align 4, !tbaa !9
  %2473 = zext i32 %2472 to i64
  %2474 = call i32 @i32_load(ptr noundef %2471, i64 noundef %2473)
  store i32 %2474, ptr %22, align 4, !tbaa !9
  %2475 = load ptr, ptr %4, align 8, !tbaa !5
  %2476 = getelementptr inbounds %struct.w2c_hermes, ptr %2475, i32 0, i32 6
  %2477 = load i32, ptr %21, align 4, !tbaa !9
  %2478 = zext i32 %2477 to i64
  %2479 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2476, i64 noundef %2478, i32 noundef %2479)
  %2480 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2480, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %2481 = load i32, ptr %22, align 4, !tbaa !9
  %2482 = load i32, ptr %21, align 4, !tbaa !9
  %2483 = add i32 %2482, %2481
  store i32 %2483, ptr %21, align 4, !tbaa !9
  %2484 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2484, ptr %10, align 4, !tbaa !9
  %2485 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2485, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %2486 = load i32, ptr %22, align 4, !tbaa !9
  %2487 = load i32, ptr %21, align 4, !tbaa !9
  %2488 = add i32 %2487, %2486
  store i32 %2488, ptr %21, align 4, !tbaa !9
  %2489 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2489, ptr %6, align 4, !tbaa !9
  %2490 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2490, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %2491 = load i32, ptr %22, align 4, !tbaa !9
  %2492 = load i32, ptr %21, align 4, !tbaa !9
  %2493 = add i32 %2492, %2491
  store i32 %2493, ptr %21, align 4, !tbaa !9
  %2494 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2494, ptr %8, align 4, !tbaa !9
  %2495 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %2495, ptr %22, align 4, !tbaa !9
  %2496 = load i32, ptr %21, align 4, !tbaa !9
  %2497 = load i32, ptr %22, align 4, !tbaa !9
  %2498 = icmp ne i32 %2496, %2497
  %2499 = zext i1 %2498 to i32
  store i32 %2499, ptr %21, align 4, !tbaa !9
  %2500 = load i32, ptr %21, align 4, !tbaa !9
  %2501 = icmp ne i32 %2500, 0
  br i1 %2501, label %2502, label %2503

2502:                                             ; preds = %2467
  br label %2467

2503:                                             ; preds = %2467
  br label %2504

2504:                                             ; preds = %2503, %2460
  %2505 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2505, ptr %21, align 4, !tbaa !9
  %2506 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %2506, ptr %22, align 4, !tbaa !9
  %2507 = load i32, ptr %22, align 4, !tbaa !9
  %2508 = load i32, ptr %21, align 4, !tbaa !9
  %2509 = add i32 %2508, %2507
  store i32 %2509, ptr %21, align 4, !tbaa !9
  %2510 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2510, ptr %8, align 4, !tbaa !9
  %2511 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2511, ptr %21, align 4, !tbaa !9
  store i32 28, ptr %22, align 4, !tbaa !9
  %2512 = load i32, ptr %21, align 4, !tbaa !9
  %2513 = load i32, ptr %22, align 4, !tbaa !9
  %2514 = icmp ult i32 %2512, %2513
  %2515 = zext i1 %2514 to i32
  store i32 %2515, ptr %21, align 4, !tbaa !9
  %2516 = load i32, ptr %21, align 4, !tbaa !9
  %2517 = icmp ne i32 %2516, 0
  br i1 %2517, label %2518, label %2519

2518:                                             ; preds = %2504
  br label %2650

2519:                                             ; preds = %2504
  br label %2520

2520:                                             ; preds = %2648, %2519
  %2521 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2521, ptr %21, align 4, !tbaa !9
  %2522 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2522, ptr %22, align 4, !tbaa !9
  %2523 = load ptr, ptr %4, align 8, !tbaa !5
  %2524 = getelementptr inbounds %struct.w2c_hermes, ptr %2523, i32 0, i32 6
  %2525 = load i32, ptr %22, align 4, !tbaa !9
  %2526 = zext i32 %2525 to i64
  %2527 = call i32 @i32_load(ptr noundef %2524, i64 noundef %2526)
  store i32 %2527, ptr %22, align 4, !tbaa !9
  %2528 = load ptr, ptr %4, align 8, !tbaa !5
  %2529 = getelementptr inbounds %struct.w2c_hermes, ptr %2528, i32 0, i32 6
  %2530 = load i32, ptr %21, align 4, !tbaa !9
  %2531 = zext i32 %2530 to i64
  %2532 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2529, i64 noundef %2531, i32 noundef %2532)
  %2533 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2533, ptr %21, align 4, !tbaa !9
  %2534 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2534, ptr %22, align 4, !tbaa !9
  %2535 = load ptr, ptr %4, align 8, !tbaa !5
  %2536 = getelementptr inbounds %struct.w2c_hermes, ptr %2535, i32 0, i32 6
  %2537 = load i32, ptr %22, align 4, !tbaa !9
  %2538 = zext i32 %2537 to i64
  %2539 = add i64 %2538, 4
  %2540 = call i32 @i32_load(ptr noundef %2536, i64 noundef %2539)
  store i32 %2540, ptr %22, align 4, !tbaa !9
  %2541 = load ptr, ptr %4, align 8, !tbaa !5
  %2542 = getelementptr inbounds %struct.w2c_hermes, ptr %2541, i32 0, i32 6
  %2543 = load i32, ptr %21, align 4, !tbaa !9
  %2544 = zext i32 %2543 to i64
  %2545 = add i64 %2544, 4
  %2546 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2542, i64 noundef %2545, i32 noundef %2546)
  %2547 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2547, ptr %21, align 4, !tbaa !9
  %2548 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2548, ptr %22, align 4, !tbaa !9
  %2549 = load ptr, ptr %4, align 8, !tbaa !5
  %2550 = getelementptr inbounds %struct.w2c_hermes, ptr %2549, i32 0, i32 6
  %2551 = load i32, ptr %22, align 4, !tbaa !9
  %2552 = zext i32 %2551 to i64
  %2553 = add i64 %2552, 8
  %2554 = call i32 @i32_load(ptr noundef %2550, i64 noundef %2553)
  store i32 %2554, ptr %22, align 4, !tbaa !9
  %2555 = load ptr, ptr %4, align 8, !tbaa !5
  %2556 = getelementptr inbounds %struct.w2c_hermes, ptr %2555, i32 0, i32 6
  %2557 = load i32, ptr %21, align 4, !tbaa !9
  %2558 = zext i32 %2557 to i64
  %2559 = add i64 %2558, 8
  %2560 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2556, i64 noundef %2559, i32 noundef %2560)
  %2561 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2561, ptr %21, align 4, !tbaa !9
  %2562 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2562, ptr %22, align 4, !tbaa !9
  %2563 = load ptr, ptr %4, align 8, !tbaa !5
  %2564 = getelementptr inbounds %struct.w2c_hermes, ptr %2563, i32 0, i32 6
  %2565 = load i32, ptr %22, align 4, !tbaa !9
  %2566 = zext i32 %2565 to i64
  %2567 = add i64 %2566, 12
  %2568 = call i32 @i32_load(ptr noundef %2564, i64 noundef %2567)
  store i32 %2568, ptr %22, align 4, !tbaa !9
  %2569 = load ptr, ptr %4, align 8, !tbaa !5
  %2570 = getelementptr inbounds %struct.w2c_hermes, ptr %2569, i32 0, i32 6
  %2571 = load i32, ptr %21, align 4, !tbaa !9
  %2572 = zext i32 %2571 to i64
  %2573 = add i64 %2572, 12
  %2574 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2570, i64 noundef %2573, i32 noundef %2574)
  %2575 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2575, ptr %21, align 4, !tbaa !9
  %2576 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2576, ptr %22, align 4, !tbaa !9
  %2577 = load ptr, ptr %4, align 8, !tbaa !5
  %2578 = getelementptr inbounds %struct.w2c_hermes, ptr %2577, i32 0, i32 6
  %2579 = load i32, ptr %22, align 4, !tbaa !9
  %2580 = zext i32 %2579 to i64
  %2581 = add i64 %2580, 16
  %2582 = call i32 @i32_load(ptr noundef %2578, i64 noundef %2581)
  store i32 %2582, ptr %22, align 4, !tbaa !9
  %2583 = load ptr, ptr %4, align 8, !tbaa !5
  %2584 = getelementptr inbounds %struct.w2c_hermes, ptr %2583, i32 0, i32 6
  %2585 = load i32, ptr %21, align 4, !tbaa !9
  %2586 = zext i32 %2585 to i64
  %2587 = add i64 %2586, 16
  %2588 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2584, i64 noundef %2587, i32 noundef %2588)
  %2589 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2589, ptr %21, align 4, !tbaa !9
  %2590 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2590, ptr %22, align 4, !tbaa !9
  %2591 = load ptr, ptr %4, align 8, !tbaa !5
  %2592 = getelementptr inbounds %struct.w2c_hermes, ptr %2591, i32 0, i32 6
  %2593 = load i32, ptr %22, align 4, !tbaa !9
  %2594 = zext i32 %2593 to i64
  %2595 = add i64 %2594, 20
  %2596 = call i32 @i32_load(ptr noundef %2592, i64 noundef %2595)
  store i32 %2596, ptr %22, align 4, !tbaa !9
  %2597 = load ptr, ptr %4, align 8, !tbaa !5
  %2598 = getelementptr inbounds %struct.w2c_hermes, ptr %2597, i32 0, i32 6
  %2599 = load i32, ptr %21, align 4, !tbaa !9
  %2600 = zext i32 %2599 to i64
  %2601 = add i64 %2600, 20
  %2602 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2598, i64 noundef %2601, i32 noundef %2602)
  %2603 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2603, ptr %21, align 4, !tbaa !9
  %2604 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2604, ptr %22, align 4, !tbaa !9
  %2605 = load ptr, ptr %4, align 8, !tbaa !5
  %2606 = getelementptr inbounds %struct.w2c_hermes, ptr %2605, i32 0, i32 6
  %2607 = load i32, ptr %22, align 4, !tbaa !9
  %2608 = zext i32 %2607 to i64
  %2609 = add i64 %2608, 24
  %2610 = call i32 @i32_load(ptr noundef %2606, i64 noundef %2609)
  store i32 %2610, ptr %22, align 4, !tbaa !9
  %2611 = load ptr, ptr %4, align 8, !tbaa !5
  %2612 = getelementptr inbounds %struct.w2c_hermes, ptr %2611, i32 0, i32 6
  %2613 = load i32, ptr %21, align 4, !tbaa !9
  %2614 = zext i32 %2613 to i64
  %2615 = add i64 %2614, 24
  %2616 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2612, i64 noundef %2615, i32 noundef %2616)
  %2617 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2617, ptr %21, align 4, !tbaa !9
  %2618 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2618, ptr %22, align 4, !tbaa !9
  %2619 = load ptr, ptr %4, align 8, !tbaa !5
  %2620 = getelementptr inbounds %struct.w2c_hermes, ptr %2619, i32 0, i32 6
  %2621 = load i32, ptr %22, align 4, !tbaa !9
  %2622 = zext i32 %2621 to i64
  %2623 = add i64 %2622, 28
  %2624 = call i32 @i32_load(ptr noundef %2620, i64 noundef %2623)
  store i32 %2624, ptr %22, align 4, !tbaa !9
  %2625 = load ptr, ptr %4, align 8, !tbaa !5
  %2626 = getelementptr inbounds %struct.w2c_hermes, ptr %2625, i32 0, i32 6
  %2627 = load i32, ptr %21, align 4, !tbaa !9
  %2628 = zext i32 %2627 to i64
  %2629 = add i64 %2628, 28
  %2630 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2626, i64 noundef %2629, i32 noundef %2630)
  %2631 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2631, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %2632 = load i32, ptr %22, align 4, !tbaa !9
  %2633 = load i32, ptr %21, align 4, !tbaa !9
  %2634 = add i32 %2633, %2632
  store i32 %2634, ptr %21, align 4, !tbaa !9
  %2635 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2635, ptr %10, align 4, !tbaa !9
  %2636 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2636, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %2637 = load i32, ptr %22, align 4, !tbaa !9
  %2638 = load i32, ptr %21, align 4, !tbaa !9
  %2639 = add i32 %2638, %2637
  store i32 %2639, ptr %21, align 4, !tbaa !9
  %2640 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2640, ptr %6, align 4, !tbaa !9
  %2641 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2641, ptr %22, align 4, !tbaa !9
  %2642 = load i32, ptr %21, align 4, !tbaa !9
  %2643 = load i32, ptr %22, align 4, !tbaa !9
  %2644 = icmp ne i32 %2642, %2643
  %2645 = zext i1 %2644 to i32
  store i32 %2645, ptr %21, align 4, !tbaa !9
  %2646 = load i32, ptr %21, align 4, !tbaa !9
  %2647 = icmp ne i32 %2646, 0
  br i1 %2647, label %2648, label %2649

2648:                                             ; preds = %2520
  br label %2520

2649:                                             ; preds = %2520
  br label %2650

2650:                                             ; preds = %2649, %2518, %2426
  %2651 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2651, ptr %21, align 4, !tbaa !9
  %2652 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %2652, ptr %22, align 4, !tbaa !9
  %2653 = load ptr, ptr %4, align 8, !tbaa !5
  %2654 = getelementptr inbounds %struct.w2c_hermes, ptr %2653, i32 0, i32 6
  %2655 = load i32, ptr %21, align 4, !tbaa !9
  %2656 = zext i32 %2655 to i64
  %2657 = add i64 %2656, 12
  %2658 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2654, i64 noundef %2657, i32 noundef %2658)
  %2659 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2659, ptr %21, align 4, !tbaa !9
  %2660 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2660, ptr %22, align 4, !tbaa !9
  %2661 = load ptr, ptr %4, align 8, !tbaa !5
  %2662 = getelementptr inbounds %struct.w2c_hermes, ptr %2661, i32 0, i32 6
  %2663 = load i32, ptr %21, align 4, !tbaa !9
  %2664 = zext i32 %2663 to i64
  %2665 = add i64 %2664, 8
  %2666 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2662, i64 noundef %2665, i32 noundef %2666)
  %2667 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2667, ptr %21, align 4, !tbaa !9
  %2668 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2668, ptr %22, align 4, !tbaa !9
  %2669 = load ptr, ptr %4, align 8, !tbaa !5
  %2670 = getelementptr inbounds %struct.w2c_hermes, ptr %2669, i32 0, i32 6
  %2671 = load i32, ptr %21, align 4, !tbaa !9
  %2672 = zext i32 %2671 to i64
  %2673 = add i64 %2672, 4
  %2674 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2670, i64 noundef %2673, i32 noundef %2674)
  %2675 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2675, ptr %21, align 4, !tbaa !9
  %2676 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %2676, ptr %22, align 4, !tbaa !9
  %2677 = load ptr, ptr %4, align 8, !tbaa !5
  %2678 = getelementptr inbounds %struct.w2c_hermes, ptr %2677, i32 0, i32 6
  %2679 = load i32, ptr %21, align 4, !tbaa !9
  %2680 = zext i32 %2679 to i64
  %2681 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2678, i64 noundef %2680, i32 noundef %2681)
  %2682 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2682, ptr %21, align 4, !tbaa !9
  %2683 = load i32, ptr %21, align 4, !tbaa !9
  %2684 = icmp ne i32 %2683, 0
  %2685 = xor i1 %2684, true
  %2686 = zext i1 %2685 to i32
  store i32 %2686, ptr %21, align 4, !tbaa !9
  %2687 = load i32, ptr %21, align 4, !tbaa !9
  %2688 = icmp ne i32 %2687, 0
  br i1 %2688, label %2689, label %2690

2689:                                             ; preds = %2650
  br label %2702

2690:                                             ; preds = %2650
  %2691 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2691, ptr %21, align 4, !tbaa !9
  %2692 = load ptr, ptr %4, align 8, !tbaa !5
  %2693 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %2692, i32 noundef %2693)
  %2694 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2694, ptr %21, align 4, !tbaa !9
  %2695 = load ptr, ptr %4, align 8, !tbaa !5
  %2696 = getelementptr inbounds %struct.w2c_hermes, ptr %2695, i32 0, i32 6
  %2697 = load i32, ptr %21, align 4, !tbaa !9
  %2698 = zext i32 %2697 to i64
  %2699 = add i64 %2698, 8
  %2700 = call i32 @i32_load(ptr noundef %2696, i64 noundef %2699)
  store i32 %2700, ptr %21, align 4, !tbaa !9
  %2701 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2701, ptr %8, align 4, !tbaa !9
  br label %2702

2702:                                             ; preds = %2690, %2689, %2309, %2244
  %2703 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2703, ptr %21, align 4, !tbaa !9
  %2704 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %2704, ptr %22, align 4, !tbaa !9
  %2705 = load ptr, ptr %4, align 8, !tbaa !5
  %2706 = getelementptr inbounds %struct.w2c_hermes, ptr %2705, i32 0, i32 6
  %2707 = load i32, ptr %21, align 4, !tbaa !9
  %2708 = zext i32 %2707 to i64
  %2709 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2706, i64 noundef %2708, i32 noundef %2709)
  %2710 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2710, ptr %21, align 4, !tbaa !9
  %2711 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2711, ptr %22, align 4, !tbaa !9
  %2712 = load ptr, ptr %4, align 8, !tbaa !5
  %2713 = getelementptr inbounds %struct.w2c_hermes, ptr %2712, i32 0, i32 6
  %2714 = load i32, ptr %22, align 4, !tbaa !9
  %2715 = zext i32 %2714 to i64
  %2716 = add i64 %2715, 8
  %2717 = call i32 @i32_load(ptr noundef %2713, i64 noundef %2716)
  store i32 %2717, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %2718 = load i32, ptr %23, align 4, !tbaa !9
  %2719 = load i32, ptr %22, align 4, !tbaa !9
  %2720 = add i32 %2719, %2718
  store i32 %2720, ptr %22, align 4, !tbaa !9
  %2721 = load ptr, ptr %4, align 8, !tbaa !5
  %2722 = getelementptr inbounds %struct.w2c_hermes, ptr %2721, i32 0, i32 6
  %2723 = load i32, ptr %21, align 4, !tbaa !9
  %2724 = zext i32 %2723 to i64
  %2725 = add i64 %2724, 8
  %2726 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2722, i64 noundef %2725, i32 noundef %2726)
  br label %3842

2727:                                             ; preds = %2156
  %2728 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2728, ptr %21, align 4, !tbaa !9
  %2729 = load ptr, ptr %4, align 8, !tbaa !5
  %2730 = getelementptr inbounds %struct.w2c_hermes, ptr %2729, i32 0, i32 6
  %2731 = load i32, ptr %21, align 4, !tbaa !9
  %2732 = zext i32 %2731 to i64
  %2733 = add i64 %2732, 8
  %2734 = call i32 @i32_load(ptr noundef %2730, i64 noundef %2733)
  store i32 %2734, ptr %21, align 4, !tbaa !9
  %2735 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2735, ptr %10, align 4, !tbaa !9
  %2736 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2736, ptr %22, align 4, !tbaa !9
  %2737 = load ptr, ptr %4, align 8, !tbaa !5
  %2738 = getelementptr inbounds %struct.w2c_hermes, ptr %2737, i32 0, i32 6
  %2739 = load i32, ptr %22, align 4, !tbaa !9
  %2740 = zext i32 %2739 to i64
  %2741 = add i64 %2740, 4
  %2742 = call i32 @i32_load(ptr noundef %2738, i64 noundef %2741)
  store i32 %2742, ptr %22, align 4, !tbaa !9
  %2743 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2743, ptr %6, align 4, !tbaa !9
  %2744 = load i32, ptr %22, align 4, !tbaa !9
  %2745 = load i32, ptr %21, align 4, !tbaa !9
  %2746 = sub i32 %2745, %2744
  store i32 %2746, ptr %21, align 4, !tbaa !9
  %2747 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2747, ptr %16, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %2748 = load i32, ptr %21, align 4, !tbaa !9
  %2749 = load i32, ptr %22, align 4, !tbaa !9
  %2750 = and i32 %2749, 31
  %2751 = ashr i32 %2748, %2750
  store i32 %2751, ptr %21, align 4, !tbaa !9
  %2752 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2752, ptr %18, align 4, !tbaa !9
  %2753 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2753, ptr %22, align 4, !tbaa !9
  %2754 = load ptr, ptr %4, align 8, !tbaa !5
  %2755 = getelementptr inbounds %struct.w2c_hermes, ptr %2754, i32 0, i32 6
  %2756 = load i32, ptr %22, align 4, !tbaa !9
  %2757 = zext i32 %2756 to i64
  %2758 = add i64 %2757, 12
  %2759 = call i32 @i32_load(ptr noundef %2755, i64 noundef %2758)
  store i32 %2759, ptr %22, align 4, !tbaa !9
  %2760 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2760, ptr %13, align 4, !tbaa !9
  %2761 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2761, ptr %23, align 4, !tbaa !9
  %2762 = load ptr, ptr %4, align 8, !tbaa !5
  %2763 = getelementptr inbounds %struct.w2c_hermes, ptr %2762, i32 0, i32 6
  %2764 = load i32, ptr %23, align 4, !tbaa !9
  %2765 = zext i32 %2764 to i64
  %2766 = call i32 @i32_load(ptr noundef %2763, i64 noundef %2765)
  store i32 %2766, ptr %23, align 4, !tbaa !9
  %2767 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %2767, ptr %8, align 4, !tbaa !9
  %2768 = load i32, ptr %23, align 4, !tbaa !9
  %2769 = load i32, ptr %22, align 4, !tbaa !9
  %2770 = sub i32 %2769, %2768
  store i32 %2770, ptr %22, align 4, !tbaa !9
  %2771 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2771, ptr %7, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %2772 = load i32, ptr %22, align 4, !tbaa !9
  %2773 = load i32, ptr %23, align 4, !tbaa !9
  %2774 = and i32 %2773, 31
  %2775 = ashr i32 %2772, %2774
  store i32 %2775, ptr %22, align 4, !tbaa !9
  %2776 = load i32, ptr %21, align 4, !tbaa !9
  %2777 = load i32, ptr %22, align 4, !tbaa !9
  %2778 = icmp ult i32 %2776, %2777
  %2779 = zext i1 %2778 to i32
  store i32 %2779, ptr %21, align 4, !tbaa !9
  %2780 = load i32, ptr %21, align 4, !tbaa !9
  %2781 = icmp ne i32 %2780, 0
  br i1 %2781, label %2782, label %3359

2782:                                             ; preds = %2727
  %2783 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2783, ptr %21, align 4, !tbaa !9
  %2784 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %2784, ptr %22, align 4, !tbaa !9
  %2785 = load i32, ptr %21, align 4, !tbaa !9
  %2786 = load i32, ptr %22, align 4, !tbaa !9
  %2787 = icmp ne i32 %2785, %2786
  %2788 = zext i1 %2787 to i32
  store i32 %2788, ptr %21, align 4, !tbaa !9
  %2789 = load i32, ptr %21, align 4, !tbaa !9
  %2790 = icmp ne i32 %2789, 0
  br i1 %2790, label %2791, label %2810

2791:                                             ; preds = %2782
  %2792 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %2792, ptr %21, align 4, !tbaa !9
  store i32 51264, ptr %22, align 4, !tbaa !9
  %2793 = load ptr, ptr %4, align 8, !tbaa !5
  %2794 = load i32, ptr %22, align 4, !tbaa !9
  %2795 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %2793, i32 noundef %2794)
  store i32 %2795, ptr %22, align 4, !tbaa !9
  %2796 = load ptr, ptr %4, align 8, !tbaa !5
  %2797 = getelementptr inbounds %struct.w2c_hermes, ptr %2796, i32 0, i32 6
  %2798 = load i32, ptr %21, align 4, !tbaa !9
  %2799 = zext i32 %2798 to i64
  %2800 = add i64 %2799, 12
  %2801 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2797, i64 noundef %2800, i32 noundef %2801)
  %2802 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2802, ptr %21, align 4, !tbaa !9
  %2803 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %2803, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %2804 = load i32, ptr %23, align 4, !tbaa !9
  %2805 = load i32, ptr %22, align 4, !tbaa !9
  %2806 = add i32 %2805, %2804
  store i32 %2806, ptr %22, align 4, !tbaa !9
  %2807 = load ptr, ptr %4, align 8, !tbaa !5
  %2808 = load i32, ptr %21, align 4, !tbaa !9
  %2809 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_back0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %2807, i32 noundef %2808, i32 noundef %2809)
  br label %3842

2810:                                             ; preds = %2782
  %2811 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %2811, ptr %21, align 4, !tbaa !9
  store i32 51264, ptr %22, align 4, !tbaa !9
  %2812 = load ptr, ptr %4, align 8, !tbaa !5
  %2813 = load i32, ptr %22, align 4, !tbaa !9
  %2814 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %2812, i32 noundef %2813)
  store i32 %2814, ptr %22, align 4, !tbaa !9
  %2815 = load ptr, ptr %4, align 8, !tbaa !5
  %2816 = getelementptr inbounds %struct.w2c_hermes, ptr %2815, i32 0, i32 6
  %2817 = load i32, ptr %21, align 4, !tbaa !9
  %2818 = zext i32 %2817 to i64
  %2819 = add i64 %2818, 12
  %2820 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2816, i64 noundef %2819, i32 noundef %2820)
  %2821 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2821, ptr %21, align 4, !tbaa !9
  %2822 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %2822, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %2823 = load i32, ptr %23, align 4, !tbaa !9
  %2824 = load i32, ptr %22, align 4, !tbaa !9
  %2825 = add i32 %2824, %2823
  store i32 %2825, ptr %22, align 4, !tbaa !9
  %2826 = load ptr, ptr %4, align 8, !tbaa !5
  %2827 = load i32, ptr %21, align 4, !tbaa !9
  %2828 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %2826, i32 noundef %2827, i32 noundef %2828)
  %2829 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2829, ptr %21, align 4, !tbaa !9
  %2830 = load ptr, ptr %4, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.w2c_hermes, ptr %2830, i32 0, i32 6
  %2832 = load i32, ptr %21, align 4, !tbaa !9
  %2833 = zext i32 %2832 to i64
  %2834 = add i64 %2833, 4
  %2835 = call i32 @i32_load(ptr noundef %2831, i64 noundef %2834)
  store i32 %2835, ptr %21, align 4, !tbaa !9
  %2836 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2836, ptr %6, align 4, !tbaa !9
  %2837 = load ptr, ptr %4, align 8, !tbaa !5
  %2838 = getelementptr inbounds %struct.w2c_hermes, ptr %2837, i32 0, i32 6
  %2839 = load i32, ptr %21, align 4, !tbaa !9
  %2840 = zext i32 %2839 to i64
  %2841 = call i32 @i32_load(ptr noundef %2838, i64 noundef %2840)
  store i32 %2841, ptr %21, align 4, !tbaa !9
  %2842 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2842, ptr %15, align 4, !tbaa !9
  %2843 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2843, ptr %21, align 4, !tbaa !9
  %2844 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2844, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %2845 = load i32, ptr %23, align 4, !tbaa !9
  %2846 = load i32, ptr %22, align 4, !tbaa !9
  %2847 = add i32 %2846, %2845
  store i32 %2847, ptr %22, align 4, !tbaa !9
  %2848 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2848, ptr %10, align 4, !tbaa !9
  %2849 = load ptr, ptr %4, align 8, !tbaa !5
  %2850 = getelementptr inbounds %struct.w2c_hermes, ptr %2849, i32 0, i32 6
  %2851 = load i32, ptr %21, align 4, !tbaa !9
  %2852 = zext i32 %2851 to i64
  %2853 = add i64 %2852, 4
  %2854 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2850, i64 noundef %2853, i32 noundef %2854)
  %2855 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2855, ptr %21, align 4, !tbaa !9
  %2856 = load ptr, ptr %4, align 8, !tbaa !5
  %2857 = getelementptr inbounds %struct.w2c_hermes, ptr %2856, i32 0, i32 6
  %2858 = load i32, ptr %21, align 4, !tbaa !9
  %2859 = zext i32 %2858 to i64
  %2860 = add i64 %2859, 8
  %2861 = call i32 @i32_load(ptr noundef %2857, i64 noundef %2860)
  store i32 %2861, ptr %21, align 4, !tbaa !9
  %2862 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2862, ptr %6, align 4, !tbaa !9
  %2863 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2863, ptr %22, align 4, !tbaa !9
  %2864 = load ptr, ptr %4, align 8, !tbaa !5
  %2865 = getelementptr inbounds %struct.w2c_hermes, ptr %2864, i32 0, i32 6
  %2866 = load i32, ptr %22, align 4, !tbaa !9
  %2867 = zext i32 %2866 to i64
  %2868 = add i64 %2867, 12
  %2869 = call i32 @i32_load(ptr noundef %2865, i64 noundef %2868)
  store i32 %2869, ptr %22, align 4, !tbaa !9
  %2870 = load i32, ptr %21, align 4, !tbaa !9
  %2871 = load i32, ptr %22, align 4, !tbaa !9
  %2872 = icmp ne i32 %2870, %2871
  %2873 = zext i1 %2872 to i32
  store i32 %2873, ptr %21, align 4, !tbaa !9
  %2874 = load i32, ptr %21, align 4, !tbaa !9
  %2875 = icmp ne i32 %2874, 0
  br i1 %2875, label %2876, label %2879

2876:                                             ; preds = %2810
  %2877 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2877, ptr %21, align 4, !tbaa !9
  %2878 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2878, ptr %8, align 4, !tbaa !9
  br label %3334

2879:                                             ; preds = %2810
  %2880 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2880, ptr %21, align 4, !tbaa !9
  %2881 = load ptr, ptr %4, align 8, !tbaa !5
  %2882 = getelementptr inbounds %struct.w2c_hermes, ptr %2881, i32 0, i32 6
  %2883 = load i32, ptr %21, align 4, !tbaa !9
  %2884 = zext i32 %2883 to i64
  %2885 = call i32 @i32_load(ptr noundef %2882, i64 noundef %2884)
  store i32 %2885, ptr %21, align 4, !tbaa !9
  %2886 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %2886, ptr %17, align 4, !tbaa !9
  %2887 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2887, ptr %22, align 4, !tbaa !9
  %2888 = load i32, ptr %21, align 4, !tbaa !9
  %2889 = load i32, ptr %22, align 4, !tbaa !9
  %2890 = icmp ult i32 %2888, %2889
  %2891 = zext i1 %2890 to i32
  store i32 %2891, ptr %21, align 4, !tbaa !9
  %2892 = load i32, ptr %21, align 4, !tbaa !9
  %2893 = icmp ne i32 %2892, 0
  br i1 %2893, label %2894, label %2992

2894:                                             ; preds = %2879
  %2895 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2895, ptr %21, align 4, !tbaa !9
  %2896 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2896, ptr %22, align 4, !tbaa !9
  %2897 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2897, ptr %23, align 4, !tbaa !9
  %2898 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2898, ptr %24, align 4, !tbaa !9
  %2899 = load i32, ptr %24, align 4, !tbaa !9
  %2900 = load i32, ptr %23, align 4, !tbaa !9
  %2901 = sub i32 %2900, %2899
  store i32 %2901, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %2902 = load i32, ptr %23, align 4, !tbaa !9
  %2903 = load i32, ptr %24, align 4, !tbaa !9
  %2904 = and i32 %2903, 31
  %2905 = ashr i32 %2902, %2904
  store i32 %2905, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %2906 = load i32, ptr %24, align 4, !tbaa !9
  %2907 = load i32, ptr %23, align 4, !tbaa !9
  %2908 = add i32 %2907, %2906
  store i32 %2908, ptr %23, align 4, !tbaa !9
  store i32 -2, ptr %24, align 4, !tbaa !9
  %2909 = load i32, ptr %24, align 4, !tbaa !9
  %2910 = icmp eq i32 %2909, 0
  %2911 = xor i1 %2910, true
  %2912 = xor i1 %2911, true
  %2913 = zext i1 %2912 to i32
  %2914 = sext i32 %2913 to i64
  %2915 = call i64 @llvm.expect.i64(i64 %2914, i64 0)
  %2916 = icmp ne i64 %2915, 0
  br i1 %2916, label %2917, label %2919

2917:                                             ; preds = %2894
  call void @wasm_rt_trap(i32 noundef 3) #8
  unreachable

2918:                                             ; No predecessors!
  br label %2941

2919:                                             ; preds = %2894
  %2920 = load i32, ptr %23, align 4, !tbaa !9
  %2921 = icmp eq i32 %2920, -2147483648
  br i1 %2921, label %2922, label %2925

2922:                                             ; preds = %2919
  %2923 = load i32, ptr %24, align 4, !tbaa !9
  %2924 = icmp eq i32 %2923, -1
  br label %2925

2925:                                             ; preds = %2922, %2919
  %2926 = phi i1 [ false, %2919 ], [ %2924, %2922 ]
  %2927 = xor i1 %2926, true
  %2928 = xor i1 %2927, true
  %2929 = zext i1 %2928 to i32
  %2930 = sext i32 %2929 to i64
  %2931 = call i64 @llvm.expect.i64(i64 %2930, i64 0)
  %2932 = icmp ne i64 %2931, 0
  br i1 %2932, label %2933, label %2935

2933:                                             ; preds = %2925
  call void @wasm_rt_trap(i32 noundef 2) #8
  unreachable

2934:                                             ; No predecessors!
  br label %2939

2935:                                             ; preds = %2925
  %2936 = load i32, ptr %23, align 4, !tbaa !9
  %2937 = load i32, ptr %24, align 4, !tbaa !9
  %2938 = sdiv i32 %2936, %2937
  br label %2939

2939:                                             ; preds = %2935, %2934
  %2940 = phi i32 [ 0, %2934 ], [ %2938, %2935 ]
  br label %2941

2941:                                             ; preds = %2939, %2918
  %2942 = phi i32 [ 0, %2918 ], [ %2940, %2939 ]
  store i32 %2942, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %2943 = load i32, ptr %24, align 4, !tbaa !9
  %2944 = and i32 %2943, 31
  %2945 = load i32, ptr %23, align 4, !tbaa !9
  %2946 = shl i32 %2945, %2944
  store i32 %2946, ptr %23, align 4, !tbaa !9
  %2947 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %2947, ptr %7, align 4, !tbaa !9
  %2948 = load i32, ptr %23, align 4, !tbaa !9
  %2949 = load i32, ptr %22, align 4, !tbaa !9
  %2950 = add i32 %2949, %2948
  store i32 %2950, ptr %22, align 4, !tbaa !9
  %2951 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2951, ptr %23, align 4, !tbaa !9
  %2952 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2952, ptr %24, align 4, !tbaa !9
  %2953 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2953, ptr %25, align 4, !tbaa !9
  %2954 = load i32, ptr %25, align 4, !tbaa !9
  %2955 = load i32, ptr %24, align 4, !tbaa !9
  %2956 = sub i32 %2955, %2954
  store i32 %2956, ptr %24, align 4, !tbaa !9
  %2957 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %2957, ptr %6, align 4, !tbaa !9
  %2958 = load ptr, ptr %4, align 8, !tbaa !5
  %2959 = load i32, ptr %22, align 4, !tbaa !9
  %2960 = load i32, ptr %23, align 4, !tbaa !9
  %2961 = load i32, ptr %24, align 4, !tbaa !9
  %2962 = call i32 @w2c_hermes_memmove(ptr noundef %2958, i32 noundef %2959, i32 noundef %2960, i32 noundef %2961)
  store i32 %2962, ptr %22, align 4, !tbaa !9
  %2963 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2963, ptr %23, align 4, !tbaa !9
  %2964 = load i32, ptr %23, align 4, !tbaa !9
  %2965 = load i32, ptr %22, align 4, !tbaa !9
  %2966 = add i32 %2965, %2964
  store i32 %2966, ptr %22, align 4, !tbaa !9
  %2967 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %2967, ptr %8, align 4, !tbaa !9
  %2968 = load ptr, ptr %4, align 8, !tbaa !5
  %2969 = getelementptr inbounds %struct.w2c_hermes, ptr %2968, i32 0, i32 6
  %2970 = load i32, ptr %21, align 4, !tbaa !9
  %2971 = zext i32 %2970 to i64
  %2972 = add i64 %2971, 8
  %2973 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2969, i64 noundef %2972, i32 noundef %2973)
  %2974 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2974, ptr %21, align 4, !tbaa !9
  %2975 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2975, ptr %22, align 4, !tbaa !9
  %2976 = load ptr, ptr %4, align 8, !tbaa !5
  %2977 = getelementptr inbounds %struct.w2c_hermes, ptr %2976, i32 0, i32 6
  %2978 = load i32, ptr %22, align 4, !tbaa !9
  %2979 = zext i32 %2978 to i64
  %2980 = add i64 %2979, 4
  %2981 = call i32 @i32_load(ptr noundef %2977, i64 noundef %2980)
  store i32 %2981, ptr %22, align 4, !tbaa !9
  %2982 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2982, ptr %23, align 4, !tbaa !9
  %2983 = load i32, ptr %23, align 4, !tbaa !9
  %2984 = load i32, ptr %22, align 4, !tbaa !9
  %2985 = add i32 %2984, %2983
  store i32 %2985, ptr %22, align 4, !tbaa !9
  %2986 = load ptr, ptr %4, align 8, !tbaa !5
  %2987 = getelementptr inbounds %struct.w2c_hermes, ptr %2986, i32 0, i32 6
  %2988 = load i32, ptr %21, align 4, !tbaa !9
  %2989 = zext i32 %2988 to i64
  %2990 = add i64 %2989, 4
  %2991 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %2987, i64 noundef %2990, i32 noundef %2991)
  br label %3334

2992:                                             ; preds = %2879
  store i32 1, ptr %21, align 4, !tbaa !9
  %2993 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2993, ptr %22, align 4, !tbaa !9
  %2994 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %2994, ptr %23, align 4, !tbaa !9
  %2995 = load i32, ptr %23, align 4, !tbaa !9
  %2996 = load i32, ptr %22, align 4, !tbaa !9
  %2997 = sub i32 %2996, %2995
  store i32 %2997, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %2998 = load i32, ptr %22, align 4, !tbaa !9
  %2999 = load i32, ptr %23, align 4, !tbaa !9
  %3000 = and i32 %2999, 31
  %3001 = ashr i32 %2998, %3000
  store i32 %3001, ptr %22, align 4, !tbaa !9
  %3002 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3002, ptr %23, align 4, !tbaa !9
  %3003 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %3003, ptr %24, align 4, !tbaa !9
  %3004 = load i32, ptr %23, align 4, !tbaa !9
  %3005 = load i32, ptr %24, align 4, !tbaa !9
  %3006 = icmp eq i32 %3004, %3005
  %3007 = zext i1 %3006 to i32
  store i32 %3007, ptr %23, align 4, !tbaa !9
  %3008 = load i32, ptr %23, align 4, !tbaa !9
  %3009 = icmp ne i32 %3008, 0
  br i1 %3009, label %3010, label %3012

3010:                                             ; preds = %2992
  %3011 = load i32, ptr %21, align 4, !tbaa !9
  br label %3014

3012:                                             ; preds = %2992
  %3013 = load i32, ptr %22, align 4, !tbaa !9
  br label %3014

3014:                                             ; preds = %3012, %3010
  %3015 = phi i32 [ %3011, %3010 ], [ %3013, %3012 ]
  store i32 %3015, ptr %21, align 4, !tbaa !9
  %3016 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3016, ptr %8, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %3017 = load i32, ptr %21, align 4, !tbaa !9
  %3018 = load i32, ptr %22, align 4, !tbaa !9
  %3019 = icmp uge i32 %3017, %3018
  %3020 = zext i1 %3019 to i32
  store i32 %3020, ptr %21, align 4, !tbaa !9
  %3021 = load i32, ptr %21, align 4, !tbaa !9
  %3022 = icmp ne i32 %3021, 0
  br i1 %3022, label %3023, label %3024

3023:                                             ; preds = %3014
  br label %3850

3024:                                             ; preds = %3014
  %3025 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3025, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %3026 = load i32, ptr %22, align 4, !tbaa !9
  %3027 = and i32 %3026, 31
  %3028 = load i32, ptr %21, align 4, !tbaa !9
  %3029 = shl i32 %3028, %3027
  store i32 %3029, ptr %21, align 4, !tbaa !9
  %3030 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3030, ptr %7, align 4, !tbaa !9
  %3031 = load ptr, ptr %4, align 8, !tbaa !5
  %3032 = load i32, ptr %21, align 4, !tbaa !9
  %3033 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %3031, i32 noundef %3032)
  store i32 %3033, ptr %21, align 4, !tbaa !9
  %3034 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3034, ptr %18, align 4, !tbaa !9
  %3035 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3035, ptr %22, align 4, !tbaa !9
  %3036 = load i32, ptr %22, align 4, !tbaa !9
  %3037 = load i32, ptr %21, align 4, !tbaa !9
  %3038 = add i32 %3037, %3036
  store i32 %3038, ptr %21, align 4, !tbaa !9
  %3039 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3039, ptr %16, align 4, !tbaa !9
  %3040 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %3040, ptr %21, align 4, !tbaa !9
  %3041 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3041, ptr %22, align 4, !tbaa !9
  store i32 -4, ptr %23, align 4, !tbaa !9
  %3042 = load i32, ptr %23, align 4, !tbaa !9
  %3043 = load i32, ptr %22, align 4, !tbaa !9
  %3044 = and i32 %3043, %3042
  store i32 %3044, ptr %22, align 4, !tbaa !9
  %3045 = load i32, ptr %22, align 4, !tbaa !9
  %3046 = load i32, ptr %21, align 4, !tbaa !9
  %3047 = add i32 %3046, %3045
  store i32 %3047, ptr %21, align 4, !tbaa !9
  %3048 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3048, ptr %7, align 4, !tbaa !9
  %3049 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3049, ptr %8, align 4, !tbaa !9
  %3050 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3050, ptr %21, align 4, !tbaa !9
  %3051 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3051, ptr %22, align 4, !tbaa !9
  %3052 = load i32, ptr %21, align 4, !tbaa !9
  %3053 = load i32, ptr %22, align 4, !tbaa !9
  %3054 = icmp eq i32 %3052, %3053
  %3055 = zext i1 %3054 to i32
  store i32 %3055, ptr %21, align 4, !tbaa !9
  %3056 = load i32, ptr %21, align 4, !tbaa !9
  %3057 = icmp ne i32 %3056, 0
  br i1 %3057, label %3058, label %3059

3058:                                             ; preds = %3024
  br label %3282

3059:                                             ; preds = %3024
  %3060 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3060, ptr %21, align 4, !tbaa !9
  %3061 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3061, ptr %22, align 4, !tbaa !9
  %3062 = load i32, ptr %22, align 4, !tbaa !9
  %3063 = load i32, ptr %21, align 4, !tbaa !9
  %3064 = sub i32 %3063, %3062
  store i32 %3064, ptr %21, align 4, !tbaa !9
  %3065 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3065, ptr %6, align 4, !tbaa !9
  store i32 -4, ptr %22, align 4, !tbaa !9
  %3066 = load i32, ptr %22, align 4, !tbaa !9
  %3067 = load i32, ptr %21, align 4, !tbaa !9
  %3068 = and i32 %3067, %3066
  store i32 %3068, ptr %21, align 4, !tbaa !9
  %3069 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3069, ptr %12, align 4, !tbaa !9
  %3070 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3070, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %3071 = load i32, ptr %22, align 4, !tbaa !9
  %3072 = load i32, ptr %21, align 4, !tbaa !9
  %3073 = sub i32 %3072, %3071
  store i32 %3073, ptr %21, align 4, !tbaa !9
  %3074 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3074, ptr %9, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %3075 = load i32, ptr %22, align 4, !tbaa !9
  %3076 = and i32 %3075, 31
  %3077 = load i32, ptr %21, align 4, !tbaa !9
  %3078 = lshr i32 %3077, %3076
  store i32 %3078, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %3079 = load i32, ptr %22, align 4, !tbaa !9
  %3080 = load i32, ptr %21, align 4, !tbaa !9
  %3081 = add i32 %3080, %3079
  store i32 %3081, ptr %21, align 4, !tbaa !9
  store i32 7, ptr %22, align 4, !tbaa !9
  %3082 = load i32, ptr %22, align 4, !tbaa !9
  %3083 = load i32, ptr %21, align 4, !tbaa !9
  %3084 = and i32 %3083, %3082
  store i32 %3084, ptr %21, align 4, !tbaa !9
  %3085 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3085, ptr %13, align 4, !tbaa !9
  %3086 = load i32, ptr %21, align 4, !tbaa !9
  %3087 = icmp ne i32 %3086, 0
  %3088 = xor i1 %3087, true
  %3089 = zext i1 %3088 to i32
  store i32 %3089, ptr %21, align 4, !tbaa !9
  %3090 = load i32, ptr %21, align 4, !tbaa !9
  %3091 = icmp ne i32 %3090, 0
  br i1 %3091, label %3092, label %3095

3092:                                             ; preds = %3059
  %3093 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3093, ptr %21, align 4, !tbaa !9
  %3094 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3094, ptr %6, align 4, !tbaa !9
  br label %3136

3095:                                             ; preds = %3059
  store i32 0, ptr %21, align 4, !tbaa !9
  %3096 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3096, ptr %8, align 4, !tbaa !9
  %3097 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3097, ptr %21, align 4, !tbaa !9
  %3098 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3098, ptr %6, align 4, !tbaa !9
  br label %3099

3099:                                             ; preds = %3134, %3095
  %3100 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3100, ptr %21, align 4, !tbaa !9
  %3101 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3101, ptr %22, align 4, !tbaa !9
  %3102 = load ptr, ptr %4, align 8, !tbaa !5
  %3103 = getelementptr inbounds %struct.w2c_hermes, ptr %3102, i32 0, i32 6
  %3104 = load i32, ptr %22, align 4, !tbaa !9
  %3105 = zext i32 %3104 to i64
  %3106 = call i32 @i32_load(ptr noundef %3103, i64 noundef %3105)
  store i32 %3106, ptr %22, align 4, !tbaa !9
  %3107 = load ptr, ptr %4, align 8, !tbaa !5
  %3108 = getelementptr inbounds %struct.w2c_hermes, ptr %3107, i32 0, i32 6
  %3109 = load i32, ptr %21, align 4, !tbaa !9
  %3110 = zext i32 %3109 to i64
  %3111 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3108, i64 noundef %3110, i32 noundef %3111)
  %3112 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3112, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %3113 = load i32, ptr %22, align 4, !tbaa !9
  %3114 = load i32, ptr %21, align 4, !tbaa !9
  %3115 = add i32 %3114, %3113
  store i32 %3115, ptr %21, align 4, !tbaa !9
  %3116 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3116, ptr %10, align 4, !tbaa !9
  %3117 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3117, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %3118 = load i32, ptr %22, align 4, !tbaa !9
  %3119 = load i32, ptr %21, align 4, !tbaa !9
  %3120 = add i32 %3119, %3118
  store i32 %3120, ptr %21, align 4, !tbaa !9
  %3121 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3121, ptr %6, align 4, !tbaa !9
  %3122 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3122, ptr %21, align 4, !tbaa !9
  store i32 1, ptr %22, align 4, !tbaa !9
  %3123 = load i32, ptr %22, align 4, !tbaa !9
  %3124 = load i32, ptr %21, align 4, !tbaa !9
  %3125 = add i32 %3124, %3123
  store i32 %3125, ptr %21, align 4, !tbaa !9
  %3126 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3126, ptr %8, align 4, !tbaa !9
  %3127 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %3127, ptr %22, align 4, !tbaa !9
  %3128 = load i32, ptr %21, align 4, !tbaa !9
  %3129 = load i32, ptr %22, align 4, !tbaa !9
  %3130 = icmp ne i32 %3128, %3129
  %3131 = zext i1 %3130 to i32
  store i32 %3131, ptr %21, align 4, !tbaa !9
  %3132 = load i32, ptr %21, align 4, !tbaa !9
  %3133 = icmp ne i32 %3132, 0
  br i1 %3133, label %3134, label %3135

3134:                                             ; preds = %3099
  br label %3099

3135:                                             ; preds = %3099
  br label %3136

3136:                                             ; preds = %3135, %3092
  %3137 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3137, ptr %21, align 4, !tbaa !9
  %3138 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %3138, ptr %22, align 4, !tbaa !9
  %3139 = load i32, ptr %22, align 4, !tbaa !9
  %3140 = load i32, ptr %21, align 4, !tbaa !9
  %3141 = add i32 %3140, %3139
  store i32 %3141, ptr %21, align 4, !tbaa !9
  %3142 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3142, ptr %8, align 4, !tbaa !9
  %3143 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3143, ptr %21, align 4, !tbaa !9
  store i32 28, ptr %22, align 4, !tbaa !9
  %3144 = load i32, ptr %21, align 4, !tbaa !9
  %3145 = load i32, ptr %22, align 4, !tbaa !9
  %3146 = icmp ult i32 %3144, %3145
  %3147 = zext i1 %3146 to i32
  store i32 %3147, ptr %21, align 4, !tbaa !9
  %3148 = load i32, ptr %21, align 4, !tbaa !9
  %3149 = icmp ne i32 %3148, 0
  br i1 %3149, label %3150, label %3151

3150:                                             ; preds = %3136
  br label %3282

3151:                                             ; preds = %3136
  br label %3152

3152:                                             ; preds = %3280, %3151
  %3153 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3153, ptr %21, align 4, !tbaa !9
  %3154 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3154, ptr %22, align 4, !tbaa !9
  %3155 = load ptr, ptr %4, align 8, !tbaa !5
  %3156 = getelementptr inbounds %struct.w2c_hermes, ptr %3155, i32 0, i32 6
  %3157 = load i32, ptr %22, align 4, !tbaa !9
  %3158 = zext i32 %3157 to i64
  %3159 = call i32 @i32_load(ptr noundef %3156, i64 noundef %3158)
  store i32 %3159, ptr %22, align 4, !tbaa !9
  %3160 = load ptr, ptr %4, align 8, !tbaa !5
  %3161 = getelementptr inbounds %struct.w2c_hermes, ptr %3160, i32 0, i32 6
  %3162 = load i32, ptr %21, align 4, !tbaa !9
  %3163 = zext i32 %3162 to i64
  %3164 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3161, i64 noundef %3163, i32 noundef %3164)
  %3165 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3165, ptr %21, align 4, !tbaa !9
  %3166 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3166, ptr %22, align 4, !tbaa !9
  %3167 = load ptr, ptr %4, align 8, !tbaa !5
  %3168 = getelementptr inbounds %struct.w2c_hermes, ptr %3167, i32 0, i32 6
  %3169 = load i32, ptr %22, align 4, !tbaa !9
  %3170 = zext i32 %3169 to i64
  %3171 = add i64 %3170, 4
  %3172 = call i32 @i32_load(ptr noundef %3168, i64 noundef %3171)
  store i32 %3172, ptr %22, align 4, !tbaa !9
  %3173 = load ptr, ptr %4, align 8, !tbaa !5
  %3174 = getelementptr inbounds %struct.w2c_hermes, ptr %3173, i32 0, i32 6
  %3175 = load i32, ptr %21, align 4, !tbaa !9
  %3176 = zext i32 %3175 to i64
  %3177 = add i64 %3176, 4
  %3178 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3174, i64 noundef %3177, i32 noundef %3178)
  %3179 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3179, ptr %21, align 4, !tbaa !9
  %3180 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3180, ptr %22, align 4, !tbaa !9
  %3181 = load ptr, ptr %4, align 8, !tbaa !5
  %3182 = getelementptr inbounds %struct.w2c_hermes, ptr %3181, i32 0, i32 6
  %3183 = load i32, ptr %22, align 4, !tbaa !9
  %3184 = zext i32 %3183 to i64
  %3185 = add i64 %3184, 8
  %3186 = call i32 @i32_load(ptr noundef %3182, i64 noundef %3185)
  store i32 %3186, ptr %22, align 4, !tbaa !9
  %3187 = load ptr, ptr %4, align 8, !tbaa !5
  %3188 = getelementptr inbounds %struct.w2c_hermes, ptr %3187, i32 0, i32 6
  %3189 = load i32, ptr %21, align 4, !tbaa !9
  %3190 = zext i32 %3189 to i64
  %3191 = add i64 %3190, 8
  %3192 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3188, i64 noundef %3191, i32 noundef %3192)
  %3193 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3193, ptr %21, align 4, !tbaa !9
  %3194 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3194, ptr %22, align 4, !tbaa !9
  %3195 = load ptr, ptr %4, align 8, !tbaa !5
  %3196 = getelementptr inbounds %struct.w2c_hermes, ptr %3195, i32 0, i32 6
  %3197 = load i32, ptr %22, align 4, !tbaa !9
  %3198 = zext i32 %3197 to i64
  %3199 = add i64 %3198, 12
  %3200 = call i32 @i32_load(ptr noundef %3196, i64 noundef %3199)
  store i32 %3200, ptr %22, align 4, !tbaa !9
  %3201 = load ptr, ptr %4, align 8, !tbaa !5
  %3202 = getelementptr inbounds %struct.w2c_hermes, ptr %3201, i32 0, i32 6
  %3203 = load i32, ptr %21, align 4, !tbaa !9
  %3204 = zext i32 %3203 to i64
  %3205 = add i64 %3204, 12
  %3206 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3202, i64 noundef %3205, i32 noundef %3206)
  %3207 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3207, ptr %21, align 4, !tbaa !9
  %3208 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3208, ptr %22, align 4, !tbaa !9
  %3209 = load ptr, ptr %4, align 8, !tbaa !5
  %3210 = getelementptr inbounds %struct.w2c_hermes, ptr %3209, i32 0, i32 6
  %3211 = load i32, ptr %22, align 4, !tbaa !9
  %3212 = zext i32 %3211 to i64
  %3213 = add i64 %3212, 16
  %3214 = call i32 @i32_load(ptr noundef %3210, i64 noundef %3213)
  store i32 %3214, ptr %22, align 4, !tbaa !9
  %3215 = load ptr, ptr %4, align 8, !tbaa !5
  %3216 = getelementptr inbounds %struct.w2c_hermes, ptr %3215, i32 0, i32 6
  %3217 = load i32, ptr %21, align 4, !tbaa !9
  %3218 = zext i32 %3217 to i64
  %3219 = add i64 %3218, 16
  %3220 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3216, i64 noundef %3219, i32 noundef %3220)
  %3221 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3221, ptr %21, align 4, !tbaa !9
  %3222 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3222, ptr %22, align 4, !tbaa !9
  %3223 = load ptr, ptr %4, align 8, !tbaa !5
  %3224 = getelementptr inbounds %struct.w2c_hermes, ptr %3223, i32 0, i32 6
  %3225 = load i32, ptr %22, align 4, !tbaa !9
  %3226 = zext i32 %3225 to i64
  %3227 = add i64 %3226, 20
  %3228 = call i32 @i32_load(ptr noundef %3224, i64 noundef %3227)
  store i32 %3228, ptr %22, align 4, !tbaa !9
  %3229 = load ptr, ptr %4, align 8, !tbaa !5
  %3230 = getelementptr inbounds %struct.w2c_hermes, ptr %3229, i32 0, i32 6
  %3231 = load i32, ptr %21, align 4, !tbaa !9
  %3232 = zext i32 %3231 to i64
  %3233 = add i64 %3232, 20
  %3234 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3230, i64 noundef %3233, i32 noundef %3234)
  %3235 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3235, ptr %21, align 4, !tbaa !9
  %3236 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3236, ptr %22, align 4, !tbaa !9
  %3237 = load ptr, ptr %4, align 8, !tbaa !5
  %3238 = getelementptr inbounds %struct.w2c_hermes, ptr %3237, i32 0, i32 6
  %3239 = load i32, ptr %22, align 4, !tbaa !9
  %3240 = zext i32 %3239 to i64
  %3241 = add i64 %3240, 24
  %3242 = call i32 @i32_load(ptr noundef %3238, i64 noundef %3241)
  store i32 %3242, ptr %22, align 4, !tbaa !9
  %3243 = load ptr, ptr %4, align 8, !tbaa !5
  %3244 = getelementptr inbounds %struct.w2c_hermes, ptr %3243, i32 0, i32 6
  %3245 = load i32, ptr %21, align 4, !tbaa !9
  %3246 = zext i32 %3245 to i64
  %3247 = add i64 %3246, 24
  %3248 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3244, i64 noundef %3247, i32 noundef %3248)
  %3249 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3249, ptr %21, align 4, !tbaa !9
  %3250 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3250, ptr %22, align 4, !tbaa !9
  %3251 = load ptr, ptr %4, align 8, !tbaa !5
  %3252 = getelementptr inbounds %struct.w2c_hermes, ptr %3251, i32 0, i32 6
  %3253 = load i32, ptr %22, align 4, !tbaa !9
  %3254 = zext i32 %3253 to i64
  %3255 = add i64 %3254, 28
  %3256 = call i32 @i32_load(ptr noundef %3252, i64 noundef %3255)
  store i32 %3256, ptr %22, align 4, !tbaa !9
  %3257 = load ptr, ptr %4, align 8, !tbaa !5
  %3258 = getelementptr inbounds %struct.w2c_hermes, ptr %3257, i32 0, i32 6
  %3259 = load i32, ptr %21, align 4, !tbaa !9
  %3260 = zext i32 %3259 to i64
  %3261 = add i64 %3260, 28
  %3262 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3258, i64 noundef %3261, i32 noundef %3262)
  %3263 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3263, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %3264 = load i32, ptr %22, align 4, !tbaa !9
  %3265 = load i32, ptr %21, align 4, !tbaa !9
  %3266 = add i32 %3265, %3264
  store i32 %3266, ptr %21, align 4, !tbaa !9
  %3267 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3267, ptr %10, align 4, !tbaa !9
  %3268 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3268, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %3269 = load i32, ptr %22, align 4, !tbaa !9
  %3270 = load i32, ptr %21, align 4, !tbaa !9
  %3271 = add i32 %3270, %3269
  store i32 %3271, ptr %21, align 4, !tbaa !9
  %3272 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3272, ptr %6, align 4, !tbaa !9
  %3273 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3273, ptr %22, align 4, !tbaa !9
  %3274 = load i32, ptr %21, align 4, !tbaa !9
  %3275 = load i32, ptr %22, align 4, !tbaa !9
  %3276 = icmp ne i32 %3274, %3275
  %3277 = zext i1 %3276 to i32
  store i32 %3277, ptr %21, align 4, !tbaa !9
  %3278 = load i32, ptr %21, align 4, !tbaa !9
  %3279 = icmp ne i32 %3278, 0
  br i1 %3279, label %3280, label %3281

3280:                                             ; preds = %3152
  br label %3152

3281:                                             ; preds = %3152
  br label %3282

3282:                                             ; preds = %3281, %3150, %3058
  %3283 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3283, ptr %21, align 4, !tbaa !9
  %3284 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %3284, ptr %22, align 4, !tbaa !9
  %3285 = load ptr, ptr %4, align 8, !tbaa !5
  %3286 = getelementptr inbounds %struct.w2c_hermes, ptr %3285, i32 0, i32 6
  %3287 = load i32, ptr %21, align 4, !tbaa !9
  %3288 = zext i32 %3287 to i64
  %3289 = add i64 %3288, 12
  %3290 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3286, i64 noundef %3289, i32 noundef %3290)
  %3291 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3291, ptr %21, align 4, !tbaa !9
  %3292 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3292, ptr %22, align 4, !tbaa !9
  %3293 = load ptr, ptr %4, align 8, !tbaa !5
  %3294 = getelementptr inbounds %struct.w2c_hermes, ptr %3293, i32 0, i32 6
  %3295 = load i32, ptr %21, align 4, !tbaa !9
  %3296 = zext i32 %3295 to i64
  %3297 = add i64 %3296, 8
  %3298 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3294, i64 noundef %3297, i32 noundef %3298)
  %3299 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3299, ptr %21, align 4, !tbaa !9
  %3300 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3300, ptr %22, align 4, !tbaa !9
  %3301 = load ptr, ptr %4, align 8, !tbaa !5
  %3302 = getelementptr inbounds %struct.w2c_hermes, ptr %3301, i32 0, i32 6
  %3303 = load i32, ptr %21, align 4, !tbaa !9
  %3304 = zext i32 %3303 to i64
  %3305 = add i64 %3304, 4
  %3306 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3302, i64 noundef %3305, i32 noundef %3306)
  %3307 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3307, ptr %21, align 4, !tbaa !9
  %3308 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %3308, ptr %22, align 4, !tbaa !9
  %3309 = load ptr, ptr %4, align 8, !tbaa !5
  %3310 = getelementptr inbounds %struct.w2c_hermes, ptr %3309, i32 0, i32 6
  %3311 = load i32, ptr %21, align 4, !tbaa !9
  %3312 = zext i32 %3311 to i64
  %3313 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3310, i64 noundef %3312, i32 noundef %3313)
  %3314 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %3314, ptr %21, align 4, !tbaa !9
  %3315 = load i32, ptr %21, align 4, !tbaa !9
  %3316 = icmp ne i32 %3315, 0
  %3317 = xor i1 %3316, true
  %3318 = zext i1 %3317 to i32
  store i32 %3318, ptr %21, align 4, !tbaa !9
  %3319 = load i32, ptr %21, align 4, !tbaa !9
  %3320 = icmp ne i32 %3319, 0
  br i1 %3320, label %3321, label %3322

3321:                                             ; preds = %3282
  br label %3334

3322:                                             ; preds = %3282
  %3323 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %3323, ptr %21, align 4, !tbaa !9
  %3324 = load ptr, ptr %4, align 8, !tbaa !5
  %3325 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %3324, i32 noundef %3325)
  %3326 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3326, ptr %21, align 4, !tbaa !9
  %3327 = load ptr, ptr %4, align 8, !tbaa !5
  %3328 = getelementptr inbounds %struct.w2c_hermes, ptr %3327, i32 0, i32 6
  %3329 = load i32, ptr %21, align 4, !tbaa !9
  %3330 = zext i32 %3329 to i64
  %3331 = add i64 %3330, 8
  %3332 = call i32 @i32_load(ptr noundef %3328, i64 noundef %3331)
  store i32 %3332, ptr %21, align 4, !tbaa !9
  %3333 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3333, ptr %8, align 4, !tbaa !9
  br label %3334

3334:                                             ; preds = %3322, %3321, %2941, %2876
  %3335 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3335, ptr %21, align 4, !tbaa !9
  %3336 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %3336, ptr %22, align 4, !tbaa !9
  %3337 = load ptr, ptr %4, align 8, !tbaa !5
  %3338 = getelementptr inbounds %struct.w2c_hermes, ptr %3337, i32 0, i32 6
  %3339 = load i32, ptr %21, align 4, !tbaa !9
  %3340 = zext i32 %3339 to i64
  %3341 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3338, i64 noundef %3340, i32 noundef %3341)
  %3342 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3342, ptr %21, align 4, !tbaa !9
  %3343 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3343, ptr %22, align 4, !tbaa !9
  %3344 = load ptr, ptr %4, align 8, !tbaa !5
  %3345 = getelementptr inbounds %struct.w2c_hermes, ptr %3344, i32 0, i32 6
  %3346 = load i32, ptr %22, align 4, !tbaa !9
  %3347 = zext i32 %3346 to i64
  %3348 = add i64 %3347, 8
  %3349 = call i32 @i32_load(ptr noundef %3345, i64 noundef %3348)
  store i32 %3349, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %3350 = load i32, ptr %23, align 4, !tbaa !9
  %3351 = load i32, ptr %22, align 4, !tbaa !9
  %3352 = add i32 %3351, %3350
  store i32 %3352, ptr %22, align 4, !tbaa !9
  %3353 = load ptr, ptr %4, align 8, !tbaa !5
  %3354 = getelementptr inbounds %struct.w2c_hermes, ptr %3353, i32 0, i32 6
  %3355 = load i32, ptr %21, align 4, !tbaa !9
  %3356 = zext i32 %3355 to i64
  %3357 = add i64 %3356, 8
  %3358 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3354, i64 noundef %3357, i32 noundef %3358)
  br label %3842

3359:                                             ; preds = %2727
  %3360 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3360, ptr %21, align 4, !tbaa !9
  %3361 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3361, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %3362 = load i32, ptr %23, align 4, !tbaa !9
  %3363 = load i32, ptr %22, align 4, !tbaa !9
  %3364 = add i32 %3363, %3362
  store i32 %3364, ptr %22, align 4, !tbaa !9
  %3365 = load ptr, ptr %4, align 8, !tbaa !5
  %3366 = getelementptr inbounds %struct.w2c_hermes, ptr %3365, i32 0, i32 6
  %3367 = load i32, ptr %21, align 4, !tbaa !9
  %3368 = zext i32 %3367 to i64
  %3369 = add i64 %3368, 28
  %3370 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3366, i64 noundef %3369, i32 noundef %3370)
  store i32 1, ptr %21, align 4, !tbaa !9
  %3371 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3371, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %3372 = load i32, ptr %22, align 4, !tbaa !9
  %3373 = load i32, ptr %23, align 4, !tbaa !9
  %3374 = and i32 %3373, 31
  %3375 = ashr i32 %3372, %3374
  store i32 %3375, ptr %22, align 4, !tbaa !9
  %3376 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3376, ptr %23, align 4, !tbaa !9
  %3377 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %3377, ptr %24, align 4, !tbaa !9
  %3378 = load i32, ptr %23, align 4, !tbaa !9
  %3379 = load i32, ptr %24, align 4, !tbaa !9
  %3380 = icmp eq i32 %3378, %3379
  %3381 = zext i1 %3380 to i32
  store i32 %3381, ptr %23, align 4, !tbaa !9
  %3382 = load i32, ptr %23, align 4, !tbaa !9
  %3383 = icmp ne i32 %3382, 0
  br i1 %3383, label %3384, label %3386

3384:                                             ; preds = %3359
  %3385 = load i32, ptr %21, align 4, !tbaa !9
  br label %3388

3386:                                             ; preds = %3359
  %3387 = load i32, ptr %22, align 4, !tbaa !9
  br label %3388

3388:                                             ; preds = %3386, %3384
  %3389 = phi i32 [ %3385, %3384 ], [ %3387, %3386 ]
  store i32 %3389, ptr %21, align 4, !tbaa !9
  %3390 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3390, ptr %12, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %3391 = load i32, ptr %21, align 4, !tbaa !9
  %3392 = load i32, ptr %22, align 4, !tbaa !9
  %3393 = icmp uge i32 %3391, %3392
  %3394 = zext i1 %3393 to i32
  store i32 %3394, ptr %21, align 4, !tbaa !9
  %3395 = load i32, ptr %21, align 4, !tbaa !9
  %3396 = icmp ne i32 %3395, 0
  br i1 %3396, label %3397, label %3398

3397:                                             ; preds = %3388
  br label %3850

3398:                                             ; preds = %3388
  %3399 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3399, ptr %21, align 4, !tbaa !9
  %3400 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %3400, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %3401 = load i32, ptr %23, align 4, !tbaa !9
  %3402 = and i32 %3401, 31
  %3403 = load i32, ptr %22, align 4, !tbaa !9
  %3404 = shl i32 %3403, %3402
  store i32 %3404, ptr %22, align 4, !tbaa !9
  %3405 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3405, ptr %7, align 4, !tbaa !9
  %3406 = load ptr, ptr %4, align 8, !tbaa !5
  %3407 = load i32, ptr %22, align 4, !tbaa !9
  %3408 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %3406, i32 noundef %3407)
  store i32 %3408, ptr %22, align 4, !tbaa !9
  %3409 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3409, ptr %13, align 4, !tbaa !9
  %3410 = load ptr, ptr %4, align 8, !tbaa !5
  %3411 = getelementptr inbounds %struct.w2c_hermes, ptr %3410, i32 0, i32 6
  %3412 = load i32, ptr %21, align 4, !tbaa !9
  %3413 = zext i32 %3412 to i64
  %3414 = add i64 %3413, 12
  %3415 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3411, i64 noundef %3414, i32 noundef %3415)
  %3416 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3416, ptr %21, align 4, !tbaa !9
  %3417 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3417, ptr %22, align 4, !tbaa !9
  %3418 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %3418, ptr %23, align 4, !tbaa !9
  %3419 = load i32, ptr %23, align 4, !tbaa !9
  %3420 = load i32, ptr %22, align 4, !tbaa !9
  %3421 = add i32 %3420, %3419
  store i32 %3421, ptr %22, align 4, !tbaa !9
  %3422 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3422, ptr %15, align 4, !tbaa !9
  %3423 = load ptr, ptr %4, align 8, !tbaa !5
  %3424 = getelementptr inbounds %struct.w2c_hermes, ptr %3423, i32 0, i32 6
  %3425 = load i32, ptr %21, align 4, !tbaa !9
  %3426 = zext i32 %3425 to i64
  %3427 = add i64 %3426, 24
  %3428 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3424, i64 noundef %3427, i32 noundef %3428)
  %3429 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3429, ptr %21, align 4, !tbaa !9
  %3430 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %3430, ptr %22, align 4, !tbaa !9
  %3431 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %3431, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %3432 = load i32, ptr %24, align 4, !tbaa !9
  %3433 = and i32 %3432, 31
  %3434 = load i32, ptr %23, align 4, !tbaa !9
  %3435 = shl i32 %3434, %3433
  store i32 %3435, ptr %23, align 4, !tbaa !9
  %3436 = load i32, ptr %23, align 4, !tbaa !9
  %3437 = load i32, ptr %22, align 4, !tbaa !9
  %3438 = add i32 %3437, %3436
  store i32 %3438, ptr %22, align 4, !tbaa !9
  %3439 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3439, ptr %8, align 4, !tbaa !9
  %3440 = load ptr, ptr %4, align 8, !tbaa !5
  %3441 = getelementptr inbounds %struct.w2c_hermes, ptr %3440, i32 0, i32 6
  %3442 = load i32, ptr %21, align 4, !tbaa !9
  %3443 = zext i32 %3442 to i64
  %3444 = add i64 %3443, 16
  %3445 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3441, i64 noundef %3444, i32 noundef %3445)
  store i32 51264, ptr %21, align 4, !tbaa !9
  %3446 = load ptr, ptr %4, align 8, !tbaa !5
  %3447 = load i32, ptr %21, align 4, !tbaa !9
  %3448 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %3446, i32 noundef %3447)
  store i32 %3448, ptr %21, align 4, !tbaa !9
  %3449 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3449, ptr %9, align 4, !tbaa !9
  %3450 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %3450, ptr %21, align 4, !tbaa !9
  %3451 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %3451, ptr %22, align 4, !tbaa !9
  %3452 = load i32, ptr %21, align 4, !tbaa !9
  %3453 = load i32, ptr %22, align 4, !tbaa !9
  %3454 = icmp ne i32 %3452, %3453
  %3455 = zext i1 %3454 to i32
  store i32 %3455, ptr %21, align 4, !tbaa !9
  %3456 = load i32, ptr %21, align 4, !tbaa !9
  %3457 = icmp ne i32 %3456, 0
  br i1 %3457, label %3458, label %3459

3458:                                             ; preds = %3398
  br label %3618

3459:                                             ; preds = %3398
  %3460 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %3460, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  %3461 = load i32, ptr %21, align 4, !tbaa !9
  %3462 = load i32, ptr %22, align 4, !tbaa !9
  %3463 = icmp sgt i32 %3461, %3462
  %3464 = zext i1 %3463 to i32
  store i32 %3464, ptr %21, align 4, !tbaa !9
  %3465 = load i32, ptr %21, align 4, !tbaa !9
  %3466 = icmp ne i32 %3465, 0
  br i1 %3466, label %3467, label %3522

3467:                                             ; preds = %3459
  %3468 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3468, ptr %21, align 4, !tbaa !9
  %3469 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3469, ptr %22, align 4, !tbaa !9
  %3470 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %3470, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %3471 = load i32, ptr %24, align 4, !tbaa !9
  %3472 = load i32, ptr %23, align 4, !tbaa !9
  %3473 = add i32 %3472, %3471
  store i32 %3473, ptr %23, align 4, !tbaa !9
  store i32 -2, ptr %24, align 4, !tbaa !9
  %3474 = load i32, ptr %24, align 4, !tbaa !9
  %3475 = icmp eq i32 %3474, 0
  %3476 = xor i1 %3475, true
  %3477 = xor i1 %3476, true
  %3478 = zext i1 %3477 to i32
  %3479 = sext i32 %3478 to i64
  %3480 = call i64 @llvm.expect.i64(i64 %3479, i64 0)
  %3481 = icmp ne i64 %3480, 0
  br i1 %3481, label %3482, label %3484

3482:                                             ; preds = %3467
  call void @wasm_rt_trap(i32 noundef 3) #8
  unreachable

3483:                                             ; No predecessors!
  br label %3506

3484:                                             ; preds = %3467
  %3485 = load i32, ptr %23, align 4, !tbaa !9
  %3486 = icmp eq i32 %3485, -2147483648
  br i1 %3486, label %3487, label %3490

3487:                                             ; preds = %3484
  %3488 = load i32, ptr %24, align 4, !tbaa !9
  %3489 = icmp eq i32 %3488, -1
  br label %3490

3490:                                             ; preds = %3487, %3484
  %3491 = phi i1 [ false, %3484 ], [ %3489, %3487 ]
  %3492 = xor i1 %3491, true
  %3493 = xor i1 %3492, true
  %3494 = zext i1 %3493 to i32
  %3495 = sext i32 %3494 to i64
  %3496 = call i64 @llvm.expect.i64(i64 %3495, i64 0)
  %3497 = icmp ne i64 %3496, 0
  br i1 %3497, label %3498, label %3500

3498:                                             ; preds = %3490
  call void @wasm_rt_trap(i32 noundef 2) #8
  unreachable

3499:                                             ; No predecessors!
  br label %3504

3500:                                             ; preds = %3490
  %3501 = load i32, ptr %23, align 4, !tbaa !9
  %3502 = load i32, ptr %24, align 4, !tbaa !9
  %3503 = sdiv i32 %3501, %3502
  br label %3504

3504:                                             ; preds = %3500, %3499
  %3505 = phi i32 [ 0, %3499 ], [ %3503, %3500 ]
  br label %3506

3506:                                             ; preds = %3504, %3483
  %3507 = phi i32 [ 0, %3483 ], [ %3505, %3504 ]
  store i32 %3507, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %3508 = load i32, ptr %24, align 4, !tbaa !9
  %3509 = and i32 %3508, 31
  %3510 = load i32, ptr %23, align 4, !tbaa !9
  %3511 = shl i32 %3510, %3509
  store i32 %3511, ptr %23, align 4, !tbaa !9
  %3512 = load i32, ptr %23, align 4, !tbaa !9
  %3513 = load i32, ptr %22, align 4, !tbaa !9
  %3514 = add i32 %3513, %3512
  store i32 %3514, ptr %22, align 4, !tbaa !9
  %3515 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3515, ptr %8, align 4, !tbaa !9
  %3516 = load ptr, ptr %4, align 8, !tbaa !5
  %3517 = getelementptr inbounds %struct.w2c_hermes, ptr %3516, i32 0, i32 6
  %3518 = load i32, ptr %21, align 4, !tbaa !9
  %3519 = zext i32 %3518 to i64
  %3520 = add i64 %3519, 16
  %3521 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3517, i64 noundef %3520, i32 noundef %3521)
  br label %3618

3522:                                             ; preds = %3459
  store i32 1, ptr %21, align 4, !tbaa !9
  %3523 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %3523, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %3524 = load i32, ptr %22, align 4, !tbaa !9
  %3525 = load i32, ptr %23, align 4, !tbaa !9
  %3526 = and i32 %3525, 31
  %3527 = ashr i32 %3524, %3526
  store i32 %3527, ptr %22, align 4, !tbaa !9
  %3528 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3528, ptr %23, align 4, !tbaa !9
  %3529 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3529, ptr %24, align 4, !tbaa !9
  %3530 = load i32, ptr %23, align 4, !tbaa !9
  %3531 = load i32, ptr %24, align 4, !tbaa !9
  %3532 = icmp eq i32 %3530, %3531
  %3533 = zext i1 %3532 to i32
  store i32 %3533, ptr %23, align 4, !tbaa !9
  %3534 = load i32, ptr %23, align 4, !tbaa !9
  %3535 = icmp ne i32 %3534, 0
  br i1 %3535, label %3536, label %3538

3536:                                             ; preds = %3522
  %3537 = load i32, ptr %21, align 4, !tbaa !9
  br label %3540

3538:                                             ; preds = %3522
  %3539 = load i32, ptr %22, align 4, !tbaa !9
  br label %3540

3540:                                             ; preds = %3538, %3536
  %3541 = phi i32 [ %3537, %3536 ], [ %3539, %3538 ]
  store i32 %3541, ptr %21, align 4, !tbaa !9
  %3542 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3542, ptr %8, align 4, !tbaa !9
  store i32 1073741824, ptr %22, align 4, !tbaa !9
  %3543 = load i32, ptr %21, align 4, !tbaa !9
  %3544 = load i32, ptr %22, align 4, !tbaa !9
  %3545 = icmp uge i32 %3543, %3544
  %3546 = zext i1 %3545 to i32
  store i32 %3546, ptr %21, align 4, !tbaa !9
  %3547 = load i32, ptr %21, align 4, !tbaa !9
  %3548 = icmp ne i32 %3547, 0
  br i1 %3548, label %3549, label %3550

3549:                                             ; preds = %3540
  br label %3850

3550:                                             ; preds = %3540
  %3551 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3551, ptr %21, align 4, !tbaa !9
  %3552 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3552, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %3553 = load i32, ptr %23, align 4, !tbaa !9
  %3554 = and i32 %3553, 31
  %3555 = load i32, ptr %22, align 4, !tbaa !9
  %3556 = shl i32 %3555, %3554
  store i32 %3556, ptr %22, align 4, !tbaa !9
  %3557 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3557, ptr %6, align 4, !tbaa !9
  %3558 = load ptr, ptr %4, align 8, !tbaa !5
  %3559 = load i32, ptr %22, align 4, !tbaa !9
  %3560 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %3558, i32 noundef %3559)
  store i32 %3560, ptr %22, align 4, !tbaa !9
  %3561 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3561, ptr %7, align 4, !tbaa !9
  %3562 = load ptr, ptr %4, align 8, !tbaa !5
  %3563 = getelementptr inbounds %struct.w2c_hermes, ptr %3562, i32 0, i32 6
  %3564 = load i32, ptr %21, align 4, !tbaa !9
  %3565 = zext i32 %3564 to i64
  %3566 = add i64 %3565, 12
  %3567 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3563, i64 noundef %3566, i32 noundef %3567)
  %3568 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3568, ptr %21, align 4, !tbaa !9
  %3569 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3569, ptr %22, align 4, !tbaa !9
  %3570 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3570, ptr %23, align 4, !tbaa !9
  %3571 = load i32, ptr %23, align 4, !tbaa !9
  %3572 = load i32, ptr %22, align 4, !tbaa !9
  %3573 = add i32 %3572, %3571
  store i32 %3573, ptr %22, align 4, !tbaa !9
  %3574 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3574, ptr %15, align 4, !tbaa !9
  %3575 = load ptr, ptr %4, align 8, !tbaa !5
  %3576 = getelementptr inbounds %struct.w2c_hermes, ptr %3575, i32 0, i32 6
  %3577 = load i32, ptr %21, align 4, !tbaa !9
  %3578 = zext i32 %3577 to i64
  %3579 = add i64 %3578, 24
  %3580 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3576, i64 noundef %3579, i32 noundef %3580)
  %3581 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3581, ptr %21, align 4, !tbaa !9
  %3582 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3582, ptr %22, align 4, !tbaa !9
  %3583 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3583, ptr %23, align 4, !tbaa !9
  store i32 -4, ptr %24, align 4, !tbaa !9
  %3584 = load i32, ptr %24, align 4, !tbaa !9
  %3585 = load i32, ptr %23, align 4, !tbaa !9
  %3586 = and i32 %3585, %3584
  store i32 %3586, ptr %23, align 4, !tbaa !9
  %3587 = load i32, ptr %23, align 4, !tbaa !9
  %3588 = load i32, ptr %22, align 4, !tbaa !9
  %3589 = add i32 %3588, %3587
  store i32 %3589, ptr %22, align 4, !tbaa !9
  %3590 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3590, ptr %8, align 4, !tbaa !9
  %3591 = load ptr, ptr %4, align 8, !tbaa !5
  %3592 = getelementptr inbounds %struct.w2c_hermes, ptr %3591, i32 0, i32 6
  %3593 = load i32, ptr %21, align 4, !tbaa !9
  %3594 = zext i32 %3593 to i64
  %3595 = add i64 %3594, 16
  %3596 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3592, i64 noundef %3595, i32 noundef %3596)
  %3597 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %3597, ptr %21, align 4, !tbaa !9
  %3598 = load ptr, ptr %4, align 8, !tbaa !5
  %3599 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %3598, i32 noundef %3599)
  %3600 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3600, ptr %21, align 4, !tbaa !9
  %3601 = load ptr, ptr %4, align 8, !tbaa !5
  %3602 = getelementptr inbounds %struct.w2c_hermes, ptr %3601, i32 0, i32 6
  %3603 = load i32, ptr %21, align 4, !tbaa !9
  %3604 = zext i32 %3603 to i64
  %3605 = add i64 %3604, 4
  %3606 = call i32 @i32_load(ptr noundef %3602, i64 noundef %3605)
  store i32 %3606, ptr %21, align 4, !tbaa !9
  %3607 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3607, ptr %6, align 4, !tbaa !9
  %3608 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3608, ptr %21, align 4, !tbaa !9
  %3609 = load ptr, ptr %4, align 8, !tbaa !5
  %3610 = getelementptr inbounds %struct.w2c_hermes, ptr %3609, i32 0, i32 6
  %3611 = load i32, ptr %21, align 4, !tbaa !9
  %3612 = zext i32 %3611 to i64
  %3613 = add i64 %3612, 8
  %3614 = call i32 @i32_load(ptr noundef %3610, i64 noundef %3613)
  store i32 %3614, ptr %21, align 4, !tbaa !9
  %3615 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3615, ptr %10, align 4, !tbaa !9
  %3616 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3616, ptr %21, align 4, !tbaa !9
  %3617 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3617, ptr %13, align 4, !tbaa !9
  br label %3618

3618:                                             ; preds = %3550, %3506, %3458
  %3619 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3619, ptr %21, align 4, !tbaa !9
  %3620 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3620, ptr %22, align 4, !tbaa !9
  %3621 = load ptr, ptr %4, align 8, !tbaa !5
  %3622 = getelementptr inbounds %struct.w2c_hermes, ptr %3621, i32 0, i32 6
  %3623 = load i32, ptr %21, align 4, !tbaa !9
  %3624 = zext i32 %3623 to i64
  %3625 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3622, i64 noundef %3624, i32 noundef %3625)
  %3626 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3626, ptr %21, align 4, !tbaa !9
  %3627 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3627, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %3628 = load i32, ptr %23, align 4, !tbaa !9
  %3629 = load i32, ptr %22, align 4, !tbaa !9
  %3630 = add i32 %3629, %3628
  store i32 %3630, ptr %22, align 4, !tbaa !9
  %3631 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3631, ptr %16, align 4, !tbaa !9
  %3632 = load ptr, ptr %4, align 8, !tbaa !5
  %3633 = getelementptr inbounds %struct.w2c_hermes, ptr %3632, i32 0, i32 6
  %3634 = load i32, ptr %21, align 4, !tbaa !9
  %3635 = zext i32 %3634 to i64
  %3636 = add i64 %3635, 20
  %3637 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3633, i64 noundef %3636, i32 noundef %3637)
  %3638 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3638, ptr %21, align 4, !tbaa !9
  %3639 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3639, ptr %22, align 4, !tbaa !9
  %3640 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3640, ptr %7, align 4, !tbaa !9
  %3641 = load i32, ptr %21, align 4, !tbaa !9
  %3642 = load i32, ptr %22, align 4, !tbaa !9
  %3643 = icmp ne i32 %3641, %3642
  %3644 = zext i1 %3643 to i32
  store i32 %3644, ptr %21, align 4, !tbaa !9
  %3645 = load i32, ptr %21, align 4, !tbaa !9
  %3646 = icmp ne i32 %3645, 0
  br i1 %3646, label %3647, label %3719

3647:                                             ; preds = %3618
  br label %3648

3648:                                             ; preds = %3675, %3647
  %3649 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3649, ptr %21, align 4, !tbaa !9
  store i32 12, ptr %22, align 4, !tbaa !9
  %3650 = load i32, ptr %22, align 4, !tbaa !9
  %3651 = load i32, ptr %21, align 4, !tbaa !9
  %3652 = add i32 %3651, %3650
  store i32 %3652, ptr %21, align 4, !tbaa !9
  %3653 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3653, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %3654 = load i32, ptr %23, align 4, !tbaa !9
  %3655 = load i32, ptr %22, align 4, !tbaa !9
  %3656 = sub i32 %3655, %3654
  store i32 %3656, ptr %22, align 4, !tbaa !9
  %3657 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3657, ptr %10, align 4, !tbaa !9
  %3658 = load ptr, ptr %4, align 8, !tbaa !5
  %3659 = load i32, ptr %21, align 4, !tbaa !9
  %3660 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %3658, i32 noundef %3659, i32 noundef %3660)
  %3661 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3661, ptr %21, align 4, !tbaa !9
  %3662 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3662, ptr %22, align 4, !tbaa !9
  %3663 = load ptr, ptr %4, align 8, !tbaa !5
  %3664 = getelementptr inbounds %struct.w2c_hermes, ptr %3663, i32 0, i32 6
  %3665 = load i32, ptr %22, align 4, !tbaa !9
  %3666 = zext i32 %3665 to i64
  %3667 = add i64 %3666, 4
  %3668 = call i32 @i32_load(ptr noundef %3664, i64 noundef %3667)
  store i32 %3668, ptr %22, align 4, !tbaa !9
  %3669 = load i32, ptr %21, align 4, !tbaa !9
  %3670 = load i32, ptr %22, align 4, !tbaa !9
  %3671 = icmp ne i32 %3669, %3670
  %3672 = zext i1 %3671 to i32
  store i32 %3672, ptr %21, align 4, !tbaa !9
  %3673 = load i32, ptr %21, align 4, !tbaa !9
  %3674 = icmp ne i32 %3673, 0
  br i1 %3674, label %3675, label %3676

3675:                                             ; preds = %3648
  br label %3648

3676:                                             ; preds = %3648
  %3677 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3677, ptr %21, align 4, !tbaa !9
  %3678 = load ptr, ptr %4, align 8, !tbaa !5
  %3679 = getelementptr inbounds %struct.w2c_hermes, ptr %3678, i32 0, i32 6
  %3680 = load i32, ptr %21, align 4, !tbaa !9
  %3681 = zext i32 %3680 to i64
  %3682 = add i64 %3681, 24
  %3683 = call i32 @i32_load(ptr noundef %3679, i64 noundef %3682)
  store i32 %3683, ptr %21, align 4, !tbaa !9
  %3684 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3684, ptr %15, align 4, !tbaa !9
  %3685 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3685, ptr %21, align 4, !tbaa !9
  %3686 = load ptr, ptr %4, align 8, !tbaa !5
  %3687 = getelementptr inbounds %struct.w2c_hermes, ptr %3686, i32 0, i32 6
  %3688 = load i32, ptr %21, align 4, !tbaa !9
  %3689 = zext i32 %3688 to i64
  %3690 = add i64 %3689, 20
  %3691 = call i32 @i32_load(ptr noundef %3687, i64 noundef %3690)
  store i32 %3691, ptr %21, align 4, !tbaa !9
  %3692 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3692, ptr %16, align 4, !tbaa !9
  %3693 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3693, ptr %21, align 4, !tbaa !9
  %3694 = load ptr, ptr %4, align 8, !tbaa !5
  %3695 = getelementptr inbounds %struct.w2c_hermes, ptr %3694, i32 0, i32 6
  %3696 = load i32, ptr %21, align 4, !tbaa !9
  %3697 = zext i32 %3696 to i64
  %3698 = add i64 %3697, 16
  %3699 = call i32 @i32_load(ptr noundef %3695, i64 noundef %3698)
  store i32 %3699, ptr %21, align 4, !tbaa !9
  %3700 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3700, ptr %8, align 4, !tbaa !9
  %3701 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3701, ptr %21, align 4, !tbaa !9
  %3702 = load ptr, ptr %4, align 8, !tbaa !5
  %3703 = getelementptr inbounds %struct.w2c_hermes, ptr %3702, i32 0, i32 6
  %3704 = load i32, ptr %21, align 4, !tbaa !9
  %3705 = zext i32 %3704 to i64
  %3706 = add i64 %3705, 12
  %3707 = call i32 @i32_load(ptr noundef %3703, i64 noundef %3706)
  store i32 %3707, ptr %21, align 4, !tbaa !9
  %3708 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3708, ptr %13, align 4, !tbaa !9
  %3709 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3709, ptr %21, align 4, !tbaa !9
  %3710 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3710, ptr %7, align 4, !tbaa !9
  %3711 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3711, ptr %21, align 4, !tbaa !9
  %3712 = load ptr, ptr %4, align 8, !tbaa !5
  %3713 = getelementptr inbounds %struct.w2c_hermes, ptr %3712, i32 0, i32 6
  %3714 = load i32, ptr %21, align 4, !tbaa !9
  %3715 = zext i32 %3714 to i64
  %3716 = add i64 %3715, 8
  %3717 = call i32 @i32_load(ptr noundef %3713, i64 noundef %3716)
  store i32 %3717, ptr %21, align 4, !tbaa !9
  %3718 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3718, ptr %6, align 4, !tbaa !9
  br label %3719

3719:                                             ; preds = %3676, %3618
  %3720 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3720, ptr %21, align 4, !tbaa !9
  %3721 = load ptr, ptr %4, align 8, !tbaa !5
  %3722 = getelementptr inbounds %struct.w2c_hermes, ptr %3721, i32 0, i32 6
  %3723 = load i32, ptr %21, align 4, !tbaa !9
  %3724 = zext i32 %3723 to i64
  %3725 = call i32 @i32_load(ptr noundef %3722, i64 noundef %3724)
  store i32 %3725, ptr %21, align 4, !tbaa !9
  %3726 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3726, ptr %10, align 4, !tbaa !9
  %3727 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3727, ptr %21, align 4, !tbaa !9
  %3728 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %3728, ptr %22, align 4, !tbaa !9
  %3729 = load ptr, ptr %4, align 8, !tbaa !5
  %3730 = getelementptr inbounds %struct.w2c_hermes, ptr %3729, i32 0, i32 6
  %3731 = load i32, ptr %21, align 4, !tbaa !9
  %3732 = zext i32 %3731 to i64
  %3733 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3730, i64 noundef %3732, i32 noundef %3733)
  %3734 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3734, ptr %21, align 4, !tbaa !9
  %3735 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3735, ptr %22, align 4, !tbaa !9
  %3736 = load ptr, ptr %4, align 8, !tbaa !5
  %3737 = getelementptr inbounds %struct.w2c_hermes, ptr %3736, i32 0, i32 6
  %3738 = load i32, ptr %21, align 4, !tbaa !9
  %3739 = zext i32 %3738 to i64
  %3740 = add i64 %3739, 12
  %3741 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3737, i64 noundef %3740, i32 noundef %3741)
  %3742 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3742, ptr %21, align 4, !tbaa !9
  %3743 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3743, ptr %22, align 4, !tbaa !9
  %3744 = load ptr, ptr %4, align 8, !tbaa !5
  %3745 = getelementptr inbounds %struct.w2c_hermes, ptr %3744, i32 0, i32 6
  %3746 = load i32, ptr %21, align 4, !tbaa !9
  %3747 = zext i32 %3746 to i64
  %3748 = add i64 %3747, 4
  %3749 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3745, i64 noundef %3748, i32 noundef %3749)
  %3750 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3750, ptr %21, align 4, !tbaa !9
  %3751 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3751, ptr %22, align 4, !tbaa !9
  %3752 = load ptr, ptr %4, align 8, !tbaa !5
  %3753 = getelementptr inbounds %struct.w2c_hermes, ptr %3752, i32 0, i32 6
  %3754 = load i32, ptr %21, align 4, !tbaa !9
  %3755 = zext i32 %3754 to i64
  %3756 = add i64 %3755, 16
  %3757 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3753, i64 noundef %3756, i32 noundef %3757)
  %3758 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3758, ptr %21, align 4, !tbaa !9
  %3759 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %3759, ptr %22, align 4, !tbaa !9
  %3760 = load ptr, ptr %4, align 8, !tbaa !5
  %3761 = getelementptr inbounds %struct.w2c_hermes, ptr %3760, i32 0, i32 6
  %3762 = load i32, ptr %21, align 4, !tbaa !9
  %3763 = zext i32 %3762 to i64
  %3764 = add i64 %3763, 8
  %3765 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3761, i64 noundef %3764, i32 noundef %3765)
  %3766 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3766, ptr %21, align 4, !tbaa !9
  %3767 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3767, ptr %22, align 4, !tbaa !9
  %3768 = load ptr, ptr %4, align 8, !tbaa !5
  %3769 = getelementptr inbounds %struct.w2c_hermes, ptr %3768, i32 0, i32 6
  %3770 = load i32, ptr %21, align 4, !tbaa !9
  %3771 = zext i32 %3770 to i64
  %3772 = add i64 %3771, 20
  %3773 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3769, i64 noundef %3772, i32 noundef %3773)
  %3774 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3774, ptr %21, align 4, !tbaa !9
  %3775 = load ptr, ptr %4, align 8, !tbaa !5
  %3776 = getelementptr inbounds %struct.w2c_hermes, ptr %3775, i32 0, i32 6
  %3777 = load i32, ptr %21, align 4, !tbaa !9
  %3778 = zext i32 %3777 to i64
  %3779 = add i64 %3778, 12
  %3780 = call i32 @i32_load(ptr noundef %3776, i64 noundef %3779)
  store i32 %3780, ptr %21, align 4, !tbaa !9
  %3781 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3781, ptr %8, align 4, !tbaa !9
  %3782 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3782, ptr %21, align 4, !tbaa !9
  %3783 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %3783, ptr %22, align 4, !tbaa !9
  %3784 = load ptr, ptr %4, align 8, !tbaa !5
  %3785 = getelementptr inbounds %struct.w2c_hermes, ptr %3784, i32 0, i32 6
  %3786 = load i32, ptr %21, align 4, !tbaa !9
  %3787 = zext i32 %3786 to i64
  %3788 = add i64 %3787, 12
  %3789 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3785, i64 noundef %3788, i32 noundef %3789)
  %3790 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3790, ptr %21, align 4, !tbaa !9
  %3791 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3791, ptr %22, align 4, !tbaa !9
  %3792 = load ptr, ptr %4, align 8, !tbaa !5
  %3793 = getelementptr inbounds %struct.w2c_hermes, ptr %3792, i32 0, i32 6
  %3794 = load i32, ptr %21, align 4, !tbaa !9
  %3795 = zext i32 %3794 to i64
  %3796 = add i64 %3795, 24
  %3797 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3793, i64 noundef %3796, i32 noundef %3797)
  %3798 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3798, ptr %21, align 4, !tbaa !9
  %3799 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3799, ptr %22, align 4, !tbaa !9
  %3800 = load i32, ptr %21, align 4, !tbaa !9
  %3801 = load i32, ptr %22, align 4, !tbaa !9
  %3802 = icmp ne i32 %3800, %3801
  %3803 = zext i1 %3802 to i32
  store i32 %3803, ptr %21, align 4, !tbaa !9
  %3804 = load i32, ptr %21, align 4, !tbaa !9
  %3805 = icmp ne i32 %3804, 0
  br i1 %3805, label %3806, label %3829

3806:                                             ; preds = %3719
  %3807 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3807, ptr %21, align 4, !tbaa !9
  %3808 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3808, ptr %22, align 4, !tbaa !9
  %3809 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3809, ptr %23, align 4, !tbaa !9
  %3810 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3810, ptr %24, align 4, !tbaa !9
  %3811 = load i32, ptr %24, align 4, !tbaa !9
  %3812 = load i32, ptr %23, align 4, !tbaa !9
  %3813 = sub i32 %3812, %3811
  store i32 %3813, ptr %23, align 4, !tbaa !9
  store i32 3, ptr %24, align 4, !tbaa !9
  %3814 = load i32, ptr %24, align 4, !tbaa !9
  %3815 = load i32, ptr %23, align 4, !tbaa !9
  %3816 = add i32 %3815, %3814
  store i32 %3816, ptr %23, align 4, !tbaa !9
  store i32 -4, ptr %24, align 4, !tbaa !9
  %3817 = load i32, ptr %24, align 4, !tbaa !9
  %3818 = load i32, ptr %23, align 4, !tbaa !9
  %3819 = and i32 %3818, %3817
  store i32 %3819, ptr %23, align 4, !tbaa !9
  %3820 = load i32, ptr %23, align 4, !tbaa !9
  %3821 = load i32, ptr %22, align 4, !tbaa !9
  %3822 = add i32 %3821, %3820
  store i32 %3822, ptr %22, align 4, !tbaa !9
  %3823 = load ptr, ptr %4, align 8, !tbaa !5
  %3824 = getelementptr inbounds %struct.w2c_hermes, ptr %3823, i32 0, i32 6
  %3825 = load i32, ptr %21, align 4, !tbaa !9
  %3826 = zext i32 %3825 to i64
  %3827 = add i64 %3826, 20
  %3828 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3824, i64 noundef %3827, i32 noundef %3828)
  br label %3829

3829:                                             ; preds = %3806, %3719
  %3830 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3830, ptr %21, align 4, !tbaa !9
  %3831 = load i32, ptr %21, align 4, !tbaa !9
  %3832 = icmp ne i32 %3831, 0
  %3833 = xor i1 %3832, true
  %3834 = zext i1 %3833 to i32
  store i32 %3834, ptr %21, align 4, !tbaa !9
  %3835 = load i32, ptr %21, align 4, !tbaa !9
  %3836 = icmp ne i32 %3835, 0
  br i1 %3836, label %3837, label %3838

3837:                                             ; preds = %3829
  br label %3842

3838:                                             ; preds = %3829
  %3839 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3839, ptr %21, align 4, !tbaa !9
  %3840 = load ptr, ptr %4, align 8, !tbaa !5
  %3841 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %3840, i32 noundef %3841)
  br label %3842

3842:                                             ; preds = %3838, %3837, %3334, %2791, %2702
  %3843 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %3843, ptr %21, align 4, !tbaa !9
  store i32 32, ptr %22, align 4, !tbaa !9
  %3844 = load i32, ptr %22, align 4, !tbaa !9
  %3845 = load i32, ptr %21, align 4, !tbaa !9
  %3846 = add i32 %3845, %3844
  store i32 %3846, ptr %21, align 4, !tbaa !9
  %3847 = load i32, ptr %21, align 4, !tbaa !9
  %3848 = load ptr, ptr %4, align 8, !tbaa !5
  %3849 = getelementptr inbounds %struct.w2c_hermes, ptr %3848, i32 0, i32 3
  store i32 %3847, ptr %3849, align 8, !tbaa !11
  br label %3852

3850:                                             ; preds = %3549, %3397, %3023, %2391
  %3851 = load ptr, ptr %4, align 8, !tbaa !5
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef %3851)
  call void @wasm_rt_trap(i32 noundef 5) #8
  unreachable

3852:                                             ; preds = %3842
  %3853 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3853, ptr %21, align 4, !tbaa !9
  %3854 = load ptr, ptr %4, align 8, !tbaa !5
  %3855 = getelementptr inbounds %struct.w2c_hermes, ptr %3854, i32 0, i32 6
  %3856 = load i32, ptr %21, align 4, !tbaa !9
  %3857 = zext i32 %3856 to i64
  %3858 = add i64 %3857, 104
  %3859 = call i32 @i32_load(ptr noundef %3855, i64 noundef %3858)
  store i32 %3859, ptr %21, align 4, !tbaa !9
  %3860 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3860, ptr %8, align 4, !tbaa !9
  %3861 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3861, ptr %21, align 4, !tbaa !9
  %3862 = load ptr, ptr %4, align 8, !tbaa !5
  %3863 = getelementptr inbounds %struct.w2c_hermes, ptr %3862, i32 0, i32 6
  %3864 = load i32, ptr %21, align 4, !tbaa !9
  %3865 = zext i32 %3864 to i64
  %3866 = add i64 %3865, 116
  %3867 = call i32 @i32_load(ptr noundef %3863, i64 noundef %3866)
  store i32 %3867, ptr %21, align 4, !tbaa !9
  %3868 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3868, ptr %22, align 4, !tbaa !9
  %3869 = load ptr, ptr %4, align 8, !tbaa !5
  %3870 = getelementptr inbounds %struct.w2c_hermes, ptr %3869, i32 0, i32 6
  %3871 = load i32, ptr %22, align 4, !tbaa !9
  %3872 = zext i32 %3871 to i64
  %3873 = add i64 %3872, 120
  %3874 = call i32 @i32_load(ptr noundef %3870, i64 noundef %3873)
  store i32 %3874, ptr %22, align 4, !tbaa !9
  %3875 = load i32, ptr %22, align 4, !tbaa !9
  %3876 = load i32, ptr %21, align 4, !tbaa !9
  %3877 = add i32 %3876, %3875
  store i32 %3877, ptr %21, align 4, !tbaa !9
  %3878 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3878, ptr %6, align 4, !tbaa !9
  br label %3879

3879:                                             ; preds = %3852, %2148
  %3880 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3880, ptr %21, align 4, !tbaa !9
  %3881 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3881, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %3882 = load i32, ptr %23, align 4, !tbaa !9
  %3883 = and i32 %3882, 31
  %3884 = load i32, ptr %22, align 4, !tbaa !9
  %3885 = lshr i32 %3884, %3883
  store i32 %3885, ptr %22, align 4, !tbaa !9
  store i32 1073741820, ptr %23, align 4, !tbaa !9
  %3886 = load i32, ptr %23, align 4, !tbaa !9
  %3887 = load i32, ptr %22, align 4, !tbaa !9
  %3888 = and i32 %3887, %3886
  store i32 %3888, ptr %22, align 4, !tbaa !9
  %3889 = load i32, ptr %22, align 4, !tbaa !9
  %3890 = load i32, ptr %21, align 4, !tbaa !9
  %3891 = add i32 %3890, %3889
  store i32 %3891, ptr %21, align 4, !tbaa !9
  %3892 = load ptr, ptr %4, align 8, !tbaa !5
  %3893 = getelementptr inbounds %struct.w2c_hermes, ptr %3892, i32 0, i32 6
  %3894 = load i32, ptr %21, align 4, !tbaa !9
  %3895 = zext i32 %3894 to i64
  %3896 = call i32 @i32_load(ptr noundef %3893, i64 noundef %3895)
  store i32 %3896, ptr %21, align 4, !tbaa !9
  %3897 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3897, ptr %22, align 4, !tbaa !9
  store i32 15, ptr %23, align 4, !tbaa !9
  %3898 = load i32, ptr %23, align 4, !tbaa !9
  %3899 = load i32, ptr %22, align 4, !tbaa !9
  %3900 = and i32 %3899, %3898
  store i32 %3900, ptr %22, align 4, !tbaa !9
  store i32 3204, ptr %23, align 4, !tbaa !9
  %3901 = load i32, ptr %23, align 4, !tbaa !9
  %3902 = load i32, ptr %22, align 4, !tbaa !9
  %3903 = mul i32 %3902, %3901
  store i32 %3903, ptr %22, align 4, !tbaa !9
  %3904 = load i32, ptr %22, align 4, !tbaa !9
  %3905 = load i32, ptr %21, align 4, !tbaa !9
  %3906 = add i32 %3905, %3904
  store i32 %3906, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  store i32 3204, ptr %23, align 4, !tbaa !9
  %3907 = load ptr, ptr %4, align 8, !tbaa !5
  %3908 = load i32, ptr %21, align 4, !tbaa !9
  %3909 = load i32, ptr %22, align 4, !tbaa !9
  %3910 = load i32, ptr %23, align 4, !tbaa !9
  %3911 = call i32 @w2c_hermes_0x5F_memset(ptr noundef %3907, i32 noundef %3908, i32 noundef %3909, i32 noundef %3910)
  store i32 %3911, ptr %21, align 4, !tbaa !9
  %3912 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3912, ptr %21, align 4, !tbaa !9
  %3913 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3913, ptr %22, align 4, !tbaa !9
  %3914 = load ptr, ptr %4, align 8, !tbaa !5
  %3915 = getelementptr inbounds %struct.w2c_hermes, ptr %3914, i32 0, i32 6
  %3916 = load i32, ptr %22, align 4, !tbaa !9
  %3917 = zext i32 %3916 to i64
  %3918 = add i64 %3917, 120
  %3919 = call i32 @i32_load(ptr noundef %3915, i64 noundef %3918)
  store i32 %3919, ptr %22, align 4, !tbaa !9
  %3920 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3920, ptr %7, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %3921 = load i32, ptr %23, align 4, !tbaa !9
  %3922 = load i32, ptr %22, align 4, !tbaa !9
  %3923 = add i32 %3922, %3921
  store i32 %3923, ptr %22, align 4, !tbaa !9
  %3924 = load ptr, ptr %4, align 8, !tbaa !5
  %3925 = getelementptr inbounds %struct.w2c_hermes, ptr %3924, i32 0, i32 6
  %3926 = load i32, ptr %21, align 4, !tbaa !9
  %3927 = zext i32 %3926 to i64
  %3928 = add i64 %3927, 120
  %3929 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3925, i64 noundef %3928, i32 noundef %3929)
  %3930 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3930, ptr %21, align 4, !tbaa !9
  %3931 = load ptr, ptr %4, align 8, !tbaa !5
  %3932 = getelementptr inbounds %struct.w2c_hermes, ptr %3931, i32 0, i32 6
  %3933 = load i32, ptr %21, align 4, !tbaa !9
  %3934 = zext i32 %3933 to i64
  %3935 = add i64 %3934, 12
  %3936 = call i32 @i32_load(ptr noundef %3932, i64 noundef %3935)
  store i32 %3936, ptr %21, align 4, !tbaa !9
  %3937 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3937, ptr %22, align 4, !tbaa !9
  %3938 = load ptr, ptr %4, align 8, !tbaa !5
  %3939 = getelementptr inbounds %struct.w2c_hermes, ptr %3938, i32 0, i32 6
  %3940 = load i32, ptr %22, align 4, !tbaa !9
  %3941 = zext i32 %3940 to i64
  %3942 = add i64 %3941, 8
  %3943 = call i32 @i32_load(ptr noundef %3939, i64 noundef %3942)
  store i32 %3943, ptr %22, align 4, !tbaa !9
  %3944 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3944, ptr %15, align 4, !tbaa !9
  %3945 = load i32, ptr %22, align 4, !tbaa !9
  %3946 = load i32, ptr %21, align 4, !tbaa !9
  %3947 = sub i32 %3946, %3945
  store i32 %3947, ptr %21, align 4, !tbaa !9
  %3948 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3948, ptr %9, align 4, !tbaa !9
  store i32 8, ptr %22, align 4, !tbaa !9
  %3949 = load i32, ptr %21, align 4, !tbaa !9
  %3950 = load i32, ptr %22, align 4, !tbaa !9
  %3951 = icmp ult i32 %3949, %3950
  %3952 = zext i1 %3951 to i32
  store i32 %3952, ptr %21, align 4, !tbaa !9
  %3953 = load i32, ptr %21, align 4, !tbaa !9
  %3954 = icmp ne i32 %3953, 0
  br i1 %3954, label %3955, label %3956

3955:                                             ; preds = %3879
  br label %4310

3956:                                             ; preds = %3879
  %3957 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3957, ptr %21, align 4, !tbaa !9
  %3958 = load ptr, ptr %4, align 8, !tbaa !5
  %3959 = getelementptr inbounds %struct.w2c_hermes, ptr %3958, i32 0, i32 6
  %3960 = load i32, ptr %21, align 4, !tbaa !9
  %3961 = zext i32 %3960 to i64
  %3962 = add i64 %3961, 104
  %3963 = call i32 @i32_load(ptr noundef %3959, i64 noundef %3962)
  store i32 %3963, ptr %21, align 4, !tbaa !9
  %3964 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3964, ptr %8, align 4, !tbaa !9
  %3965 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %3965, ptr %21, align 4, !tbaa !9
  %3966 = load ptr, ptr %4, align 8, !tbaa !5
  %3967 = getelementptr inbounds %struct.w2c_hermes, ptr %3966, i32 0, i32 6
  %3968 = load i32, ptr %21, align 4, !tbaa !9
  %3969 = zext i32 %3968 to i64
  %3970 = add i64 %3969, 116
  %3971 = call i32 @i32_load(ptr noundef %3967, i64 noundef %3970)
  store i32 %3971, ptr %21, align 4, !tbaa !9
  %3972 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3972, ptr %6, align 4, !tbaa !9
  %3973 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3973, ptr %21, align 4, !tbaa !9
  %3974 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3974, ptr %22, align 4, !tbaa !9
  %3975 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %3975, ptr %23, align 4, !tbaa !9
  %3976 = load i32, ptr %23, align 4, !tbaa !9
  %3977 = load i32, ptr %22, align 4, !tbaa !9
  %3978 = add i32 %3977, %3976
  store i32 %3978, ptr %22, align 4, !tbaa !9
  %3979 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3979, ptr %10, align 4, !tbaa !9
  %3980 = load ptr, ptr %4, align 8, !tbaa !5
  %3981 = getelementptr inbounds %struct.w2c_hermes, ptr %3980, i32 0, i32 6
  %3982 = load i32, ptr %21, align 4, !tbaa !9
  %3983 = zext i32 %3982 to i64
  %3984 = add i64 %3983, 8
  %3985 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %3981, i64 noundef %3984, i32 noundef %3985)
  %3986 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %3986, ptr %21, align 4, !tbaa !9
  %3987 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3987, ptr %22, align 4, !tbaa !9
  %3988 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3988, ptr %23, align 4, !tbaa !9
  %3989 = load i32, ptr %23, align 4, !tbaa !9
  %3990 = load i32, ptr %22, align 4, !tbaa !9
  %3991 = add i32 %3990, %3989
  store i32 %3991, ptr %22, align 4, !tbaa !9
  %3992 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %3992, ptr %7, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %3993 = load i32, ptr %23, align 4, !tbaa !9
  %3994 = and i32 %3993, 31
  %3995 = load i32, ptr %22, align 4, !tbaa !9
  %3996 = lshr i32 %3995, %3994
  store i32 %3996, ptr %22, align 4, !tbaa !9
  store i32 1073741820, ptr %23, align 4, !tbaa !9
  %3997 = load i32, ptr %23, align 4, !tbaa !9
  %3998 = load i32, ptr %22, align 4, !tbaa !9
  %3999 = and i32 %3998, %3997
  store i32 %3999, ptr %22, align 4, !tbaa !9
  %4000 = load i32, ptr %22, align 4, !tbaa !9
  %4001 = load i32, ptr %21, align 4, !tbaa !9
  %4002 = add i32 %4001, %4000
  store i32 %4002, ptr %21, align 4, !tbaa !9
  %4003 = load ptr, ptr %4, align 8, !tbaa !5
  %4004 = getelementptr inbounds %struct.w2c_hermes, ptr %4003, i32 0, i32 6
  %4005 = load i32, ptr %21, align 4, !tbaa !9
  %4006 = zext i32 %4005 to i64
  %4007 = call i32 @i32_load(ptr noundef %4004, i64 noundef %4006)
  store i32 %4007, ptr %21, align 4, !tbaa !9
  %4008 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4008, ptr %6, align 4, !tbaa !9
  %4009 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4009, ptr %21, align 4, !tbaa !9
  %4010 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %4010, ptr %22, align 4, !tbaa !9
  store i32 16777215, ptr %23, align 4, !tbaa !9
  %4011 = load i32, ptr %23, align 4, !tbaa !9
  %4012 = load i32, ptr %22, align 4, !tbaa !9
  %4013 = and i32 %4012, %4011
  store i32 %4013, ptr %22, align 4, !tbaa !9
  %4014 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4014, ptr %16, align 4, !tbaa !9
  store i32 33554432, ptr %23, align 4, !tbaa !9
  %4015 = load i32, ptr %23, align 4, !tbaa !9
  %4016 = load i32, ptr %22, align 4, !tbaa !9
  %4017 = or i32 %4016, %4015
  store i32 %4017, ptr %22, align 4, !tbaa !9
  %4018 = load ptr, ptr %4, align 8, !tbaa !5
  %4019 = getelementptr inbounds %struct.w2c_hermes, ptr %4018, i32 0, i32 6
  %4020 = load i32, ptr %21, align 4, !tbaa !9
  %4021 = zext i32 %4020 to i64
  %4022 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4019, i64 noundef %4021, i32 noundef %4022)
  %4023 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4023, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  %4024 = load ptr, ptr %4, align 8, !tbaa !5
  %4025 = getelementptr inbounds %struct.w2c_hermes, ptr %4024, i32 0, i32 6
  %4026 = load i32, ptr %21, align 4, !tbaa !9
  %4027 = zext i32 %4026 to i64
  %4028 = add i64 %4027, 4
  %4029 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4025, i64 noundef %4028, i32 noundef %4029)
  %4030 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4030, ptr %21, align 4, !tbaa !9
  %4031 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4031, ptr %22, align 4, !tbaa !9
  store i32 15, ptr %23, align 4, !tbaa !9
  %4032 = load i32, ptr %23, align 4, !tbaa !9
  %4033 = load i32, ptr %22, align 4, !tbaa !9
  %4034 = and i32 %4033, %4032
  store i32 %4034, ptr %22, align 4, !tbaa !9
  store i32 3204, ptr %23, align 4, !tbaa !9
  %4035 = load i32, ptr %23, align 4, !tbaa !9
  %4036 = load i32, ptr %22, align 4, !tbaa !9
  %4037 = mul i32 %4036, %4035
  store i32 %4037, ptr %22, align 4, !tbaa !9
  %4038 = load i32, ptr %22, align 4, !tbaa !9
  %4039 = load i32, ptr %21, align 4, !tbaa !9
  %4040 = add i32 %4039, %4038
  store i32 %4040, ptr %21, align 4, !tbaa !9
  %4041 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4041, ptr %13, align 4, !tbaa !9
  %4042 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %4042, ptr %22, align 4, !tbaa !9
  store i32 3, ptr %23, align 4, !tbaa !9
  %4043 = load i32, ptr %23, align 4, !tbaa !9
  %4044 = and i32 %4043, 31
  %4045 = load i32, ptr %22, align 4, !tbaa !9
  %4046 = lshr i32 %4045, %4044
  store i32 %4046, ptr %22, align 4, !tbaa !9
  store i32 276, ptr %23, align 4, !tbaa !9
  %4047 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %4047, ptr %24, align 4, !tbaa !9
  %4048 = load i32, ptr %24, align 4, !tbaa !9
  %4049 = icmp ne i32 %4048, 0
  br i1 %4049, label %4050, label %4053

4050:                                             ; preds = %3956
  %4051 = load i32, ptr %24, align 4, !tbaa !9
  %4052 = call i32 @llvm.ctlz.i32(i32 %4051, i1 true)
  br label %4054

4053:                                             ; preds = %3956
  br label %4054

4054:                                             ; preds = %4053, %4050
  %4055 = phi i32 [ %4052, %4050 ], [ 32, %4053 ]
  store i32 %4055, ptr %24, align 4, !tbaa !9
  %4056 = load i32, ptr %24, align 4, !tbaa !9
  %4057 = load i32, ptr %23, align 4, !tbaa !9
  %4058 = sub i32 %4057, %4056
  store i32 %4058, ptr %23, align 4, !tbaa !9
  %4059 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %4059, ptr %24, align 4, !tbaa !9
  store i32 2048, ptr %25, align 4, !tbaa !9
  %4060 = load i32, ptr %24, align 4, !tbaa !9
  %4061 = load i32, ptr %25, align 4, !tbaa !9
  %4062 = icmp ult i32 %4060, %4061
  %4063 = zext i1 %4062 to i32
  store i32 %4063, ptr %24, align 4, !tbaa !9
  %4064 = load i32, ptr %24, align 4, !tbaa !9
  %4065 = icmp ne i32 %4064, 0
  br i1 %4065, label %4066, label %4068

4066:                                             ; preds = %4054
  %4067 = load i32, ptr %22, align 4, !tbaa !9
  br label %4070

4068:                                             ; preds = %4054
  %4069 = load i32, ptr %23, align 4, !tbaa !9
  br label %4070

4070:                                             ; preds = %4068, %4066
  %4071 = phi i32 [ %4067, %4066 ], [ %4069, %4068 ]
  store i32 %4071, ptr %22, align 4, !tbaa !9
  %4072 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4072, ptr %8, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %4073 = load i32, ptr %23, align 4, !tbaa !9
  %4074 = load i32, ptr %22, align 4, !tbaa !9
  %4075 = mul i32 %4074, %4073
  store i32 %4075, ptr %22, align 4, !tbaa !9
  %4076 = load i32, ptr %22, align 4, !tbaa !9
  %4077 = load i32, ptr %21, align 4, !tbaa !9
  %4078 = add i32 %4077, %4076
  store i32 %4078, ptr %21, align 4, !tbaa !9
  %4079 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4079, ptr %12, align 4, !tbaa !9
  %4080 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4080, ptr %21, align 4, !tbaa !9
  %4081 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4081, ptr %22, align 4, !tbaa !9
  store i32 -4194304, ptr %23, align 4, !tbaa !9
  %4082 = load i32, ptr %23, align 4, !tbaa !9
  %4083 = load i32, ptr %22, align 4, !tbaa !9
  %4084 = and i32 %4083, %4082
  store i32 %4084, ptr %22, align 4, !tbaa !9
  %4085 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4085, ptr %7, align 4, !tbaa !9
  store i32 -1, ptr %23, align 4, !tbaa !9
  %4086 = load i32, ptr %23, align 4, !tbaa !9
  %4087 = load i32, ptr %22, align 4, !tbaa !9
  %4088 = xor i32 %4087, %4086
  store i32 %4088, ptr %22, align 4, !tbaa !9
  %4089 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4089, ptr %23, align 4, !tbaa !9
  %4090 = load i32, ptr %23, align 4, !tbaa !9
  %4091 = load i32, ptr %22, align 4, !tbaa !9
  %4092 = add i32 %4091, %4090
  store i32 %4092, ptr %22, align 4, !tbaa !9
  store i32 9, ptr %23, align 4, !tbaa !9
  %4093 = load i32, ptr %22, align 4, !tbaa !9
  %4094 = load i32, ptr %23, align 4, !tbaa !9
  %4095 = and i32 %4094, 31
  %4096 = ashr i32 %4093, %4095
  store i32 %4096, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %4097 = load i32, ptr %23, align 4, !tbaa !9
  %4098 = load i32, ptr %22, align 4, !tbaa !9
  %4099 = add i32 %4098, %4097
  store i32 %4099, ptr %22, align 4, !tbaa !9
  %4100 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4100, ptr %6, align 4, !tbaa !9
  %4101 = load ptr, ptr %4, align 8, !tbaa !5
  %4102 = getelementptr inbounds %struct.w2c_hermes, ptr %4101, i32 0, i32 6
  %4103 = load i32, ptr %21, align 4, !tbaa !9
  %4104 = zext i32 %4103 to i64
  %4105 = add i64 %4104, 4
  %4106 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4102, i64 noundef %4105, i32 noundef %4106)
  %4107 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4107, ptr %21, align 4, !tbaa !9
  %4108 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4108, ptr %22, align 4, !tbaa !9
  %4109 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4109, ptr %23, align 4, !tbaa !9
  store i32 9, ptr %24, align 4, !tbaa !9
  %4110 = load i32, ptr %24, align 4, !tbaa !9
  %4111 = and i32 %4110, 31
  %4112 = load i32, ptr %23, align 4, !tbaa !9
  %4113 = shl i32 %4112, %4111
  store i32 %4113, ptr %23, align 4, !tbaa !9
  %4114 = load i32, ptr %23, align 4, !tbaa !9
  %4115 = load i32, ptr %22, align 4, !tbaa !9
  %4116 = add i32 %4115, %4114
  store i32 %4116, ptr %22, align 4, !tbaa !9
  %4117 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4117, ptr %6, align 4, !tbaa !9
  %4118 = load ptr, ptr %4, align 8, !tbaa !5
  %4119 = getelementptr inbounds %struct.w2c_hermes, ptr %4118, i32 0, i32 6
  %4120 = load i32, ptr %21, align 4, !tbaa !9
  %4121 = zext i32 %4120 to i64
  %4122 = add i64 %4121, 8
  %4123 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4119, i64 noundef %4122, i32 noundef %4123)
  %4124 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4124, ptr %21, align 4, !tbaa !9
  %4125 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %4125, ptr %22, align 4, !tbaa !9
  %4126 = load i32, ptr %21, align 4, !tbaa !9
  %4127 = load i32, ptr %22, align 4, !tbaa !9
  %4128 = icmp ult i32 %4126, %4127
  %4129 = zext i1 %4128 to i32
  store i32 %4129, ptr %21, align 4, !tbaa !9
  %4130 = load i32, ptr %21, align 4, !tbaa !9
  %4131 = icmp ne i32 %4130, 0
  br i1 %4131, label %4132, label %4155

4132:                                             ; preds = %4070
  %4133 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4133, ptr %21, align 4, !tbaa !9
  %4134 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4134, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %4135 = load i32, ptr %23, align 4, !tbaa !9
  %4136 = load i32, ptr %22, align 4, !tbaa !9
  %4137 = add i32 %4136, %4135
  store i32 %4137, ptr %22, align 4, !tbaa !9
  %4138 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4138, ptr %23, align 4, !tbaa !9
  %4139 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %4139, ptr %24, align 4, !tbaa !9
  %4140 = load ptr, ptr %4, align 8, !tbaa !5
  %4141 = load i32, ptr %21, align 4, !tbaa !9
  %4142 = load i32, ptr %22, align 4, !tbaa !9
  %4143 = load i32, ptr %23, align 4, !tbaa !9
  %4144 = load i32, ptr %24, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3ACardTable0x3A0x3AupdateBoundaries0x28hermes0x3A0x3Avm0x3A0x3ACardTable0x3A0x3ABoundary0x2A0x2C0x20char0x20const0x2A0x2C0x20char0x20const0x2A0x29(ptr noundef %4140, i32 noundef %4141, i32 noundef %4142, i32 noundef %4143, i32 noundef %4144)
  %4145 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4145, ptr %21, align 4, !tbaa !9
  %4146 = load ptr, ptr %4, align 8, !tbaa !5
  %4147 = getelementptr inbounds %struct.w2c_hermes, ptr %4146, i32 0, i32 6
  %4148 = load i32, ptr %21, align 4, !tbaa !9
  %4149 = zext i32 %4148 to i64
  %4150 = call i32 @i32_load(ptr noundef %4147, i64 noundef %4149)
  store i32 %4150, ptr %21, align 4, !tbaa !9
  store i32 16777215, ptr %22, align 4, !tbaa !9
  %4151 = load i32, ptr %22, align 4, !tbaa !9
  %4152 = load i32, ptr %21, align 4, !tbaa !9
  %4153 = and i32 %4152, %4151
  store i32 %4153, ptr %21, align 4, !tbaa !9
  %4154 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4154, ptr %16, align 4, !tbaa !9
  br label %4155

4155:                                             ; preds = %4132, %4070
  %4156 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4156, ptr %21, align 4, !tbaa !9
  %4157 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %4157, ptr %22, align 4, !tbaa !9
  %4158 = load ptr, ptr %4, align 8, !tbaa !5
  %4159 = getelementptr inbounds %struct.w2c_hermes, ptr %4158, i32 0, i32 6
  %4160 = load i32, ptr %22, align 4, !tbaa !9
  %4161 = zext i32 %4160 to i64
  %4162 = add i64 %4161, 8
  %4163 = call i32 @i32_load(ptr noundef %4159, i64 noundef %4162)
  store i32 %4163, ptr %22, align 4, !tbaa !9
  %4164 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4164, ptr %6, align 4, !tbaa !9
  %4165 = load ptr, ptr %4, align 8, !tbaa !5
  %4166 = getelementptr inbounds %struct.w2c_hermes, ptr %4165, i32 0, i32 6
  %4167 = load i32, ptr %21, align 4, !tbaa !9
  %4168 = zext i32 %4167 to i64
  %4169 = add i64 %4168, 4
  %4170 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4166, i64 noundef %4169, i32 noundef %4170)
  %4171 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %4171, ptr %21, align 4, !tbaa !9
  %4172 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %4172, ptr %22, align 4, !tbaa !9
  %4173 = load ptr, ptr %4, align 8, !tbaa !5
  %4174 = getelementptr inbounds %struct.w2c_hermes, ptr %4173, i32 0, i32 6
  %4175 = load i32, ptr %21, align 4, !tbaa !9
  %4176 = zext i32 %4175 to i64
  %4177 = add i64 %4176, 8
  %4178 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4174, i64 noundef %4177, i32 noundef %4178)
  %4179 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4179, ptr %21, align 4, !tbaa !9
  %4180 = load i32, ptr %21, align 4, !tbaa !9
  %4181 = icmp ne i32 %4180, 0
  br i1 %4181, label %4182, label %4183

4182:                                             ; preds = %4155
  br label %4310

4183:                                             ; preds = %4155
  %4184 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %4184, ptr %21, align 4, !tbaa !9
  %4185 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %4185, ptr %22, align 4, !tbaa !9
  store i32 3, ptr %23, align 4, !tbaa !9
  %4186 = load i32, ptr %23, align 4, !tbaa !9
  %4187 = and i32 %4186, 31
  %4188 = load i32, ptr %22, align 4, !tbaa !9
  %4189 = lshr i32 %4188, %4187
  store i32 %4189, ptr %22, align 4, !tbaa !9
  store i32 276, ptr %23, align 4, !tbaa !9
  %4190 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %4190, ptr %24, align 4, !tbaa !9
  %4191 = load i32, ptr %24, align 4, !tbaa !9
  %4192 = icmp ne i32 %4191, 0
  br i1 %4192, label %4193, label %4196

4193:                                             ; preds = %4183
  %4194 = load i32, ptr %24, align 4, !tbaa !9
  %4195 = call i32 @llvm.ctlz.i32(i32 %4194, i1 true)
  br label %4197

4196:                                             ; preds = %4183
  br label %4197

4197:                                             ; preds = %4196, %4193
  %4198 = phi i32 [ %4195, %4193 ], [ 32, %4196 ]
  store i32 %4198, ptr %24, align 4, !tbaa !9
  %4199 = load i32, ptr %24, align 4, !tbaa !9
  %4200 = load i32, ptr %23, align 4, !tbaa !9
  %4201 = sub i32 %4200, %4199
  store i32 %4201, ptr %23, align 4, !tbaa !9
  %4202 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %4202, ptr %24, align 4, !tbaa !9
  store i32 2048, ptr %25, align 4, !tbaa !9
  %4203 = load i32, ptr %24, align 4, !tbaa !9
  %4204 = load i32, ptr %25, align 4, !tbaa !9
  %4205 = icmp ult i32 %4203, %4204
  %4206 = zext i1 %4205 to i32
  store i32 %4206, ptr %24, align 4, !tbaa !9
  %4207 = load i32, ptr %24, align 4, !tbaa !9
  %4208 = icmp ne i32 %4207, 0
  br i1 %4208, label %4209, label %4211

4209:                                             ; preds = %4197
  %4210 = load i32, ptr %22, align 4, !tbaa !9
  br label %4213

4211:                                             ; preds = %4197
  %4212 = load i32, ptr %23, align 4, !tbaa !9
  br label %4213

4213:                                             ; preds = %4211, %4209
  %4214 = phi i32 [ %4210, %4209 ], [ %4212, %4211 ]
  store i32 %4214, ptr %22, align 4, !tbaa !9
  %4215 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %4215, ptr %9, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %4216 = load i32, ptr %23, align 4, !tbaa !9
  %4217 = load i32, ptr %22, align 4, !tbaa !9
  %4218 = mul i32 %4217, %4216
  store i32 %4218, ptr %22, align 4, !tbaa !9
  %4219 = load i32, ptr %22, align 4, !tbaa !9
  %4220 = load i32, ptr %21, align 4, !tbaa !9
  %4221 = add i32 %4220, %4219
  store i32 %4221, ptr %21, align 4, !tbaa !9
  %4222 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4222, ptr %7, align 4, !tbaa !9
  store i32 124, ptr %22, align 4, !tbaa !9
  %4223 = load i32, ptr %22, align 4, !tbaa !9
  %4224 = load i32, ptr %21, align 4, !tbaa !9
  %4225 = add i32 %4224, %4223
  store i32 %4225, ptr %21, align 4, !tbaa !9
  %4226 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4226, ptr %6, align 4, !tbaa !9
  %4227 = load ptr, ptr %4, align 8, !tbaa !5
  %4228 = getelementptr inbounds %struct.w2c_hermes, ptr %4227, i32 0, i32 6
  %4229 = load i32, ptr %21, align 4, !tbaa !9
  %4230 = zext i32 %4229 to i64
  %4231 = call i32 @i32_load(ptr noundef %4228, i64 noundef %4230)
  store i32 %4231, ptr %21, align 4, !tbaa !9
  %4232 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4232, ptr %10, align 4, !tbaa !9
  %4233 = load i32, ptr %21, align 4, !tbaa !9
  %4234 = icmp ne i32 %4233, 0
  br i1 %4234, label %4235, label %4244

4235:                                             ; preds = %4213
  %4236 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %4236, ptr %21, align 4, !tbaa !9
  %4237 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %4237, ptr %22, align 4, !tbaa !9
  %4238 = load ptr, ptr %4, align 8, !tbaa !5
  %4239 = getelementptr inbounds %struct.w2c_hermes, ptr %4238, i32 0, i32 6
  %4240 = load i32, ptr %21, align 4, !tbaa !9
  %4241 = zext i32 %4240 to i64
  %4242 = add i64 %4241, 4
  %4243 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4239, i64 noundef %4242, i32 noundef %4243)
  br label %4244

4244:                                             ; preds = %4235, %4213
  %4245 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %4245, ptr %21, align 4, !tbaa !9
  %4246 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %4246, ptr %22, align 4, !tbaa !9
  store i32 12, ptr %23, align 4, !tbaa !9
  %4247 = load i32, ptr %23, align 4, !tbaa !9
  %4248 = load i32, ptr %22, align 4, !tbaa !9
  %4249 = mul i32 %4248, %4247
  store i32 %4249, ptr %22, align 4, !tbaa !9
  %4250 = load i32, ptr %22, align 4, !tbaa !9
  %4251 = load i32, ptr %21, align 4, !tbaa !9
  %4252 = add i32 %4251, %4250
  store i32 %4252, ptr %21, align 4, !tbaa !9
  %4253 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4253, ptr %22, align 4, !tbaa !9
  %4254 = load ptr, ptr %4, align 8, !tbaa !5
  %4255 = getelementptr inbounds %struct.w2c_hermes, ptr %4254, i32 0, i32 6
  %4256 = load i32, ptr %21, align 4, !tbaa !9
  %4257 = zext i32 %4256 to i64
  %4258 = add i64 %4257, 4
  %4259 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4255, i64 noundef %4258, i32 noundef %4259)
  %4260 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %4260, ptr %21, align 4, !tbaa !9
  %4261 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %4261, ptr %22, align 4, !tbaa !9
  %4262 = load ptr, ptr %4, align 8, !tbaa !5
  %4263 = getelementptr inbounds %struct.w2c_hermes, ptr %4262, i32 0, i32 6
  %4264 = load i32, ptr %21, align 4, !tbaa !9
  %4265 = zext i32 %4264 to i64
  %4266 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4263, i64 noundef %4265, i32 noundef %4266)
  %4267 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4267, ptr %21, align 4, !tbaa !9
  %4268 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %4268, ptr %22, align 4, !tbaa !9
  %4269 = load ptr, ptr %4, align 8, !tbaa !5
  %4270 = getelementptr inbounds %struct.w2c_hermes, ptr %4269, i32 0, i32 6
  %4271 = load i32, ptr %21, align 4, !tbaa !9
  %4272 = zext i32 %4271 to i64
  %4273 = add i64 %4272, 124
  %4274 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4270, i64 noundef %4273, i32 noundef %4274)
  %4275 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %4275, ptr %21, align 4, !tbaa !9
  %4276 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %4276, ptr %22, align 4, !tbaa !9
  store i32 3, ptr %23, align 4, !tbaa !9
  %4277 = load i32, ptr %23, align 4, !tbaa !9
  %4278 = and i32 %4277, 31
  %4279 = load i32, ptr %22, align 4, !tbaa !9
  %4280 = lshr i32 %4279, %4278
  store i32 %4280, ptr %22, align 4, !tbaa !9
  store i32 262140, ptr %23, align 4, !tbaa !9
  %4281 = load i32, ptr %23, align 4, !tbaa !9
  %4282 = load i32, ptr %22, align 4, !tbaa !9
  %4283 = and i32 %4282, %4281
  store i32 %4283, ptr %22, align 4, !tbaa !9
  %4284 = load i32, ptr %22, align 4, !tbaa !9
  %4285 = load i32, ptr %21, align 4, !tbaa !9
  %4286 = add i32 %4285, %4284
  store i32 %4286, ptr %21, align 4, !tbaa !9
  store i32 -64, ptr %22, align 4, !tbaa !9
  %4287 = load i32, ptr %22, align 4, !tbaa !9
  %4288 = load i32, ptr %21, align 4, !tbaa !9
  %4289 = sub i32 %4288, %4287
  store i32 %4289, ptr %21, align 4, !tbaa !9
  %4290 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4290, ptr %6, align 4, !tbaa !9
  %4291 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4291, ptr %22, align 4, !tbaa !9
  %4292 = load ptr, ptr %4, align 8, !tbaa !5
  %4293 = getelementptr inbounds %struct.w2c_hermes, ptr %4292, i32 0, i32 6
  %4294 = load i32, ptr %22, align 4, !tbaa !9
  %4295 = zext i32 %4294 to i64
  %4296 = call i32 @i32_load(ptr noundef %4293, i64 noundef %4295)
  store i32 %4296, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %4297 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %4297, ptr %24, align 4, !tbaa !9
  %4298 = load i32, ptr %24, align 4, !tbaa !9
  %4299 = and i32 %4298, 31
  %4300 = load i32, ptr %23, align 4, !tbaa !9
  %4301 = shl i32 %4300, %4299
  store i32 %4301, ptr %23, align 4, !tbaa !9
  %4302 = load i32, ptr %23, align 4, !tbaa !9
  %4303 = load i32, ptr %22, align 4, !tbaa !9
  %4304 = or i32 %4303, %4302
  store i32 %4304, ptr %22, align 4, !tbaa !9
  %4305 = load ptr, ptr %4, align 8, !tbaa !5
  %4306 = getelementptr inbounds %struct.w2c_hermes, ptr %4305, i32 0, i32 6
  %4307 = load i32, ptr %21, align 4, !tbaa !9
  %4308 = zext i32 %4307 to i64
  %4309 = load i32, ptr %22, align 4, !tbaa !9
  call void @i32_store(ptr noundef %4306, i64 noundef %4308, i32 noundef %4309)
  br label %4310

4310:                                             ; preds = %4244, %4182, %3955
  %4311 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %4311, ptr %21, align 4, !tbaa !9
  %4312 = load ptr, ptr %4, align 8, !tbaa !5
  %4313 = getelementptr inbounds %struct.w2c_hermes, ptr %4312, i32 0, i32 6
  %4314 = load i32, ptr %21, align 4, !tbaa !9
  %4315 = zext i32 %4314 to i64
  %4316 = call i32 @i32_load(ptr noundef %4313, i64 noundef %4315)
  store i32 %4316, ptr %21, align 4, !tbaa !9
  %4317 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4317, ptr %7, align 4, !tbaa !9
  %4318 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4318, ptr %21, align 4, !tbaa !9
  store i32 4, ptr %22, align 4, !tbaa !9
  %4319 = load i32, ptr %22, align 4, !tbaa !9
  %4320 = load i32, ptr %21, align 4, !tbaa !9
  %4321 = add i32 %4320, %4319
  store i32 %4321, ptr %21, align 4, !tbaa !9
  %4322 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %4322, ptr %6, align 4, !tbaa !9
  %4323 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %4323, ptr %22, align 4, !tbaa !9
  %4324 = load ptr, ptr %4, align 8, !tbaa !5
  %4325 = getelementptr inbounds %struct.w2c_hermes, ptr %4324, i32 0, i32 6
  %4326 = load i32, ptr %22, align 4, !tbaa !9
  %4327 = zext i32 %4326 to i64
  %4328 = add i64 %4327, 24
  %4329 = call i32 @i32_load(ptr noundef %4325, i64 noundef %4328)
  store i32 %4329, ptr %22, align 4, !tbaa !9
  %4330 = load ptr, ptr %4, align 8, !tbaa !5
  %4331 = load i32, ptr %21, align 4, !tbaa !9
  %4332 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Ato_string0x28unsigned0x20int0x29(ptr noundef %4330, i32 noundef %4331, i32 noundef %4332)
  %4333 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4333, ptr %21, align 4, !tbaa !9
  %4334 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %4334, ptr %22, align 4, !tbaa !9
  %4335 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4335, ptr %23, align 4, !tbaa !9
  %4336 = load ptr, ptr %4, align 8, !tbaa !5
  %4337 = load i32, ptr %21, align 4, !tbaa !9
  %4338 = load i32, ptr %22, align 4, !tbaa !9
  %4339 = load i32, ptr %23, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AaddSegmentExtentToCrashManager0x28hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AHeapSegment0x20const0x260x2C0x20std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef %4336, i32 noundef %4337, i32 noundef %4338, i32 noundef %4339)
  %4340 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4340, ptr %21, align 4, !tbaa !9
  %4341 = load ptr, ptr %4, align 8, !tbaa !5
  %4342 = getelementptr inbounds %struct.w2c_hermes, ptr %4341, i32 0, i32 6
  %4343 = load i32, ptr %21, align 4, !tbaa !9
  %4344 = zext i32 %4343 to i64
  %4345 = add i64 %4344, 15
  %4346 = call i32 @i32_load8_s(ptr noundef %4342, i64 noundef %4345)
  store i32 %4346, ptr %21, align 4, !tbaa !9
  store i32 0, ptr %22, align 4, !tbaa !9
  %4347 = load i32, ptr %21, align 4, !tbaa !9
  %4348 = load i32, ptr %22, align 4, !tbaa !9
  %4349 = icmp slt i32 %4347, %4348
  %4350 = zext i1 %4349 to i32
  store i32 %4350, ptr %21, align 4, !tbaa !9
  %4351 = load i32, ptr %21, align 4, !tbaa !9
  %4352 = icmp ne i32 %4351, 0
  br i1 %4352, label %4353, label %4363

4353:                                             ; preds = %4310
  %4354 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4354, ptr %21, align 4, !tbaa !9
  %4355 = load ptr, ptr %4, align 8, !tbaa !5
  %4356 = getelementptr inbounds %struct.w2c_hermes, ptr %4355, i32 0, i32 6
  %4357 = load i32, ptr %21, align 4, !tbaa !9
  %4358 = zext i32 %4357 to i64
  %4359 = add i64 %4358, 4
  %4360 = call i32 @i32_load(ptr noundef %4356, i64 noundef %4359)
  store i32 %4360, ptr %21, align 4, !tbaa !9
  %4361 = load ptr, ptr %4, align 8, !tbaa !5
  %4362 = load i32, ptr %21, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %4361, i32 noundef %4362)
  br label %4363

4363:                                             ; preds = %4353, %4310
  %4364 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %4364, ptr %21, align 4, !tbaa !9
  store i32 16, ptr %22, align 4, !tbaa !9
  %4365 = load i32, ptr %22, align 4, !tbaa !9
  %4366 = load i32, ptr %21, align 4, !tbaa !9
  %4367 = add i32 %4366, %4365
  store i32 %4367, ptr %21, align 4, !tbaa !9
  %4368 = load i32, ptr %21, align 4, !tbaa !9
  %4369 = load ptr, ptr %4, align 8, !tbaa !5
  %4370 = getelementptr inbounds %struct.w2c_hermes, ptr %4369, i32 0, i32 3
  store i32 %4368, ptr %4370, align 8, !tbaa !11
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #7
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #7
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #7
  ret void
}

declare i32 @w2c_hermes_memmove(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef) #2

declare i32 @w2c_hermes_0x5F_memset(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #2

; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.ctlz.i32(i32, i1 immarg) #6

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

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Ato_string0x28unsigned0x20int0x29(ptr noundef, i32 noundef, i32 noundef) #2

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_back0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef, i32 noundef, i32 noundef) #2

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef, i32 noundef, i32 noundef) #2

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 = { "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 = { 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 = { nocallback nofree nosync nounwind willreturn memory(none) }
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 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #7 = { nounwind }
attributes #8 = { 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}


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

; 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 void @i64_store(ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #0

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

declare i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef, i32 noundef) local_unnamed_addr #1

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

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

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

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

declare i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x3A0x3AAlignedStorage0x28hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x260x260x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: nounwind uwtable
define dso_local void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AOldGen0x3A0x3AaddSegment0x28hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AHeapSegment0x29(ptr noundef %0, i32 noundef %1, i32 noundef %2) local_unnamed_addr #3 {
  %4 = getelementptr inbounds i8, ptr %0, i64 24
  %5 = load i32, ptr %4, align 8, !tbaa !5
  %6 = add i32 %5, -16
  store i32 %6, ptr %4, align 8, !tbaa !5
  %7 = add i32 %1, 4
  %8 = getelementptr inbounds i8, ptr %0, i64 40
  %9 = zext i32 %7 to i64
  %10 = add nuw nsw i64 %9, 20
  %11 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %10)
  %12 = add nuw nsw i64 %9, 16
  %13 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %12)
  %14 = add i32 %13, %11
  %15 = add nuw nsw i64 %9, 8
  %16 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %17 = add nuw nsw i64 %9, 4
  %18 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %19 = sub i32 %16, %18
  %20 = shl i32 %19, 6
  %21 = add i32 %20, -1
  %.not = icmp eq i32 %16, %18
  %22 = select i1 %.not, i32 0, i32 %21
  %23 = icmp eq i32 %14, %22
  br i1 %23, label %24, label %275

24:                                               ; preds = %3
  %25 = load i32, ptr %4, align 8, !tbaa !5
  %26 = add i32 %25, -32
  store i32 %26, ptr %4, align 8, !tbaa !5
  %27 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %12)
  %28 = icmp ugt i32 %27, 255
  br i1 %28, label %29, label %113

29:                                               ; preds = %24
  %30 = add i32 %27, -256
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %12, i32 noundef %30)
  %31 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %32 = zext i32 %31 to i64
  %33 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %32)
  %34 = add i32 %31, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %34)
  %35 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %36 = add nuw nsw i64 %9, 12
  %37 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %36)
  %.not2547 = icmp eq i32 %35, %37
  br i1 %.not2547, label %38, label %109

38:                                               ; preds = %29
  %39 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %9)
  %40 = icmp ult i32 %39, %34
  br i1 %40, label %41, label %53

41:                                               ; preds = %38
  %42 = sub i32 %34, %39
  %43 = ashr i32 %42, 2
  %44 = add nsw i32 %43, 1
  %45 = sdiv i32 %44, -2
  %46 = shl nsw i32 %45, 2
  %47 = add i32 %46, %34
  %48 = sub i32 %35, %34
  %49 = tail call i32 @w2c_hermes_memmove(ptr noundef nonnull %0, i32 noundef %47, i32 noundef %34, i32 noundef %48) #5
  %50 = add i32 %49, %48
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %50)
  %51 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %52 = add i32 %51, %46
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %52)
  br label %109

53:                                               ; preds = %38
  %54 = sub i32 %35, %39
  %55 = ashr i32 %54, 1
  %56 = icmp eq i32 %35, %39
  %57 = select i1 %56, i32 1, i32 %55
  %58 = icmp ugt i32 %57, 1073741823
  br i1 %58, label %274, label %59

59:                                               ; preds = %53
  %60 = shl nuw i32 %57, 2
  %61 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %60) #5
  %62 = add i32 %61, %60
  %63 = and i32 %57, 1073741820
  %64 = add i32 %61, %63
  %65 = icmp eq i32 %35, %34
  br i1 %65, label %.loopexit2582, label %66

66:                                               ; preds = %59
  %67 = sub i32 %35, %34
  %68 = and i32 %67, -4
  %69 = add i32 %67, -4
  %70 = lshr i32 %69, 2
  %71 = add nuw nsw i32 %70, 1
  %72 = and i32 %71, 7
  %.not2548 = icmp eq i32 %72, 0
  br i1 %.not2548, label %.loopexit2584, label %.preheader2583

.preheader2583:                                   ; preds = %66, %.preheader2583
  %.02479 = phi i32 [ %77, %.preheader2583 ], [ %64, %66 ]
  %.02451 = phi i32 [ %76, %.preheader2583 ], [ %34, %66 ]
  %.02442 = phi i32 [ %78, %.preheader2583 ], [ 0, %66 ]
  %73 = zext i32 %.02451 to i64
  %74 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %73)
  %75 = zext i32 %.02479 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %75, i32 noundef %74)
  %76 = add i32 %.02451, 4
  %77 = add i32 %.02479, 4
  %78 = add nuw nsw i32 %.02442, 1
  %.not2549 = icmp eq i32 %78, %72
  br i1 %.not2549, label %.loopexit2584, label %.preheader2583

.loopexit2584:                                    ; preds = %.preheader2583, %66
  %.12480 = phi i32 [ %64, %66 ], [ %77, %.preheader2583 ]
  %.12452 = phi i32 [ %34, %66 ], [ %76, %.preheader2583 ]
  %79 = add i32 %64, %68
  %80 = icmp ult i32 %69, 28
  br i1 %80, label %.loopexit2582, label %.preheader2581

.preheader2581:                                   ; preds = %.loopexit2584, %.preheader2581
  %.22481 = phi i32 [ %106, %.preheader2581 ], [ %.12480, %.loopexit2584 ]
  %.22453 = phi i32 [ %105, %.preheader2581 ], [ %.12452, %.loopexit2584 ]
  %81 = zext i32 %.22453 to i64
  %82 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %81)
  %83 = zext i32 %.22481 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %83, i32 noundef %82)
  %84 = add nuw nsw i64 %81, 4
  %85 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %84)
  %86 = add nuw nsw i64 %83, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %86, i32 noundef %85)
  %87 = add nuw nsw i64 %81, 8
  %88 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %87)
  %89 = add nuw nsw i64 %83, 8
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %89, i32 noundef %88)
  %90 = add nuw nsw i64 %81, 12
  %91 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %90)
  %92 = add nuw nsw i64 %83, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %92, i32 noundef %91)
  %93 = add nuw nsw i64 %81, 16
  %94 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %93)
  %95 = add nuw nsw i64 %83, 16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %95, i32 noundef %94)
  %96 = add nuw nsw i64 %81, 20
  %97 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %96)
  %98 = add nuw nsw i64 %83, 20
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %98, i32 noundef %97)
  %99 = add nuw nsw i64 %81, 24
  %100 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %99)
  %101 = add nuw nsw i64 %83, 24
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %101, i32 noundef %100)
  %102 = add nuw nsw i64 %81, 28
  %103 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %102)
  %104 = add nuw nsw i64 %83, 28
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %104, i32 noundef %103)
  %105 = add i32 %.22453, 32
  %106 = add i32 %.22481, 32
  %.not2550 = icmp eq i32 %106, %79
  br i1 %.not2550, label %.loopexit2582, label %.preheader2581

.loopexit2582:                                    ; preds = %.preheader2581, %.loopexit2584, %59
  %.12443 = phi i32 [ %64, %59 ], [ %79, %.loopexit2584 ], [ %79, %.preheader2581 ]
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %36, i32 noundef %62)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %.12443)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %64)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %9, i32 noundef %61)
  %.not2551 = icmp eq i32 %39, 0
  br i1 %.not2551, label %109, label %107

107:                                              ; preds = %.loopexit2582
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %39) #5
  %108 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  br label %109

109:                                              ; preds = %29, %.loopexit2582, %107, %41
  %.22444 = phi i32 [ %50, %41 ], [ %.12443, %.loopexit2582 ], [ %108, %107 ], [ %35, %29 ]
  %110 = zext i32 %.22444 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %110, i32 noundef %33)
  %111 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %112 = add i32 %111, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %112)
  br label %271

113:                                              ; preds = %24
  %114 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %115 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %116 = sub i32 %114, %115
  %117 = ashr i32 %116, 2
  %118 = add nuw nsw i64 %9, 12
  %119 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %118)
  %120 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %9)
  %121 = sub i32 %119, %120
  %122 = ashr i32 %121, 2
  %123 = icmp ult i32 %117, %122
  br i1 %123, label %124, label %212

124:                                              ; preds = %113
  %.not2541 = icmp eq i32 %119, %114
  %125 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 4096) #5
  %126 = zext i32 %26 to i64
  %127 = add nuw nsw i64 %126, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %127, i32 noundef %125)
  %128 = add i32 %25, -20
  br i1 %.not2541, label %130, label %129

129:                                              ; preds = %124
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_back0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef nonnull %0, i32 noundef %7, i32 noundef %128) #5
  br label %271

130:                                              ; preds = %124
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef nonnull %0, i32 noundef %7, i32 noundef %128) #5
  %131 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %132 = zext i32 %131 to i64
  %133 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %132)
  %134 = add i32 %131, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %134)
  %135 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %136 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %118)
  %.not2542 = icmp eq i32 %135, %136
  br i1 %.not2542, label %137, label %208

137:                                              ; preds = %130
  %138 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %9)
  %139 = icmp ult i32 %138, %134
  br i1 %139, label %140, label %152

140:                                              ; preds = %137
  %141 = sub i32 %134, %138
  %142 = ashr i32 %141, 2
  %143 = add nsw i32 %142, 1
  %144 = sdiv i32 %143, -2
  %145 = shl nsw i32 %144, 2
  %146 = add i32 %145, %134
  %147 = sub i32 %135, %134
  %148 = tail call i32 @w2c_hermes_memmove(ptr noundef nonnull %0, i32 noundef %146, i32 noundef %134, i32 noundef %147) #5
  %149 = add i32 %148, %147
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %149)
  %150 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %151 = add i32 %150, %145
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %151)
  br label %208

152:                                              ; preds = %137
  %153 = sub i32 %135, %138
  %154 = ashr i32 %153, 1
  %155 = icmp eq i32 %135, %138
  %156 = select i1 %155, i32 1, i32 %154
  %157 = icmp ugt i32 %156, 1073741823
  br i1 %157, label %274, label %158

158:                                              ; preds = %152
  %159 = shl nuw i32 %156, 2
  %160 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %159) #5
  %161 = add i32 %160, %159
  %162 = and i32 %156, 1073741820
  %163 = add i32 %160, %162
  %164 = icmp eq i32 %135, %134
  br i1 %164, label %.loopexit2586, label %165

165:                                              ; preds = %158
  %166 = sub i32 %135, %134
  %167 = and i32 %166, -4
  %168 = add i32 %166, -4
  %169 = lshr i32 %168, 2
  %170 = add nuw nsw i32 %169, 1
  %171 = and i32 %170, 7
  %.not2543 = icmp eq i32 %171, 0
  br i1 %.not2543, label %.loopexit2588, label %.preheader2587

.preheader2587:                                   ; preds = %165, %.preheader2587
  %.32482 = phi i32 [ %176, %.preheader2587 ], [ %163, %165 ]
  %.32454 = phi i32 [ %175, %.preheader2587 ], [ %134, %165 ]
  %.32445 = phi i32 [ %177, %.preheader2587 ], [ 0, %165 ]
  %172 = zext i32 %.32454 to i64
  %173 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %172)
  %174 = zext i32 %.32482 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %174, i32 noundef %173)
  %175 = add i32 %.32454, 4
  %176 = add i32 %.32482, 4
  %177 = add nuw nsw i32 %.32445, 1
  %.not2544 = icmp eq i32 %177, %171
  br i1 %.not2544, label %.loopexit2588, label %.preheader2587

.loopexit2588:                                    ; preds = %.preheader2587, %165
  %.42483 = phi i32 [ %163, %165 ], [ %176, %.preheader2587 ]
  %.42455 = phi i32 [ %134, %165 ], [ %175, %.preheader2587 ]
  %178 = add i32 %163, %167
  %179 = icmp ult i32 %168, 28
  br i1 %179, label %.loopexit2586, label %.preheader2585

.preheader2585:                                   ; preds = %.loopexit2588, %.preheader2585
  %.52484 = phi i32 [ %205, %.preheader2585 ], [ %.42483, %.loopexit2588 ]
  %.52456 = phi i32 [ %204, %.preheader2585 ], [ %.42455, %.loopexit2588 ]
  %180 = zext i32 %.52456 to i64
  %181 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %180)
  %182 = zext i32 %.52484 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %182, i32 noundef %181)
  %183 = add nuw nsw i64 %180, 4
  %184 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %183)
  %185 = add nuw nsw i64 %182, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %185, i32 noundef %184)
  %186 = add nuw nsw i64 %180, 8
  %187 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %186)
  %188 = add nuw nsw i64 %182, 8
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %188, i32 noundef %187)
  %189 = add nuw nsw i64 %180, 12
  %190 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %189)
  %191 = add nuw nsw i64 %182, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %191, i32 noundef %190)
  %192 = add nuw nsw i64 %180, 16
  %193 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %192)
  %194 = add nuw nsw i64 %182, 16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %194, i32 noundef %193)
  %195 = add nuw nsw i64 %180, 20
  %196 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %195)
  %197 = add nuw nsw i64 %182, 20
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %197, i32 noundef %196)
  %198 = add nuw nsw i64 %180, 24
  %199 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %198)
  %200 = add nuw nsw i64 %182, 24
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %200, i32 noundef %199)
  %201 = add nuw nsw i64 %180, 28
  %202 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %201)
  %203 = add nuw nsw i64 %182, 28
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %203, i32 noundef %202)
  %204 = add i32 %.52456, 32
  %205 = add i32 %.52484, 32
  %.not2545 = icmp eq i32 %205, %178
  br i1 %.not2545, label %.loopexit2586, label %.preheader2585

.loopexit2586:                                    ; preds = %.preheader2585, %.loopexit2588, %158
  %.42446 = phi i32 [ %163, %158 ], [ %178, %.loopexit2588 ], [ %178, %.preheader2585 ]
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %118, i32 noundef %161)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %.42446)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %163)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %9, i32 noundef %160)
  %.not2546 = icmp eq i32 %138, 0
  br i1 %.not2546, label %208, label %206

206:                                              ; preds = %.loopexit2586
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %138) #5
  %207 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  br label %208

208:                                              ; preds = %130, %.loopexit2586, %206, %140
  %.52447 = phi i32 [ %149, %140 ], [ %.42446, %.loopexit2586 ], [ %207, %206 ], [ %135, %130 ]
  %209 = zext i32 %.52447 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %209, i32 noundef %133)
  %210 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %211 = add i32 %210, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %211)
  br label %271

212:                                              ; preds = %113
  %213 = add i32 %1, 16
  %214 = zext i32 %26 to i64
  %215 = add nuw nsw i64 %214, 28
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %215, i32 noundef %213)
  %216 = ashr i32 %121, 1
  %217 = icmp eq i32 %119, %120
  %218 = select i1 %217, i32 1, i32 %216
  %219 = icmp ugt i32 %218, 1073741823
  br i1 %219, label %274, label %220

220:                                              ; preds = %212
  %221 = shl nuw i32 %218, 2
  %222 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %221) #5
  %223 = add nuw nsw i64 %214, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %223, i32 noundef %222)
  %224 = add i32 %222, %221
  %225 = add nuw nsw i64 %214, 24
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %225, i32 noundef %224)
  %226 = and i32 %116, -4
  %227 = add i32 %222, %226
  %228 = add nuw nsw i64 %214, 16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %228, i32 noundef %227)
  %229 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 4096) #5
  %.not2536 = icmp eq i32 %218, %117
  br i1 %.not2536, label %230, label %248

230:                                              ; preds = %220
  %231 = icmp sgt i32 %116, 0
  br i1 %231, label %232, label %237

232:                                              ; preds = %230
  %233 = shl nuw nsw i32 %117, 1
  %234 = add nuw nsw i32 %233, 2
  %235 = and i32 %234, 2147483644
  %236 = sub i32 %227, %235
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %228, i32 noundef %236)
  br label %248

237:                                              ; preds = %230
  %238 = ashr i32 %116, 1
  %239 = icmp eq i32 %115, %114
  %240 = select i1 %239, i32 1, i32 %238
  %241 = icmp ugt i32 %240, 1073741823
  br i1 %241, label %274, label %242

242:                                              ; preds = %237
  %243 = shl nuw nsw i32 %240, 2
  %244 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %243) #5
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %223, i32 noundef %244)
  %245 = add i32 %244, %243
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %225, i32 noundef %245)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %228, i32 noundef %244)
  tail call void @w2c_hermes_dlfree(ptr noundef nonnull %0, i32 noundef %222) #5
  %246 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %247 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  br label %248

248:                                              ; preds = %220, %242, %232
  %.62485 = phi i32 [ %115, %220 ], [ %115, %232 ], [ %246, %242 ]
  %.02459 = phi i32 [ %222, %220 ], [ %222, %232 ], [ %244, %242 ]
  %.62457 = phi i32 [ %114, %220 ], [ %114, %232 ], [ %247, %242 ]
  %.62448 = phi i32 [ %227, %220 ], [ %236, %232 ], [ %244, %242 ]
  %.02435 = phi i32 [ %224, %220 ], [ %224, %232 ], [ %245, %242 ]
  %249 = zext i32 %.62448 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %249, i32 noundef %229)
  %250 = add i32 %.62448, 4
  %251 = add nuw nsw i64 %214, 20
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %251, i32 noundef %250)
  %.not2537 = icmp eq i32 %.62485, %.62457
  br i1 %.not2537, label %262, label %.preheader2589

.preheader2589:                                   ; preds = %248
  %252 = add i32 %25, -20
  br label %253

253:                                              ; preds = %.preheader2589, %253
  %.72458 = phi i32 [ %254, %253 ], [ %.62457, %.preheader2589 ]
  %254 = add i32 %.72458, -4
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %0, i32 noundef %252, i32 noundef %254) #5
  %255 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %.not2538 = icmp eq i32 %254, %255
  br i1 %.not2538, label %256, label %253

256:                                              ; preds = %253
  %257 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %225)
  %258 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %251)
  %259 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %228)
  %260 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %223)
  %261 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  br label %262

262:                                              ; preds = %256, %248
  %.72486 = phi i32 [ %261, %256 ], [ %.62485, %248 ]
  %.02469 = phi i32 [ %254, %256 ], [ %.62485, %248 ]
  %.12460 = phi i32 [ %260, %256 ], [ %.02459, %248 ]
  %.72449 = phi i32 [ %259, %256 ], [ %.62448, %248 ]
  %.02437 = phi i32 [ %258, %256 ], [ %250, %248 ]
  %.12436 = phi i32 [ %257, %256 ], [ %.02435, %248 ]
  %263 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %9)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %9, i32 noundef %.12460)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %223, i32 noundef %263)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %17, i32 noundef %.72449)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %228, i32 noundef %.02469)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %15, i32 noundef %.02437)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %251, i32 noundef %.72486)
  %264 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %118)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %118, i32 noundef %.12436)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %225, i32 noundef %264)
  %.not2539 = icmp eq i32 %.72486, %.02469
  br i1 %.not2539, label %269, label %265

265:                                              ; preds = %262
  %reass.sub = sub i32 %.02469, %.72486
  %266 = add i32 %reass.sub, 3
  %267 = and i32 %266, -4
  %268 = add i32 %267, %.72486
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %251, i32 noundef %268)
  br label %269

269:                                              ; preds = %265, %262
  %.not2540 = icmp eq i32 %263, 0
  br i1 %.not2540, label %271, label %270

270:                                              ; preds = %269
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %263) #5
  br label %271

271:                                              ; preds = %269, %270, %208, %129, %109
  store i32 %25, ptr %4, align 8, !tbaa !5
  %272 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %273 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  br label %275

274:                                              ; preds = %237, %212, %152, %53
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef nonnull %0) #5
  tail call void @wasm_rt_trap(i32 noundef 5) #6
  unreachable

275:                                              ; preds = %3, %271
  %.12470 = phi i32 [ %272, %271 ], [ %18, %3 ]
  %.02433 = phi i32 [ %273, %271 ], [ %16, %3 ]
  %.not2552 = icmp eq i32 %.02433, %.12470
  br i1 %.not2552, label %288, label %276

276:                                              ; preds = %275
  %277 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %10)
  %278 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %12)
  %279 = add i32 %278, %277
  %280 = lshr i32 %279, 6
  %281 = and i32 %280, 67108860
  %282 = add i32 %281, %.12470
  %283 = zext i32 %282 to i64
  %284 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %283)
  %285 = shl i32 %279, 4
  %286 = and i32 %285, 4080
  %287 = add i32 %286, %284
  br label %288

288:                                              ; preds = %275, %276
  %.12434 = phi i32 [ %287, %276 ], [ 0, %275 ]
  %289 = tail call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x3A0x3AAlignedStorage0x28hermes0x3A0x3Avm0x3A0x3AAlignedStorage0x260x260x29(ptr noundef nonnull %0, i32 noundef %.12434, i32 noundef %2) #5
  %290 = zext i32 %2 to i64
  %291 = add nuw nsw i64 %290, 8
  %292 = tail call i64 @i64_load(ptr noundef nonnull %8, i64 noundef %291)
  %293 = zext i32 %289 to i64
  %294 = add nuw nsw i64 %293, 8
  tail call void @i64_store(ptr noundef nonnull %8, i64 noundef %294, i64 noundef %292)
  %295 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %10)
  %296 = add i32 %295, 1
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %10, i32 noundef %296)
  %297 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %17)
  %298 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %12)
  %299 = add i32 %298, %296
  %300 = lshr i32 %299, 6
  %301 = and i32 %300, 67108860
  %302 = add i32 %301, %297
  %303 = zext i32 %302 to i64
  %304 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %303)
  %305 = shl i32 %299, 4
  %306 = and i32 %305, 4080
  %307 = add i32 %306, %304
  %308 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %15)
  %.not2553 = icmp eq i32 %308, %297
  %309 = select i1 %.not2553, i32 0, i32 %307
  %310 = icmp eq i32 %309, %304
  br i1 %310, label %311, label %315

311:                                              ; preds = %288
  %312 = add i32 %302, -4
  %313 = zext i32 %312 to i64
  %314 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %313)
  br label %315

315:                                              ; preds = %288, %311
  %316 = zext i32 %1 to i64
  %317 = add nuw nsw i64 %316, 48
  %318 = tail call i64 @i64_load(ptr noundef nonnull %8, i64 noundef %317)
  %319 = add nuw nsw i64 %316, 8
  %320 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %319)
  %321 = add nuw nsw i64 %316, 24
  %322 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %321)
  %323 = add nuw nsw i64 %316, 20
  %324 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %323)
  %325 = add i32 %322, -1
  %326 = add i32 %325, %324
  %327 = lshr i32 %326, 6
  %328 = and i32 %327, 67108860
  %329 = add i32 %328, %320
  %330 = zext i32 %329 to i64
  %331 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %330)
  %332 = shl i32 %326, 4
  %333 = and i32 %332, 4080
  %334 = add i32 %333, %331
  %335 = zext i32 %334 to i64
  %336 = add nuw nsw i64 %335, 8
  %337 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %336)
  %338 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %335)
  %339 = add i32 %337, -86016
  %340 = sub i32 %339, %338
  %341 = sext i32 %340 to i64
  %342 = add i64 %318, %341
  tail call void @i64_store(ptr noundef nonnull %8, i64 noundef %317, i64 noundef %342)
  %343 = add nuw nsw i64 %316, 120
  %344 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %343)
  %345 = add nuw nsw i64 %316, 116
  %346 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %345)
  %347 = add i32 %346, %344
  %348 = add nuw nsw i64 %316, 108
  %349 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %348)
  %350 = add nuw nsw i64 %316, 104
  %351 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %350)
  %352 = sub i32 %349, %351
  %353 = shl i32 %352, 2
  %354 = add i32 %353, -1
  %.not2554 = icmp eq i32 %349, %351
  %355 = select i1 %.not2554, i32 0, i32 %354
  %356 = icmp eq i32 %347, %355
  br i1 %356, label %357, label %617

357:                                              ; preds = %315
  %358 = load i32, ptr %4, align 8, !tbaa !5
  %359 = add i32 %358, -32
  store i32 %359, ptr %4, align 8, !tbaa !5
  %360 = add i32 %1, 100
  %361 = zext i32 %360 to i64
  %362 = add nuw nsw i64 %361, 16
  %363 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %362)
  %364 = icmp ugt i32 %363, 15
  %365 = add nuw nsw i64 %361, 4
  br i1 %364, label %366, label %451

366:                                              ; preds = %357
  %367 = add i32 %363, -16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %362, i32 noundef %367)
  %368 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %369 = zext i32 %368 to i64
  %370 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %369)
  %371 = add i32 %368, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %371)
  %372 = add nuw nsw i64 %361, 8
  %373 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %372)
  %374 = add nuw nsw i64 %361, 12
  %375 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %374)
  %.not2566 = icmp eq i32 %373, %375
  br i1 %.not2566, label %376, label %447

376:                                              ; preds = %366
  %377 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %361)
  %378 = icmp ult i32 %377, %371
  br i1 %378, label %379, label %391

379:                                              ; preds = %376
  %380 = sub i32 %371, %377
  %381 = ashr i32 %380, 2
  %382 = add nsw i32 %381, 1
  %383 = sdiv i32 %382, -2
  %384 = shl nsw i32 %383, 2
  %385 = add i32 %384, %371
  %386 = sub i32 %373, %371
  %387 = tail call i32 @w2c_hermes_memmove(ptr noundef nonnull %0, i32 noundef %385, i32 noundef %371, i32 noundef %386) #5
  %388 = add i32 %387, %386
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %372, i32 noundef %388)
  %389 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %390 = add i32 %389, %384
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %390)
  br label %447

391:                                              ; preds = %376
  %392 = sub i32 %373, %377
  %393 = ashr i32 %392, 1
  %394 = icmp eq i32 %373, %377
  %395 = select i1 %394, i32 1, i32 %393
  %396 = icmp ugt i32 %395, 1073741823
  br i1 %396, label %616, label %397

397:                                              ; preds = %391
  %398 = shl nuw i32 %395, 2
  %399 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %398) #5
  %400 = add i32 %399, %398
  %401 = and i32 %395, 1073741820
  %402 = add i32 %399, %401
  %403 = icmp eq i32 %373, %371
  br i1 %403, label %.loopexit, label %404

404:                                              ; preds = %397
  %405 = sub i32 %373, %371
  %406 = and i32 %405, -4
  %407 = add i32 %405, -4
  %408 = lshr i32 %407, 2
  %409 = add nuw nsw i32 %408, 1
  %410 = and i32 %409, 7
  %.not2567 = icmp eq i32 %410, 0
  br i1 %.not2567, label %.loopexit2575, label %.preheader2574

.preheader2574:                                   ; preds = %404, %.preheader2574
  %.22471 = phi i32 [ %416, %.preheader2574 ], [ 0, %404 ]
  %.22461 = phi i32 [ %414, %.preheader2574 ], [ %371, %404 ]
  %.0 = phi i32 [ %415, %.preheader2574 ], [ %402, %404 ]
  %411 = zext i32 %.22461 to i64
  %412 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %411)
  %413 = zext i32 %.0 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %413, i32 noundef %412)
  %414 = add i32 %.22461, 4
  %415 = add i32 %.0, 4
  %416 = add nuw nsw i32 %.22471, 1
  %.not2568 = icmp eq i32 %416, %410
  br i1 %.not2568, label %.loopexit2575, label %.preheader2574

.loopexit2575:                                    ; preds = %.preheader2574, %404
  %.32462 = phi i32 [ %371, %404 ], [ %414, %.preheader2574 ]
  %.1 = phi i32 [ %402, %404 ], [ %415, %.preheader2574 ]
  %417 = add i32 %402, %406
  %418 = icmp ult i32 %407, 28
  br i1 %418, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %.loopexit2575, %.preheader
  %.42463 = phi i32 [ %443, %.preheader ], [ %.32462, %.loopexit2575 ]
  %.2 = phi i32 [ %444, %.preheader ], [ %.1, %.loopexit2575 ]
  %419 = zext i32 %.42463 to i64
  %420 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %419)
  %421 = zext i32 %.2 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %421, i32 noundef %420)
  %422 = add nuw nsw i64 %419, 4
  %423 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %422)
  %424 = add nuw nsw i64 %421, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %424, i32 noundef %423)
  %425 = add nuw nsw i64 %419, 8
  %426 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %425)
  %427 = add nuw nsw i64 %421, 8
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %427, i32 noundef %426)
  %428 = add nuw nsw i64 %419, 12
  %429 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %428)
  %430 = add nuw nsw i64 %421, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %430, i32 noundef %429)
  %431 = add nuw nsw i64 %419, 16
  %432 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %431)
  %433 = add nuw nsw i64 %421, 16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %433, i32 noundef %432)
  %434 = add nuw nsw i64 %419, 20
  %435 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %434)
  %436 = add nuw nsw i64 %421, 20
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %436, i32 noundef %435)
  %437 = add nuw nsw i64 %419, 24
  %438 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %437)
  %439 = add nuw nsw i64 %421, 24
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %439, i32 noundef %438)
  %440 = add nuw nsw i64 %419, 28
  %441 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %440)
  %442 = add nuw nsw i64 %421, 28
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %442, i32 noundef %441)
  %443 = add i32 %.42463, 32
  %444 = add i32 %.2, 32
  %.not2569 = icmp eq i32 %444, %417
  br i1 %.not2569, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %.preheader, %.loopexit2575, %397
  %.32472 = phi i32 [ %402, %397 ], [ %417, %.loopexit2575 ], [ %417, %.preheader ]
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %374, i32 noundef %400)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %372, i32 noundef %.32472)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %402)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %361, i32 noundef %399)
  %.not2570 = icmp eq i32 %377, 0
  br i1 %.not2570, label %447, label %445

445:                                              ; preds = %.loopexit
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %377) #5
  %446 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %372)
  br label %447

447:                                              ; preds = %366, %.loopexit, %445, %379
  %.42473 = phi i32 [ %388, %379 ], [ %.32472, %.loopexit ], [ %446, %445 ], [ %373, %366 ]
  %448 = zext i32 %.42473 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %448, i32 noundef %370)
  %449 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %372)
  %450 = add i32 %449, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %372, i32 noundef %450)
  br label %611

451:                                              ; preds = %357
  %452 = add nuw nsw i64 %361, 8
  %453 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %452)
  %454 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %455 = sub i32 %453, %454
  %456 = ashr i32 %455, 2
  %457 = add nuw nsw i64 %361, 12
  %458 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %457)
  %459 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %361)
  %460 = sub i32 %458, %459
  %461 = ashr i32 %460, 2
  %462 = icmp ult i32 %456, %461
  br i1 %462, label %463, label %551

463:                                              ; preds = %451
  %.not2560 = icmp eq i32 %453, %458
  %464 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 51264) #5
  %465 = zext i32 %359 to i64
  %466 = add nuw nsw i64 %465, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %466, i32 noundef %464)
  %467 = add i32 %358, -20
  br i1 %.not2560, label %469, label %468

468:                                              ; preds = %463
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_back0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef nonnull %0, i32 noundef %360, i32 noundef %467) #5
  br label %611

469:                                              ; preds = %463
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef nonnull %0, i32 noundef %360, i32 noundef %467) #5
  %470 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %471 = zext i32 %470 to i64
  %472 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %471)
  %473 = add i32 %470, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %473)
  %474 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %452)
  %475 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %457)
  %.not2561 = icmp eq i32 %474, %475
  br i1 %.not2561, label %476, label %547

476:                                              ; preds = %469
  %477 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %361)
  %478 = icmp ult i32 %477, %473
  br i1 %478, label %479, label %491

479:                                              ; preds = %476
  %480 = sub i32 %473, %477
  %481 = ashr i32 %480, 2
  %482 = add nsw i32 %481, 1
  %483 = sdiv i32 %482, -2
  %484 = shl nsw i32 %483, 2
  %485 = add i32 %484, %473
  %486 = sub i32 %474, %473
  %487 = tail call i32 @w2c_hermes_memmove(ptr noundef nonnull %0, i32 noundef %485, i32 noundef %473, i32 noundef %486) #5
  %488 = add i32 %487, %486
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %452, i32 noundef %488)
  %489 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %490 = add i32 %489, %484
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %490)
  br label %547

491:                                              ; preds = %476
  %492 = sub i32 %474, %477
  %493 = ashr i32 %492, 1
  %494 = icmp eq i32 %474, %477
  %495 = select i1 %494, i32 1, i32 %493
  %496 = icmp ugt i32 %495, 1073741823
  br i1 %496, label %616, label %497

497:                                              ; preds = %491
  %498 = shl nuw i32 %495, 2
  %499 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %498) #5
  %500 = add i32 %499, %498
  %501 = and i32 %495, 1073741820
  %502 = add i32 %499, %501
  %503 = icmp eq i32 %474, %473
  br i1 %503, label %.loopexit2577, label %504

504:                                              ; preds = %497
  %505 = sub i32 %474, %473
  %506 = and i32 %505, -4
  %507 = add i32 %505, -4
  %508 = lshr i32 %507, 2
  %509 = add nuw nsw i32 %508, 1
  %510 = and i32 %509, 7
  %.not2562 = icmp eq i32 %510, 0
  br i1 %.not2562, label %.loopexit2579, label %.preheader2578

.preheader2578:                                   ; preds = %504, %.preheader2578
  %.52474 = phi i32 [ %516, %.preheader2578 ], [ 0, %504 ]
  %.52464 = phi i32 [ %514, %.preheader2578 ], [ %473, %504 ]
  %.3 = phi i32 [ %515, %.preheader2578 ], [ %502, %504 ]
  %511 = zext i32 %.52464 to i64
  %512 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %511)
  %513 = zext i32 %.3 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %513, i32 noundef %512)
  %514 = add i32 %.52464, 4
  %515 = add i32 %.3, 4
  %516 = add nuw nsw i32 %.52474, 1
  %.not2563 = icmp eq i32 %516, %510
  br i1 %.not2563, label %.loopexit2579, label %.preheader2578

.loopexit2579:                                    ; preds = %.preheader2578, %504
  %.62465 = phi i32 [ %473, %504 ], [ %514, %.preheader2578 ]
  %.4 = phi i32 [ %502, %504 ], [ %515, %.preheader2578 ]
  %517 = add i32 %502, %506
  %518 = icmp ult i32 %507, 28
  br i1 %518, label %.loopexit2577, label %.preheader2576

.preheader2576:                                   ; preds = %.loopexit2579, %.preheader2576
  %.72466 = phi i32 [ %543, %.preheader2576 ], [ %.62465, %.loopexit2579 ]
  %.5 = phi i32 [ %544, %.preheader2576 ], [ %.4, %.loopexit2579 ]
  %519 = zext i32 %.72466 to i64
  %520 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %519)
  %521 = zext i32 %.5 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %521, i32 noundef %520)
  %522 = add nuw nsw i64 %519, 4
  %523 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %522)
  %524 = add nuw nsw i64 %521, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %524, i32 noundef %523)
  %525 = add nuw nsw i64 %519, 8
  %526 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %525)
  %527 = add nuw nsw i64 %521, 8
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %527, i32 noundef %526)
  %528 = add nuw nsw i64 %519, 12
  %529 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %528)
  %530 = add nuw nsw i64 %521, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %530, i32 noundef %529)
  %531 = add nuw nsw i64 %519, 16
  %532 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %531)
  %533 = add nuw nsw i64 %521, 16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %533, i32 noundef %532)
  %534 = add nuw nsw i64 %519, 20
  %535 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %534)
  %536 = add nuw nsw i64 %521, 20
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %536, i32 noundef %535)
  %537 = add nuw nsw i64 %519, 24
  %538 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %537)
  %539 = add nuw nsw i64 %521, 24
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %539, i32 noundef %538)
  %540 = add nuw nsw i64 %519, 28
  %541 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %540)
  %542 = add nuw nsw i64 %521, 28
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %542, i32 noundef %541)
  %543 = add i32 %.72466, 32
  %544 = add i32 %.5, 32
  %.not2564 = icmp eq i32 %544, %517
  br i1 %.not2564, label %.loopexit2577, label %.preheader2576

.loopexit2577:                                    ; preds = %.preheader2576, %.loopexit2579, %497
  %.62475 = phi i32 [ %502, %497 ], [ %517, %.loopexit2579 ], [ %517, %.preheader2576 ]
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %457, i32 noundef %500)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %452, i32 noundef %.62475)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %502)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %361, i32 noundef %499)
  %.not2565 = icmp eq i32 %477, 0
  br i1 %.not2565, label %547, label %545

545:                                              ; preds = %.loopexit2577
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %477) #5
  %546 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %452)
  br label %547

547:                                              ; preds = %469, %.loopexit2577, %545, %479
  %.72476 = phi i32 [ %488, %479 ], [ %.62475, %.loopexit2577 ], [ %546, %545 ], [ %474, %469 ]
  %548 = zext i32 %.72476 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %548, i32 noundef %472)
  %549 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %452)
  %550 = add i32 %549, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %452, i32 noundef %550)
  br label %611

551:                                              ; preds = %451
  %552 = add i32 %1, 112
  %553 = zext i32 %359 to i64
  %554 = add nuw nsw i64 %553, 28
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %554, i32 noundef %552)
  %555 = ashr i32 %460, 1
  %556 = icmp eq i32 %459, %458
  %557 = select i1 %556, i32 1, i32 %555
  %558 = icmp ugt i32 %557, 1073741823
  br i1 %558, label %616, label %559

559:                                              ; preds = %551
  %560 = shl nuw i32 %557, 2
  %561 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %560) #5
  %562 = add nuw nsw i64 %553, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %562, i32 noundef %561)
  %563 = add i32 %561, %560
  %564 = add nuw nsw i64 %553, 24
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %564, i32 noundef %563)
  %565 = and i32 %455, -4
  %566 = add i32 %561, %565
  %567 = add nuw nsw i64 %553, 16
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %567, i32 noundef %566)
  %568 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 51264) #5
  %.not2555 = icmp eq i32 %557, %456
  br i1 %.not2555, label %569, label %587

569:                                              ; preds = %559
  %570 = icmp sgt i32 %455, 0
  br i1 %570, label %571, label %576

571:                                              ; preds = %569
  %572 = shl nuw nsw i32 %456, 1
  %573 = add nuw nsw i32 %572, 2
  %574 = and i32 %573, 2147483644
  %575 = sub i32 %566, %574
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %567, i32 noundef %575)
  br label %587

576:                                              ; preds = %569
  %577 = ashr i32 %455, 1
  %578 = icmp eq i32 %454, %453
  %579 = select i1 %578, i32 1, i32 %577
  %580 = icmp ugt i32 %579, 1073741823
  br i1 %580, label %616, label %581

581:                                              ; preds = %576
  %582 = shl nuw nsw i32 %579, 2
  %583 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %582) #5
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %562, i32 noundef %583)
  %584 = add i32 %583, %582
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %564, i32 noundef %584)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %567, i32 noundef %583)
  tail call void @w2c_hermes_dlfree(ptr noundef nonnull %0, i32 noundef %561) #5
  %585 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %586 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %452)
  br label %587

587:                                              ; preds = %559, %581, %571
  %.82477 = phi i32 [ %566, %559 ], [ %575, %571 ], [ %583, %581 ]
  %.82467 = phi i32 [ %453, %559 ], [ %453, %571 ], [ %586, %581 ]
  %.82450 = phi i32 [ %561, %559 ], [ %561, %571 ], [ %583, %581 ]
  %.02440 = phi i32 [ %563, %559 ], [ %563, %571 ], [ %584, %581 ]
  %.6 = phi i32 [ %454, %559 ], [ %454, %571 ], [ %585, %581 ]
  %588 = zext i32 %.82477 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %588, i32 noundef %568)
  %589 = add i32 %.82477, 4
  %590 = add nuw nsw i64 %553, 20
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %590, i32 noundef %589)
  %.not2556 = icmp eq i32 %.82467, %.6
  br i1 %.not2556, label %601, label %.preheader2580

.preheader2580:                                   ; preds = %587
  %591 = add i32 %358, -20
  br label %592

592:                                              ; preds = %.preheader2580, %592
  %.92468 = phi i32 [ %593, %592 ], [ %.82467, %.preheader2580 ]
  %593 = add i32 %.92468, -4
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef %0, i32 noundef %591, i32 noundef %593) #5
  %594 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %365)
  %.not2557 = icmp eq i32 %593, %594
  br i1 %.not2557, label %595, label %592

595:                                              ; preds = %592
  %596 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %564)
  %597 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %590)
  %598 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %567)
  %599 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %562)
  %600 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %452)
  br label %601

601:                                              ; preds = %595, %587
  %.82487 = phi i32 [ %593, %595 ], [ %.82467, %587 ]
  %.92478 = phi i32 [ %598, %595 ], [ %.82477, %587 ]
  %.9 = phi i32 [ %599, %595 ], [ %.82450, %587 ]
  %.12441 = phi i32 [ %596, %595 ], [ %.02440, %587 ]
  %.12438 = phi i32 [ %597, %595 ], [ %589, %587 ]
  %.7 = phi i32 [ %600, %595 ], [ %.82467, %587 ]
  %602 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %361)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %361, i32 noundef %.9)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %562, i32 noundef %602)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %365, i32 noundef %.92478)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %567, i32 noundef %.82487)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %452, i32 noundef %.12438)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %590, i32 noundef %.7)
  %603 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %457)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %457, i32 noundef %.12441)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %564, i32 noundef %603)
  %.not2558 = icmp eq i32 %.7, %.82487
  br i1 %.not2558, label %609, label %604

604:                                              ; preds = %601
  %605 = add i32 %.82487, 3
  %606 = sub i32 %605, %.7
  %607 = and i32 %606, -4
  %608 = add i32 %607, %.7
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %590, i32 noundef %608)
  br label %609

609:                                              ; preds = %604, %601
  %.not2559 = icmp eq i32 %602, 0
  br i1 %.not2559, label %611, label %610

610:                                              ; preds = %609
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %602) #5
  br label %611

611:                                              ; preds = %609, %610, %547, %468, %447
  store i32 %358, ptr %4, align 8, !tbaa !5
  %612 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %350)
  %613 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %345)
  %614 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %343)
  %615 = add i32 %614, %613
  br label %617

616:                                              ; preds = %576, %551, %491, %391
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef nonnull %0) #5
  tail call void @wasm_rt_trap(i32 noundef 5) #6
  unreachable

617:                                              ; preds = %611, %315
  %.10 = phi i32 [ %612, %611 ], [ %351, %315 ]
  %.8 = phi i32 [ %615, %611 ], [ %347, %315 ]
  %618 = lshr i32 %.8, 2
  %619 = and i32 %618, 1073741820
  %620 = add i32 %619, %.10
  %621 = zext i32 %620 to i64
  %622 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %621)
  %623 = and i32 %.8, 15
  %624 = mul nuw nsw i32 %623, 3204
  %625 = add i32 %624, %622
  %626 = tail call i32 @w2c_hermes_0x5F_memset(ptr noundef nonnull %0, i32 noundef %625, i32 noundef 0, i32 noundef 3204) #5
  %627 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %343)
  %628 = add i32 %627, 1
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %343, i32 noundef %628)
  %629 = add nuw nsw i64 %335, 12
  %630 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %629)
  %631 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %336)
  %632 = sub i32 %630, %631
  %633 = icmp ult i32 %632, 8
  br i1 %633, label %._crit_edge, label %634

._crit_edge:                                      ; preds = %617
  %.pre = zext i32 %6 to i64
  br label %703

634:                                              ; preds = %617
  %635 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %350)
  %636 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %345)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %336, i32 noundef %630)
  %637 = add i32 %636, %627
  %638 = lshr i32 %637, 2
  %639 = and i32 %638, 1073741820
  %640 = add i32 %639, %635
  %641 = zext i32 %640 to i64
  %642 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %641)
  %643 = and i32 %632, 16777215
  %644 = or disjoint i32 %643, 33554432
  %645 = zext i32 %631 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %645, i32 noundef %644)
  %646 = add nuw nsw i64 %645, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %646, i32 noundef 0)
  %647 = and i32 %637, 15
  %648 = mul nuw nsw i32 %647, 3204
  %649 = lshr i32 %632, 3
  %650 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %632, i1 true)
  %651 = sub nuw nsw i32 276, %650
  %652 = icmp ult i32 %632, 2048
  %653 = select i1 %652, i32 %649, i32 %651
  %654 = mul i32 %653, 12
  %655 = add i32 %642, %654
  %656 = add i32 %655, %648
  %657 = and i32 %631, -4194304
  %658 = xor i32 %657, -1
  %659 = add i32 %631, %658
  %660 = ashr i32 %659, 9
  %661 = add nsw i32 %660, 1
  %662 = zext i32 %6 to i64
  %663 = add nuw nsw i64 %662, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %663, i32 noundef %661)
  %664 = shl i32 %661, 9
  %665 = add i32 %664, %657
  %666 = add nuw nsw i64 %662, 8
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %666, i32 noundef %665)
  %667 = icmp ult i32 %665, %630
  br i1 %667, label %668, label %672

668:                                              ; preds = %634
  %669 = add i32 %5, -12
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3ACardTable0x3A0x3AupdateBoundaries0x28hermes0x3A0x3Avm0x3A0x3ACardTable0x3A0x3ABoundary0x2A0x2C0x20char0x20const0x2A0x2C0x20char0x20const0x2A0x29(ptr noundef nonnull %0, i32 noundef %657, i32 noundef %669, i32 noundef %631, i32 noundef %630)
  %670 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %645)
  %671 = and i32 %670, 16777215
  br label %672

672:                                              ; preds = %668, %634
  %.22439 = phi i32 [ %671, %668 ], [ %643, %634 ]
  %673 = zext i32 %656 to i64
  %674 = add nuw nsw i64 %673, 8
  %675 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %674)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %646, i32 noundef %675)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %674, i32 noundef %631)
  %.not2571 = icmp eq i32 %675, 0
  br i1 %.not2571, label %676, label %703

676:                                              ; preds = %672
  %677 = lshr i32 %.22439, 3
  %678 = tail call range(i32 8, 33) i32 @llvm.ctlz.i32(i32 %.22439, i1 false)
  %679 = sub nuw nsw i32 276, %678
  %680 = icmp ult i32 %.22439, 2048
  %681 = select i1 %680, i32 %677, i32 %679
  %682 = mul nuw nsw i32 %681, 12
  %683 = add i32 %682, %1
  %684 = add i32 %683, 124
  %685 = zext i32 %684 to i64
  %686 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %685)
  %.not2573 = icmp eq i32 %686, 0
  br i1 %.not2573, label %690, label %687

687:                                              ; preds = %676
  %688 = zext i32 %686 to i64
  %689 = add nuw nsw i64 %688, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %689, i32 noundef %656)
  br label %690

690:                                              ; preds = %687, %676
  %691 = add nuw nsw i64 %673, 4
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %691, i32 noundef %684)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %673, i32 noundef %686)
  %692 = zext i32 %683 to i64
  %693 = add nuw nsw i64 %692, 124
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %693, i32 noundef %656)
  %694 = lshr i32 %681, 3
  %695 = and i32 %694, 262140
  %696 = add i32 %1, 64
  %697 = add i32 %696, %695
  %698 = zext i32 %697 to i64
  %699 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %698)
  %700 = and i32 %681, 31
  %701 = shl nuw i32 1, %700
  %702 = or i32 %699, %701
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %698, i32 noundef %702)
  br label %703

703:                                              ; preds = %._crit_edge, %672, %690
  %.pre-phi = phi i64 [ %.pre, %._crit_edge ], [ %662, %672 ], [ %662, %690 ]
  %704 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %316)
  %705 = add i32 %5, -12
  %706 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %321)
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Ato_string0x28unsigned0x20int0x29(ptr noundef nonnull %0, i32 noundef %705, i32 noundef %706) #5
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AaddSegmentExtentToCrashManager0x28hermes0x3A0x3Avm0x3A0x3AHadesGC0x3A0x3AHeapSegment0x20const0x260x2C0x20std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef nonnull %0, i32 noundef %704, i32 noundef %334, i32 noundef %705)
  %707 = add nuw nsw i64 %.pre-phi, 15
  %708 = tail call i32 @i32_load8_s(ptr noundef nonnull %8, i64 noundef %707)
  %709 = icmp slt i32 %708, 0
  br i1 %709, label %710, label %713

710:                                              ; preds = %703
  %711 = add nuw nsw i64 %.pre-phi, 4
  %712 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %711)
  tail call void @w2c_hermes_dlfree(ptr noundef nonnull %0, i32 noundef %712) #5
  br label %713

713:                                              ; preds = %710, %703
  store i32 %5, ptr %4, align 8, !tbaa !5
  ret void
}

declare i32 @w2c_hermes_memmove(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef) local_unnamed_addr #1

declare i32 @w2c_hermes_0x5F_memset(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none)
declare i32 @llvm.ctlz.i32(i32, i1 immarg) #4

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

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Ato_string0x28unsigned0x20int0x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_back0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fsplit_buffer0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cstd0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x3E0x3E0x3A0x3Apush_front0x28std0x3A0x3A_0x5F20x3A0x3Avector0x3Cchar16_t0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar16_t0x3E0x3E0x2A0x260x260x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #1

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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn "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 = { mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) }
attributes #5 = { nounwind }
attributes #6 = { 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}


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