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

; Unoptimized IR (clang -disable-llvm-passes):
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-i128:128-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"

%struct.w2c_hermes = type { ptr, ptr, ptr, i32, i32, i32, %struct.wasm_rt_memory_t, %struct.wasm_rt_funcref_table_t }
%struct.wasm_rt_memory_t = type { ptr, i64, i64, i64, i8 }
%struct.wasm_rt_funcref_table_t = type { ptr, i32, i32 }
%struct.wasm_rt_funcref_t = type { ptr, ptr, ptr }

@w2c_hermes_t8 = external constant ptr, align 8

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

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

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

; 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: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite)
declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #0

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

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

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

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

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

declare i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AGCScope0x3A0x3A_newChunkAndPHV0x28hermes0x3A0x3Avm0x3A0x3AHermesValue0x29(ptr noundef, i32 noundef, i64 noundef) #4

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

; Function Attrs: nounwind uwtable
declare hidden double @wasm_fabs(double noundef) #5

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtypedArrayPrototypeFill0x28void0x2A0x2C0x20hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3ANativeArgs0x29(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4) #5 {
  %6 = alloca ptr, align 8
  %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 i64, align 8
  %17 = alloca i64, align 8
  %18 = alloca i64, align 8
  %19 = alloca double, align 8
  %20 = alloca double, align 8
  %21 = alloca double, align 8
  %22 = alloca i32, align 4
  %23 = alloca i32, align 4
  %24 = alloca i32, align 4
  %25 = alloca i32, align 4
  %26 = alloca i32, align 4
  %27 = alloca i32, align 4
  %28 = alloca i32, align 4
  %29 = alloca i64, align 8
  %30 = alloca i64, align 8
  %31 = alloca i64, align 8
  %32 = alloca i64, align 8
  %33 = alloca double, align 8
  %34 = alloca double, align 8
  %35 = alloca double, align 8
  %36 = alloca double, align 8
  store ptr %0, ptr %6, align 8, !tbaa !5
  store i32 %1, ptr %7, align 4, !tbaa !9
  store i32 %2, ptr %8, align 4, !tbaa !9
  store i32 %3, ptr %9, align 4, !tbaa !9
  store i32 %4, ptr %10, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %11) #6
  store i32 0, ptr %11, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %12) #6
  store i32 0, ptr %12, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %13) #6
  store i32 0, ptr %13, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %14) #6
  store i32 0, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  store i32 0, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  store i64 0, ptr %16, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %17) #6
  store i64 0, ptr %17, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %18) #6
  store i64 0, ptr %18, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 8, ptr %19) #6
  store double 0.000000e+00, ptr %19, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  store double 0.000000e+00, ptr %20, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  store double 0.000000e+00, ptr %21, align 8, !tbaa !13
  call void @llvm.lifetime.start.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %36) #6
  %37 = load ptr, ptr %6, align 8, !tbaa !5
  %38 = getelementptr inbounds %struct.w2c_hermes, ptr %37, i32 0, i32 3
  %39 = load i32, ptr %38, align 8, !tbaa !15
  store i32 %39, ptr %22, align 4, !tbaa !9
  store i32 -64, ptr %23, align 4, !tbaa !9
  %40 = load i32, ptr %23, align 4, !tbaa !9
  %41 = load i32, ptr %22, align 4, !tbaa !9
  %42 = add i32 %41, %40
  store i32 %42, ptr %22, align 4, !tbaa !9
  %43 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %43, ptr %11, align 4, !tbaa !9
  %44 = load i32, ptr %22, align 4, !tbaa !9
  %45 = load ptr, ptr %6, align 8, !tbaa !5
  %46 = getelementptr inbounds %struct.w2c_hermes, ptr %45, i32 0, i32 3
  store i32 %44, ptr %46, align 8, !tbaa !15
  %47 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %47, ptr %22, align 4, !tbaa !9
  %48 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %48, ptr %23, align 4, !tbaa !9
  %49 = load ptr, ptr %6, align 8, !tbaa !5
  %50 = getelementptr inbounds %struct.w2c_hermes, ptr %49, i32 0, i32 6
  %51 = load i32, ptr %23, align 4, !tbaa !9
  %52 = zext i32 %51 to i64
  %53 = call i32 @i32_load(ptr noundef %50, i64 noundef %52)
  store i32 %53, ptr %23, align 4, !tbaa !9
  %54 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %54, ptr %13, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %55 = load ptr, ptr %6, align 8, !tbaa !5
  %56 = load i32, ptr %22, align 4, !tbaa !9
  %57 = load i32, ptr %23, align 4, !tbaa !9
  %58 = load i32, ptr %24, align 4, !tbaa !9
  %59 = call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AJSTypedArrayBase0x3A0x3AvalidateTypedArray0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x2C0x20bool0x29(ptr noundef %55, i32 noundef %56, i32 noundef %57, i32 noundef %58)
  store i32 %59, ptr %22, align 4, !tbaa !9
  %60 = load i32, ptr %22, align 4, !tbaa !9
  %61 = icmp ne i32 %60, 0
  %62 = xor i1 %61, true
  %63 = zext i1 %62 to i32
  store i32 %63, ptr %22, align 4, !tbaa !9
  %64 = load i32, ptr %22, align 4, !tbaa !9
  %65 = icmp ne i32 %64, 0
  br i1 %65, label %66, label %73

66:                                               ; preds = %5
  %67 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %67, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %68 = load ptr, ptr %6, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.w2c_hermes, ptr %68, i32 0, i32 6
  %70 = load i32, ptr %22, align 4, !tbaa !9
  %71 = zext i32 %70 to i64
  %72 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %69, i64 noundef %71, i32 noundef %72)
  br label %1466

73:                                               ; preds = %5
  %74 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %74, ptr %22, align 4, !tbaa !9
  store i32 8, ptr %23, 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
  %78 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %78, ptr %8, align 4, !tbaa !9
  %79 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %79, ptr %22, align 4, !tbaa !9
  %80 = load ptr, ptr %6, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.w2c_hermes, ptr %80, i32 0, i32 6
  %82 = load i32, ptr %22, align 4, !tbaa !9
  %83 = zext i32 %82 to i64
  %84 = call i32 @i32_load(ptr noundef %81, i64 noundef %83)
  store i32 %84, ptr %22, align 4, !tbaa !9
  %85 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %85, ptr %12, align 4, !tbaa !9
  %86 = load ptr, ptr %6, align 8, !tbaa !5
  %87 = getelementptr inbounds %struct.w2c_hermes, ptr %86, i32 0, i32 6
  %88 = load i32, ptr %22, align 4, !tbaa !9
  %89 = zext i32 %88 to i64
  %90 = add i64 %89, 24
  %91 = call i32 @i32_load(ptr noundef %87, i64 noundef %90)
  store i32 %91, ptr %22, align 4, !tbaa !9
  %92 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %92, ptr %14, align 4, !tbaa !9
  %93 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %93, ptr %22, align 4, !tbaa !9
  %94 = load ptr, ptr %6, align 8, !tbaa !5
  %95 = getelementptr inbounds %struct.w2c_hermes, ptr %94, i32 0, i32 6
  %96 = load i32, ptr %22, align 4, !tbaa !9
  %97 = zext i32 %96 to i64
  %98 = call i32 @i32_load(ptr noundef %95, i64 noundef %97)
  store i32 %98, ptr %22, align 4, !tbaa !9
  store i32 -33554432, ptr %23, align 4, !tbaa !9
  %99 = load i32, ptr %23, align 4, !tbaa !9
  %100 = load i32, ptr %22, align 4, !tbaa !9
  %101 = and i32 %100, %99
  store i32 %101, ptr %22, align 4, !tbaa !9
  store i32 738197504, ptr %23, align 4, !tbaa !9
  %102 = load i32, ptr %22, align 4, !tbaa !9
  %103 = load i32, ptr %23, align 4, !tbaa !9
  %104 = icmp ne i32 %102, %103
  %105 = zext i1 %104 to i32
  store i32 %105, ptr %22, align 4, !tbaa !9
  %106 = load i32, ptr %22, align 4, !tbaa !9
  %107 = icmp ne i32 %106, 0
  br i1 %107, label %108, label %132

108:                                              ; preds = %73
  %109 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %109, ptr %22, align 4, !tbaa !9
  %110 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %110, ptr %23, align 4, !tbaa !9
  %111 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %111, ptr %24, align 4, !tbaa !9
  store i32 67208, ptr %25, align 4, !tbaa !9
  %112 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %112, ptr %26, align 4, !tbaa !9
  %113 = load ptr, ptr %6, align 8, !tbaa !5
  %114 = getelementptr inbounds %struct.w2c_hermes, ptr %113, i32 0, i32 6
  %115 = load i32, ptr %26, align 4, !tbaa !9
  %116 = zext i32 %115 to i64
  %117 = add i64 %116, 4
  %118 = call i32 @i32_load(ptr noundef %114, i64 noundef %117)
  store i32 %118, ptr %26, align 4, !tbaa !9
  %119 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %119, ptr %10, align 4, !tbaa !9
  %120 = load i32, ptr %26, align 4, !tbaa !9
  %121 = icmp ne i32 %120, 0
  br i1 %121, label %122, label %124

122:                                              ; preds = %108
  %123 = load i32, ptr %24, align 4, !tbaa !9
  br label %126

124:                                              ; preds = %108
  %125 = load i32, ptr %25, align 4, !tbaa !9
  br label %126

126:                                              ; preds = %124, %122
  %127 = phi i32 [ %123, %122 ], [ %125, %124 ]
  store i32 %127, ptr %24, align 4, !tbaa !9
  %128 = load ptr, ptr %6, align 8, !tbaa !5
  %129 = load i32, ptr %22, align 4, !tbaa !9
  %130 = load i32, ptr %23, align 4, !tbaa !9
  %131 = load i32, ptr %24, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoNumber_RJS0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef %128, i32 noundef %129, i32 noundef %130, i32 noundef %131)
  br label %156

132:                                              ; preds = %73
  %133 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %133, ptr %22, align 4, !tbaa !9
  %134 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %134, ptr %23, align 4, !tbaa !9
  %135 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %135, ptr %24, align 4, !tbaa !9
  store i32 67208, ptr %25, align 4, !tbaa !9
  %136 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %136, ptr %26, align 4, !tbaa !9
  %137 = load ptr, ptr %6, align 8, !tbaa !5
  %138 = getelementptr inbounds %struct.w2c_hermes, ptr %137, i32 0, i32 6
  %139 = load i32, ptr %26, align 4, !tbaa !9
  %140 = zext i32 %139 to i64
  %141 = add i64 %140, 4
  %142 = call i32 @i32_load(ptr noundef %138, i64 noundef %141)
  store i32 %142, ptr %26, align 4, !tbaa !9
  %143 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %143, ptr %10, align 4, !tbaa !9
  %144 = load i32, ptr %26, align 4, !tbaa !9
  %145 = icmp ne i32 %144, 0
  br i1 %145, label %146, label %148

146:                                              ; preds = %132
  %147 = load i32, ptr %24, align 4, !tbaa !9
  br label %150

148:                                              ; preds = %132
  %149 = load i32, ptr %25, align 4, !tbaa !9
  br label %150

150:                                              ; preds = %148, %146
  %151 = phi i32 [ %147, %146 ], [ %149, %148 ]
  store i32 %151, ptr %24, align 4, !tbaa !9
  %152 = load ptr, ptr %6, align 8, !tbaa !5
  %153 = load i32, ptr %22, align 4, !tbaa !9
  %154 = load i32, ptr %23, align 4, !tbaa !9
  %155 = load i32, ptr %24, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoBigInt_RJS0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef %152, i32 noundef %153, i32 noundef %154, i32 noundef %155)
  br label %156

156:                                              ; preds = %150, %126
  %157 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %157, ptr %22, align 4, !tbaa !9
  %158 = load ptr, ptr %6, align 8, !tbaa !5
  %159 = getelementptr inbounds %struct.w2c_hermes, ptr %158, i32 0, i32 6
  %160 = load i32, ptr %22, align 4, !tbaa !9
  %161 = zext i32 %160 to i64
  %162 = add i64 %161, 8
  %163 = call i64 @i64_load(ptr noundef %159, i64 noundef %162)
  store i64 %163, ptr %29, align 8, !tbaa !11
  %164 = load i64, ptr %29, align 8, !tbaa !11
  store i64 %164, ptr %16, align 8, !tbaa !11
  %165 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %165, ptr %22, align 4, !tbaa !9
  %166 = load ptr, ptr %6, align 8, !tbaa !5
  %167 = getelementptr inbounds %struct.w2c_hermes, ptr %166, i32 0, i32 6
  %168 = load i32, ptr %22, align 4, !tbaa !9
  %169 = zext i32 %168 to i64
  %170 = call i32 @i32_load(ptr noundef %167, i64 noundef %169)
  store i32 %170, ptr %22, align 4, !tbaa !9
  %171 = load i32, ptr %22, align 4, !tbaa !9
  %172 = icmp ne i32 %171, 0
  %173 = xor i1 %172, true
  %174 = zext i1 %173 to i32
  store i32 %174, ptr %22, align 4, !tbaa !9
  %175 = load i32, ptr %22, align 4, !tbaa !9
  %176 = icmp ne i32 %175, 0
  br i1 %176, label %177, label %184

177:                                              ; preds = %156
  %178 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %178, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %179 = load ptr, ptr %6, align 8, !tbaa !5
  %180 = getelementptr inbounds %struct.w2c_hermes, ptr %179, i32 0, i32 6
  %181 = load i32, ptr %22, align 4, !tbaa !9
  %182 = zext i32 %181 to i64
  %183 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %180, i64 noundef %182, i32 noundef %183)
  br label %1466

184:                                              ; preds = %156
  %185 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %185, ptr %22, align 4, !tbaa !9
  %186 = load ptr, ptr %6, align 8, !tbaa !5
  %187 = getelementptr inbounds %struct.w2c_hermes, ptr %186, i32 0, i32 6
  %188 = load i32, ptr %22, align 4, !tbaa !9
  %189 = zext i32 %188 to i64
  %190 = add i64 %189, 4
  %191 = call i32 @i32_load(ptr noundef %187, i64 noundef %190)
  store i32 %191, ptr %22, align 4, !tbaa !9
  %192 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %192, ptr %8, align 4, !tbaa !9
  %193 = load ptr, ptr %6, align 8, !tbaa !5
  %194 = getelementptr inbounds %struct.w2c_hermes, ptr %193, i32 0, i32 6
  %195 = load i32, ptr %22, align 4, !tbaa !9
  %196 = zext i32 %195 to i64
  %197 = add i64 %196, 164
  %198 = call i32 @i32_load(ptr noundef %194, i64 noundef %197)
  store i32 %198, ptr %22, align 4, !tbaa !9
  %199 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %199, ptr %12, align 4, !tbaa !9
  %200 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %200, ptr %23, align 4, !tbaa !9
  %201 = load ptr, ptr %6, align 8, !tbaa !5
  %202 = getelementptr inbounds %struct.w2c_hermes, ptr %201, i32 0, i32 6
  %203 = load i32, ptr %23, align 4, !tbaa !9
  %204 = zext i32 %203 to i64
  %205 = add i64 %204, 168
  %206 = call i32 @i32_load(ptr noundef %202, i64 noundef %205)
  store i32 %206, ptr %23, align 4, !tbaa !9
  %207 = load i32, ptr %22, align 4, !tbaa !9
  %208 = load i32, ptr %23, align 4, !tbaa !9
  %209 = icmp ult i32 %207, %208
  %210 = zext i1 %209 to i32
  store i32 %210, ptr %22, align 4, !tbaa !9
  %211 = load i32, ptr %22, align 4, !tbaa !9
  %212 = icmp ne i32 %211, 0
  br i1 %212, label %213, label %232

213:                                              ; preds = %184
  %214 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %214, ptr %22, align 4, !tbaa !9
  %215 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %215, ptr %23, align 4, !tbaa !9
  store i32 8, ptr %24, align 4, !tbaa !9
  %216 = load i32, ptr %24, align 4, !tbaa !9
  %217 = load i32, ptr %23, align 4, !tbaa !9
  %218 = add i32 %217, %216
  store i32 %218, ptr %23, align 4, !tbaa !9
  %219 = load ptr, ptr %6, align 8, !tbaa !5
  %220 = getelementptr inbounds %struct.w2c_hermes, ptr %219, i32 0, i32 6
  %221 = load i32, ptr %22, align 4, !tbaa !9
  %222 = zext i32 %221 to i64
  %223 = add i64 %222, 164
  %224 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %220, i64 noundef %223, i32 noundef %224)
  %225 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %225, ptr %22, align 4, !tbaa !9
  %226 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %226, ptr %30, align 8, !tbaa !11
  %227 = load ptr, ptr %6, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.w2c_hermes, ptr %227, i32 0, i32 6
  %229 = load i32, ptr %22, align 4, !tbaa !9
  %230 = zext i32 %229 to i64
  %231 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %228, i64 noundef %230, i64 noundef %231)
  br label %240

232:                                              ; preds = %184
  %233 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %233, ptr %22, align 4, !tbaa !9
  %234 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %234, ptr %30, align 8, !tbaa !11
  %235 = load ptr, ptr %6, align 8, !tbaa !5
  %236 = load i32, ptr %22, align 4, !tbaa !9
  %237 = load i64, ptr %30, align 8, !tbaa !11
  %238 = call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AGCScope0x3A0x3A_newChunkAndPHV0x28hermes0x3A0x3Avm0x3A0x3AHermesValue0x29(ptr noundef %235, i32 noundef %236, i64 noundef %237)
  store i32 %238, ptr %22, align 4, !tbaa !9
  %239 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %239, ptr %12, align 4, !tbaa !9
  br label %240

240:                                              ; preds = %232, %213
  %241 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %241, ptr %22, align 4, !tbaa !9
  %242 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %242, ptr %23, align 4, !tbaa !9
  store i32 67208, ptr %24, align 4, !tbaa !9
  %243 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %243, ptr %25, align 4, !tbaa !9
  store i32 16, ptr %26, align 4, !tbaa !9
  %244 = load i32, ptr %26, align 4, !tbaa !9
  %245 = load i32, ptr %25, align 4, !tbaa !9
  %246 = sub i32 %245, %244
  store i32 %246, ptr %25, align 4, !tbaa !9
  %247 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %247, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %248 = load i32, ptr %26, align 4, !tbaa !9
  %249 = load i32, ptr %27, align 4, !tbaa !9
  %250 = icmp ule i32 %248, %249
  %251 = zext i1 %250 to i32
  store i32 %251, ptr %26, align 4, !tbaa !9
  %252 = load i32, ptr %26, align 4, !tbaa !9
  %253 = icmp ne i32 %252, 0
  br i1 %253, label %254, label %256

254:                                              ; preds = %240
  %255 = load i32, ptr %24, align 4, !tbaa !9
  br label %258

256:                                              ; preds = %240
  %257 = load i32, ptr %25, align 4, !tbaa !9
  br label %258

258:                                              ; preds = %256, %254
  %259 = phi i32 [ %255, %254 ], [ %257, %256 ]
  store i32 %259, ptr %24, align 4, !tbaa !9
  %260 = load ptr, ptr %6, align 8, !tbaa !5
  %261 = load i32, ptr %22, align 4, !tbaa !9
  %262 = load i32, ptr %23, align 4, !tbaa !9
  %263 = load i32, ptr %24, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoIntegerOrInfinity0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef %260, i32 noundef %261, i32 noundef %262, i32 noundef %263)
  %264 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %264, ptr %22, align 4, !tbaa !9
  %265 = load ptr, ptr %6, align 8, !tbaa !5
  %266 = getelementptr inbounds %struct.w2c_hermes, ptr %265, i32 0, i32 6
  %267 = load i32, ptr %22, align 4, !tbaa !9
  %268 = zext i32 %267 to i64
  %269 = call i32 @i32_load(ptr noundef %266, i64 noundef %268)
  store i32 %269, ptr %22, align 4, !tbaa !9
  %270 = load i32, ptr %22, align 4, !tbaa !9
  %271 = icmp ne i32 %270, 0
  %272 = xor i1 %271, true
  %273 = zext i1 %272 to i32
  store i32 %273, ptr %22, align 4, !tbaa !9
  %274 = load i32, ptr %22, align 4, !tbaa !9
  %275 = icmp ne i32 %274, 0
  br i1 %275, label %276, label %283

276:                                              ; preds = %258
  %277 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %277, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %278 = load ptr, ptr %6, align 8, !tbaa !5
  %279 = getelementptr inbounds %struct.w2c_hermes, ptr %278, i32 0, i32 6
  %280 = load i32, ptr %22, align 4, !tbaa !9
  %281 = zext i32 %280 to i64
  %282 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %279, i64 noundef %281, i32 noundef %282)
  br label %1466

283:                                              ; preds = %258
  %284 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %284, ptr %22, align 4, !tbaa !9
  %285 = load ptr, ptr %6, align 8, !tbaa !5
  %286 = getelementptr inbounds %struct.w2c_hermes, ptr %285, i32 0, i32 6
  %287 = load i32, ptr %22, align 4, !tbaa !9
  %288 = zext i32 %287 to i64
  %289 = add i64 %288, 8
  %290 = call double @f64_load(ptr noundef %286, i64 noundef %289)
  store double %290, ptr %33, align 8, !tbaa !13
  %291 = load double, ptr %33, align 8, !tbaa !13
  store double %291, ptr %20, align 8, !tbaa !13
  %292 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %292, ptr %22, align 4, !tbaa !9
  %293 = load i32, ptr %22, align 4, !tbaa !9
  %294 = uitofp i32 %293 to double
  store double %294, ptr %33, align 8, !tbaa !13
  %295 = load double, ptr %33, align 8, !tbaa !13
  store double %295, ptr %19, align 8, !tbaa !13
  %296 = load double, ptr %33, align 8, !tbaa !13
  store double %296, ptr %21, align 8, !tbaa !13
  store i32 67208, ptr %22, align 4, !tbaa !9
  %297 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %297, ptr %23, align 4, !tbaa !9
  store i32 24, ptr %24, align 4, !tbaa !9
  %298 = load i32, ptr %24, align 4, !tbaa !9
  %299 = load i32, ptr %23, align 4, !tbaa !9
  %300 = sub i32 %299, %298
  store i32 %300, ptr %23, align 4, !tbaa !9
  %301 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %301, ptr %24, align 4, !tbaa !9
  store i32 2, ptr %25, align 4, !tbaa !9
  %302 = load i32, ptr %24, align 4, !tbaa !9
  %303 = load i32, ptr %25, align 4, !tbaa !9
  %304 = icmp ule i32 %302, %303
  %305 = zext i1 %304 to i32
  store i32 %305, ptr %24, align 4, !tbaa !9
  %306 = load i32, ptr %24, align 4, !tbaa !9
  %307 = icmp ne i32 %306, 0
  br i1 %307, label %308, label %310

308:                                              ; preds = %283
  %309 = load i32, ptr %22, align 4, !tbaa !9
  br label %312

310:                                              ; preds = %283
  %311 = load i32, ptr %23, align 4, !tbaa !9
  br label %312

312:                                              ; preds = %310, %308
  %313 = phi i32 [ %309, %308 ], [ %311, %310 ]
  store i32 %313, ptr %22, align 4, !tbaa !9
  %314 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %314, ptr %8, align 4, !tbaa !9
  %315 = load ptr, ptr %6, align 8, !tbaa !5
  %316 = getelementptr inbounds %struct.w2c_hermes, ptr %315, i32 0, i32 6
  %317 = load i32, ptr %22, align 4, !tbaa !9
  %318 = zext i32 %317 to i64
  %319 = call i64 @i64_load(ptr noundef %316, i64 noundef %318)
  store i64 %319, ptr %29, align 8, !tbaa !11
  store i64 47, ptr %30, align 8, !tbaa !11
  %320 = load i64, ptr %29, align 8, !tbaa !11
  %321 = load i64, ptr %30, align 8, !tbaa !11
  %322 = and i64 %321, 63
  %323 = ashr i64 %320, %322
  store i64 %323, ptr %29, align 8, !tbaa !11
  %324 = load i64, ptr %29, align 8, !tbaa !11
  %325 = trunc i64 %324 to i32
  store i32 %325, ptr %22, align 4, !tbaa !9
  store i32 -12, ptr %23, align 4, !tbaa !9
  %326 = load i32, ptr %22, align 4, !tbaa !9
  %327 = load i32, ptr %23, align 4, !tbaa !9
  %328 = icmp ne i32 %326, %327
  %329 = zext i1 %328 to i32
  store i32 %329, ptr %22, align 4, !tbaa !9
  %330 = load i32, ptr %22, align 4, !tbaa !9
  %331 = icmp ne i32 %330, 0
  br i1 %331, label %332, label %387

332:                                              ; preds = %312
  %333 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %333, ptr %22, align 4, !tbaa !9
  %334 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %334, ptr %23, align 4, !tbaa !9
  %335 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %335, ptr %24, align 4, !tbaa !9
  %336 = load ptr, ptr %6, align 8, !tbaa !5
  %337 = load i32, ptr %22, align 4, !tbaa !9
  %338 = load i32, ptr %23, align 4, !tbaa !9
  %339 = load i32, ptr %24, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoIntegerOrInfinity0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef %336, i32 noundef %337, i32 noundef %338, i32 noundef %339)
  %340 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %340, ptr %22, align 4, !tbaa !9
  %341 = load ptr, ptr %6, align 8, !tbaa !5
  %342 = getelementptr inbounds %struct.w2c_hermes, ptr %341, i32 0, i32 6
  %343 = load i32, ptr %22, align 4, !tbaa !9
  %344 = zext i32 %343 to i64
  %345 = call i32 @i32_load(ptr noundef %342, i64 noundef %344)
  store i32 %345, ptr %22, align 4, !tbaa !9
  %346 = load i32, ptr %22, align 4, !tbaa !9
  %347 = icmp ne i32 %346, 0
  %348 = xor i1 %347, true
  %349 = zext i1 %348 to i32
  store i32 %349, ptr %22, align 4, !tbaa !9
  %350 = load i32, ptr %22, align 4, !tbaa !9
  %351 = icmp ne i32 %350, 0
  br i1 %351, label %352, label %353

352:                                              ; preds = %332
  br label %1455

353:                                              ; preds = %332
  %354 = load double, ptr %19, align 8, !tbaa !13
  store double %354, ptr %33, align 8, !tbaa !13
  %355 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %355, ptr %23, align 4, !tbaa !9
  %356 = load ptr, ptr %6, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.w2c_hermes, ptr %356, i32 0, i32 6
  %358 = load i32, ptr %23, align 4, !tbaa !9
  %359 = zext i32 %358 to i64
  %360 = add i64 %359, 8
  %361 = call double @f64_load(ptr noundef %357, i64 noundef %360)
  store double %361, ptr %34, align 8, !tbaa !13
  %362 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %362, ptr %24, align 4, !tbaa !9
  %363 = load ptr, ptr %6, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.w2c_hermes, ptr %363, i32 0, i32 6
  %365 = load i32, ptr %24, align 4, !tbaa !9
  %366 = zext i32 %365 to i64
  %367 = call i64 @i64_load(ptr noundef %364, i64 noundef %366)
  store i64 %367, ptr %31, align 8, !tbaa !11
  store i64 47, ptr %32, align 8, !tbaa !11
  %368 = load i64, ptr %31, align 8, !tbaa !11
  %369 = load i64, ptr %32, align 8, !tbaa !11
  %370 = and i64 %369, 63
  %371 = ashr i64 %368, %370
  store i64 %371, ptr %31, align 8, !tbaa !11
  %372 = load i64, ptr %31, align 8, !tbaa !11
  %373 = trunc i64 %372 to i32
  store i32 %373, ptr %24, align 4, !tbaa !9
  store i32 -12, ptr %25, align 4, !tbaa !9
  %374 = load i32, ptr %24, align 4, !tbaa !9
  %375 = load i32, ptr %25, align 4, !tbaa !9
  %376 = icmp eq i32 %374, %375
  %377 = zext i1 %376 to i32
  store i32 %377, ptr %24, align 4, !tbaa !9
  %378 = load i32, ptr %24, align 4, !tbaa !9
  %379 = icmp ne i32 %378, 0
  br i1 %379, label %380, label %382

380:                                              ; preds = %353
  %381 = load double, ptr %33, align 8, !tbaa !13
  br label %384

382:                                              ; preds = %353
  %383 = load double, ptr %34, align 8, !tbaa !13
  br label %384

384:                                              ; preds = %382, %380
  %385 = phi double [ %381, %380 ], [ %383, %382 ]
  store double %385, ptr %33, align 8, !tbaa !13
  %386 = load double, ptr %33, align 8, !tbaa !13
  store double %386, ptr %21, align 8, !tbaa !13
  br label %387

387:                                              ; preds = %384, %312
  %388 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %388, ptr %22, align 4, !tbaa !9
  %389 = load double, ptr %19, align 8, !tbaa !13
  store double %389, ptr %34, align 8, !tbaa !13
  %390 = load ptr, ptr %6, align 8, !tbaa !5
  %391 = getelementptr inbounds %struct.w2c_hermes, ptr %390, i32 0, i32 6
  %392 = load i32, ptr %22, align 4, !tbaa !9
  %393 = zext i32 %392 to i64
  %394 = add i64 %393, 56
  %395 = load double, ptr %34, align 8, !tbaa !13
  call void @f64_store(ptr noundef %391, i64 noundef %394, double noundef %395)
  %396 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %396, ptr %22, align 4, !tbaa !9
  %397 = load double, ptr %20, align 8, !tbaa !13
  store double %397, ptr %34, align 8, !tbaa !13
  %398 = load ptr, ptr %6, align 8, !tbaa !5
  %399 = getelementptr inbounds %struct.w2c_hermes, ptr %398, i32 0, i32 6
  %400 = load i32, ptr %22, align 4, !tbaa !9
  %401 = zext i32 %400 to i64
  %402 = load double, ptr %34, align 8, !tbaa !13
  call void @f64_store(ptr noundef %399, i64 noundef %401, double noundef %402)
  %403 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %403, ptr %22, align 4, !tbaa !9
  store i64 0, ptr %30, align 8, !tbaa !11
  %404 = load ptr, ptr %6, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.w2c_hermes, ptr %404, i32 0, i32 6
  %406 = load i32, ptr %22, align 4, !tbaa !9
  %407 = zext i32 %406 to i64
  %408 = add i64 %407, 48
  %409 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %405, i64 noundef %408, i64 noundef %409)
  %410 = load double, ptr %20, align 8, !tbaa !13
  store double %410, ptr %33, align 8, !tbaa !13
  store double 0.000000e+00, ptr %34, align 8, !tbaa !13
  %411 = load double, ptr %33, align 8, !tbaa !13
  %412 = load double, ptr %34, align 8, !tbaa !13
  %413 = fcmp olt double %411, %412
  %414 = zext i1 %413 to i32
  store i32 %414, ptr %22, align 4, !tbaa !9
  %415 = load i32, ptr %22, align 4, !tbaa !9
  %416 = icmp ne i32 %415, 0
  br i1 %416, label %417, label %452

417:                                              ; preds = %387
  %418 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %418, ptr %22, align 4, !tbaa !9
  %419 = load double, ptr %20, align 8, !tbaa !13
  store double %419, ptr %34, align 8, !tbaa !13
  %420 = load double, ptr %19, align 8, !tbaa !13
  store double %420, ptr %35, align 8, !tbaa !13
  %421 = load double, ptr %35, align 8, !tbaa !13
  %422 = load double, ptr %34, align 8, !tbaa !13
  %423 = fadd double %422, %421
  store double %423, ptr %34, align 8, !tbaa !13
  %424 = load double, ptr %34, align 8, !tbaa !13
  store double %424, ptr %20, align 8, !tbaa !13
  %425 = load ptr, ptr %6, align 8, !tbaa !5
  %426 = getelementptr inbounds %struct.w2c_hermes, ptr %425, i32 0, i32 6
  %427 = load i32, ptr %22, align 4, !tbaa !9
  %428 = zext i32 %427 to i64
  %429 = add i64 %428, 40
  %430 = load double, ptr %34, align 8, !tbaa !13
  call void @f64_store(ptr noundef %426, i64 noundef %429, double noundef %430)
  %431 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %431, ptr %22, align 4, !tbaa !9
  store i32 48, ptr %23, align 4, !tbaa !9
  %432 = load i32, ptr %23, align 4, !tbaa !9
  %433 = load i32, ptr %22, align 4, !tbaa !9
  %434 = add i32 %433, %432
  store i32 %434, ptr %22, align 4, !tbaa !9
  %435 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %435, ptr %23, align 4, !tbaa !9
  store i32 40, ptr %24, align 4, !tbaa !9
  %436 = load i32, ptr %24, align 4, !tbaa !9
  %437 = load i32, ptr %23, align 4, !tbaa !9
  %438 = add i32 %437, %436
  store i32 %438, ptr %23, align 4, !tbaa !9
  %439 = load double, ptr %20, align 8, !tbaa !13
  store double %439, ptr %35, align 8, !tbaa !13
  store double 0.000000e+00, ptr %36, align 8, !tbaa !13
  %440 = load double, ptr %35, align 8, !tbaa !13
  %441 = load double, ptr %36, align 8, !tbaa !13
  %442 = fcmp olt double %440, %441
  %443 = zext i1 %442 to i32
  store i32 %443, ptr %24, align 4, !tbaa !9
  %444 = load i32, ptr %24, align 4, !tbaa !9
  %445 = icmp ne i32 %444, 0
  br i1 %445, label %446, label %448

446:                                              ; preds = %417
  %447 = load i32, ptr %22, align 4, !tbaa !9
  br label %450

448:                                              ; preds = %417
  %449 = load i32, ptr %23, align 4, !tbaa !9
  br label %450

450:                                              ; preds = %448, %446
  %451 = phi i32 [ %447, %446 ], [ %449, %448 ]
  store i32 %451, ptr %22, align 4, !tbaa !9
  br label %472

452:                                              ; preds = %387
  %453 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %453, ptr %22, align 4, !tbaa !9
  store i32 56, ptr %23, align 4, !tbaa !9
  %454 = load i32, ptr %23, align 4, !tbaa !9
  %455 = load i32, ptr %22, align 4, !tbaa !9
  %456 = add i32 %455, %454
  store i32 %456, ptr %22, align 4, !tbaa !9
  %457 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %457, ptr %23, align 4, !tbaa !9
  %458 = load double, ptr %19, align 8, !tbaa !13
  store double %458, ptr %35, align 8, !tbaa !13
  %459 = load double, ptr %20, align 8, !tbaa !13
  store double %459, ptr %36, align 8, !tbaa !13
  %460 = load double, ptr %35, align 8, !tbaa !13
  %461 = load double, ptr %36, align 8, !tbaa !13
  %462 = fcmp olt double %460, %461
  %463 = zext i1 %462 to i32
  store i32 %463, ptr %24, align 4, !tbaa !9
  %464 = load i32, ptr %24, align 4, !tbaa !9
  %465 = icmp ne i32 %464, 0
  br i1 %465, label %466, label %468

466:                                              ; preds = %452
  %467 = load i32, ptr %22, align 4, !tbaa !9
  br label %470

468:                                              ; preds = %452
  %469 = load i32, ptr %23, align 4, !tbaa !9
  br label %470

470:                                              ; preds = %468, %466
  %471 = phi i32 [ %467, %466 ], [ %469, %468 ]
  store i32 %471, ptr %22, align 4, !tbaa !9
  br label %472

472:                                              ; preds = %470, %450
  %473 = load ptr, ptr %6, align 8, !tbaa !5
  %474 = getelementptr inbounds %struct.w2c_hermes, ptr %473, i32 0, i32 6
  %475 = load i32, ptr %22, align 4, !tbaa !9
  %476 = zext i32 %475 to i64
  %477 = call double @f64_load(ptr noundef %474, i64 noundef %476)
  store double %477, ptr %33, align 8, !tbaa !13
  %478 = load double, ptr %33, align 8, !tbaa !13
  store double %478, ptr %20, align 8, !tbaa !13
  %479 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %479, ptr %22, align 4, !tbaa !9
  %480 = load double, ptr %19, align 8, !tbaa !13
  store double %480, ptr %34, align 8, !tbaa !13
  %481 = load ptr, ptr %6, align 8, !tbaa !5
  %482 = getelementptr inbounds %struct.w2c_hermes, ptr %481, i32 0, i32 6
  %483 = load i32, ptr %22, align 4, !tbaa !9
  %484 = zext i32 %483 to i64
  %485 = add i64 %484, 56
  %486 = load double, ptr %34, align 8, !tbaa !13
  call void @f64_store(ptr noundef %482, i64 noundef %485, double noundef %486)
  %487 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %487, ptr %22, align 4, !tbaa !9
  %488 = load double, ptr %21, align 8, !tbaa !13
  store double %488, ptr %34, align 8, !tbaa !13
  %489 = load ptr, ptr %6, align 8, !tbaa !5
  %490 = getelementptr inbounds %struct.w2c_hermes, ptr %489, i32 0, i32 6
  %491 = load i32, ptr %22, align 4, !tbaa !9
  %492 = zext i32 %491 to i64
  %493 = load double, ptr %34, align 8, !tbaa !13
  call void @f64_store(ptr noundef %490, i64 noundef %492, double noundef %493)
  %494 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %494, ptr %22, align 4, !tbaa !9
  store i64 0, ptr %30, align 8, !tbaa !11
  %495 = load ptr, ptr %6, align 8, !tbaa !5
  %496 = getelementptr inbounds %struct.w2c_hermes, ptr %495, i32 0, i32 6
  %497 = load i32, ptr %22, align 4, !tbaa !9
  %498 = zext i32 %497 to i64
  %499 = add i64 %498, 48
  %500 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %496, i64 noundef %499, i64 noundef %500)
  %501 = load double, ptr %21, align 8, !tbaa !13
  store double %501, ptr %33, align 8, !tbaa !13
  store double 0.000000e+00, ptr %34, align 8, !tbaa !13
  %502 = load double, ptr %33, align 8, !tbaa !13
  %503 = load double, ptr %34, align 8, !tbaa !13
  %504 = fcmp olt double %502, %503
  %505 = zext i1 %504 to i32
  store i32 %505, ptr %22, align 4, !tbaa !9
  %506 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %506, ptr %8, align 4, !tbaa !9
  %507 = load double, ptr %20, align 8, !tbaa !13
  store double %507, ptr %33, align 8, !tbaa !13
  %508 = load double, ptr %33, align 8, !tbaa !13
  %509 = call double @wasm_fabs(double noundef %508)
  store double %509, ptr %33, align 8, !tbaa !13
  store double 0x43E0000000000000, ptr %34, align 8, !tbaa !13
  %510 = load double, ptr %33, align 8, !tbaa !13
  %511 = load double, ptr %34, align 8, !tbaa !13
  %512 = fcmp olt double %510, %511
  %513 = zext i1 %512 to i32
  store i32 %513, ptr %22, align 4, !tbaa !9
  %514 = load i32, ptr %22, align 4, !tbaa !9
  %515 = icmp ne i32 %514, 0
  br i1 %515, label %516, label %553

516:                                              ; preds = %472
  %517 = load double, ptr %20, align 8, !tbaa !13
  store double %517, ptr %33, align 8, !tbaa !13
  %518 = load double, ptr %33, align 8, !tbaa !13
  %519 = load double, ptr %33, align 8, !tbaa !13
  %520 = fcmp une double %518, %519
  %521 = xor i1 %520, true
  %522 = xor i1 %521, true
  %523 = zext i1 %522 to i32
  %524 = sext i32 %523 to i64
  %525 = call i64 @llvm.expect.i64(i64 %524, i64 0)
  %526 = icmp ne i64 %525, 0
  br i1 %526, label %527, label %529

527:                                              ; preds = %516
  call void @wasm_rt_trap(i32 noundef 4) #7
  unreachable

528:                                              ; No predecessors!
  br label %551

529:                                              ; preds = %516
  %530 = load double, ptr %33, align 8, !tbaa !13
  %531 = fcmp oge double %530, 0xC3E0000000000000
  br i1 %531, label %532, label %535

532:                                              ; preds = %529
  %533 = load double, ptr %33, align 8, !tbaa !13
  %534 = fcmp olt double %533, 0x43E0000000000000
  br label %535

535:                                              ; preds = %532, %529
  %536 = phi i1 [ false, %529 ], [ %534, %532 ]
  %537 = xor i1 %536, true
  %538 = xor i1 %537, true
  %539 = xor i1 %538, true
  %540 = zext i1 %539 to i32
  %541 = sext i32 %540 to i64
  %542 = call i64 @llvm.expect.i64(i64 %541, i64 0)
  %543 = icmp ne i64 %542, 0
  br i1 %543, label %544, label %546

544:                                              ; preds = %535
  call void @wasm_rt_trap(i32 noundef 2) #7
  unreachable

545:                                              ; No predecessors!
  br label %549

546:                                              ; preds = %535
  %547 = load double, ptr %33, align 8, !tbaa !13
  %548 = fptosi double %547 to i64
  br label %549

549:                                              ; preds = %546, %545
  %550 = phi i64 [ 0, %545 ], [ %548, %546 ]
  br label %551

551:                                              ; preds = %549, %528
  %552 = phi i64 [ 0, %528 ], [ %550, %549 ]
  store i64 %552, ptr %29, align 8, !tbaa !11
  br label %554

553:                                              ; preds = %472
  store i64 -9223372036854775808, ptr %29, align 8, !tbaa !11
  br label %554

554:                                              ; preds = %553, %551
  %555 = load i64, ptr %29, align 8, !tbaa !11
  store i64 %555, ptr %17, align 8, !tbaa !11
  %556 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %556, ptr %22, align 4, !tbaa !9
  %557 = load i32, ptr %22, align 4, !tbaa !9
  %558 = icmp ne i32 %557, 0
  br i1 %558, label %559, label %594

559:                                              ; preds = %554
  %560 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %560, ptr %22, align 4, !tbaa !9
  %561 = load double, ptr %21, align 8, !tbaa !13
  store double %561, ptr %34, align 8, !tbaa !13
  %562 = load double, ptr %19, align 8, !tbaa !13
  store double %562, ptr %35, align 8, !tbaa !13
  %563 = load double, ptr %35, align 8, !tbaa !13
  %564 = load double, ptr %34, align 8, !tbaa !13
  %565 = fadd double %564, %563
  store double %565, ptr %34, align 8, !tbaa !13
  %566 = load double, ptr %34, align 8, !tbaa !13
  store double %566, ptr %19, align 8, !tbaa !13
  %567 = load ptr, ptr %6, align 8, !tbaa !5
  %568 = getelementptr inbounds %struct.w2c_hermes, ptr %567, i32 0, i32 6
  %569 = load i32, ptr %22, align 4, !tbaa !9
  %570 = zext i32 %569 to i64
  %571 = add i64 %570, 40
  %572 = load double, ptr %34, align 8, !tbaa !13
  call void @f64_store(ptr noundef %568, i64 noundef %571, double noundef %572)
  %573 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %573, ptr %22, align 4, !tbaa !9
  store i32 48, ptr %23, align 4, !tbaa !9
  %574 = load i32, ptr %23, align 4, !tbaa !9
  %575 = load i32, ptr %22, align 4, !tbaa !9
  %576 = add i32 %575, %574
  store i32 %576, ptr %22, align 4, !tbaa !9
  %577 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %577, ptr %23, align 4, !tbaa !9
  store i32 40, ptr %24, align 4, !tbaa !9
  %578 = load i32, ptr %24, align 4, !tbaa !9
  %579 = load i32, ptr %23, align 4, !tbaa !9
  %580 = add i32 %579, %578
  store i32 %580, ptr %23, align 4, !tbaa !9
  %581 = load double, ptr %19, align 8, !tbaa !13
  store double %581, ptr %35, align 8, !tbaa !13
  store double 0.000000e+00, ptr %36, align 8, !tbaa !13
  %582 = load double, ptr %35, align 8, !tbaa !13
  %583 = load double, ptr %36, align 8, !tbaa !13
  %584 = fcmp olt double %582, %583
  %585 = zext i1 %584 to i32
  store i32 %585, ptr %24, align 4, !tbaa !9
  %586 = load i32, ptr %24, align 4, !tbaa !9
  %587 = icmp ne i32 %586, 0
  br i1 %587, label %588, label %590

588:                                              ; preds = %559
  %589 = load i32, ptr %22, align 4, !tbaa !9
  br label %592

590:                                              ; preds = %559
  %591 = load i32, ptr %23, align 4, !tbaa !9
  br label %592

592:                                              ; preds = %590, %588
  %593 = phi i32 [ %589, %588 ], [ %591, %590 ]
  store i32 %593, ptr %22, align 4, !tbaa !9
  br label %614

594:                                              ; preds = %554
  %595 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %595, ptr %22, align 4, !tbaa !9
  store i32 56, ptr %23, align 4, !tbaa !9
  %596 = load i32, ptr %23, align 4, !tbaa !9
  %597 = load i32, ptr %22, align 4, !tbaa !9
  %598 = add i32 %597, %596
  store i32 %598, ptr %22, align 4, !tbaa !9
  %599 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %599, ptr %23, align 4, !tbaa !9
  %600 = load double, ptr %19, align 8, !tbaa !13
  store double %600, ptr %35, align 8, !tbaa !13
  %601 = load double, ptr %21, align 8, !tbaa !13
  store double %601, ptr %36, align 8, !tbaa !13
  %602 = load double, ptr %35, align 8, !tbaa !13
  %603 = load double, ptr %36, align 8, !tbaa !13
  %604 = fcmp olt double %602, %603
  %605 = zext i1 %604 to i32
  store i32 %605, ptr %24, align 4, !tbaa !9
  %606 = load i32, ptr %24, align 4, !tbaa !9
  %607 = icmp ne i32 %606, 0
  br i1 %607, label %608, label %610

608:                                              ; preds = %594
  %609 = load i32, ptr %22, align 4, !tbaa !9
  br label %612

610:                                              ; preds = %594
  %611 = load i32, ptr %23, align 4, !tbaa !9
  br label %612

612:                                              ; preds = %610, %608
  %613 = phi i32 [ %609, %608 ], [ %611, %610 ]
  store i32 %613, ptr %22, align 4, !tbaa !9
  br label %614

614:                                              ; preds = %612, %592
  %615 = load ptr, ptr %6, align 8, !tbaa !5
  %616 = getelementptr inbounds %struct.w2c_hermes, ptr %615, i32 0, i32 6
  %617 = load i32, ptr %22, align 4, !tbaa !9
  %618 = zext i32 %617 to i64
  %619 = call double @f64_load(ptr noundef %616, i64 noundef %618)
  store double %619, ptr %33, align 8, !tbaa !13
  %620 = load double, ptr %33, align 8, !tbaa !13
  store double %620, ptr %19, align 8, !tbaa !13
  %621 = load double, ptr %33, align 8, !tbaa !13
  %622 = call double @wasm_fabs(double noundef %621)
  store double %622, ptr %33, align 8, !tbaa !13
  store double 0x43E0000000000000, ptr %34, align 8, !tbaa !13
  %623 = load double, ptr %33, align 8, !tbaa !13
  %624 = load double, ptr %34, align 8, !tbaa !13
  %625 = fcmp olt double %623, %624
  %626 = zext i1 %625 to i32
  store i32 %626, ptr %22, align 4, !tbaa !9
  %627 = load i32, ptr %22, align 4, !tbaa !9
  %628 = icmp ne i32 %627, 0
  br i1 %628, label %629, label %666

629:                                              ; preds = %614
  %630 = load double, ptr %19, align 8, !tbaa !13
  store double %630, ptr %33, align 8, !tbaa !13
  %631 = load double, ptr %33, align 8, !tbaa !13
  %632 = load double, ptr %33, align 8, !tbaa !13
  %633 = fcmp une double %631, %632
  %634 = xor i1 %633, true
  %635 = xor i1 %634, true
  %636 = zext i1 %635 to i32
  %637 = sext i32 %636 to i64
  %638 = call i64 @llvm.expect.i64(i64 %637, i64 0)
  %639 = icmp ne i64 %638, 0
  br i1 %639, label %640, label %642

640:                                              ; preds = %629
  call void @wasm_rt_trap(i32 noundef 4) #7
  unreachable

641:                                              ; No predecessors!
  br label %664

642:                                              ; preds = %629
  %643 = load double, ptr %33, align 8, !tbaa !13
  %644 = fcmp oge double %643, 0xC3E0000000000000
  br i1 %644, label %645, label %648

645:                                              ; preds = %642
  %646 = load double, ptr %33, align 8, !tbaa !13
  %647 = fcmp olt double %646, 0x43E0000000000000
  br label %648

648:                                              ; preds = %645, %642
  %649 = phi i1 [ false, %642 ], [ %647, %645 ]
  %650 = xor i1 %649, true
  %651 = xor i1 %650, true
  %652 = xor i1 %651, true
  %653 = zext i1 %652 to i32
  %654 = sext i32 %653 to i64
  %655 = call i64 @llvm.expect.i64(i64 %654, i64 0)
  %656 = icmp ne i64 %655, 0
  br i1 %656, label %657, label %659

657:                                              ; preds = %648
  call void @wasm_rt_trap(i32 noundef 2) #7
  unreachable

658:                                              ; No predecessors!
  br label %662

659:                                              ; preds = %648
  %660 = load double, ptr %33, align 8, !tbaa !13
  %661 = fptosi double %660 to i64
  br label %662

662:                                              ; preds = %659, %658
  %663 = phi i64 [ 0, %658 ], [ %661, %659 ]
  br label %664

664:                                              ; preds = %662, %641
  %665 = phi i64 [ 0, %641 ], [ %663, %662 ]
  store i64 %665, ptr %29, align 8, !tbaa !11
  br label %667

666:                                              ; preds = %614
  store i64 -9223372036854775808, ptr %29, align 8, !tbaa !11
  br label %667

667:                                              ; preds = %666, %664
  %668 = load i64, ptr %29, align 8, !tbaa !11
  store i64 %668, ptr %16, align 8, !tbaa !11
  %669 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %669, ptr %22, align 4, !tbaa !9
  %670 = load ptr, ptr %6, align 8, !tbaa !5
  %671 = getelementptr inbounds %struct.w2c_hermes, ptr %670, i32 0, i32 6
  %672 = load i32, ptr %22, align 4, !tbaa !9
  %673 = zext i32 %672 to i64
  %674 = call i64 @i64_load(ptr noundef %671, i64 noundef %673)
  store i64 %674, ptr %29, align 8, !tbaa !11
  %675 = load i64, ptr %29, align 8, !tbaa !11
  store i64 %675, ptr %18, align 8, !tbaa !11
  %676 = load i64, ptr %29, align 8, !tbaa !11
  %677 = trunc i64 %676 to i32
  store i32 %677, ptr %22, align 4, !tbaa !9
  %678 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %678, ptr %8, align 4, !tbaa !9
  %679 = load ptr, ptr %6, align 8, !tbaa !5
  %680 = getelementptr inbounds %struct.w2c_hermes, ptr %679, i32 0, i32 6
  %681 = load i32, ptr %22, align 4, !tbaa !9
  %682 = zext i32 %681 to i64
  %683 = add i64 %682, 20
  %684 = call i32 @i32_load(ptr noundef %680, i64 noundef %683)
  store i32 %684, ptr %22, align 4, !tbaa !9
  %685 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %685, ptr %10, align 4, !tbaa !9
  %686 = load i32, ptr %22, align 4, !tbaa !9
  %687 = icmp ne i32 %686, 0
  br i1 %687, label %688, label %700

688:                                              ; preds = %667
  %689 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %689, ptr %22, align 4, !tbaa !9
  %690 = load ptr, ptr %6, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.w2c_hermes, ptr %690, i32 0, i32 6
  %692 = load i32, ptr %22, align 4, !tbaa !9
  %693 = zext i32 %692 to i64
  %694 = add i64 %693, 29
  %695 = call i32 @i32_load8_u(ptr noundef %691, i64 noundef %694)
  store i32 %695, ptr %22, align 4, !tbaa !9
  %696 = load i32, ptr %22, align 4, !tbaa !9
  %697 = icmp ne i32 %696, 0
  br i1 %697, label %698, label %699

698:                                              ; preds = %688
  br label %740

699:                                              ; preds = %688
  br label %700

700:                                              ; preds = %699, %667
  %701 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %701, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %702 = load ptr, ptr %6, align 8, !tbaa !5
  %703 = getelementptr inbounds %struct.w2c_hermes, ptr %702, i32 0, i32 6
  %704 = load i32, ptr %22, align 4, !tbaa !9
  %705 = zext i32 %704 to i64
  %706 = add i64 %705, 32
  %707 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %703, i64 noundef %706, i32 noundef %707)
  %708 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %708, ptr %22, align 4, !tbaa !9
  store i64 141733920769, ptr %30, align 8, !tbaa !11
  %709 = load ptr, ptr %6, align 8, !tbaa !5
  %710 = getelementptr inbounds %struct.w2c_hermes, ptr %709, i32 0, i32 6
  %711 = load i32, ptr %22, align 4, !tbaa !9
  %712 = zext i32 %711 to i64
  %713 = add i64 %712, 24
  %714 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %710, i64 noundef %713, i64 noundef %714)
  %715 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %715, ptr %22, align 4, !tbaa !9
  store i32 3, ptr %23, align 4, !tbaa !9
  %716 = load ptr, ptr %6, align 8, !tbaa !5
  %717 = getelementptr inbounds %struct.w2c_hermes, ptr %716, i32 0, i32 6
  %718 = load i32, ptr %22, align 4, !tbaa !9
  %719 = zext i32 %718 to i64
  %720 = add i64 %719, 8
  %721 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %717, i64 noundef %720, i32 noundef %721)
  %722 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %722, ptr %22, align 4, !tbaa !9
  store i32 17792, ptr %23, align 4, !tbaa !9
  %723 = load ptr, ptr %6, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.w2c_hermes, ptr %723, i32 0, i32 6
  %725 = load i32, ptr %22, align 4, !tbaa !9
  %726 = zext i32 %725 to i64
  %727 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %724, i64 noundef %726, i32 noundef %727)
  %728 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %728, ptr %22, align 4, !tbaa !9
  %729 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %729, ptr %23, align 4, !tbaa !9
  %730 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %730, ptr %24, align 4, !tbaa !9
  %731 = load ptr, ptr %6, align 8, !tbaa !5
  %732 = load i32, ptr %23, align 4, !tbaa !9
  %733 = load i32, ptr %24, align 4, !tbaa !9
  %734 = call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3ARuntime0x3A0x3AraiseTypeError0x28hermes0x3A0x3Avm0x3A0x3ATwineChar160x20const0x260x29(ptr noundef %731, i32 noundef %732, i32 noundef %733)
  store i32 %734, ptr %23, align 4, !tbaa !9
  %735 = load ptr, ptr %6, align 8, !tbaa !5
  %736 = getelementptr inbounds %struct.w2c_hermes, ptr %735, i32 0, i32 6
  %737 = load i32, ptr %22, align 4, !tbaa !9
  %738 = zext i32 %737 to i64
  %739 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %736, i64 noundef %738, i32 noundef %739)
  br label %1466

740:                                              ; preds = %698
  %741 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %741, ptr %29, align 8, !tbaa !11
  %742 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %742, ptr %30, align 8, !tbaa !11
  %743 = load i64, ptr %29, align 8, !tbaa !11
  %744 = load i64, ptr %30, align 8, !tbaa !11
  %745 = icmp sle i64 %743, %744
  %746 = zext i1 %745 to i32
  %747 = sext i32 %746 to i64
  %748 = trunc i64 %747 to i32
  store i32 %748, ptr %22, align 4, !tbaa !9
  %749 = load i32, ptr %22, align 4, !tbaa !9
  %750 = icmp ne i32 %749, 0
  br i1 %750, label %751, label %766

751:                                              ; preds = %740
  %752 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %752, ptr %22, align 4, !tbaa !9
  %753 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %753, ptr %30, align 8, !tbaa !11
  %754 = load ptr, ptr %6, align 8, !tbaa !5
  %755 = getelementptr inbounds %struct.w2c_hermes, ptr %754, i32 0, i32 6
  %756 = load i32, ptr %22, align 4, !tbaa !9
  %757 = zext i32 %756 to i64
  %758 = add i64 %757, 8
  %759 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %755, i64 noundef %758, i64 noundef %759)
  %760 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %760, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %761 = load ptr, ptr %6, align 8, !tbaa !5
  %762 = getelementptr inbounds %struct.w2c_hermes, ptr %761, i32 0, i32 6
  %763 = load i32, ptr %22, align 4, !tbaa !9
  %764 = zext i32 %763 to i64
  %765 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %762, i64 noundef %764, i32 noundef %765)
  br label %1466

766:                                              ; preds = %740
  %767 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %767, ptr %22, align 4, !tbaa !9
  %768 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %768, ptr %23, align 4, !tbaa !9
  %769 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %769, ptr %24, align 4, !tbaa !9
  %770 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %770, ptr %32, align 8, !tbaa !11
  %771 = load i64, ptr %32, align 8, !tbaa !11
  %772 = trunc i64 %771 to i32
  store i32 %772, ptr %25, align 4, !tbaa !9
  %773 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %773, ptr %10, align 4, !tbaa !9
  %774 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %774, ptr %26, align 4, !tbaa !9
  %775 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %775, ptr %27, align 4, !tbaa !9
  %776 = load ptr, ptr %6, align 8, !tbaa !5
  %777 = getelementptr inbounds %struct.w2c_hermes, ptr %776, i32 0, i32 6
  %778 = load i32, ptr %27, align 4, !tbaa !9
  %779 = zext i32 %778 to i64
  %780 = call i32 @i32_load(ptr noundef %777, i64 noundef %779)
  store i32 %780, ptr %27, align 4, !tbaa !9
  store i32 22, ptr %28, align 4, !tbaa !9
  %781 = load i32, ptr %28, align 4, !tbaa !9
  %782 = and i32 %781, 31
  %783 = load i32, ptr %27, align 4, !tbaa !9
  %784 = lshr i32 %783, %782
  store i32 %784, ptr %27, align 4, !tbaa !9
  store i32 1020, ptr %28, align 4, !tbaa !9
  %785 = load i32, ptr %28, align 4, !tbaa !9
  %786 = load i32, ptr %27, align 4, !tbaa !9
  %787 = and i32 %786, %785
  store i32 %787, ptr %27, align 4, !tbaa !9
  store i32 138008, ptr %28, align 4, !tbaa !9
  %788 = load i32, ptr %28, align 4, !tbaa !9
  %789 = load i32, ptr %27, align 4, !tbaa !9
  %790 = add i32 %789, %788
  store i32 %790, ptr %27, align 4, !tbaa !9
  %791 = load ptr, ptr %6, align 8, !tbaa !5
  %792 = getelementptr inbounds %struct.w2c_hermes, ptr %791, i32 0, i32 6
  %793 = load i32, ptr %27, align 4, !tbaa !9
  %794 = zext i32 %793 to i64
  %795 = call i32 @i32_load(ptr noundef %792, i64 noundef %794)
  store i32 %795, ptr %27, align 4, !tbaa !9
  %796 = load ptr, ptr %6, align 8, !tbaa !5
  %797 = getelementptr inbounds %struct.w2c_hermes, ptr %796, i32 0, i32 6
  %798 = load i32, ptr %27, align 4, !tbaa !9
  %799 = zext i32 %798 to i64
  %800 = add i64 %799, 44
  %801 = call i32 @i32_load(ptr noundef %797, i64 noundef %800)
  store i32 %801, ptr %27, align 4, !tbaa !9
  %802 = load i32, ptr %27, align 4, !tbaa !9
  %803 = load ptr, ptr %6, align 8, !tbaa !5
  %804 = getelementptr inbounds %struct.w2c_hermes, ptr %803, i32 0, i32 7
  %805 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %804, i32 0, i32 2
  %806 = load i32, ptr %805, align 4, !tbaa !20
  %807 = icmp ult i32 %802, %806
  br i1 %807, label %808, label %831

808:                                              ; preds = %766
  %809 = load ptr, ptr %6, align 8, !tbaa !5
  %810 = getelementptr inbounds %struct.w2c_hermes, ptr %809, i32 0, i32 7
  %811 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %810, i32 0, i32 0
  %812 = load ptr, ptr %811, align 8, !tbaa !21
  %813 = load i32, ptr %27, align 4, !tbaa !9
  %814 = zext i32 %813 to i64
  %815 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %812, i64 %814
  %816 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %815, i32 0, i32 1
  %817 = load ptr, ptr %816, align 8, !tbaa !22
  %818 = icmp ne ptr %817, null
  br i1 %818, label %819, label %831

819:                                              ; preds = %808
  %820 = load ptr, ptr @w2c_hermes_t8, align 8, !tbaa !5
  %821 = load ptr, ptr %6, align 8, !tbaa !5
  %822 = getelementptr inbounds %struct.w2c_hermes, ptr %821, i32 0, i32 7
  %823 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %822, i32 0, i32 0
  %824 = load ptr, ptr %823, align 8, !tbaa !21
  %825 = load i32, ptr %27, align 4, !tbaa !9
  %826 = zext i32 %825 to i64
  %827 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %824, i64 %826
  %828 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %827, i32 0, i32 0
  %829 = load ptr, ptr %828, align 8, !tbaa !24
  %830 = call zeroext i1 @func_types_eq(ptr noundef %820, ptr noundef %829)
  br label %831

831:                                              ; preds = %819, %808, %766
  %832 = phi i1 [ false, %808 ], [ false, %766 ], [ %830, %819 ]
  %833 = xor i1 %832, true
  %834 = xor i1 %833, true
  %835 = zext i1 %834 to i32
  %836 = sext i32 %835 to i64
  %837 = call i64 @llvm.expect.i64(i64 %836, i64 1)
  %838 = icmp ne i64 %837, 0
  br i1 %838, label %841, label %839

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

840:                                              ; No predecessors!
  br label %841

841:                                              ; preds = %840, %831
  %842 = phi i1 [ true, %831 ], [ false, %840 ]
  %843 = zext i1 %842 to i32
  %844 = load ptr, ptr %6, align 8, !tbaa !5
  %845 = getelementptr inbounds %struct.w2c_hermes, ptr %844, i32 0, i32 7
  %846 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %845, i32 0, i32 0
  %847 = load ptr, ptr %846, align 8, !tbaa !21
  %848 = load i32, ptr %27, align 4, !tbaa !9
  %849 = zext i32 %848 to i64
  %850 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %847, i64 %849
  %851 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %850, i32 0, i32 1
  %852 = load ptr, ptr %851, align 8, !tbaa !22
  %853 = load ptr, ptr %6, align 8, !tbaa !5
  %854 = getelementptr inbounds %struct.w2c_hermes, ptr %853, i32 0, i32 7
  %855 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %854, i32 0, i32 0
  %856 = load ptr, ptr %855, align 8, !tbaa !21
  %857 = load i32, ptr %27, align 4, !tbaa !9
  %858 = zext i32 %857 to i64
  %859 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %856, i64 %858
  %860 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %859, i32 0, i32 2
  %861 = load ptr, ptr %860, align 8, !tbaa !25
  %862 = load i32, ptr %22, align 4, !tbaa !9
  %863 = load i32, ptr %23, align 4, !tbaa !9
  %864 = load i32, ptr %24, align 4, !tbaa !9
  %865 = load i32, ptr %25, align 4, !tbaa !9
  %866 = load i32, ptr %26, align 4, !tbaa !9
  call void %852(ptr noundef %861, i32 noundef %862, i32 noundef %863, i32 noundef %864, i32 noundef %865, i32 noundef %866)
  %867 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %867, ptr %22, align 4, !tbaa !9
  %868 = load ptr, ptr %6, align 8, !tbaa !5
  %869 = getelementptr inbounds %struct.w2c_hermes, ptr %868, i32 0, i32 6
  %870 = load i32, ptr %22, align 4, !tbaa !9
  %871 = zext i32 %870 to i64
  %872 = call i32 @i32_load8_u(ptr noundef %869, i64 noundef %871)
  store i32 %872, ptr %22, align 4, !tbaa !9
  %873 = load i32, ptr %22, align 4, !tbaa !9
  %874 = icmp ne i32 %873, 0
  %875 = xor i1 %874, true
  %876 = zext i1 %875 to i32
  store i32 %876, ptr %22, align 4, !tbaa !9
  %877 = load i32, ptr %22, align 4, !tbaa !9
  %878 = icmp ne i32 %877, 0
  br i1 %878, label %879, label %886

879:                                              ; preds = %841
  %880 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %880, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %881 = load ptr, ptr %6, align 8, !tbaa !5
  %882 = getelementptr inbounds %struct.w2c_hermes, ptr %881, i32 0, i32 6
  %883 = load i32, ptr %22, align 4, !tbaa !9
  %884 = zext i32 %883 to i64
  %885 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %882, i64 noundef %884, i32 noundef %885)
  br label %1466

886:                                              ; preds = %841
  %887 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %887, ptr %22, align 4, !tbaa !9
  %888 = load ptr, ptr %6, align 8, !tbaa !5
  %889 = getelementptr inbounds %struct.w2c_hermes, ptr %888, i32 0, i32 6
  %890 = load i32, ptr %22, align 4, !tbaa !9
  %891 = zext i32 %890 to i64
  %892 = call i32 @i32_load(ptr noundef %889, i64 noundef %891)
  store i32 %892, ptr %22, align 4, !tbaa !9
  %893 = load ptr, ptr %6, align 8, !tbaa !5
  %894 = getelementptr inbounds %struct.w2c_hermes, ptr %893, i32 0, i32 6
  %895 = load i32, ptr %22, align 4, !tbaa !9
  %896 = zext i32 %895 to i64
  %897 = add i64 %896, 3
  %898 = call i32 @i32_load8_u(ptr noundef %894, i64 noundef %897)
  store i32 %898, ptr %22, align 4, !tbaa !9
  store i32 78813, ptr %23, align 4, !tbaa !9
  %899 = load i32, ptr %23, align 4, !tbaa !9
  %900 = load i32, ptr %22, align 4, !tbaa !9
  %901 = add i32 %900, %899
  store i32 %901, ptr %22, align 4, !tbaa !9
  %902 = load ptr, ptr %6, align 8, !tbaa !5
  %903 = getelementptr inbounds %struct.w2c_hermes, ptr %902, i32 0, i32 6
  %904 = load i32, ptr %22, align 4, !tbaa !9
  %905 = zext i32 %904 to i64
  %906 = call i32 @i32_load8_u(ptr noundef %903, i64 noundef %905)
  store i32 %906, ptr %22, align 4, !tbaa !9
  %907 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %907, ptr %12, align 4, !tbaa !9
  %908 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %908, ptr %22, align 4, !tbaa !9
  %909 = load ptr, ptr %6, align 8, !tbaa !5
  %910 = getelementptr inbounds %struct.w2c_hermes, ptr %909, i32 0, i32 6
  %911 = load i32, ptr %22, align 4, !tbaa !9
  %912 = zext i32 %911 to i64
  %913 = add i64 %912, 5300
  %914 = call i32 @i32_load8_u(ptr noundef %910, i64 noundef %913)
  store i32 %914, ptr %22, align 4, !tbaa !9
  %915 = load i32, ptr %22, align 4, !tbaa !9
  %916 = icmp ne i32 %915, 0
  %917 = xor i1 %916, true
  %918 = zext i1 %917 to i32
  store i32 %918, ptr %22, align 4, !tbaa !9
  %919 = load i32, ptr %22, align 4, !tbaa !9
  %920 = icmp ne i32 %919, 0
  br i1 %920, label %921, label %922

921:                                              ; preds = %886
  br label %1462

922:                                              ; preds = %886
  %923 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %923, ptr %22, align 4, !tbaa !9
  store i32 1272, ptr %23, align 4, !tbaa !9
  %924 = load i32, ptr %23, align 4, !tbaa !9
  %925 = load i32, ptr %22, align 4, !tbaa !9
  %926 = add i32 %925, %924
  store i32 %926, ptr %22, align 4, !tbaa !9
  %927 = load ptr, ptr %6, align 8, !tbaa !5
  %928 = getelementptr inbounds %struct.w2c_hermes, ptr %927, i32 0, i32 6
  %929 = load i32, ptr %22, align 4, !tbaa !9
  %930 = zext i32 %929 to i64
  %931 = call i32 @i32_load(ptr noundef %928, i64 noundef %930)
  store i32 %931, ptr %22, align 4, !tbaa !9
  %932 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %932, ptr %23, align 4, !tbaa !9
  %933 = load ptr, ptr %6, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.w2c_hermes, ptr %933, i32 0, i32 6
  %935 = load i32, ptr %23, align 4, !tbaa !9
  %936 = zext i32 %935 to i64
  %937 = call i32 @i32_load(ptr noundef %934, i64 noundef %936)
  store i32 %937, ptr %23, align 4, !tbaa !9
  %938 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %938, ptr %8, align 4, !tbaa !9
  %939 = load ptr, ptr %6, align 8, !tbaa !5
  %940 = getelementptr inbounds %struct.w2c_hermes, ptr %939, i32 0, i32 6
  %941 = load i32, ptr %23, align 4, !tbaa !9
  %942 = zext i32 %941 to i64
  %943 = add i64 %942, 20
  %944 = call i32 @i32_load(ptr noundef %940, i64 noundef %943)
  store i32 %944, ptr %23, align 4, !tbaa !9
  %945 = load ptr, ptr %6, align 8, !tbaa !5
  %946 = getelementptr inbounds %struct.w2c_hermes, ptr %945, i32 0, i32 6
  %947 = load i32, ptr %23, align 4, !tbaa !9
  %948 = zext i32 %947 to i64
  %949 = add i64 %948, 20
  %950 = call i32 @i32_load(ptr noundef %946, i64 noundef %949)
  store i32 %950, ptr %23, align 4, !tbaa !9
  %951 = load i32, ptr %23, align 4, !tbaa !9
  %952 = load i32, ptr %22, align 4, !tbaa !9
  %953 = xor i32 %952, %951
  store i32 %953, ptr %22, align 4, !tbaa !9
  %954 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %954, ptr %23, align 4, !tbaa !9
  %955 = load ptr, ptr %6, align 8, !tbaa !5
  %956 = getelementptr inbounds %struct.w2c_hermes, ptr %955, i32 0, i32 6
  %957 = load i32, ptr %23, align 4, !tbaa !9
  %958 = zext i32 %957 to i64
  %959 = add i64 %958, 28
  %960 = call i32 @i32_load(ptr noundef %956, i64 noundef %959)
  store i32 %960, ptr %23, align 4, !tbaa !9
  %961 = load i32, ptr %23, align 4, !tbaa !9
  %962 = load i32, ptr %22, align 4, !tbaa !9
  %963 = add i32 %962, %961
  store i32 %963, ptr %22, align 4, !tbaa !9
  %964 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %964, ptr %8, align 4, !tbaa !9
  %965 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %965, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %966 = load i32, ptr %23, align 4, !tbaa !9
  %967 = load i32, ptr %22, align 4, !tbaa !9
  %968 = sub i32 %967, %966
  store i32 %968, ptr %22, align 4, !tbaa !9
  %969 = load i32, ptr %22, align 4, !tbaa !9
  switch i32 %969, label %977 [
    i32 0, label %970
    i32 1, label %971
    i32 2, label %972
    i32 3, label %973
    i32 4, label %974
    i32 5, label %975
    i32 6, label %976
  ]

970:                                              ; preds = %922
  br label %1207

971:                                              ; preds = %922
  br label %1465

972:                                              ; preds = %922
  br label %1283

973:                                              ; preds = %922
  br label %1465

974:                                              ; preds = %922
  br label %1465

975:                                              ; preds = %922
  br label %1465

976:                                              ; preds = %922
  br label %1359

977:                                              ; preds = %922
  br label %978

978:                                              ; preds = %977
  %979 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %979, ptr %22, align 4, !tbaa !9
  %980 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %980, ptr %30, align 8, !tbaa !11
  %981 = load i64, ptr %30, align 8, !tbaa !11
  %982 = trunc i64 %981 to i32
  store i32 %982, ptr %23, align 4, !tbaa !9
  %983 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %983, ptr %9, align 4, !tbaa !9
  %984 = load i32, ptr %23, align 4, !tbaa !9
  %985 = load i32, ptr %22, align 4, !tbaa !9
  %986 = add i32 %985, %984
  store i32 %986, ptr %22, align 4, !tbaa !9
  %987 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %987, ptr %23, align 4, !tbaa !9
  %988 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %988, ptr %24, align 4, !tbaa !9
  %989 = load i32, ptr %24, align 4, !tbaa !9
  %990 = load i32, ptr %23, align 4, !tbaa !9
  %991 = add i32 %990, %989
  store i32 %991, ptr %23, align 4, !tbaa !9
  %992 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %992, ptr %8, align 4, !tbaa !9
  %993 = load i32, ptr %23, align 4, !tbaa !9
  %994 = load i32, ptr %22, align 4, !tbaa !9
  %995 = sub i32 %994, %993
  store i32 %995, ptr %22, align 4, !tbaa !9
  %996 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %996, ptr %12, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %997 = load i32, ptr %22, align 4, !tbaa !9
  %998 = load i32, ptr %23, align 4, !tbaa !9
  %999 = icmp sle i32 %997, %998
  %1000 = zext i1 %999 to i32
  store i32 %1000, ptr %22, align 4, !tbaa !9
  %1001 = load i32, ptr %22, align 4, !tbaa !9
  %1002 = icmp ne i32 %1001, 0
  br i1 %1002, label %1003, label %1004

1003:                                             ; preds = %978
  br label %1435

1004:                                             ; preds = %978
  %1005 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1005, ptr %22, align 4, !tbaa !9
  store i32 -1, ptr %23, align 4, !tbaa !9
  %1006 = load i32, ptr %23, align 4, !tbaa !9
  %1007 = load i32, ptr %22, align 4, !tbaa !9
  %1008 = xor i32 %1007, %1006
  store i32 %1008, ptr %22, align 4, !tbaa !9
  %1009 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1009, ptr %23, align 4, !tbaa !9
  %1010 = load i32, ptr %23, align 4, !tbaa !9
  %1011 = load i32, ptr %22, align 4, !tbaa !9
  %1012 = add i32 %1011, %1010
  store i32 %1012, ptr %22, align 4, !tbaa !9
  %1013 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1013, ptr %14, align 4, !tbaa !9
  %1014 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1014, ptr %22, align 4, !tbaa !9
  store i32 7, ptr %23, align 4, !tbaa !9
  %1015 = load i32, ptr %23, align 4, !tbaa !9
  %1016 = load i32, ptr %22, align 4, !tbaa !9
  %1017 = and i32 %1016, %1015
  store i32 %1017, ptr %22, align 4, !tbaa !9
  %1018 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1018, ptr %15, align 4, !tbaa !9
  %1019 = load i32, ptr %22, align 4, !tbaa !9
  %1020 = icmp ne i32 %1019, 0
  %1021 = xor i1 %1020, true
  %1022 = zext i1 %1021 to i32
  store i32 %1022, ptr %22, align 4, !tbaa !9
  %1023 = load i32, ptr %22, align 4, !tbaa !9
  %1024 = icmp ne i32 %1023, 0
  br i1 %1024, label %1025, label %1028

1025:                                             ; preds = %1004
  %1026 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1026, ptr %22, align 4, !tbaa !9
  %1027 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1027, ptr %9, align 4, !tbaa !9
  br label %1069

1028:                                             ; preds = %1004
  store i32 0, ptr %22, align 4, !tbaa !9
  %1029 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1029, ptr %10, align 4, !tbaa !9
  %1030 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1030, ptr %22, align 4, !tbaa !9
  %1031 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1031, ptr %9, align 4, !tbaa !9
  br label %1032

1032:                                             ; preds = %1067, %1028
  %1033 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1033, ptr %22, align 4, !tbaa !9
  %1034 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1034, ptr %23, align 4, !tbaa !9
  %1035 = load ptr, ptr %6, align 8, !tbaa !5
  %1036 = getelementptr inbounds %struct.w2c_hermes, ptr %1035, i32 0, i32 6
  %1037 = load i32, ptr %23, align 4, !tbaa !9
  %1038 = zext i32 %1037 to i64
  %1039 = call i32 @i32_load8_u(ptr noundef %1036, i64 noundef %1038)
  store i32 %1039, ptr %23, align 4, !tbaa !9
  %1040 = load ptr, ptr %6, align 8, !tbaa !5
  %1041 = getelementptr inbounds %struct.w2c_hermes, ptr %1040, i32 0, i32 6
  %1042 = load i32, ptr %22, align 4, !tbaa !9
  %1043 = zext i32 %1042 to i64
  %1044 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1041, i64 noundef %1043, i32 noundef %1044)
  %1045 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1045, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1046 = load i32, ptr %23, align 4, !tbaa !9
  %1047 = load i32, ptr %22, align 4, !tbaa !9
  %1048 = sub i32 %1047, %1046
  store i32 %1048, ptr %22, align 4, !tbaa !9
  %1049 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1049, ptr %12, align 4, !tbaa !9
  %1050 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1050, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1051 = load i32, ptr %23, align 4, !tbaa !9
  %1052 = load i32, ptr %22, align 4, !tbaa !9
  %1053 = add i32 %1052, %1051
  store i32 %1053, ptr %22, align 4, !tbaa !9
  %1054 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1054, ptr %9, align 4, !tbaa !9
  %1055 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1055, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1056 = load i32, ptr %23, align 4, !tbaa !9
  %1057 = load i32, ptr %22, align 4, !tbaa !9
  %1058 = add i32 %1057, %1056
  store i32 %1058, ptr %22, align 4, !tbaa !9
  %1059 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1059, ptr %10, align 4, !tbaa !9
  %1060 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1060, ptr %23, align 4, !tbaa !9
  %1061 = load i32, ptr %22, align 4, !tbaa !9
  %1062 = load i32, ptr %23, align 4, !tbaa !9
  %1063 = icmp ne i32 %1061, %1062
  %1064 = zext i1 %1063 to i32
  store i32 %1064, ptr %22, align 4, !tbaa !9
  %1065 = load i32, ptr %22, align 4, !tbaa !9
  %1066 = icmp ne i32 %1065, 0
  br i1 %1066, label %1067, label %1068

1067:                                             ; preds = %1032
  br label %1032

1068:                                             ; preds = %1032
  br label %1069

1069:                                             ; preds = %1068, %1025
  %1070 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1070, ptr %22, align 4, !tbaa !9
  store i32 7, ptr %23, align 4, !tbaa !9
  %1071 = load i32, ptr %22, align 4, !tbaa !9
  %1072 = load i32, ptr %23, align 4, !tbaa !9
  %1073 = icmp ult i32 %1071, %1072
  %1074 = zext i1 %1073 to i32
  store i32 %1074, ptr %22, align 4, !tbaa !9
  %1075 = load i32, ptr %22, align 4, !tbaa !9
  %1076 = icmp ne i32 %1075, 0
  br i1 %1076, label %1077, label %1078

1077:                                             ; preds = %1069
  br label %1435

1078:                                             ; preds = %1069
  br label %1079

1079:                                             ; preds = %1205, %1078
  %1080 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1080, ptr %22, align 4, !tbaa !9
  %1081 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1081, ptr %23, align 4, !tbaa !9
  %1082 = load ptr, ptr %6, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.w2c_hermes, ptr %1082, i32 0, i32 6
  %1084 = load i32, ptr %23, align 4, !tbaa !9
  %1085 = zext i32 %1084 to i64
  %1086 = call i32 @i32_load8_u(ptr noundef %1083, i64 noundef %1085)
  store i32 %1086, ptr %23, align 4, !tbaa !9
  %1087 = load ptr, ptr %6, align 8, !tbaa !5
  %1088 = getelementptr inbounds %struct.w2c_hermes, ptr %1087, i32 0, i32 6
  %1089 = load i32, ptr %22, align 4, !tbaa !9
  %1090 = zext i32 %1089 to i64
  %1091 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1088, i64 noundef %1090, i32 noundef %1091)
  %1092 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1092, ptr %22, align 4, !tbaa !9
  %1093 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1093, ptr %23, align 4, !tbaa !9
  %1094 = load ptr, ptr %6, align 8, !tbaa !5
  %1095 = getelementptr inbounds %struct.w2c_hermes, ptr %1094, i32 0, i32 6
  %1096 = load i32, ptr %23, align 4, !tbaa !9
  %1097 = zext i32 %1096 to i64
  %1098 = call i32 @i32_load8_u(ptr noundef %1095, i64 noundef %1097)
  store i32 %1098, ptr %23, align 4, !tbaa !9
  %1099 = load ptr, ptr %6, align 8, !tbaa !5
  %1100 = getelementptr inbounds %struct.w2c_hermes, ptr %1099, i32 0, i32 6
  %1101 = load i32, ptr %22, align 4, !tbaa !9
  %1102 = zext i32 %1101 to i64
  %1103 = add i64 %1102, 1
  %1104 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1100, i64 noundef %1103, i32 noundef %1104)
  %1105 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1105, ptr %22, align 4, !tbaa !9
  %1106 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1106, ptr %23, align 4, !tbaa !9
  %1107 = load ptr, ptr %6, align 8, !tbaa !5
  %1108 = getelementptr inbounds %struct.w2c_hermes, ptr %1107, i32 0, i32 6
  %1109 = load i32, ptr %23, align 4, !tbaa !9
  %1110 = zext i32 %1109 to i64
  %1111 = call i32 @i32_load8_u(ptr noundef %1108, i64 noundef %1110)
  store i32 %1111, ptr %23, align 4, !tbaa !9
  %1112 = load ptr, ptr %6, 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, 2
  %1117 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1113, i64 noundef %1116, i32 noundef %1117)
  %1118 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1118, ptr %22, align 4, !tbaa !9
  %1119 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1119, ptr %23, align 4, !tbaa !9
  %1120 = load ptr, ptr %6, align 8, !tbaa !5
  %1121 = getelementptr inbounds %struct.w2c_hermes, ptr %1120, i32 0, i32 6
  %1122 = load i32, ptr %23, align 4, !tbaa !9
  %1123 = zext i32 %1122 to i64
  %1124 = call i32 @i32_load8_u(ptr noundef %1121, i64 noundef %1123)
  store i32 %1124, ptr %23, align 4, !tbaa !9
  %1125 = load ptr, ptr %6, align 8, !tbaa !5
  %1126 = getelementptr inbounds %struct.w2c_hermes, ptr %1125, i32 0, i32 6
  %1127 = load i32, ptr %22, align 4, !tbaa !9
  %1128 = zext i32 %1127 to i64
  %1129 = add i64 %1128, 3
  %1130 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1126, i64 noundef %1129, i32 noundef %1130)
  %1131 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1131, ptr %22, align 4, !tbaa !9
  %1132 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1132, ptr %23, align 4, !tbaa !9
  %1133 = load ptr, ptr %6, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.w2c_hermes, ptr %1133, i32 0, i32 6
  %1135 = load i32, ptr %23, align 4, !tbaa !9
  %1136 = zext i32 %1135 to i64
  %1137 = call i32 @i32_load8_u(ptr noundef %1134, i64 noundef %1136)
  store i32 %1137, ptr %23, align 4, !tbaa !9
  %1138 = load ptr, ptr %6, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.w2c_hermes, ptr %1138, i32 0, i32 6
  %1140 = load i32, ptr %22, align 4, !tbaa !9
  %1141 = zext i32 %1140 to i64
  %1142 = add i64 %1141, 4
  %1143 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1139, i64 noundef %1142, i32 noundef %1143)
  %1144 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1144, ptr %22, align 4, !tbaa !9
  %1145 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1145, ptr %23, align 4, !tbaa !9
  %1146 = load ptr, ptr %6, align 8, !tbaa !5
  %1147 = getelementptr inbounds %struct.w2c_hermes, ptr %1146, i32 0, i32 6
  %1148 = load i32, ptr %23, align 4, !tbaa !9
  %1149 = zext i32 %1148 to i64
  %1150 = call i32 @i32_load8_u(ptr noundef %1147, i64 noundef %1149)
  store i32 %1150, ptr %23, align 4, !tbaa !9
  %1151 = load ptr, ptr %6, align 8, !tbaa !5
  %1152 = getelementptr inbounds %struct.w2c_hermes, ptr %1151, i32 0, i32 6
  %1153 = load i32, ptr %22, align 4, !tbaa !9
  %1154 = zext i32 %1153 to i64
  %1155 = add i64 %1154, 5
  %1156 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1152, i64 noundef %1155, i32 noundef %1156)
  %1157 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1157, ptr %22, align 4, !tbaa !9
  %1158 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1158, ptr %23, align 4, !tbaa !9
  %1159 = load ptr, ptr %6, align 8, !tbaa !5
  %1160 = getelementptr inbounds %struct.w2c_hermes, ptr %1159, i32 0, i32 6
  %1161 = load i32, ptr %23, align 4, !tbaa !9
  %1162 = zext i32 %1161 to i64
  %1163 = call i32 @i32_load8_u(ptr noundef %1160, i64 noundef %1162)
  store i32 %1163, ptr %23, align 4, !tbaa !9
  %1164 = load ptr, ptr %6, align 8, !tbaa !5
  %1165 = getelementptr inbounds %struct.w2c_hermes, ptr %1164, i32 0, i32 6
  %1166 = load i32, ptr %22, align 4, !tbaa !9
  %1167 = zext i32 %1166 to i64
  %1168 = add i64 %1167, 6
  %1169 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1165, i64 noundef %1168, i32 noundef %1169)
  %1170 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1170, ptr %22, align 4, !tbaa !9
  %1171 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1171, ptr %23, align 4, !tbaa !9
  %1172 = load ptr, ptr %6, align 8, !tbaa !5
  %1173 = getelementptr inbounds %struct.w2c_hermes, ptr %1172, i32 0, i32 6
  %1174 = load i32, ptr %23, align 4, !tbaa !9
  %1175 = zext i32 %1174 to i64
  %1176 = call i32 @i32_load8_u(ptr noundef %1173, i64 noundef %1175)
  store i32 %1176, ptr %23, align 4, !tbaa !9
  %1177 = load ptr, ptr %6, align 8, !tbaa !5
  %1178 = getelementptr inbounds %struct.w2c_hermes, ptr %1177, i32 0, i32 6
  %1179 = load i32, ptr %22, align 4, !tbaa !9
  %1180 = zext i32 %1179 to i64
  %1181 = add i64 %1180, 7
  %1182 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1178, i64 noundef %1181, i32 noundef %1182)
  %1183 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1183, ptr %22, align 4, !tbaa !9
  store i32 8, ptr %23, align 4, !tbaa !9
  %1184 = load i32, ptr %23, align 4, !tbaa !9
  %1185 = load i32, ptr %22, align 4, !tbaa !9
  %1186 = add i32 %1185, %1184
  store i32 %1186, ptr %22, align 4, !tbaa !9
  %1187 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1187, ptr %9, align 4, !tbaa !9
  %1188 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1188, ptr %22, align 4, !tbaa !9
  store i32 9, ptr %23, align 4, !tbaa !9
  %1189 = load i32, ptr %23, align 4, !tbaa !9
  %1190 = load i32, ptr %22, align 4, !tbaa !9
  %1191 = sub i32 %1190, %1189
  store i32 %1191, ptr %22, align 4, !tbaa !9
  %1192 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1192, ptr %10, align 4, !tbaa !9
  %1193 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1193, ptr %22, align 4, !tbaa !9
  store i32 8, ptr %23, align 4, !tbaa !9
  %1194 = load i32, ptr %23, align 4, !tbaa !9
  %1195 = load i32, ptr %22, align 4, !tbaa !9
  %1196 = sub i32 %1195, %1194
  store i32 %1196, ptr %22, align 4, !tbaa !9
  %1197 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1197, ptr %12, align 4, !tbaa !9
  %1198 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1198, ptr %22, align 4, !tbaa !9
  store i32 -2, ptr %23, align 4, !tbaa !9
  %1199 = load i32, ptr %22, align 4, !tbaa !9
  %1200 = load i32, ptr %23, align 4, !tbaa !9
  %1201 = icmp ult i32 %1199, %1200
  %1202 = zext i1 %1201 to i32
  store i32 %1202, ptr %22, align 4, !tbaa !9
  %1203 = load i32, ptr %22, align 4, !tbaa !9
  %1204 = icmp ne i32 %1203, 0
  br i1 %1204, label %1205, label %1206

1205:                                             ; preds = %1079
  br label %1079

1206:                                             ; preds = %1079
  br label %1435

1207:                                             ; preds = %970
  %1208 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1208, ptr %22, align 4, !tbaa !9
  %1209 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %1209, ptr %30, align 8, !tbaa !11
  %1210 = load i64, ptr %30, align 8, !tbaa !11
  %1211 = trunc i64 %1210 to i32
  store i32 %1211, ptr %23, align 4, !tbaa !9
  store i32 1, ptr %24, align 4, !tbaa !9
  %1212 = load i32, ptr %24, align 4, !tbaa !9
  %1213 = and i32 %1212, 31
  %1214 = load i32, ptr %23, align 4, !tbaa !9
  %1215 = shl i32 %1214, %1213
  store i32 %1215, ptr %23, align 4, !tbaa !9
  %1216 = load i32, ptr %23, align 4, !tbaa !9
  %1217 = load i32, ptr %22, align 4, !tbaa !9
  %1218 = add i32 %1217, %1216
  store i32 %1218, ptr %22, align 4, !tbaa !9
  %1219 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1219, ptr %23, align 4, !tbaa !9
  %1220 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1220, ptr %24, align 4, !tbaa !9
  store i32 1, ptr %25, align 4, !tbaa !9
  %1221 = load i32, ptr %25, align 4, !tbaa !9
  %1222 = and i32 %1221, 31
  %1223 = load i32, ptr %24, align 4, !tbaa !9
  %1224 = shl i32 %1223, %1222
  store i32 %1224, ptr %24, align 4, !tbaa !9
  %1225 = load i32, ptr %24, align 4, !tbaa !9
  %1226 = load i32, ptr %23, align 4, !tbaa !9
  %1227 = add i32 %1226, %1225
  store i32 %1227, ptr %23, align 4, !tbaa !9
  %1228 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %1228, ptr %8, align 4, !tbaa !9
  %1229 = load i32, ptr %23, align 4, !tbaa !9
  %1230 = load i32, ptr %22, align 4, !tbaa !9
  %1231 = sub i32 %1230, %1229
  store i32 %1231, ptr %22, align 4, !tbaa !9
  %1232 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1232, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %1233 = load i32, ptr %22, align 4, !tbaa !9
  %1234 = load i32, ptr %23, align 4, !tbaa !9
  %1235 = icmp sle i32 %1233, %1234
  %1236 = zext i1 %1235 to i32
  store i32 %1236, ptr %22, align 4, !tbaa !9
  %1237 = load i32, ptr %22, align 4, !tbaa !9
  %1238 = icmp ne i32 %1237, 0
  br i1 %1238, label %1239, label %1240

1239:                                             ; preds = %1207
  br label %1435

1240:                                             ; preds = %1207
  %1241 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1241, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1242 = load i32, ptr %23, align 4, !tbaa !9
  %1243 = and i32 %1242, 31
  %1244 = load i32, ptr %22, align 4, !tbaa !9
  %1245 = lshr i32 %1244, %1243
  store i32 %1245, ptr %22, align 4, !tbaa !9
  %1246 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1246, ptr %9, align 4, !tbaa !9
  %1247 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1247, ptr %22, align 4, !tbaa !9
  %1248 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1248, ptr %10, align 4, !tbaa !9
  br label %1249

1249:                                             ; preds = %1281, %1240
  %1250 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1250, ptr %22, align 4, !tbaa !9
  %1251 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1251, ptr %23, align 4, !tbaa !9
  %1252 = load ptr, ptr %6, align 8, !tbaa !5
  %1253 = getelementptr inbounds %struct.w2c_hermes, ptr %1252, i32 0, i32 6
  %1254 = load i32, ptr %23, align 4, !tbaa !9
  %1255 = zext i32 %1254 to i64
  %1256 = call i32 @i32_load16_u(ptr noundef %1253, i64 noundef %1255)
  store i32 %1256, ptr %23, align 4, !tbaa !9
  %1257 = load ptr, ptr %6, align 8, !tbaa !5
  %1258 = getelementptr inbounds %struct.w2c_hermes, ptr %1257, i32 0, i32 6
  %1259 = load i32, ptr %22, align 4, !tbaa !9
  %1260 = zext i32 %1259 to i64
  %1261 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store16(ptr noundef %1258, i64 noundef %1260, i32 noundef %1261)
  %1262 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1262, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %1263 = load i32, ptr %23, align 4, !tbaa !9
  %1264 = load i32, ptr %22, align 4, !tbaa !9
  %1265 = add i32 %1264, %1263
  store i32 %1265, ptr %22, align 4, !tbaa !9
  %1266 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1266, ptr %10, align 4, !tbaa !9
  %1267 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1267, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1268 = load i32, ptr %22, align 4, !tbaa !9
  %1269 = load i32, ptr %23, align 4, !tbaa !9
  %1270 = icmp ugt i32 %1268, %1269
  %1271 = zext i1 %1270 to i32
  store i32 %1271, ptr %22, align 4, !tbaa !9
  %1272 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1272, ptr %12, align 4, !tbaa !9
  %1273 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1273, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1274 = load i32, ptr %23, align 4, !tbaa !9
  %1275 = load i32, ptr %22, align 4, !tbaa !9
  %1276 = sub i32 %1275, %1274
  store i32 %1276, ptr %22, align 4, !tbaa !9
  %1277 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1277, ptr %9, align 4, !tbaa !9
  %1278 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1278, ptr %22, align 4, !tbaa !9
  %1279 = load i32, ptr %22, align 4, !tbaa !9
  %1280 = icmp ne i32 %1279, 0
  br i1 %1280, label %1281, label %1282

1281:                                             ; preds = %1249
  br label %1249

1282:                                             ; preds = %1249
  br label %1435

1283:                                             ; preds = %972
  %1284 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1284, ptr %22, align 4, !tbaa !9
  %1285 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %1285, ptr %30, align 8, !tbaa !11
  %1286 = load i64, ptr %30, align 8, !tbaa !11
  %1287 = trunc i64 %1286 to i32
  store i32 %1287, ptr %23, align 4, !tbaa !9
  store i32 2, ptr %24, align 4, !tbaa !9
  %1288 = load i32, ptr %24, align 4, !tbaa !9
  %1289 = and i32 %1288, 31
  %1290 = load i32, ptr %23, align 4, !tbaa !9
  %1291 = shl i32 %1290, %1289
  store i32 %1291, ptr %23, align 4, !tbaa !9
  %1292 = load i32, ptr %23, align 4, !tbaa !9
  %1293 = load i32, ptr %22, align 4, !tbaa !9
  %1294 = add i32 %1293, %1292
  store i32 %1294, ptr %22, align 4, !tbaa !9
  %1295 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1295, ptr %23, align 4, !tbaa !9
  %1296 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1296, ptr %24, align 4, !tbaa !9
  store i32 2, ptr %25, align 4, !tbaa !9
  %1297 = load i32, ptr %25, align 4, !tbaa !9
  %1298 = and i32 %1297, 31
  %1299 = load i32, ptr %24, align 4, !tbaa !9
  %1300 = shl i32 %1299, %1298
  store i32 %1300, ptr %24, align 4, !tbaa !9
  %1301 = load i32, ptr %24, align 4, !tbaa !9
  %1302 = load i32, ptr %23, align 4, !tbaa !9
  %1303 = add i32 %1302, %1301
  store i32 %1303, ptr %23, align 4, !tbaa !9
  %1304 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %1304, ptr %8, align 4, !tbaa !9
  %1305 = load i32, ptr %23, align 4, !tbaa !9
  %1306 = load i32, ptr %22, align 4, !tbaa !9
  %1307 = sub i32 %1306, %1305
  store i32 %1307, ptr %22, align 4, !tbaa !9
  %1308 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1308, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %1309 = load i32, ptr %22, align 4, !tbaa !9
  %1310 = load i32, ptr %23, align 4, !tbaa !9
  %1311 = icmp sle i32 %1309, %1310
  %1312 = zext i1 %1311 to i32
  store i32 %1312, ptr %22, align 4, !tbaa !9
  %1313 = load i32, ptr %22, align 4, !tbaa !9
  %1314 = icmp ne i32 %1313, 0
  br i1 %1314, label %1315, label %1316

1315:                                             ; preds = %1283
  br label %1435

1316:                                             ; preds = %1283
  %1317 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1317, ptr %22, align 4, !tbaa !9
  store i32 2, ptr %23, align 4, !tbaa !9
  %1318 = load i32, ptr %23, align 4, !tbaa !9
  %1319 = and i32 %1318, 31
  %1320 = load i32, ptr %22, align 4, !tbaa !9
  %1321 = lshr i32 %1320, %1319
  store i32 %1321, ptr %22, align 4, !tbaa !9
  %1322 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1322, ptr %9, align 4, !tbaa !9
  %1323 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1323, ptr %22, align 4, !tbaa !9
  %1324 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1324, ptr %10, align 4, !tbaa !9
  br label %1325

1325:                                             ; preds = %1357, %1316
  %1326 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1326, ptr %22, align 4, !tbaa !9
  %1327 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1327, ptr %23, align 4, !tbaa !9
  %1328 = load ptr, ptr %6, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.w2c_hermes, ptr %1328, i32 0, i32 6
  %1330 = load i32, ptr %23, align 4, !tbaa !9
  %1331 = zext i32 %1330 to i64
  %1332 = call i32 @i32_load(ptr noundef %1329, i64 noundef %1331)
  store i32 %1332, ptr %23, align 4, !tbaa !9
  %1333 = load ptr, ptr %6, align 8, !tbaa !5
  %1334 = getelementptr inbounds %struct.w2c_hermes, ptr %1333, i32 0, i32 6
  %1335 = load i32, ptr %22, align 4, !tbaa !9
  %1336 = zext i32 %1335 to i64
  %1337 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1334, i64 noundef %1336, i32 noundef %1337)
  %1338 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1338, ptr %22, align 4, !tbaa !9
  store i32 4, ptr %23, align 4, !tbaa !9
  %1339 = load i32, ptr %23, align 4, !tbaa !9
  %1340 = load i32, ptr %22, align 4, !tbaa !9
  %1341 = add i32 %1340, %1339
  store i32 %1341, ptr %22, align 4, !tbaa !9
  %1342 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1342, ptr %10, align 4, !tbaa !9
  %1343 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1343, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1344 = load i32, ptr %22, align 4, !tbaa !9
  %1345 = load i32, ptr %23, align 4, !tbaa !9
  %1346 = icmp ugt i32 %1344, %1345
  %1347 = zext i1 %1346 to i32
  store i32 %1347, ptr %22, align 4, !tbaa !9
  %1348 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1348, ptr %12, align 4, !tbaa !9
  %1349 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1349, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1350 = load i32, ptr %23, align 4, !tbaa !9
  %1351 = load i32, ptr %22, align 4, !tbaa !9
  %1352 = sub i32 %1351, %1350
  store i32 %1352, ptr %22, align 4, !tbaa !9
  %1353 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1353, ptr %9, align 4, !tbaa !9
  %1354 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1354, ptr %22, align 4, !tbaa !9
  %1355 = load i32, ptr %22, align 4, !tbaa !9
  %1356 = icmp ne i32 %1355, 0
  br i1 %1356, label %1357, label %1358

1357:                                             ; preds = %1325
  br label %1325

1358:                                             ; preds = %1325
  br label %1435

1359:                                             ; preds = %976
  %1360 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1360, ptr %22, align 4, !tbaa !9
  %1361 = load i64, ptr %16, align 8, !tbaa !11
  store i64 %1361, ptr %30, align 8, !tbaa !11
  %1362 = load i64, ptr %30, align 8, !tbaa !11
  %1363 = trunc i64 %1362 to i32
  store i32 %1363, ptr %23, align 4, !tbaa !9
  store i32 3, ptr %24, align 4, !tbaa !9
  %1364 = load i32, ptr %24, align 4, !tbaa !9
  %1365 = and i32 %1364, 31
  %1366 = load i32, ptr %23, align 4, !tbaa !9
  %1367 = shl i32 %1366, %1365
  store i32 %1367, ptr %23, align 4, !tbaa !9
  %1368 = load i32, ptr %23, align 4, !tbaa !9
  %1369 = load i32, ptr %22, align 4, !tbaa !9
  %1370 = add i32 %1369, %1368
  store i32 %1370, ptr %22, align 4, !tbaa !9
  %1371 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1371, ptr %23, align 4, !tbaa !9
  %1372 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1372, ptr %24, align 4, !tbaa !9
  store i32 3, ptr %25, align 4, !tbaa !9
  %1373 = load i32, ptr %25, align 4, !tbaa !9
  %1374 = and i32 %1373, 31
  %1375 = load i32, ptr %24, align 4, !tbaa !9
  %1376 = shl i32 %1375, %1374
  store i32 %1376, ptr %24, align 4, !tbaa !9
  %1377 = load i32, ptr %24, align 4, !tbaa !9
  %1378 = load i32, ptr %23, align 4, !tbaa !9
  %1379 = add i32 %1378, %1377
  store i32 %1379, ptr %23, align 4, !tbaa !9
  %1380 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %1380, ptr %8, align 4, !tbaa !9
  %1381 = load i32, ptr %23, align 4, !tbaa !9
  %1382 = load i32, ptr %22, align 4, !tbaa !9
  %1383 = sub 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 %9, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %1385 = load i32, ptr %22, align 4, !tbaa !9
  %1386 = load i32, ptr %23, align 4, !tbaa !9
  %1387 = icmp sle i32 %1385, %1386
  %1388 = zext i1 %1387 to i32
  store i32 %1388, ptr %22, align 4, !tbaa !9
  %1389 = load i32, ptr %22, align 4, !tbaa !9
  %1390 = icmp ne i32 %1389, 0
  br i1 %1390, label %1391, label %1392

1391:                                             ; preds = %1359
  br label %1435

1392:                                             ; preds = %1359
  %1393 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1393, ptr %22, align 4, !tbaa !9
  store i32 3, ptr %23, align 4, !tbaa !9
  %1394 = load i32, ptr %23, align 4, !tbaa !9
  %1395 = and i32 %1394, 31
  %1396 = load i32, ptr %22, align 4, !tbaa !9
  %1397 = lshr i32 %1396, %1395
  store i32 %1397, ptr %22, align 4, !tbaa !9
  %1398 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1398, ptr %9, align 4, !tbaa !9
  %1399 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1399, ptr %22, align 4, !tbaa !9
  %1400 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1400, ptr %10, align 4, !tbaa !9
  br label %1401

1401:                                             ; preds = %1433, %1392
  %1402 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1402, ptr %22, align 4, !tbaa !9
  %1403 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1403, ptr %23, align 4, !tbaa !9
  %1404 = load ptr, ptr %6, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.w2c_hermes, ptr %1404, i32 0, i32 6
  %1406 = load i32, ptr %23, align 4, !tbaa !9
  %1407 = zext i32 %1406 to i64
  %1408 = call i64 @i64_load(ptr noundef %1405, i64 noundef %1407)
  store i64 %1408, ptr %30, align 8, !tbaa !11
  %1409 = load ptr, ptr %6, align 8, !tbaa !5
  %1410 = getelementptr inbounds %struct.w2c_hermes, ptr %1409, i32 0, i32 6
  %1411 = load i32, ptr %22, align 4, !tbaa !9
  %1412 = zext i32 %1411 to i64
  %1413 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %1410, i64 noundef %1412, i64 noundef %1413)
  %1414 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1414, ptr %22, align 4, !tbaa !9
  store i32 8, ptr %23, align 4, !tbaa !9
  %1415 = load i32, ptr %23, align 4, !tbaa !9
  %1416 = load i32, ptr %22, align 4, !tbaa !9
  %1417 = add i32 %1416, %1415
  store i32 %1417, ptr %22, align 4, !tbaa !9
  %1418 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1418, ptr %10, align 4, !tbaa !9
  %1419 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1419, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1420 = load i32, ptr %22, align 4, !tbaa !9
  %1421 = load i32, ptr %23, align 4, !tbaa !9
  %1422 = icmp ugt i32 %1420, %1421
  %1423 = zext i1 %1422 to i32
  store i32 %1423, ptr %22, align 4, !tbaa !9
  %1424 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1424, ptr %12, align 4, !tbaa !9
  %1425 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1425, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1426 = load i32, ptr %23, align 4, !tbaa !9
  %1427 = load i32, ptr %22, align 4, !tbaa !9
  %1428 = sub i32 %1427, %1426
  store i32 %1428, ptr %22, align 4, !tbaa !9
  %1429 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1429, ptr %9, align 4, !tbaa !9
  %1430 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1430, ptr %22, align 4, !tbaa !9
  %1431 = load i32, ptr %22, align 4, !tbaa !9
  %1432 = icmp ne i32 %1431, 0
  br i1 %1432, label %1433, label %1434

1433:                                             ; preds = %1401
  br label %1401

1434:                                             ; preds = %1401
  br label %1435

1435:                                             ; preds = %1434, %1391, %1358, %1315, %1282, %1239, %1206, %1077, %1003
  %1436 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1436, ptr %22, align 4, !tbaa !9
  %1437 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1437, ptr %23, align 4, !tbaa !9
  %1438 = load ptr, ptr %6, align 8, !tbaa !5
  %1439 = getelementptr inbounds %struct.w2c_hermes, ptr %1438, i32 0, i32 6
  %1440 = load i32, ptr %23, align 4, !tbaa !9
  %1441 = zext i32 %1440 to i64
  %1442 = call i64 @i64_load(ptr noundef %1439, i64 noundef %1441)
  store i64 %1442, ptr %30, align 8, !tbaa !11
  %1443 = load ptr, ptr %6, align 8, !tbaa !5
  %1444 = getelementptr inbounds %struct.w2c_hermes, ptr %1443, i32 0, i32 6
  %1445 = load i32, ptr %22, align 4, !tbaa !9
  %1446 = zext i32 %1445 to i64
  %1447 = add i64 %1446, 8
  %1448 = load i64, ptr %30, align 8, !tbaa !11
  call void @i64_store(ptr noundef %1444, i64 noundef %1447, i64 noundef %1448)
  %1449 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1449, ptr %22, align 4, !tbaa !9
  store i32 1, ptr %23, align 4, !tbaa !9
  %1450 = load ptr, ptr %6, align 8, !tbaa !5
  %1451 = getelementptr inbounds %struct.w2c_hermes, ptr %1450, i32 0, i32 6
  %1452 = load i32, ptr %22, align 4, !tbaa !9
  %1453 = zext i32 %1452 to i64
  %1454 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1451, i64 noundef %1453, i32 noundef %1454)
  br label %1466

1455:                                             ; preds = %352
  %1456 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1456, ptr %22, align 4, !tbaa !9
  store i32 0, ptr %23, align 4, !tbaa !9
  %1457 = load ptr, ptr %6, align 8, !tbaa !5
  %1458 = getelementptr inbounds %struct.w2c_hermes, ptr %1457, i32 0, i32 6
  %1459 = load i32, ptr %22, align 4, !tbaa !9
  %1460 = zext i32 %1459 to i64
  %1461 = load i32, ptr %23, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1458, i64 noundef %1460, i32 noundef %1461)
  br label %1466

1462:                                             ; preds = %921
  store i32 38571, ptr %22, align 4, !tbaa !9
  %1463 = load ptr, ptr %6, align 8, !tbaa !5
  %1464 = load i32, ptr %22, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3Ahermes_fatal0x28char0x20const0x2A0x29(ptr noundef %1463, i32 noundef %1464)
  br label %1465

1465:                                             ; preds = %1462, %975, %974, %973, %971
  call void @wasm_rt_trap(i32 noundef 5) #7
  unreachable

1466:                                             ; preds = %1455, %1435, %879, %751, %700, %276, %177, %66
  %1467 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1467, ptr %22, align 4, !tbaa !9
  store i32 -64, ptr %23, align 4, !tbaa !9
  %1468 = load i32, ptr %23, align 4, !tbaa !9
  %1469 = load i32, ptr %22, align 4, !tbaa !9
  %1470 = sub i32 %1469, %1468
  store i32 %1470, ptr %22, align 4, !tbaa !9
  %1471 = load i32, ptr %22, align 4, !tbaa !9
  %1472 = load ptr, ptr %6, align 8, !tbaa !5
  %1473 = getelementptr inbounds %struct.w2c_hermes, ptr %1472, i32 0, i32 3
  store i32 %1471, ptr %1473, align 8, !tbaa !15
  call void @llvm.lifetime.end.p0(i64 8, ptr %36) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %35) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %34) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %33) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %32) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %31) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  ret void
}

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

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

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


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

%struct.wasm_rt_funcref_t = type { ptr, ptr, ptr }

@w2c_hermes_t8 = external local_unnamed_addr constant ptr, align 8

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

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

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

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

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

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

; Function Attrs: inlinehint nounwind uwtable
declare hidden i64 @i64_load(ptr noundef, i64 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 i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AGCScope0x3A0x3A_newChunkAndPHV0x28hermes0x3A0x3Avm0x3A0x3AHermesValue0x29(ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #2

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

; Function Attrs: nounwind uwtable
declare hidden double @wasm_fabs(double noundef) local_unnamed_addr #3

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtypedArrayPrototypeFill0x28void0x2A0x2C0x20hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3ANativeArgs0x29(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #3 {
  %6 = getelementptr inbounds i8, ptr %0, i64 24
  %7 = load i32, ptr %6, align 8, !tbaa !5
  %8 = add i32 %7, -64
  store i32 %8, ptr %6, align 8, !tbaa !5
  %9 = getelementptr inbounds i8, ptr %0, i64 40
  %10 = zext i32 %4 to i64
  %11 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %10)
  %12 = tail call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AJSTypedArrayBase0x3A0x3AvalidateTypedArray0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x2C0x20bool0x29(ptr noundef %0, i32 noundef %3, i32 noundef %11, i32 noundef 1) #4
  %.not = icmp eq i32 %12, 0
  br i1 %.not, label %13, label %15

13:                                               ; preds = %5
  %14 = zext i32 %1 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %14, i32 noundef 0)
  br label %301

15:                                               ; preds = %5
  %16 = add i32 %11, -8
  %17 = zext i32 %11 to i64
  %18 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %17)
  %19 = zext i32 %18 to i64
  %20 = add nuw nsw i64 %19, 24
  %21 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %20)
  %22 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %19)
  %23 = and i32 %22, -33554432
  %.not777 = icmp eq i32 %23, 738197504
  %24 = add nuw nsw i64 %10, 4
  %25 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %24)
  %.not778 = icmp eq i32 %25, 0
  %26 = select i1 %.not778, i32 67208, i32 %16
  br i1 %.not777, label %28, label %27

27:                                               ; preds = %15
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoNumber_RJS0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef nonnull %0, i32 noundef %8, i32 noundef %3, i32 noundef %26)
  br label %29

28:                                               ; preds = %15
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoBigInt_RJS0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef nonnull %0, i32 noundef %8, i32 noundef %3, i32 noundef %26)
  br label %29

29:                                               ; preds = %28, %27
  %30 = zext i32 %8 to i64
  %31 = add nuw nsw i64 %30, 8
  %32 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %31)
  %33 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %30)
  %.not780 = icmp eq i32 %33, 0
  br i1 %.not780, label %34, label %36

34:                                               ; preds = %29
  %35 = zext i32 %1 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %35, i32 noundef 0)
  br label %301

36:                                               ; preds = %29
  %37 = zext i32 %3 to i64
  %38 = add nuw nsw i64 %37, 4
  %39 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %38)
  %40 = zext i32 %39 to i64
  %41 = add nuw nsw i64 %40, 164
  %42 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %41)
  %43 = add nuw nsw i64 %40, 168
  %44 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %43)
  %45 = icmp ult i32 %42, %44
  br i1 %45, label %46, label %49

46:                                               ; preds = %36
  %47 = add i32 %42, 8
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %41, i32 noundef %47)
  %48 = zext i32 %42 to i64
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %48, i64 noundef %32)
  br label %51

49:                                               ; preds = %36
  %50 = tail call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AGCScope0x3A0x3A_newChunkAndPHV0x28hermes0x3A0x3Avm0x3A0x3AHermesValue0x29(ptr noundef nonnull %0, i32 noundef %39, i64 noundef %32) #4
  br label %51

51:                                               ; preds = %49, %46
  %.0759 = phi i32 [ %42, %46 ], [ %50, %49 ]
  %52 = add i32 %11, -16
  %53 = icmp ult i32 %25, 2
  %54 = select i1 %53, i32 67208, i32 %52
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoIntegerOrInfinity0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef nonnull %0, i32 noundef %8, i32 noundef %3, i32 noundef %54)
  %55 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %30)
  %.not781 = icmp eq i32 %55, 0
  br i1 %.not781, label %56, label %58

56:                                               ; preds = %51
  %57 = zext i32 %1 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %57, i32 noundef 0)
  br label %301

58:                                               ; preds = %51
  %59 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %31)
  %60 = uitofp i32 %21 to double
  %61 = add i32 %11, -24
  %62 = icmp ult i32 %25, 3
  %63 = select i1 %62, i32 67208, i32 %61
  %64 = zext i32 %63 to i64
  %65 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %64)
  %.mask = and i64 %65, -140737488355328
  %.not782 = icmp eq i64 %.mask, -1688849860263936
  br i1 %.not782, label %73, label %66

66:                                               ; preds = %58
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AtoIntegerOrInfinity0x28hermes0x3A0x3Avm0x3A0x3ARuntime0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AHandle0x3Chermes0x3A0x3Avm0x3A0x3AHermesValue0x3E0x29(ptr noundef nonnull %0, i32 noundef %8, i32 noundef %3, i32 noundef %63)
  %67 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %30)
  %.not783 = icmp eq i32 %67, 0
  br i1 %.not783, label %297, label %68

68:                                               ; preds = %66
  %69 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %31)
  %70 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %64)
  %.mask784 = and i64 %70, -140737488355328
  %71 = icmp eq i64 %.mask784, -1688849860263936
  %72 = select i1 %71, double %60, double %69
  br label %73

73:                                               ; preds = %68, %58
  %.0758 = phi double [ %72, %68 ], [ %60, %58 ]
  %74 = add nuw nsw i64 %30, 56
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %74, double noundef %60)
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %30, double noundef %59)
  %75 = add nuw nsw i64 %30, 48
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %75, i64 noundef 0)
  %76 = fcmp olt double %59, 0.000000e+00
  br i1 %76, label %77, label %82

77:                                               ; preds = %73
  %78 = fadd double %59, %60
  %79 = add nuw nsw i64 %30, 40
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %79, double noundef %78)
  %80 = fcmp olt double %78, 0.000000e+00
  %.v = select i1 %80, i32 -16, i32 -24
  %81 = add i32 %.v, %7
  br label %86

82:                                               ; preds = %73
  %83 = add i32 %7, -8
  %84 = fcmp ogt double %59, %60
  %85 = select i1 %84, i32 %83, i32 %8
  br label %86

86:                                               ; preds = %82, %77
  %.0756 = phi i32 [ %81, %77 ], [ %85, %82 ]
  %87 = zext i32 %.0756 to i64
  %88 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %87)
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %74, double noundef %60)
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %30, double noundef %.0758)
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %75, i64 noundef 0)
  %89 = fcmp olt double %.0758, 0.000000e+00
  %90 = tail call double @wasm_fabs(double noundef %88)
  %91 = fcmp olt double %90, 0x43E0000000000000
  br i1 %91, label %92, label %101

92:                                               ; preds = %86
  %93 = fcmp uno double %88, 0.000000e+00
  br i1 %93, label %94, label %95, !prof !15

94:                                               ; preds = %92
  tail call void @wasm_rt_trap(i32 noundef 4) #5
  unreachable

95:                                               ; preds = %92
  %96 = fcmp ult double %88, 0xC3E0000000000000
  %97 = fcmp uge double %88, 0x43E0000000000000
  %.not787 = or i1 %96, %97
  br i1 %.not787, label %98, label %99, !prof !15

98:                                               ; preds = %95
  tail call void @wasm_rt_trap(i32 noundef 2) #5
  unreachable

99:                                               ; preds = %95
  %100 = fptosi double %88 to i64
  br label %101

101:                                              ; preds = %86, %99
  %.0 = phi i64 [ %100, %99 ], [ -9223372036854775808, %86 ]
  br i1 %89, label %102, label %107

102:                                              ; preds = %101
  %103 = fadd double %.0758, %60
  %104 = add nuw nsw i64 %30, 40
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %104, double noundef %103)
  %105 = fcmp olt double %103, 0.000000e+00
  %.v788 = select i1 %105, i32 -16, i32 -24
  %106 = add i32 %.v788, %7
  br label %111

107:                                              ; preds = %101
  %108 = add i32 %7, -8
  %109 = fcmp ogt double %.0758, %60
  %110 = select i1 %109, i32 %108, i32 %8
  br label %111

111:                                              ; preds = %107, %102
  %.1757 = phi i32 [ %106, %102 ], [ %110, %107 ]
  %112 = zext i32 %.1757 to i64
  %113 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %112)
  %114 = tail call double @wasm_fabs(double noundef %113)
  %115 = fcmp olt double %114, 0x43E0000000000000
  br i1 %115, label %116, label %125

116:                                              ; preds = %111
  %117 = fcmp uno double %113, 0.000000e+00
  br i1 %117, label %118, label %119, !prof !15

118:                                              ; preds = %116
  tail call void @wasm_rt_trap(i32 noundef 4) #5
  unreachable

119:                                              ; preds = %116
  %120 = fcmp ult double %113, 0xC3E0000000000000
  %121 = fcmp uge double %113, 0x43E0000000000000
  %.not791 = or i1 %120, %121
  br i1 %.not791, label %122, label %123, !prof !15

122:                                              ; preds = %119
  tail call void @wasm_rt_trap(i32 noundef 2) #5
  unreachable

123:                                              ; preds = %119
  %124 = fptosi double %113 to i64
  br label %125

125:                                              ; preds = %111, %123
  %.1 = phi i64 [ %124, %123 ], [ -9223372036854775808, %111 ]
  %126 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %17)
  %127 = and i64 %126, 4294967295
  %128 = add nuw nsw i64 %127, 20
  %129 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %128)
  %.not792 = icmp eq i32 %129, 0
  br i1 %.not792, label %134, label %130

130:                                              ; preds = %125
  %131 = zext i32 %129 to i64
  %132 = add nuw nsw i64 %131, 29
  %133 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %132)
  %.not793 = icmp eq i32 %133, 0
  br i1 %.not793, label %134, label %139

134:                                              ; preds = %130, %125
  %135 = add nuw nsw i64 %30, 32
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %135, i32 noundef 0)
  %136 = add nuw nsw i64 %30, 24
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %136, i64 noundef 141733920769)
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %31, i32 noundef 3)
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %30, i32 noundef 17792)
  %137 = tail call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3ARuntime0x3A0x3AraiseTypeError0x28hermes0x3A0x3Avm0x3A0x3ATwineChar160x20const0x260x29(ptr noundef nonnull %0, i32 noundef %3, i32 noundef %8) #4
  %138 = zext i32 %1 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %138, i32 noundef %137)
  br label %301

139:                                              ; preds = %130
  %.not794 = icmp sgt i64 %.1, %.0
  br i1 %.not794, label %143, label %140

140:                                              ; preds = %139
  %141 = zext i32 %1 to i64
  %142 = add nuw nsw i64 %141, 8
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %142, i64 noundef %126)
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %141, i32 noundef 1)
  br label %301

143:                                              ; preds = %139
  %144 = trunc i64 %.0 to i32
  %145 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %127)
  %146 = lshr i32 %145, 22
  %147 = and i32 %146, 1020
  %148 = add nuw nsw i32 %147, 138008
  %149 = zext nneg i32 %148 to i64
  %150 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %149)
  %151 = zext i32 %150 to i64
  %152 = add nuw nsw i64 %151, 44
  %153 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %152)
  %154 = getelementptr inbounds i8, ptr %0, i64 80
  %155 = getelementptr inbounds i8, ptr %0, i64 92
  %156 = load i32, ptr %155, align 4, !tbaa !16
  %157 = icmp ult i32 %153, %156
  br i1 %157, label %158, label %.critedge, !prof !17

158:                                              ; preds = %143
  %159 = load ptr, ptr %154, align 8, !tbaa !18
  %160 = zext i32 %153 to i64
  %161 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %159, i64 %160
  %162 = getelementptr inbounds i8, ptr %161, i64 8
  %163 = load ptr, ptr %162, align 8, !tbaa !19
  %.not795 = icmp eq ptr %163, null
  br i1 %.not795, label %.critedge, label %164, !prof !15

164:                                              ; preds = %158
  %165 = load ptr, ptr @w2c_hermes_t8, align 8, !tbaa !21
  %166 = load ptr, ptr %161, align 8, !tbaa !22
  %167 = tail call zeroext i1 @func_types_eq(ptr noundef %165, ptr noundef %166)
  br i1 %167, label %168, label %.critedge, !prof !17

.critedge:                                        ; preds = %158, %143, %164
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

168:                                              ; preds = %164
  %169 = load ptr, ptr %154, align 8, !tbaa !18
  %170 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %169, i64 %160
  %171 = getelementptr inbounds i8, ptr %170, i64 8
  %172 = load ptr, ptr %171, align 8, !tbaa !19
  %173 = getelementptr inbounds i8, ptr %170, i64 16
  %174 = load ptr, ptr %173, align 8, !tbaa !23
  tail call void %172(ptr noundef %174, i32 noundef %8, i32 noundef %11, i32 noundef %3, i32 noundef %144, i32 noundef %.0759) #4
  %175 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %30)
  %.not796 = icmp eq i32 %175, 0
  br i1 %.not796, label %176, label %178

176:                                              ; preds = %168
  %177 = zext i32 %1 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %177, i32 noundef 0)
  br label %301

178:                                              ; preds = %168
  %179 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %17)
  %180 = zext i32 %179 to i64
  %181 = add nuw nsw i64 %180, 3
  %182 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %181)
  %183 = add i32 %182, 78813
  %184 = zext i32 %183 to i64
  %185 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %184)
  %186 = add nuw nsw i64 %37, 5300
  %187 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %186)
  %.not797 = icmp eq i32 %187, 0
  br i1 %.not797, label %299, label %188

188:                                              ; preds = %178
  %189 = add i32 %3, 1272
  %190 = zext i32 %189 to i64
  %191 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %190)
  %192 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %17)
  %193 = zext i32 %192 to i64
  %194 = add nuw nsw i64 %193, 20
  %195 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %194)
  %196 = zext i32 %195 to i64
  %197 = add nuw nsw i64 %196, 20
  %198 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %197)
  %199 = xor i32 %198, %191
  %200 = add nuw nsw i64 %193, 28
  %201 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %200)
  %202 = add i32 %199, %201
  switch i32 %185, label %203 [
    i32 2, label %243
    i32 3, label %300
    i32 4, label %260
    i32 5, label %300
    i32 6, label %300
    i32 7, label %300
    i32 8, label %277
  ]

203:                                              ; preds = %188
  %204 = trunc i64 %.1 to i32
  %205 = add i32 %202, %204
  %206 = add i32 %202, %144
  %207 = sub i32 %205, %206
  %208 = icmp slt i32 %207, 1
  br i1 %208, label %.loopexit, label %209

209:                                              ; preds = %203
  %210 = and i32 %207, 7
  %.not798 = icmp eq i32 %210, 0
  br i1 %.not798, label %.loopexit804, label %.preheader803

.preheader803:                                    ; preds = %209
  %211 = zext i32 %206 to i64
  br label %212

212:                                              ; preds = %.preheader803, %212
  %.1764 = phi i32 [ %216, %212 ], [ 0, %.preheader803 ]
  %.0754 = phi i32 [ %215, %212 ], [ %206, %.preheader803 ]
  %213 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %211)
  %214 = zext i32 %.0754 to i64
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %214, i32 noundef %213)
  %215 = add i32 %.0754, 1
  %216 = add nuw nsw i32 %.1764, 1
  %.not799 = icmp eq i32 %216, %210
  br i1 %.not799, label %.loopexit804.loopexit, label %212

.loopexit804.loopexit:                            ; preds = %212
  %217 = add i32 %210, %144
  %218 = sub i32 %204, %217
  br label %.loopexit804

.loopexit804:                                     ; preds = %.loopexit804.loopexit, %209
  %.2761 = phi i32 [ %207, %209 ], [ %218, %.loopexit804.loopexit ]
  %.1755 = phi i32 [ %206, %209 ], [ %215, %.loopexit804.loopexit ]
  %219 = sub i32 %144, %204
  %220 = icmp ugt i32 %219, -8
  br i1 %220, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %.loopexit804
  %221 = zext i32 %206 to i64
  br label %222

222:                                              ; preds = %.preheader, %222
  %.3762 = phi i32 [ %241, %222 ], [ %.2761, %.preheader ]
  %.2 = phi i32 [ %239, %222 ], [ %.1755, %.preheader ]
  %223 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %224 = zext i32 %.2 to i64
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %224, i32 noundef %223)
  %225 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %226 = add nuw nsw i64 %224, 1
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %226, i32 noundef %225)
  %227 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %228 = add nuw nsw i64 %224, 2
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %228, i32 noundef %227)
  %229 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %230 = add nuw nsw i64 %224, 3
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %230, i32 noundef %229)
  %231 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %232 = add nuw nsw i64 %224, 4
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %232, i32 noundef %231)
  %233 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %234 = add nuw nsw i64 %224, 5
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %234, i32 noundef %233)
  %235 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %236 = add nuw nsw i64 %224, 6
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %236, i32 noundef %235)
  %237 = tail call i32 @i32_load8_u(ptr noundef nonnull %9, i64 noundef %221)
  %238 = add nuw nsw i64 %224, 7
  tail call void @i32_store8(ptr noundef nonnull %9, i64 noundef %238, i32 noundef %237)
  %239 = add i32 %.2, 8
  %240 = add i32 %.3762, -9
  %241 = add i32 %.3762, -8
  %242 = icmp ult i32 %240, -2
  br i1 %242, label %222, label %.loopexit

243:                                              ; preds = %188
  %244 = trunc i64 %.1 to i32
  %245 = shl i32 %244, 1
  %246 = add i32 %202, %245
  %247 = shl i32 %144, 1
  %248 = add i32 %202, %247
  %249 = sub i32 %246, %248
  %250 = icmp slt i32 %249, 1
  br i1 %250, label %.loopexit, label %251

251:                                              ; preds = %243
  %252 = lshr i32 %249, 1
  %253 = zext i32 %248 to i64
  br label %254

254:                                              ; preds = %254, %251
  %.2765 = phi i32 [ %248, %251 ], [ %257, %254 ]
  %.3 = phi i32 [ %252, %251 ], [ %259, %254 ]
  %255 = tail call i32 @i32_load16_u(ptr noundef nonnull %9, i64 noundef %253)
  %256 = zext i32 %.2765 to i64
  tail call void @i32_store16(ptr noundef nonnull %9, i64 noundef %256, i32 noundef %255)
  %257 = add i32 %.2765, 2
  %258 = icmp ugt i32 %.3, 1
  %259 = add nsw i32 %.3, -1
  br i1 %258, label %254, label %.loopexit

260:                                              ; preds = %188
  %261 = trunc i64 %.1 to i32
  %262 = shl i32 %261, 2
  %263 = add i32 %202, %262
  %264 = shl i32 %144, 2
  %265 = add i32 %202, %264
  %266 = sub i32 %263, %265
  %267 = icmp slt i32 %266, 1
  br i1 %267, label %.loopexit, label %268

268:                                              ; preds = %260
  %269 = lshr i32 %266, 2
  %270 = zext i32 %265 to i64
  br label %271

271:                                              ; preds = %271, %268
  %.3766 = phi i32 [ %265, %268 ], [ %274, %271 ]
  %.4 = phi i32 [ %269, %268 ], [ %276, %271 ]
  %272 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %270)
  %273 = zext i32 %.3766 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %273, i32 noundef %272)
  %274 = add i32 %.3766, 4
  %275 = icmp ugt i32 %.4, 1
  %276 = add nsw i32 %.4, -1
  br i1 %275, label %271, label %.loopexit

277:                                              ; preds = %188
  %278 = trunc i64 %.1 to i32
  %279 = shl i32 %278, 3
  %280 = add i32 %202, %279
  %281 = shl i32 %144, 3
  %282 = add i32 %202, %281
  %283 = sub i32 %280, %282
  %284 = icmp slt i32 %283, 1
  br i1 %284, label %.loopexit, label %285

285:                                              ; preds = %277
  %286 = lshr i32 %283, 3
  %287 = zext i32 %282 to i64
  br label %288

288:                                              ; preds = %288, %285
  %.4767 = phi i32 [ %282, %285 ], [ %291, %288 ]
  %.5 = phi i32 [ %286, %285 ], [ %293, %288 ]
  %289 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %287)
  %290 = zext i32 %.4767 to i64
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %290, i64 noundef %289)
  %291 = add i32 %.4767, 8
  %292 = icmp ugt i32 %.5, 1
  %293 = add nsw i32 %.5, -1
  br i1 %292, label %288, label %.loopexit

.loopexit:                                        ; preds = %288, %271, %254, %222, %277, %260, %243, %.loopexit804, %203
  %294 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %17)
  %295 = zext i32 %1 to i64
  %296 = add nuw nsw i64 %295, 8
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %296, i64 noundef %294)
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %295, i32 noundef 1)
  br label %301

297:                                              ; preds = %66
  %298 = zext i32 %1 to i64
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %298, i32 noundef 0)
  br label %301

299:                                              ; preds = %178
  tail call void @w2c_hermes_hermes0x3A0x3Ahermes_fatal0x28char0x20const0x2A0x29(ptr noundef nonnull %0, i32 noundef 38571) #4
  br label %300

300:                                              ; preds = %188, %188, %188, %188, %299
  tail call void @wasm_rt_trap(i32 noundef 5) #5
  unreachable

301:                                              ; preds = %297, %.loopexit, %176, %140, %134, %56, %34, %13
  store i32 %7, ptr %6, align 8, !tbaa !5
  ret void
}

attributes #0 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }
attributes #5 = { noreturn nounwind }

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

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


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