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

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

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

@w2c_hermes_t3 = external constant ptr, align 8
@w2c_hermes_t2 = external constant ptr, align 8
@w2c_hermes_t0 = 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: 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 void @i64_store(ptr noundef, i64 noundef, i64 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: inlinehint nounwind uwtable
declare hidden i64 @i64_load(ptr noundef, i64 noundef) #1

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

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

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

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef) #4

; 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

declare i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef) #4

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

70:                                               ; preds = %4
  %71 = load ptr, ptr %5, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.w2c_hermes, ptr %71, i32 0, i32 7
  %73 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %72, i32 0, i32 0
  %74 = load ptr, ptr %73, align 8, !tbaa !19
  %75 = load i32, ptr %21, align 4, !tbaa !9
  %76 = zext i32 %75 to i64
  %77 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %74, i64 %76
  %78 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %77, i32 0, i32 1
  %79 = load ptr, ptr %78, align 8, !tbaa !20
  %80 = icmp ne ptr %79, null
  br i1 %80, label %81, label %93

81:                                               ; preds = %70
  %82 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %83 = load ptr, ptr %5, align 8, !tbaa !5
  %84 = getelementptr inbounds %struct.w2c_hermes, ptr %83, i32 0, i32 7
  %85 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %84, i32 0, i32 0
  %86 = load ptr, ptr %85, align 8, !tbaa !19
  %87 = load i32, ptr %21, align 4, !tbaa !9
  %88 = zext i32 %87 to i64
  %89 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %86, i64 %88
  %90 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %89, i32 0, i32 0
  %91 = load ptr, ptr %90, align 8, !tbaa !22
  %92 = call zeroext i1 @func_types_eq(ptr noundef %82, ptr noundef %91)
  br label %93

93:                                               ; preds = %81, %70, %4
  %94 = phi i1 [ false, %70 ], [ false, %4 ], [ %92, %81 ]
  %95 = xor i1 %94, true
  %96 = xor i1 %95, true
  %97 = zext i1 %96 to i32
  %98 = sext i32 %97 to i64
  %99 = call i64 @llvm.expect.i64(i64 %98, i64 1)
  %100 = icmp ne i64 %99, 0
  br i1 %100, label %103, label %101

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

102:                                              ; No predecessors!
  br label %103

103:                                              ; preds = %102, %93
  %104 = phi i1 [ true, %93 ], [ false, %102 ]
  %105 = zext i1 %104 to i32
  %106 = load ptr, ptr %5, align 8, !tbaa !5
  %107 = getelementptr inbounds %struct.w2c_hermes, ptr %106, i32 0, i32 7
  %108 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %107, i32 0, i32 0
  %109 = load ptr, ptr %108, align 8, !tbaa !19
  %110 = load i32, ptr %21, align 4, !tbaa !9
  %111 = zext i32 %110 to i64
  %112 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %109, i64 %111
  %113 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %112, i32 0, i32 1
  %114 = load ptr, ptr %113, align 8, !tbaa !20
  %115 = load ptr, ptr %5, align 8, !tbaa !5
  %116 = getelementptr inbounds %struct.w2c_hermes, ptr %115, i32 0, i32 7
  %117 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %116, i32 0, i32 0
  %118 = load ptr, ptr %117, align 8, !tbaa !19
  %119 = load i32, ptr %21, align 4, !tbaa !9
  %120 = zext i32 %119 to i64
  %121 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %118, i64 %120
  %122 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %121, i32 0, i32 2
  %123 = load ptr, ptr %122, align 8, !tbaa !23
  %124 = load i32, ptr %19, align 4, !tbaa !9
  %125 = load i32, ptr %20, align 4, !tbaa !9
  call void %114(ptr noundef %123, i32 noundef %124, i32 noundef %125)
  %126 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %126, ptr %19, align 4, !tbaa !9
  %127 = load ptr, ptr %5, align 8, !tbaa !5
  %128 = getelementptr inbounds %struct.w2c_hermes, ptr %127, i32 0, i32 6
  %129 = load i32, ptr %19, align 4, !tbaa !9
  %130 = zext i32 %129 to i64
  %131 = add i64 %130, 5580
  %132 = call i32 @i32_load(ptr noundef %128, i64 noundef %131)
  store i32 %132, ptr %19, align 4, !tbaa !9
  %133 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %133, ptr %10, align 4, !tbaa !9
  %134 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %134, ptr %20, align 4, !tbaa !9
  %135 = load ptr, ptr %5, align 8, !tbaa !5
  %136 = getelementptr inbounds %struct.w2c_hermes, ptr %135, i32 0, i32 6
  %137 = load i32, ptr %20, align 4, !tbaa !9
  %138 = zext i32 %137 to i64
  %139 = add i64 %138, 5588
  %140 = call i32 @i32_load(ptr noundef %136, i64 noundef %139)
  store i32 %140, ptr %20, align 4, !tbaa !9
  %141 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %141, ptr %9, align 4, !tbaa !9
  %142 = load i32, ptr %19, align 4, !tbaa !9
  %143 = load i32, ptr %20, align 4, !tbaa !9
  %144 = icmp ne i32 %142, %143
  %145 = zext i1 %144 to i32
  store i32 %145, ptr %19, align 4, !tbaa !9
  %146 = load i32, ptr %19, align 4, !tbaa !9
  %147 = icmp ne i32 %146, 0
  br i1 %147, label %148, label %241

148:                                              ; preds = %103
  br label %149

149:                                              ; preds = %239, %148
  %150 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %150, ptr %19, align 4, !tbaa !9
  %151 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %151, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %21, align 4, !tbaa !9
  %152 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %152, ptr %22, align 4, !tbaa !9
  %153 = load ptr, ptr %5, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.w2c_hermes, ptr %153, i32 0, i32 6
  %155 = load i32, ptr %22, align 4, !tbaa !9
  %156 = zext i32 %155 to i64
  %157 = call i32 @i32_load(ptr noundef %154, i64 noundef %156)
  store i32 %157, ptr %22, align 4, !tbaa !9
  %158 = load ptr, ptr %5, 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, 36
  %163 = call i32 @i32_load(ptr noundef %159, i64 noundef %162)
  store i32 %163, ptr %22, align 4, !tbaa !9
  %164 = load i32, ptr %22, align 4, !tbaa !9
  %165 = load ptr, ptr %5, align 8, !tbaa !5
  %166 = getelementptr inbounds %struct.w2c_hermes, ptr %165, i32 0, i32 7
  %167 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %166, i32 0, i32 2
  %168 = load i32, ptr %167, align 4, !tbaa !18
  %169 = icmp ult i32 %164, %168
  br i1 %169, label %170, label %193

170:                                              ; preds = %149
  %171 = load ptr, ptr %5, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.w2c_hermes, ptr %171, i32 0, i32 7
  %173 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %172, i32 0, i32 0
  %174 = load ptr, ptr %173, align 8, !tbaa !19
  %175 = load i32, ptr %22, align 4, !tbaa !9
  %176 = zext i32 %175 to i64
  %177 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %174, i64 %176
  %178 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %177, i32 0, i32 1
  %179 = load ptr, ptr %178, align 8, !tbaa !20
  %180 = icmp ne ptr %179, null
  br i1 %180, label %181, label %193

181:                                              ; preds = %170
  %182 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %183 = load ptr, ptr %5, align 8, !tbaa !5
  %184 = getelementptr inbounds %struct.w2c_hermes, ptr %183, i32 0, i32 7
  %185 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %184, i32 0, i32 0
  %186 = load ptr, ptr %185, align 8, !tbaa !19
  %187 = load i32, ptr %22, align 4, !tbaa !9
  %188 = zext i32 %187 to i64
  %189 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %186, i64 %188
  %190 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %189, i32 0, i32 0
  %191 = load ptr, ptr %190, align 8, !tbaa !22
  %192 = call zeroext i1 @func_types_eq(ptr noundef %182, ptr noundef %191)
  br label %193

193:                                              ; preds = %181, %170, %149
  %194 = phi i1 [ false, %170 ], [ false, %149 ], [ %192, %181 ]
  %195 = xor i1 %194, true
  %196 = xor i1 %195, true
  %197 = zext i1 %196 to i32
  %198 = sext i32 %197 to i64
  %199 = call i64 @llvm.expect.i64(i64 %198, i64 1)
  %200 = icmp ne i64 %199, 0
  br i1 %200, label %203, label %201

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

202:                                              ; No predecessors!
  br label %203

203:                                              ; preds = %202, %193
  %204 = phi i1 [ true, %193 ], [ false, %202 ]
  %205 = zext i1 %204 to i32
  %206 = load ptr, ptr %5, align 8, !tbaa !5
  %207 = getelementptr inbounds %struct.w2c_hermes, ptr %206, i32 0, i32 7
  %208 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %207, i32 0, i32 0
  %209 = load ptr, ptr %208, align 8, !tbaa !19
  %210 = load i32, ptr %22, align 4, !tbaa !9
  %211 = zext i32 %210 to i64
  %212 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %209, i64 %211
  %213 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %212, i32 0, i32 1
  %214 = load ptr, ptr %213, align 8, !tbaa !20
  %215 = load ptr, ptr %5, align 8, !tbaa !5
  %216 = getelementptr inbounds %struct.w2c_hermes, ptr %215, i32 0, i32 7
  %217 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %216, i32 0, i32 0
  %218 = load ptr, ptr %217, align 8, !tbaa !19
  %219 = load i32, ptr %22, align 4, !tbaa !9
  %220 = zext i32 %219 to i64
  %221 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %218, i64 %220
  %222 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %221, i32 0, i32 2
  %223 = load ptr, ptr %222, align 8, !tbaa !23
  %224 = load i32, ptr %19, align 4, !tbaa !9
  %225 = load i32, ptr %20, align 4, !tbaa !9
  %226 = load i32, ptr %21, align 4, !tbaa !9
  call void %214(ptr noundef %223, i32 noundef %224, i32 noundef %225, i32 noundef %226)
  %227 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %227, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %228 = load i32, ptr %20, align 4, !tbaa !9
  %229 = load i32, ptr %19, align 4, !tbaa !9
  %230 = add i32 %229, %228
  store i32 %230, ptr %19, align 4, !tbaa !9
  %231 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %231, ptr %10, align 4, !tbaa !9
  %232 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %232, ptr %20, align 4, !tbaa !9
  %233 = load i32, ptr %19, align 4, !tbaa !9
  %234 = load i32, ptr %20, align 4, !tbaa !9
  %235 = icmp ne i32 %233, %234
  %236 = zext i1 %235 to i32
  store i32 %236, ptr %19, align 4, !tbaa !9
  %237 = load i32, ptr %19, align 4, !tbaa !9
  %238 = icmp ne i32 %237, 0
  br i1 %238, label %239, label %240

239:                                              ; preds = %203
  br label %149

240:                                              ; preds = %203
  br label %241

241:                                              ; preds = %240, %103
  %242 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %242, ptr %19, align 4, !tbaa !9
  %243 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %243, ptr %20, align 4, !tbaa !9
  %244 = load ptr, ptr %5, align 8, !tbaa !5
  %245 = getelementptr inbounds %struct.w2c_hermes, ptr %244, i32 0, i32 6
  %246 = load i32, ptr %20, align 4, !tbaa !9
  %247 = zext i32 %246 to i64
  %248 = call i32 @i32_load(ptr noundef %245, i64 noundef %247)
  store i32 %248, ptr %20, align 4, !tbaa !9
  %249 = load ptr, ptr %5, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.w2c_hermes, ptr %249, i32 0, i32 6
  %251 = load i32, ptr %20, align 4, !tbaa !9
  %252 = zext i32 %251 to i64
  %253 = add i64 %252, 12
  %254 = call i32 @i32_load(ptr noundef %250, i64 noundef %253)
  store i32 %254, ptr %20, align 4, !tbaa !9
  %255 = load i32, ptr %20, align 4, !tbaa !9
  %256 = load ptr, ptr %5, align 8, !tbaa !5
  %257 = getelementptr inbounds %struct.w2c_hermes, ptr %256, i32 0, i32 7
  %258 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %257, i32 0, i32 2
  %259 = load i32, ptr %258, align 4, !tbaa !18
  %260 = icmp ult i32 %255, %259
  br i1 %260, label %261, label %284

261:                                              ; preds = %241
  %262 = load ptr, ptr %5, align 8, !tbaa !5
  %263 = getelementptr inbounds %struct.w2c_hermes, ptr %262, i32 0, i32 7
  %264 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %263, i32 0, i32 0
  %265 = load ptr, ptr %264, align 8, !tbaa !19
  %266 = load i32, ptr %20, align 4, !tbaa !9
  %267 = zext i32 %266 to i64
  %268 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %265, i64 %267
  %269 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %268, i32 0, i32 1
  %270 = load ptr, ptr %269, align 8, !tbaa !20
  %271 = icmp ne ptr %270, null
  br i1 %271, label %272, label %284

272:                                              ; preds = %261
  %273 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %274 = load ptr, ptr %5, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.w2c_hermes, ptr %274, i32 0, i32 7
  %276 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %275, i32 0, i32 0
  %277 = load ptr, ptr %276, align 8, !tbaa !19
  %278 = load i32, ptr %20, align 4, !tbaa !9
  %279 = zext i32 %278 to i64
  %280 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %277, i64 %279
  %281 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %280, i32 0, i32 0
  %282 = load ptr, ptr %281, align 8, !tbaa !22
  %283 = call zeroext i1 @func_types_eq(ptr noundef %273, ptr noundef %282)
  br label %284

284:                                              ; preds = %272, %261, %241
  %285 = phi i1 [ false, %261 ], [ false, %241 ], [ %283, %272 ]
  %286 = xor i1 %285, true
  %287 = xor i1 %286, true
  %288 = zext i1 %287 to i32
  %289 = sext i32 %288 to i64
  %290 = call i64 @llvm.expect.i64(i64 %289, i64 1)
  %291 = icmp ne i64 %290, 0
  br i1 %291, label %294, label %292

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

293:                                              ; No predecessors!
  br label %294

294:                                              ; preds = %293, %284
  %295 = phi i1 [ true, %284 ], [ false, %293 ]
  %296 = zext i1 %295 to i32
  %297 = load ptr, ptr %5, align 8, !tbaa !5
  %298 = getelementptr inbounds %struct.w2c_hermes, ptr %297, i32 0, i32 7
  %299 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %298, i32 0, i32 0
  %300 = load ptr, ptr %299, align 8, !tbaa !19
  %301 = load i32, ptr %20, align 4, !tbaa !9
  %302 = zext i32 %301 to i64
  %303 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %300, i64 %302
  %304 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %303, i32 0, i32 1
  %305 = load ptr, ptr %304, align 8, !tbaa !20
  %306 = load ptr, ptr %5, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.w2c_hermes, ptr %306, i32 0, i32 7
  %308 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %307, i32 0, i32 0
  %309 = load ptr, ptr %308, align 8, !tbaa !19
  %310 = load i32, ptr %20, align 4, !tbaa !9
  %311 = zext i32 %310 to i64
  %312 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %309, i64 %311
  %313 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %312, i32 0, i32 2
  %314 = load ptr, ptr %313, align 8, !tbaa !23
  %315 = load i32, ptr %19, align 4, !tbaa !9
  call void %305(ptr noundef %314, i32 noundef %315)
  %316 = load ptr, ptr %5, align 8, !tbaa !5
  %317 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %316)
  store i64 %317, ptr %24, align 8, !tbaa !11
  %318 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %318, ptr %18, align 8, !tbaa !11
  %319 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %319, ptr %19, align 4, !tbaa !9
  %320 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %320, ptr %20, align 4, !tbaa !9
  %321 = load ptr, ptr %5, align 8, !tbaa !5
  %322 = getelementptr inbounds %struct.w2c_hermes, ptr %321, i32 0, i32 6
  %323 = load i32, ptr %20, align 4, !tbaa !9
  %324 = zext i32 %323 to i64
  %325 = add i64 %324, 5320
  %326 = call double @f64_load(ptr noundef %322, i64 noundef %325)
  store double %326, ptr %28, align 8, !tbaa !24
  %327 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %327, ptr %26, align 8, !tbaa !11
  %328 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %328, ptr %27, align 8, !tbaa !11
  %329 = load i64, ptr %27, align 8, !tbaa !11
  %330 = load i64, ptr %26, align 8, !tbaa !11
  %331 = sub i64 %330, %329
  store i64 %331, ptr %26, align 8, !tbaa !11
  %332 = load i64, ptr %26, align 8, !tbaa !11
  %333 = sitofp i64 %332 to double
  store double %333, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %334 = load double, ptr %30, align 8, !tbaa !24
  %335 = load double, ptr %29, align 8, !tbaa !24
  %336 = fdiv double %335, %334
  store double %336, ptr %29, align 8, !tbaa !24
  %337 = load double, ptr %29, align 8, !tbaa !24
  %338 = load double, ptr %28, align 8, !tbaa !24
  %339 = fadd double %338, %337
  store double %339, ptr %28, align 8, !tbaa !24
  %340 = load ptr, ptr %5, align 8, !tbaa !5
  %341 = getelementptr inbounds %struct.w2c_hermes, ptr %340, i32 0, i32 6
  %342 = load i32, ptr %19, align 4, !tbaa !9
  %343 = zext i32 %342 to i64
  %344 = add i64 %343, 5320
  %345 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %341, i64 noundef %344, double noundef %345)
  %346 = load ptr, ptr %5, align 8, !tbaa !5
  %347 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %346)
  store i64 %347, ptr %24, align 8, !tbaa !11
  %348 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %348, ptr %17, align 8, !tbaa !11
  %349 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %349, ptr %19, align 4, !tbaa !9
  store i32 1, ptr %20, align 4, !tbaa !9
  %350 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %350, ptr %21, align 4, !tbaa !9
  %351 = load ptr, ptr %5, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.w2c_hermes, ptr %351, i32 0, i32 6
  %353 = load i32, ptr %21, align 4, !tbaa !9
  %354 = zext i32 %353 to i64
  %355 = call i32 @i32_load(ptr noundef %352, i64 noundef %354)
  store i32 %355, ptr %21, align 4, !tbaa !9
  %356 = load ptr, ptr %5, align 8, !tbaa !5
  %357 = getelementptr inbounds %struct.w2c_hermes, ptr %356, i32 0, i32 6
  %358 = load i32, ptr %21, align 4, !tbaa !9
  %359 = zext i32 %358 to i64
  %360 = add i64 %359, 8
  %361 = call i32 @i32_load(ptr noundef %357, i64 noundef %360)
  store i32 %361, ptr %21, align 4, !tbaa !9
  %362 = load i32, ptr %21, align 4, !tbaa !9
  %363 = load ptr, ptr %5, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.w2c_hermes, ptr %363, i32 0, i32 7
  %365 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %364, i32 0, i32 2
  %366 = load i32, ptr %365, align 4, !tbaa !18
  %367 = icmp ult i32 %362, %366
  br i1 %367, label %368, label %391

368:                                              ; preds = %294
  %369 = load ptr, ptr %5, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.w2c_hermes, ptr %369, i32 0, i32 7
  %371 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %370, i32 0, i32 0
  %372 = load ptr, ptr %371, align 8, !tbaa !19
  %373 = load i32, ptr %21, align 4, !tbaa !9
  %374 = zext i32 %373 to i64
  %375 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %372, i64 %374
  %376 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %375, i32 0, i32 1
  %377 = load ptr, ptr %376, align 8, !tbaa !20
  %378 = icmp ne ptr %377, null
  br i1 %378, label %379, label %391

379:                                              ; preds = %368
  %380 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %381 = load ptr, ptr %5, align 8, !tbaa !5
  %382 = getelementptr inbounds %struct.w2c_hermes, ptr %381, i32 0, i32 7
  %383 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %382, i32 0, i32 0
  %384 = load ptr, ptr %383, align 8, !tbaa !19
  %385 = load i32, ptr %21, align 4, !tbaa !9
  %386 = zext i32 %385 to i64
  %387 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %384, i64 %386
  %388 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %387, i32 0, i32 0
  %389 = load ptr, ptr %388, align 8, !tbaa !22
  %390 = call zeroext i1 @func_types_eq(ptr noundef %380, ptr noundef %389)
  br label %391

391:                                              ; preds = %379, %368, %294
  %392 = phi i1 [ false, %368 ], [ false, %294 ], [ %390, %379 ]
  %393 = xor i1 %392, true
  %394 = xor i1 %393, true
  %395 = zext i1 %394 to i32
  %396 = sext i32 %395 to i64
  %397 = call i64 @llvm.expect.i64(i64 %396, i64 1)
  %398 = icmp ne i64 %397, 0
  br i1 %398, label %401, label %399

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

400:                                              ; No predecessors!
  br label %401

401:                                              ; preds = %400, %391
  %402 = phi i1 [ true, %391 ], [ false, %400 ]
  %403 = zext i1 %402 to i32
  %404 = load ptr, ptr %5, align 8, !tbaa !5
  %405 = getelementptr inbounds %struct.w2c_hermes, ptr %404, i32 0, i32 7
  %406 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %405, i32 0, i32 0
  %407 = load ptr, ptr %406, align 8, !tbaa !19
  %408 = load i32, ptr %21, align 4, !tbaa !9
  %409 = zext i32 %408 to i64
  %410 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %407, i64 %409
  %411 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %410, i32 0, i32 1
  %412 = load ptr, ptr %411, align 8, !tbaa !20
  %413 = load ptr, ptr %5, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.w2c_hermes, ptr %413, i32 0, i32 7
  %415 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %414, i32 0, i32 0
  %416 = load ptr, ptr %415, align 8, !tbaa !19
  %417 = load i32, ptr %21, align 4, !tbaa !9
  %418 = zext i32 %417 to i64
  %419 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %416, i64 %418
  %420 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %419, i32 0, i32 2
  %421 = load ptr, ptr %420, align 8, !tbaa !23
  %422 = load i32, ptr %19, align 4, !tbaa !9
  %423 = load i32, ptr %20, align 4, !tbaa !9
  call void %412(ptr noundef %421, i32 noundef %422, i32 noundef %423)
  %424 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %424, ptr %19, align 4, !tbaa !9
  %425 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %425, ptr %20, align 4, !tbaa !9
  store i32 5616, ptr %21, align 4, !tbaa !9
  %426 = load i32, ptr %21, align 4, !tbaa !9
  %427 = load i32, ptr %20, align 4, !tbaa !9
  %428 = add i32 %427, %426
  store i32 %428, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %429 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %429, ptr %22, align 4, !tbaa !9
  %430 = load ptr, ptr %5, align 8, !tbaa !5
  %431 = getelementptr inbounds %struct.w2c_hermes, ptr %430, i32 0, i32 6
  %432 = load i32, ptr %22, align 4, !tbaa !9
  %433 = zext i32 %432 to i64
  %434 = call i32 @i32_load(ptr noundef %431, i64 noundef %433)
  store i32 %434, ptr %22, align 4, !tbaa !9
  %435 = load ptr, ptr %5, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.w2c_hermes, ptr %435, i32 0, i32 6
  %437 = load i32, ptr %22, align 4, !tbaa !9
  %438 = zext i32 %437 to i64
  %439 = add i64 %438, 36
  %440 = call i32 @i32_load(ptr noundef %436, i64 noundef %439)
  store i32 %440, ptr %22, align 4, !tbaa !9
  %441 = load i32, ptr %22, align 4, !tbaa !9
  %442 = load ptr, ptr %5, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.w2c_hermes, ptr %442, i32 0, i32 7
  %444 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %443, i32 0, i32 2
  %445 = load i32, ptr %444, align 4, !tbaa !18
  %446 = icmp ult i32 %441, %445
  br i1 %446, label %447, label %470

447:                                              ; preds = %401
  %448 = load ptr, ptr %5, align 8, !tbaa !5
  %449 = getelementptr inbounds %struct.w2c_hermes, ptr %448, i32 0, i32 7
  %450 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %449, i32 0, i32 0
  %451 = load ptr, ptr %450, align 8, !tbaa !19
  %452 = load i32, ptr %22, align 4, !tbaa !9
  %453 = zext i32 %452 to i64
  %454 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %451, i64 %453
  %455 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %454, i32 0, i32 1
  %456 = load ptr, ptr %455, align 8, !tbaa !20
  %457 = icmp ne ptr %456, null
  br i1 %457, label %458, label %470

458:                                              ; preds = %447
  %459 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %460 = load ptr, ptr %5, align 8, !tbaa !5
  %461 = getelementptr inbounds %struct.w2c_hermes, ptr %460, i32 0, i32 7
  %462 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %461, i32 0, i32 0
  %463 = load ptr, ptr %462, align 8, !tbaa !19
  %464 = load i32, ptr %22, align 4, !tbaa !9
  %465 = zext i32 %464 to i64
  %466 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %463, i64 %465
  %467 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %466, i32 0, i32 0
  %468 = load ptr, ptr %467, align 8, !tbaa !22
  %469 = call zeroext i1 @func_types_eq(ptr noundef %459, ptr noundef %468)
  br label %470

470:                                              ; preds = %458, %447, %401
  %471 = phi i1 [ false, %447 ], [ false, %401 ], [ %469, %458 ]
  %472 = xor i1 %471, true
  %473 = xor i1 %472, true
  %474 = zext i1 %473 to i32
  %475 = sext i32 %474 to i64
  %476 = call i64 @llvm.expect.i64(i64 %475, i64 1)
  %477 = icmp ne i64 %476, 0
  br i1 %477, label %480, label %478

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

479:                                              ; No predecessors!
  br label %480

480:                                              ; preds = %479, %470
  %481 = phi i1 [ true, %470 ], [ false, %479 ]
  %482 = zext i1 %481 to i32
  %483 = load ptr, ptr %5, align 8, !tbaa !5
  %484 = getelementptr inbounds %struct.w2c_hermes, ptr %483, i32 0, i32 7
  %485 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %484, i32 0, i32 0
  %486 = load ptr, ptr %485, align 8, !tbaa !19
  %487 = load i32, ptr %22, align 4, !tbaa !9
  %488 = zext i32 %487 to i64
  %489 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %486, i64 %488
  %490 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %489, i32 0, i32 1
  %491 = load ptr, ptr %490, align 8, !tbaa !20
  %492 = load ptr, ptr %5, align 8, !tbaa !5
  %493 = getelementptr inbounds %struct.w2c_hermes, ptr %492, i32 0, i32 7
  %494 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %493, i32 0, i32 0
  %495 = load ptr, ptr %494, align 8, !tbaa !19
  %496 = load i32, ptr %22, align 4, !tbaa !9
  %497 = zext i32 %496 to i64
  %498 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %495, i64 %497
  %499 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %498, i32 0, i32 2
  %500 = load ptr, ptr %499, align 8, !tbaa !23
  %501 = load i32, ptr %19, align 4, !tbaa !9
  %502 = load i32, ptr %20, align 4, !tbaa !9
  %503 = load i32, ptr %21, align 4, !tbaa !9
  call void %491(ptr noundef %500, i32 noundef %501, i32 noundef %502, i32 noundef %503)
  %504 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %504, ptr %19, align 4, !tbaa !9
  %505 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %505, ptr %20, align 4, !tbaa !9
  store i32 5624, ptr %21, align 4, !tbaa !9
  %506 = load i32, ptr %21, align 4, !tbaa !9
  %507 = load i32, ptr %20, align 4, !tbaa !9
  %508 = add i32 %507, %506
  store i32 %508, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %509 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %509, ptr %22, align 4, !tbaa !9
  %510 = load ptr, ptr %5, align 8, !tbaa !5
  %511 = getelementptr inbounds %struct.w2c_hermes, ptr %510, i32 0, i32 6
  %512 = load i32, ptr %22, align 4, !tbaa !9
  %513 = zext i32 %512 to i64
  %514 = call i32 @i32_load(ptr noundef %511, i64 noundef %513)
  store i32 %514, ptr %22, align 4, !tbaa !9
  %515 = load ptr, ptr %5, align 8, !tbaa !5
  %516 = getelementptr inbounds %struct.w2c_hermes, ptr %515, i32 0, i32 6
  %517 = load i32, ptr %22, align 4, !tbaa !9
  %518 = zext i32 %517 to i64
  %519 = add i64 %518, 36
  %520 = call i32 @i32_load(ptr noundef %516, i64 noundef %519)
  store i32 %520, ptr %22, align 4, !tbaa !9
  %521 = load i32, ptr %22, align 4, !tbaa !9
  %522 = load ptr, ptr %5, align 8, !tbaa !5
  %523 = getelementptr inbounds %struct.w2c_hermes, ptr %522, i32 0, i32 7
  %524 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %523, i32 0, i32 2
  %525 = load i32, ptr %524, align 4, !tbaa !18
  %526 = icmp ult i32 %521, %525
  br i1 %526, label %527, label %550

527:                                              ; preds = %480
  %528 = load ptr, ptr %5, align 8, !tbaa !5
  %529 = getelementptr inbounds %struct.w2c_hermes, ptr %528, i32 0, i32 7
  %530 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %529, i32 0, i32 0
  %531 = load ptr, ptr %530, align 8, !tbaa !19
  %532 = load i32, ptr %22, align 4, !tbaa !9
  %533 = zext i32 %532 to i64
  %534 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %531, i64 %533
  %535 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %534, i32 0, i32 1
  %536 = load ptr, ptr %535, align 8, !tbaa !20
  %537 = icmp ne ptr %536, null
  br i1 %537, label %538, label %550

538:                                              ; preds = %527
  %539 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %540 = load ptr, ptr %5, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.w2c_hermes, ptr %540, i32 0, i32 7
  %542 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %541, i32 0, i32 0
  %543 = load ptr, ptr %542, align 8, !tbaa !19
  %544 = load i32, ptr %22, align 4, !tbaa !9
  %545 = zext i32 %544 to i64
  %546 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %543, i64 %545
  %547 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %546, i32 0, i32 0
  %548 = load ptr, ptr %547, align 8, !tbaa !22
  %549 = call zeroext i1 @func_types_eq(ptr noundef %539, ptr noundef %548)
  br label %550

550:                                              ; preds = %538, %527, %480
  %551 = phi i1 [ false, %527 ], [ false, %480 ], [ %549, %538 ]
  %552 = xor i1 %551, true
  %553 = xor i1 %552, true
  %554 = zext i1 %553 to i32
  %555 = sext i32 %554 to i64
  %556 = call i64 @llvm.expect.i64(i64 %555, i64 1)
  %557 = icmp ne i64 %556, 0
  br i1 %557, label %560, label %558

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

559:                                              ; No predecessors!
  br label %560

560:                                              ; preds = %559, %550
  %561 = phi i1 [ true, %550 ], [ false, %559 ]
  %562 = zext i1 %561 to i32
  %563 = load ptr, ptr %5, align 8, !tbaa !5
  %564 = getelementptr inbounds %struct.w2c_hermes, ptr %563, i32 0, i32 7
  %565 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %564, i32 0, i32 0
  %566 = load ptr, ptr %565, align 8, !tbaa !19
  %567 = load i32, ptr %22, align 4, !tbaa !9
  %568 = zext i32 %567 to i64
  %569 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %566, i64 %568
  %570 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %569, i32 0, i32 1
  %571 = load ptr, ptr %570, align 8, !tbaa !20
  %572 = load ptr, ptr %5, align 8, !tbaa !5
  %573 = getelementptr inbounds %struct.w2c_hermes, ptr %572, i32 0, i32 7
  %574 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %573, i32 0, i32 0
  %575 = load ptr, ptr %574, align 8, !tbaa !19
  %576 = load i32, ptr %22, align 4, !tbaa !9
  %577 = zext i32 %576 to i64
  %578 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %575, i64 %577
  %579 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %578, i32 0, i32 2
  %580 = load ptr, ptr %579, align 8, !tbaa !23
  %581 = load i32, ptr %19, align 4, !tbaa !9
  %582 = load i32, ptr %20, align 4, !tbaa !9
  %583 = load i32, ptr %21, align 4, !tbaa !9
  call void %571(ptr noundef %580, i32 noundef %581, i32 noundef %582, i32 noundef %583)
  %584 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %584, ptr %19, align 4, !tbaa !9
  %585 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %585, ptr %20, align 4, !tbaa !9
  store i32 5632, ptr %21, align 4, !tbaa !9
  %586 = load i32, ptr %21, align 4, !tbaa !9
  %587 = load i32, ptr %20, align 4, !tbaa !9
  %588 = add i32 %587, %586
  store i32 %588, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %589 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %589, ptr %22, align 4, !tbaa !9
  %590 = load ptr, ptr %5, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.w2c_hermes, ptr %590, i32 0, i32 6
  %592 = load i32, ptr %22, align 4, !tbaa !9
  %593 = zext i32 %592 to i64
  %594 = call i32 @i32_load(ptr noundef %591, i64 noundef %593)
  store i32 %594, ptr %22, align 4, !tbaa !9
  %595 = load ptr, ptr %5, align 8, !tbaa !5
  %596 = getelementptr inbounds %struct.w2c_hermes, ptr %595, i32 0, i32 6
  %597 = load i32, ptr %22, align 4, !tbaa !9
  %598 = zext i32 %597 to i64
  %599 = add i64 %598, 36
  %600 = call i32 @i32_load(ptr noundef %596, i64 noundef %599)
  store i32 %600, ptr %22, align 4, !tbaa !9
  %601 = load i32, ptr %22, align 4, !tbaa !9
  %602 = load ptr, ptr %5, align 8, !tbaa !5
  %603 = getelementptr inbounds %struct.w2c_hermes, ptr %602, i32 0, i32 7
  %604 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %603, i32 0, i32 2
  %605 = load i32, ptr %604, align 4, !tbaa !18
  %606 = icmp ult i32 %601, %605
  br i1 %606, label %607, label %630

607:                                              ; preds = %560
  %608 = load ptr, ptr %5, align 8, !tbaa !5
  %609 = getelementptr inbounds %struct.w2c_hermes, ptr %608, i32 0, i32 7
  %610 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %609, i32 0, i32 0
  %611 = load ptr, ptr %610, align 8, !tbaa !19
  %612 = load i32, ptr %22, align 4, !tbaa !9
  %613 = zext i32 %612 to i64
  %614 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %611, i64 %613
  %615 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %614, i32 0, i32 1
  %616 = load ptr, ptr %615, align 8, !tbaa !20
  %617 = icmp ne ptr %616, null
  br i1 %617, label %618, label %630

618:                                              ; preds = %607
  %619 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %620 = load ptr, ptr %5, align 8, !tbaa !5
  %621 = getelementptr inbounds %struct.w2c_hermes, ptr %620, i32 0, i32 7
  %622 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %621, i32 0, i32 0
  %623 = load ptr, ptr %622, align 8, !tbaa !19
  %624 = load i32, ptr %22, align 4, !tbaa !9
  %625 = zext i32 %624 to i64
  %626 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %623, i64 %625
  %627 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %626, i32 0, i32 0
  %628 = load ptr, ptr %627, align 8, !tbaa !22
  %629 = call zeroext i1 @func_types_eq(ptr noundef %619, ptr noundef %628)
  br label %630

630:                                              ; preds = %618, %607, %560
  %631 = phi i1 [ false, %607 ], [ false, %560 ], [ %629, %618 ]
  %632 = xor i1 %631, true
  %633 = xor i1 %632, true
  %634 = zext i1 %633 to i32
  %635 = sext i32 %634 to i64
  %636 = call i64 @llvm.expect.i64(i64 %635, i64 1)
  %637 = icmp ne i64 %636, 0
  br i1 %637, label %640, label %638

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

639:                                              ; No predecessors!
  br label %640

640:                                              ; preds = %639, %630
  %641 = phi i1 [ true, %630 ], [ false, %639 ]
  %642 = zext i1 %641 to i32
  %643 = load ptr, ptr %5, align 8, !tbaa !5
  %644 = getelementptr inbounds %struct.w2c_hermes, ptr %643, i32 0, i32 7
  %645 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %644, i32 0, i32 0
  %646 = load ptr, ptr %645, align 8, !tbaa !19
  %647 = load i32, ptr %22, align 4, !tbaa !9
  %648 = zext i32 %647 to i64
  %649 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %646, i64 %648
  %650 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %649, i32 0, i32 1
  %651 = load ptr, ptr %650, align 8, !tbaa !20
  %652 = load ptr, ptr %5, align 8, !tbaa !5
  %653 = getelementptr inbounds %struct.w2c_hermes, ptr %652, i32 0, i32 7
  %654 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %653, i32 0, i32 0
  %655 = load ptr, ptr %654, align 8, !tbaa !19
  %656 = load i32, ptr %22, align 4, !tbaa !9
  %657 = zext i32 %656 to i64
  %658 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %655, i64 %657
  %659 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %658, i32 0, i32 2
  %660 = load ptr, ptr %659, align 8, !tbaa !23
  %661 = load i32, ptr %19, align 4, !tbaa !9
  %662 = load i32, ptr %20, align 4, !tbaa !9
  %663 = load i32, ptr %21, align 4, !tbaa !9
  call void %651(ptr noundef %660, i32 noundef %661, i32 noundef %662, i32 noundef %663)
  %664 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %664, ptr %19, align 4, !tbaa !9
  %665 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %665, ptr %20, align 4, !tbaa !9
  store i32 5640, ptr %21, align 4, !tbaa !9
  %666 = load i32, ptr %21, align 4, !tbaa !9
  %667 = load i32, ptr %20, align 4, !tbaa !9
  %668 = add i32 %667, %666
  store i32 %668, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %669 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %669, ptr %22, align 4, !tbaa !9
  %670 = load ptr, ptr %5, 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 i32 @i32_load(ptr noundef %671, i64 noundef %673)
  store i32 %674, ptr %22, align 4, !tbaa !9
  %675 = load ptr, ptr %5, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.w2c_hermes, ptr %675, i32 0, i32 6
  %677 = load i32, ptr %22, align 4, !tbaa !9
  %678 = zext i32 %677 to i64
  %679 = add i64 %678, 36
  %680 = call i32 @i32_load(ptr noundef %676, i64 noundef %679)
  store i32 %680, ptr %22, align 4, !tbaa !9
  %681 = load i32, ptr %22, align 4, !tbaa !9
  %682 = load ptr, ptr %5, align 8, !tbaa !5
  %683 = getelementptr inbounds %struct.w2c_hermes, ptr %682, i32 0, i32 7
  %684 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %683, i32 0, i32 2
  %685 = load i32, ptr %684, align 4, !tbaa !18
  %686 = icmp ult i32 %681, %685
  br i1 %686, label %687, label %710

687:                                              ; preds = %640
  %688 = load ptr, ptr %5, align 8, !tbaa !5
  %689 = getelementptr inbounds %struct.w2c_hermes, ptr %688, i32 0, i32 7
  %690 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %689, i32 0, i32 0
  %691 = load ptr, ptr %690, align 8, !tbaa !19
  %692 = load i32, ptr %22, align 4, !tbaa !9
  %693 = zext i32 %692 to i64
  %694 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %691, i64 %693
  %695 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %694, i32 0, i32 1
  %696 = load ptr, ptr %695, align 8, !tbaa !20
  %697 = icmp ne ptr %696, null
  br i1 %697, label %698, label %710

698:                                              ; preds = %687
  %699 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %700 = load ptr, ptr %5, align 8, !tbaa !5
  %701 = getelementptr inbounds %struct.w2c_hermes, ptr %700, i32 0, i32 7
  %702 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %701, i32 0, i32 0
  %703 = load ptr, ptr %702, align 8, !tbaa !19
  %704 = load i32, ptr %22, align 4, !tbaa !9
  %705 = zext i32 %704 to i64
  %706 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %703, i64 %705
  %707 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %706, i32 0, i32 0
  %708 = load ptr, ptr %707, align 8, !tbaa !22
  %709 = call zeroext i1 @func_types_eq(ptr noundef %699, ptr noundef %708)
  br label %710

710:                                              ; preds = %698, %687, %640
  %711 = phi i1 [ false, %687 ], [ false, %640 ], [ %709, %698 ]
  %712 = xor i1 %711, true
  %713 = xor i1 %712, true
  %714 = zext i1 %713 to i32
  %715 = sext i32 %714 to i64
  %716 = call i64 @llvm.expect.i64(i64 %715, i64 1)
  %717 = icmp ne i64 %716, 0
  br i1 %717, label %720, label %718

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

719:                                              ; No predecessors!
  br label %720

720:                                              ; preds = %719, %710
  %721 = phi i1 [ true, %710 ], [ false, %719 ]
  %722 = zext i1 %721 to i32
  %723 = load ptr, ptr %5, align 8, !tbaa !5
  %724 = getelementptr inbounds %struct.w2c_hermes, ptr %723, i32 0, i32 7
  %725 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %724, i32 0, i32 0
  %726 = load ptr, ptr %725, align 8, !tbaa !19
  %727 = load i32, ptr %22, align 4, !tbaa !9
  %728 = zext i32 %727 to i64
  %729 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %726, i64 %728
  %730 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %729, i32 0, i32 1
  %731 = load ptr, ptr %730, align 8, !tbaa !20
  %732 = load ptr, ptr %5, align 8, !tbaa !5
  %733 = getelementptr inbounds %struct.w2c_hermes, ptr %732, i32 0, i32 7
  %734 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %733, i32 0, i32 0
  %735 = load ptr, ptr %734, align 8, !tbaa !19
  %736 = load i32, ptr %22, align 4, !tbaa !9
  %737 = zext i32 %736 to i64
  %738 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %735, i64 %737
  %739 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %738, i32 0, i32 2
  %740 = load ptr, ptr %739, align 8, !tbaa !23
  %741 = load i32, ptr %19, align 4, !tbaa !9
  %742 = load i32, ptr %20, align 4, !tbaa !9
  %743 = load i32, ptr %21, align 4, !tbaa !9
  call void %731(ptr noundef %740, i32 noundef %741, i32 noundef %742, i32 noundef %743)
  %744 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %744, ptr %19, align 4, !tbaa !9
  %745 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %745, ptr %20, align 4, !tbaa !9
  store i32 5648, ptr %21, align 4, !tbaa !9
  %746 = load i32, ptr %21, align 4, !tbaa !9
  %747 = load i32, ptr %20, align 4, !tbaa !9
  %748 = add i32 %747, %746
  store i32 %748, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %749 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %749, ptr %22, align 4, !tbaa !9
  %750 = load ptr, ptr %5, align 8, !tbaa !5
  %751 = getelementptr inbounds %struct.w2c_hermes, ptr %750, i32 0, i32 6
  %752 = load i32, ptr %22, align 4, !tbaa !9
  %753 = zext i32 %752 to i64
  %754 = call i32 @i32_load(ptr noundef %751, i64 noundef %753)
  store i32 %754, ptr %22, align 4, !tbaa !9
  %755 = load ptr, ptr %5, align 8, !tbaa !5
  %756 = getelementptr inbounds %struct.w2c_hermes, ptr %755, i32 0, i32 6
  %757 = load i32, ptr %22, align 4, !tbaa !9
  %758 = zext i32 %757 to i64
  %759 = add i64 %758, 36
  %760 = call i32 @i32_load(ptr noundef %756, i64 noundef %759)
  store i32 %760, ptr %22, align 4, !tbaa !9
  %761 = load i32, ptr %22, align 4, !tbaa !9
  %762 = load ptr, ptr %5, align 8, !tbaa !5
  %763 = getelementptr inbounds %struct.w2c_hermes, ptr %762, i32 0, i32 7
  %764 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %763, i32 0, i32 2
  %765 = load i32, ptr %764, align 4, !tbaa !18
  %766 = icmp ult i32 %761, %765
  br i1 %766, label %767, label %790

767:                                              ; preds = %720
  %768 = load ptr, ptr %5, align 8, !tbaa !5
  %769 = getelementptr inbounds %struct.w2c_hermes, ptr %768, i32 0, i32 7
  %770 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %769, i32 0, i32 0
  %771 = load ptr, ptr %770, align 8, !tbaa !19
  %772 = load i32, ptr %22, align 4, !tbaa !9
  %773 = zext i32 %772 to i64
  %774 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %771, i64 %773
  %775 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %774, i32 0, i32 1
  %776 = load ptr, ptr %775, align 8, !tbaa !20
  %777 = icmp ne ptr %776, null
  br i1 %777, label %778, label %790

778:                                              ; preds = %767
  %779 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %780 = load ptr, ptr %5, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.w2c_hermes, ptr %780, i32 0, i32 7
  %782 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %781, i32 0, i32 0
  %783 = load ptr, ptr %782, align 8, !tbaa !19
  %784 = load i32, ptr %22, align 4, !tbaa !9
  %785 = zext i32 %784 to i64
  %786 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %783, i64 %785
  %787 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %786, i32 0, i32 0
  %788 = load ptr, ptr %787, align 8, !tbaa !22
  %789 = call zeroext i1 @func_types_eq(ptr noundef %779, ptr noundef %788)
  br label %790

790:                                              ; preds = %778, %767, %720
  %791 = phi i1 [ false, %767 ], [ false, %720 ], [ %789, %778 ]
  %792 = xor i1 %791, true
  %793 = xor i1 %792, true
  %794 = zext i1 %793 to i32
  %795 = sext i32 %794 to i64
  %796 = call i64 @llvm.expect.i64(i64 %795, i64 1)
  %797 = icmp ne i64 %796, 0
  br i1 %797, label %800, label %798

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

799:                                              ; No predecessors!
  br label %800

800:                                              ; preds = %799, %790
  %801 = phi i1 [ true, %790 ], [ false, %799 ]
  %802 = zext i1 %801 to i32
  %803 = load ptr, ptr %5, 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 0
  %806 = load ptr, ptr %805, align 8, !tbaa !19
  %807 = load i32, ptr %22, align 4, !tbaa !9
  %808 = zext i32 %807 to i64
  %809 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %806, i64 %808
  %810 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %809, i32 0, i32 1
  %811 = load ptr, ptr %810, align 8, !tbaa !20
  %812 = load ptr, ptr %5, align 8, !tbaa !5
  %813 = getelementptr inbounds %struct.w2c_hermes, ptr %812, i32 0, i32 7
  %814 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %813, i32 0, i32 0
  %815 = load ptr, ptr %814, align 8, !tbaa !19
  %816 = load i32, ptr %22, align 4, !tbaa !9
  %817 = zext i32 %816 to i64
  %818 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %815, i64 %817
  %819 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %818, i32 0, i32 2
  %820 = load ptr, ptr %819, align 8, !tbaa !23
  %821 = load i32, ptr %19, align 4, !tbaa !9
  %822 = load i32, ptr %20, align 4, !tbaa !9
  %823 = load i32, ptr %21, align 4, !tbaa !9
  call void %811(ptr noundef %820, i32 noundef %821, i32 noundef %822, i32 noundef %823)
  %824 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %824, ptr %19, align 4, !tbaa !9
  %825 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %825, ptr %20, align 4, !tbaa !9
  store i32 5656, ptr %21, align 4, !tbaa !9
  %826 = load i32, ptr %21, align 4, !tbaa !9
  %827 = load i32, ptr %20, align 4, !tbaa !9
  %828 = add i32 %827, %826
  store i32 %828, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %829 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %829, ptr %22, align 4, !tbaa !9
  %830 = load ptr, ptr %5, align 8, !tbaa !5
  %831 = getelementptr inbounds %struct.w2c_hermes, ptr %830, i32 0, i32 6
  %832 = load i32, ptr %22, align 4, !tbaa !9
  %833 = zext i32 %832 to i64
  %834 = call i32 @i32_load(ptr noundef %831, i64 noundef %833)
  store i32 %834, ptr %22, align 4, !tbaa !9
  %835 = load ptr, ptr %5, align 8, !tbaa !5
  %836 = getelementptr inbounds %struct.w2c_hermes, ptr %835, i32 0, i32 6
  %837 = load i32, ptr %22, align 4, !tbaa !9
  %838 = zext i32 %837 to i64
  %839 = add i64 %838, 36
  %840 = call i32 @i32_load(ptr noundef %836, i64 noundef %839)
  store i32 %840, ptr %22, align 4, !tbaa !9
  %841 = load i32, ptr %22, align 4, !tbaa !9
  %842 = load ptr, ptr %5, align 8, !tbaa !5
  %843 = getelementptr inbounds %struct.w2c_hermes, ptr %842, i32 0, i32 7
  %844 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %843, i32 0, i32 2
  %845 = load i32, ptr %844, align 4, !tbaa !18
  %846 = icmp ult i32 %841, %845
  br i1 %846, label %847, label %870

847:                                              ; preds = %800
  %848 = load ptr, ptr %5, align 8, !tbaa !5
  %849 = getelementptr inbounds %struct.w2c_hermes, ptr %848, i32 0, i32 7
  %850 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %849, i32 0, i32 0
  %851 = load ptr, ptr %850, align 8, !tbaa !19
  %852 = load i32, ptr %22, align 4, !tbaa !9
  %853 = zext i32 %852 to i64
  %854 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %851, i64 %853
  %855 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %854, i32 0, i32 1
  %856 = load ptr, ptr %855, align 8, !tbaa !20
  %857 = icmp ne ptr %856, null
  br i1 %857, label %858, label %870

858:                                              ; preds = %847
  %859 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %860 = load ptr, ptr %5, align 8, !tbaa !5
  %861 = getelementptr inbounds %struct.w2c_hermes, ptr %860, i32 0, i32 7
  %862 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %861, i32 0, i32 0
  %863 = load ptr, ptr %862, align 8, !tbaa !19
  %864 = load i32, ptr %22, align 4, !tbaa !9
  %865 = zext i32 %864 to i64
  %866 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %863, i64 %865
  %867 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %866, i32 0, i32 0
  %868 = load ptr, ptr %867, align 8, !tbaa !22
  %869 = call zeroext i1 @func_types_eq(ptr noundef %859, ptr noundef %868)
  br label %870

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

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

879:                                              ; No predecessors!
  br label %880

880:                                              ; preds = %879, %870
  %881 = phi i1 [ true, %870 ], [ false, %879 ]
  %882 = zext i1 %881 to i32
  %883 = load ptr, ptr %5, align 8, !tbaa !5
  %884 = getelementptr inbounds %struct.w2c_hermes, ptr %883, i32 0, i32 7
  %885 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %884, i32 0, i32 0
  %886 = load ptr, ptr %885, align 8, !tbaa !19
  %887 = load i32, ptr %22, align 4, !tbaa !9
  %888 = zext i32 %887 to i64
  %889 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %886, i64 %888
  %890 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %889, i32 0, i32 1
  %891 = load ptr, ptr %890, align 8, !tbaa !20
  %892 = load ptr, ptr %5, align 8, !tbaa !5
  %893 = getelementptr inbounds %struct.w2c_hermes, ptr %892, i32 0, i32 7
  %894 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %893, i32 0, i32 0
  %895 = load ptr, ptr %894, align 8, !tbaa !19
  %896 = load i32, ptr %22, align 4, !tbaa !9
  %897 = zext i32 %896 to i64
  %898 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %895, i64 %897
  %899 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %898, i32 0, i32 2
  %900 = load ptr, ptr %899, align 8, !tbaa !23
  %901 = load i32, ptr %19, align 4, !tbaa !9
  %902 = load i32, ptr %20, align 4, !tbaa !9
  %903 = load i32, ptr %21, align 4, !tbaa !9
  call void %891(ptr noundef %900, i32 noundef %901, i32 noundef %902, i32 noundef %903)
  %904 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %904, ptr %19, align 4, !tbaa !9
  %905 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %905, ptr %20, align 4, !tbaa !9
  store i32 5664, ptr %21, align 4, !tbaa !9
  %906 = load i32, ptr %21, align 4, !tbaa !9
  %907 = load i32, ptr %20, align 4, !tbaa !9
  %908 = add i32 %907, %906
  store i32 %908, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %909 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %909, ptr %22, align 4, !tbaa !9
  %910 = load ptr, ptr %5, align 8, !tbaa !5
  %911 = getelementptr inbounds %struct.w2c_hermes, ptr %910, i32 0, i32 6
  %912 = load i32, ptr %22, align 4, !tbaa !9
  %913 = zext i32 %912 to i64
  %914 = call i32 @i32_load(ptr noundef %911, i64 noundef %913)
  store i32 %914, ptr %22, align 4, !tbaa !9
  %915 = load ptr, ptr %5, align 8, !tbaa !5
  %916 = getelementptr inbounds %struct.w2c_hermes, ptr %915, i32 0, i32 6
  %917 = load i32, ptr %22, align 4, !tbaa !9
  %918 = zext i32 %917 to i64
  %919 = add i64 %918, 36
  %920 = call i32 @i32_load(ptr noundef %916, i64 noundef %919)
  store i32 %920, ptr %22, align 4, !tbaa !9
  %921 = load i32, ptr %22, align 4, !tbaa !9
  %922 = load ptr, ptr %5, align 8, !tbaa !5
  %923 = getelementptr inbounds %struct.w2c_hermes, ptr %922, i32 0, i32 7
  %924 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %923, i32 0, i32 2
  %925 = load i32, ptr %924, align 4, !tbaa !18
  %926 = icmp ult i32 %921, %925
  br i1 %926, label %927, label %950

927:                                              ; preds = %880
  %928 = load ptr, ptr %5, align 8, !tbaa !5
  %929 = getelementptr inbounds %struct.w2c_hermes, ptr %928, i32 0, i32 7
  %930 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %929, i32 0, i32 0
  %931 = load ptr, ptr %930, align 8, !tbaa !19
  %932 = load i32, ptr %22, align 4, !tbaa !9
  %933 = zext i32 %932 to i64
  %934 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %931, i64 %933
  %935 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %934, i32 0, i32 1
  %936 = load ptr, ptr %935, align 8, !tbaa !20
  %937 = icmp ne ptr %936, null
  br i1 %937, label %938, label %950

938:                                              ; preds = %927
  %939 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %940 = load ptr, ptr %5, align 8, !tbaa !5
  %941 = getelementptr inbounds %struct.w2c_hermes, ptr %940, i32 0, i32 7
  %942 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %941, i32 0, i32 0
  %943 = load ptr, ptr %942, align 8, !tbaa !19
  %944 = load i32, ptr %22, align 4, !tbaa !9
  %945 = zext i32 %944 to i64
  %946 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %943, i64 %945
  %947 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %946, i32 0, i32 0
  %948 = load ptr, ptr %947, align 8, !tbaa !22
  %949 = call zeroext i1 @func_types_eq(ptr noundef %939, ptr noundef %948)
  br label %950

950:                                              ; preds = %938, %927, %880
  %951 = phi i1 [ false, %927 ], [ false, %880 ], [ %949, %938 ]
  %952 = xor i1 %951, true
  %953 = xor i1 %952, true
  %954 = zext i1 %953 to i32
  %955 = sext i32 %954 to i64
  %956 = call i64 @llvm.expect.i64(i64 %955, i64 1)
  %957 = icmp ne i64 %956, 0
  br i1 %957, label %960, label %958

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

959:                                              ; No predecessors!
  br label %960

960:                                              ; preds = %959, %950
  %961 = phi i1 [ true, %950 ], [ false, %959 ]
  %962 = zext i1 %961 to i32
  %963 = load ptr, ptr %5, align 8, !tbaa !5
  %964 = getelementptr inbounds %struct.w2c_hermes, ptr %963, i32 0, i32 7
  %965 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %964, i32 0, i32 0
  %966 = load ptr, ptr %965, align 8, !tbaa !19
  %967 = load i32, ptr %22, align 4, !tbaa !9
  %968 = zext i32 %967 to i64
  %969 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %966, i64 %968
  %970 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %969, i32 0, i32 1
  %971 = load ptr, ptr %970, align 8, !tbaa !20
  %972 = load ptr, ptr %5, align 8, !tbaa !5
  %973 = getelementptr inbounds %struct.w2c_hermes, ptr %972, i32 0, i32 7
  %974 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %973, i32 0, i32 0
  %975 = load ptr, ptr %974, align 8, !tbaa !19
  %976 = load i32, ptr %22, align 4, !tbaa !9
  %977 = zext i32 %976 to i64
  %978 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %975, i64 %977
  %979 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %978, i32 0, i32 2
  %980 = load ptr, ptr %979, align 8, !tbaa !23
  %981 = load i32, ptr %19, align 4, !tbaa !9
  %982 = load i32, ptr %20, align 4, !tbaa !9
  %983 = load i32, ptr %21, align 4, !tbaa !9
  call void %971(ptr noundef %980, i32 noundef %981, i32 noundef %982, i32 noundef %983)
  %984 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %984, ptr %19, align 4, !tbaa !9
  %985 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %985, ptr %20, align 4, !tbaa !9
  store i32 5672, ptr %21, align 4, !tbaa !9
  %986 = load i32, ptr %21, align 4, !tbaa !9
  %987 = load i32, ptr %20, align 4, !tbaa !9
  %988 = add i32 %987, %986
  store i32 %988, ptr %20, align 4, !tbaa !9
  store i32 33765, ptr %21, align 4, !tbaa !9
  %989 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %989, ptr %22, align 4, !tbaa !9
  %990 = load ptr, ptr %5, align 8, !tbaa !5
  %991 = getelementptr inbounds %struct.w2c_hermes, ptr %990, i32 0, i32 6
  %992 = load i32, ptr %22, align 4, !tbaa !9
  %993 = zext i32 %992 to i64
  %994 = call i32 @i32_load(ptr noundef %991, i64 noundef %993)
  store i32 %994, ptr %22, align 4, !tbaa !9
  %995 = load ptr, ptr %5, align 8, !tbaa !5
  %996 = getelementptr inbounds %struct.w2c_hermes, ptr %995, i32 0, i32 6
  %997 = load i32, ptr %22, align 4, !tbaa !9
  %998 = zext i32 %997 to i64
  %999 = add i64 %998, 36
  %1000 = call i32 @i32_load(ptr noundef %996, i64 noundef %999)
  store i32 %1000, ptr %22, align 4, !tbaa !9
  %1001 = load i32, ptr %22, align 4, !tbaa !9
  %1002 = load ptr, ptr %5, align 8, !tbaa !5
  %1003 = getelementptr inbounds %struct.w2c_hermes, ptr %1002, i32 0, i32 7
  %1004 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1003, i32 0, i32 2
  %1005 = load i32, ptr %1004, align 4, !tbaa !18
  %1006 = icmp ult i32 %1001, %1005
  br i1 %1006, label %1007, label %1030

1007:                                             ; preds = %960
  %1008 = load ptr, ptr %5, align 8, !tbaa !5
  %1009 = getelementptr inbounds %struct.w2c_hermes, ptr %1008, i32 0, i32 7
  %1010 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1009, i32 0, i32 0
  %1011 = load ptr, ptr %1010, align 8, !tbaa !19
  %1012 = load i32, ptr %22, align 4, !tbaa !9
  %1013 = zext i32 %1012 to i64
  %1014 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1011, i64 %1013
  %1015 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1014, i32 0, i32 1
  %1016 = load ptr, ptr %1015, align 8, !tbaa !20
  %1017 = icmp ne ptr %1016, null
  br i1 %1017, label %1018, label %1030

1018:                                             ; preds = %1007
  %1019 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1020 = load ptr, ptr %5, align 8, !tbaa !5
  %1021 = getelementptr inbounds %struct.w2c_hermes, ptr %1020, i32 0, i32 7
  %1022 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1021, i32 0, i32 0
  %1023 = load ptr, ptr %1022, align 8, !tbaa !19
  %1024 = load i32, ptr %22, align 4, !tbaa !9
  %1025 = zext i32 %1024 to i64
  %1026 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1023, i64 %1025
  %1027 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1026, i32 0, i32 0
  %1028 = load ptr, ptr %1027, align 8, !tbaa !22
  %1029 = call zeroext i1 @func_types_eq(ptr noundef %1019, ptr noundef %1028)
  br label %1030

1030:                                             ; preds = %1018, %1007, %960
  %1031 = phi i1 [ false, %1007 ], [ false, %960 ], [ %1029, %1018 ]
  %1032 = xor i1 %1031, true
  %1033 = xor i1 %1032, true
  %1034 = zext i1 %1033 to i32
  %1035 = sext i32 %1034 to i64
  %1036 = call i64 @llvm.expect.i64(i64 %1035, i64 1)
  %1037 = icmp ne i64 %1036, 0
  br i1 %1037, label %1040, label %1038

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

1039:                                             ; No predecessors!
  br label %1040

1040:                                             ; preds = %1039, %1030
  %1041 = phi i1 [ true, %1030 ], [ false, %1039 ]
  %1042 = zext i1 %1041 to i32
  %1043 = load ptr, ptr %5, align 8, !tbaa !5
  %1044 = getelementptr inbounds %struct.w2c_hermes, ptr %1043, i32 0, i32 7
  %1045 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1044, i32 0, i32 0
  %1046 = load ptr, ptr %1045, align 8, !tbaa !19
  %1047 = load i32, ptr %22, align 4, !tbaa !9
  %1048 = zext i32 %1047 to i64
  %1049 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1046, i64 %1048
  %1050 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1049, i32 0, i32 1
  %1051 = load ptr, ptr %1050, align 8, !tbaa !20
  %1052 = load ptr, ptr %5, align 8, !tbaa !5
  %1053 = getelementptr inbounds %struct.w2c_hermes, ptr %1052, i32 0, i32 7
  %1054 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1053, i32 0, i32 0
  %1055 = load ptr, ptr %1054, align 8, !tbaa !19
  %1056 = load i32, ptr %22, align 4, !tbaa !9
  %1057 = zext i32 %1056 to i64
  %1058 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1055, i64 %1057
  %1059 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1058, i32 0, i32 2
  %1060 = load ptr, ptr %1059, align 8, !tbaa !23
  %1061 = load i32, ptr %19, align 4, !tbaa !9
  %1062 = load i32, ptr %20, align 4, !tbaa !9
  %1063 = load i32, ptr %21, align 4, !tbaa !9
  call void %1051(ptr noundef %1060, i32 noundef %1061, i32 noundef %1062, i32 noundef %1063)
  %1064 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1064, ptr %19, align 4, !tbaa !9
  %1065 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1065, ptr %20, align 4, !tbaa !9
  store i32 696, ptr %21, align 4, !tbaa !9
  %1066 = load i32, ptr %21, align 4, !tbaa !9
  %1067 = load i32, ptr %20, align 4, !tbaa !9
  %1068 = add i32 %1067, %1066
  store i32 %1068, ptr %20, align 4, !tbaa !9
  store i32 55785, ptr %21, align 4, !tbaa !9
  %1069 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1069, ptr %22, align 4, !tbaa !9
  %1070 = load ptr, ptr %5, align 8, !tbaa !5
  %1071 = getelementptr inbounds %struct.w2c_hermes, ptr %1070, i32 0, i32 6
  %1072 = load i32, ptr %22, align 4, !tbaa !9
  %1073 = zext i32 %1072 to i64
  %1074 = call i32 @i32_load(ptr noundef %1071, i64 noundef %1073)
  store i32 %1074, ptr %22, align 4, !tbaa !9
  %1075 = load ptr, ptr %5, align 8, !tbaa !5
  %1076 = getelementptr inbounds %struct.w2c_hermes, ptr %1075, i32 0, i32 6
  %1077 = load i32, ptr %22, align 4, !tbaa !9
  %1078 = zext i32 %1077 to i64
  %1079 = add i64 %1078, 36
  %1080 = call i32 @i32_load(ptr noundef %1076, i64 noundef %1079)
  store i32 %1080, ptr %22, align 4, !tbaa !9
  %1081 = load i32, ptr %22, align 4, !tbaa !9
  %1082 = load ptr, ptr %5, align 8, !tbaa !5
  %1083 = getelementptr inbounds %struct.w2c_hermes, ptr %1082, i32 0, i32 7
  %1084 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1083, i32 0, i32 2
  %1085 = load i32, ptr %1084, align 4, !tbaa !18
  %1086 = icmp ult i32 %1081, %1085
  br i1 %1086, label %1087, label %1110

1087:                                             ; preds = %1040
  %1088 = load ptr, ptr %5, align 8, !tbaa !5
  %1089 = getelementptr inbounds %struct.w2c_hermes, ptr %1088, i32 0, i32 7
  %1090 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1089, i32 0, i32 0
  %1091 = load ptr, ptr %1090, align 8, !tbaa !19
  %1092 = load i32, ptr %22, align 4, !tbaa !9
  %1093 = zext i32 %1092 to i64
  %1094 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1091, i64 %1093
  %1095 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1094, i32 0, i32 1
  %1096 = load ptr, ptr %1095, align 8, !tbaa !20
  %1097 = icmp ne ptr %1096, null
  br i1 %1097, label %1098, label %1110

1098:                                             ; preds = %1087
  %1099 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1100 = load ptr, ptr %5, align 8, !tbaa !5
  %1101 = getelementptr inbounds %struct.w2c_hermes, ptr %1100, i32 0, i32 7
  %1102 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1101, i32 0, i32 0
  %1103 = load ptr, ptr %1102, align 8, !tbaa !19
  %1104 = load i32, ptr %22, align 4, !tbaa !9
  %1105 = zext i32 %1104 to i64
  %1106 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1103, i64 %1105
  %1107 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1106, i32 0, i32 0
  %1108 = load ptr, ptr %1107, align 8, !tbaa !22
  %1109 = call zeroext i1 @func_types_eq(ptr noundef %1099, ptr noundef %1108)
  br label %1110

1110:                                             ; preds = %1098, %1087, %1040
  %1111 = phi i1 [ false, %1087 ], [ false, %1040 ], [ %1109, %1098 ]
  %1112 = xor i1 %1111, true
  %1113 = xor i1 %1112, true
  %1114 = zext i1 %1113 to i32
  %1115 = sext i32 %1114 to i64
  %1116 = call i64 @llvm.expect.i64(i64 %1115, i64 1)
  %1117 = icmp ne i64 %1116, 0
  br i1 %1117, label %1120, label %1118

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

1119:                                             ; No predecessors!
  br label %1120

1120:                                             ; preds = %1119, %1110
  %1121 = phi i1 [ true, %1110 ], [ false, %1119 ]
  %1122 = zext i1 %1121 to i32
  %1123 = load ptr, ptr %5, align 8, !tbaa !5
  %1124 = getelementptr inbounds %struct.w2c_hermes, ptr %1123, i32 0, i32 7
  %1125 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1124, i32 0, i32 0
  %1126 = load ptr, ptr %1125, align 8, !tbaa !19
  %1127 = load i32, ptr %22, align 4, !tbaa !9
  %1128 = zext i32 %1127 to i64
  %1129 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1126, i64 %1128
  %1130 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1129, i32 0, i32 1
  %1131 = load ptr, ptr %1130, align 8, !tbaa !20
  %1132 = load ptr, ptr %5, align 8, !tbaa !5
  %1133 = getelementptr inbounds %struct.w2c_hermes, ptr %1132, i32 0, i32 7
  %1134 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1133, i32 0, i32 0
  %1135 = load ptr, ptr %1134, align 8, !tbaa !19
  %1136 = load i32, ptr %22, align 4, !tbaa !9
  %1137 = zext i32 %1136 to i64
  %1138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1135, i64 %1137
  %1139 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1138, i32 0, i32 2
  %1140 = load ptr, ptr %1139, align 8, !tbaa !23
  %1141 = load i32, ptr %19, align 4, !tbaa !9
  %1142 = load i32, ptr %20, align 4, !tbaa !9
  %1143 = load i32, ptr %21, align 4, !tbaa !9
  call void %1131(ptr noundef %1140, i32 noundef %1141, i32 noundef %1142, i32 noundef %1143)
  %1144 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1144, ptr %19, align 4, !tbaa !9
  %1145 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1145, ptr %20, align 4, !tbaa !9
  store i32 704, ptr %21, align 4, !tbaa !9
  %1146 = load i32, ptr %21, align 4, !tbaa !9
  %1147 = load i32, ptr %20, align 4, !tbaa !9
  %1148 = add i32 %1147, %1146
  store i32 %1148, ptr %20, align 4, !tbaa !9
  store i32 55823, ptr %21, align 4, !tbaa !9
  %1149 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1149, ptr %22, align 4, !tbaa !9
  %1150 = load ptr, ptr %5, align 8, !tbaa !5
  %1151 = getelementptr inbounds %struct.w2c_hermes, ptr %1150, i32 0, i32 6
  %1152 = load i32, ptr %22, align 4, !tbaa !9
  %1153 = zext i32 %1152 to i64
  %1154 = call i32 @i32_load(ptr noundef %1151, i64 noundef %1153)
  store i32 %1154, ptr %22, align 4, !tbaa !9
  %1155 = load ptr, ptr %5, align 8, !tbaa !5
  %1156 = getelementptr inbounds %struct.w2c_hermes, ptr %1155, i32 0, i32 6
  %1157 = load i32, ptr %22, align 4, !tbaa !9
  %1158 = zext i32 %1157 to i64
  %1159 = add i64 %1158, 36
  %1160 = call i32 @i32_load(ptr noundef %1156, i64 noundef %1159)
  store i32 %1160, ptr %22, align 4, !tbaa !9
  %1161 = load i32, ptr %22, align 4, !tbaa !9
  %1162 = load ptr, ptr %5, align 8, !tbaa !5
  %1163 = getelementptr inbounds %struct.w2c_hermes, ptr %1162, i32 0, i32 7
  %1164 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1163, i32 0, i32 2
  %1165 = load i32, ptr %1164, align 4, !tbaa !18
  %1166 = icmp ult i32 %1161, %1165
  br i1 %1166, label %1167, label %1190

1167:                                             ; preds = %1120
  %1168 = load ptr, ptr %5, align 8, !tbaa !5
  %1169 = getelementptr inbounds %struct.w2c_hermes, ptr %1168, i32 0, i32 7
  %1170 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1169, i32 0, i32 0
  %1171 = load ptr, ptr %1170, align 8, !tbaa !19
  %1172 = load i32, ptr %22, align 4, !tbaa !9
  %1173 = zext i32 %1172 to i64
  %1174 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1171, i64 %1173
  %1175 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1174, i32 0, i32 1
  %1176 = load ptr, ptr %1175, align 8, !tbaa !20
  %1177 = icmp ne ptr %1176, null
  br i1 %1177, label %1178, label %1190

1178:                                             ; preds = %1167
  %1179 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1180 = load ptr, ptr %5, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.w2c_hermes, ptr %1180, i32 0, i32 7
  %1182 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1181, i32 0, i32 0
  %1183 = load ptr, ptr %1182, align 8, !tbaa !19
  %1184 = load i32, ptr %22, align 4, !tbaa !9
  %1185 = zext i32 %1184 to i64
  %1186 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1183, i64 %1185
  %1187 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1186, i32 0, i32 0
  %1188 = load ptr, ptr %1187, align 8, !tbaa !22
  %1189 = call zeroext i1 @func_types_eq(ptr noundef %1179, ptr noundef %1188)
  br label %1190

1190:                                             ; preds = %1178, %1167, %1120
  %1191 = phi i1 [ false, %1167 ], [ false, %1120 ], [ %1189, %1178 ]
  %1192 = xor i1 %1191, true
  %1193 = xor i1 %1192, true
  %1194 = zext i1 %1193 to i32
  %1195 = sext i32 %1194 to i64
  %1196 = call i64 @llvm.expect.i64(i64 %1195, i64 1)
  %1197 = icmp ne i64 %1196, 0
  br i1 %1197, label %1200, label %1198

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

1199:                                             ; No predecessors!
  br label %1200

1200:                                             ; preds = %1199, %1190
  %1201 = phi i1 [ true, %1190 ], [ false, %1199 ]
  %1202 = zext i1 %1201 to i32
  %1203 = load ptr, ptr %5, align 8, !tbaa !5
  %1204 = getelementptr inbounds %struct.w2c_hermes, ptr %1203, i32 0, i32 7
  %1205 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1204, i32 0, i32 0
  %1206 = load ptr, ptr %1205, align 8, !tbaa !19
  %1207 = load i32, ptr %22, align 4, !tbaa !9
  %1208 = zext i32 %1207 to i64
  %1209 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1206, i64 %1208
  %1210 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1209, i32 0, i32 1
  %1211 = load ptr, ptr %1210, align 8, !tbaa !20
  %1212 = load ptr, ptr %5, align 8, !tbaa !5
  %1213 = getelementptr inbounds %struct.w2c_hermes, ptr %1212, i32 0, i32 7
  %1214 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1213, i32 0, i32 0
  %1215 = load ptr, ptr %1214, align 8, !tbaa !19
  %1216 = load i32, ptr %22, align 4, !tbaa !9
  %1217 = zext i32 %1216 to i64
  %1218 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1215, i64 %1217
  %1219 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1218, i32 0, i32 2
  %1220 = load ptr, ptr %1219, align 8, !tbaa !23
  %1221 = load i32, ptr %19, align 4, !tbaa !9
  %1222 = load i32, ptr %20, align 4, !tbaa !9
  %1223 = load i32, ptr %21, align 4, !tbaa !9
  call void %1211(ptr noundef %1220, i32 noundef %1221, i32 noundef %1222, i32 noundef %1223)
  %1224 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1224, ptr %19, align 4, !tbaa !9
  %1225 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1225, ptr %20, align 4, !tbaa !9
  store i32 712, ptr %21, align 4, !tbaa !9
  %1226 = load i32, ptr %21, align 4, !tbaa !9
  %1227 = load i32, ptr %20, align 4, !tbaa !9
  %1228 = add i32 %1227, %1226
  store i32 %1228, ptr %20, align 4, !tbaa !9
  store i32 55765, ptr %21, align 4, !tbaa !9
  %1229 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1229, ptr %22, align 4, !tbaa !9
  %1230 = load ptr, ptr %5, align 8, !tbaa !5
  %1231 = getelementptr inbounds %struct.w2c_hermes, ptr %1230, i32 0, i32 6
  %1232 = load i32, ptr %22, align 4, !tbaa !9
  %1233 = zext i32 %1232 to i64
  %1234 = call i32 @i32_load(ptr noundef %1231, i64 noundef %1233)
  store i32 %1234, ptr %22, align 4, !tbaa !9
  %1235 = load ptr, ptr %5, align 8, !tbaa !5
  %1236 = getelementptr inbounds %struct.w2c_hermes, ptr %1235, i32 0, i32 6
  %1237 = load i32, ptr %22, align 4, !tbaa !9
  %1238 = zext i32 %1237 to i64
  %1239 = add i64 %1238, 36
  %1240 = call i32 @i32_load(ptr noundef %1236, i64 noundef %1239)
  store i32 %1240, ptr %22, align 4, !tbaa !9
  %1241 = load i32, ptr %22, align 4, !tbaa !9
  %1242 = load ptr, ptr %5, align 8, !tbaa !5
  %1243 = getelementptr inbounds %struct.w2c_hermes, ptr %1242, i32 0, i32 7
  %1244 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1243, i32 0, i32 2
  %1245 = load i32, ptr %1244, align 4, !tbaa !18
  %1246 = icmp ult i32 %1241, %1245
  br i1 %1246, label %1247, label %1270

1247:                                             ; preds = %1200
  %1248 = load ptr, ptr %5, align 8, !tbaa !5
  %1249 = getelementptr inbounds %struct.w2c_hermes, ptr %1248, i32 0, i32 7
  %1250 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1249, i32 0, i32 0
  %1251 = load ptr, ptr %1250, align 8, !tbaa !19
  %1252 = load i32, ptr %22, align 4, !tbaa !9
  %1253 = zext i32 %1252 to i64
  %1254 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1251, i64 %1253
  %1255 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1254, i32 0, i32 1
  %1256 = load ptr, ptr %1255, align 8, !tbaa !20
  %1257 = icmp ne ptr %1256, null
  br i1 %1257, label %1258, label %1270

1258:                                             ; preds = %1247
  %1259 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1260 = load ptr, ptr %5, align 8, !tbaa !5
  %1261 = getelementptr inbounds %struct.w2c_hermes, ptr %1260, i32 0, i32 7
  %1262 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1261, i32 0, i32 0
  %1263 = load ptr, ptr %1262, align 8, !tbaa !19
  %1264 = load i32, ptr %22, align 4, !tbaa !9
  %1265 = zext i32 %1264 to i64
  %1266 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1263, i64 %1265
  %1267 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1266, i32 0, i32 0
  %1268 = load ptr, ptr %1267, align 8, !tbaa !22
  %1269 = call zeroext i1 @func_types_eq(ptr noundef %1259, ptr noundef %1268)
  br label %1270

1270:                                             ; preds = %1258, %1247, %1200
  %1271 = phi i1 [ false, %1247 ], [ false, %1200 ], [ %1269, %1258 ]
  %1272 = xor i1 %1271, true
  %1273 = xor i1 %1272, true
  %1274 = zext i1 %1273 to i32
  %1275 = sext i32 %1274 to i64
  %1276 = call i64 @llvm.expect.i64(i64 %1275, i64 1)
  %1277 = icmp ne i64 %1276, 0
  br i1 %1277, label %1280, label %1278

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

1279:                                             ; No predecessors!
  br label %1280

1280:                                             ; preds = %1279, %1270
  %1281 = phi i1 [ true, %1270 ], [ false, %1279 ]
  %1282 = zext i1 %1281 to i32
  %1283 = load ptr, ptr %5, align 8, !tbaa !5
  %1284 = getelementptr inbounds %struct.w2c_hermes, ptr %1283, i32 0, i32 7
  %1285 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1284, i32 0, i32 0
  %1286 = load ptr, ptr %1285, align 8, !tbaa !19
  %1287 = load i32, ptr %22, align 4, !tbaa !9
  %1288 = zext i32 %1287 to i64
  %1289 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1286, i64 %1288
  %1290 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1289, i32 0, i32 1
  %1291 = load ptr, ptr %1290, align 8, !tbaa !20
  %1292 = load ptr, ptr %5, align 8, !tbaa !5
  %1293 = getelementptr inbounds %struct.w2c_hermes, ptr %1292, i32 0, i32 7
  %1294 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1293, i32 0, i32 0
  %1295 = load ptr, ptr %1294, align 8, !tbaa !19
  %1296 = load i32, ptr %22, align 4, !tbaa !9
  %1297 = zext i32 %1296 to i64
  %1298 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1295, i64 %1297
  %1299 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1298, i32 0, i32 2
  %1300 = load ptr, ptr %1299, align 8, !tbaa !23
  %1301 = load i32, ptr %19, align 4, !tbaa !9
  %1302 = load i32, ptr %20, align 4, !tbaa !9
  %1303 = load i32, ptr %21, align 4, !tbaa !9
  call void %1291(ptr noundef %1300, i32 noundef %1301, i32 noundef %1302, i32 noundef %1303)
  %1304 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1304, ptr %19, align 4, !tbaa !9
  %1305 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1305, ptr %20, align 4, !tbaa !9
  store i32 720, ptr %21, align 4, !tbaa !9
  %1306 = load i32, ptr %21, align 4, !tbaa !9
  %1307 = load i32, ptr %20, align 4, !tbaa !9
  %1308 = add i32 %1307, %1306
  store i32 %1308, ptr %20, align 4, !tbaa !9
  store i32 55793, ptr %21, align 4, !tbaa !9
  %1309 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1309, ptr %22, align 4, !tbaa !9
  %1310 = load ptr, ptr %5, align 8, !tbaa !5
  %1311 = getelementptr inbounds %struct.w2c_hermes, ptr %1310, i32 0, i32 6
  %1312 = load i32, ptr %22, align 4, !tbaa !9
  %1313 = zext i32 %1312 to i64
  %1314 = call i32 @i32_load(ptr noundef %1311, i64 noundef %1313)
  store i32 %1314, ptr %22, align 4, !tbaa !9
  %1315 = load ptr, ptr %5, align 8, !tbaa !5
  %1316 = getelementptr inbounds %struct.w2c_hermes, ptr %1315, i32 0, i32 6
  %1317 = load i32, ptr %22, align 4, !tbaa !9
  %1318 = zext i32 %1317 to i64
  %1319 = add i64 %1318, 36
  %1320 = call i32 @i32_load(ptr noundef %1316, i64 noundef %1319)
  store i32 %1320, ptr %22, align 4, !tbaa !9
  %1321 = load i32, ptr %22, align 4, !tbaa !9
  %1322 = load ptr, ptr %5, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.w2c_hermes, ptr %1322, i32 0, i32 7
  %1324 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1323, i32 0, i32 2
  %1325 = load i32, ptr %1324, align 4, !tbaa !18
  %1326 = icmp ult i32 %1321, %1325
  br i1 %1326, label %1327, label %1350

1327:                                             ; preds = %1280
  %1328 = load ptr, ptr %5, align 8, !tbaa !5
  %1329 = getelementptr inbounds %struct.w2c_hermes, ptr %1328, i32 0, i32 7
  %1330 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1329, i32 0, i32 0
  %1331 = load ptr, ptr %1330, align 8, !tbaa !19
  %1332 = load i32, ptr %22, align 4, !tbaa !9
  %1333 = zext i32 %1332 to i64
  %1334 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1331, i64 %1333
  %1335 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1334, i32 0, i32 1
  %1336 = load ptr, ptr %1335, align 8, !tbaa !20
  %1337 = icmp ne ptr %1336, null
  br i1 %1337, label %1338, label %1350

1338:                                             ; preds = %1327
  %1339 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1340 = load ptr, ptr %5, align 8, !tbaa !5
  %1341 = getelementptr inbounds %struct.w2c_hermes, ptr %1340, i32 0, i32 7
  %1342 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1341, i32 0, i32 0
  %1343 = load ptr, ptr %1342, align 8, !tbaa !19
  %1344 = load i32, ptr %22, align 4, !tbaa !9
  %1345 = zext i32 %1344 to i64
  %1346 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1343, i64 %1345
  %1347 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1346, i32 0, i32 0
  %1348 = load ptr, ptr %1347, align 8, !tbaa !22
  %1349 = call zeroext i1 @func_types_eq(ptr noundef %1339, ptr noundef %1348)
  br label %1350

1350:                                             ; preds = %1338, %1327, %1280
  %1351 = phi i1 [ false, %1327 ], [ false, %1280 ], [ %1349, %1338 ]
  %1352 = xor i1 %1351, true
  %1353 = xor i1 %1352, true
  %1354 = zext i1 %1353 to i32
  %1355 = sext i32 %1354 to i64
  %1356 = call i64 @llvm.expect.i64(i64 %1355, i64 1)
  %1357 = icmp ne i64 %1356, 0
  br i1 %1357, label %1360, label %1358

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

1359:                                             ; No predecessors!
  br label %1360

1360:                                             ; preds = %1359, %1350
  %1361 = phi i1 [ true, %1350 ], [ false, %1359 ]
  %1362 = zext i1 %1361 to i32
  %1363 = load ptr, ptr %5, align 8, !tbaa !5
  %1364 = getelementptr inbounds %struct.w2c_hermes, ptr %1363, i32 0, i32 7
  %1365 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1364, i32 0, i32 0
  %1366 = load ptr, ptr %1365, align 8, !tbaa !19
  %1367 = load i32, ptr %22, align 4, !tbaa !9
  %1368 = zext i32 %1367 to i64
  %1369 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1366, i64 %1368
  %1370 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1369, i32 0, i32 1
  %1371 = load ptr, ptr %1370, align 8, !tbaa !20
  %1372 = load ptr, ptr %5, align 8, !tbaa !5
  %1373 = getelementptr inbounds %struct.w2c_hermes, ptr %1372, i32 0, i32 7
  %1374 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1373, i32 0, i32 0
  %1375 = load ptr, ptr %1374, align 8, !tbaa !19
  %1376 = load i32, ptr %22, align 4, !tbaa !9
  %1377 = zext i32 %1376 to i64
  %1378 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1375, i64 %1377
  %1379 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1378, i32 0, i32 2
  %1380 = load ptr, ptr %1379, align 8, !tbaa !23
  %1381 = load i32, ptr %19, align 4, !tbaa !9
  %1382 = load i32, ptr %20, align 4, !tbaa !9
  %1383 = load i32, ptr %21, align 4, !tbaa !9
  call void %1371(ptr noundef %1380, i32 noundef %1381, i32 noundef %1382, i32 noundef %1383)
  %1384 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1384, ptr %19, align 4, !tbaa !9
  %1385 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1385, ptr %20, align 4, !tbaa !9
  %1386 = load ptr, ptr %5, align 8, !tbaa !5
  %1387 = getelementptr inbounds %struct.w2c_hermes, ptr %1386, i32 0, i32 6
  %1388 = load i32, ptr %20, align 4, !tbaa !9
  %1389 = zext i32 %1388 to i64
  %1390 = call i32 @i32_load(ptr noundef %1387, i64 noundef %1389)
  store i32 %1390, ptr %20, align 4, !tbaa !9
  %1391 = load ptr, ptr %5, align 8, !tbaa !5
  %1392 = getelementptr inbounds %struct.w2c_hermes, ptr %1391, i32 0, i32 6
  %1393 = load i32, ptr %20, align 4, !tbaa !9
  %1394 = zext i32 %1393 to i64
  %1395 = add i64 %1394, 12
  %1396 = call i32 @i32_load(ptr noundef %1392, i64 noundef %1395)
  store i32 %1396, ptr %20, align 4, !tbaa !9
  %1397 = load i32, ptr %20, align 4, !tbaa !9
  %1398 = load ptr, ptr %5, align 8, !tbaa !5
  %1399 = getelementptr inbounds %struct.w2c_hermes, ptr %1398, i32 0, i32 7
  %1400 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1399, i32 0, i32 2
  %1401 = load i32, ptr %1400, align 4, !tbaa !18
  %1402 = icmp ult i32 %1397, %1401
  br i1 %1402, label %1403, label %1426

1403:                                             ; preds = %1360
  %1404 = load ptr, ptr %5, align 8, !tbaa !5
  %1405 = getelementptr inbounds %struct.w2c_hermes, ptr %1404, i32 0, i32 7
  %1406 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1405, i32 0, i32 0
  %1407 = load ptr, ptr %1406, align 8, !tbaa !19
  %1408 = load i32, ptr %20, align 4, !tbaa !9
  %1409 = zext i32 %1408 to i64
  %1410 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1407, i64 %1409
  %1411 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1410, i32 0, i32 1
  %1412 = load ptr, ptr %1411, align 8, !tbaa !20
  %1413 = icmp ne ptr %1412, null
  br i1 %1413, label %1414, label %1426

1414:                                             ; preds = %1403
  %1415 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %1416 = load ptr, ptr %5, align 8, !tbaa !5
  %1417 = getelementptr inbounds %struct.w2c_hermes, ptr %1416, i32 0, i32 7
  %1418 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1417, i32 0, i32 0
  %1419 = load ptr, ptr %1418, align 8, !tbaa !19
  %1420 = load i32, ptr %20, align 4, !tbaa !9
  %1421 = zext i32 %1420 to i64
  %1422 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1419, i64 %1421
  %1423 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1422, i32 0, i32 0
  %1424 = load ptr, ptr %1423, align 8, !tbaa !22
  %1425 = call zeroext i1 @func_types_eq(ptr noundef %1415, ptr noundef %1424)
  br label %1426

1426:                                             ; preds = %1414, %1403, %1360
  %1427 = phi i1 [ false, %1403 ], [ false, %1360 ], [ %1425, %1414 ]
  %1428 = xor i1 %1427, true
  %1429 = xor i1 %1428, true
  %1430 = zext i1 %1429 to i32
  %1431 = sext i32 %1430 to i64
  %1432 = call i64 @llvm.expect.i64(i64 %1431, i64 1)
  %1433 = icmp ne i64 %1432, 0
  br i1 %1433, label %1436, label %1434

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

1435:                                             ; No predecessors!
  br label %1436

1436:                                             ; preds = %1435, %1426
  %1437 = phi i1 [ true, %1426 ], [ false, %1435 ]
  %1438 = zext i1 %1437 to i32
  %1439 = load ptr, ptr %5, align 8, !tbaa !5
  %1440 = getelementptr inbounds %struct.w2c_hermes, ptr %1439, i32 0, i32 7
  %1441 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1440, i32 0, i32 0
  %1442 = load ptr, ptr %1441, align 8, !tbaa !19
  %1443 = load i32, ptr %20, align 4, !tbaa !9
  %1444 = zext i32 %1443 to i64
  %1445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1442, i64 %1444
  %1446 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1445, i32 0, i32 1
  %1447 = load ptr, ptr %1446, align 8, !tbaa !20
  %1448 = load ptr, ptr %5, align 8, !tbaa !5
  %1449 = getelementptr inbounds %struct.w2c_hermes, ptr %1448, i32 0, i32 7
  %1450 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1449, i32 0, i32 0
  %1451 = load ptr, ptr %1450, align 8, !tbaa !19
  %1452 = load i32, ptr %20, align 4, !tbaa !9
  %1453 = zext i32 %1452 to i64
  %1454 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1451, i64 %1453
  %1455 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1454, i32 0, i32 2
  %1456 = load ptr, ptr %1455, align 8, !tbaa !23
  %1457 = load i32, ptr %19, align 4, !tbaa !9
  call void %1447(ptr noundef %1456, i32 noundef %1457)
  %1458 = load ptr, ptr %5, align 8, !tbaa !5
  %1459 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %1458)
  store i64 %1459, ptr %24, align 8, !tbaa !11
  %1460 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %1460, ptr %18, align 8, !tbaa !11
  %1461 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1461, ptr %19, align 4, !tbaa !9
  store i32 5328, ptr %20, align 4, !tbaa !9
  %1462 = load i32, ptr %20, align 4, !tbaa !9
  %1463 = load i32, ptr %19, align 4, !tbaa !9
  %1464 = add i32 %1463, %1462
  store i32 %1464, ptr %19, align 4, !tbaa !9
  %1465 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1465, ptr %9, align 4, !tbaa !9
  %1466 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1466, ptr %20, align 4, !tbaa !9
  %1467 = load ptr, ptr %5, align 8, !tbaa !5
  %1468 = getelementptr inbounds %struct.w2c_hermes, ptr %1467, i32 0, i32 6
  %1469 = load i32, ptr %20, align 4, !tbaa !9
  %1470 = zext i32 %1469 to i64
  %1471 = call double @f64_load(ptr noundef %1468, i64 noundef %1470)
  store double %1471, ptr %28, align 8, !tbaa !24
  %1472 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %1472, ptr %26, align 8, !tbaa !11
  %1473 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %1473, ptr %27, align 8, !tbaa !11
  %1474 = load i64, ptr %27, align 8, !tbaa !11
  %1475 = load i64, ptr %26, align 8, !tbaa !11
  %1476 = sub i64 %1475, %1474
  store i64 %1476, ptr %26, align 8, !tbaa !11
  %1477 = load i64, ptr %26, align 8, !tbaa !11
  %1478 = sitofp i64 %1477 to double
  store double %1478, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %1479 = load double, ptr %30, align 8, !tbaa !24
  %1480 = load double, ptr %29, align 8, !tbaa !24
  %1481 = fdiv double %1480, %1479
  store double %1481, ptr %29, align 8, !tbaa !24
  %1482 = load double, ptr %29, align 8, !tbaa !24
  %1483 = load double, ptr %28, align 8, !tbaa !24
  %1484 = fadd double %1483, %1482
  store double %1484, ptr %28, align 8, !tbaa !24
  %1485 = load ptr, ptr %5, align 8, !tbaa !5
  %1486 = getelementptr inbounds %struct.w2c_hermes, ptr %1485, i32 0, i32 6
  %1487 = load i32, ptr %19, align 4, !tbaa !9
  %1488 = zext i32 %1487 to i64
  %1489 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %1486, i64 noundef %1488, double noundef %1489)
  %1490 = load ptr, ptr %5, align 8, !tbaa !5
  %1491 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %1490)
  store i64 %1491, ptr %24, align 8, !tbaa !11
  %1492 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %1492, ptr %17, align 8, !tbaa !11
  %1493 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1493, ptr %19, align 4, !tbaa !9
  store i32 2, ptr %20, align 4, !tbaa !9
  %1494 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1494, ptr %21, align 4, !tbaa !9
  %1495 = load ptr, ptr %5, align 8, !tbaa !5
  %1496 = getelementptr inbounds %struct.w2c_hermes, ptr %1495, i32 0, i32 6
  %1497 = load i32, ptr %21, align 4, !tbaa !9
  %1498 = zext i32 %1497 to i64
  %1499 = call i32 @i32_load(ptr noundef %1496, i64 noundef %1498)
  store i32 %1499, ptr %21, align 4, !tbaa !9
  %1500 = load ptr, ptr %5, align 8, !tbaa !5
  %1501 = getelementptr inbounds %struct.w2c_hermes, ptr %1500, i32 0, i32 6
  %1502 = load i32, ptr %21, align 4, !tbaa !9
  %1503 = zext i32 %1502 to i64
  %1504 = add i64 %1503, 8
  %1505 = call i32 @i32_load(ptr noundef %1501, i64 noundef %1504)
  store i32 %1505, ptr %21, align 4, !tbaa !9
  %1506 = load i32, ptr %21, align 4, !tbaa !9
  %1507 = load ptr, ptr %5, align 8, !tbaa !5
  %1508 = getelementptr inbounds %struct.w2c_hermes, ptr %1507, i32 0, i32 7
  %1509 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1508, i32 0, i32 2
  %1510 = load i32, ptr %1509, align 4, !tbaa !18
  %1511 = icmp ult i32 %1506, %1510
  br i1 %1511, label %1512, label %1535

1512:                                             ; preds = %1436
  %1513 = load ptr, ptr %5, align 8, !tbaa !5
  %1514 = getelementptr inbounds %struct.w2c_hermes, ptr %1513, i32 0, i32 7
  %1515 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1514, i32 0, i32 0
  %1516 = load ptr, ptr %1515, align 8, !tbaa !19
  %1517 = load i32, ptr %21, align 4, !tbaa !9
  %1518 = zext i32 %1517 to i64
  %1519 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1516, i64 %1518
  %1520 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1519, i32 0, i32 1
  %1521 = load ptr, ptr %1520, align 8, !tbaa !20
  %1522 = icmp ne ptr %1521, null
  br i1 %1522, label %1523, label %1535

1523:                                             ; preds = %1512
  %1524 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %1525 = load ptr, ptr %5, align 8, !tbaa !5
  %1526 = getelementptr inbounds %struct.w2c_hermes, ptr %1525, i32 0, i32 7
  %1527 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1526, i32 0, i32 0
  %1528 = load ptr, ptr %1527, align 8, !tbaa !19
  %1529 = load i32, ptr %21, align 4, !tbaa !9
  %1530 = zext i32 %1529 to i64
  %1531 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1528, i64 %1530
  %1532 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1531, i32 0, i32 0
  %1533 = load ptr, ptr %1532, align 8, !tbaa !22
  %1534 = call zeroext i1 @func_types_eq(ptr noundef %1524, ptr noundef %1533)
  br label %1535

1535:                                             ; preds = %1523, %1512, %1436
  %1536 = phi i1 [ false, %1512 ], [ false, %1436 ], [ %1534, %1523 ]
  %1537 = xor i1 %1536, true
  %1538 = xor i1 %1537, true
  %1539 = zext i1 %1538 to i32
  %1540 = sext i32 %1539 to i64
  %1541 = call i64 @llvm.expect.i64(i64 %1540, i64 1)
  %1542 = icmp ne i64 %1541, 0
  br i1 %1542, label %1545, label %1543

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

1544:                                             ; No predecessors!
  br label %1545

1545:                                             ; preds = %1544, %1535
  %1546 = phi i1 [ true, %1535 ], [ false, %1544 ]
  %1547 = zext i1 %1546 to i32
  %1548 = load ptr, ptr %5, align 8, !tbaa !5
  %1549 = getelementptr inbounds %struct.w2c_hermes, ptr %1548, i32 0, i32 7
  %1550 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1549, i32 0, i32 0
  %1551 = load ptr, ptr %1550, align 8, !tbaa !19
  %1552 = load i32, ptr %21, align 4, !tbaa !9
  %1553 = zext i32 %1552 to i64
  %1554 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1551, i64 %1553
  %1555 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1554, i32 0, i32 1
  %1556 = load ptr, ptr %1555, align 8, !tbaa !20
  %1557 = load ptr, ptr %5, align 8, !tbaa !5
  %1558 = getelementptr inbounds %struct.w2c_hermes, ptr %1557, i32 0, i32 7
  %1559 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1558, i32 0, i32 0
  %1560 = load ptr, ptr %1559, align 8, !tbaa !19
  %1561 = load i32, ptr %21, align 4, !tbaa !9
  %1562 = zext i32 %1561 to i64
  %1563 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1560, i64 %1562
  %1564 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1563, i32 0, i32 2
  %1565 = load ptr, ptr %1564, align 8, !tbaa !23
  %1566 = load i32, ptr %19, align 4, !tbaa !9
  %1567 = load i32, ptr %20, align 4, !tbaa !9
  call void %1556(ptr noundef %1565, i32 noundef %1566, i32 noundef %1567)
  %1568 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1568, ptr %19, align 4, !tbaa !9
  %1569 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1569, ptr %20, align 4, !tbaa !9
  store i32 688, ptr %21, align 4, !tbaa !9
  %1570 = load i32, ptr %21, align 4, !tbaa !9
  %1571 = load i32, ptr %20, align 4, !tbaa !9
  %1572 = add i32 %1571, %1570
  store i32 %1572, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %21, align 4, !tbaa !9
  %1573 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1573, ptr %22, align 4, !tbaa !9
  %1574 = load ptr, ptr %5, align 8, !tbaa !5
  %1575 = getelementptr inbounds %struct.w2c_hermes, ptr %1574, i32 0, i32 6
  %1576 = load i32, ptr %22, align 4, !tbaa !9
  %1577 = zext i32 %1576 to i64
  %1578 = call i32 @i32_load(ptr noundef %1575, i64 noundef %1577)
  store i32 %1578, ptr %22, align 4, !tbaa !9
  %1579 = load ptr, ptr %5, align 8, !tbaa !5
  %1580 = getelementptr inbounds %struct.w2c_hermes, ptr %1579, i32 0, i32 6
  %1581 = load i32, ptr %22, align 4, !tbaa !9
  %1582 = zext i32 %1581 to i64
  %1583 = add i64 %1582, 36
  %1584 = call i32 @i32_load(ptr noundef %1580, i64 noundef %1583)
  store i32 %1584, ptr %22, align 4, !tbaa !9
  %1585 = load i32, ptr %22, align 4, !tbaa !9
  %1586 = load ptr, ptr %5, align 8, !tbaa !5
  %1587 = getelementptr inbounds %struct.w2c_hermes, ptr %1586, i32 0, i32 7
  %1588 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1587, i32 0, i32 2
  %1589 = load i32, ptr %1588, align 4, !tbaa !18
  %1590 = icmp ult i32 %1585, %1589
  br i1 %1590, label %1591, label %1614

1591:                                             ; preds = %1545
  %1592 = load ptr, ptr %5, align 8, !tbaa !5
  %1593 = getelementptr inbounds %struct.w2c_hermes, ptr %1592, i32 0, i32 7
  %1594 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1593, i32 0, i32 0
  %1595 = load ptr, ptr %1594, align 8, !tbaa !19
  %1596 = load i32, ptr %22, align 4, !tbaa !9
  %1597 = zext i32 %1596 to i64
  %1598 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1595, i64 %1597
  %1599 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1598, i32 0, i32 1
  %1600 = load ptr, ptr %1599, align 8, !tbaa !20
  %1601 = icmp ne ptr %1600, null
  br i1 %1601, label %1602, label %1614

1602:                                             ; preds = %1591
  %1603 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1604 = load ptr, ptr %5, align 8, !tbaa !5
  %1605 = getelementptr inbounds %struct.w2c_hermes, ptr %1604, i32 0, i32 7
  %1606 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1605, i32 0, i32 0
  %1607 = load ptr, ptr %1606, align 8, !tbaa !19
  %1608 = load i32, ptr %22, align 4, !tbaa !9
  %1609 = zext i32 %1608 to i64
  %1610 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1607, i64 %1609
  %1611 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1610, i32 0, i32 0
  %1612 = load ptr, ptr %1611, align 8, !tbaa !22
  %1613 = call zeroext i1 @func_types_eq(ptr noundef %1603, ptr noundef %1612)
  br label %1614

1614:                                             ; preds = %1602, %1591, %1545
  %1615 = phi i1 [ false, %1591 ], [ false, %1545 ], [ %1613, %1602 ]
  %1616 = xor i1 %1615, true
  %1617 = xor i1 %1616, true
  %1618 = zext i1 %1617 to i32
  %1619 = sext i32 %1618 to i64
  %1620 = call i64 @llvm.expect.i64(i64 %1619, i64 1)
  %1621 = icmp ne i64 %1620, 0
  br i1 %1621, label %1624, label %1622

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

1623:                                             ; No predecessors!
  br label %1624

1624:                                             ; preds = %1623, %1614
  %1625 = phi i1 [ true, %1614 ], [ false, %1623 ]
  %1626 = zext i1 %1625 to i32
  %1627 = load ptr, ptr %5, align 8, !tbaa !5
  %1628 = getelementptr inbounds %struct.w2c_hermes, ptr %1627, i32 0, i32 7
  %1629 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1628, i32 0, i32 0
  %1630 = load ptr, ptr %1629, align 8, !tbaa !19
  %1631 = load i32, ptr %22, align 4, !tbaa !9
  %1632 = zext i32 %1631 to i64
  %1633 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1630, i64 %1632
  %1634 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1633, i32 0, i32 1
  %1635 = load ptr, ptr %1634, align 8, !tbaa !20
  %1636 = load ptr, ptr %5, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.w2c_hermes, ptr %1636, i32 0, i32 7
  %1638 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1637, i32 0, i32 0
  %1639 = load ptr, ptr %1638, align 8, !tbaa !19
  %1640 = load i32, ptr %22, align 4, !tbaa !9
  %1641 = zext i32 %1640 to i64
  %1642 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1639, i64 %1641
  %1643 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1642, i32 0, i32 2
  %1644 = load ptr, ptr %1643, align 8, !tbaa !23
  %1645 = load i32, ptr %19, align 4, !tbaa !9
  %1646 = load i32, ptr %20, align 4, !tbaa !9
  %1647 = load i32, ptr %21, align 4, !tbaa !9
  call void %1635(ptr noundef %1644, i32 noundef %1645, i32 noundef %1646, i32 noundef %1647)
  %1648 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1648, ptr %19, align 4, !tbaa !9
  store i32 5564, ptr %20, align 4, !tbaa !9
  %1649 = load i32, ptr %20, align 4, !tbaa !9
  %1650 = load i32, ptr %19, align 4, !tbaa !9
  %1651 = add i32 %1650, %1649
  store i32 %1651, ptr %19, align 4, !tbaa !9
  %1652 = load ptr, ptr %5, align 8, !tbaa !5
  %1653 = getelementptr inbounds %struct.w2c_hermes, ptr %1652, i32 0, i32 6
  %1654 = load i32, ptr %19, align 4, !tbaa !9
  %1655 = zext i32 %1654 to i64
  %1656 = call i32 @i32_load(ptr noundef %1653, i64 noundef %1655)
  store i32 %1656, ptr %19, align 4, !tbaa !9
  %1657 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1657, ptr %10, align 4, !tbaa !9
  %1658 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1658, ptr %20, align 4, !tbaa !9
  store i32 5560, ptr %21, align 4, !tbaa !9
  %1659 = load i32, ptr %21, align 4, !tbaa !9
  %1660 = load i32, ptr %20, align 4, !tbaa !9
  %1661 = add i32 %1660, %1659
  store i32 %1661, ptr %20, align 4, !tbaa !9
  %1662 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1662, ptr %16, align 4, !tbaa !9
  %1663 = load i32, ptr %19, align 4, !tbaa !9
  %1664 = load i32, ptr %20, align 4, !tbaa !9
  %1665 = icmp ne i32 %1663, %1664
  %1666 = zext i1 %1665 to i32
  store i32 %1666, ptr %19, align 4, !tbaa !9
  %1667 = load i32, ptr %19, align 4, !tbaa !9
  %1668 = icmp ne i32 %1667, 0
  br i1 %1668, label %1669, label %2093

1669:                                             ; preds = %1624
  br label %1670

1670:                                             ; preds = %2091, %1669
  %1671 = load ptr, ptr %5, align 8, !tbaa !5
  %1672 = getelementptr inbounds %struct.w2c_hermes, ptr %1671, i32 0, i32 3
  %1673 = load i32, ptr %1672, align 8, !tbaa !13
  store i32 %1673, ptr %19, align 4, !tbaa !9
  store i32 16, ptr %20, align 4, !tbaa !9
  %1674 = load i32, ptr %20, align 4, !tbaa !9
  %1675 = load i32, ptr %19, align 4, !tbaa !9
  %1676 = sub i32 %1675, %1674
  store i32 %1676, ptr %19, align 4, !tbaa !9
  %1677 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1677, ptr %15, align 4, !tbaa !9
  %1678 = load i32, ptr %19, align 4, !tbaa !9
  %1679 = load ptr, ptr %5, align 8, !tbaa !5
  %1680 = getelementptr inbounds %struct.w2c_hermes, ptr %1679, i32 0, i32 3
  store i32 %1678, ptr %1680, align 8, !tbaa !13
  %1681 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1681, ptr %19, align 4, !tbaa !9
  %1682 = load ptr, ptr %5, align 8, !tbaa !5
  %1683 = getelementptr inbounds %struct.w2c_hermes, ptr %1682, i32 0, i32 6
  %1684 = load i32, ptr %19, align 4, !tbaa !9
  %1685 = zext i32 %1684 to i64
  %1686 = add i64 %1685, 84
  %1687 = call i32 @i32_load(ptr noundef %1683, i64 noundef %1686)
  store i32 %1687, ptr %19, align 4, !tbaa !9
  %1688 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1688, ptr %11, align 4, !tbaa !9
  %1689 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1689, ptr %20, align 4, !tbaa !9
  %1690 = load ptr, ptr %5, align 8, !tbaa !5
  %1691 = getelementptr inbounds %struct.w2c_hermes, ptr %1690, i32 0, i32 6
  %1692 = load i32, ptr %20, align 4, !tbaa !9
  %1693 = zext i32 %1692 to i64
  %1694 = add i64 %1693, 96
  %1695 = call i32 @i32_load(ptr noundef %1691, i64 noundef %1694)
  store i32 %1695, ptr %20, align 4, !tbaa !9
  %1696 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1696, ptr %13, align 4, !tbaa !9
  store i32 3, ptr %21, align 4, !tbaa !9
  %1697 = load i32, ptr %21, align 4, !tbaa !9
  %1698 = and i32 %1697, 31
  %1699 = load i32, ptr %20, align 4, !tbaa !9
  %1700 = shl i32 %1699, %1698
  store i32 %1700, ptr %20, align 4, !tbaa !9
  %1701 = load i32, ptr %20, align 4, !tbaa !9
  %1702 = load i32, ptr %19, align 4, !tbaa !9
  %1703 = add i32 %1702, %1701
  store i32 %1703, ptr %19, align 4, !tbaa !9
  %1704 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1704, ptr %12, align 4, !tbaa !9
  %1705 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1705, ptr %19, align 4, !tbaa !9
  %1706 = load ptr, ptr %5, align 8, !tbaa !5
  %1707 = getelementptr inbounds %struct.w2c_hermes, ptr %1706, i32 0, i32 6
  %1708 = load i32, ptr %19, align 4, !tbaa !9
  %1709 = zext i32 %1708 to i64
  %1710 = add i64 %1709, 88
  %1711 = call i32 @i32_load(ptr noundef %1707, i64 noundef %1710)
  store i32 %1711, ptr %19, align 4, !tbaa !9
  %1712 = load i32, ptr %19, align 4, !tbaa !9
  %1713 = icmp ne i32 %1712, 0
  br i1 %1713, label %1714, label %1758

1714:                                             ; preds = %1670
  %1715 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1715, ptr %19, align 4, !tbaa !9
  %1716 = load i32, ptr %19, align 4, !tbaa !9
  %1717 = icmp ne i32 %1716, 0
  %1718 = xor i1 %1717, true
  %1719 = zext i1 %1718 to i32
  store i32 %1719, ptr %19, align 4, !tbaa !9
  %1720 = load i32, ptr %19, align 4, !tbaa !9
  %1721 = icmp ne i32 %1720, 0
  br i1 %1721, label %1722, label %1726

1722:                                             ; preds = %1714
  store i32 0, ptr %19, align 4, !tbaa !9
  %1723 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1723, ptr %13, align 4, !tbaa !9
  %1724 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1724, ptr %19, align 4, !tbaa !9
  %1725 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1725, ptr %9, align 4, !tbaa !9
  br label %1761

1726:                                             ; preds = %1714
  %1727 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1727, ptr %19, align 4, !tbaa !9
  %1728 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1728, ptr %9, align 4, !tbaa !9
  br label %1729

1729:                                             ; preds = %1756, %1726
  %1730 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1730, ptr %19, align 4, !tbaa !9
  %1731 = load ptr, ptr %5, align 8, !tbaa !5
  %1732 = getelementptr inbounds %struct.w2c_hermes, ptr %1731, i32 0, i32 6
  %1733 = load i32, ptr %19, align 4, !tbaa !9
  %1734 = zext i32 %1733 to i64
  %1735 = call i32 @i32_load(ptr noundef %1732, i64 noundef %1734)
  store i32 %1735, ptr %19, align 4, !tbaa !9
  store i32 -2, ptr %20, align 4, !tbaa !9
  %1736 = load i32, ptr %19, align 4, !tbaa !9
  %1737 = load i32, ptr %20, align 4, !tbaa !9
  %1738 = icmp ult i32 %1736, %1737
  %1739 = zext i1 %1738 to i32
  store i32 %1739, ptr %19, align 4, !tbaa !9
  %1740 = load i32, ptr %19, align 4, !tbaa !9
  %1741 = icmp ne i32 %1740, 0
  br i1 %1741, label %1742, label %1743

1742:                                             ; preds = %1729
  br label %1761

1743:                                             ; preds = %1729
  %1744 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1744, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %1745 = load i32, ptr %20, align 4, !tbaa !9
  %1746 = load i32, ptr %19, align 4, !tbaa !9
  %1747 = add i32 %1746, %1745
  store i32 %1747, ptr %19, align 4, !tbaa !9
  %1748 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1748, ptr %9, align 4, !tbaa !9
  %1749 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1749, ptr %20, align 4, !tbaa !9
  %1750 = load i32, ptr %19, align 4, !tbaa !9
  %1751 = load i32, ptr %20, align 4, !tbaa !9
  %1752 = icmp ne i32 %1750, %1751
  %1753 = zext i1 %1752 to i32
  store i32 %1753, ptr %19, align 4, !tbaa !9
  %1754 = load i32, ptr %19, align 4, !tbaa !9
  %1755 = icmp ne i32 %1754, 0
  br i1 %1755, label %1756, label %1757

1756:                                             ; preds = %1743
  br label %1729

1757:                                             ; preds = %1743
  br label %1758

1758:                                             ; preds = %1757, %1670
  %1759 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1759, ptr %19, align 4, !tbaa !9
  %1760 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1760, ptr %9, align 4, !tbaa !9
  br label %1761

1761:                                             ; preds = %1758, %1742, %1722
  %1762 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1762, ptr %19, align 4, !tbaa !9
  %1763 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1763, ptr %20, align 4, !tbaa !9
  store i32 3, ptr %21, align 4, !tbaa !9
  %1764 = load i32, ptr %21, align 4, !tbaa !9
  %1765 = and i32 %1764, 31
  %1766 = load i32, ptr %20, align 4, !tbaa !9
  %1767 = shl i32 %1766, %1765
  store i32 %1767, ptr %20, align 4, !tbaa !9
  %1768 = load i32, ptr %20, align 4, !tbaa !9
  %1769 = load i32, ptr %19, align 4, !tbaa !9
  %1770 = add i32 %1769, %1768
  store i32 %1770, ptr %19, align 4, !tbaa !9
  %1771 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1771, ptr %11, align 4, !tbaa !9
  %1772 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1772, ptr %20, align 4, !tbaa !9
  %1773 = load i32, ptr %19, align 4, !tbaa !9
  %1774 = load i32, ptr %20, align 4, !tbaa !9
  %1775 = icmp ne i32 %1773, %1774
  %1776 = zext i1 %1775 to i32
  store i32 %1776, ptr %19, align 4, !tbaa !9
  %1777 = load i32, ptr %19, align 4, !tbaa !9
  %1778 = icmp ne i32 %1777, 0
  br i1 %1778, label %1779, label %1917

1779:                                             ; preds = %1761
  br label %1780

1780:                                             ; preds = %1915, %1779
  %1781 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1781, ptr %19, align 4, !tbaa !9
  %1782 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1782, ptr %20, align 4, !tbaa !9
  store i32 4, ptr %21, align 4, !tbaa !9
  %1783 = load i32, ptr %21, align 4, !tbaa !9
  %1784 = load i32, ptr %20, align 4, !tbaa !9
  %1785 = add i32 %1784, %1783
  store i32 %1785, ptr %20, align 4, !tbaa !9
  %1786 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1786, ptr %21, align 4, !tbaa !9
  %1787 = load ptr, ptr %5, align 8, !tbaa !5
  %1788 = getelementptr inbounds %struct.w2c_hermes, ptr %1787, i32 0, i32 6
  %1789 = load i32, ptr %21, align 4, !tbaa !9
  %1790 = zext i32 %1789 to i64
  %1791 = call i32 @i32_load(ptr noundef %1788, i64 noundef %1790)
  store i32 %1791, ptr %21, align 4, !tbaa !9
  %1792 = load ptr, ptr %5, align 8, !tbaa !5
  %1793 = getelementptr inbounds %struct.w2c_hermes, ptr %1792, i32 0, i32 6
  %1794 = load i32, ptr %21, align 4, !tbaa !9
  %1795 = zext i32 %1794 to i64
  %1796 = add i64 %1795, 16
  %1797 = call i32 @i32_load(ptr noundef %1793, i64 noundef %1796)
  store i32 %1797, ptr %21, align 4, !tbaa !9
  %1798 = load i32, ptr %21, align 4, !tbaa !9
  %1799 = load ptr, ptr %5, align 8, !tbaa !5
  %1800 = getelementptr inbounds %struct.w2c_hermes, ptr %1799, i32 0, i32 7
  %1801 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1800, i32 0, i32 2
  %1802 = load i32, ptr %1801, align 4, !tbaa !18
  %1803 = icmp ult i32 %1798, %1802
  br i1 %1803, label %1804, label %1827

1804:                                             ; preds = %1780
  %1805 = load ptr, ptr %5, align 8, !tbaa !5
  %1806 = getelementptr inbounds %struct.w2c_hermes, ptr %1805, i32 0, i32 7
  %1807 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1806, i32 0, i32 0
  %1808 = load ptr, ptr %1807, align 8, !tbaa !19
  %1809 = load i32, ptr %21, align 4, !tbaa !9
  %1810 = zext i32 %1809 to i64
  %1811 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1808, i64 %1810
  %1812 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1811, i32 0, i32 1
  %1813 = load ptr, ptr %1812, align 8, !tbaa !20
  %1814 = icmp ne ptr %1813, null
  br i1 %1814, label %1815, label %1827

1815:                                             ; preds = %1804
  %1816 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %1817 = load ptr, ptr %5, align 8, !tbaa !5
  %1818 = getelementptr inbounds %struct.w2c_hermes, ptr %1817, i32 0, i32 7
  %1819 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1818, i32 0, i32 0
  %1820 = load ptr, ptr %1819, align 8, !tbaa !19
  %1821 = load i32, ptr %21, align 4, !tbaa !9
  %1822 = zext i32 %1821 to i64
  %1823 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1820, i64 %1822
  %1824 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1823, i32 0, i32 0
  %1825 = load ptr, ptr %1824, align 8, !tbaa !22
  %1826 = call zeroext i1 @func_types_eq(ptr noundef %1816, ptr noundef %1825)
  br label %1827

1827:                                             ; preds = %1815, %1804, %1780
  %1828 = phi i1 [ false, %1804 ], [ false, %1780 ], [ %1826, %1815 ]
  %1829 = xor i1 %1828, true
  %1830 = xor i1 %1829, true
  %1831 = zext i1 %1830 to i32
  %1832 = sext i32 %1831 to i64
  %1833 = call i64 @llvm.expect.i64(i64 %1832, i64 1)
  %1834 = icmp ne i64 %1833, 0
  br i1 %1834, label %1837, label %1835

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

1836:                                             ; No predecessors!
  br label %1837

1837:                                             ; preds = %1836, %1827
  %1838 = phi i1 [ true, %1827 ], [ false, %1836 ]
  %1839 = zext i1 %1838 to i32
  %1840 = load ptr, ptr %5, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.w2c_hermes, ptr %1840, i32 0, i32 7
  %1842 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1841, i32 0, i32 0
  %1843 = load ptr, ptr %1842, align 8, !tbaa !19
  %1844 = load i32, ptr %21, align 4, !tbaa !9
  %1845 = zext i32 %1844 to i64
  %1846 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1843, i64 %1845
  %1847 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1846, i32 0, i32 1
  %1848 = load ptr, ptr %1847, align 8, !tbaa !20
  %1849 = load ptr, ptr %5, align 8, !tbaa !5
  %1850 = getelementptr inbounds %struct.w2c_hermes, ptr %1849, i32 0, i32 7
  %1851 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1850, i32 0, i32 0
  %1852 = load ptr, ptr %1851, align 8, !tbaa !19
  %1853 = load i32, ptr %21, align 4, !tbaa !9
  %1854 = zext i32 %1853 to i64
  %1855 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1852, i64 %1854
  %1856 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1855, i32 0, i32 2
  %1857 = load ptr, ptr %1856, align 8, !tbaa !23
  %1858 = load i32, ptr %19, align 4, !tbaa !9
  %1859 = load i32, ptr %20, align 4, !tbaa !9
  call void %1848(ptr noundef %1857, i32 noundef %1858, i32 noundef %1859)
  %1860 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1860, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %1861 = load i32, ptr %20, align 4, !tbaa !9
  %1862 = load i32, ptr %19, align 4, !tbaa !9
  %1863 = add i32 %1862, %1861
  store i32 %1863, ptr %19, align 4, !tbaa !9
  %1864 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1864, ptr %13, align 4, !tbaa !9
  %1865 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1865, ptr %20, align 4, !tbaa !9
  %1866 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1866, ptr %9, align 4, !tbaa !9
  %1867 = load i32, ptr %19, align 4, !tbaa !9
  %1868 = load i32, ptr %20, align 4, !tbaa !9
  %1869 = icmp eq i32 %1867, %1868
  %1870 = zext i1 %1869 to i32
  store i32 %1870, ptr %19, align 4, !tbaa !9
  %1871 = load i32, ptr %19, align 4, !tbaa !9
  %1872 = icmp ne i32 %1871, 0
  br i1 %1872, label %1873, label %1874

1873:                                             ; preds = %1837
  br label %1906

1874:                                             ; preds = %1837
  br label %1875

1875:                                             ; preds = %1904, %1874
  %1876 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1876, ptr %19, align 4, !tbaa !9
  %1877 = load ptr, ptr %5, align 8, !tbaa !5
  %1878 = getelementptr inbounds %struct.w2c_hermes, ptr %1877, i32 0, i32 6
  %1879 = load i32, ptr %19, align 4, !tbaa !9
  %1880 = zext i32 %1879 to i64
  %1881 = call i32 @i32_load(ptr noundef %1878, i64 noundef %1880)
  store i32 %1881, ptr %19, align 4, !tbaa !9
  store i32 -2, ptr %20, align 4, !tbaa !9
  %1882 = load i32, ptr %19, align 4, !tbaa !9
  %1883 = load i32, ptr %20, align 4, !tbaa !9
  %1884 = icmp ult i32 %1882, %1883
  %1885 = zext i1 %1884 to i32
  store i32 %1885, ptr %19, align 4, !tbaa !9
  %1886 = load i32, ptr %19, align 4, !tbaa !9
  %1887 = icmp ne i32 %1886, 0
  br i1 %1887, label %1888, label %1891

1888:                                             ; preds = %1875
  %1889 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1889, ptr %19, align 4, !tbaa !9
  %1890 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1890, ptr %9, align 4, !tbaa !9
  br label %1906

1891:                                             ; preds = %1875
  %1892 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1892, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %1893 = load i32, ptr %20, align 4, !tbaa !9
  %1894 = load i32, ptr %19, align 4, !tbaa !9
  %1895 = add i32 %1894, %1893
  store i32 %1895, ptr %19, align 4, !tbaa !9
  %1896 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1896, ptr %13, align 4, !tbaa !9
  %1897 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1897, ptr %20, align 4, !tbaa !9
  %1898 = load i32, ptr %19, align 4, !tbaa !9
  %1899 = load i32, ptr %20, align 4, !tbaa !9
  %1900 = icmp ne i32 %1898, %1899
  %1901 = zext i1 %1900 to i32
  store i32 %1901, ptr %19, align 4, !tbaa !9
  %1902 = load i32, ptr %19, align 4, !tbaa !9
  %1903 = icmp ne i32 %1902, 0
  br i1 %1903, label %1904, label %1905

1904:                                             ; preds = %1891
  br label %1875

1905:                                             ; preds = %1891
  br label %1906

1906:                                             ; preds = %1905, %1888, %1873
  %1907 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1907, ptr %19, align 4, !tbaa !9
  %1908 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1908, ptr %20, align 4, !tbaa !9
  %1909 = load i32, ptr %19, align 4, !tbaa !9
  %1910 = load i32, ptr %20, align 4, !tbaa !9
  %1911 = icmp ne i32 %1909, %1910
  %1912 = zext i1 %1911 to i32
  store i32 %1912, ptr %19, align 4, !tbaa !9
  %1913 = load i32, ptr %19, align 4, !tbaa !9
  %1914 = icmp ne i32 %1913, 0
  br i1 %1914, label %1915, label %1916

1915:                                             ; preds = %1906
  br label %1780

1916:                                             ; preds = %1906
  br label %1917

1917:                                             ; preds = %1916, %1761
  %1918 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1918, ptr %19, align 4, !tbaa !9
  %1919 = load i32, ptr %19, align 4, !tbaa !9
  %1920 = icmp ne i32 %1919, 0
  %1921 = xor i1 %1920, true
  %1922 = zext i1 %1921 to i32
  store i32 %1922, ptr %19, align 4, !tbaa !9
  %1923 = load i32, ptr %19, align 4, !tbaa !9
  %1924 = icmp ne i32 %1923, 0
  br i1 %1924, label %1925, label %1926

1925:                                             ; preds = %1917
  br label %2068

1926:                                             ; preds = %1917
  %1927 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1927, ptr %19, align 4, !tbaa !9
  %1928 = load ptr, ptr %5, align 8, !tbaa !5
  %1929 = getelementptr inbounds %struct.w2c_hermes, ptr %1928, i32 0, i32 6
  %1930 = load i32, ptr %19, align 4, !tbaa !9
  %1931 = zext i32 %1930 to i64
  %1932 = add i64 %1931, 12
  %1933 = call i32 @i32_load(ptr noundef %1929, i64 noundef %1932)
  store i32 %1933, ptr %19, align 4, !tbaa !9
  %1934 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1934, ptr %13, align 4, !tbaa !9
  %1935 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1935, ptr %20, align 4, !tbaa !9
  %1936 = load ptr, ptr %5, align 8, !tbaa !5
  %1937 = getelementptr inbounds %struct.w2c_hermes, ptr %1936, i32 0, i32 6
  %1938 = load i32, ptr %20, align 4, !tbaa !9
  %1939 = zext i32 %1938 to i64
  %1940 = add i64 %1939, 16
  %1941 = call i32 @i32_load(ptr noundef %1937, i64 noundef %1940)
  store i32 %1941, ptr %20, align 4, !tbaa !9
  %1942 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1942, ptr %11, align 4, !tbaa !9
  %1943 = load i32, ptr %19, align 4, !tbaa !9
  %1944 = load i32, ptr %20, align 4, !tbaa !9
  %1945 = icmp eq i32 %1943, %1944
  %1946 = zext i1 %1945 to i32
  store i32 %1946, ptr %19, align 4, !tbaa !9
  %1947 = load i32, ptr %19, align 4, !tbaa !9
  %1948 = icmp ne i32 %1947, 0
  br i1 %1948, label %1949, label %1950

1949:                                             ; preds = %1926
  br label %2068

1950:                                             ; preds = %1926
  br label %1951

1951:                                             ; preds = %2066, %1950
  %1952 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1952, ptr %19, align 4, !tbaa !9
  %1953 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1953, ptr %20, align 4, !tbaa !9
  %1954 = load ptr, ptr %5, align 8, !tbaa !5
  %1955 = getelementptr inbounds %struct.w2c_hermes, ptr %1954, i32 0, i32 6
  %1956 = load i32, ptr %20, align 4, !tbaa !9
  %1957 = zext i32 %1956 to i64
  %1958 = call i32 @i32_load(ptr noundef %1955, i64 noundef %1957)
  store i32 %1958, ptr %20, align 4, !tbaa !9
  %1959 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1959, ptr %9, align 4, !tbaa !9
  %1960 = load ptr, ptr %5, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.w2c_hermes, ptr %1960, i32 0, i32 6
  %1962 = load i32, ptr %19, align 4, !tbaa !9
  %1963 = zext i32 %1962 to i64
  %1964 = add i64 %1963, 12
  %1965 = load i32, ptr %20, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1961, i64 noundef %1964, i32 noundef %1965)
  %1966 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1966, ptr %19, align 4, !tbaa !9
  store i32 536870909, ptr %20, align 4, !tbaa !9
  %1967 = load i32, ptr %19, align 4, !tbaa !9
  %1968 = load i32, ptr %20, align 4, !tbaa !9
  %1969 = icmp ule i32 %1967, %1968
  %1970 = zext i1 %1969 to i32
  store i32 %1970, ptr %19, align 4, !tbaa !9
  %1971 = load i32, ptr %19, align 4, !tbaa !9
  %1972 = icmp ne i32 %1971, 0
  br i1 %1972, label %1973, label %2053

1973:                                             ; preds = %1951
  %1974 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1974, ptr %19, align 4, !tbaa !9
  %1975 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1975, ptr %20, align 4, !tbaa !9
  store i32 12, ptr %21, align 4, !tbaa !9
  %1976 = load i32, ptr %21, align 4, !tbaa !9
  %1977 = load i32, ptr %20, align 4, !tbaa !9
  %1978 = add i32 %1977, %1976
  store i32 %1978, ptr %20, align 4, !tbaa !9
  %1979 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1979, ptr %21, align 4, !tbaa !9
  %1980 = load ptr, ptr %5, align 8, !tbaa !5
  %1981 = getelementptr inbounds %struct.w2c_hermes, ptr %1980, i32 0, i32 6
  %1982 = load i32, ptr %21, align 4, !tbaa !9
  %1983 = zext i32 %1982 to i64
  %1984 = call i32 @i32_load(ptr noundef %1981, i64 noundef %1983)
  store i32 %1984, ptr %21, align 4, !tbaa !9
  %1985 = load ptr, ptr %5, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.w2c_hermes, ptr %1985, i32 0, i32 6
  %1987 = load i32, ptr %21, align 4, !tbaa !9
  %1988 = zext i32 %1987 to i64
  %1989 = add i64 %1988, 28
  %1990 = call i32 @i32_load(ptr noundef %1986, i64 noundef %1989)
  store i32 %1990, ptr %21, align 4, !tbaa !9
  %1991 = load i32, ptr %21, align 4, !tbaa !9
  %1992 = load ptr, ptr %5, align 8, !tbaa !5
  %1993 = getelementptr inbounds %struct.w2c_hermes, ptr %1992, i32 0, i32 7
  %1994 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1993, i32 0, i32 2
  %1995 = load i32, ptr %1994, align 4, !tbaa !18
  %1996 = icmp ult i32 %1991, %1995
  br i1 %1996, label %1997, label %2020

1997:                                             ; preds = %1973
  %1998 = load ptr, ptr %5, align 8, !tbaa !5
  %1999 = getelementptr inbounds %struct.w2c_hermes, ptr %1998, i32 0, i32 7
  %2000 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1999, i32 0, i32 0
  %2001 = load ptr, ptr %2000, align 8, !tbaa !19
  %2002 = load i32, ptr %21, align 4, !tbaa !9
  %2003 = zext i32 %2002 to i64
  %2004 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2001, i64 %2003
  %2005 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2004, i32 0, i32 1
  %2006 = load ptr, ptr %2005, align 8, !tbaa !20
  %2007 = icmp ne ptr %2006, null
  br i1 %2007, label %2008, label %2020

2008:                                             ; preds = %1997
  %2009 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %2010 = load ptr, ptr %5, align 8, !tbaa !5
  %2011 = getelementptr inbounds %struct.w2c_hermes, ptr %2010, i32 0, i32 7
  %2012 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2011, i32 0, i32 0
  %2013 = load ptr, ptr %2012, align 8, !tbaa !19
  %2014 = load i32, ptr %21, align 4, !tbaa !9
  %2015 = zext i32 %2014 to i64
  %2016 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2013, i64 %2015
  %2017 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2016, i32 0, i32 0
  %2018 = load ptr, ptr %2017, align 8, !tbaa !22
  %2019 = call zeroext i1 @func_types_eq(ptr noundef %2009, ptr noundef %2018)
  br label %2020

2020:                                             ; preds = %2008, %1997, %1973
  %2021 = phi i1 [ false, %1997 ], [ false, %1973 ], [ %2019, %2008 ]
  %2022 = xor i1 %2021, true
  %2023 = xor i1 %2022, true
  %2024 = zext i1 %2023 to i32
  %2025 = sext i32 %2024 to i64
  %2026 = call i64 @llvm.expect.i64(i64 %2025, i64 1)
  %2027 = icmp ne i64 %2026, 0
  br i1 %2027, label %2030, label %2028

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

2029:                                             ; No predecessors!
  br label %2030

2030:                                             ; preds = %2029, %2020
  %2031 = phi i1 [ true, %2020 ], [ false, %2029 ]
  %2032 = zext i1 %2031 to i32
  %2033 = load ptr, ptr %5, align 8, !tbaa !5
  %2034 = getelementptr inbounds %struct.w2c_hermes, ptr %2033, i32 0, i32 7
  %2035 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2034, i32 0, i32 0
  %2036 = load ptr, ptr %2035, align 8, !tbaa !19
  %2037 = load i32, ptr %21, align 4, !tbaa !9
  %2038 = zext i32 %2037 to i64
  %2039 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2036, i64 %2038
  %2040 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2039, i32 0, i32 1
  %2041 = load ptr, ptr %2040, align 8, !tbaa !20
  %2042 = load ptr, ptr %5, align 8, !tbaa !5
  %2043 = getelementptr inbounds %struct.w2c_hermes, ptr %2042, i32 0, i32 7
  %2044 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2043, i32 0, i32 0
  %2045 = load ptr, ptr %2044, align 8, !tbaa !19
  %2046 = load i32, ptr %21, align 4, !tbaa !9
  %2047 = zext i32 %2046 to i64
  %2048 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2045, i64 %2047
  %2049 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2048, i32 0, i32 2
  %2050 = load ptr, ptr %2049, align 8, !tbaa !23
  %2051 = load i32, ptr %19, align 4, !tbaa !9
  %2052 = load i32, ptr %20, align 4, !tbaa !9
  call void %2041(ptr noundef %2050, i32 noundef %2051, i32 noundef %2052)
  br label %2053

2053:                                             ; preds = %2030, %1951
  %2054 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %2054, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %2055 = load i32, ptr %20, align 4, !tbaa !9
  %2056 = load i32, ptr %19, align 4, !tbaa !9
  %2057 = add i32 %2056, %2055
  store i32 %2057, ptr %19, align 4, !tbaa !9
  %2058 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2058, ptr %13, align 4, !tbaa !9
  %2059 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %2059, ptr %20, align 4, !tbaa !9
  %2060 = load i32, ptr %19, align 4, !tbaa !9
  %2061 = load i32, ptr %20, align 4, !tbaa !9
  %2062 = icmp ne i32 %2060, %2061
  %2063 = zext i1 %2062 to i32
  store i32 %2063, ptr %19, align 4, !tbaa !9
  %2064 = load i32, ptr %19, align 4, !tbaa !9
  %2065 = icmp ne i32 %2064, 0
  br i1 %2065, label %2066, label %2067

2066:                                             ; preds = %2053
  br label %1951

2067:                                             ; preds = %2053
  br label %2068

2068:                                             ; preds = %2067, %1949, %1925
  %2069 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %2069, ptr %19, align 4, !tbaa !9
  store i32 16, ptr %20, align 4, !tbaa !9
  %2070 = load i32, ptr %20, align 4, !tbaa !9
  %2071 = load i32, ptr %19, align 4, !tbaa !9
  %2072 = add i32 %2071, %2070
  store i32 %2072, ptr %19, align 4, !tbaa !9
  %2073 = load i32, ptr %19, align 4, !tbaa !9
  %2074 = load ptr, ptr %5, align 8, !tbaa !5
  %2075 = getelementptr inbounds %struct.w2c_hermes, ptr %2074, i32 0, i32 3
  store i32 %2073, ptr %2075, align 8, !tbaa !13
  %2076 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2076, ptr %19, align 4, !tbaa !9
  %2077 = load ptr, ptr %5, align 8, !tbaa !5
  %2078 = getelementptr inbounds %struct.w2c_hermes, ptr %2077, i32 0, i32 6
  %2079 = load i32, ptr %19, align 4, !tbaa !9
  %2080 = zext i32 %2079 to i64
  %2081 = add i64 %2080, 4
  %2082 = call i32 @i32_load(ptr noundef %2078, i64 noundef %2081)
  store i32 %2082, ptr %19, align 4, !tbaa !9
  %2083 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2083, ptr %10, align 4, !tbaa !9
  %2084 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %2084, ptr %20, align 4, !tbaa !9
  %2085 = load i32, ptr %19, align 4, !tbaa !9
  %2086 = load i32, ptr %20, align 4, !tbaa !9
  %2087 = icmp ne i32 %2085, %2086
  %2088 = zext i1 %2087 to i32
  store i32 %2088, ptr %19, align 4, !tbaa !9
  %2089 = load i32, ptr %19, align 4, !tbaa !9
  %2090 = icmp ne i32 %2089, 0
  br i1 %2090, label %2091, label %2092

2091:                                             ; preds = %2068
  br label %1670

2092:                                             ; preds = %2068
  br label %2093

2093:                                             ; preds = %2092, %1624
  %2094 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2094, ptr %19, align 4, !tbaa !9
  %2095 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2095, ptr %20, align 4, !tbaa !9
  %2096 = load ptr, ptr %5, align 8, !tbaa !5
  %2097 = getelementptr inbounds %struct.w2c_hermes, ptr %2096, i32 0, i32 6
  %2098 = load i32, ptr %20, align 4, !tbaa !9
  %2099 = zext i32 %2098 to i64
  %2100 = call i32 @i32_load(ptr noundef %2097, i64 noundef %2099)
  store i32 %2100, ptr %20, align 4, !tbaa !9
  %2101 = load ptr, ptr %5, align 8, !tbaa !5
  %2102 = getelementptr inbounds %struct.w2c_hermes, ptr %2101, i32 0, i32 6
  %2103 = load i32, ptr %20, align 4, !tbaa !9
  %2104 = zext i32 %2103 to i64
  %2105 = add i64 %2104, 12
  %2106 = call i32 @i32_load(ptr noundef %2102, i64 noundef %2105)
  store i32 %2106, ptr %20, align 4, !tbaa !9
  %2107 = load i32, ptr %20, align 4, !tbaa !9
  %2108 = load ptr, ptr %5, align 8, !tbaa !5
  %2109 = getelementptr inbounds %struct.w2c_hermes, ptr %2108, i32 0, i32 7
  %2110 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2109, i32 0, i32 2
  %2111 = load i32, ptr %2110, align 4, !tbaa !18
  %2112 = icmp ult i32 %2107, %2111
  br i1 %2112, label %2113, label %2136

2113:                                             ; preds = %2093
  %2114 = load ptr, ptr %5, align 8, !tbaa !5
  %2115 = getelementptr inbounds %struct.w2c_hermes, ptr %2114, i32 0, i32 7
  %2116 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2115, i32 0, i32 0
  %2117 = load ptr, ptr %2116, align 8, !tbaa !19
  %2118 = load i32, ptr %20, align 4, !tbaa !9
  %2119 = zext i32 %2118 to i64
  %2120 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2117, i64 %2119
  %2121 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2120, i32 0, i32 1
  %2122 = load ptr, ptr %2121, align 8, !tbaa !20
  %2123 = icmp ne ptr %2122, null
  br i1 %2123, label %2124, label %2136

2124:                                             ; preds = %2113
  %2125 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %2126 = load ptr, ptr %5, align 8, !tbaa !5
  %2127 = getelementptr inbounds %struct.w2c_hermes, ptr %2126, i32 0, i32 7
  %2128 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2127, i32 0, i32 0
  %2129 = load ptr, ptr %2128, align 8, !tbaa !19
  %2130 = load i32, ptr %20, align 4, !tbaa !9
  %2131 = zext i32 %2130 to i64
  %2132 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2129, i64 %2131
  %2133 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2132, i32 0, i32 0
  %2134 = load ptr, ptr %2133, align 8, !tbaa !22
  %2135 = call zeroext i1 @func_types_eq(ptr noundef %2125, ptr noundef %2134)
  br label %2136

2136:                                             ; preds = %2124, %2113, %2093
  %2137 = phi i1 [ false, %2113 ], [ false, %2093 ], [ %2135, %2124 ]
  %2138 = xor i1 %2137, true
  %2139 = xor i1 %2138, true
  %2140 = zext i1 %2139 to i32
  %2141 = sext i32 %2140 to i64
  %2142 = call i64 @llvm.expect.i64(i64 %2141, i64 1)
  %2143 = icmp ne i64 %2142, 0
  br i1 %2143, label %2146, label %2144

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

2145:                                             ; No predecessors!
  br label %2146

2146:                                             ; preds = %2145, %2136
  %2147 = phi i1 [ true, %2136 ], [ false, %2145 ]
  %2148 = zext i1 %2147 to i32
  %2149 = load ptr, ptr %5, align 8, !tbaa !5
  %2150 = getelementptr inbounds %struct.w2c_hermes, ptr %2149, i32 0, i32 7
  %2151 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2150, i32 0, i32 0
  %2152 = load ptr, ptr %2151, align 8, !tbaa !19
  %2153 = load i32, ptr %20, align 4, !tbaa !9
  %2154 = zext i32 %2153 to i64
  %2155 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2152, i64 %2154
  %2156 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2155, i32 0, i32 1
  %2157 = load ptr, ptr %2156, align 8, !tbaa !20
  %2158 = load ptr, ptr %5, align 8, !tbaa !5
  %2159 = getelementptr inbounds %struct.w2c_hermes, ptr %2158, i32 0, i32 7
  %2160 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2159, i32 0, i32 0
  %2161 = load ptr, ptr %2160, align 8, !tbaa !19
  %2162 = load i32, ptr %20, align 4, !tbaa !9
  %2163 = zext i32 %2162 to i64
  %2164 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2161, i64 %2163
  %2165 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2164, i32 0, i32 2
  %2166 = load ptr, ptr %2165, align 8, !tbaa !23
  %2167 = load i32, ptr %19, align 4, !tbaa !9
  call void %2157(ptr noundef %2166, i32 noundef %2167)
  %2168 = load ptr, ptr %5, align 8, !tbaa !5
  %2169 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %2168)
  store i64 %2169, ptr %24, align 8, !tbaa !11
  %2170 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %2170, ptr %18, align 8, !tbaa !11
  %2171 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2171, ptr %19, align 4, !tbaa !9
  store i32 5336, ptr %20, align 4, !tbaa !9
  %2172 = load i32, ptr %20, align 4, !tbaa !9
  %2173 = load i32, ptr %19, align 4, !tbaa !9
  %2174 = add i32 %2173, %2172
  store i32 %2174, ptr %19, align 4, !tbaa !9
  %2175 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2175, ptr %9, align 4, !tbaa !9
  %2176 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2176, ptr %20, align 4, !tbaa !9
  %2177 = load ptr, ptr %5, align 8, !tbaa !5
  %2178 = getelementptr inbounds %struct.w2c_hermes, ptr %2177, i32 0, i32 6
  %2179 = load i32, ptr %20, align 4, !tbaa !9
  %2180 = zext i32 %2179 to i64
  %2181 = call double @f64_load(ptr noundef %2178, i64 noundef %2180)
  store double %2181, ptr %28, align 8, !tbaa !24
  %2182 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %2182, ptr %26, align 8, !tbaa !11
  %2183 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %2183, ptr %27, align 8, !tbaa !11
  %2184 = load i64, ptr %27, align 8, !tbaa !11
  %2185 = load i64, ptr %26, align 8, !tbaa !11
  %2186 = sub i64 %2185, %2184
  store i64 %2186, ptr %26, align 8, !tbaa !11
  %2187 = load i64, ptr %26, align 8, !tbaa !11
  %2188 = sitofp i64 %2187 to double
  store double %2188, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %2189 = load double, ptr %30, align 8, !tbaa !24
  %2190 = load double, ptr %29, align 8, !tbaa !24
  %2191 = fdiv double %2190, %2189
  store double %2191, ptr %29, align 8, !tbaa !24
  %2192 = load double, ptr %29, align 8, !tbaa !24
  %2193 = load double, ptr %28, align 8, !tbaa !24
  %2194 = fadd double %2193, %2192
  store double %2194, ptr %28, align 8, !tbaa !24
  %2195 = load ptr, ptr %5, align 8, !tbaa !5
  %2196 = getelementptr inbounds %struct.w2c_hermes, ptr %2195, i32 0, i32 6
  %2197 = load i32, ptr %19, align 4, !tbaa !9
  %2198 = zext i32 %2197 to i64
  %2199 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %2196, i64 noundef %2198, double noundef %2199)
  %2200 = load ptr, ptr %5, align 8, !tbaa !5
  %2201 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %2200)
  store i64 %2201, ptr %24, align 8, !tbaa !11
  %2202 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %2202, ptr %17, align 8, !tbaa !11
  %2203 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2203, ptr %19, align 4, !tbaa !9
  store i32 3, ptr %20, align 4, !tbaa !9
  %2204 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2204, ptr %21, align 4, !tbaa !9
  %2205 = load ptr, ptr %5, align 8, !tbaa !5
  %2206 = getelementptr inbounds %struct.w2c_hermes, ptr %2205, i32 0, i32 6
  %2207 = load i32, ptr %21, align 4, !tbaa !9
  %2208 = zext i32 %2207 to i64
  %2209 = call i32 @i32_load(ptr noundef %2206, i64 noundef %2208)
  store i32 %2209, ptr %21, align 4, !tbaa !9
  %2210 = load ptr, ptr %5, align 8, !tbaa !5
  %2211 = getelementptr inbounds %struct.w2c_hermes, ptr %2210, i32 0, i32 6
  %2212 = load i32, ptr %21, align 4, !tbaa !9
  %2213 = zext i32 %2212 to i64
  %2214 = add i64 %2213, 8
  %2215 = call i32 @i32_load(ptr noundef %2211, i64 noundef %2214)
  store i32 %2215, ptr %21, align 4, !tbaa !9
  %2216 = load i32, ptr %21, align 4, !tbaa !9
  %2217 = load ptr, ptr %5, align 8, !tbaa !5
  %2218 = getelementptr inbounds %struct.w2c_hermes, ptr %2217, i32 0, i32 7
  %2219 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2218, i32 0, i32 2
  %2220 = load i32, ptr %2219, align 4, !tbaa !18
  %2221 = icmp ult i32 %2216, %2220
  br i1 %2221, label %2222, label %2245

2222:                                             ; preds = %2146
  %2223 = load ptr, ptr %5, align 8, !tbaa !5
  %2224 = getelementptr inbounds %struct.w2c_hermes, ptr %2223, i32 0, i32 7
  %2225 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2224, i32 0, i32 0
  %2226 = load ptr, ptr %2225, align 8, !tbaa !19
  %2227 = load i32, ptr %21, align 4, !tbaa !9
  %2228 = zext i32 %2227 to i64
  %2229 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2226, i64 %2228
  %2230 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2229, i32 0, i32 1
  %2231 = load ptr, ptr %2230, align 8, !tbaa !20
  %2232 = icmp ne ptr %2231, null
  br i1 %2232, label %2233, label %2245

2233:                                             ; preds = %2222
  %2234 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %2235 = load ptr, ptr %5, align 8, !tbaa !5
  %2236 = getelementptr inbounds %struct.w2c_hermes, ptr %2235, i32 0, i32 7
  %2237 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2236, i32 0, i32 0
  %2238 = load ptr, ptr %2237, align 8, !tbaa !19
  %2239 = load i32, ptr %21, align 4, !tbaa !9
  %2240 = zext i32 %2239 to i64
  %2241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2238, i64 %2240
  %2242 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2241, i32 0, i32 0
  %2243 = load ptr, ptr %2242, align 8, !tbaa !22
  %2244 = call zeroext i1 @func_types_eq(ptr noundef %2234, ptr noundef %2243)
  br label %2245

2245:                                             ; preds = %2233, %2222, %2146
  %2246 = phi i1 [ false, %2222 ], [ false, %2146 ], [ %2244, %2233 ]
  %2247 = xor i1 %2246, true
  %2248 = xor i1 %2247, true
  %2249 = zext i1 %2248 to i32
  %2250 = sext i32 %2249 to i64
  %2251 = call i64 @llvm.expect.i64(i64 %2250, i64 1)
  %2252 = icmp ne i64 %2251, 0
  br i1 %2252, label %2255, label %2253

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

2254:                                             ; No predecessors!
  br label %2255

2255:                                             ; preds = %2254, %2245
  %2256 = phi i1 [ true, %2245 ], [ false, %2254 ]
  %2257 = zext i1 %2256 to i32
  %2258 = load ptr, ptr %5, align 8, !tbaa !5
  %2259 = getelementptr inbounds %struct.w2c_hermes, ptr %2258, i32 0, i32 7
  %2260 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2259, i32 0, i32 0
  %2261 = load ptr, ptr %2260, align 8, !tbaa !19
  %2262 = load i32, ptr %21, align 4, !tbaa !9
  %2263 = zext i32 %2262 to i64
  %2264 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2261, i64 %2263
  %2265 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2264, i32 0, i32 1
  %2266 = load ptr, ptr %2265, align 8, !tbaa !20
  %2267 = load ptr, ptr %5, align 8, !tbaa !5
  %2268 = getelementptr inbounds %struct.w2c_hermes, ptr %2267, i32 0, i32 7
  %2269 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2268, i32 0, i32 0
  %2270 = load ptr, ptr %2269, align 8, !tbaa !19
  %2271 = load i32, ptr %21, align 4, !tbaa !9
  %2272 = zext i32 %2271 to i64
  %2273 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2270, i64 %2272
  %2274 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2273, i32 0, i32 2
  %2275 = load ptr, ptr %2274, align 8, !tbaa !23
  %2276 = load i32, ptr %19, align 4, !tbaa !9
  %2277 = load i32, ptr %20, align 4, !tbaa !9
  call void %2266(ptr noundef %2275, i32 noundef %2276, i32 noundef %2277)
  %2278 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %2278, ptr %19, align 4, !tbaa !9
  %2279 = load i32, ptr %19, align 4, !tbaa !9
  %2280 = icmp ne i32 %2279, 0
  %2281 = xor i1 %2280, true
  %2282 = zext i1 %2281 to i32
  store i32 %2282, ptr %19, align 4, !tbaa !9
  %2283 = load i32, ptr %19, align 4, !tbaa !9
  %2284 = icmp ne i32 %2283, 0
  br i1 %2284, label %2285, label %2286

2285:                                             ; preds = %2255
  br label %2405

2286:                                             ; preds = %2255
  %2287 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2287, ptr %19, align 4, !tbaa !9
  %2288 = load ptr, ptr %5, align 8, !tbaa !5
  %2289 = getelementptr inbounds %struct.w2c_hermes, ptr %2288, i32 0, i32 6
  %2290 = load i32, ptr %19, align 4, !tbaa !9
  %2291 = zext i32 %2290 to i64
  %2292 = add i64 %2291, 5688
  %2293 = call i32 @i32_load(ptr noundef %2289, i64 noundef %2292)
  store i32 %2293, ptr %19, align 4, !tbaa !9
  %2294 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2294, ptr %10, align 4, !tbaa !9
  %2295 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2295, ptr %20, align 4, !tbaa !9
  store i32 5692, ptr %21, align 4, !tbaa !9
  %2296 = load i32, ptr %21, align 4, !tbaa !9
  %2297 = load i32, ptr %20, align 4, !tbaa !9
  %2298 = add i32 %2297, %2296
  store i32 %2298, ptr %20, align 4, !tbaa !9
  %2299 = load ptr, ptr %5, align 8, !tbaa !5
  %2300 = getelementptr inbounds %struct.w2c_hermes, ptr %2299, i32 0, i32 6
  %2301 = load i32, ptr %20, align 4, !tbaa !9
  %2302 = zext i32 %2301 to i64
  %2303 = call i32 @i32_load(ptr noundef %2300, i64 noundef %2302)
  store i32 %2303, ptr %20, align 4, !tbaa !9
  %2304 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %2304, ptr %9, align 4, !tbaa !9
  %2305 = load i32, ptr %19, align 4, !tbaa !9
  %2306 = load i32, ptr %20, align 4, !tbaa !9
  %2307 = icmp eq i32 %2305, %2306
  %2308 = zext i1 %2307 to i32
  store i32 %2308, ptr %19, align 4, !tbaa !9
  %2309 = load i32, ptr %19, align 4, !tbaa !9
  %2310 = icmp ne i32 %2309, 0
  br i1 %2310, label %2311, label %2312

2311:                                             ; preds = %2286
  br label %2405

2312:                                             ; preds = %2286
  br label %2313

2313:                                             ; preds = %2403, %2312
  %2314 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2314, ptr %19, align 4, !tbaa !9
  %2315 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2315, ptr %20, align 4, !tbaa !9
  store i32 0, ptr %21, align 4, !tbaa !9
  %2316 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2316, ptr %22, align 4, !tbaa !9
  %2317 = load ptr, ptr %5, align 8, !tbaa !5
  %2318 = getelementptr inbounds %struct.w2c_hermes, ptr %2317, i32 0, i32 6
  %2319 = load i32, ptr %22, align 4, !tbaa !9
  %2320 = zext i32 %2319 to i64
  %2321 = call i32 @i32_load(ptr noundef %2318, i64 noundef %2320)
  store i32 %2321, ptr %22, align 4, !tbaa !9
  %2322 = load ptr, ptr %5, align 8, !tbaa !5
  %2323 = getelementptr inbounds %struct.w2c_hermes, ptr %2322, i32 0, i32 6
  %2324 = load i32, ptr %22, align 4, !tbaa !9
  %2325 = zext i32 %2324 to i64
  %2326 = add i64 %2325, 36
  %2327 = call i32 @i32_load(ptr noundef %2323, i64 noundef %2326)
  store i32 %2327, ptr %22, align 4, !tbaa !9
  %2328 = load i32, ptr %22, align 4, !tbaa !9
  %2329 = load ptr, ptr %5, align 8, !tbaa !5
  %2330 = getelementptr inbounds %struct.w2c_hermes, ptr %2329, i32 0, i32 7
  %2331 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2330, i32 0, i32 2
  %2332 = load i32, ptr %2331, align 4, !tbaa !18
  %2333 = icmp ult i32 %2328, %2332
  br i1 %2333, label %2334, label %2357

2334:                                             ; preds = %2313
  %2335 = load ptr, ptr %5, align 8, !tbaa !5
  %2336 = getelementptr inbounds %struct.w2c_hermes, ptr %2335, i32 0, i32 7
  %2337 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2336, i32 0, i32 0
  %2338 = load ptr, ptr %2337, align 8, !tbaa !19
  %2339 = load i32, ptr %22, align 4, !tbaa !9
  %2340 = zext i32 %2339 to i64
  %2341 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2338, i64 %2340
  %2342 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2341, i32 0, i32 1
  %2343 = load ptr, ptr %2342, align 8, !tbaa !20
  %2344 = icmp ne ptr %2343, null
  br i1 %2344, label %2345, label %2357

2345:                                             ; preds = %2334
  %2346 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %2347 = load ptr, ptr %5, align 8, !tbaa !5
  %2348 = getelementptr inbounds %struct.w2c_hermes, ptr %2347, i32 0, i32 7
  %2349 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2348, i32 0, i32 0
  %2350 = load ptr, ptr %2349, align 8, !tbaa !19
  %2351 = load i32, ptr %22, align 4, !tbaa !9
  %2352 = zext i32 %2351 to i64
  %2353 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2350, i64 %2352
  %2354 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2353, i32 0, i32 0
  %2355 = load ptr, ptr %2354, align 8, !tbaa !22
  %2356 = call zeroext i1 @func_types_eq(ptr noundef %2346, ptr noundef %2355)
  br label %2357

2357:                                             ; preds = %2345, %2334, %2313
  %2358 = phi i1 [ false, %2334 ], [ false, %2313 ], [ %2356, %2345 ]
  %2359 = xor i1 %2358, true
  %2360 = xor i1 %2359, true
  %2361 = zext i1 %2360 to i32
  %2362 = sext i32 %2361 to i64
  %2363 = call i64 @llvm.expect.i64(i64 %2362, i64 1)
  %2364 = icmp ne i64 %2363, 0
  br i1 %2364, label %2367, label %2365

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

2366:                                             ; No predecessors!
  br label %2367

2367:                                             ; preds = %2366, %2357
  %2368 = phi i1 [ true, %2357 ], [ false, %2366 ]
  %2369 = zext i1 %2368 to i32
  %2370 = load ptr, ptr %5, align 8, !tbaa !5
  %2371 = getelementptr inbounds %struct.w2c_hermes, ptr %2370, i32 0, i32 7
  %2372 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2371, i32 0, i32 0
  %2373 = load ptr, ptr %2372, align 8, !tbaa !19
  %2374 = load i32, ptr %22, align 4, !tbaa !9
  %2375 = zext i32 %2374 to i64
  %2376 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2373, i64 %2375
  %2377 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2376, i32 0, i32 1
  %2378 = load ptr, ptr %2377, align 8, !tbaa !20
  %2379 = load ptr, ptr %5, align 8, !tbaa !5
  %2380 = getelementptr inbounds %struct.w2c_hermes, ptr %2379, i32 0, i32 7
  %2381 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2380, i32 0, i32 0
  %2382 = load ptr, ptr %2381, align 8, !tbaa !19
  %2383 = load i32, ptr %22, align 4, !tbaa !9
  %2384 = zext i32 %2383 to i64
  %2385 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2382, i64 %2384
  %2386 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2385, i32 0, i32 2
  %2387 = load ptr, ptr %2386, align 8, !tbaa !23
  %2388 = load i32, ptr %19, align 4, !tbaa !9
  %2389 = load i32, ptr %20, align 4, !tbaa !9
  %2390 = load i32, ptr %21, align 4, !tbaa !9
  call void %2378(ptr noundef %2387, i32 noundef %2388, i32 noundef %2389, i32 noundef %2390)
  %2391 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2391, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %2392 = load i32, ptr %20, align 4, !tbaa !9
  %2393 = load i32, ptr %19, align 4, !tbaa !9
  %2394 = add i32 %2393, %2392
  store i32 %2394, ptr %19, align 4, !tbaa !9
  %2395 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2395, ptr %10, align 4, !tbaa !9
  %2396 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2396, ptr %20, align 4, !tbaa !9
  %2397 = load i32, ptr %19, align 4, !tbaa !9
  %2398 = load i32, ptr %20, align 4, !tbaa !9
  %2399 = icmp ne i32 %2397, %2398
  %2400 = zext i1 %2399 to i32
  store i32 %2400, ptr %19, align 4, !tbaa !9
  %2401 = load i32, ptr %19, align 4, !tbaa !9
  %2402 = icmp ne i32 %2401, 0
  br i1 %2402, label %2403, label %2404

2403:                                             ; preds = %2367
  br label %2313

2404:                                             ; preds = %2367
  br label %2405

2405:                                             ; preds = %2404, %2311, %2285
  %2406 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2406, ptr %19, align 4, !tbaa !9
  %2407 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2407, ptr %20, align 4, !tbaa !9
  %2408 = load ptr, ptr %5, align 8, !tbaa !5
  %2409 = getelementptr inbounds %struct.w2c_hermes, ptr %2408, i32 0, i32 6
  %2410 = load i32, ptr %20, align 4, !tbaa !9
  %2411 = zext i32 %2410 to i64
  %2412 = call i32 @i32_load(ptr noundef %2409, i64 noundef %2411)
  store i32 %2412, ptr %20, align 4, !tbaa !9
  %2413 = load ptr, ptr %5, align 8, !tbaa !5
  %2414 = getelementptr inbounds %struct.w2c_hermes, ptr %2413, i32 0, i32 6
  %2415 = load i32, ptr %20, align 4, !tbaa !9
  %2416 = zext i32 %2415 to i64
  %2417 = add i64 %2416, 12
  %2418 = call i32 @i32_load(ptr noundef %2414, i64 noundef %2417)
  store i32 %2418, ptr %20, align 4, !tbaa !9
  %2419 = load i32, ptr %20, align 4, !tbaa !9
  %2420 = load ptr, ptr %5, align 8, !tbaa !5
  %2421 = getelementptr inbounds %struct.w2c_hermes, ptr %2420, i32 0, i32 7
  %2422 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2421, i32 0, i32 2
  %2423 = load i32, ptr %2422, align 4, !tbaa !18
  %2424 = icmp ult i32 %2419, %2423
  br i1 %2424, label %2425, label %2448

2425:                                             ; preds = %2405
  %2426 = load ptr, ptr %5, align 8, !tbaa !5
  %2427 = getelementptr inbounds %struct.w2c_hermes, ptr %2426, i32 0, i32 7
  %2428 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2427, i32 0, i32 0
  %2429 = load ptr, ptr %2428, align 8, !tbaa !19
  %2430 = load i32, ptr %20, align 4, !tbaa !9
  %2431 = zext i32 %2430 to i64
  %2432 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2429, i64 %2431
  %2433 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2432, i32 0, i32 1
  %2434 = load ptr, ptr %2433, align 8, !tbaa !20
  %2435 = icmp ne ptr %2434, null
  br i1 %2435, label %2436, label %2448

2436:                                             ; preds = %2425
  %2437 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %2438 = load ptr, ptr %5, align 8, !tbaa !5
  %2439 = getelementptr inbounds %struct.w2c_hermes, ptr %2438, i32 0, i32 7
  %2440 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2439, i32 0, i32 0
  %2441 = load ptr, ptr %2440, align 8, !tbaa !19
  %2442 = load i32, ptr %20, align 4, !tbaa !9
  %2443 = zext i32 %2442 to i64
  %2444 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2441, i64 %2443
  %2445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2444, i32 0, i32 0
  %2446 = load ptr, ptr %2445, align 8, !tbaa !22
  %2447 = call zeroext i1 @func_types_eq(ptr noundef %2437, ptr noundef %2446)
  br label %2448

2448:                                             ; preds = %2436, %2425, %2405
  %2449 = phi i1 [ false, %2425 ], [ false, %2405 ], [ %2447, %2436 ]
  %2450 = xor i1 %2449, true
  %2451 = xor i1 %2450, true
  %2452 = zext i1 %2451 to i32
  %2453 = sext i32 %2452 to i64
  %2454 = call i64 @llvm.expect.i64(i64 %2453, i64 1)
  %2455 = icmp ne i64 %2454, 0
  br i1 %2455, label %2458, label %2456

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

2457:                                             ; No predecessors!
  br label %2458

2458:                                             ; preds = %2457, %2448
  %2459 = phi i1 [ true, %2448 ], [ false, %2457 ]
  %2460 = zext i1 %2459 to i32
  %2461 = load ptr, ptr %5, align 8, !tbaa !5
  %2462 = getelementptr inbounds %struct.w2c_hermes, ptr %2461, i32 0, i32 7
  %2463 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2462, i32 0, i32 0
  %2464 = load ptr, ptr %2463, align 8, !tbaa !19
  %2465 = load i32, ptr %20, align 4, !tbaa !9
  %2466 = zext i32 %2465 to i64
  %2467 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2464, i64 %2466
  %2468 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2467, i32 0, i32 1
  %2469 = load ptr, ptr %2468, align 8, !tbaa !20
  %2470 = load ptr, ptr %5, align 8, !tbaa !5
  %2471 = getelementptr inbounds %struct.w2c_hermes, ptr %2470, i32 0, i32 7
  %2472 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2471, i32 0, i32 0
  %2473 = load ptr, ptr %2472, align 8, !tbaa !19
  %2474 = load i32, ptr %20, align 4, !tbaa !9
  %2475 = zext i32 %2474 to i64
  %2476 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2473, i64 %2475
  %2477 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2476, i32 0, i32 2
  %2478 = load ptr, ptr %2477, align 8, !tbaa !23
  %2479 = load i32, ptr %19, align 4, !tbaa !9
  call void %2469(ptr noundef %2478, i32 noundef %2479)
  %2480 = load ptr, ptr %5, align 8, !tbaa !5
  %2481 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %2480)
  store i64 %2481, ptr %24, align 8, !tbaa !11
  %2482 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %2482, ptr %18, align 8, !tbaa !11
  %2483 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2483, ptr %19, align 4, !tbaa !9
  store i32 5344, ptr %20, align 4, !tbaa !9
  %2484 = load i32, ptr %20, align 4, !tbaa !9
  %2485 = load i32, ptr %19, align 4, !tbaa !9
  %2486 = add i32 %2485, %2484
  store i32 %2486, ptr %19, align 4, !tbaa !9
  %2487 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2487, ptr %9, align 4, !tbaa !9
  %2488 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2488, ptr %20, align 4, !tbaa !9
  %2489 = load ptr, ptr %5, align 8, !tbaa !5
  %2490 = getelementptr inbounds %struct.w2c_hermes, ptr %2489, i32 0, i32 6
  %2491 = load i32, ptr %20, align 4, !tbaa !9
  %2492 = zext i32 %2491 to i64
  %2493 = call double @f64_load(ptr noundef %2490, i64 noundef %2492)
  store double %2493, ptr %28, align 8, !tbaa !24
  %2494 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %2494, ptr %26, align 8, !tbaa !11
  %2495 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %2495, ptr %27, align 8, !tbaa !11
  %2496 = load i64, ptr %27, align 8, !tbaa !11
  %2497 = load i64, ptr %26, align 8, !tbaa !11
  %2498 = sub i64 %2497, %2496
  store i64 %2498, ptr %26, align 8, !tbaa !11
  %2499 = load i64, ptr %26, align 8, !tbaa !11
  %2500 = sitofp i64 %2499 to double
  store double %2500, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %2501 = load double, ptr %30, align 8, !tbaa !24
  %2502 = load double, ptr %29, align 8, !tbaa !24
  %2503 = fdiv double %2502, %2501
  store double %2503, ptr %29, align 8, !tbaa !24
  %2504 = load double, ptr %29, align 8, !tbaa !24
  %2505 = load double, ptr %28, align 8, !tbaa !24
  %2506 = fadd double %2505, %2504
  store double %2506, ptr %28, align 8, !tbaa !24
  %2507 = load ptr, ptr %5, align 8, !tbaa !5
  %2508 = getelementptr inbounds %struct.w2c_hermes, ptr %2507, i32 0, i32 6
  %2509 = load i32, ptr %19, align 4, !tbaa !9
  %2510 = zext i32 %2509 to i64
  %2511 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %2508, i64 noundef %2510, double noundef %2511)
  %2512 = load ptr, ptr %5, align 8, !tbaa !5
  %2513 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %2512)
  store i64 %2513, ptr %24, align 8, !tbaa !11
  %2514 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %2514, ptr %17, align 8, !tbaa !11
  %2515 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2515, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %2516 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2516, ptr %21, align 4, !tbaa !9
  %2517 = load ptr, ptr %5, align 8, !tbaa !5
  %2518 = getelementptr inbounds %struct.w2c_hermes, ptr %2517, i32 0, i32 6
  %2519 = load i32, ptr %21, align 4, !tbaa !9
  %2520 = zext i32 %2519 to i64
  %2521 = call i32 @i32_load(ptr noundef %2518, i64 noundef %2520)
  store i32 %2521, ptr %21, align 4, !tbaa !9
  %2522 = load ptr, ptr %5, align 8, !tbaa !5
  %2523 = getelementptr inbounds %struct.w2c_hermes, ptr %2522, i32 0, i32 6
  %2524 = load i32, ptr %21, align 4, !tbaa !9
  %2525 = zext i32 %2524 to i64
  %2526 = add i64 %2525, 8
  %2527 = call i32 @i32_load(ptr noundef %2523, i64 noundef %2526)
  store i32 %2527, ptr %21, align 4, !tbaa !9
  %2528 = load i32, ptr %21, align 4, !tbaa !9
  %2529 = load ptr, ptr %5, align 8, !tbaa !5
  %2530 = getelementptr inbounds %struct.w2c_hermes, ptr %2529, i32 0, i32 7
  %2531 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2530, i32 0, i32 2
  %2532 = load i32, ptr %2531, align 4, !tbaa !18
  %2533 = icmp ult i32 %2528, %2532
  br i1 %2533, label %2534, label %2557

2534:                                             ; preds = %2458
  %2535 = load ptr, ptr %5, align 8, !tbaa !5
  %2536 = getelementptr inbounds %struct.w2c_hermes, ptr %2535, i32 0, i32 7
  %2537 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2536, i32 0, i32 0
  %2538 = load ptr, ptr %2537, align 8, !tbaa !19
  %2539 = load i32, ptr %21, align 4, !tbaa !9
  %2540 = zext i32 %2539 to i64
  %2541 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2538, i64 %2540
  %2542 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2541, i32 0, i32 1
  %2543 = load ptr, ptr %2542, align 8, !tbaa !20
  %2544 = icmp ne ptr %2543, null
  br i1 %2544, label %2545, label %2557

2545:                                             ; preds = %2534
  %2546 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %2547 = load ptr, ptr %5, align 8, !tbaa !5
  %2548 = getelementptr inbounds %struct.w2c_hermes, ptr %2547, i32 0, i32 7
  %2549 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2548, i32 0, i32 0
  %2550 = load ptr, ptr %2549, align 8, !tbaa !19
  %2551 = load i32, ptr %21, align 4, !tbaa !9
  %2552 = zext i32 %2551 to i64
  %2553 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2550, i64 %2552
  %2554 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2553, i32 0, i32 0
  %2555 = load ptr, ptr %2554, align 8, !tbaa !22
  %2556 = call zeroext i1 @func_types_eq(ptr noundef %2546, ptr noundef %2555)
  br label %2557

2557:                                             ; preds = %2545, %2534, %2458
  %2558 = phi i1 [ false, %2534 ], [ false, %2458 ], [ %2556, %2545 ]
  %2559 = xor i1 %2558, true
  %2560 = xor i1 %2559, true
  %2561 = zext i1 %2560 to i32
  %2562 = sext i32 %2561 to i64
  %2563 = call i64 @llvm.expect.i64(i64 %2562, i64 1)
  %2564 = icmp ne i64 %2563, 0
  br i1 %2564, label %2567, label %2565

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

2566:                                             ; No predecessors!
  br label %2567

2567:                                             ; preds = %2566, %2557
  %2568 = phi i1 [ true, %2557 ], [ false, %2566 ]
  %2569 = zext i1 %2568 to i32
  %2570 = load ptr, ptr %5, align 8, !tbaa !5
  %2571 = getelementptr inbounds %struct.w2c_hermes, ptr %2570, i32 0, i32 7
  %2572 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2571, i32 0, i32 0
  %2573 = load ptr, ptr %2572, align 8, !tbaa !19
  %2574 = load i32, ptr %21, align 4, !tbaa !9
  %2575 = zext i32 %2574 to i64
  %2576 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2573, i64 %2575
  %2577 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2576, i32 0, i32 1
  %2578 = load ptr, ptr %2577, align 8, !tbaa !20
  %2579 = load ptr, ptr %5, align 8, !tbaa !5
  %2580 = getelementptr inbounds %struct.w2c_hermes, ptr %2579, i32 0, i32 7
  %2581 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2580, i32 0, i32 0
  %2582 = load ptr, ptr %2581, align 8, !tbaa !19
  %2583 = load i32, ptr %21, align 4, !tbaa !9
  %2584 = zext i32 %2583 to i64
  %2585 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2582, i64 %2584
  %2586 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2585, i32 0, i32 2
  %2587 = load ptr, ptr %2586, align 8, !tbaa !23
  %2588 = load i32, ptr %19, align 4, !tbaa !9
  %2589 = load i32, ptr %20, align 4, !tbaa !9
  call void %2578(ptr noundef %2587, i32 noundef %2588, i32 noundef %2589)
  %2590 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2590, ptr %19, align 4, !tbaa !9
  %2591 = load ptr, ptr %5, align 8, !tbaa !5
  %2592 = getelementptr inbounds %struct.w2c_hermes, ptr %2591, i32 0, i32 6
  %2593 = load i32, ptr %19, align 4, !tbaa !9
  %2594 = zext i32 %2593 to i64
  %2595 = add i64 %2594, 5700
  %2596 = call i32 @i32_load(ptr noundef %2592, i64 noundef %2595)
  store i32 %2596, ptr %19, align 4, !tbaa !9
  %2597 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2597, ptr %10, align 4, !tbaa !9
  %2598 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2598, ptr %20, align 4, !tbaa !9
  store i32 5704, ptr %21, align 4, !tbaa !9
  %2599 = load i32, ptr %21, align 4, !tbaa !9
  %2600 = load i32, ptr %20, align 4, !tbaa !9
  %2601 = add i32 %2600, %2599
  store i32 %2601, ptr %20, align 4, !tbaa !9
  %2602 = load ptr, ptr %5, align 8, !tbaa !5
  %2603 = getelementptr inbounds %struct.w2c_hermes, ptr %2602, i32 0, i32 6
  %2604 = load i32, ptr %20, align 4, !tbaa !9
  %2605 = zext i32 %2604 to i64
  %2606 = call i32 @i32_load(ptr noundef %2603, i64 noundef %2605)
  store i32 %2606, ptr %20, align 4, !tbaa !9
  %2607 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %2607, ptr %9, align 4, !tbaa !9
  %2608 = load i32, ptr %19, align 4, !tbaa !9
  %2609 = load i32, ptr %20, align 4, !tbaa !9
  %2610 = icmp ne i32 %2608, %2609
  %2611 = zext i1 %2610 to i32
  store i32 %2611, ptr %19, align 4, !tbaa !9
  %2612 = load i32, ptr %19, align 4, !tbaa !9
  %2613 = icmp ne i32 %2612, 0
  br i1 %2613, label %2614, label %2706

2614:                                             ; preds = %2567
  br label %2615

2615:                                             ; preds = %2704, %2614
  %2616 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2616, ptr %19, align 4, !tbaa !9
  %2617 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2617, ptr %20, align 4, !tbaa !9
  %2618 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2618, ptr %21, align 4, !tbaa !9
  %2619 = load ptr, ptr %5, align 8, !tbaa !5
  %2620 = getelementptr inbounds %struct.w2c_hermes, ptr %2619, i32 0, i32 6
  %2621 = load i32, ptr %21, align 4, !tbaa !9
  %2622 = zext i32 %2621 to i64
  %2623 = call i32 @i32_load(ptr noundef %2620, i64 noundef %2622)
  store i32 %2623, ptr %21, align 4, !tbaa !9
  %2624 = load ptr, ptr %5, align 8, !tbaa !5
  %2625 = getelementptr inbounds %struct.w2c_hermes, ptr %2624, i32 0, i32 6
  %2626 = load i32, ptr %21, align 4, !tbaa !9
  %2627 = zext i32 %2626 to i64
  %2628 = add i64 %2627, 16
  %2629 = call i32 @i32_load(ptr noundef %2625, i64 noundef %2628)
  store i32 %2629, ptr %21, align 4, !tbaa !9
  %2630 = load i32, ptr %21, align 4, !tbaa !9
  %2631 = load ptr, ptr %5, align 8, !tbaa !5
  %2632 = getelementptr inbounds %struct.w2c_hermes, ptr %2631, i32 0, i32 7
  %2633 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2632, i32 0, i32 2
  %2634 = load i32, ptr %2633, align 4, !tbaa !18
  %2635 = icmp ult i32 %2630, %2634
  br i1 %2635, label %2636, label %2659

2636:                                             ; preds = %2615
  %2637 = load ptr, ptr %5, align 8, !tbaa !5
  %2638 = getelementptr inbounds %struct.w2c_hermes, ptr %2637, i32 0, i32 7
  %2639 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2638, i32 0, i32 0
  %2640 = load ptr, ptr %2639, align 8, !tbaa !19
  %2641 = load i32, ptr %21, align 4, !tbaa !9
  %2642 = zext i32 %2641 to i64
  %2643 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2640, i64 %2642
  %2644 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2643, i32 0, i32 1
  %2645 = load ptr, ptr %2644, align 8, !tbaa !20
  %2646 = icmp ne ptr %2645, null
  br i1 %2646, label %2647, label %2659

2647:                                             ; preds = %2636
  %2648 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %2649 = load ptr, ptr %5, align 8, !tbaa !5
  %2650 = getelementptr inbounds %struct.w2c_hermes, ptr %2649, i32 0, i32 7
  %2651 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2650, i32 0, i32 0
  %2652 = load ptr, ptr %2651, align 8, !tbaa !19
  %2653 = load i32, ptr %21, align 4, !tbaa !9
  %2654 = zext i32 %2653 to i64
  %2655 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2652, i64 %2654
  %2656 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2655, i32 0, i32 0
  %2657 = load ptr, ptr %2656, align 8, !tbaa !22
  %2658 = call zeroext i1 @func_types_eq(ptr noundef %2648, ptr noundef %2657)
  br label %2659

2659:                                             ; preds = %2647, %2636, %2615
  %2660 = phi i1 [ false, %2636 ], [ false, %2615 ], [ %2658, %2647 ]
  %2661 = xor i1 %2660, true
  %2662 = xor i1 %2661, true
  %2663 = zext i1 %2662 to i32
  %2664 = sext i32 %2663 to i64
  %2665 = call i64 @llvm.expect.i64(i64 %2664, i64 1)
  %2666 = icmp ne i64 %2665, 0
  br i1 %2666, label %2669, label %2667

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

2668:                                             ; No predecessors!
  br label %2669

2669:                                             ; preds = %2668, %2659
  %2670 = phi i1 [ true, %2659 ], [ false, %2668 ]
  %2671 = zext i1 %2670 to i32
  %2672 = load ptr, ptr %5, align 8, !tbaa !5
  %2673 = getelementptr inbounds %struct.w2c_hermes, ptr %2672, i32 0, i32 7
  %2674 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2673, i32 0, i32 0
  %2675 = load ptr, ptr %2674, align 8, !tbaa !19
  %2676 = load i32, ptr %21, align 4, !tbaa !9
  %2677 = zext i32 %2676 to i64
  %2678 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2675, i64 %2677
  %2679 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2678, i32 0, i32 1
  %2680 = load ptr, ptr %2679, align 8, !tbaa !20
  %2681 = load ptr, ptr %5, align 8, !tbaa !5
  %2682 = getelementptr inbounds %struct.w2c_hermes, ptr %2681, i32 0, i32 7
  %2683 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2682, i32 0, i32 0
  %2684 = load ptr, ptr %2683, align 8, !tbaa !19
  %2685 = load i32, ptr %21, align 4, !tbaa !9
  %2686 = zext i32 %2685 to i64
  %2687 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2684, i64 %2686
  %2688 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2687, i32 0, i32 2
  %2689 = load ptr, ptr %2688, align 8, !tbaa !23
  %2690 = load i32, ptr %19, align 4, !tbaa !9
  %2691 = load i32, ptr %20, align 4, !tbaa !9
  call void %2680(ptr noundef %2689, i32 noundef %2690, i32 noundef %2691)
  %2692 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2692, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %2693 = load i32, ptr %20, align 4, !tbaa !9
  %2694 = load i32, ptr %19, align 4, !tbaa !9
  %2695 = add i32 %2694, %2693
  store i32 %2695, ptr %19, align 4, !tbaa !9
  %2696 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2696, ptr %10, align 4, !tbaa !9
  %2697 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2697, ptr %20, align 4, !tbaa !9
  %2698 = load i32, ptr %19, align 4, !tbaa !9
  %2699 = load i32, ptr %20, align 4, !tbaa !9
  %2700 = icmp ne i32 %2698, %2699
  %2701 = zext i1 %2700 to i32
  store i32 %2701, ptr %19, align 4, !tbaa !9
  %2702 = load i32, ptr %19, align 4, !tbaa !9
  %2703 = icmp ne i32 %2702, 0
  br i1 %2703, label %2704, label %2705

2704:                                             ; preds = %2669
  br label %2615

2705:                                             ; preds = %2669
  br label %2706

2706:                                             ; preds = %2705, %2567
  %2707 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2707, ptr %19, align 4, !tbaa !9
  %2708 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2708, ptr %20, align 4, !tbaa !9
  %2709 = load ptr, ptr %5, align 8, !tbaa !5
  %2710 = getelementptr inbounds %struct.w2c_hermes, ptr %2709, i32 0, i32 6
  %2711 = load i32, ptr %20, align 4, !tbaa !9
  %2712 = zext i32 %2711 to i64
  %2713 = call i32 @i32_load(ptr noundef %2710, i64 noundef %2712)
  store i32 %2713, ptr %20, align 4, !tbaa !9
  %2714 = load ptr, ptr %5, align 8, !tbaa !5
  %2715 = getelementptr inbounds %struct.w2c_hermes, ptr %2714, i32 0, i32 6
  %2716 = load i32, ptr %20, align 4, !tbaa !9
  %2717 = zext i32 %2716 to i64
  %2718 = add i64 %2717, 12
  %2719 = call i32 @i32_load(ptr noundef %2715, i64 noundef %2718)
  store i32 %2719, ptr %20, align 4, !tbaa !9
  %2720 = load i32, ptr %20, align 4, !tbaa !9
  %2721 = load ptr, ptr %5, align 8, !tbaa !5
  %2722 = getelementptr inbounds %struct.w2c_hermes, ptr %2721, i32 0, i32 7
  %2723 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2722, i32 0, i32 2
  %2724 = load i32, ptr %2723, align 4, !tbaa !18
  %2725 = icmp ult i32 %2720, %2724
  br i1 %2725, label %2726, label %2749

2726:                                             ; preds = %2706
  %2727 = load ptr, ptr %5, align 8, !tbaa !5
  %2728 = getelementptr inbounds %struct.w2c_hermes, ptr %2727, i32 0, i32 7
  %2729 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2728, i32 0, i32 0
  %2730 = load ptr, ptr %2729, align 8, !tbaa !19
  %2731 = load i32, ptr %20, align 4, !tbaa !9
  %2732 = zext i32 %2731 to i64
  %2733 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2730, i64 %2732
  %2734 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2733, i32 0, i32 1
  %2735 = load ptr, ptr %2734, align 8, !tbaa !20
  %2736 = icmp ne ptr %2735, null
  br i1 %2736, label %2737, label %2749

2737:                                             ; preds = %2726
  %2738 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %2739 = load ptr, ptr %5, align 8, !tbaa !5
  %2740 = getelementptr inbounds %struct.w2c_hermes, ptr %2739, i32 0, i32 7
  %2741 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2740, i32 0, i32 0
  %2742 = load ptr, ptr %2741, align 8, !tbaa !19
  %2743 = load i32, ptr %20, align 4, !tbaa !9
  %2744 = zext i32 %2743 to i64
  %2745 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2742, i64 %2744
  %2746 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2745, i32 0, i32 0
  %2747 = load ptr, ptr %2746, align 8, !tbaa !22
  %2748 = call zeroext i1 @func_types_eq(ptr noundef %2738, ptr noundef %2747)
  br label %2749

2749:                                             ; preds = %2737, %2726, %2706
  %2750 = phi i1 [ false, %2726 ], [ false, %2706 ], [ %2748, %2737 ]
  %2751 = xor i1 %2750, true
  %2752 = xor i1 %2751, true
  %2753 = zext i1 %2752 to i32
  %2754 = sext i32 %2753 to i64
  %2755 = call i64 @llvm.expect.i64(i64 %2754, i64 1)
  %2756 = icmp ne i64 %2755, 0
  br i1 %2756, label %2759, label %2757

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

2758:                                             ; No predecessors!
  br label %2759

2759:                                             ; preds = %2758, %2749
  %2760 = phi i1 [ true, %2749 ], [ false, %2758 ]
  %2761 = zext i1 %2760 to i32
  %2762 = load ptr, ptr %5, align 8, !tbaa !5
  %2763 = getelementptr inbounds %struct.w2c_hermes, ptr %2762, i32 0, i32 7
  %2764 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2763, i32 0, i32 0
  %2765 = load ptr, ptr %2764, align 8, !tbaa !19
  %2766 = load i32, ptr %20, align 4, !tbaa !9
  %2767 = zext i32 %2766 to i64
  %2768 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2765, i64 %2767
  %2769 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2768, i32 0, i32 1
  %2770 = load ptr, ptr %2769, align 8, !tbaa !20
  %2771 = load ptr, ptr %5, align 8, !tbaa !5
  %2772 = getelementptr inbounds %struct.w2c_hermes, ptr %2771, i32 0, i32 7
  %2773 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2772, i32 0, i32 0
  %2774 = load ptr, ptr %2773, align 8, !tbaa !19
  %2775 = load i32, ptr %20, align 4, !tbaa !9
  %2776 = zext i32 %2775 to i64
  %2777 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2774, i64 %2776
  %2778 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2777, i32 0, i32 2
  %2779 = load ptr, ptr %2778, align 8, !tbaa !23
  %2780 = load i32, ptr %19, align 4, !tbaa !9
  call void %2770(ptr noundef %2779, i32 noundef %2780)
  %2781 = load ptr, ptr %5, align 8, !tbaa !5
  %2782 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %2781)
  store i64 %2782, ptr %24, align 8, !tbaa !11
  %2783 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %2783, ptr %18, align 8, !tbaa !11
  %2784 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2784, ptr %19, align 4, !tbaa !9
  store i32 5352, ptr %20, align 4, !tbaa !9
  %2785 = load i32, ptr %20, align 4, !tbaa !9
  %2786 = load i32, ptr %19, align 4, !tbaa !9
  %2787 = add i32 %2786, %2785
  store i32 %2787, ptr %19, align 4, !tbaa !9
  %2788 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2788, ptr %9, align 4, !tbaa !9
  %2789 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2789, ptr %20, align 4, !tbaa !9
  %2790 = load ptr, ptr %5, align 8, !tbaa !5
  %2791 = getelementptr inbounds %struct.w2c_hermes, ptr %2790, i32 0, i32 6
  %2792 = load i32, ptr %20, align 4, !tbaa !9
  %2793 = zext i32 %2792 to i64
  %2794 = call double @f64_load(ptr noundef %2791, i64 noundef %2793)
  store double %2794, ptr %28, align 8, !tbaa !24
  %2795 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %2795, ptr %26, align 8, !tbaa !11
  %2796 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %2796, ptr %27, align 8, !tbaa !11
  %2797 = load i64, ptr %27, align 8, !tbaa !11
  %2798 = load i64, ptr %26, align 8, !tbaa !11
  %2799 = sub i64 %2798, %2797
  store i64 %2799, ptr %26, align 8, !tbaa !11
  %2800 = load i64, ptr %26, align 8, !tbaa !11
  %2801 = sitofp i64 %2800 to double
  store double %2801, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %2802 = load double, ptr %30, align 8, !tbaa !24
  %2803 = load double, ptr %29, align 8, !tbaa !24
  %2804 = fdiv double %2803, %2802
  store double %2804, ptr %29, align 8, !tbaa !24
  %2805 = load double, ptr %29, align 8, !tbaa !24
  %2806 = load double, ptr %28, align 8, !tbaa !24
  %2807 = fadd double %2806, %2805
  store double %2807, ptr %28, align 8, !tbaa !24
  %2808 = load ptr, ptr %5, align 8, !tbaa !5
  %2809 = getelementptr inbounds %struct.w2c_hermes, ptr %2808, i32 0, i32 6
  %2810 = load i32, ptr %19, align 4, !tbaa !9
  %2811 = zext i32 %2810 to i64
  %2812 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %2809, i64 noundef %2811, double noundef %2812)
  %2813 = load ptr, ptr %5, align 8, !tbaa !5
  %2814 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %2813)
  store i64 %2814, ptr %24, align 8, !tbaa !11
  %2815 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %2815, ptr %17, align 8, !tbaa !11
  %2816 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2816, ptr %19, align 4, !tbaa !9
  store i32 5, ptr %20, align 4, !tbaa !9
  %2817 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2817, ptr %21, align 4, !tbaa !9
  %2818 = load ptr, ptr %5, align 8, !tbaa !5
  %2819 = getelementptr inbounds %struct.w2c_hermes, ptr %2818, i32 0, i32 6
  %2820 = load i32, ptr %21, align 4, !tbaa !9
  %2821 = zext i32 %2820 to i64
  %2822 = call i32 @i32_load(ptr noundef %2819, i64 noundef %2821)
  store i32 %2822, ptr %21, align 4, !tbaa !9
  %2823 = load ptr, ptr %5, align 8, !tbaa !5
  %2824 = getelementptr inbounds %struct.w2c_hermes, ptr %2823, i32 0, i32 6
  %2825 = load i32, ptr %21, align 4, !tbaa !9
  %2826 = zext i32 %2825 to i64
  %2827 = add i64 %2826, 8
  %2828 = call i32 @i32_load(ptr noundef %2824, i64 noundef %2827)
  store i32 %2828, ptr %21, align 4, !tbaa !9
  %2829 = load i32, ptr %21, align 4, !tbaa !9
  %2830 = load ptr, ptr %5, align 8, !tbaa !5
  %2831 = getelementptr inbounds %struct.w2c_hermes, ptr %2830, i32 0, i32 7
  %2832 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2831, i32 0, i32 2
  %2833 = load i32, ptr %2832, align 4, !tbaa !18
  %2834 = icmp ult i32 %2829, %2833
  br i1 %2834, label %2835, label %2858

2835:                                             ; preds = %2759
  %2836 = load ptr, ptr %5, align 8, !tbaa !5
  %2837 = getelementptr inbounds %struct.w2c_hermes, ptr %2836, i32 0, i32 7
  %2838 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2837, i32 0, i32 0
  %2839 = load ptr, ptr %2838, align 8, !tbaa !19
  %2840 = load i32, ptr %21, align 4, !tbaa !9
  %2841 = zext i32 %2840 to i64
  %2842 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2839, i64 %2841
  %2843 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2842, i32 0, i32 1
  %2844 = load ptr, ptr %2843, align 8, !tbaa !20
  %2845 = icmp ne ptr %2844, null
  br i1 %2845, label %2846, label %2858

2846:                                             ; preds = %2835
  %2847 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %2848 = load ptr, ptr %5, align 8, !tbaa !5
  %2849 = getelementptr inbounds %struct.w2c_hermes, ptr %2848, i32 0, i32 7
  %2850 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2849, i32 0, i32 0
  %2851 = load ptr, ptr %2850, align 8, !tbaa !19
  %2852 = load i32, ptr %21, align 4, !tbaa !9
  %2853 = zext i32 %2852 to i64
  %2854 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2851, i64 %2853
  %2855 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2854, i32 0, i32 0
  %2856 = load ptr, ptr %2855, align 8, !tbaa !22
  %2857 = call zeroext i1 @func_types_eq(ptr noundef %2847, ptr noundef %2856)
  br label %2858

2858:                                             ; preds = %2846, %2835, %2759
  %2859 = phi i1 [ false, %2835 ], [ false, %2759 ], [ %2857, %2846 ]
  %2860 = xor i1 %2859, true
  %2861 = xor i1 %2860, true
  %2862 = zext i1 %2861 to i32
  %2863 = sext i32 %2862 to i64
  %2864 = call i64 @llvm.expect.i64(i64 %2863, i64 1)
  %2865 = icmp ne i64 %2864, 0
  br i1 %2865, label %2868, label %2866

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

2867:                                             ; No predecessors!
  br label %2868

2868:                                             ; preds = %2867, %2858
  %2869 = phi i1 [ true, %2858 ], [ false, %2867 ]
  %2870 = zext i1 %2869 to i32
  %2871 = load ptr, ptr %5, align 8, !tbaa !5
  %2872 = getelementptr inbounds %struct.w2c_hermes, ptr %2871, i32 0, i32 7
  %2873 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2872, i32 0, i32 0
  %2874 = load ptr, ptr %2873, align 8, !tbaa !19
  %2875 = load i32, ptr %21, align 4, !tbaa !9
  %2876 = zext i32 %2875 to i64
  %2877 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2874, i64 %2876
  %2878 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2877, i32 0, i32 1
  %2879 = load ptr, ptr %2878, align 8, !tbaa !20
  %2880 = load ptr, ptr %5, align 8, !tbaa !5
  %2881 = getelementptr inbounds %struct.w2c_hermes, ptr %2880, i32 0, i32 7
  %2882 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2881, i32 0, i32 0
  %2883 = load ptr, ptr %2882, align 8, !tbaa !19
  %2884 = load i32, ptr %21, align 4, !tbaa !9
  %2885 = zext i32 %2884 to i64
  %2886 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2883, i64 %2885
  %2887 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2886, i32 0, i32 2
  %2888 = load ptr, ptr %2887, align 8, !tbaa !23
  %2889 = load i32, ptr %19, align 4, !tbaa !9
  %2890 = load i32, ptr %20, align 4, !tbaa !9
  call void %2879(ptr noundef %2888, i32 noundef %2889, i32 noundef %2890)
  %2891 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2891, ptr %19, align 4, !tbaa !9
  %2892 = load ptr, ptr %5, align 8, !tbaa !5
  %2893 = getelementptr inbounds %struct.w2c_hermes, ptr %2892, i32 0, i32 6
  %2894 = load i32, ptr %19, align 4, !tbaa !9
  %2895 = zext i32 %2894 to i64
  %2896 = add i64 %2895, 5712
  %2897 = call i32 @i32_load(ptr noundef %2893, i64 noundef %2896)
  store i32 %2897, ptr %19, align 4, !tbaa !9
  %2898 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2898, ptr %10, align 4, !tbaa !9
  %2899 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %2899, ptr %20, align 4, !tbaa !9
  store i32 5716, ptr %21, align 4, !tbaa !9
  %2900 = load i32, ptr %21, align 4, !tbaa !9
  %2901 = load i32, ptr %20, align 4, !tbaa !9
  %2902 = add i32 %2901, %2900
  store i32 %2902, ptr %20, align 4, !tbaa !9
  %2903 = load ptr, ptr %5, align 8, !tbaa !5
  %2904 = getelementptr inbounds %struct.w2c_hermes, ptr %2903, i32 0, i32 6
  %2905 = load i32, ptr %20, align 4, !tbaa !9
  %2906 = zext i32 %2905 to i64
  %2907 = call i32 @i32_load(ptr noundef %2904, i64 noundef %2906)
  store i32 %2907, ptr %20, align 4, !tbaa !9
  %2908 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %2908, ptr %9, align 4, !tbaa !9
  %2909 = load i32, ptr %19, align 4, !tbaa !9
  %2910 = load i32, ptr %20, align 4, !tbaa !9
  %2911 = icmp ne i32 %2909, %2910
  %2912 = zext i1 %2911 to i32
  store i32 %2912, ptr %19, align 4, !tbaa !9
  %2913 = load i32, ptr %19, align 4, !tbaa !9
  %2914 = icmp ne i32 %2913, 0
  br i1 %2914, label %2915, label %3007

2915:                                             ; preds = %2868
  br label %2916

2916:                                             ; preds = %3005, %2915
  %2917 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2917, ptr %19, align 4, !tbaa !9
  %2918 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2918, ptr %20, align 4, !tbaa !9
  %2919 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %2919, ptr %21, align 4, !tbaa !9
  %2920 = load ptr, ptr %5, align 8, !tbaa !5
  %2921 = getelementptr inbounds %struct.w2c_hermes, ptr %2920, i32 0, i32 6
  %2922 = load i32, ptr %21, align 4, !tbaa !9
  %2923 = zext i32 %2922 to i64
  %2924 = call i32 @i32_load(ptr noundef %2921, i64 noundef %2923)
  store i32 %2924, ptr %21, align 4, !tbaa !9
  %2925 = load ptr, ptr %5, align 8, !tbaa !5
  %2926 = getelementptr inbounds %struct.w2c_hermes, ptr %2925, i32 0, i32 6
  %2927 = load i32, ptr %21, align 4, !tbaa !9
  %2928 = zext i32 %2927 to i64
  %2929 = add i64 %2928, 16
  %2930 = call i32 @i32_load(ptr noundef %2926, i64 noundef %2929)
  store i32 %2930, ptr %21, align 4, !tbaa !9
  %2931 = load i32, ptr %21, align 4, !tbaa !9
  %2932 = load ptr, ptr %5, align 8, !tbaa !5
  %2933 = getelementptr inbounds %struct.w2c_hermes, ptr %2932, i32 0, i32 7
  %2934 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2933, i32 0, i32 2
  %2935 = load i32, ptr %2934, align 4, !tbaa !18
  %2936 = icmp ult i32 %2931, %2935
  br i1 %2936, label %2937, label %2960

2937:                                             ; preds = %2916
  %2938 = load ptr, ptr %5, align 8, !tbaa !5
  %2939 = getelementptr inbounds %struct.w2c_hermes, ptr %2938, i32 0, i32 7
  %2940 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2939, i32 0, i32 0
  %2941 = load ptr, ptr %2940, align 8, !tbaa !19
  %2942 = load i32, ptr %21, align 4, !tbaa !9
  %2943 = zext i32 %2942 to i64
  %2944 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2941, i64 %2943
  %2945 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2944, i32 0, i32 1
  %2946 = load ptr, ptr %2945, align 8, !tbaa !20
  %2947 = icmp ne ptr %2946, null
  br i1 %2947, label %2948, label %2960

2948:                                             ; preds = %2937
  %2949 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %2950 = load ptr, ptr %5, align 8, !tbaa !5
  %2951 = getelementptr inbounds %struct.w2c_hermes, ptr %2950, i32 0, i32 7
  %2952 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2951, i32 0, i32 0
  %2953 = load ptr, ptr %2952, align 8, !tbaa !19
  %2954 = load i32, ptr %21, align 4, !tbaa !9
  %2955 = zext i32 %2954 to i64
  %2956 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2953, i64 %2955
  %2957 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2956, i32 0, i32 0
  %2958 = load ptr, ptr %2957, align 8, !tbaa !22
  %2959 = call zeroext i1 @func_types_eq(ptr noundef %2949, ptr noundef %2958)
  br label %2960

2960:                                             ; preds = %2948, %2937, %2916
  %2961 = phi i1 [ false, %2937 ], [ false, %2916 ], [ %2959, %2948 ]
  %2962 = xor i1 %2961, true
  %2963 = xor i1 %2962, true
  %2964 = zext i1 %2963 to i32
  %2965 = sext i32 %2964 to i64
  %2966 = call i64 @llvm.expect.i64(i64 %2965, i64 1)
  %2967 = icmp ne i64 %2966, 0
  br i1 %2967, label %2970, label %2968

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

2969:                                             ; No predecessors!
  br label %2970

2970:                                             ; preds = %2969, %2960
  %2971 = phi i1 [ true, %2960 ], [ false, %2969 ]
  %2972 = zext i1 %2971 to i32
  %2973 = load ptr, ptr %5, align 8, !tbaa !5
  %2974 = getelementptr inbounds %struct.w2c_hermes, ptr %2973, i32 0, i32 7
  %2975 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2974, i32 0, i32 0
  %2976 = load ptr, ptr %2975, align 8, !tbaa !19
  %2977 = load i32, ptr %21, align 4, !tbaa !9
  %2978 = zext i32 %2977 to i64
  %2979 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2976, i64 %2978
  %2980 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2979, i32 0, i32 1
  %2981 = load ptr, ptr %2980, align 8, !tbaa !20
  %2982 = load ptr, ptr %5, align 8, !tbaa !5
  %2983 = getelementptr inbounds %struct.w2c_hermes, ptr %2982, i32 0, i32 7
  %2984 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2983, i32 0, i32 0
  %2985 = load ptr, ptr %2984, align 8, !tbaa !19
  %2986 = load i32, ptr %21, align 4, !tbaa !9
  %2987 = zext i32 %2986 to i64
  %2988 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2985, i64 %2987
  %2989 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2988, i32 0, i32 2
  %2990 = load ptr, ptr %2989, align 8, !tbaa !23
  %2991 = load i32, ptr %19, align 4, !tbaa !9
  %2992 = load i32, ptr %20, align 4, !tbaa !9
  call void %2981(ptr noundef %2990, i32 noundef %2991, i32 noundef %2992)
  %2993 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %2993, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %2994 = load i32, ptr %20, align 4, !tbaa !9
  %2995 = load i32, ptr %19, align 4, !tbaa !9
  %2996 = add i32 %2995, %2994
  store i32 %2996, ptr %19, align 4, !tbaa !9
  %2997 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %2997, ptr %10, align 4, !tbaa !9
  %2998 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2998, ptr %20, align 4, !tbaa !9
  %2999 = load i32, ptr %19, align 4, !tbaa !9
  %3000 = load i32, ptr %20, align 4, !tbaa !9
  %3001 = icmp ne i32 %2999, %3000
  %3002 = zext i1 %3001 to i32
  store i32 %3002, ptr %19, align 4, !tbaa !9
  %3003 = load i32, ptr %19, align 4, !tbaa !9
  %3004 = icmp ne i32 %3003, 0
  br i1 %3004, label %3005, label %3006

3005:                                             ; preds = %2970
  br label %2916

3006:                                             ; preds = %2970
  br label %3007

3007:                                             ; preds = %3006, %2868
  %3008 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3008, ptr %19, align 4, !tbaa !9
  %3009 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3009, ptr %20, align 4, !tbaa !9
  %3010 = load ptr, ptr %5, align 8, !tbaa !5
  %3011 = getelementptr inbounds %struct.w2c_hermes, ptr %3010, i32 0, i32 6
  %3012 = load i32, ptr %20, align 4, !tbaa !9
  %3013 = zext i32 %3012 to i64
  %3014 = call i32 @i32_load(ptr noundef %3011, i64 noundef %3013)
  store i32 %3014, ptr %20, align 4, !tbaa !9
  %3015 = load ptr, ptr %5, align 8, !tbaa !5
  %3016 = getelementptr inbounds %struct.w2c_hermes, ptr %3015, i32 0, i32 6
  %3017 = load i32, ptr %20, align 4, !tbaa !9
  %3018 = zext i32 %3017 to i64
  %3019 = add i64 %3018, 12
  %3020 = call i32 @i32_load(ptr noundef %3016, i64 noundef %3019)
  store i32 %3020, ptr %20, align 4, !tbaa !9
  %3021 = load i32, ptr %20, align 4, !tbaa !9
  %3022 = load ptr, ptr %5, align 8, !tbaa !5
  %3023 = getelementptr inbounds %struct.w2c_hermes, ptr %3022, i32 0, i32 7
  %3024 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3023, i32 0, i32 2
  %3025 = load i32, ptr %3024, align 4, !tbaa !18
  %3026 = icmp ult i32 %3021, %3025
  br i1 %3026, label %3027, label %3050

3027:                                             ; preds = %3007
  %3028 = load ptr, ptr %5, align 8, !tbaa !5
  %3029 = getelementptr inbounds %struct.w2c_hermes, ptr %3028, i32 0, i32 7
  %3030 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3029, i32 0, i32 0
  %3031 = load ptr, ptr %3030, align 8, !tbaa !19
  %3032 = load i32, ptr %20, align 4, !tbaa !9
  %3033 = zext i32 %3032 to i64
  %3034 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3031, i64 %3033
  %3035 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3034, i32 0, i32 1
  %3036 = load ptr, ptr %3035, align 8, !tbaa !20
  %3037 = icmp ne ptr %3036, null
  br i1 %3037, label %3038, label %3050

3038:                                             ; preds = %3027
  %3039 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %3040 = load ptr, ptr %5, align 8, !tbaa !5
  %3041 = getelementptr inbounds %struct.w2c_hermes, ptr %3040, i32 0, i32 7
  %3042 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3041, i32 0, i32 0
  %3043 = load ptr, ptr %3042, align 8, !tbaa !19
  %3044 = load i32, ptr %20, align 4, !tbaa !9
  %3045 = zext i32 %3044 to i64
  %3046 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3043, i64 %3045
  %3047 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3046, i32 0, i32 0
  %3048 = load ptr, ptr %3047, align 8, !tbaa !22
  %3049 = call zeroext i1 @func_types_eq(ptr noundef %3039, ptr noundef %3048)
  br label %3050

3050:                                             ; preds = %3038, %3027, %3007
  %3051 = phi i1 [ false, %3027 ], [ false, %3007 ], [ %3049, %3038 ]
  %3052 = xor i1 %3051, true
  %3053 = xor i1 %3052, true
  %3054 = zext i1 %3053 to i32
  %3055 = sext i32 %3054 to i64
  %3056 = call i64 @llvm.expect.i64(i64 %3055, i64 1)
  %3057 = icmp ne i64 %3056, 0
  br i1 %3057, label %3060, label %3058

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

3059:                                             ; No predecessors!
  br label %3060

3060:                                             ; preds = %3059, %3050
  %3061 = phi i1 [ true, %3050 ], [ false, %3059 ]
  %3062 = zext i1 %3061 to i32
  %3063 = load ptr, ptr %5, align 8, !tbaa !5
  %3064 = getelementptr inbounds %struct.w2c_hermes, ptr %3063, i32 0, i32 7
  %3065 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3064, i32 0, i32 0
  %3066 = load ptr, ptr %3065, align 8, !tbaa !19
  %3067 = load i32, ptr %20, align 4, !tbaa !9
  %3068 = zext i32 %3067 to i64
  %3069 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3066, i64 %3068
  %3070 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3069, i32 0, i32 1
  %3071 = load ptr, ptr %3070, align 8, !tbaa !20
  %3072 = load ptr, ptr %5, align 8, !tbaa !5
  %3073 = getelementptr inbounds %struct.w2c_hermes, ptr %3072, i32 0, i32 7
  %3074 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3073, i32 0, i32 0
  %3075 = load ptr, ptr %3074, align 8, !tbaa !19
  %3076 = load i32, ptr %20, align 4, !tbaa !9
  %3077 = zext i32 %3076 to i64
  %3078 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3075, i64 %3077
  %3079 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3078, i32 0, i32 2
  %3080 = load ptr, ptr %3079, align 8, !tbaa !23
  %3081 = load i32, ptr %19, align 4, !tbaa !9
  call void %3071(ptr noundef %3080, i32 noundef %3081)
  %3082 = load ptr, ptr %5, align 8, !tbaa !5
  %3083 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %3082)
  store i64 %3083, ptr %24, align 8, !tbaa !11
  %3084 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %3084, ptr %18, align 8, !tbaa !11
  %3085 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3085, ptr %19, align 4, !tbaa !9
  store i32 5360, ptr %20, align 4, !tbaa !9
  %3086 = load i32, ptr %20, align 4, !tbaa !9
  %3087 = load i32, ptr %19, align 4, !tbaa !9
  %3088 = add i32 %3087, %3086
  store i32 %3088, ptr %19, align 4, !tbaa !9
  %3089 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3089, ptr %9, align 4, !tbaa !9
  %3090 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3090, ptr %20, align 4, !tbaa !9
  %3091 = load ptr, ptr %5, align 8, !tbaa !5
  %3092 = getelementptr inbounds %struct.w2c_hermes, ptr %3091, i32 0, i32 6
  %3093 = load i32, ptr %20, align 4, !tbaa !9
  %3094 = zext i32 %3093 to i64
  %3095 = call double @f64_load(ptr noundef %3092, i64 noundef %3094)
  store double %3095, ptr %28, align 8, !tbaa !24
  %3096 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %3096, ptr %26, align 8, !tbaa !11
  %3097 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %3097, ptr %27, align 8, !tbaa !11
  %3098 = load i64, ptr %27, align 8, !tbaa !11
  %3099 = load i64, ptr %26, align 8, !tbaa !11
  %3100 = sub i64 %3099, %3098
  store i64 %3100, ptr %26, align 8, !tbaa !11
  %3101 = load i64, ptr %26, align 8, !tbaa !11
  %3102 = sitofp i64 %3101 to double
  store double %3102, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %3103 = load double, ptr %30, align 8, !tbaa !24
  %3104 = load double, ptr %29, align 8, !tbaa !24
  %3105 = fdiv double %3104, %3103
  store double %3105, ptr %29, align 8, !tbaa !24
  %3106 = load double, ptr %29, align 8, !tbaa !24
  %3107 = load double, ptr %28, align 8, !tbaa !24
  %3108 = fadd double %3107, %3106
  store double %3108, ptr %28, align 8, !tbaa !24
  %3109 = load ptr, ptr %5, align 8, !tbaa !5
  %3110 = getelementptr inbounds %struct.w2c_hermes, ptr %3109, i32 0, i32 6
  %3111 = load i32, ptr %19, align 4, !tbaa !9
  %3112 = zext i32 %3111 to i64
  %3113 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %3110, i64 noundef %3112, double noundef %3113)
  %3114 = load ptr, ptr %5, align 8, !tbaa !5
  %3115 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %3114)
  store i64 %3115, ptr %24, align 8, !tbaa !11
  %3116 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %3116, ptr %17, align 8, !tbaa !11
  %3117 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3117, ptr %19, align 4, !tbaa !9
  store i32 6, ptr %20, align 4, !tbaa !9
  %3118 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3118, ptr %21, align 4, !tbaa !9
  %3119 = load ptr, ptr %5, align 8, !tbaa !5
  %3120 = getelementptr inbounds %struct.w2c_hermes, ptr %3119, i32 0, i32 6
  %3121 = load i32, ptr %21, align 4, !tbaa !9
  %3122 = zext i32 %3121 to i64
  %3123 = call i32 @i32_load(ptr noundef %3120, i64 noundef %3122)
  store i32 %3123, ptr %21, align 4, !tbaa !9
  %3124 = load ptr, ptr %5, align 8, !tbaa !5
  %3125 = getelementptr inbounds %struct.w2c_hermes, ptr %3124, i32 0, i32 6
  %3126 = load i32, ptr %21, align 4, !tbaa !9
  %3127 = zext i32 %3126 to i64
  %3128 = add i64 %3127, 8
  %3129 = call i32 @i32_load(ptr noundef %3125, i64 noundef %3128)
  store i32 %3129, ptr %21, align 4, !tbaa !9
  %3130 = load i32, ptr %21, align 4, !tbaa !9
  %3131 = load ptr, ptr %5, align 8, !tbaa !5
  %3132 = getelementptr inbounds %struct.w2c_hermes, ptr %3131, i32 0, i32 7
  %3133 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3132, i32 0, i32 2
  %3134 = load i32, ptr %3133, align 4, !tbaa !18
  %3135 = icmp ult i32 %3130, %3134
  br i1 %3135, label %3136, label %3159

3136:                                             ; preds = %3060
  %3137 = load ptr, ptr %5, align 8, !tbaa !5
  %3138 = getelementptr inbounds %struct.w2c_hermes, ptr %3137, i32 0, i32 7
  %3139 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3138, i32 0, i32 0
  %3140 = load ptr, ptr %3139, align 8, !tbaa !19
  %3141 = load i32, ptr %21, align 4, !tbaa !9
  %3142 = zext i32 %3141 to i64
  %3143 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3140, i64 %3142
  %3144 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3143, i32 0, i32 1
  %3145 = load ptr, ptr %3144, align 8, !tbaa !20
  %3146 = icmp ne ptr %3145, null
  br i1 %3146, label %3147, label %3159

3147:                                             ; preds = %3136
  %3148 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %3149 = load ptr, ptr %5, align 8, !tbaa !5
  %3150 = getelementptr inbounds %struct.w2c_hermes, ptr %3149, i32 0, i32 7
  %3151 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3150, i32 0, i32 0
  %3152 = load ptr, ptr %3151, align 8, !tbaa !19
  %3153 = load i32, ptr %21, align 4, !tbaa !9
  %3154 = zext i32 %3153 to i64
  %3155 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3152, i64 %3154
  %3156 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3155, i32 0, i32 0
  %3157 = load ptr, ptr %3156, align 8, !tbaa !22
  %3158 = call zeroext i1 @func_types_eq(ptr noundef %3148, ptr noundef %3157)
  br label %3159

3159:                                             ; preds = %3147, %3136, %3060
  %3160 = phi i1 [ false, %3136 ], [ false, %3060 ], [ %3158, %3147 ]
  %3161 = xor i1 %3160, true
  %3162 = xor i1 %3161, true
  %3163 = zext i1 %3162 to i32
  %3164 = sext i32 %3163 to i64
  %3165 = call i64 @llvm.expect.i64(i64 %3164, i64 1)
  %3166 = icmp ne i64 %3165, 0
  br i1 %3166, label %3169, label %3167

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

3168:                                             ; No predecessors!
  br label %3169

3169:                                             ; preds = %3168, %3159
  %3170 = phi i1 [ true, %3159 ], [ false, %3168 ]
  %3171 = zext i1 %3170 to i32
  %3172 = load ptr, ptr %5, align 8, !tbaa !5
  %3173 = getelementptr inbounds %struct.w2c_hermes, ptr %3172, i32 0, i32 7
  %3174 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3173, i32 0, i32 0
  %3175 = load ptr, ptr %3174, align 8, !tbaa !19
  %3176 = load i32, ptr %21, align 4, !tbaa !9
  %3177 = zext i32 %3176 to i64
  %3178 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3175, i64 %3177
  %3179 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3178, i32 0, i32 1
  %3180 = load ptr, ptr %3179, align 8, !tbaa !20
  %3181 = load ptr, ptr %5, align 8, !tbaa !5
  %3182 = getelementptr inbounds %struct.w2c_hermes, ptr %3181, i32 0, i32 7
  %3183 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3182, i32 0, i32 0
  %3184 = load ptr, ptr %3183, align 8, !tbaa !19
  %3185 = load i32, ptr %21, align 4, !tbaa !9
  %3186 = zext i32 %3185 to i64
  %3187 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3184, i64 %3186
  %3188 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3187, i32 0, i32 2
  %3189 = load ptr, ptr %3188, align 8, !tbaa !23
  %3190 = load i32, ptr %19, align 4, !tbaa !9
  %3191 = load i32, ptr %20, align 4, !tbaa !9
  call void %3180(ptr noundef %3189, i32 noundef %3190, i32 noundef %3191)
  %3192 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3192, ptr %19, align 4, !tbaa !9
  store i32 5732, ptr %20, align 4, !tbaa !9
  %3193 = load i32, ptr %20, align 4, !tbaa !9
  %3194 = load i32, ptr %19, align 4, !tbaa !9
  %3195 = add i32 %3194, %3193
  store i32 %3195, ptr %19, align 4, !tbaa !9
  %3196 = load ptr, ptr %5, align 8, !tbaa !5
  %3197 = getelementptr inbounds %struct.w2c_hermes, ptr %3196, i32 0, i32 6
  %3198 = load i32, ptr %19, align 4, !tbaa !9
  %3199 = zext i32 %3198 to i64
  %3200 = call i32 @i32_load(ptr noundef %3197, i64 noundef %3199)
  store i32 %3200, ptr %19, align 4, !tbaa !9
  %3201 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3201, ptr %11, align 4, !tbaa !9
  %3202 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3202, ptr %20, align 4, !tbaa !9
  store i32 5736, ptr %21, align 4, !tbaa !9
  %3203 = load i32, ptr %21, align 4, !tbaa !9
  %3204 = load i32, ptr %20, align 4, !tbaa !9
  %3205 = add i32 %3204, %3203
  store i32 %3205, ptr %20, align 4, !tbaa !9
  %3206 = load ptr, ptr %5, align 8, !tbaa !5
  %3207 = getelementptr inbounds %struct.w2c_hermes, ptr %3206, i32 0, i32 6
  %3208 = load i32, ptr %20, align 4, !tbaa !9
  %3209 = zext i32 %3208 to i64
  %3210 = call i32 @i32_load(ptr noundef %3207, i64 noundef %3209)
  store i32 %3210, ptr %20, align 4, !tbaa !9
  %3211 = load i32, ptr %19, align 4, !tbaa !9
  %3212 = load i32, ptr %20, align 4, !tbaa !9
  %3213 = icmp eq i32 %3211, %3212
  %3214 = zext i1 %3213 to i32
  store i32 %3214, ptr %19, align 4, !tbaa !9
  %3215 = load i32, ptr %19, align 4, !tbaa !9
  %3216 = icmp ne i32 %3215, 0
  br i1 %3216, label %3217, label %3218

3217:                                             ; preds = %3169
  br label %3430

3218:                                             ; preds = %3169
  %3219 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3219, ptr %19, align 4, !tbaa !9
  %3220 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3220, ptr %20, align 4, !tbaa !9
  store i32 5744, ptr %21, align 4, !tbaa !9
  %3221 = load i32, ptr %21, align 4, !tbaa !9
  %3222 = load i32, ptr %20, align 4, !tbaa !9
  %3223 = add i32 %3222, %3221
  store i32 %3223, ptr %20, align 4, !tbaa !9
  %3224 = load ptr, ptr %5, align 8, !tbaa !5
  %3225 = getelementptr inbounds %struct.w2c_hermes, ptr %3224, i32 0, i32 6
  %3226 = load i32, ptr %20, align 4, !tbaa !9
  %3227 = zext i32 %3226 to i64
  %3228 = call i32 @i32_load(ptr noundef %3225, i64 noundef %3227)
  store i32 %3228, ptr %20, align 4, !tbaa !9
  %3229 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %3229, ptr %9, align 4, !tbaa !9
  store i32 8, ptr %21, align 4, !tbaa !9
  %3230 = load i32, ptr %21, align 4, !tbaa !9
  %3231 = and i32 %3230, 31
  %3232 = load i32, ptr %20, align 4, !tbaa !9
  %3233 = lshr i32 %3232, %3231
  store i32 %3233, ptr %20, align 4, !tbaa !9
  store i32 16777212, ptr %21, align 4, !tbaa !9
  %3234 = load i32, ptr %21, align 4, !tbaa !9
  %3235 = load i32, ptr %20, align 4, !tbaa !9
  %3236 = and i32 %3235, %3234
  store i32 %3236, ptr %20, align 4, !tbaa !9
  %3237 = load i32, ptr %20, align 4, !tbaa !9
  %3238 = load i32, ptr %19, align 4, !tbaa !9
  %3239 = add i32 %3238, %3237
  store i32 %3239, ptr %19, align 4, !tbaa !9
  %3240 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3240, ptr %12, align 4, !tbaa !9
  %3241 = load ptr, ptr %5, align 8, !tbaa !5
  %3242 = getelementptr inbounds %struct.w2c_hermes, ptr %3241, i32 0, i32 6
  %3243 = load i32, ptr %19, align 4, !tbaa !9
  %3244 = zext i32 %3243 to i64
  %3245 = call i32 @i32_load(ptr noundef %3242, i64 noundef %3244)
  store i32 %3245, ptr %19, align 4, !tbaa !9
  %3246 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3246, ptr %20, align 4, !tbaa !9
  store i32 1023, ptr %21, align 4, !tbaa !9
  %3247 = load i32, ptr %21, align 4, !tbaa !9
  %3248 = load i32, ptr %20, align 4, !tbaa !9
  %3249 = and i32 %3248, %3247
  store i32 %3249, ptr %20, align 4, !tbaa !9
  store i32 2, ptr %21, align 4, !tbaa !9
  %3250 = load i32, ptr %21, align 4, !tbaa !9
  %3251 = and i32 %3250, 31
  %3252 = load i32, ptr %20, align 4, !tbaa !9
  %3253 = shl i32 %3252, %3251
  store i32 %3253, ptr %20, align 4, !tbaa !9
  %3254 = load i32, ptr %20, align 4, !tbaa !9
  %3255 = load i32, ptr %19, align 4, !tbaa !9
  %3256 = add i32 %3255, %3254
  store i32 %3256, ptr %19, align 4, !tbaa !9
  %3257 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3257, ptr %10, align 4, !tbaa !9
  %3258 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %3258, ptr %20, align 4, !tbaa !9
  %3259 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3259, ptr %21, align 4, !tbaa !9
  store i32 5748, ptr %22, align 4, !tbaa !9
  %3260 = load i32, ptr %22, align 4, !tbaa !9
  %3261 = load i32, ptr %21, align 4, !tbaa !9
  %3262 = add i32 %3261, %3260
  store i32 %3262, ptr %21, align 4, !tbaa !9
  %3263 = load ptr, ptr %5, align 8, !tbaa !5
  %3264 = getelementptr inbounds %struct.w2c_hermes, ptr %3263, i32 0, i32 6
  %3265 = load i32, ptr %21, align 4, !tbaa !9
  %3266 = zext i32 %3265 to i64
  %3267 = call i32 @i32_load(ptr noundef %3264, i64 noundef %3266)
  store i32 %3267, ptr %21, align 4, !tbaa !9
  %3268 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3268, ptr %22, align 4, !tbaa !9
  %3269 = load i32, ptr %22, align 4, !tbaa !9
  %3270 = load i32, ptr %21, align 4, !tbaa !9
  %3271 = add i32 %3270, %3269
  store i32 %3271, ptr %21, align 4, !tbaa !9
  %3272 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %3272, ptr %9, align 4, !tbaa !9
  store i32 8, ptr %22, align 4, !tbaa !9
  %3273 = load i32, ptr %22, align 4, !tbaa !9
  %3274 = and i32 %3273, 31
  %3275 = load i32, ptr %21, align 4, !tbaa !9
  %3276 = lshr i32 %3275, %3274
  store i32 %3276, ptr %21, align 4, !tbaa !9
  store i32 16777212, ptr %22, align 4, !tbaa !9
  %3277 = load i32, ptr %22, align 4, !tbaa !9
  %3278 = load i32, ptr %21, align 4, !tbaa !9
  %3279 = and i32 %3278, %3277
  store i32 %3279, ptr %21, align 4, !tbaa !9
  %3280 = load i32, ptr %21, align 4, !tbaa !9
  %3281 = load i32, ptr %20, align 4, !tbaa !9
  %3282 = add i32 %3281, %3280
  store i32 %3282, ptr %20, align 4, !tbaa !9
  %3283 = load ptr, ptr %5, align 8, !tbaa !5
  %3284 = getelementptr inbounds %struct.w2c_hermes, ptr %3283, i32 0, i32 6
  %3285 = load i32, ptr %20, align 4, !tbaa !9
  %3286 = zext i32 %3285 to i64
  %3287 = call i32 @i32_load(ptr noundef %3284, i64 noundef %3286)
  store i32 %3287, ptr %20, align 4, !tbaa !9
  %3288 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3288, ptr %21, align 4, !tbaa !9
  store i32 1023, ptr %22, align 4, !tbaa !9
  %3289 = load i32, ptr %22, align 4, !tbaa !9
  %3290 = load i32, ptr %21, align 4, !tbaa !9
  %3291 = and i32 %3290, %3289
  store i32 %3291, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %3292 = load i32, ptr %22, align 4, !tbaa !9
  %3293 = and i32 %3292, 31
  %3294 = load i32, ptr %21, align 4, !tbaa !9
  %3295 = shl i32 %3294, %3293
  store i32 %3295, ptr %21, align 4, !tbaa !9
  %3296 = load i32, ptr %21, align 4, !tbaa !9
  %3297 = load i32, ptr %20, align 4, !tbaa !9
  %3298 = add i32 %3297, %3296
  store i32 %3298, ptr %20, align 4, !tbaa !9
  %3299 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %3299, ptr %9, align 4, !tbaa !9
  %3300 = load i32, ptr %19, align 4, !tbaa !9
  %3301 = load i32, ptr %20, align 4, !tbaa !9
  %3302 = icmp eq i32 %3300, %3301
  %3303 = zext i1 %3302 to i32
  store i32 %3303, ptr %19, align 4, !tbaa !9
  %3304 = load i32, ptr %19, align 4, !tbaa !9
  %3305 = icmp ne i32 %3304, 0
  br i1 %3305, label %3306, label %3307

3306:                                             ; preds = %3218
  br label %3430

3307:                                             ; preds = %3218
  br label %3308

3308:                                             ; preds = %3428, %3307
  %3309 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3309, ptr %19, align 4, !tbaa !9
  %3310 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3310, ptr %20, align 4, !tbaa !9
  %3311 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3311, ptr %21, align 4, !tbaa !9
  %3312 = load ptr, ptr %5, align 8, !tbaa !5
  %3313 = getelementptr inbounds %struct.w2c_hermes, ptr %3312, i32 0, i32 6
  %3314 = load i32, ptr %21, align 4, !tbaa !9
  %3315 = zext i32 %3314 to i64
  %3316 = call i32 @i32_load(ptr noundef %3313, i64 noundef %3315)
  store i32 %3316, ptr %21, align 4, !tbaa !9
  %3317 = load ptr, ptr %5, align 8, !tbaa !5
  %3318 = getelementptr inbounds %struct.w2c_hermes, ptr %3317, i32 0, i32 6
  %3319 = load i32, ptr %21, align 4, !tbaa !9
  %3320 = zext i32 %3319 to i64
  %3321 = add i64 %3320, 16
  %3322 = call i32 @i32_load(ptr noundef %3318, i64 noundef %3321)
  store i32 %3322, ptr %21, align 4, !tbaa !9
  %3323 = load i32, ptr %21, align 4, !tbaa !9
  %3324 = load ptr, ptr %5, align 8, !tbaa !5
  %3325 = getelementptr inbounds %struct.w2c_hermes, ptr %3324, i32 0, i32 7
  %3326 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3325, i32 0, i32 2
  %3327 = load i32, ptr %3326, align 4, !tbaa !18
  %3328 = icmp ult i32 %3323, %3327
  br i1 %3328, label %3329, label %3352

3329:                                             ; preds = %3308
  %3330 = load ptr, ptr %5, align 8, !tbaa !5
  %3331 = getelementptr inbounds %struct.w2c_hermes, ptr %3330, i32 0, i32 7
  %3332 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3331, i32 0, i32 0
  %3333 = load ptr, ptr %3332, align 8, !tbaa !19
  %3334 = load i32, ptr %21, align 4, !tbaa !9
  %3335 = zext i32 %3334 to i64
  %3336 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3333, i64 %3335
  %3337 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3336, i32 0, i32 1
  %3338 = load ptr, ptr %3337, align 8, !tbaa !20
  %3339 = icmp ne ptr %3338, null
  br i1 %3339, label %3340, label %3352

3340:                                             ; preds = %3329
  %3341 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %3342 = load ptr, ptr %5, align 8, !tbaa !5
  %3343 = getelementptr inbounds %struct.w2c_hermes, ptr %3342, i32 0, i32 7
  %3344 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3343, i32 0, i32 0
  %3345 = load ptr, ptr %3344, align 8, !tbaa !19
  %3346 = load i32, ptr %21, align 4, !tbaa !9
  %3347 = zext i32 %3346 to i64
  %3348 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3345, i64 %3347
  %3349 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3348, i32 0, i32 0
  %3350 = load ptr, ptr %3349, align 8, !tbaa !22
  %3351 = call zeroext i1 @func_types_eq(ptr noundef %3341, ptr noundef %3350)
  br label %3352

3352:                                             ; preds = %3340, %3329, %3308
  %3353 = phi i1 [ false, %3329 ], [ false, %3308 ], [ %3351, %3340 ]
  %3354 = xor i1 %3353, true
  %3355 = xor i1 %3354, true
  %3356 = zext i1 %3355 to i32
  %3357 = sext i32 %3356 to i64
  %3358 = call i64 @llvm.expect.i64(i64 %3357, i64 1)
  %3359 = icmp ne i64 %3358, 0
  br i1 %3359, label %3362, label %3360

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

3361:                                             ; No predecessors!
  br label %3362

3362:                                             ; preds = %3361, %3352
  %3363 = phi i1 [ true, %3352 ], [ false, %3361 ]
  %3364 = zext i1 %3363 to i32
  %3365 = load ptr, ptr %5, align 8, !tbaa !5
  %3366 = getelementptr inbounds %struct.w2c_hermes, ptr %3365, i32 0, i32 7
  %3367 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3366, i32 0, i32 0
  %3368 = load ptr, ptr %3367, align 8, !tbaa !19
  %3369 = load i32, ptr %21, align 4, !tbaa !9
  %3370 = zext i32 %3369 to i64
  %3371 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3368, i64 %3370
  %3372 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3371, i32 0, i32 1
  %3373 = load ptr, ptr %3372, align 8, !tbaa !20
  %3374 = load ptr, ptr %5, align 8, !tbaa !5
  %3375 = getelementptr inbounds %struct.w2c_hermes, ptr %3374, i32 0, i32 7
  %3376 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3375, i32 0, i32 0
  %3377 = load ptr, ptr %3376, align 8, !tbaa !19
  %3378 = load i32, ptr %21, align 4, !tbaa !9
  %3379 = zext i32 %3378 to i64
  %3380 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3377, i64 %3379
  %3381 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3380, i32 0, i32 2
  %3382 = load ptr, ptr %3381, align 8, !tbaa !23
  %3383 = load i32, ptr %19, align 4, !tbaa !9
  %3384 = load i32, ptr %20, align 4, !tbaa !9
  call void %3373(ptr noundef %3382, i32 noundef %3383, i32 noundef %3384)
  %3385 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3385, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %3386 = load i32, ptr %20, align 4, !tbaa !9
  %3387 = load i32, ptr %19, align 4, !tbaa !9
  %3388 = add i32 %3387, %3386
  store i32 %3388, ptr %19, align 4, !tbaa !9
  %3389 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3389, ptr %10, align 4, !tbaa !9
  %3390 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %3390, ptr %20, align 4, !tbaa !9
  %3391 = load ptr, ptr %5, align 8, !tbaa !5
  %3392 = getelementptr inbounds %struct.w2c_hermes, ptr %3391, i32 0, i32 6
  %3393 = load i32, ptr %20, align 4, !tbaa !9
  %3394 = zext i32 %3393 to i64
  %3395 = call i32 @i32_load(ptr noundef %3392, i64 noundef %3394)
  store i32 %3395, ptr %20, align 4, !tbaa !9
  %3396 = load i32, ptr %20, align 4, !tbaa !9
  %3397 = load i32, ptr %19, align 4, !tbaa !9
  %3398 = sub i32 %3397, %3396
  store i32 %3398, ptr %19, align 4, !tbaa !9
  store i32 4096, ptr %20, align 4, !tbaa !9
  %3399 = load i32, ptr %19, align 4, !tbaa !9
  %3400 = load i32, ptr %20, align 4, !tbaa !9
  %3401 = icmp eq i32 %3399, %3400
  %3402 = zext i1 %3401 to i32
  store i32 %3402, ptr %19, align 4, !tbaa !9
  %3403 = load i32, ptr %19, align 4, !tbaa !9
  %3404 = icmp ne i32 %3403, 0
  br i1 %3404, label %3405, label %3419

3405:                                             ; preds = %3362
  %3406 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %3406, ptr %19, align 4, !tbaa !9
  %3407 = load ptr, ptr %5, align 8, !tbaa !5
  %3408 = getelementptr inbounds %struct.w2c_hermes, ptr %3407, i32 0, i32 6
  %3409 = load i32, ptr %19, align 4, !tbaa !9
  %3410 = zext i32 %3409 to i64
  %3411 = add i64 %3410, 4
  %3412 = call i32 @i32_load(ptr noundef %3408, i64 noundef %3411)
  store i32 %3412, ptr %19, align 4, !tbaa !9
  %3413 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3413, ptr %10, align 4, !tbaa !9
  %3414 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %3414, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %3415 = load i32, ptr %20, align 4, !tbaa !9
  %3416 = load i32, ptr %19, align 4, !tbaa !9
  %3417 = add i32 %3416, %3415
  store i32 %3417, ptr %19, align 4, !tbaa !9
  %3418 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3418, ptr %12, align 4, !tbaa !9
  br label %3419

3419:                                             ; preds = %3405, %3362
  %3420 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3420, ptr %19, align 4, !tbaa !9
  %3421 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %3421, ptr %20, align 4, !tbaa !9
  %3422 = load i32, ptr %19, align 4, !tbaa !9
  %3423 = load i32, ptr %20, align 4, !tbaa !9
  %3424 = icmp ne i32 %3422, %3423
  %3425 = zext i1 %3424 to i32
  store i32 %3425, ptr %19, align 4, !tbaa !9
  %3426 = load i32, ptr %19, align 4, !tbaa !9
  %3427 = icmp ne i32 %3426, 0
  br i1 %3427, label %3428, label %3429

3428:                                             ; preds = %3419
  br label %3308

3429:                                             ; preds = %3419
  br label %3430

3430:                                             ; preds = %3429, %3306, %3217
  %3431 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3431, ptr %19, align 4, !tbaa !9
  %3432 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3432, ptr %20, align 4, !tbaa !9
  %3433 = load ptr, ptr %5, align 8, !tbaa !5
  %3434 = getelementptr inbounds %struct.w2c_hermes, ptr %3433, i32 0, i32 6
  %3435 = load i32, ptr %20, align 4, !tbaa !9
  %3436 = zext i32 %3435 to i64
  %3437 = call i32 @i32_load(ptr noundef %3434, i64 noundef %3436)
  store i32 %3437, ptr %20, align 4, !tbaa !9
  %3438 = load ptr, ptr %5, align 8, !tbaa !5
  %3439 = getelementptr inbounds %struct.w2c_hermes, ptr %3438, i32 0, i32 6
  %3440 = load i32, ptr %20, align 4, !tbaa !9
  %3441 = zext i32 %3440 to i64
  %3442 = add i64 %3441, 12
  %3443 = call i32 @i32_load(ptr noundef %3439, i64 noundef %3442)
  store i32 %3443, ptr %20, align 4, !tbaa !9
  %3444 = load i32, ptr %20, align 4, !tbaa !9
  %3445 = load ptr, ptr %5, align 8, !tbaa !5
  %3446 = getelementptr inbounds %struct.w2c_hermes, ptr %3445, i32 0, i32 7
  %3447 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3446, i32 0, i32 2
  %3448 = load i32, ptr %3447, align 4, !tbaa !18
  %3449 = icmp ult i32 %3444, %3448
  br i1 %3449, label %3450, label %3473

3450:                                             ; preds = %3430
  %3451 = load ptr, ptr %5, align 8, !tbaa !5
  %3452 = getelementptr inbounds %struct.w2c_hermes, ptr %3451, i32 0, i32 7
  %3453 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3452, i32 0, i32 0
  %3454 = load ptr, ptr %3453, align 8, !tbaa !19
  %3455 = load i32, ptr %20, align 4, !tbaa !9
  %3456 = zext i32 %3455 to i64
  %3457 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3454, i64 %3456
  %3458 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3457, i32 0, i32 1
  %3459 = load ptr, ptr %3458, align 8, !tbaa !20
  %3460 = icmp ne ptr %3459, null
  br i1 %3460, label %3461, label %3473

3461:                                             ; preds = %3450
  %3462 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %3463 = load ptr, ptr %5, align 8, !tbaa !5
  %3464 = getelementptr inbounds %struct.w2c_hermes, ptr %3463, i32 0, i32 7
  %3465 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3464, i32 0, i32 0
  %3466 = load ptr, ptr %3465, align 8, !tbaa !19
  %3467 = load i32, ptr %20, align 4, !tbaa !9
  %3468 = zext i32 %3467 to i64
  %3469 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3466, i64 %3468
  %3470 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3469, i32 0, i32 0
  %3471 = load ptr, ptr %3470, align 8, !tbaa !22
  %3472 = call zeroext i1 @func_types_eq(ptr noundef %3462, ptr noundef %3471)
  br label %3473

3473:                                             ; preds = %3461, %3450, %3430
  %3474 = phi i1 [ false, %3450 ], [ false, %3430 ], [ %3472, %3461 ]
  %3475 = xor i1 %3474, true
  %3476 = xor i1 %3475, true
  %3477 = zext i1 %3476 to i32
  %3478 = sext i32 %3477 to i64
  %3479 = call i64 @llvm.expect.i64(i64 %3478, i64 1)
  %3480 = icmp ne i64 %3479, 0
  br i1 %3480, label %3483, label %3481

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

3482:                                             ; No predecessors!
  br label %3483

3483:                                             ; preds = %3482, %3473
  %3484 = phi i1 [ true, %3473 ], [ false, %3482 ]
  %3485 = zext i1 %3484 to i32
  %3486 = load ptr, ptr %5, align 8, !tbaa !5
  %3487 = getelementptr inbounds %struct.w2c_hermes, ptr %3486, i32 0, i32 7
  %3488 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3487, i32 0, i32 0
  %3489 = load ptr, ptr %3488, align 8, !tbaa !19
  %3490 = load i32, ptr %20, align 4, !tbaa !9
  %3491 = zext i32 %3490 to i64
  %3492 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3489, i64 %3491
  %3493 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3492, i32 0, i32 1
  %3494 = load ptr, ptr %3493, align 8, !tbaa !20
  %3495 = load ptr, ptr %5, align 8, !tbaa !5
  %3496 = getelementptr inbounds %struct.w2c_hermes, ptr %3495, i32 0, i32 7
  %3497 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3496, i32 0, i32 0
  %3498 = load ptr, ptr %3497, align 8, !tbaa !19
  %3499 = load i32, ptr %20, align 4, !tbaa !9
  %3500 = zext i32 %3499 to i64
  %3501 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3498, i64 %3500
  %3502 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3501, i32 0, i32 2
  %3503 = load ptr, ptr %3502, align 8, !tbaa !23
  %3504 = load i32, ptr %19, align 4, !tbaa !9
  call void %3494(ptr noundef %3503, i32 noundef %3504)
  %3505 = load ptr, ptr %5, align 8, !tbaa !5
  %3506 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %3505)
  store i64 %3506, ptr %24, align 8, !tbaa !11
  %3507 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %3507, ptr %18, align 8, !tbaa !11
  %3508 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3508, ptr %19, align 4, !tbaa !9
  store i32 5368, ptr %20, align 4, !tbaa !9
  %3509 = load i32, ptr %20, align 4, !tbaa !9
  %3510 = load i32, ptr %19, align 4, !tbaa !9
  %3511 = add i32 %3510, %3509
  store i32 %3511, ptr %19, align 4, !tbaa !9
  %3512 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %3512, ptr %9, align 4, !tbaa !9
  %3513 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %3513, ptr %20, align 4, !tbaa !9
  %3514 = load ptr, ptr %5, align 8, !tbaa !5
  %3515 = getelementptr inbounds %struct.w2c_hermes, ptr %3514, i32 0, i32 6
  %3516 = load i32, ptr %20, align 4, !tbaa !9
  %3517 = zext i32 %3516 to i64
  %3518 = call double @f64_load(ptr noundef %3515, i64 noundef %3517)
  store double %3518, ptr %28, align 8, !tbaa !24
  %3519 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %3519, ptr %26, align 8, !tbaa !11
  %3520 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %3520, ptr %27, align 8, !tbaa !11
  %3521 = load i64, ptr %27, align 8, !tbaa !11
  %3522 = load i64, ptr %26, align 8, !tbaa !11
  %3523 = sub i64 %3522, %3521
  store i64 %3523, ptr %26, align 8, !tbaa !11
  %3524 = load i64, ptr %26, align 8, !tbaa !11
  %3525 = sitofp i64 %3524 to double
  store double %3525, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %3526 = load double, ptr %30, align 8, !tbaa !24
  %3527 = load double, ptr %29, align 8, !tbaa !24
  %3528 = fdiv double %3527, %3526
  store double %3528, ptr %29, align 8, !tbaa !24
  %3529 = load double, ptr %29, align 8, !tbaa !24
  %3530 = load double, ptr %28, align 8, !tbaa !24
  %3531 = fadd double %3530, %3529
  store double %3531, ptr %28, align 8, !tbaa !24
  %3532 = load ptr, ptr %5, align 8, !tbaa !5
  %3533 = getelementptr inbounds %struct.w2c_hermes, ptr %3532, i32 0, i32 6
  %3534 = load i32, ptr %19, align 4, !tbaa !9
  %3535 = zext i32 %3534 to i64
  %3536 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %3533, i64 noundef %3535, double noundef %3536)
  %3537 = load ptr, ptr %5, align 8, !tbaa !5
  %3538 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %3537)
  store i64 %3538, ptr %24, align 8, !tbaa !11
  %3539 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %3539, ptr %17, align 8, !tbaa !11
  %3540 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3540, ptr %19, align 4, !tbaa !9
  store i32 7, ptr %20, align 4, !tbaa !9
  %3541 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3541, ptr %21, align 4, !tbaa !9
  %3542 = load ptr, ptr %5, align 8, !tbaa !5
  %3543 = getelementptr inbounds %struct.w2c_hermes, ptr %3542, i32 0, i32 6
  %3544 = load i32, ptr %21, align 4, !tbaa !9
  %3545 = zext i32 %3544 to i64
  %3546 = call i32 @i32_load(ptr noundef %3543, i64 noundef %3545)
  store i32 %3546, ptr %21, align 4, !tbaa !9
  %3547 = load ptr, ptr %5, align 8, !tbaa !5
  %3548 = getelementptr inbounds %struct.w2c_hermes, ptr %3547, i32 0, i32 6
  %3549 = load i32, ptr %21, align 4, !tbaa !9
  %3550 = zext i32 %3549 to i64
  %3551 = add i64 %3550, 8
  %3552 = call i32 @i32_load(ptr noundef %3548, i64 noundef %3551)
  store i32 %3552, ptr %21, align 4, !tbaa !9
  %3553 = load i32, ptr %21, align 4, !tbaa !9
  %3554 = load ptr, ptr %5, align 8, !tbaa !5
  %3555 = getelementptr inbounds %struct.w2c_hermes, ptr %3554, i32 0, i32 7
  %3556 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3555, i32 0, i32 2
  %3557 = load i32, ptr %3556, align 4, !tbaa !18
  %3558 = icmp ult i32 %3553, %3557
  br i1 %3558, label %3559, label %3582

3559:                                             ; preds = %3483
  %3560 = load ptr, ptr %5, align 8, !tbaa !5
  %3561 = getelementptr inbounds %struct.w2c_hermes, ptr %3560, i32 0, i32 7
  %3562 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3561, i32 0, i32 0
  %3563 = load ptr, ptr %3562, align 8, !tbaa !19
  %3564 = load i32, ptr %21, align 4, !tbaa !9
  %3565 = zext i32 %3564 to i64
  %3566 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3563, i64 %3565
  %3567 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3566, i32 0, i32 1
  %3568 = load ptr, ptr %3567, align 8, !tbaa !20
  %3569 = icmp ne ptr %3568, null
  br i1 %3569, label %3570, label %3582

3570:                                             ; preds = %3559
  %3571 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %3572 = load ptr, ptr %5, align 8, !tbaa !5
  %3573 = getelementptr inbounds %struct.w2c_hermes, ptr %3572, i32 0, i32 7
  %3574 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3573, i32 0, i32 0
  %3575 = load ptr, ptr %3574, align 8, !tbaa !19
  %3576 = load i32, ptr %21, align 4, !tbaa !9
  %3577 = zext i32 %3576 to i64
  %3578 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3575, i64 %3577
  %3579 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3578, i32 0, i32 0
  %3580 = load ptr, ptr %3579, align 8, !tbaa !22
  %3581 = call zeroext i1 @func_types_eq(ptr noundef %3571, ptr noundef %3580)
  br label %3582

3582:                                             ; preds = %3570, %3559, %3483
  %3583 = phi i1 [ false, %3559 ], [ false, %3483 ], [ %3581, %3570 ]
  %3584 = xor i1 %3583, true
  %3585 = xor i1 %3584, true
  %3586 = zext i1 %3585 to i32
  %3587 = sext i32 %3586 to i64
  %3588 = call i64 @llvm.expect.i64(i64 %3587, i64 1)
  %3589 = icmp ne i64 %3588, 0
  br i1 %3589, label %3592, label %3590

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

3591:                                             ; No predecessors!
  br label %3592

3592:                                             ; preds = %3591, %3582
  %3593 = phi i1 [ true, %3582 ], [ false, %3591 ]
  %3594 = zext i1 %3593 to i32
  %3595 = load ptr, ptr %5, align 8, !tbaa !5
  %3596 = getelementptr inbounds %struct.w2c_hermes, ptr %3595, i32 0, i32 7
  %3597 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3596, i32 0, i32 0
  %3598 = load ptr, ptr %3597, align 8, !tbaa !19
  %3599 = load i32, ptr %21, align 4, !tbaa !9
  %3600 = zext i32 %3599 to i64
  %3601 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3598, i64 %3600
  %3602 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3601, i32 0, i32 1
  %3603 = load ptr, ptr %3602, align 8, !tbaa !20
  %3604 = load ptr, ptr %5, align 8, !tbaa !5
  %3605 = getelementptr inbounds %struct.w2c_hermes, ptr %3604, i32 0, i32 7
  %3606 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3605, i32 0, i32 0
  %3607 = load ptr, ptr %3606, align 8, !tbaa !19
  %3608 = load i32, ptr %21, align 4, !tbaa !9
  %3609 = zext i32 %3608 to i64
  %3610 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3607, i64 %3609
  %3611 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3610, i32 0, i32 2
  %3612 = load ptr, ptr %3611, align 8, !tbaa !23
  %3613 = load i32, ptr %19, align 4, !tbaa !9
  %3614 = load i32, ptr %20, align 4, !tbaa !9
  call void %3603(ptr noundef %3612, i32 noundef %3613, i32 noundef %3614)
  %3615 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3615, ptr %19, align 4, !tbaa !9
  %3616 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3616, ptr %20, align 4, !tbaa !9
  store i32 16, ptr %21, align 4, !tbaa !9
  %3617 = load i32, ptr %21, align 4, !tbaa !9
  %3618 = load i32, ptr %20, align 4, !tbaa !9
  %3619 = add i32 %3618, %3617
  store i32 %3619, ptr %20, align 4, !tbaa !9
  store i32 48121, ptr %21, align 4, !tbaa !9
  %3620 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3620, ptr %22, align 4, !tbaa !9
  %3621 = load ptr, ptr %5, align 8, !tbaa !5
  %3622 = getelementptr inbounds %struct.w2c_hermes, ptr %3621, i32 0, i32 6
  %3623 = load i32, ptr %22, align 4, !tbaa !9
  %3624 = zext i32 %3623 to i64
  %3625 = call i32 @i32_load(ptr noundef %3622, i64 noundef %3624)
  store i32 %3625, ptr %22, align 4, !tbaa !9
  %3626 = load ptr, ptr %5, align 8, !tbaa !5
  %3627 = getelementptr inbounds %struct.w2c_hermes, ptr %3626, i32 0, i32 6
  %3628 = load i32, ptr %22, align 4, !tbaa !9
  %3629 = zext i32 %3628 to i64
  %3630 = add i64 %3629, 36
  %3631 = call i32 @i32_load(ptr noundef %3627, i64 noundef %3630)
  store i32 %3631, ptr %22, align 4, !tbaa !9
  %3632 = load i32, ptr %22, align 4, !tbaa !9
  %3633 = load ptr, ptr %5, align 8, !tbaa !5
  %3634 = getelementptr inbounds %struct.w2c_hermes, ptr %3633, i32 0, i32 7
  %3635 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3634, i32 0, i32 2
  %3636 = load i32, ptr %3635, align 4, !tbaa !18
  %3637 = icmp ult i32 %3632, %3636
  br i1 %3637, label %3638, label %3661

3638:                                             ; preds = %3592
  %3639 = load ptr, ptr %5, align 8, !tbaa !5
  %3640 = getelementptr inbounds %struct.w2c_hermes, ptr %3639, i32 0, i32 7
  %3641 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3640, i32 0, i32 0
  %3642 = load ptr, ptr %3641, align 8, !tbaa !19
  %3643 = load i32, ptr %22, align 4, !tbaa !9
  %3644 = zext i32 %3643 to i64
  %3645 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3642, i64 %3644
  %3646 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3645, i32 0, i32 1
  %3647 = load ptr, ptr %3646, align 8, !tbaa !20
  %3648 = icmp ne ptr %3647, null
  br i1 %3648, label %3649, label %3661

3649:                                             ; preds = %3638
  %3650 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %3651 = load ptr, ptr %5, align 8, !tbaa !5
  %3652 = getelementptr inbounds %struct.w2c_hermes, ptr %3651, i32 0, i32 7
  %3653 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3652, i32 0, i32 0
  %3654 = load ptr, ptr %3653, align 8, !tbaa !19
  %3655 = load i32, ptr %22, align 4, !tbaa !9
  %3656 = zext i32 %3655 to i64
  %3657 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3654, i64 %3656
  %3658 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3657, i32 0, i32 0
  %3659 = load ptr, ptr %3658, align 8, !tbaa !22
  %3660 = call zeroext i1 @func_types_eq(ptr noundef %3650, ptr noundef %3659)
  br label %3661

3661:                                             ; preds = %3649, %3638, %3592
  %3662 = phi i1 [ false, %3638 ], [ false, %3592 ], [ %3660, %3649 ]
  %3663 = xor i1 %3662, true
  %3664 = xor i1 %3663, true
  %3665 = zext i1 %3664 to i32
  %3666 = sext i32 %3665 to i64
  %3667 = call i64 @llvm.expect.i64(i64 %3666, i64 1)
  %3668 = icmp ne i64 %3667, 0
  br i1 %3668, label %3671, label %3669

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

3670:                                             ; No predecessors!
  br label %3671

3671:                                             ; preds = %3670, %3661
  %3672 = phi i1 [ true, %3661 ], [ false, %3670 ]
  %3673 = zext i1 %3672 to i32
  %3674 = load ptr, ptr %5, align 8, !tbaa !5
  %3675 = getelementptr inbounds %struct.w2c_hermes, ptr %3674, i32 0, i32 7
  %3676 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3675, i32 0, i32 0
  %3677 = load ptr, ptr %3676, align 8, !tbaa !19
  %3678 = load i32, ptr %22, align 4, !tbaa !9
  %3679 = zext i32 %3678 to i64
  %3680 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3677, i64 %3679
  %3681 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3680, i32 0, i32 1
  %3682 = load ptr, ptr %3681, align 8, !tbaa !20
  %3683 = load ptr, ptr %5, align 8, !tbaa !5
  %3684 = getelementptr inbounds %struct.w2c_hermes, ptr %3683, i32 0, i32 7
  %3685 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3684, i32 0, i32 0
  %3686 = load ptr, ptr %3685, align 8, !tbaa !19
  %3687 = load i32, ptr %22, align 4, !tbaa !9
  %3688 = zext i32 %3687 to i64
  %3689 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3686, i64 %3688
  %3690 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3689, i32 0, i32 2
  %3691 = load ptr, ptr %3690, align 8, !tbaa !23
  %3692 = load i32, ptr %19, align 4, !tbaa !9
  %3693 = load i32, ptr %20, align 4, !tbaa !9
  %3694 = load i32, ptr %21, align 4, !tbaa !9
  call void %3682(ptr noundef %3691, i32 noundef %3692, i32 noundef %3693, i32 noundef %3694)
  %3695 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3695, ptr %19, align 4, !tbaa !9
  %3696 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3696, ptr %20, align 4, !tbaa !9
  store i32 24, ptr %21, align 4, !tbaa !9
  %3697 = load i32, ptr %21, align 4, !tbaa !9
  %3698 = load i32, ptr %20, align 4, !tbaa !9
  %3699 = add i32 %3698, %3697
  store i32 %3699, ptr %20, align 4, !tbaa !9
  store i32 36477, ptr %21, align 4, !tbaa !9
  %3700 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3700, ptr %22, align 4, !tbaa !9
  %3701 = load ptr, ptr %5, align 8, !tbaa !5
  %3702 = getelementptr inbounds %struct.w2c_hermes, ptr %3701, i32 0, i32 6
  %3703 = load i32, ptr %22, align 4, !tbaa !9
  %3704 = zext i32 %3703 to i64
  %3705 = call i32 @i32_load(ptr noundef %3702, i64 noundef %3704)
  store i32 %3705, ptr %22, align 4, !tbaa !9
  %3706 = load ptr, ptr %5, align 8, !tbaa !5
  %3707 = getelementptr inbounds %struct.w2c_hermes, ptr %3706, i32 0, i32 6
  %3708 = load i32, ptr %22, align 4, !tbaa !9
  %3709 = zext i32 %3708 to i64
  %3710 = add i64 %3709, 36
  %3711 = call i32 @i32_load(ptr noundef %3707, i64 noundef %3710)
  store i32 %3711, ptr %22, align 4, !tbaa !9
  %3712 = load i32, ptr %22, align 4, !tbaa !9
  %3713 = load ptr, ptr %5, align 8, !tbaa !5
  %3714 = getelementptr inbounds %struct.w2c_hermes, ptr %3713, i32 0, i32 7
  %3715 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3714, i32 0, i32 2
  %3716 = load i32, ptr %3715, align 4, !tbaa !18
  %3717 = icmp ult i32 %3712, %3716
  br i1 %3717, label %3718, label %3741

3718:                                             ; preds = %3671
  %3719 = load ptr, ptr %5, align 8, !tbaa !5
  %3720 = getelementptr inbounds %struct.w2c_hermes, ptr %3719, i32 0, i32 7
  %3721 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3720, i32 0, i32 0
  %3722 = load ptr, ptr %3721, align 8, !tbaa !19
  %3723 = load i32, ptr %22, align 4, !tbaa !9
  %3724 = zext i32 %3723 to i64
  %3725 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3722, i64 %3724
  %3726 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3725, i32 0, i32 1
  %3727 = load ptr, ptr %3726, align 8, !tbaa !20
  %3728 = icmp ne ptr %3727, null
  br i1 %3728, label %3729, label %3741

3729:                                             ; preds = %3718
  %3730 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %3731 = load ptr, ptr %5, align 8, !tbaa !5
  %3732 = getelementptr inbounds %struct.w2c_hermes, ptr %3731, i32 0, i32 7
  %3733 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3732, i32 0, i32 0
  %3734 = load ptr, ptr %3733, align 8, !tbaa !19
  %3735 = load i32, ptr %22, align 4, !tbaa !9
  %3736 = zext i32 %3735 to i64
  %3737 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3734, i64 %3736
  %3738 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3737, i32 0, i32 0
  %3739 = load ptr, ptr %3738, align 8, !tbaa !22
  %3740 = call zeroext i1 @func_types_eq(ptr noundef %3730, ptr noundef %3739)
  br label %3741

3741:                                             ; preds = %3729, %3718, %3671
  %3742 = phi i1 [ false, %3718 ], [ false, %3671 ], [ %3740, %3729 ]
  %3743 = xor i1 %3742, true
  %3744 = xor i1 %3743, true
  %3745 = zext i1 %3744 to i32
  %3746 = sext i32 %3745 to i64
  %3747 = call i64 @llvm.expect.i64(i64 %3746, i64 1)
  %3748 = icmp ne i64 %3747, 0
  br i1 %3748, label %3751, label %3749

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

3750:                                             ; No predecessors!
  br label %3751

3751:                                             ; preds = %3750, %3741
  %3752 = phi i1 [ true, %3741 ], [ false, %3750 ]
  %3753 = zext i1 %3752 to i32
  %3754 = load ptr, ptr %5, align 8, !tbaa !5
  %3755 = getelementptr inbounds %struct.w2c_hermes, ptr %3754, i32 0, i32 7
  %3756 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3755, i32 0, i32 0
  %3757 = load ptr, ptr %3756, align 8, !tbaa !19
  %3758 = load i32, ptr %22, align 4, !tbaa !9
  %3759 = zext i32 %3758 to i64
  %3760 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3757, i64 %3759
  %3761 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3760, i32 0, i32 1
  %3762 = load ptr, ptr %3761, align 8, !tbaa !20
  %3763 = load ptr, ptr %5, align 8, !tbaa !5
  %3764 = getelementptr inbounds %struct.w2c_hermes, ptr %3763, i32 0, i32 7
  %3765 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3764, i32 0, i32 0
  %3766 = load ptr, ptr %3765, align 8, !tbaa !19
  %3767 = load i32, ptr %22, align 4, !tbaa !9
  %3768 = zext i32 %3767 to i64
  %3769 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3766, i64 %3768
  %3770 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3769, i32 0, i32 2
  %3771 = load ptr, ptr %3770, align 8, !tbaa !23
  %3772 = load i32, ptr %19, align 4, !tbaa !9
  %3773 = load i32, ptr %20, align 4, !tbaa !9
  %3774 = load i32, ptr %21, align 4, !tbaa !9
  call void %3762(ptr noundef %3771, i32 noundef %3772, i32 noundef %3773, i32 noundef %3774)
  %3775 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3775, ptr %19, align 4, !tbaa !9
  %3776 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3776, ptr %20, align 4, !tbaa !9
  store i32 32, ptr %21, align 4, !tbaa !9
  %3777 = load i32, ptr %21, align 4, !tbaa !9
  %3778 = load i32, ptr %20, align 4, !tbaa !9
  %3779 = add i32 %3778, %3777
  store i32 %3779, ptr %20, align 4, !tbaa !9
  store i32 48464, ptr %21, align 4, !tbaa !9
  %3780 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3780, ptr %22, align 4, !tbaa !9
  %3781 = load ptr, ptr %5, align 8, !tbaa !5
  %3782 = getelementptr inbounds %struct.w2c_hermes, ptr %3781, i32 0, i32 6
  %3783 = load i32, ptr %22, align 4, !tbaa !9
  %3784 = zext i32 %3783 to i64
  %3785 = call i32 @i32_load(ptr noundef %3782, i64 noundef %3784)
  store i32 %3785, ptr %22, align 4, !tbaa !9
  %3786 = load ptr, ptr %5, align 8, !tbaa !5
  %3787 = getelementptr inbounds %struct.w2c_hermes, ptr %3786, i32 0, i32 6
  %3788 = load i32, ptr %22, align 4, !tbaa !9
  %3789 = zext i32 %3788 to i64
  %3790 = add i64 %3789, 36
  %3791 = call i32 @i32_load(ptr noundef %3787, i64 noundef %3790)
  store i32 %3791, ptr %22, align 4, !tbaa !9
  %3792 = load i32, ptr %22, align 4, !tbaa !9
  %3793 = load ptr, ptr %5, align 8, !tbaa !5
  %3794 = getelementptr inbounds %struct.w2c_hermes, ptr %3793, i32 0, i32 7
  %3795 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3794, i32 0, i32 2
  %3796 = load i32, ptr %3795, align 4, !tbaa !18
  %3797 = icmp ult i32 %3792, %3796
  br i1 %3797, label %3798, label %3821

3798:                                             ; preds = %3751
  %3799 = load ptr, ptr %5, align 8, !tbaa !5
  %3800 = getelementptr inbounds %struct.w2c_hermes, ptr %3799, i32 0, i32 7
  %3801 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3800, i32 0, i32 0
  %3802 = load ptr, ptr %3801, align 8, !tbaa !19
  %3803 = load i32, ptr %22, align 4, !tbaa !9
  %3804 = zext i32 %3803 to i64
  %3805 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3802, i64 %3804
  %3806 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3805, i32 0, i32 1
  %3807 = load ptr, ptr %3806, align 8, !tbaa !20
  %3808 = icmp ne ptr %3807, null
  br i1 %3808, label %3809, label %3821

3809:                                             ; preds = %3798
  %3810 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %3811 = load ptr, ptr %5, align 8, !tbaa !5
  %3812 = getelementptr inbounds %struct.w2c_hermes, ptr %3811, i32 0, i32 7
  %3813 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3812, i32 0, i32 0
  %3814 = load ptr, ptr %3813, align 8, !tbaa !19
  %3815 = load i32, ptr %22, align 4, !tbaa !9
  %3816 = zext i32 %3815 to i64
  %3817 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3814, i64 %3816
  %3818 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3817, i32 0, i32 0
  %3819 = load ptr, ptr %3818, align 8, !tbaa !22
  %3820 = call zeroext i1 @func_types_eq(ptr noundef %3810, ptr noundef %3819)
  br label %3821

3821:                                             ; preds = %3809, %3798, %3751
  %3822 = phi i1 [ false, %3798 ], [ false, %3751 ], [ %3820, %3809 ]
  %3823 = xor i1 %3822, true
  %3824 = xor i1 %3823, true
  %3825 = zext i1 %3824 to i32
  %3826 = sext i32 %3825 to i64
  %3827 = call i64 @llvm.expect.i64(i64 %3826, i64 1)
  %3828 = icmp ne i64 %3827, 0
  br i1 %3828, label %3831, label %3829

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

3830:                                             ; No predecessors!
  br label %3831

3831:                                             ; preds = %3830, %3821
  %3832 = phi i1 [ true, %3821 ], [ false, %3830 ]
  %3833 = zext i1 %3832 to i32
  %3834 = load ptr, ptr %5, align 8, !tbaa !5
  %3835 = getelementptr inbounds %struct.w2c_hermes, ptr %3834, i32 0, i32 7
  %3836 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3835, i32 0, i32 0
  %3837 = load ptr, ptr %3836, align 8, !tbaa !19
  %3838 = load i32, ptr %22, align 4, !tbaa !9
  %3839 = zext i32 %3838 to i64
  %3840 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3837, i64 %3839
  %3841 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3840, i32 0, i32 1
  %3842 = load ptr, ptr %3841, align 8, !tbaa !20
  %3843 = load ptr, ptr %5, align 8, !tbaa !5
  %3844 = getelementptr inbounds %struct.w2c_hermes, ptr %3843, i32 0, i32 7
  %3845 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3844, i32 0, i32 0
  %3846 = load ptr, ptr %3845, align 8, !tbaa !19
  %3847 = load i32, ptr %22, align 4, !tbaa !9
  %3848 = zext i32 %3847 to i64
  %3849 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3846, i64 %3848
  %3850 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3849, i32 0, i32 2
  %3851 = load ptr, ptr %3850, align 8, !tbaa !23
  %3852 = load i32, ptr %19, align 4, !tbaa !9
  %3853 = load i32, ptr %20, align 4, !tbaa !9
  %3854 = load i32, ptr %21, align 4, !tbaa !9
  call void %3842(ptr noundef %3851, i32 noundef %3852, i32 noundef %3853, i32 noundef %3854)
  %3855 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3855, ptr %19, align 4, !tbaa !9
  %3856 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3856, ptr %20, align 4, !tbaa !9
  store i32 40, ptr %21, align 4, !tbaa !9
  %3857 = load i32, ptr %21, align 4, !tbaa !9
  %3858 = load i32, ptr %20, align 4, !tbaa !9
  %3859 = add i32 %3858, %3857
  store i32 %3859, ptr %20, align 4, !tbaa !9
  store i32 36790, ptr %21, align 4, !tbaa !9
  %3860 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3860, ptr %22, align 4, !tbaa !9
  %3861 = load ptr, ptr %5, align 8, !tbaa !5
  %3862 = getelementptr inbounds %struct.w2c_hermes, ptr %3861, i32 0, i32 6
  %3863 = load i32, ptr %22, align 4, !tbaa !9
  %3864 = zext i32 %3863 to i64
  %3865 = call i32 @i32_load(ptr noundef %3862, i64 noundef %3864)
  store i32 %3865, ptr %22, align 4, !tbaa !9
  %3866 = load ptr, ptr %5, align 8, !tbaa !5
  %3867 = getelementptr inbounds %struct.w2c_hermes, ptr %3866, i32 0, i32 6
  %3868 = load i32, ptr %22, align 4, !tbaa !9
  %3869 = zext i32 %3868 to i64
  %3870 = add i64 %3869, 36
  %3871 = call i32 @i32_load(ptr noundef %3867, i64 noundef %3870)
  store i32 %3871, ptr %22, align 4, !tbaa !9
  %3872 = load i32, ptr %22, align 4, !tbaa !9
  %3873 = load ptr, ptr %5, align 8, !tbaa !5
  %3874 = getelementptr inbounds %struct.w2c_hermes, ptr %3873, i32 0, i32 7
  %3875 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3874, i32 0, i32 2
  %3876 = load i32, ptr %3875, align 4, !tbaa !18
  %3877 = icmp ult i32 %3872, %3876
  br i1 %3877, label %3878, label %3901

3878:                                             ; preds = %3831
  %3879 = load ptr, ptr %5, align 8, !tbaa !5
  %3880 = getelementptr inbounds %struct.w2c_hermes, ptr %3879, i32 0, i32 7
  %3881 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3880, i32 0, i32 0
  %3882 = load ptr, ptr %3881, align 8, !tbaa !19
  %3883 = load i32, ptr %22, align 4, !tbaa !9
  %3884 = zext i32 %3883 to i64
  %3885 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3882, i64 %3884
  %3886 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3885, i32 0, i32 1
  %3887 = load ptr, ptr %3886, align 8, !tbaa !20
  %3888 = icmp ne ptr %3887, null
  br i1 %3888, label %3889, label %3901

3889:                                             ; preds = %3878
  %3890 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %3891 = load ptr, ptr %5, align 8, !tbaa !5
  %3892 = getelementptr inbounds %struct.w2c_hermes, ptr %3891, i32 0, i32 7
  %3893 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3892, i32 0, i32 0
  %3894 = load ptr, ptr %3893, align 8, !tbaa !19
  %3895 = load i32, ptr %22, align 4, !tbaa !9
  %3896 = zext i32 %3895 to i64
  %3897 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3894, i64 %3896
  %3898 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3897, i32 0, i32 0
  %3899 = load ptr, ptr %3898, align 8, !tbaa !22
  %3900 = call zeroext i1 @func_types_eq(ptr noundef %3890, ptr noundef %3899)
  br label %3901

3901:                                             ; preds = %3889, %3878, %3831
  %3902 = phi i1 [ false, %3878 ], [ false, %3831 ], [ %3900, %3889 ]
  %3903 = xor i1 %3902, true
  %3904 = xor i1 %3903, true
  %3905 = zext i1 %3904 to i32
  %3906 = sext i32 %3905 to i64
  %3907 = call i64 @llvm.expect.i64(i64 %3906, i64 1)
  %3908 = icmp ne i64 %3907, 0
  br i1 %3908, label %3911, label %3909

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

3910:                                             ; No predecessors!
  br label %3911

3911:                                             ; preds = %3910, %3901
  %3912 = phi i1 [ true, %3901 ], [ false, %3910 ]
  %3913 = zext i1 %3912 to i32
  %3914 = load ptr, ptr %5, align 8, !tbaa !5
  %3915 = getelementptr inbounds %struct.w2c_hermes, ptr %3914, i32 0, i32 7
  %3916 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3915, i32 0, i32 0
  %3917 = load ptr, ptr %3916, align 8, !tbaa !19
  %3918 = load i32, ptr %22, align 4, !tbaa !9
  %3919 = zext i32 %3918 to i64
  %3920 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3917, i64 %3919
  %3921 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3920, i32 0, i32 1
  %3922 = load ptr, ptr %3921, align 8, !tbaa !20
  %3923 = load ptr, ptr %5, align 8, !tbaa !5
  %3924 = getelementptr inbounds %struct.w2c_hermes, ptr %3923, i32 0, i32 7
  %3925 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3924, i32 0, i32 0
  %3926 = load ptr, ptr %3925, align 8, !tbaa !19
  %3927 = load i32, ptr %22, align 4, !tbaa !9
  %3928 = zext i32 %3927 to i64
  %3929 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3926, i64 %3928
  %3930 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3929, i32 0, i32 2
  %3931 = load ptr, ptr %3930, align 8, !tbaa !23
  %3932 = load i32, ptr %19, align 4, !tbaa !9
  %3933 = load i32, ptr %20, align 4, !tbaa !9
  %3934 = load i32, ptr %21, align 4, !tbaa !9
  call void %3922(ptr noundef %3931, i32 noundef %3932, i32 noundef %3933, i32 noundef %3934)
  %3935 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3935, ptr %19, align 4, !tbaa !9
  %3936 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %3936, ptr %20, align 4, !tbaa !9
  store i32 48, ptr %21, align 4, !tbaa !9
  %3937 = load i32, ptr %21, align 4, !tbaa !9
  %3938 = load i32, ptr %20, align 4, !tbaa !9
  %3939 = add i32 %3938, %3937
  store i32 %3939, ptr %20, align 4, !tbaa !9
  store i32 48374, ptr %21, align 4, !tbaa !9
  %3940 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %3940, ptr %22, align 4, !tbaa !9
  %3941 = load ptr, ptr %5, align 8, !tbaa !5
  %3942 = getelementptr inbounds %struct.w2c_hermes, ptr %3941, i32 0, i32 6
  %3943 = load i32, ptr %22, align 4, !tbaa !9
  %3944 = zext i32 %3943 to i64
  %3945 = call i32 @i32_load(ptr noundef %3942, i64 noundef %3944)
  store i32 %3945, ptr %22, align 4, !tbaa !9
  %3946 = load ptr, ptr %5, align 8, !tbaa !5
  %3947 = getelementptr inbounds %struct.w2c_hermes, ptr %3946, i32 0, i32 6
  %3948 = load i32, ptr %22, align 4, !tbaa !9
  %3949 = zext i32 %3948 to i64
  %3950 = add i64 %3949, 36
  %3951 = call i32 @i32_load(ptr noundef %3947, i64 noundef %3950)
  store i32 %3951, ptr %22, align 4, !tbaa !9
  %3952 = load i32, ptr %22, align 4, !tbaa !9
  %3953 = load ptr, ptr %5, align 8, !tbaa !5
  %3954 = getelementptr inbounds %struct.w2c_hermes, ptr %3953, i32 0, i32 7
  %3955 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3954, i32 0, i32 2
  %3956 = load i32, ptr %3955, align 4, !tbaa !18
  %3957 = icmp ult i32 %3952, %3956
  br i1 %3957, label %3958, label %3981

3958:                                             ; preds = %3911
  %3959 = load ptr, ptr %5, align 8, !tbaa !5
  %3960 = getelementptr inbounds %struct.w2c_hermes, ptr %3959, i32 0, i32 7
  %3961 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3960, i32 0, i32 0
  %3962 = load ptr, ptr %3961, align 8, !tbaa !19
  %3963 = load i32, ptr %22, align 4, !tbaa !9
  %3964 = zext i32 %3963 to i64
  %3965 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3962, i64 %3964
  %3966 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3965, i32 0, i32 1
  %3967 = load ptr, ptr %3966, align 8, !tbaa !20
  %3968 = icmp ne ptr %3967, null
  br i1 %3968, label %3969, label %3981

3969:                                             ; preds = %3958
  %3970 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %3971 = load ptr, ptr %5, align 8, !tbaa !5
  %3972 = getelementptr inbounds %struct.w2c_hermes, ptr %3971, i32 0, i32 7
  %3973 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3972, i32 0, i32 0
  %3974 = load ptr, ptr %3973, align 8, !tbaa !19
  %3975 = load i32, ptr %22, align 4, !tbaa !9
  %3976 = zext i32 %3975 to i64
  %3977 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3974, i64 %3976
  %3978 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3977, i32 0, i32 0
  %3979 = load ptr, ptr %3978, align 8, !tbaa !22
  %3980 = call zeroext i1 @func_types_eq(ptr noundef %3970, ptr noundef %3979)
  br label %3981

3981:                                             ; preds = %3969, %3958, %3911
  %3982 = phi i1 [ false, %3958 ], [ false, %3911 ], [ %3980, %3969 ]
  %3983 = xor i1 %3982, true
  %3984 = xor i1 %3983, true
  %3985 = zext i1 %3984 to i32
  %3986 = sext i32 %3985 to i64
  %3987 = call i64 @llvm.expect.i64(i64 %3986, i64 1)
  %3988 = icmp ne i64 %3987, 0
  br i1 %3988, label %3991, label %3989

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

3990:                                             ; No predecessors!
  br label %3991

3991:                                             ; preds = %3990, %3981
  %3992 = phi i1 [ true, %3981 ], [ false, %3990 ]
  %3993 = zext i1 %3992 to i32
  %3994 = load ptr, ptr %5, align 8, !tbaa !5
  %3995 = getelementptr inbounds %struct.w2c_hermes, ptr %3994, i32 0, i32 7
  %3996 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %3995, i32 0, i32 0
  %3997 = load ptr, ptr %3996, align 8, !tbaa !19
  %3998 = load i32, ptr %22, align 4, !tbaa !9
  %3999 = zext i32 %3998 to i64
  %4000 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3997, i64 %3999
  %4001 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4000, i32 0, i32 1
  %4002 = load ptr, ptr %4001, align 8, !tbaa !20
  %4003 = load ptr, ptr %5, align 8, !tbaa !5
  %4004 = getelementptr inbounds %struct.w2c_hermes, ptr %4003, i32 0, i32 7
  %4005 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4004, i32 0, i32 0
  %4006 = load ptr, ptr %4005, align 8, !tbaa !19
  %4007 = load i32, ptr %22, align 4, !tbaa !9
  %4008 = zext i32 %4007 to i64
  %4009 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4006, i64 %4008
  %4010 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4009, i32 0, i32 2
  %4011 = load ptr, ptr %4010, align 8, !tbaa !23
  %4012 = load i32, ptr %19, align 4, !tbaa !9
  %4013 = load i32, ptr %20, align 4, !tbaa !9
  %4014 = load i32, ptr %21, align 4, !tbaa !9
  call void %4002(ptr noundef %4011, i32 noundef %4012, i32 noundef %4013, i32 noundef %4014)
  %4015 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4015, ptr %19, align 4, !tbaa !9
  %4016 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4016, ptr %20, align 4, !tbaa !9
  store i32 56, ptr %21, align 4, !tbaa !9
  %4017 = load i32, ptr %21, align 4, !tbaa !9
  %4018 = load i32, ptr %20, align 4, !tbaa !9
  %4019 = add i32 %4018, %4017
  store i32 %4019, ptr %20, align 4, !tbaa !9
  store i32 36692, ptr %21, align 4, !tbaa !9
  %4020 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4020, ptr %22, align 4, !tbaa !9
  %4021 = load ptr, ptr %5, align 8, !tbaa !5
  %4022 = getelementptr inbounds %struct.w2c_hermes, ptr %4021, i32 0, i32 6
  %4023 = load i32, ptr %22, align 4, !tbaa !9
  %4024 = zext i32 %4023 to i64
  %4025 = call i32 @i32_load(ptr noundef %4022, i64 noundef %4024)
  store i32 %4025, ptr %22, align 4, !tbaa !9
  %4026 = load ptr, ptr %5, align 8, !tbaa !5
  %4027 = getelementptr inbounds %struct.w2c_hermes, ptr %4026, i32 0, i32 6
  %4028 = load i32, ptr %22, align 4, !tbaa !9
  %4029 = zext i32 %4028 to i64
  %4030 = add i64 %4029, 36
  %4031 = call i32 @i32_load(ptr noundef %4027, i64 noundef %4030)
  store i32 %4031, ptr %22, align 4, !tbaa !9
  %4032 = load i32, ptr %22, align 4, !tbaa !9
  %4033 = load ptr, ptr %5, align 8, !tbaa !5
  %4034 = getelementptr inbounds %struct.w2c_hermes, ptr %4033, i32 0, i32 7
  %4035 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4034, i32 0, i32 2
  %4036 = load i32, ptr %4035, align 4, !tbaa !18
  %4037 = icmp ult i32 %4032, %4036
  br i1 %4037, label %4038, label %4061

4038:                                             ; preds = %3991
  %4039 = load ptr, ptr %5, align 8, !tbaa !5
  %4040 = getelementptr inbounds %struct.w2c_hermes, ptr %4039, i32 0, i32 7
  %4041 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4040, i32 0, i32 0
  %4042 = load ptr, ptr %4041, align 8, !tbaa !19
  %4043 = load i32, ptr %22, align 4, !tbaa !9
  %4044 = zext i32 %4043 to i64
  %4045 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4042, i64 %4044
  %4046 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4045, i32 0, i32 1
  %4047 = load ptr, ptr %4046, align 8, !tbaa !20
  %4048 = icmp ne ptr %4047, null
  br i1 %4048, label %4049, label %4061

4049:                                             ; preds = %4038
  %4050 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4051 = load ptr, ptr %5, align 8, !tbaa !5
  %4052 = getelementptr inbounds %struct.w2c_hermes, ptr %4051, i32 0, i32 7
  %4053 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4052, i32 0, i32 0
  %4054 = load ptr, ptr %4053, align 8, !tbaa !19
  %4055 = load i32, ptr %22, align 4, !tbaa !9
  %4056 = zext i32 %4055 to i64
  %4057 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4054, i64 %4056
  %4058 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4057, i32 0, i32 0
  %4059 = load ptr, ptr %4058, align 8, !tbaa !22
  %4060 = call zeroext i1 @func_types_eq(ptr noundef %4050, ptr noundef %4059)
  br label %4061

4061:                                             ; preds = %4049, %4038, %3991
  %4062 = phi i1 [ false, %4038 ], [ false, %3991 ], [ %4060, %4049 ]
  %4063 = xor i1 %4062, true
  %4064 = xor i1 %4063, true
  %4065 = zext i1 %4064 to i32
  %4066 = sext i32 %4065 to i64
  %4067 = call i64 @llvm.expect.i64(i64 %4066, i64 1)
  %4068 = icmp ne i64 %4067, 0
  br i1 %4068, label %4071, label %4069

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

4070:                                             ; No predecessors!
  br label %4071

4071:                                             ; preds = %4070, %4061
  %4072 = phi i1 [ true, %4061 ], [ false, %4070 ]
  %4073 = zext i1 %4072 to i32
  %4074 = load ptr, ptr %5, align 8, !tbaa !5
  %4075 = getelementptr inbounds %struct.w2c_hermes, ptr %4074, i32 0, i32 7
  %4076 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4075, i32 0, i32 0
  %4077 = load ptr, ptr %4076, align 8, !tbaa !19
  %4078 = load i32, ptr %22, align 4, !tbaa !9
  %4079 = zext i32 %4078 to i64
  %4080 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4077, i64 %4079
  %4081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4080, i32 0, i32 1
  %4082 = load ptr, ptr %4081, align 8, !tbaa !20
  %4083 = load ptr, ptr %5, align 8, !tbaa !5
  %4084 = getelementptr inbounds %struct.w2c_hermes, ptr %4083, i32 0, i32 7
  %4085 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4084, i32 0, i32 0
  %4086 = load ptr, ptr %4085, align 8, !tbaa !19
  %4087 = load i32, ptr %22, align 4, !tbaa !9
  %4088 = zext i32 %4087 to i64
  %4089 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4086, i64 %4088
  %4090 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4089, i32 0, i32 2
  %4091 = load ptr, ptr %4090, align 8, !tbaa !23
  %4092 = load i32, ptr %19, align 4, !tbaa !9
  %4093 = load i32, ptr %20, align 4, !tbaa !9
  %4094 = load i32, ptr %21, align 4, !tbaa !9
  call void %4082(ptr noundef %4091, i32 noundef %4092, i32 noundef %4093, i32 noundef %4094)
  %4095 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4095, ptr %19, align 4, !tbaa !9
  %4096 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4096, ptr %20, align 4, !tbaa !9
  store i32 -64, ptr %21, align 4, !tbaa !9
  %4097 = load i32, ptr %21, align 4, !tbaa !9
  %4098 = load i32, ptr %20, align 4, !tbaa !9
  %4099 = sub i32 %4098, %4097
  store i32 %4099, ptr %20, align 4, !tbaa !9
  store i32 48355, ptr %21, align 4, !tbaa !9
  %4100 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4100, ptr %22, align 4, !tbaa !9
  %4101 = load ptr, ptr %5, align 8, !tbaa !5
  %4102 = getelementptr inbounds %struct.w2c_hermes, ptr %4101, i32 0, i32 6
  %4103 = load i32, ptr %22, align 4, !tbaa !9
  %4104 = zext i32 %4103 to i64
  %4105 = call i32 @i32_load(ptr noundef %4102, i64 noundef %4104)
  store i32 %4105, ptr %22, align 4, !tbaa !9
  %4106 = load ptr, ptr %5, align 8, !tbaa !5
  %4107 = getelementptr inbounds %struct.w2c_hermes, ptr %4106, i32 0, i32 6
  %4108 = load i32, ptr %22, align 4, !tbaa !9
  %4109 = zext i32 %4108 to i64
  %4110 = add i64 %4109, 36
  %4111 = call i32 @i32_load(ptr noundef %4107, i64 noundef %4110)
  store i32 %4111, ptr %22, align 4, !tbaa !9
  %4112 = load i32, ptr %22, align 4, !tbaa !9
  %4113 = load ptr, ptr %5, align 8, !tbaa !5
  %4114 = getelementptr inbounds %struct.w2c_hermes, ptr %4113, i32 0, i32 7
  %4115 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4114, i32 0, i32 2
  %4116 = load i32, ptr %4115, align 4, !tbaa !18
  %4117 = icmp ult i32 %4112, %4116
  br i1 %4117, label %4118, label %4141

4118:                                             ; preds = %4071
  %4119 = load ptr, ptr %5, align 8, !tbaa !5
  %4120 = getelementptr inbounds %struct.w2c_hermes, ptr %4119, i32 0, i32 7
  %4121 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4120, i32 0, i32 0
  %4122 = load ptr, ptr %4121, align 8, !tbaa !19
  %4123 = load i32, ptr %22, align 4, !tbaa !9
  %4124 = zext i32 %4123 to i64
  %4125 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4122, i64 %4124
  %4126 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4125, i32 0, i32 1
  %4127 = load ptr, ptr %4126, align 8, !tbaa !20
  %4128 = icmp ne ptr %4127, null
  br i1 %4128, label %4129, label %4141

4129:                                             ; preds = %4118
  %4130 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4131 = load ptr, ptr %5, align 8, !tbaa !5
  %4132 = getelementptr inbounds %struct.w2c_hermes, ptr %4131, i32 0, i32 7
  %4133 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4132, i32 0, i32 0
  %4134 = load ptr, ptr %4133, align 8, !tbaa !19
  %4135 = load i32, ptr %22, align 4, !tbaa !9
  %4136 = zext i32 %4135 to i64
  %4137 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4134, i64 %4136
  %4138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4137, i32 0, i32 0
  %4139 = load ptr, ptr %4138, align 8, !tbaa !22
  %4140 = call zeroext i1 @func_types_eq(ptr noundef %4130, ptr noundef %4139)
  br label %4141

4141:                                             ; preds = %4129, %4118, %4071
  %4142 = phi i1 [ false, %4118 ], [ false, %4071 ], [ %4140, %4129 ]
  %4143 = xor i1 %4142, true
  %4144 = xor i1 %4143, true
  %4145 = zext i1 %4144 to i32
  %4146 = sext i32 %4145 to i64
  %4147 = call i64 @llvm.expect.i64(i64 %4146, i64 1)
  %4148 = icmp ne i64 %4147, 0
  br i1 %4148, label %4151, label %4149

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

4150:                                             ; No predecessors!
  br label %4151

4151:                                             ; preds = %4150, %4141
  %4152 = phi i1 [ true, %4141 ], [ false, %4150 ]
  %4153 = zext i1 %4152 to i32
  %4154 = load ptr, ptr %5, align 8, !tbaa !5
  %4155 = getelementptr inbounds %struct.w2c_hermes, ptr %4154, i32 0, i32 7
  %4156 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4155, i32 0, i32 0
  %4157 = load ptr, ptr %4156, align 8, !tbaa !19
  %4158 = load i32, ptr %22, align 4, !tbaa !9
  %4159 = zext i32 %4158 to i64
  %4160 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4157, i64 %4159
  %4161 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4160, i32 0, i32 1
  %4162 = load ptr, ptr %4161, align 8, !tbaa !20
  %4163 = load ptr, ptr %5, align 8, !tbaa !5
  %4164 = getelementptr inbounds %struct.w2c_hermes, ptr %4163, i32 0, i32 7
  %4165 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4164, i32 0, i32 0
  %4166 = load ptr, ptr %4165, align 8, !tbaa !19
  %4167 = load i32, ptr %22, align 4, !tbaa !9
  %4168 = zext i32 %4167 to i64
  %4169 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4166, i64 %4168
  %4170 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4169, i32 0, i32 2
  %4171 = load ptr, ptr %4170, align 8, !tbaa !23
  %4172 = load i32, ptr %19, align 4, !tbaa !9
  %4173 = load i32, ptr %20, align 4, !tbaa !9
  %4174 = load i32, ptr %21, align 4, !tbaa !9
  call void %4162(ptr noundef %4171, i32 noundef %4172, i32 noundef %4173, i32 noundef %4174)
  %4175 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4175, ptr %19, align 4, !tbaa !9
  %4176 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4176, ptr %20, align 4, !tbaa !9
  store i32 72, ptr %21, align 4, !tbaa !9
  %4177 = load i32, ptr %21, align 4, !tbaa !9
  %4178 = load i32, ptr %20, align 4, !tbaa !9
  %4179 = add i32 %4178, %4177
  store i32 %4179, ptr %20, align 4, !tbaa !9
  store i32 36562, ptr %21, align 4, !tbaa !9
  %4180 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4180, ptr %22, align 4, !tbaa !9
  %4181 = load ptr, ptr %5, align 8, !tbaa !5
  %4182 = getelementptr inbounds %struct.w2c_hermes, ptr %4181, i32 0, i32 6
  %4183 = load i32, ptr %22, align 4, !tbaa !9
  %4184 = zext i32 %4183 to i64
  %4185 = call i32 @i32_load(ptr noundef %4182, i64 noundef %4184)
  store i32 %4185, ptr %22, align 4, !tbaa !9
  %4186 = load ptr, ptr %5, align 8, !tbaa !5
  %4187 = getelementptr inbounds %struct.w2c_hermes, ptr %4186, i32 0, i32 6
  %4188 = load i32, ptr %22, align 4, !tbaa !9
  %4189 = zext i32 %4188 to i64
  %4190 = add i64 %4189, 36
  %4191 = call i32 @i32_load(ptr noundef %4187, i64 noundef %4190)
  store i32 %4191, ptr %22, align 4, !tbaa !9
  %4192 = load i32, ptr %22, align 4, !tbaa !9
  %4193 = load ptr, ptr %5, align 8, !tbaa !5
  %4194 = getelementptr inbounds %struct.w2c_hermes, ptr %4193, i32 0, i32 7
  %4195 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4194, i32 0, i32 2
  %4196 = load i32, ptr %4195, align 4, !tbaa !18
  %4197 = icmp ult i32 %4192, %4196
  br i1 %4197, label %4198, label %4221

4198:                                             ; preds = %4151
  %4199 = load ptr, ptr %5, align 8, !tbaa !5
  %4200 = getelementptr inbounds %struct.w2c_hermes, ptr %4199, i32 0, i32 7
  %4201 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4200, i32 0, i32 0
  %4202 = load ptr, ptr %4201, align 8, !tbaa !19
  %4203 = load i32, ptr %22, align 4, !tbaa !9
  %4204 = zext i32 %4203 to i64
  %4205 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4202, i64 %4204
  %4206 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4205, i32 0, i32 1
  %4207 = load ptr, ptr %4206, align 8, !tbaa !20
  %4208 = icmp ne ptr %4207, null
  br i1 %4208, label %4209, label %4221

4209:                                             ; preds = %4198
  %4210 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4211 = load ptr, ptr %5, align 8, !tbaa !5
  %4212 = getelementptr inbounds %struct.w2c_hermes, ptr %4211, i32 0, i32 7
  %4213 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4212, i32 0, i32 0
  %4214 = load ptr, ptr %4213, align 8, !tbaa !19
  %4215 = load i32, ptr %22, align 4, !tbaa !9
  %4216 = zext i32 %4215 to i64
  %4217 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4214, i64 %4216
  %4218 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4217, i32 0, i32 0
  %4219 = load ptr, ptr %4218, align 8, !tbaa !22
  %4220 = call zeroext i1 @func_types_eq(ptr noundef %4210, ptr noundef %4219)
  br label %4221

4221:                                             ; preds = %4209, %4198, %4151
  %4222 = phi i1 [ false, %4198 ], [ false, %4151 ], [ %4220, %4209 ]
  %4223 = xor i1 %4222, true
  %4224 = xor i1 %4223, true
  %4225 = zext i1 %4224 to i32
  %4226 = sext i32 %4225 to i64
  %4227 = call i64 @llvm.expect.i64(i64 %4226, i64 1)
  %4228 = icmp ne i64 %4227, 0
  br i1 %4228, label %4231, label %4229

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

4230:                                             ; No predecessors!
  br label %4231

4231:                                             ; preds = %4230, %4221
  %4232 = phi i1 [ true, %4221 ], [ false, %4230 ]
  %4233 = zext i1 %4232 to i32
  %4234 = load ptr, ptr %5, align 8, !tbaa !5
  %4235 = getelementptr inbounds %struct.w2c_hermes, ptr %4234, i32 0, i32 7
  %4236 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4235, i32 0, i32 0
  %4237 = load ptr, ptr %4236, align 8, !tbaa !19
  %4238 = load i32, ptr %22, align 4, !tbaa !9
  %4239 = zext i32 %4238 to i64
  %4240 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4237, i64 %4239
  %4241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4240, i32 0, i32 1
  %4242 = load ptr, ptr %4241, align 8, !tbaa !20
  %4243 = load ptr, ptr %5, align 8, !tbaa !5
  %4244 = getelementptr inbounds %struct.w2c_hermes, ptr %4243, i32 0, i32 7
  %4245 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4244, i32 0, i32 0
  %4246 = load ptr, ptr %4245, align 8, !tbaa !19
  %4247 = load i32, ptr %22, align 4, !tbaa !9
  %4248 = zext i32 %4247 to i64
  %4249 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4246, i64 %4248
  %4250 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4249, i32 0, i32 2
  %4251 = load ptr, ptr %4250, align 8, !tbaa !23
  %4252 = load i32, ptr %19, align 4, !tbaa !9
  %4253 = load i32, ptr %20, align 4, !tbaa !9
  %4254 = load i32, ptr %21, align 4, !tbaa !9
  call void %4242(ptr noundef %4251, i32 noundef %4252, i32 noundef %4253, i32 noundef %4254)
  %4255 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4255, ptr %19, align 4, !tbaa !9
  %4256 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4256, ptr %20, align 4, !tbaa !9
  store i32 80, ptr %21, align 4, !tbaa !9
  %4257 = load i32, ptr %21, align 4, !tbaa !9
  %4258 = load i32, ptr %20, align 4, !tbaa !9
  %4259 = add i32 %4258, %4257
  store i32 %4259, ptr %20, align 4, !tbaa !9
  store i32 48417, ptr %21, align 4, !tbaa !9
  %4260 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4260, ptr %22, align 4, !tbaa !9
  %4261 = load ptr, ptr %5, align 8, !tbaa !5
  %4262 = getelementptr inbounds %struct.w2c_hermes, ptr %4261, i32 0, i32 6
  %4263 = load i32, ptr %22, align 4, !tbaa !9
  %4264 = zext i32 %4263 to i64
  %4265 = call i32 @i32_load(ptr noundef %4262, i64 noundef %4264)
  store i32 %4265, ptr %22, align 4, !tbaa !9
  %4266 = load ptr, ptr %5, align 8, !tbaa !5
  %4267 = getelementptr inbounds %struct.w2c_hermes, ptr %4266, i32 0, i32 6
  %4268 = load i32, ptr %22, align 4, !tbaa !9
  %4269 = zext i32 %4268 to i64
  %4270 = add i64 %4269, 36
  %4271 = call i32 @i32_load(ptr noundef %4267, i64 noundef %4270)
  store i32 %4271, ptr %22, align 4, !tbaa !9
  %4272 = load i32, ptr %22, align 4, !tbaa !9
  %4273 = load ptr, ptr %5, align 8, !tbaa !5
  %4274 = getelementptr inbounds %struct.w2c_hermes, ptr %4273, i32 0, i32 7
  %4275 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4274, i32 0, i32 2
  %4276 = load i32, ptr %4275, align 4, !tbaa !18
  %4277 = icmp ult i32 %4272, %4276
  br i1 %4277, label %4278, label %4301

4278:                                             ; preds = %4231
  %4279 = load ptr, ptr %5, align 8, !tbaa !5
  %4280 = getelementptr inbounds %struct.w2c_hermes, ptr %4279, i32 0, i32 7
  %4281 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4280, i32 0, i32 0
  %4282 = load ptr, ptr %4281, align 8, !tbaa !19
  %4283 = load i32, ptr %22, align 4, !tbaa !9
  %4284 = zext i32 %4283 to i64
  %4285 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4282, i64 %4284
  %4286 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4285, i32 0, i32 1
  %4287 = load ptr, ptr %4286, align 8, !tbaa !20
  %4288 = icmp ne ptr %4287, null
  br i1 %4288, label %4289, label %4301

4289:                                             ; preds = %4278
  %4290 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4291 = load ptr, ptr %5, align 8, !tbaa !5
  %4292 = getelementptr inbounds %struct.w2c_hermes, ptr %4291, i32 0, i32 7
  %4293 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4292, i32 0, i32 0
  %4294 = load ptr, ptr %4293, align 8, !tbaa !19
  %4295 = load i32, ptr %22, align 4, !tbaa !9
  %4296 = zext i32 %4295 to i64
  %4297 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4294, i64 %4296
  %4298 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4297, i32 0, i32 0
  %4299 = load ptr, ptr %4298, align 8, !tbaa !22
  %4300 = call zeroext i1 @func_types_eq(ptr noundef %4290, ptr noundef %4299)
  br label %4301

4301:                                             ; preds = %4289, %4278, %4231
  %4302 = phi i1 [ false, %4278 ], [ false, %4231 ], [ %4300, %4289 ]
  %4303 = xor i1 %4302, true
  %4304 = xor i1 %4303, true
  %4305 = zext i1 %4304 to i32
  %4306 = sext i32 %4305 to i64
  %4307 = call i64 @llvm.expect.i64(i64 %4306, i64 1)
  %4308 = icmp ne i64 %4307, 0
  br i1 %4308, label %4311, label %4309

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

4310:                                             ; No predecessors!
  br label %4311

4311:                                             ; preds = %4310, %4301
  %4312 = phi i1 [ true, %4301 ], [ false, %4310 ]
  %4313 = zext i1 %4312 to i32
  %4314 = load ptr, ptr %5, align 8, !tbaa !5
  %4315 = getelementptr inbounds %struct.w2c_hermes, ptr %4314, i32 0, i32 7
  %4316 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4315, i32 0, i32 0
  %4317 = load ptr, ptr %4316, align 8, !tbaa !19
  %4318 = load i32, ptr %22, align 4, !tbaa !9
  %4319 = zext i32 %4318 to i64
  %4320 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4317, i64 %4319
  %4321 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4320, i32 0, i32 1
  %4322 = load ptr, ptr %4321, align 8, !tbaa !20
  %4323 = load ptr, ptr %5, align 8, !tbaa !5
  %4324 = getelementptr inbounds %struct.w2c_hermes, ptr %4323, i32 0, i32 7
  %4325 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4324, i32 0, i32 0
  %4326 = load ptr, ptr %4325, align 8, !tbaa !19
  %4327 = load i32, ptr %22, align 4, !tbaa !9
  %4328 = zext i32 %4327 to i64
  %4329 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4326, i64 %4328
  %4330 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4329, i32 0, i32 2
  %4331 = load ptr, ptr %4330, align 8, !tbaa !23
  %4332 = load i32, ptr %19, align 4, !tbaa !9
  %4333 = load i32, ptr %20, align 4, !tbaa !9
  %4334 = load i32, ptr %21, align 4, !tbaa !9
  call void %4322(ptr noundef %4331, i32 noundef %4332, i32 noundef %4333, i32 noundef %4334)
  %4335 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4335, ptr %19, align 4, !tbaa !9
  %4336 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4336, ptr %20, align 4, !tbaa !9
  store i32 88, ptr %21, align 4, !tbaa !9
  %4337 = load i32, ptr %21, align 4, !tbaa !9
  %4338 = load i32, ptr %20, align 4, !tbaa !9
  %4339 = add i32 %4338, %4337
  store i32 %4339, ptr %20, align 4, !tbaa !9
  store i32 36739, ptr %21, align 4, !tbaa !9
  %4340 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4340, ptr %22, align 4, !tbaa !9
  %4341 = load ptr, ptr %5, align 8, !tbaa !5
  %4342 = getelementptr inbounds %struct.w2c_hermes, ptr %4341, i32 0, i32 6
  %4343 = load i32, ptr %22, align 4, !tbaa !9
  %4344 = zext i32 %4343 to i64
  %4345 = call i32 @i32_load(ptr noundef %4342, i64 noundef %4344)
  store i32 %4345, ptr %22, align 4, !tbaa !9
  %4346 = load ptr, ptr %5, align 8, !tbaa !5
  %4347 = getelementptr inbounds %struct.w2c_hermes, ptr %4346, i32 0, i32 6
  %4348 = load i32, ptr %22, align 4, !tbaa !9
  %4349 = zext i32 %4348 to i64
  %4350 = add i64 %4349, 36
  %4351 = call i32 @i32_load(ptr noundef %4347, i64 noundef %4350)
  store i32 %4351, ptr %22, align 4, !tbaa !9
  %4352 = load i32, ptr %22, align 4, !tbaa !9
  %4353 = load ptr, ptr %5, align 8, !tbaa !5
  %4354 = getelementptr inbounds %struct.w2c_hermes, ptr %4353, i32 0, i32 7
  %4355 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4354, i32 0, i32 2
  %4356 = load i32, ptr %4355, align 4, !tbaa !18
  %4357 = icmp ult i32 %4352, %4356
  br i1 %4357, label %4358, label %4381

4358:                                             ; preds = %4311
  %4359 = load ptr, ptr %5, align 8, !tbaa !5
  %4360 = getelementptr inbounds %struct.w2c_hermes, ptr %4359, i32 0, i32 7
  %4361 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4360, i32 0, i32 0
  %4362 = load ptr, ptr %4361, align 8, !tbaa !19
  %4363 = load i32, ptr %22, align 4, !tbaa !9
  %4364 = zext i32 %4363 to i64
  %4365 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4362, i64 %4364
  %4366 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4365, i32 0, i32 1
  %4367 = load ptr, ptr %4366, align 8, !tbaa !20
  %4368 = icmp ne ptr %4367, null
  br i1 %4368, label %4369, label %4381

4369:                                             ; preds = %4358
  %4370 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4371 = load ptr, ptr %5, align 8, !tbaa !5
  %4372 = getelementptr inbounds %struct.w2c_hermes, ptr %4371, i32 0, i32 7
  %4373 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4372, i32 0, i32 0
  %4374 = load ptr, ptr %4373, align 8, !tbaa !19
  %4375 = load i32, ptr %22, align 4, !tbaa !9
  %4376 = zext i32 %4375 to i64
  %4377 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4374, i64 %4376
  %4378 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4377, i32 0, i32 0
  %4379 = load ptr, ptr %4378, align 8, !tbaa !22
  %4380 = call zeroext i1 @func_types_eq(ptr noundef %4370, ptr noundef %4379)
  br label %4381

4381:                                             ; preds = %4369, %4358, %4311
  %4382 = phi i1 [ false, %4358 ], [ false, %4311 ], [ %4380, %4369 ]
  %4383 = xor i1 %4382, true
  %4384 = xor i1 %4383, true
  %4385 = zext i1 %4384 to i32
  %4386 = sext i32 %4385 to i64
  %4387 = call i64 @llvm.expect.i64(i64 %4386, i64 1)
  %4388 = icmp ne i64 %4387, 0
  br i1 %4388, label %4391, label %4389

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

4390:                                             ; No predecessors!
  br label %4391

4391:                                             ; preds = %4390, %4381
  %4392 = phi i1 [ true, %4381 ], [ false, %4390 ]
  %4393 = zext i1 %4392 to i32
  %4394 = load ptr, ptr %5, align 8, !tbaa !5
  %4395 = getelementptr inbounds %struct.w2c_hermes, ptr %4394, i32 0, i32 7
  %4396 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4395, i32 0, i32 0
  %4397 = load ptr, ptr %4396, align 8, !tbaa !19
  %4398 = load i32, ptr %22, align 4, !tbaa !9
  %4399 = zext i32 %4398 to i64
  %4400 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4397, i64 %4399
  %4401 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4400, i32 0, i32 1
  %4402 = load ptr, ptr %4401, align 8, !tbaa !20
  %4403 = load ptr, ptr %5, align 8, !tbaa !5
  %4404 = getelementptr inbounds %struct.w2c_hermes, ptr %4403, i32 0, i32 7
  %4405 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4404, i32 0, i32 0
  %4406 = load ptr, ptr %4405, align 8, !tbaa !19
  %4407 = load i32, ptr %22, align 4, !tbaa !9
  %4408 = zext i32 %4407 to i64
  %4409 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4406, i64 %4408
  %4410 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4409, i32 0, i32 2
  %4411 = load ptr, ptr %4410, align 8, !tbaa !23
  %4412 = load i32, ptr %19, align 4, !tbaa !9
  %4413 = load i32, ptr %20, align 4, !tbaa !9
  %4414 = load i32, ptr %21, align 4, !tbaa !9
  call void %4402(ptr noundef %4411, i32 noundef %4412, i32 noundef %4413, i32 noundef %4414)
  %4415 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4415, ptr %19, align 4, !tbaa !9
  %4416 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4416, ptr %20, align 4, !tbaa !9
  store i32 96, ptr %21, align 4, !tbaa !9
  %4417 = load i32, ptr %21, align 4, !tbaa !9
  %4418 = load i32, ptr %20, align 4, !tbaa !9
  %4419 = add i32 %4418, %4417
  store i32 %4419, ptr %20, align 4, !tbaa !9
  store i32 48437, ptr %21, align 4, !tbaa !9
  %4420 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4420, ptr %22, align 4, !tbaa !9
  %4421 = load ptr, ptr %5, align 8, !tbaa !5
  %4422 = getelementptr inbounds %struct.w2c_hermes, ptr %4421, i32 0, i32 6
  %4423 = load i32, ptr %22, align 4, !tbaa !9
  %4424 = zext i32 %4423 to i64
  %4425 = call i32 @i32_load(ptr noundef %4422, i64 noundef %4424)
  store i32 %4425, ptr %22, align 4, !tbaa !9
  %4426 = load ptr, ptr %5, align 8, !tbaa !5
  %4427 = getelementptr inbounds %struct.w2c_hermes, ptr %4426, i32 0, i32 6
  %4428 = load i32, ptr %22, align 4, !tbaa !9
  %4429 = zext i32 %4428 to i64
  %4430 = add i64 %4429, 36
  %4431 = call i32 @i32_load(ptr noundef %4427, i64 noundef %4430)
  store i32 %4431, ptr %22, align 4, !tbaa !9
  %4432 = load i32, ptr %22, align 4, !tbaa !9
  %4433 = load ptr, ptr %5, align 8, !tbaa !5
  %4434 = getelementptr inbounds %struct.w2c_hermes, ptr %4433, i32 0, i32 7
  %4435 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4434, i32 0, i32 2
  %4436 = load i32, ptr %4435, align 4, !tbaa !18
  %4437 = icmp ult i32 %4432, %4436
  br i1 %4437, label %4438, label %4461

4438:                                             ; preds = %4391
  %4439 = load ptr, ptr %5, align 8, !tbaa !5
  %4440 = getelementptr inbounds %struct.w2c_hermes, ptr %4439, i32 0, i32 7
  %4441 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4440, i32 0, i32 0
  %4442 = load ptr, ptr %4441, align 8, !tbaa !19
  %4443 = load i32, ptr %22, align 4, !tbaa !9
  %4444 = zext i32 %4443 to i64
  %4445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4442, i64 %4444
  %4446 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4445, i32 0, i32 1
  %4447 = load ptr, ptr %4446, align 8, !tbaa !20
  %4448 = icmp ne ptr %4447, null
  br i1 %4448, label %4449, label %4461

4449:                                             ; preds = %4438
  %4450 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4451 = load ptr, ptr %5, align 8, !tbaa !5
  %4452 = getelementptr inbounds %struct.w2c_hermes, ptr %4451, i32 0, i32 7
  %4453 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4452, i32 0, i32 0
  %4454 = load ptr, ptr %4453, align 8, !tbaa !19
  %4455 = load i32, ptr %22, align 4, !tbaa !9
  %4456 = zext i32 %4455 to i64
  %4457 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4454, i64 %4456
  %4458 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4457, i32 0, i32 0
  %4459 = load ptr, ptr %4458, align 8, !tbaa !22
  %4460 = call zeroext i1 @func_types_eq(ptr noundef %4450, ptr noundef %4459)
  br label %4461

4461:                                             ; preds = %4449, %4438, %4391
  %4462 = phi i1 [ false, %4438 ], [ false, %4391 ], [ %4460, %4449 ]
  %4463 = xor i1 %4462, true
  %4464 = xor i1 %4463, true
  %4465 = zext i1 %4464 to i32
  %4466 = sext i32 %4465 to i64
  %4467 = call i64 @llvm.expect.i64(i64 %4466, i64 1)
  %4468 = icmp ne i64 %4467, 0
  br i1 %4468, label %4471, label %4469

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

4470:                                             ; No predecessors!
  br label %4471

4471:                                             ; preds = %4470, %4461
  %4472 = phi i1 [ true, %4461 ], [ false, %4470 ]
  %4473 = zext i1 %4472 to i32
  %4474 = load ptr, ptr %5, align 8, !tbaa !5
  %4475 = getelementptr inbounds %struct.w2c_hermes, ptr %4474, i32 0, i32 7
  %4476 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4475, i32 0, i32 0
  %4477 = load ptr, ptr %4476, align 8, !tbaa !19
  %4478 = load i32, ptr %22, align 4, !tbaa !9
  %4479 = zext i32 %4478 to i64
  %4480 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4477, i64 %4479
  %4481 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4480, i32 0, i32 1
  %4482 = load ptr, ptr %4481, align 8, !tbaa !20
  %4483 = load ptr, ptr %5, align 8, !tbaa !5
  %4484 = getelementptr inbounds %struct.w2c_hermes, ptr %4483, i32 0, i32 7
  %4485 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4484, i32 0, i32 0
  %4486 = load ptr, ptr %4485, align 8, !tbaa !19
  %4487 = load i32, ptr %22, align 4, !tbaa !9
  %4488 = zext i32 %4487 to i64
  %4489 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4486, i64 %4488
  %4490 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4489, i32 0, i32 2
  %4491 = load ptr, ptr %4490, align 8, !tbaa !23
  %4492 = load i32, ptr %19, align 4, !tbaa !9
  %4493 = load i32, ptr %20, align 4, !tbaa !9
  %4494 = load i32, ptr %21, align 4, !tbaa !9
  call void %4482(ptr noundef %4491, i32 noundef %4492, i32 noundef %4493, i32 noundef %4494)
  %4495 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4495, ptr %19, align 4, !tbaa !9
  %4496 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4496, ptr %20, align 4, !tbaa !9
  store i32 104, ptr %21, align 4, !tbaa !9
  %4497 = load i32, ptr %21, align 4, !tbaa !9
  %4498 = load i32, ptr %20, align 4, !tbaa !9
  %4499 = add i32 %4498, %4497
  store i32 %4499, ptr %20, align 4, !tbaa !9
  store i32 36761, ptr %21, align 4, !tbaa !9
  %4500 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4500, ptr %22, align 4, !tbaa !9
  %4501 = load ptr, ptr %5, align 8, !tbaa !5
  %4502 = getelementptr inbounds %struct.w2c_hermes, ptr %4501, i32 0, i32 6
  %4503 = load i32, ptr %22, align 4, !tbaa !9
  %4504 = zext i32 %4503 to i64
  %4505 = call i32 @i32_load(ptr noundef %4502, i64 noundef %4504)
  store i32 %4505, ptr %22, align 4, !tbaa !9
  %4506 = load ptr, ptr %5, align 8, !tbaa !5
  %4507 = getelementptr inbounds %struct.w2c_hermes, ptr %4506, i32 0, i32 6
  %4508 = load i32, ptr %22, align 4, !tbaa !9
  %4509 = zext i32 %4508 to i64
  %4510 = add i64 %4509, 36
  %4511 = call i32 @i32_load(ptr noundef %4507, i64 noundef %4510)
  store i32 %4511, ptr %22, align 4, !tbaa !9
  %4512 = load i32, ptr %22, align 4, !tbaa !9
  %4513 = load ptr, ptr %5, align 8, !tbaa !5
  %4514 = getelementptr inbounds %struct.w2c_hermes, ptr %4513, i32 0, i32 7
  %4515 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4514, i32 0, i32 2
  %4516 = load i32, ptr %4515, align 4, !tbaa !18
  %4517 = icmp ult i32 %4512, %4516
  br i1 %4517, label %4518, label %4541

4518:                                             ; preds = %4471
  %4519 = load ptr, ptr %5, align 8, !tbaa !5
  %4520 = getelementptr inbounds %struct.w2c_hermes, ptr %4519, i32 0, i32 7
  %4521 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4520, i32 0, i32 0
  %4522 = load ptr, ptr %4521, align 8, !tbaa !19
  %4523 = load i32, ptr %22, align 4, !tbaa !9
  %4524 = zext i32 %4523 to i64
  %4525 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4522, i64 %4524
  %4526 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4525, i32 0, i32 1
  %4527 = load ptr, ptr %4526, align 8, !tbaa !20
  %4528 = icmp ne ptr %4527, null
  br i1 %4528, label %4529, label %4541

4529:                                             ; preds = %4518
  %4530 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4531 = load ptr, ptr %5, align 8, !tbaa !5
  %4532 = getelementptr inbounds %struct.w2c_hermes, ptr %4531, i32 0, i32 7
  %4533 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4532, i32 0, i32 0
  %4534 = load ptr, ptr %4533, align 8, !tbaa !19
  %4535 = load i32, ptr %22, align 4, !tbaa !9
  %4536 = zext i32 %4535 to i64
  %4537 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4534, i64 %4536
  %4538 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4537, i32 0, i32 0
  %4539 = load ptr, ptr %4538, align 8, !tbaa !22
  %4540 = call zeroext i1 @func_types_eq(ptr noundef %4530, ptr noundef %4539)
  br label %4541

4541:                                             ; preds = %4529, %4518, %4471
  %4542 = phi i1 [ false, %4518 ], [ false, %4471 ], [ %4540, %4529 ]
  %4543 = xor i1 %4542, true
  %4544 = xor i1 %4543, true
  %4545 = zext i1 %4544 to i32
  %4546 = sext i32 %4545 to i64
  %4547 = call i64 @llvm.expect.i64(i64 %4546, i64 1)
  %4548 = icmp ne i64 %4547, 0
  br i1 %4548, label %4551, label %4549

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

4550:                                             ; No predecessors!
  br label %4551

4551:                                             ; preds = %4550, %4541
  %4552 = phi i1 [ true, %4541 ], [ false, %4550 ]
  %4553 = zext i1 %4552 to i32
  %4554 = load ptr, ptr %5, align 8, !tbaa !5
  %4555 = getelementptr inbounds %struct.w2c_hermes, ptr %4554, i32 0, i32 7
  %4556 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4555, i32 0, i32 0
  %4557 = load ptr, ptr %4556, align 8, !tbaa !19
  %4558 = load i32, ptr %22, align 4, !tbaa !9
  %4559 = zext i32 %4558 to i64
  %4560 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4557, i64 %4559
  %4561 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4560, i32 0, i32 1
  %4562 = load ptr, ptr %4561, align 8, !tbaa !20
  %4563 = load ptr, ptr %5, align 8, !tbaa !5
  %4564 = getelementptr inbounds %struct.w2c_hermes, ptr %4563, i32 0, i32 7
  %4565 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4564, i32 0, i32 0
  %4566 = load ptr, ptr %4565, align 8, !tbaa !19
  %4567 = load i32, ptr %22, align 4, !tbaa !9
  %4568 = zext i32 %4567 to i64
  %4569 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4566, i64 %4568
  %4570 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4569, i32 0, i32 2
  %4571 = load ptr, ptr %4570, align 8, !tbaa !23
  %4572 = load i32, ptr %19, align 4, !tbaa !9
  %4573 = load i32, ptr %20, align 4, !tbaa !9
  %4574 = load i32, ptr %21, align 4, !tbaa !9
  call void %4562(ptr noundef %4571, i32 noundef %4572, i32 noundef %4573, i32 noundef %4574)
  %4575 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4575, ptr %19, align 4, !tbaa !9
  %4576 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4576, ptr %20, align 4, !tbaa !9
  store i32 112, ptr %21, align 4, !tbaa !9
  %4577 = load i32, ptr %21, align 4, !tbaa !9
  %4578 = load i32, ptr %20, align 4, !tbaa !9
  %4579 = add i32 %4578, %4577
  store i32 %4579, ptr %20, align 4, !tbaa !9
  store i32 48293, ptr %21, align 4, !tbaa !9
  %4580 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4580, ptr %22, align 4, !tbaa !9
  %4581 = load ptr, ptr %5, align 8, !tbaa !5
  %4582 = getelementptr inbounds %struct.w2c_hermes, ptr %4581, i32 0, i32 6
  %4583 = load i32, ptr %22, align 4, !tbaa !9
  %4584 = zext i32 %4583 to i64
  %4585 = call i32 @i32_load(ptr noundef %4582, i64 noundef %4584)
  store i32 %4585, ptr %22, align 4, !tbaa !9
  %4586 = load ptr, ptr %5, align 8, !tbaa !5
  %4587 = getelementptr inbounds %struct.w2c_hermes, ptr %4586, i32 0, i32 6
  %4588 = load i32, ptr %22, align 4, !tbaa !9
  %4589 = zext i32 %4588 to i64
  %4590 = add i64 %4589, 36
  %4591 = call i32 @i32_load(ptr noundef %4587, i64 noundef %4590)
  store i32 %4591, ptr %22, align 4, !tbaa !9
  %4592 = load i32, ptr %22, align 4, !tbaa !9
  %4593 = load ptr, ptr %5, align 8, !tbaa !5
  %4594 = getelementptr inbounds %struct.w2c_hermes, ptr %4593, i32 0, i32 7
  %4595 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4594, i32 0, i32 2
  %4596 = load i32, ptr %4595, align 4, !tbaa !18
  %4597 = icmp ult i32 %4592, %4596
  br i1 %4597, label %4598, label %4621

4598:                                             ; preds = %4551
  %4599 = load ptr, ptr %5, align 8, !tbaa !5
  %4600 = getelementptr inbounds %struct.w2c_hermes, ptr %4599, i32 0, i32 7
  %4601 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4600, i32 0, i32 0
  %4602 = load ptr, ptr %4601, align 8, !tbaa !19
  %4603 = load i32, ptr %22, align 4, !tbaa !9
  %4604 = zext i32 %4603 to i64
  %4605 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4602, i64 %4604
  %4606 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4605, i32 0, i32 1
  %4607 = load ptr, ptr %4606, align 8, !tbaa !20
  %4608 = icmp ne ptr %4607, null
  br i1 %4608, label %4609, label %4621

4609:                                             ; preds = %4598
  %4610 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4611 = load ptr, ptr %5, align 8, !tbaa !5
  %4612 = getelementptr inbounds %struct.w2c_hermes, ptr %4611, i32 0, i32 7
  %4613 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4612, i32 0, i32 0
  %4614 = load ptr, ptr %4613, align 8, !tbaa !19
  %4615 = load i32, ptr %22, align 4, !tbaa !9
  %4616 = zext i32 %4615 to i64
  %4617 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4614, i64 %4616
  %4618 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4617, i32 0, i32 0
  %4619 = load ptr, ptr %4618, align 8, !tbaa !22
  %4620 = call zeroext i1 @func_types_eq(ptr noundef %4610, ptr noundef %4619)
  br label %4621

4621:                                             ; preds = %4609, %4598, %4551
  %4622 = phi i1 [ false, %4598 ], [ false, %4551 ], [ %4620, %4609 ]
  %4623 = xor i1 %4622, true
  %4624 = xor i1 %4623, true
  %4625 = zext i1 %4624 to i32
  %4626 = sext i32 %4625 to i64
  %4627 = call i64 @llvm.expect.i64(i64 %4626, i64 1)
  %4628 = icmp ne i64 %4627, 0
  br i1 %4628, label %4631, label %4629

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

4630:                                             ; No predecessors!
  br label %4631

4631:                                             ; preds = %4630, %4621
  %4632 = phi i1 [ true, %4621 ], [ false, %4630 ]
  %4633 = zext i1 %4632 to i32
  %4634 = load ptr, ptr %5, align 8, !tbaa !5
  %4635 = getelementptr inbounds %struct.w2c_hermes, ptr %4634, i32 0, i32 7
  %4636 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4635, i32 0, i32 0
  %4637 = load ptr, ptr %4636, align 8, !tbaa !19
  %4638 = load i32, ptr %22, align 4, !tbaa !9
  %4639 = zext i32 %4638 to i64
  %4640 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4637, i64 %4639
  %4641 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4640, i32 0, i32 1
  %4642 = load ptr, ptr %4641, align 8, !tbaa !20
  %4643 = load ptr, ptr %5, align 8, !tbaa !5
  %4644 = getelementptr inbounds %struct.w2c_hermes, ptr %4643, i32 0, i32 7
  %4645 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4644, i32 0, i32 0
  %4646 = load ptr, ptr %4645, align 8, !tbaa !19
  %4647 = load i32, ptr %22, align 4, !tbaa !9
  %4648 = zext i32 %4647 to i64
  %4649 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4646, i64 %4648
  %4650 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4649, i32 0, i32 2
  %4651 = load ptr, ptr %4650, align 8, !tbaa !23
  %4652 = load i32, ptr %19, align 4, !tbaa !9
  %4653 = load i32, ptr %20, align 4, !tbaa !9
  %4654 = load i32, ptr %21, align 4, !tbaa !9
  call void %4642(ptr noundef %4651, i32 noundef %4652, i32 noundef %4653, i32 noundef %4654)
  %4655 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4655, ptr %19, align 4, !tbaa !9
  %4656 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4656, ptr %20, align 4, !tbaa !9
  store i32 120, ptr %21, align 4, !tbaa !9
  %4657 = load i32, ptr %21, align 4, !tbaa !9
  %4658 = load i32, ptr %20, align 4, !tbaa !9
  %4659 = add i32 %4658, %4657
  store i32 %4659, ptr %20, align 4, !tbaa !9
  store i32 36494, ptr %21, align 4, !tbaa !9
  %4660 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4660, ptr %22, align 4, !tbaa !9
  %4661 = load ptr, ptr %5, align 8, !tbaa !5
  %4662 = getelementptr inbounds %struct.w2c_hermes, ptr %4661, i32 0, i32 6
  %4663 = load i32, ptr %22, align 4, !tbaa !9
  %4664 = zext i32 %4663 to i64
  %4665 = call i32 @i32_load(ptr noundef %4662, i64 noundef %4664)
  store i32 %4665, ptr %22, align 4, !tbaa !9
  %4666 = load ptr, ptr %5, align 8, !tbaa !5
  %4667 = getelementptr inbounds %struct.w2c_hermes, ptr %4666, i32 0, i32 6
  %4668 = load i32, ptr %22, align 4, !tbaa !9
  %4669 = zext i32 %4668 to i64
  %4670 = add i64 %4669, 36
  %4671 = call i32 @i32_load(ptr noundef %4667, i64 noundef %4670)
  store i32 %4671, ptr %22, align 4, !tbaa !9
  %4672 = load i32, ptr %22, align 4, !tbaa !9
  %4673 = load ptr, ptr %5, align 8, !tbaa !5
  %4674 = getelementptr inbounds %struct.w2c_hermes, ptr %4673, i32 0, i32 7
  %4675 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4674, i32 0, i32 2
  %4676 = load i32, ptr %4675, align 4, !tbaa !18
  %4677 = icmp ult i32 %4672, %4676
  br i1 %4677, label %4678, label %4701

4678:                                             ; preds = %4631
  %4679 = load ptr, ptr %5, align 8, !tbaa !5
  %4680 = getelementptr inbounds %struct.w2c_hermes, ptr %4679, i32 0, i32 7
  %4681 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4680, i32 0, i32 0
  %4682 = load ptr, ptr %4681, align 8, !tbaa !19
  %4683 = load i32, ptr %22, align 4, !tbaa !9
  %4684 = zext i32 %4683 to i64
  %4685 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4682, i64 %4684
  %4686 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4685, i32 0, i32 1
  %4687 = load ptr, ptr %4686, align 8, !tbaa !20
  %4688 = icmp ne ptr %4687, null
  br i1 %4688, label %4689, label %4701

4689:                                             ; preds = %4678
  %4690 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4691 = load ptr, ptr %5, align 8, !tbaa !5
  %4692 = getelementptr inbounds %struct.w2c_hermes, ptr %4691, i32 0, i32 7
  %4693 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4692, i32 0, i32 0
  %4694 = load ptr, ptr %4693, align 8, !tbaa !19
  %4695 = load i32, ptr %22, align 4, !tbaa !9
  %4696 = zext i32 %4695 to i64
  %4697 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4694, i64 %4696
  %4698 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4697, i32 0, i32 0
  %4699 = load ptr, ptr %4698, align 8, !tbaa !22
  %4700 = call zeroext i1 @func_types_eq(ptr noundef %4690, ptr noundef %4699)
  br label %4701

4701:                                             ; preds = %4689, %4678, %4631
  %4702 = phi i1 [ false, %4678 ], [ false, %4631 ], [ %4700, %4689 ]
  %4703 = xor i1 %4702, true
  %4704 = xor i1 %4703, true
  %4705 = zext i1 %4704 to i32
  %4706 = sext i32 %4705 to i64
  %4707 = call i64 @llvm.expect.i64(i64 %4706, i64 1)
  %4708 = icmp ne i64 %4707, 0
  br i1 %4708, label %4711, label %4709

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

4710:                                             ; No predecessors!
  br label %4711

4711:                                             ; preds = %4710, %4701
  %4712 = phi i1 [ true, %4701 ], [ false, %4710 ]
  %4713 = zext i1 %4712 to i32
  %4714 = load ptr, ptr %5, align 8, !tbaa !5
  %4715 = getelementptr inbounds %struct.w2c_hermes, ptr %4714, i32 0, i32 7
  %4716 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4715, i32 0, i32 0
  %4717 = load ptr, ptr %4716, align 8, !tbaa !19
  %4718 = load i32, ptr %22, align 4, !tbaa !9
  %4719 = zext i32 %4718 to i64
  %4720 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4717, i64 %4719
  %4721 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4720, i32 0, i32 1
  %4722 = load ptr, ptr %4721, align 8, !tbaa !20
  %4723 = load ptr, ptr %5, align 8, !tbaa !5
  %4724 = getelementptr inbounds %struct.w2c_hermes, ptr %4723, i32 0, i32 7
  %4725 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4724, i32 0, i32 0
  %4726 = load ptr, ptr %4725, align 8, !tbaa !19
  %4727 = load i32, ptr %22, align 4, !tbaa !9
  %4728 = zext i32 %4727 to i64
  %4729 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4726, i64 %4728
  %4730 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4729, i32 0, i32 2
  %4731 = load ptr, ptr %4730, align 8, !tbaa !23
  %4732 = load i32, ptr %19, align 4, !tbaa !9
  %4733 = load i32, ptr %20, align 4, !tbaa !9
  %4734 = load i32, ptr %21, align 4, !tbaa !9
  call void %4722(ptr noundef %4731, i32 noundef %4732, i32 noundef %4733, i32 noundef %4734)
  %4735 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4735, ptr %19, align 4, !tbaa !9
  %4736 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4736, ptr %20, align 4, !tbaa !9
  store i32 128, ptr %21, align 4, !tbaa !9
  %4737 = load i32, ptr %21, align 4, !tbaa !9
  %4738 = load i32, ptr %20, align 4, !tbaa !9
  %4739 = add i32 %4738, %4737
  store i32 %4739, ptr %20, align 4, !tbaa !9
  store i32 48398, ptr %21, align 4, !tbaa !9
  %4740 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4740, ptr %22, align 4, !tbaa !9
  %4741 = load ptr, ptr %5, align 8, !tbaa !5
  %4742 = getelementptr inbounds %struct.w2c_hermes, ptr %4741, i32 0, i32 6
  %4743 = load i32, ptr %22, align 4, !tbaa !9
  %4744 = zext i32 %4743 to i64
  %4745 = call i32 @i32_load(ptr noundef %4742, i64 noundef %4744)
  store i32 %4745, ptr %22, align 4, !tbaa !9
  %4746 = load ptr, ptr %5, align 8, !tbaa !5
  %4747 = getelementptr inbounds %struct.w2c_hermes, ptr %4746, i32 0, i32 6
  %4748 = load i32, ptr %22, align 4, !tbaa !9
  %4749 = zext i32 %4748 to i64
  %4750 = add i64 %4749, 36
  %4751 = call i32 @i32_load(ptr noundef %4747, i64 noundef %4750)
  store i32 %4751, ptr %22, align 4, !tbaa !9
  %4752 = load i32, ptr %22, align 4, !tbaa !9
  %4753 = load ptr, ptr %5, align 8, !tbaa !5
  %4754 = getelementptr inbounds %struct.w2c_hermes, ptr %4753, i32 0, i32 7
  %4755 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4754, i32 0, i32 2
  %4756 = load i32, ptr %4755, align 4, !tbaa !18
  %4757 = icmp ult i32 %4752, %4756
  br i1 %4757, label %4758, label %4781

4758:                                             ; preds = %4711
  %4759 = load ptr, ptr %5, align 8, !tbaa !5
  %4760 = getelementptr inbounds %struct.w2c_hermes, ptr %4759, i32 0, i32 7
  %4761 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4760, i32 0, i32 0
  %4762 = load ptr, ptr %4761, align 8, !tbaa !19
  %4763 = load i32, ptr %22, align 4, !tbaa !9
  %4764 = zext i32 %4763 to i64
  %4765 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4762, i64 %4764
  %4766 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4765, i32 0, i32 1
  %4767 = load ptr, ptr %4766, align 8, !tbaa !20
  %4768 = icmp ne ptr %4767, null
  br i1 %4768, label %4769, label %4781

4769:                                             ; preds = %4758
  %4770 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4771 = load ptr, ptr %5, align 8, !tbaa !5
  %4772 = getelementptr inbounds %struct.w2c_hermes, ptr %4771, i32 0, i32 7
  %4773 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4772, i32 0, i32 0
  %4774 = load ptr, ptr %4773, align 8, !tbaa !19
  %4775 = load i32, ptr %22, align 4, !tbaa !9
  %4776 = zext i32 %4775 to i64
  %4777 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4774, i64 %4776
  %4778 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4777, i32 0, i32 0
  %4779 = load ptr, ptr %4778, align 8, !tbaa !22
  %4780 = call zeroext i1 @func_types_eq(ptr noundef %4770, ptr noundef %4779)
  br label %4781

4781:                                             ; preds = %4769, %4758, %4711
  %4782 = phi i1 [ false, %4758 ], [ false, %4711 ], [ %4780, %4769 ]
  %4783 = xor i1 %4782, true
  %4784 = xor i1 %4783, true
  %4785 = zext i1 %4784 to i32
  %4786 = sext i32 %4785 to i64
  %4787 = call i64 @llvm.expect.i64(i64 %4786, i64 1)
  %4788 = icmp ne i64 %4787, 0
  br i1 %4788, label %4791, label %4789

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

4790:                                             ; No predecessors!
  br label %4791

4791:                                             ; preds = %4790, %4781
  %4792 = phi i1 [ true, %4781 ], [ false, %4790 ]
  %4793 = zext i1 %4792 to i32
  %4794 = load ptr, ptr %5, align 8, !tbaa !5
  %4795 = getelementptr inbounds %struct.w2c_hermes, ptr %4794, i32 0, i32 7
  %4796 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4795, i32 0, i32 0
  %4797 = load ptr, ptr %4796, align 8, !tbaa !19
  %4798 = load i32, ptr %22, align 4, !tbaa !9
  %4799 = zext i32 %4798 to i64
  %4800 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4797, i64 %4799
  %4801 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4800, i32 0, i32 1
  %4802 = load ptr, ptr %4801, align 8, !tbaa !20
  %4803 = load ptr, ptr %5, align 8, !tbaa !5
  %4804 = getelementptr inbounds %struct.w2c_hermes, ptr %4803, i32 0, i32 7
  %4805 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4804, i32 0, i32 0
  %4806 = load ptr, ptr %4805, align 8, !tbaa !19
  %4807 = load i32, ptr %22, align 4, !tbaa !9
  %4808 = zext i32 %4807 to i64
  %4809 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4806, i64 %4808
  %4810 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4809, i32 0, i32 2
  %4811 = load ptr, ptr %4810, align 8, !tbaa !23
  %4812 = load i32, ptr %19, align 4, !tbaa !9
  %4813 = load i32, ptr %20, align 4, !tbaa !9
  %4814 = load i32, ptr %21, align 4, !tbaa !9
  call void %4802(ptr noundef %4811, i32 noundef %4812, i32 noundef %4813, i32 noundef %4814)
  %4815 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4815, ptr %19, align 4, !tbaa !9
  %4816 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4816, ptr %20, align 4, !tbaa !9
  store i32 136, ptr %21, align 4, !tbaa !9
  %4817 = load i32, ptr %21, align 4, !tbaa !9
  %4818 = load i32, ptr %20, align 4, !tbaa !9
  %4819 = add i32 %4818, %4817
  store i32 %4819, ptr %20, align 4, !tbaa !9
  store i32 36718, ptr %21, align 4, !tbaa !9
  %4820 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4820, ptr %22, align 4, !tbaa !9
  %4821 = load ptr, ptr %5, align 8, !tbaa !5
  %4822 = getelementptr inbounds %struct.w2c_hermes, ptr %4821, i32 0, i32 6
  %4823 = load i32, ptr %22, align 4, !tbaa !9
  %4824 = zext i32 %4823 to i64
  %4825 = call i32 @i32_load(ptr noundef %4822, i64 noundef %4824)
  store i32 %4825, ptr %22, align 4, !tbaa !9
  %4826 = load ptr, ptr %5, align 8, !tbaa !5
  %4827 = getelementptr inbounds %struct.w2c_hermes, ptr %4826, i32 0, i32 6
  %4828 = load i32, ptr %22, align 4, !tbaa !9
  %4829 = zext i32 %4828 to i64
  %4830 = add i64 %4829, 36
  %4831 = call i32 @i32_load(ptr noundef %4827, i64 noundef %4830)
  store i32 %4831, ptr %22, align 4, !tbaa !9
  %4832 = load i32, ptr %22, align 4, !tbaa !9
  %4833 = load ptr, ptr %5, align 8, !tbaa !5
  %4834 = getelementptr inbounds %struct.w2c_hermes, ptr %4833, i32 0, i32 7
  %4835 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4834, i32 0, i32 2
  %4836 = load i32, ptr %4835, align 4, !tbaa !18
  %4837 = icmp ult i32 %4832, %4836
  br i1 %4837, label %4838, label %4861

4838:                                             ; preds = %4791
  %4839 = load ptr, ptr %5, align 8, !tbaa !5
  %4840 = getelementptr inbounds %struct.w2c_hermes, ptr %4839, i32 0, i32 7
  %4841 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4840, i32 0, i32 0
  %4842 = load ptr, ptr %4841, align 8, !tbaa !19
  %4843 = load i32, ptr %22, align 4, !tbaa !9
  %4844 = zext i32 %4843 to i64
  %4845 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4842, i64 %4844
  %4846 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4845, i32 0, i32 1
  %4847 = load ptr, ptr %4846, align 8, !tbaa !20
  %4848 = icmp ne ptr %4847, null
  br i1 %4848, label %4849, label %4861

4849:                                             ; preds = %4838
  %4850 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4851 = load ptr, ptr %5, align 8, !tbaa !5
  %4852 = getelementptr inbounds %struct.w2c_hermes, ptr %4851, i32 0, i32 7
  %4853 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4852, i32 0, i32 0
  %4854 = load ptr, ptr %4853, align 8, !tbaa !19
  %4855 = load i32, ptr %22, align 4, !tbaa !9
  %4856 = zext i32 %4855 to i64
  %4857 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4854, i64 %4856
  %4858 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4857, i32 0, i32 0
  %4859 = load ptr, ptr %4858, align 8, !tbaa !22
  %4860 = call zeroext i1 @func_types_eq(ptr noundef %4850, ptr noundef %4859)
  br label %4861

4861:                                             ; preds = %4849, %4838, %4791
  %4862 = phi i1 [ false, %4838 ], [ false, %4791 ], [ %4860, %4849 ]
  %4863 = xor i1 %4862, true
  %4864 = xor i1 %4863, true
  %4865 = zext i1 %4864 to i32
  %4866 = sext i32 %4865 to i64
  %4867 = call i64 @llvm.expect.i64(i64 %4866, i64 1)
  %4868 = icmp ne i64 %4867, 0
  br i1 %4868, label %4871, label %4869

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

4870:                                             ; No predecessors!
  br label %4871

4871:                                             ; preds = %4870, %4861
  %4872 = phi i1 [ true, %4861 ], [ false, %4870 ]
  %4873 = zext i1 %4872 to i32
  %4874 = load ptr, ptr %5, align 8, !tbaa !5
  %4875 = getelementptr inbounds %struct.w2c_hermes, ptr %4874, i32 0, i32 7
  %4876 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4875, i32 0, i32 0
  %4877 = load ptr, ptr %4876, align 8, !tbaa !19
  %4878 = load i32, ptr %22, align 4, !tbaa !9
  %4879 = zext i32 %4878 to i64
  %4880 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4877, i64 %4879
  %4881 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4880, i32 0, i32 1
  %4882 = load ptr, ptr %4881, align 8, !tbaa !20
  %4883 = load ptr, ptr %5, align 8, !tbaa !5
  %4884 = getelementptr inbounds %struct.w2c_hermes, ptr %4883, i32 0, i32 7
  %4885 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4884, i32 0, i32 0
  %4886 = load ptr, ptr %4885, align 8, !tbaa !19
  %4887 = load i32, ptr %22, align 4, !tbaa !9
  %4888 = zext i32 %4887 to i64
  %4889 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4886, i64 %4888
  %4890 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4889, i32 0, i32 2
  %4891 = load ptr, ptr %4890, align 8, !tbaa !23
  %4892 = load i32, ptr %19, align 4, !tbaa !9
  %4893 = load i32, ptr %20, align 4, !tbaa !9
  %4894 = load i32, ptr %21, align 4, !tbaa !9
  call void %4882(ptr noundef %4891, i32 noundef %4892, i32 noundef %4893, i32 noundef %4894)
  %4895 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4895, ptr %19, align 4, !tbaa !9
  %4896 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4896, ptr %20, align 4, !tbaa !9
  store i32 144, ptr %21, align 4, !tbaa !9
  %4897 = load i32, ptr %21, align 4, !tbaa !9
  %4898 = load i32, ptr %20, align 4, !tbaa !9
  %4899 = add i32 %4898, %4897
  store i32 %4899, ptr %20, align 4, !tbaa !9
  store i32 48461, ptr %21, align 4, !tbaa !9
  %4900 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4900, ptr %22, align 4, !tbaa !9
  %4901 = load ptr, ptr %5, align 8, !tbaa !5
  %4902 = getelementptr inbounds %struct.w2c_hermes, ptr %4901, i32 0, i32 6
  %4903 = load i32, ptr %22, align 4, !tbaa !9
  %4904 = zext i32 %4903 to i64
  %4905 = call i32 @i32_load(ptr noundef %4902, i64 noundef %4904)
  store i32 %4905, ptr %22, align 4, !tbaa !9
  %4906 = load ptr, ptr %5, align 8, !tbaa !5
  %4907 = getelementptr inbounds %struct.w2c_hermes, ptr %4906, i32 0, i32 6
  %4908 = load i32, ptr %22, align 4, !tbaa !9
  %4909 = zext i32 %4908 to i64
  %4910 = add i64 %4909, 36
  %4911 = call i32 @i32_load(ptr noundef %4907, i64 noundef %4910)
  store i32 %4911, ptr %22, align 4, !tbaa !9
  %4912 = load i32, ptr %22, align 4, !tbaa !9
  %4913 = load ptr, ptr %5, align 8, !tbaa !5
  %4914 = getelementptr inbounds %struct.w2c_hermes, ptr %4913, i32 0, i32 7
  %4915 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4914, i32 0, i32 2
  %4916 = load i32, ptr %4915, align 4, !tbaa !18
  %4917 = icmp ult i32 %4912, %4916
  br i1 %4917, label %4918, label %4941

4918:                                             ; preds = %4871
  %4919 = load ptr, ptr %5, align 8, !tbaa !5
  %4920 = getelementptr inbounds %struct.w2c_hermes, ptr %4919, i32 0, i32 7
  %4921 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4920, i32 0, i32 0
  %4922 = load ptr, ptr %4921, align 8, !tbaa !19
  %4923 = load i32, ptr %22, align 4, !tbaa !9
  %4924 = zext i32 %4923 to i64
  %4925 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4922, i64 %4924
  %4926 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4925, i32 0, i32 1
  %4927 = load ptr, ptr %4926, align 8, !tbaa !20
  %4928 = icmp ne ptr %4927, null
  br i1 %4928, label %4929, label %4941

4929:                                             ; preds = %4918
  %4930 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %4931 = load ptr, ptr %5, align 8, !tbaa !5
  %4932 = getelementptr inbounds %struct.w2c_hermes, ptr %4931, i32 0, i32 7
  %4933 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4932, i32 0, i32 0
  %4934 = load ptr, ptr %4933, align 8, !tbaa !19
  %4935 = load i32, ptr %22, align 4, !tbaa !9
  %4936 = zext i32 %4935 to i64
  %4937 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4934, i64 %4936
  %4938 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4937, i32 0, i32 0
  %4939 = load ptr, ptr %4938, align 8, !tbaa !22
  %4940 = call zeroext i1 @func_types_eq(ptr noundef %4930, ptr noundef %4939)
  br label %4941

4941:                                             ; preds = %4929, %4918, %4871
  %4942 = phi i1 [ false, %4918 ], [ false, %4871 ], [ %4940, %4929 ]
  %4943 = xor i1 %4942, true
  %4944 = xor i1 %4943, true
  %4945 = zext i1 %4944 to i32
  %4946 = sext i32 %4945 to i64
  %4947 = call i64 @llvm.expect.i64(i64 %4946, i64 1)
  %4948 = icmp ne i64 %4947, 0
  br i1 %4948, label %4951, label %4949

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

4950:                                             ; No predecessors!
  br label %4951

4951:                                             ; preds = %4950, %4941
  %4952 = phi i1 [ true, %4941 ], [ false, %4950 ]
  %4953 = zext i1 %4952 to i32
  %4954 = load ptr, ptr %5, align 8, !tbaa !5
  %4955 = getelementptr inbounds %struct.w2c_hermes, ptr %4954, i32 0, i32 7
  %4956 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4955, i32 0, i32 0
  %4957 = load ptr, ptr %4956, align 8, !tbaa !19
  %4958 = load i32, ptr %22, align 4, !tbaa !9
  %4959 = zext i32 %4958 to i64
  %4960 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4957, i64 %4959
  %4961 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4960, i32 0, i32 1
  %4962 = load ptr, ptr %4961, align 8, !tbaa !20
  %4963 = load ptr, ptr %5, align 8, !tbaa !5
  %4964 = getelementptr inbounds %struct.w2c_hermes, ptr %4963, i32 0, i32 7
  %4965 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4964, i32 0, i32 0
  %4966 = load ptr, ptr %4965, align 8, !tbaa !19
  %4967 = load i32, ptr %22, align 4, !tbaa !9
  %4968 = zext i32 %4967 to i64
  %4969 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4966, i64 %4968
  %4970 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %4969, i32 0, i32 2
  %4971 = load ptr, ptr %4970, align 8, !tbaa !23
  %4972 = load i32, ptr %19, align 4, !tbaa !9
  %4973 = load i32, ptr %20, align 4, !tbaa !9
  %4974 = load i32, ptr %21, align 4, !tbaa !9
  call void %4962(ptr noundef %4971, i32 noundef %4972, i32 noundef %4973, i32 noundef %4974)
  %4975 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4975, ptr %19, align 4, !tbaa !9
  %4976 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %4976, ptr %20, align 4, !tbaa !9
  store i32 152, ptr %21, align 4, !tbaa !9
  %4977 = load i32, ptr %21, align 4, !tbaa !9
  %4978 = load i32, ptr %20, align 4, !tbaa !9
  %4979 = add i32 %4978, %4977
  store i32 %4979, ptr %20, align 4, !tbaa !9
  store i32 36787, ptr %21, align 4, !tbaa !9
  %4980 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %4980, ptr %22, align 4, !tbaa !9
  %4981 = load ptr, ptr %5, align 8, !tbaa !5
  %4982 = getelementptr inbounds %struct.w2c_hermes, ptr %4981, i32 0, i32 6
  %4983 = load i32, ptr %22, align 4, !tbaa !9
  %4984 = zext i32 %4983 to i64
  %4985 = call i32 @i32_load(ptr noundef %4982, i64 noundef %4984)
  store i32 %4985, ptr %22, align 4, !tbaa !9
  %4986 = load ptr, ptr %5, align 8, !tbaa !5
  %4987 = getelementptr inbounds %struct.w2c_hermes, ptr %4986, i32 0, i32 6
  %4988 = load i32, ptr %22, align 4, !tbaa !9
  %4989 = zext i32 %4988 to i64
  %4990 = add i64 %4989, 36
  %4991 = call i32 @i32_load(ptr noundef %4987, i64 noundef %4990)
  store i32 %4991, ptr %22, align 4, !tbaa !9
  %4992 = load i32, ptr %22, align 4, !tbaa !9
  %4993 = load ptr, ptr %5, align 8, !tbaa !5
  %4994 = getelementptr inbounds %struct.w2c_hermes, ptr %4993, i32 0, i32 7
  %4995 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %4994, i32 0, i32 2
  %4996 = load i32, ptr %4995, align 4, !tbaa !18
  %4997 = icmp ult i32 %4992, %4996
  br i1 %4997, label %4998, label %5021

4998:                                             ; preds = %4951
  %4999 = load ptr, ptr %5, align 8, !tbaa !5
  %5000 = getelementptr inbounds %struct.w2c_hermes, ptr %4999, i32 0, i32 7
  %5001 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5000, i32 0, i32 0
  %5002 = load ptr, ptr %5001, align 8, !tbaa !19
  %5003 = load i32, ptr %22, align 4, !tbaa !9
  %5004 = zext i32 %5003 to i64
  %5005 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5002, i64 %5004
  %5006 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5005, i32 0, i32 1
  %5007 = load ptr, ptr %5006, align 8, !tbaa !20
  %5008 = icmp ne ptr %5007, null
  br i1 %5008, label %5009, label %5021

5009:                                             ; preds = %4998
  %5010 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5011 = load ptr, ptr %5, align 8, !tbaa !5
  %5012 = getelementptr inbounds %struct.w2c_hermes, ptr %5011, i32 0, i32 7
  %5013 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5012, i32 0, i32 0
  %5014 = load ptr, ptr %5013, align 8, !tbaa !19
  %5015 = load i32, ptr %22, align 4, !tbaa !9
  %5016 = zext i32 %5015 to i64
  %5017 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5014, i64 %5016
  %5018 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5017, i32 0, i32 0
  %5019 = load ptr, ptr %5018, align 8, !tbaa !22
  %5020 = call zeroext i1 @func_types_eq(ptr noundef %5010, ptr noundef %5019)
  br label %5021

5021:                                             ; preds = %5009, %4998, %4951
  %5022 = phi i1 [ false, %4998 ], [ false, %4951 ], [ %5020, %5009 ]
  %5023 = xor i1 %5022, true
  %5024 = xor i1 %5023, true
  %5025 = zext i1 %5024 to i32
  %5026 = sext i32 %5025 to i64
  %5027 = call i64 @llvm.expect.i64(i64 %5026, i64 1)
  %5028 = icmp ne i64 %5027, 0
  br i1 %5028, label %5031, label %5029

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

5030:                                             ; No predecessors!
  br label %5031

5031:                                             ; preds = %5030, %5021
  %5032 = phi i1 [ true, %5021 ], [ false, %5030 ]
  %5033 = zext i1 %5032 to i32
  %5034 = load ptr, ptr %5, align 8, !tbaa !5
  %5035 = getelementptr inbounds %struct.w2c_hermes, ptr %5034, i32 0, i32 7
  %5036 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5035, i32 0, i32 0
  %5037 = load ptr, ptr %5036, align 8, !tbaa !19
  %5038 = load i32, ptr %22, align 4, !tbaa !9
  %5039 = zext i32 %5038 to i64
  %5040 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5037, i64 %5039
  %5041 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5040, i32 0, i32 1
  %5042 = load ptr, ptr %5041, align 8, !tbaa !20
  %5043 = load ptr, ptr %5, align 8, !tbaa !5
  %5044 = getelementptr inbounds %struct.w2c_hermes, ptr %5043, i32 0, i32 7
  %5045 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5044, i32 0, i32 0
  %5046 = load ptr, ptr %5045, align 8, !tbaa !19
  %5047 = load i32, ptr %22, align 4, !tbaa !9
  %5048 = zext i32 %5047 to i64
  %5049 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5046, i64 %5048
  %5050 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5049, i32 0, i32 2
  %5051 = load ptr, ptr %5050, align 8, !tbaa !23
  %5052 = load i32, ptr %19, align 4, !tbaa !9
  %5053 = load i32, ptr %20, align 4, !tbaa !9
  %5054 = load i32, ptr %21, align 4, !tbaa !9
  call void %5042(ptr noundef %5051, i32 noundef %5052, i32 noundef %5053, i32 noundef %5054)
  %5055 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5055, ptr %19, align 4, !tbaa !9
  %5056 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5056, ptr %20, align 4, !tbaa !9
  store i32 160, ptr %21, align 4, !tbaa !9
  %5057 = load i32, ptr %21, align 4, !tbaa !9
  %5058 = load i32, ptr %20, align 4, !tbaa !9
  %5059 = add i32 %5058, %5057
  store i32 %5059, ptr %20, align 4, !tbaa !9
  store i32 48314, ptr %21, align 4, !tbaa !9
  %5060 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5060, ptr %22, align 4, !tbaa !9
  %5061 = load ptr, ptr %5, align 8, !tbaa !5
  %5062 = getelementptr inbounds %struct.w2c_hermes, ptr %5061, i32 0, i32 6
  %5063 = load i32, ptr %22, align 4, !tbaa !9
  %5064 = zext i32 %5063 to i64
  %5065 = call i32 @i32_load(ptr noundef %5062, i64 noundef %5064)
  store i32 %5065, ptr %22, align 4, !tbaa !9
  %5066 = load ptr, ptr %5, align 8, !tbaa !5
  %5067 = getelementptr inbounds %struct.w2c_hermes, ptr %5066, i32 0, i32 6
  %5068 = load i32, ptr %22, align 4, !tbaa !9
  %5069 = zext i32 %5068 to i64
  %5070 = add i64 %5069, 36
  %5071 = call i32 @i32_load(ptr noundef %5067, i64 noundef %5070)
  store i32 %5071, ptr %22, align 4, !tbaa !9
  %5072 = load i32, ptr %22, align 4, !tbaa !9
  %5073 = load ptr, ptr %5, align 8, !tbaa !5
  %5074 = getelementptr inbounds %struct.w2c_hermes, ptr %5073, i32 0, i32 7
  %5075 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5074, i32 0, i32 2
  %5076 = load i32, ptr %5075, align 4, !tbaa !18
  %5077 = icmp ult i32 %5072, %5076
  br i1 %5077, label %5078, label %5101

5078:                                             ; preds = %5031
  %5079 = load ptr, ptr %5, align 8, !tbaa !5
  %5080 = getelementptr inbounds %struct.w2c_hermes, ptr %5079, i32 0, i32 7
  %5081 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5080, i32 0, i32 0
  %5082 = load ptr, ptr %5081, align 8, !tbaa !19
  %5083 = load i32, ptr %22, align 4, !tbaa !9
  %5084 = zext i32 %5083 to i64
  %5085 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5082, i64 %5084
  %5086 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5085, i32 0, i32 1
  %5087 = load ptr, ptr %5086, align 8, !tbaa !20
  %5088 = icmp ne ptr %5087, null
  br i1 %5088, label %5089, label %5101

5089:                                             ; preds = %5078
  %5090 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5091 = load ptr, ptr %5, align 8, !tbaa !5
  %5092 = getelementptr inbounds %struct.w2c_hermes, ptr %5091, i32 0, i32 7
  %5093 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5092, i32 0, i32 0
  %5094 = load ptr, ptr %5093, align 8, !tbaa !19
  %5095 = load i32, ptr %22, align 4, !tbaa !9
  %5096 = zext i32 %5095 to i64
  %5097 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5094, i64 %5096
  %5098 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5097, i32 0, i32 0
  %5099 = load ptr, ptr %5098, align 8, !tbaa !22
  %5100 = call zeroext i1 @func_types_eq(ptr noundef %5090, ptr noundef %5099)
  br label %5101

5101:                                             ; preds = %5089, %5078, %5031
  %5102 = phi i1 [ false, %5078 ], [ false, %5031 ], [ %5100, %5089 ]
  %5103 = xor i1 %5102, true
  %5104 = xor i1 %5103, true
  %5105 = zext i1 %5104 to i32
  %5106 = sext i32 %5105 to i64
  %5107 = call i64 @llvm.expect.i64(i64 %5106, i64 1)
  %5108 = icmp ne i64 %5107, 0
  br i1 %5108, label %5111, label %5109

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

5110:                                             ; No predecessors!
  br label %5111

5111:                                             ; preds = %5110, %5101
  %5112 = phi i1 [ true, %5101 ], [ false, %5110 ]
  %5113 = zext i1 %5112 to i32
  %5114 = load ptr, ptr %5, align 8, !tbaa !5
  %5115 = getelementptr inbounds %struct.w2c_hermes, ptr %5114, i32 0, i32 7
  %5116 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5115, i32 0, i32 0
  %5117 = load ptr, ptr %5116, align 8, !tbaa !19
  %5118 = load i32, ptr %22, align 4, !tbaa !9
  %5119 = zext i32 %5118 to i64
  %5120 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5117, i64 %5119
  %5121 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5120, i32 0, i32 1
  %5122 = load ptr, ptr %5121, align 8, !tbaa !20
  %5123 = load ptr, ptr %5, align 8, !tbaa !5
  %5124 = getelementptr inbounds %struct.w2c_hermes, ptr %5123, i32 0, i32 7
  %5125 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5124, i32 0, i32 0
  %5126 = load ptr, ptr %5125, align 8, !tbaa !19
  %5127 = load i32, ptr %22, align 4, !tbaa !9
  %5128 = zext i32 %5127 to i64
  %5129 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5126, i64 %5128
  %5130 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5129, i32 0, i32 2
  %5131 = load ptr, ptr %5130, align 8, !tbaa !23
  %5132 = load i32, ptr %19, align 4, !tbaa !9
  %5133 = load i32, ptr %20, align 4, !tbaa !9
  %5134 = load i32, ptr %21, align 4, !tbaa !9
  call void %5122(ptr noundef %5131, i32 noundef %5132, i32 noundef %5133, i32 noundef %5134)
  %5135 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5135, ptr %19, align 4, !tbaa !9
  %5136 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5136, ptr %20, align 4, !tbaa !9
  store i32 168, ptr %21, align 4, !tbaa !9
  %5137 = load i32, ptr %21, align 4, !tbaa !9
  %5138 = load i32, ptr %20, align 4, !tbaa !9
  %5139 = add i32 %5138, %5137
  store i32 %5139, ptr %20, align 4, !tbaa !9
  store i32 36517, ptr %21, align 4, !tbaa !9
  %5140 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5140, ptr %22, align 4, !tbaa !9
  %5141 = load ptr, ptr %5, align 8, !tbaa !5
  %5142 = getelementptr inbounds %struct.w2c_hermes, ptr %5141, i32 0, i32 6
  %5143 = load i32, ptr %22, align 4, !tbaa !9
  %5144 = zext i32 %5143 to i64
  %5145 = call i32 @i32_load(ptr noundef %5142, i64 noundef %5144)
  store i32 %5145, ptr %22, align 4, !tbaa !9
  %5146 = load ptr, ptr %5, align 8, !tbaa !5
  %5147 = getelementptr inbounds %struct.w2c_hermes, ptr %5146, i32 0, i32 6
  %5148 = load i32, ptr %22, align 4, !tbaa !9
  %5149 = zext i32 %5148 to i64
  %5150 = add i64 %5149, 36
  %5151 = call i32 @i32_load(ptr noundef %5147, i64 noundef %5150)
  store i32 %5151, ptr %22, align 4, !tbaa !9
  %5152 = load i32, ptr %22, align 4, !tbaa !9
  %5153 = load ptr, ptr %5, align 8, !tbaa !5
  %5154 = getelementptr inbounds %struct.w2c_hermes, ptr %5153, i32 0, i32 7
  %5155 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5154, i32 0, i32 2
  %5156 = load i32, ptr %5155, align 4, !tbaa !18
  %5157 = icmp ult i32 %5152, %5156
  br i1 %5157, label %5158, label %5181

5158:                                             ; preds = %5111
  %5159 = load ptr, ptr %5, align 8, !tbaa !5
  %5160 = getelementptr inbounds %struct.w2c_hermes, ptr %5159, i32 0, i32 7
  %5161 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5160, i32 0, i32 0
  %5162 = load ptr, ptr %5161, align 8, !tbaa !19
  %5163 = load i32, ptr %22, align 4, !tbaa !9
  %5164 = zext i32 %5163 to i64
  %5165 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5162, i64 %5164
  %5166 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5165, i32 0, i32 1
  %5167 = load ptr, ptr %5166, align 8, !tbaa !20
  %5168 = icmp ne ptr %5167, null
  br i1 %5168, label %5169, label %5181

5169:                                             ; preds = %5158
  %5170 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5171 = load ptr, ptr %5, align 8, !tbaa !5
  %5172 = getelementptr inbounds %struct.w2c_hermes, ptr %5171, i32 0, i32 7
  %5173 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5172, i32 0, i32 0
  %5174 = load ptr, ptr %5173, align 8, !tbaa !19
  %5175 = load i32, ptr %22, align 4, !tbaa !9
  %5176 = zext i32 %5175 to i64
  %5177 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5174, i64 %5176
  %5178 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5177, i32 0, i32 0
  %5179 = load ptr, ptr %5178, align 8, !tbaa !22
  %5180 = call zeroext i1 @func_types_eq(ptr noundef %5170, ptr noundef %5179)
  br label %5181

5181:                                             ; preds = %5169, %5158, %5111
  %5182 = phi i1 [ false, %5158 ], [ false, %5111 ], [ %5180, %5169 ]
  %5183 = xor i1 %5182, true
  %5184 = xor i1 %5183, true
  %5185 = zext i1 %5184 to i32
  %5186 = sext i32 %5185 to i64
  %5187 = call i64 @llvm.expect.i64(i64 %5186, i64 1)
  %5188 = icmp ne i64 %5187, 0
  br i1 %5188, label %5191, label %5189

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

5190:                                             ; No predecessors!
  br label %5191

5191:                                             ; preds = %5190, %5181
  %5192 = phi i1 [ true, %5181 ], [ false, %5190 ]
  %5193 = zext i1 %5192 to i32
  %5194 = load ptr, ptr %5, align 8, !tbaa !5
  %5195 = getelementptr inbounds %struct.w2c_hermes, ptr %5194, i32 0, i32 7
  %5196 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5195, i32 0, i32 0
  %5197 = load ptr, ptr %5196, align 8, !tbaa !19
  %5198 = load i32, ptr %22, align 4, !tbaa !9
  %5199 = zext i32 %5198 to i64
  %5200 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5197, i64 %5199
  %5201 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5200, i32 0, i32 1
  %5202 = load ptr, ptr %5201, align 8, !tbaa !20
  %5203 = load ptr, ptr %5, align 8, !tbaa !5
  %5204 = getelementptr inbounds %struct.w2c_hermes, ptr %5203, i32 0, i32 7
  %5205 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5204, i32 0, i32 0
  %5206 = load ptr, ptr %5205, align 8, !tbaa !19
  %5207 = load i32, ptr %22, align 4, !tbaa !9
  %5208 = zext i32 %5207 to i64
  %5209 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5206, i64 %5208
  %5210 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5209, i32 0, i32 2
  %5211 = load ptr, ptr %5210, align 8, !tbaa !23
  %5212 = load i32, ptr %19, align 4, !tbaa !9
  %5213 = load i32, ptr %20, align 4, !tbaa !9
  %5214 = load i32, ptr %21, align 4, !tbaa !9
  call void %5202(ptr noundef %5211, i32 noundef %5212, i32 noundef %5213, i32 noundef %5214)
  %5215 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5215, ptr %19, align 4, !tbaa !9
  %5216 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5216, ptr %20, align 4, !tbaa !9
  store i32 176, ptr %21, align 4, !tbaa !9
  %5217 = load i32, ptr %21, align 4, !tbaa !9
  %5218 = load i32, ptr %20, align 4, !tbaa !9
  %5219 = add i32 %5218, %5217
  store i32 %5219, ptr %20, align 4, !tbaa !9
  store i32 48336, ptr %21, align 4, !tbaa !9
  %5220 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5220, ptr %22, align 4, !tbaa !9
  %5221 = load ptr, ptr %5, align 8, !tbaa !5
  %5222 = getelementptr inbounds %struct.w2c_hermes, ptr %5221, i32 0, i32 6
  %5223 = load i32, ptr %22, align 4, !tbaa !9
  %5224 = zext i32 %5223 to i64
  %5225 = call i32 @i32_load(ptr noundef %5222, i64 noundef %5224)
  store i32 %5225, ptr %22, align 4, !tbaa !9
  %5226 = load ptr, ptr %5, align 8, !tbaa !5
  %5227 = getelementptr inbounds %struct.w2c_hermes, ptr %5226, i32 0, i32 6
  %5228 = load i32, ptr %22, align 4, !tbaa !9
  %5229 = zext i32 %5228 to i64
  %5230 = add i64 %5229, 36
  %5231 = call i32 @i32_load(ptr noundef %5227, i64 noundef %5230)
  store i32 %5231, ptr %22, align 4, !tbaa !9
  %5232 = load i32, ptr %22, align 4, !tbaa !9
  %5233 = load ptr, ptr %5, align 8, !tbaa !5
  %5234 = getelementptr inbounds %struct.w2c_hermes, ptr %5233, i32 0, i32 7
  %5235 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5234, i32 0, i32 2
  %5236 = load i32, ptr %5235, align 4, !tbaa !18
  %5237 = icmp ult i32 %5232, %5236
  br i1 %5237, label %5238, label %5261

5238:                                             ; preds = %5191
  %5239 = load ptr, ptr %5, align 8, !tbaa !5
  %5240 = getelementptr inbounds %struct.w2c_hermes, ptr %5239, i32 0, i32 7
  %5241 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5240, i32 0, i32 0
  %5242 = load ptr, ptr %5241, align 8, !tbaa !19
  %5243 = load i32, ptr %22, align 4, !tbaa !9
  %5244 = zext i32 %5243 to i64
  %5245 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5242, i64 %5244
  %5246 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5245, i32 0, i32 1
  %5247 = load ptr, ptr %5246, align 8, !tbaa !20
  %5248 = icmp ne ptr %5247, null
  br i1 %5248, label %5249, label %5261

5249:                                             ; preds = %5238
  %5250 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5251 = load ptr, ptr %5, align 8, !tbaa !5
  %5252 = getelementptr inbounds %struct.w2c_hermes, ptr %5251, i32 0, i32 7
  %5253 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5252, i32 0, i32 0
  %5254 = load ptr, ptr %5253, align 8, !tbaa !19
  %5255 = load i32, ptr %22, align 4, !tbaa !9
  %5256 = zext i32 %5255 to i64
  %5257 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5254, i64 %5256
  %5258 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5257, i32 0, i32 0
  %5259 = load ptr, ptr %5258, align 8, !tbaa !22
  %5260 = call zeroext i1 @func_types_eq(ptr noundef %5250, ptr noundef %5259)
  br label %5261

5261:                                             ; preds = %5249, %5238, %5191
  %5262 = phi i1 [ false, %5238 ], [ false, %5191 ], [ %5260, %5249 ]
  %5263 = xor i1 %5262, true
  %5264 = xor i1 %5263, true
  %5265 = zext i1 %5264 to i32
  %5266 = sext i32 %5265 to i64
  %5267 = call i64 @llvm.expect.i64(i64 %5266, i64 1)
  %5268 = icmp ne i64 %5267, 0
  br i1 %5268, label %5271, label %5269

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

5270:                                             ; No predecessors!
  br label %5271

5271:                                             ; preds = %5270, %5261
  %5272 = phi i1 [ true, %5261 ], [ false, %5270 ]
  %5273 = zext i1 %5272 to i32
  %5274 = load ptr, ptr %5, align 8, !tbaa !5
  %5275 = getelementptr inbounds %struct.w2c_hermes, ptr %5274, i32 0, i32 7
  %5276 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5275, i32 0, i32 0
  %5277 = load ptr, ptr %5276, align 8, !tbaa !19
  %5278 = load i32, ptr %22, align 4, !tbaa !9
  %5279 = zext i32 %5278 to i64
  %5280 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5277, i64 %5279
  %5281 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5280, i32 0, i32 1
  %5282 = load ptr, ptr %5281, align 8, !tbaa !20
  %5283 = load ptr, ptr %5, align 8, !tbaa !5
  %5284 = getelementptr inbounds %struct.w2c_hermes, ptr %5283, i32 0, i32 7
  %5285 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5284, i32 0, i32 0
  %5286 = load ptr, ptr %5285, align 8, !tbaa !19
  %5287 = load i32, ptr %22, align 4, !tbaa !9
  %5288 = zext i32 %5287 to i64
  %5289 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5286, i64 %5288
  %5290 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5289, i32 0, i32 2
  %5291 = load ptr, ptr %5290, align 8, !tbaa !23
  %5292 = load i32, ptr %19, align 4, !tbaa !9
  %5293 = load i32, ptr %20, align 4, !tbaa !9
  %5294 = load i32, ptr %21, align 4, !tbaa !9
  call void %5282(ptr noundef %5291, i32 noundef %5292, i32 noundef %5293, i32 noundef %5294)
  %5295 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5295, ptr %19, align 4, !tbaa !9
  %5296 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5296, ptr %20, align 4, !tbaa !9
  store i32 184, ptr %21, align 4, !tbaa !9
  %5297 = load i32, ptr %21, align 4, !tbaa !9
  %5298 = load i32, ptr %20, align 4, !tbaa !9
  %5299 = add i32 %5298, %5297
  store i32 %5299, ptr %20, align 4, !tbaa !9
  store i32 36541, ptr %21, align 4, !tbaa !9
  %5300 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5300, ptr %22, align 4, !tbaa !9
  %5301 = load ptr, ptr %5, align 8, !tbaa !5
  %5302 = getelementptr inbounds %struct.w2c_hermes, ptr %5301, i32 0, i32 6
  %5303 = load i32, ptr %22, align 4, !tbaa !9
  %5304 = zext i32 %5303 to i64
  %5305 = call i32 @i32_load(ptr noundef %5302, i64 noundef %5304)
  store i32 %5305, ptr %22, align 4, !tbaa !9
  %5306 = load ptr, ptr %5, align 8, !tbaa !5
  %5307 = getelementptr inbounds %struct.w2c_hermes, ptr %5306, i32 0, i32 6
  %5308 = load i32, ptr %22, align 4, !tbaa !9
  %5309 = zext i32 %5308 to i64
  %5310 = add i64 %5309, 36
  %5311 = call i32 @i32_load(ptr noundef %5307, i64 noundef %5310)
  store i32 %5311, ptr %22, align 4, !tbaa !9
  %5312 = load i32, ptr %22, align 4, !tbaa !9
  %5313 = load ptr, ptr %5, align 8, !tbaa !5
  %5314 = getelementptr inbounds %struct.w2c_hermes, ptr %5313, i32 0, i32 7
  %5315 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5314, i32 0, i32 2
  %5316 = load i32, ptr %5315, align 4, !tbaa !18
  %5317 = icmp ult i32 %5312, %5316
  br i1 %5317, label %5318, label %5341

5318:                                             ; preds = %5271
  %5319 = load ptr, ptr %5, align 8, !tbaa !5
  %5320 = getelementptr inbounds %struct.w2c_hermes, ptr %5319, i32 0, i32 7
  %5321 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5320, i32 0, i32 0
  %5322 = load ptr, ptr %5321, align 8, !tbaa !19
  %5323 = load i32, ptr %22, align 4, !tbaa !9
  %5324 = zext i32 %5323 to i64
  %5325 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5322, i64 %5324
  %5326 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5325, i32 0, i32 1
  %5327 = load ptr, ptr %5326, align 8, !tbaa !20
  %5328 = icmp ne ptr %5327, null
  br i1 %5328, label %5329, label %5341

5329:                                             ; preds = %5318
  %5330 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5331 = load ptr, ptr %5, align 8, !tbaa !5
  %5332 = getelementptr inbounds %struct.w2c_hermes, ptr %5331, i32 0, i32 7
  %5333 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5332, i32 0, i32 0
  %5334 = load ptr, ptr %5333, align 8, !tbaa !19
  %5335 = load i32, ptr %22, align 4, !tbaa !9
  %5336 = zext i32 %5335 to i64
  %5337 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5334, i64 %5336
  %5338 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5337, i32 0, i32 0
  %5339 = load ptr, ptr %5338, align 8, !tbaa !22
  %5340 = call zeroext i1 @func_types_eq(ptr noundef %5330, ptr noundef %5339)
  br label %5341

5341:                                             ; preds = %5329, %5318, %5271
  %5342 = phi i1 [ false, %5318 ], [ false, %5271 ], [ %5340, %5329 ]
  %5343 = xor i1 %5342, true
  %5344 = xor i1 %5343, true
  %5345 = zext i1 %5344 to i32
  %5346 = sext i32 %5345 to i64
  %5347 = call i64 @llvm.expect.i64(i64 %5346, i64 1)
  %5348 = icmp ne i64 %5347, 0
  br i1 %5348, label %5351, label %5349

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

5350:                                             ; No predecessors!
  br label %5351

5351:                                             ; preds = %5350, %5341
  %5352 = phi i1 [ true, %5341 ], [ false, %5350 ]
  %5353 = zext i1 %5352 to i32
  %5354 = load ptr, ptr %5, align 8, !tbaa !5
  %5355 = getelementptr inbounds %struct.w2c_hermes, ptr %5354, i32 0, i32 7
  %5356 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5355, i32 0, i32 0
  %5357 = load ptr, ptr %5356, align 8, !tbaa !19
  %5358 = load i32, ptr %22, align 4, !tbaa !9
  %5359 = zext i32 %5358 to i64
  %5360 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5357, i64 %5359
  %5361 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5360, i32 0, i32 1
  %5362 = load ptr, ptr %5361, align 8, !tbaa !20
  %5363 = load ptr, ptr %5, align 8, !tbaa !5
  %5364 = getelementptr inbounds %struct.w2c_hermes, ptr %5363, i32 0, i32 7
  %5365 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5364, i32 0, i32 0
  %5366 = load ptr, ptr %5365, align 8, !tbaa !19
  %5367 = load i32, ptr %22, align 4, !tbaa !9
  %5368 = zext i32 %5367 to i64
  %5369 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5366, i64 %5368
  %5370 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5369, i32 0, i32 2
  %5371 = load ptr, ptr %5370, align 8, !tbaa !23
  %5372 = load i32, ptr %19, align 4, !tbaa !9
  %5373 = load i32, ptr %20, align 4, !tbaa !9
  %5374 = load i32, ptr %21, align 4, !tbaa !9
  call void %5362(ptr noundef %5371, i32 noundef %5372, i32 noundef %5373, i32 noundef %5374)
  %5375 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5375, ptr %19, align 4, !tbaa !9
  %5376 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5376, ptr %20, align 4, !tbaa !9
  store i32 192, ptr %21, align 4, !tbaa !9
  %5377 = load i32, ptr %21, align 4, !tbaa !9
  %5378 = load i32, ptr %20, align 4, !tbaa !9
  %5379 = add i32 %5378, %5377
  store i32 %5379, ptr %20, align 4, !tbaa !9
  store i32 48583, ptr %21, align 4, !tbaa !9
  %5380 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5380, ptr %22, align 4, !tbaa !9
  %5381 = load ptr, ptr %5, align 8, !tbaa !5
  %5382 = getelementptr inbounds %struct.w2c_hermes, ptr %5381, i32 0, i32 6
  %5383 = load i32, ptr %22, align 4, !tbaa !9
  %5384 = zext i32 %5383 to i64
  %5385 = call i32 @i32_load(ptr noundef %5382, i64 noundef %5384)
  store i32 %5385, ptr %22, align 4, !tbaa !9
  %5386 = load ptr, ptr %5, align 8, !tbaa !5
  %5387 = getelementptr inbounds %struct.w2c_hermes, ptr %5386, i32 0, i32 6
  %5388 = load i32, ptr %22, align 4, !tbaa !9
  %5389 = zext i32 %5388 to i64
  %5390 = add i64 %5389, 36
  %5391 = call i32 @i32_load(ptr noundef %5387, i64 noundef %5390)
  store i32 %5391, ptr %22, align 4, !tbaa !9
  %5392 = load i32, ptr %22, align 4, !tbaa !9
  %5393 = load ptr, ptr %5, align 8, !tbaa !5
  %5394 = getelementptr inbounds %struct.w2c_hermes, ptr %5393, i32 0, i32 7
  %5395 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5394, i32 0, i32 2
  %5396 = load i32, ptr %5395, align 4, !tbaa !18
  %5397 = icmp ult i32 %5392, %5396
  br i1 %5397, label %5398, label %5421

5398:                                             ; preds = %5351
  %5399 = load ptr, ptr %5, align 8, !tbaa !5
  %5400 = getelementptr inbounds %struct.w2c_hermes, ptr %5399, i32 0, i32 7
  %5401 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5400, i32 0, i32 0
  %5402 = load ptr, ptr %5401, align 8, !tbaa !19
  %5403 = load i32, ptr %22, align 4, !tbaa !9
  %5404 = zext i32 %5403 to i64
  %5405 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5402, i64 %5404
  %5406 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5405, i32 0, i32 1
  %5407 = load ptr, ptr %5406, align 8, !tbaa !20
  %5408 = icmp ne ptr %5407, null
  br i1 %5408, label %5409, label %5421

5409:                                             ; preds = %5398
  %5410 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5411 = load ptr, ptr %5, align 8, !tbaa !5
  %5412 = getelementptr inbounds %struct.w2c_hermes, ptr %5411, i32 0, i32 7
  %5413 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5412, i32 0, i32 0
  %5414 = load ptr, ptr %5413, align 8, !tbaa !19
  %5415 = load i32, ptr %22, align 4, !tbaa !9
  %5416 = zext i32 %5415 to i64
  %5417 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5414, i64 %5416
  %5418 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5417, i32 0, i32 0
  %5419 = load ptr, ptr %5418, align 8, !tbaa !22
  %5420 = call zeroext i1 @func_types_eq(ptr noundef %5410, ptr noundef %5419)
  br label %5421

5421:                                             ; preds = %5409, %5398, %5351
  %5422 = phi i1 [ false, %5398 ], [ false, %5351 ], [ %5420, %5409 ]
  %5423 = xor i1 %5422, true
  %5424 = xor i1 %5423, true
  %5425 = zext i1 %5424 to i32
  %5426 = sext i32 %5425 to i64
  %5427 = call i64 @llvm.expect.i64(i64 %5426, i64 1)
  %5428 = icmp ne i64 %5427, 0
  br i1 %5428, label %5431, label %5429

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

5430:                                             ; No predecessors!
  br label %5431

5431:                                             ; preds = %5430, %5421
  %5432 = phi i1 [ true, %5421 ], [ false, %5430 ]
  %5433 = zext i1 %5432 to i32
  %5434 = load ptr, ptr %5, align 8, !tbaa !5
  %5435 = getelementptr inbounds %struct.w2c_hermes, ptr %5434, i32 0, i32 7
  %5436 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5435, i32 0, i32 0
  %5437 = load ptr, ptr %5436, align 8, !tbaa !19
  %5438 = load i32, ptr %22, align 4, !tbaa !9
  %5439 = zext i32 %5438 to i64
  %5440 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5437, i64 %5439
  %5441 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5440, i32 0, i32 1
  %5442 = load ptr, ptr %5441, align 8, !tbaa !20
  %5443 = load ptr, ptr %5, align 8, !tbaa !5
  %5444 = getelementptr inbounds %struct.w2c_hermes, ptr %5443, i32 0, i32 7
  %5445 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5444, i32 0, i32 0
  %5446 = load ptr, ptr %5445, align 8, !tbaa !19
  %5447 = load i32, ptr %22, align 4, !tbaa !9
  %5448 = zext i32 %5447 to i64
  %5449 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5446, i64 %5448
  %5450 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5449, i32 0, i32 2
  %5451 = load ptr, ptr %5450, align 8, !tbaa !23
  %5452 = load i32, ptr %19, align 4, !tbaa !9
  %5453 = load i32, ptr %20, align 4, !tbaa !9
  %5454 = load i32, ptr %21, align 4, !tbaa !9
  call void %5442(ptr noundef %5451, i32 noundef %5452, i32 noundef %5453, i32 noundef %5454)
  %5455 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5455, ptr %19, align 4, !tbaa !9
  %5456 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5456, ptr %20, align 4, !tbaa !9
  store i32 200, ptr %21, align 4, !tbaa !9
  %5457 = load i32, ptr %21, align 4, !tbaa !9
  %5458 = load i32, ptr %20, align 4, !tbaa !9
  %5459 = add i32 %5458, %5457
  store i32 %5459, ptr %20, align 4, !tbaa !9
  store i32 36807, ptr %21, align 4, !tbaa !9
  %5460 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5460, ptr %22, align 4, !tbaa !9
  %5461 = load ptr, ptr %5, align 8, !tbaa !5
  %5462 = getelementptr inbounds %struct.w2c_hermes, ptr %5461, i32 0, i32 6
  %5463 = load i32, ptr %22, align 4, !tbaa !9
  %5464 = zext i32 %5463 to i64
  %5465 = call i32 @i32_load(ptr noundef %5462, i64 noundef %5464)
  store i32 %5465, ptr %22, align 4, !tbaa !9
  %5466 = load ptr, ptr %5, align 8, !tbaa !5
  %5467 = getelementptr inbounds %struct.w2c_hermes, ptr %5466, i32 0, i32 6
  %5468 = load i32, ptr %22, align 4, !tbaa !9
  %5469 = zext i32 %5468 to i64
  %5470 = add i64 %5469, 36
  %5471 = call i32 @i32_load(ptr noundef %5467, i64 noundef %5470)
  store i32 %5471, ptr %22, align 4, !tbaa !9
  %5472 = load i32, ptr %22, align 4, !tbaa !9
  %5473 = load ptr, ptr %5, align 8, !tbaa !5
  %5474 = getelementptr inbounds %struct.w2c_hermes, ptr %5473, i32 0, i32 7
  %5475 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5474, i32 0, i32 2
  %5476 = load i32, ptr %5475, align 4, !tbaa !18
  %5477 = icmp ult i32 %5472, %5476
  br i1 %5477, label %5478, label %5501

5478:                                             ; preds = %5431
  %5479 = load ptr, ptr %5, align 8, !tbaa !5
  %5480 = getelementptr inbounds %struct.w2c_hermes, ptr %5479, i32 0, i32 7
  %5481 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5480, i32 0, i32 0
  %5482 = load ptr, ptr %5481, align 8, !tbaa !19
  %5483 = load i32, ptr %22, align 4, !tbaa !9
  %5484 = zext i32 %5483 to i64
  %5485 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5482, i64 %5484
  %5486 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5485, i32 0, i32 1
  %5487 = load ptr, ptr %5486, align 8, !tbaa !20
  %5488 = icmp ne ptr %5487, null
  br i1 %5488, label %5489, label %5501

5489:                                             ; preds = %5478
  %5490 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5491 = load ptr, ptr %5, align 8, !tbaa !5
  %5492 = getelementptr inbounds %struct.w2c_hermes, ptr %5491, i32 0, i32 7
  %5493 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5492, i32 0, i32 0
  %5494 = load ptr, ptr %5493, align 8, !tbaa !19
  %5495 = load i32, ptr %22, align 4, !tbaa !9
  %5496 = zext i32 %5495 to i64
  %5497 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5494, i64 %5496
  %5498 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5497, i32 0, i32 0
  %5499 = load ptr, ptr %5498, align 8, !tbaa !22
  %5500 = call zeroext i1 @func_types_eq(ptr noundef %5490, ptr noundef %5499)
  br label %5501

5501:                                             ; preds = %5489, %5478, %5431
  %5502 = phi i1 [ false, %5478 ], [ false, %5431 ], [ %5500, %5489 ]
  %5503 = xor i1 %5502, true
  %5504 = xor i1 %5503, true
  %5505 = zext i1 %5504 to i32
  %5506 = sext i32 %5505 to i64
  %5507 = call i64 @llvm.expect.i64(i64 %5506, i64 1)
  %5508 = icmp ne i64 %5507, 0
  br i1 %5508, label %5511, label %5509

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

5510:                                             ; No predecessors!
  br label %5511

5511:                                             ; preds = %5510, %5501
  %5512 = phi i1 [ true, %5501 ], [ false, %5510 ]
  %5513 = zext i1 %5512 to i32
  %5514 = load ptr, ptr %5, align 8, !tbaa !5
  %5515 = getelementptr inbounds %struct.w2c_hermes, ptr %5514, i32 0, i32 7
  %5516 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5515, i32 0, i32 0
  %5517 = load ptr, ptr %5516, align 8, !tbaa !19
  %5518 = load i32, ptr %22, align 4, !tbaa !9
  %5519 = zext i32 %5518 to i64
  %5520 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5517, i64 %5519
  %5521 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5520, i32 0, i32 1
  %5522 = load ptr, ptr %5521, align 8, !tbaa !20
  %5523 = load ptr, ptr %5, align 8, !tbaa !5
  %5524 = getelementptr inbounds %struct.w2c_hermes, ptr %5523, i32 0, i32 7
  %5525 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5524, i32 0, i32 0
  %5526 = load ptr, ptr %5525, align 8, !tbaa !19
  %5527 = load i32, ptr %22, align 4, !tbaa !9
  %5528 = zext i32 %5527 to i64
  %5529 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5526, i64 %5528
  %5530 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5529, i32 0, i32 2
  %5531 = load ptr, ptr %5530, align 8, !tbaa !23
  %5532 = load i32, ptr %19, align 4, !tbaa !9
  %5533 = load i32, ptr %20, align 4, !tbaa !9
  %5534 = load i32, ptr %21, align 4, !tbaa !9
  call void %5522(ptr noundef %5531, i32 noundef %5532, i32 noundef %5533, i32 noundef %5534)
  %5535 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5535, ptr %19, align 4, !tbaa !9
  %5536 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5536, ptr %20, align 4, !tbaa !9
  store i32 208, ptr %21, align 4, !tbaa !9
  %5537 = load i32, ptr %21, align 4, !tbaa !9
  %5538 = load i32, ptr %20, align 4, !tbaa !9
  %5539 = add i32 %5538, %5537
  store i32 %5539, ptr %20, align 4, !tbaa !9
  store i32 48684, ptr %21, align 4, !tbaa !9
  %5540 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5540, ptr %22, align 4, !tbaa !9
  %5541 = load ptr, ptr %5, align 8, !tbaa !5
  %5542 = getelementptr inbounds %struct.w2c_hermes, ptr %5541, i32 0, i32 6
  %5543 = load i32, ptr %22, align 4, !tbaa !9
  %5544 = zext i32 %5543 to i64
  %5545 = call i32 @i32_load(ptr noundef %5542, i64 noundef %5544)
  store i32 %5545, ptr %22, align 4, !tbaa !9
  %5546 = load ptr, ptr %5, align 8, !tbaa !5
  %5547 = getelementptr inbounds %struct.w2c_hermes, ptr %5546, i32 0, i32 6
  %5548 = load i32, ptr %22, align 4, !tbaa !9
  %5549 = zext i32 %5548 to i64
  %5550 = add i64 %5549, 36
  %5551 = call i32 @i32_load(ptr noundef %5547, i64 noundef %5550)
  store i32 %5551, ptr %22, align 4, !tbaa !9
  %5552 = load i32, ptr %22, align 4, !tbaa !9
  %5553 = load ptr, ptr %5, align 8, !tbaa !5
  %5554 = getelementptr inbounds %struct.w2c_hermes, ptr %5553, i32 0, i32 7
  %5555 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5554, i32 0, i32 2
  %5556 = load i32, ptr %5555, align 4, !tbaa !18
  %5557 = icmp ult i32 %5552, %5556
  br i1 %5557, label %5558, label %5581

5558:                                             ; preds = %5511
  %5559 = load ptr, ptr %5, align 8, !tbaa !5
  %5560 = getelementptr inbounds %struct.w2c_hermes, ptr %5559, i32 0, i32 7
  %5561 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5560, i32 0, i32 0
  %5562 = load ptr, ptr %5561, align 8, !tbaa !19
  %5563 = load i32, ptr %22, align 4, !tbaa !9
  %5564 = zext i32 %5563 to i64
  %5565 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5562, i64 %5564
  %5566 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5565, i32 0, i32 1
  %5567 = load ptr, ptr %5566, align 8, !tbaa !20
  %5568 = icmp ne ptr %5567, null
  br i1 %5568, label %5569, label %5581

5569:                                             ; preds = %5558
  %5570 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5571 = load ptr, ptr %5, align 8, !tbaa !5
  %5572 = getelementptr inbounds %struct.w2c_hermes, ptr %5571, i32 0, i32 7
  %5573 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5572, i32 0, i32 0
  %5574 = load ptr, ptr %5573, align 8, !tbaa !19
  %5575 = load i32, ptr %22, align 4, !tbaa !9
  %5576 = zext i32 %5575 to i64
  %5577 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5574, i64 %5576
  %5578 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5577, i32 0, i32 0
  %5579 = load ptr, ptr %5578, align 8, !tbaa !22
  %5580 = call zeroext i1 @func_types_eq(ptr noundef %5570, ptr noundef %5579)
  br label %5581

5581:                                             ; preds = %5569, %5558, %5511
  %5582 = phi i1 [ false, %5558 ], [ false, %5511 ], [ %5580, %5569 ]
  %5583 = xor i1 %5582, true
  %5584 = xor i1 %5583, true
  %5585 = zext i1 %5584 to i32
  %5586 = sext i32 %5585 to i64
  %5587 = call i64 @llvm.expect.i64(i64 %5586, i64 1)
  %5588 = icmp ne i64 %5587, 0
  br i1 %5588, label %5591, label %5589

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

5590:                                             ; No predecessors!
  br label %5591

5591:                                             ; preds = %5590, %5581
  %5592 = phi i1 [ true, %5581 ], [ false, %5590 ]
  %5593 = zext i1 %5592 to i32
  %5594 = load ptr, ptr %5, align 8, !tbaa !5
  %5595 = getelementptr inbounds %struct.w2c_hermes, ptr %5594, i32 0, i32 7
  %5596 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5595, i32 0, i32 0
  %5597 = load ptr, ptr %5596, align 8, !tbaa !19
  %5598 = load i32, ptr %22, align 4, !tbaa !9
  %5599 = zext i32 %5598 to i64
  %5600 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5597, i64 %5599
  %5601 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5600, i32 0, i32 1
  %5602 = load ptr, ptr %5601, align 8, !tbaa !20
  %5603 = load ptr, ptr %5, align 8, !tbaa !5
  %5604 = getelementptr inbounds %struct.w2c_hermes, ptr %5603, i32 0, i32 7
  %5605 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5604, i32 0, i32 0
  %5606 = load ptr, ptr %5605, align 8, !tbaa !19
  %5607 = load i32, ptr %22, align 4, !tbaa !9
  %5608 = zext i32 %5607 to i64
  %5609 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5606, i64 %5608
  %5610 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5609, i32 0, i32 2
  %5611 = load ptr, ptr %5610, align 8, !tbaa !23
  %5612 = load i32, ptr %19, align 4, !tbaa !9
  %5613 = load i32, ptr %20, align 4, !tbaa !9
  %5614 = load i32, ptr %21, align 4, !tbaa !9
  call void %5602(ptr noundef %5611, i32 noundef %5612, i32 noundef %5613, i32 noundef %5614)
  %5615 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5615, ptr %19, align 4, !tbaa !9
  %5616 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5616, ptr %20, align 4, !tbaa !9
  store i32 216, ptr %21, align 4, !tbaa !9
  %5617 = load i32, ptr %21, align 4, !tbaa !9
  %5618 = load i32, ptr %20, align 4, !tbaa !9
  %5619 = add i32 %5618, %5617
  store i32 %5619, ptr %20, align 4, !tbaa !9
  store i32 48075, ptr %21, align 4, !tbaa !9
  %5620 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5620, ptr %22, align 4, !tbaa !9
  %5621 = load ptr, ptr %5, align 8, !tbaa !5
  %5622 = getelementptr inbounds %struct.w2c_hermes, ptr %5621, i32 0, i32 6
  %5623 = load i32, ptr %22, align 4, !tbaa !9
  %5624 = zext i32 %5623 to i64
  %5625 = call i32 @i32_load(ptr noundef %5622, i64 noundef %5624)
  store i32 %5625, ptr %22, align 4, !tbaa !9
  %5626 = load ptr, ptr %5, align 8, !tbaa !5
  %5627 = getelementptr inbounds %struct.w2c_hermes, ptr %5626, i32 0, i32 6
  %5628 = load i32, ptr %22, align 4, !tbaa !9
  %5629 = zext i32 %5628 to i64
  %5630 = add i64 %5629, 36
  %5631 = call i32 @i32_load(ptr noundef %5627, i64 noundef %5630)
  store i32 %5631, ptr %22, align 4, !tbaa !9
  %5632 = load i32, ptr %22, align 4, !tbaa !9
  %5633 = load ptr, ptr %5, align 8, !tbaa !5
  %5634 = getelementptr inbounds %struct.w2c_hermes, ptr %5633, i32 0, i32 7
  %5635 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5634, i32 0, i32 2
  %5636 = load i32, ptr %5635, align 4, !tbaa !18
  %5637 = icmp ult i32 %5632, %5636
  br i1 %5637, label %5638, label %5661

5638:                                             ; preds = %5591
  %5639 = load ptr, ptr %5, align 8, !tbaa !5
  %5640 = getelementptr inbounds %struct.w2c_hermes, ptr %5639, i32 0, i32 7
  %5641 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5640, i32 0, i32 0
  %5642 = load ptr, ptr %5641, align 8, !tbaa !19
  %5643 = load i32, ptr %22, align 4, !tbaa !9
  %5644 = zext i32 %5643 to i64
  %5645 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5642, i64 %5644
  %5646 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5645, i32 0, i32 1
  %5647 = load ptr, ptr %5646, align 8, !tbaa !20
  %5648 = icmp ne ptr %5647, null
  br i1 %5648, label %5649, label %5661

5649:                                             ; preds = %5638
  %5650 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5651 = load ptr, ptr %5, align 8, !tbaa !5
  %5652 = getelementptr inbounds %struct.w2c_hermes, ptr %5651, i32 0, i32 7
  %5653 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5652, i32 0, i32 0
  %5654 = load ptr, ptr %5653, align 8, !tbaa !19
  %5655 = load i32, ptr %22, align 4, !tbaa !9
  %5656 = zext i32 %5655 to i64
  %5657 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5654, i64 %5656
  %5658 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5657, i32 0, i32 0
  %5659 = load ptr, ptr %5658, align 8, !tbaa !22
  %5660 = call zeroext i1 @func_types_eq(ptr noundef %5650, ptr noundef %5659)
  br label %5661

5661:                                             ; preds = %5649, %5638, %5591
  %5662 = phi i1 [ false, %5638 ], [ false, %5591 ], [ %5660, %5649 ]
  %5663 = xor i1 %5662, true
  %5664 = xor i1 %5663, true
  %5665 = zext i1 %5664 to i32
  %5666 = sext i32 %5665 to i64
  %5667 = call i64 @llvm.expect.i64(i64 %5666, i64 1)
  %5668 = icmp ne i64 %5667, 0
  br i1 %5668, label %5671, label %5669

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

5670:                                             ; No predecessors!
  br label %5671

5671:                                             ; preds = %5670, %5661
  %5672 = phi i1 [ true, %5661 ], [ false, %5670 ]
  %5673 = zext i1 %5672 to i32
  %5674 = load ptr, ptr %5, align 8, !tbaa !5
  %5675 = getelementptr inbounds %struct.w2c_hermes, ptr %5674, i32 0, i32 7
  %5676 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5675, i32 0, i32 0
  %5677 = load ptr, ptr %5676, align 8, !tbaa !19
  %5678 = load i32, ptr %22, align 4, !tbaa !9
  %5679 = zext i32 %5678 to i64
  %5680 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5677, i64 %5679
  %5681 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5680, i32 0, i32 1
  %5682 = load ptr, ptr %5681, align 8, !tbaa !20
  %5683 = load ptr, ptr %5, align 8, !tbaa !5
  %5684 = getelementptr inbounds %struct.w2c_hermes, ptr %5683, i32 0, i32 7
  %5685 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5684, i32 0, i32 0
  %5686 = load ptr, ptr %5685, align 8, !tbaa !19
  %5687 = load i32, ptr %22, align 4, !tbaa !9
  %5688 = zext i32 %5687 to i64
  %5689 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5686, i64 %5688
  %5690 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5689, i32 0, i32 2
  %5691 = load ptr, ptr %5690, align 8, !tbaa !23
  %5692 = load i32, ptr %19, align 4, !tbaa !9
  %5693 = load i32, ptr %20, align 4, !tbaa !9
  %5694 = load i32, ptr %21, align 4, !tbaa !9
  call void %5682(ptr noundef %5691, i32 noundef %5692, i32 noundef %5693, i32 noundef %5694)
  %5695 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5695, ptr %19, align 4, !tbaa !9
  %5696 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5696, ptr %20, align 4, !tbaa !9
  store i32 224, ptr %21, align 4, !tbaa !9
  %5697 = load i32, ptr %21, align 4, !tbaa !9
  %5698 = load i32, ptr %20, align 4, !tbaa !9
  %5699 = add i32 %5698, %5697
  store i32 %5699, ptr %20, align 4, !tbaa !9
  store i32 48521, ptr %21, align 4, !tbaa !9
  %5700 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5700, ptr %22, align 4, !tbaa !9
  %5701 = load ptr, ptr %5, align 8, !tbaa !5
  %5702 = getelementptr inbounds %struct.w2c_hermes, ptr %5701, i32 0, i32 6
  %5703 = load i32, ptr %22, align 4, !tbaa !9
  %5704 = zext i32 %5703 to i64
  %5705 = call i32 @i32_load(ptr noundef %5702, i64 noundef %5704)
  store i32 %5705, ptr %22, align 4, !tbaa !9
  %5706 = load ptr, ptr %5, align 8, !tbaa !5
  %5707 = getelementptr inbounds %struct.w2c_hermes, ptr %5706, i32 0, i32 6
  %5708 = load i32, ptr %22, align 4, !tbaa !9
  %5709 = zext i32 %5708 to i64
  %5710 = add i64 %5709, 36
  %5711 = call i32 @i32_load(ptr noundef %5707, i64 noundef %5710)
  store i32 %5711, ptr %22, align 4, !tbaa !9
  %5712 = load i32, ptr %22, align 4, !tbaa !9
  %5713 = load ptr, ptr %5, align 8, !tbaa !5
  %5714 = getelementptr inbounds %struct.w2c_hermes, ptr %5713, i32 0, i32 7
  %5715 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5714, i32 0, i32 2
  %5716 = load i32, ptr %5715, align 4, !tbaa !18
  %5717 = icmp ult i32 %5712, %5716
  br i1 %5717, label %5718, label %5741

5718:                                             ; preds = %5671
  %5719 = load ptr, ptr %5, align 8, !tbaa !5
  %5720 = getelementptr inbounds %struct.w2c_hermes, ptr %5719, i32 0, i32 7
  %5721 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5720, i32 0, i32 0
  %5722 = load ptr, ptr %5721, align 8, !tbaa !19
  %5723 = load i32, ptr %22, align 4, !tbaa !9
  %5724 = zext i32 %5723 to i64
  %5725 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5722, i64 %5724
  %5726 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5725, i32 0, i32 1
  %5727 = load ptr, ptr %5726, align 8, !tbaa !20
  %5728 = icmp ne ptr %5727, null
  br i1 %5728, label %5729, label %5741

5729:                                             ; preds = %5718
  %5730 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5731 = load ptr, ptr %5, align 8, !tbaa !5
  %5732 = getelementptr inbounds %struct.w2c_hermes, ptr %5731, i32 0, i32 7
  %5733 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5732, i32 0, i32 0
  %5734 = load ptr, ptr %5733, align 8, !tbaa !19
  %5735 = load i32, ptr %22, align 4, !tbaa !9
  %5736 = zext i32 %5735 to i64
  %5737 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5734, i64 %5736
  %5738 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5737, i32 0, i32 0
  %5739 = load ptr, ptr %5738, align 8, !tbaa !22
  %5740 = call zeroext i1 @func_types_eq(ptr noundef %5730, ptr noundef %5739)
  br label %5741

5741:                                             ; preds = %5729, %5718, %5671
  %5742 = phi i1 [ false, %5718 ], [ false, %5671 ], [ %5740, %5729 ]
  %5743 = xor i1 %5742, true
  %5744 = xor i1 %5743, true
  %5745 = zext i1 %5744 to i32
  %5746 = sext i32 %5745 to i64
  %5747 = call i64 @llvm.expect.i64(i64 %5746, i64 1)
  %5748 = icmp ne i64 %5747, 0
  br i1 %5748, label %5751, label %5749

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

5750:                                             ; No predecessors!
  br label %5751

5751:                                             ; preds = %5750, %5741
  %5752 = phi i1 [ true, %5741 ], [ false, %5750 ]
  %5753 = zext i1 %5752 to i32
  %5754 = load ptr, ptr %5, align 8, !tbaa !5
  %5755 = getelementptr inbounds %struct.w2c_hermes, ptr %5754, i32 0, i32 7
  %5756 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5755, i32 0, i32 0
  %5757 = load ptr, ptr %5756, align 8, !tbaa !19
  %5758 = load i32, ptr %22, align 4, !tbaa !9
  %5759 = zext i32 %5758 to i64
  %5760 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5757, i64 %5759
  %5761 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5760, i32 0, i32 1
  %5762 = load ptr, ptr %5761, align 8, !tbaa !20
  %5763 = load ptr, ptr %5, align 8, !tbaa !5
  %5764 = getelementptr inbounds %struct.w2c_hermes, ptr %5763, i32 0, i32 7
  %5765 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5764, i32 0, i32 0
  %5766 = load ptr, ptr %5765, align 8, !tbaa !19
  %5767 = load i32, ptr %22, align 4, !tbaa !9
  %5768 = zext i32 %5767 to i64
  %5769 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5766, i64 %5768
  %5770 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5769, i32 0, i32 2
  %5771 = load ptr, ptr %5770, align 8, !tbaa !23
  %5772 = load i32, ptr %19, align 4, !tbaa !9
  %5773 = load i32, ptr %20, align 4, !tbaa !9
  %5774 = load i32, ptr %21, align 4, !tbaa !9
  call void %5762(ptr noundef %5771, i32 noundef %5772, i32 noundef %5773, i32 noundef %5774)
  %5775 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5775, ptr %19, align 4, !tbaa !9
  %5776 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5776, ptr %20, align 4, !tbaa !9
  store i32 232, ptr %21, align 4, !tbaa !9
  %5777 = load i32, ptr %21, align 4, !tbaa !9
  %5778 = load i32, ptr %20, align 4, !tbaa !9
  %5779 = add i32 %5778, %5777
  store i32 %5779, ptr %20, align 4, !tbaa !9
  store i32 48651, ptr %21, align 4, !tbaa !9
  %5780 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5780, ptr %22, align 4, !tbaa !9
  %5781 = load ptr, ptr %5, align 8, !tbaa !5
  %5782 = getelementptr inbounds %struct.w2c_hermes, ptr %5781, i32 0, i32 6
  %5783 = load i32, ptr %22, align 4, !tbaa !9
  %5784 = zext i32 %5783 to i64
  %5785 = call i32 @i32_load(ptr noundef %5782, i64 noundef %5784)
  store i32 %5785, ptr %22, align 4, !tbaa !9
  %5786 = load ptr, ptr %5, align 8, !tbaa !5
  %5787 = getelementptr inbounds %struct.w2c_hermes, ptr %5786, i32 0, i32 6
  %5788 = load i32, ptr %22, align 4, !tbaa !9
  %5789 = zext i32 %5788 to i64
  %5790 = add i64 %5789, 36
  %5791 = call i32 @i32_load(ptr noundef %5787, i64 noundef %5790)
  store i32 %5791, ptr %22, align 4, !tbaa !9
  %5792 = load i32, ptr %22, align 4, !tbaa !9
  %5793 = load ptr, ptr %5, align 8, !tbaa !5
  %5794 = getelementptr inbounds %struct.w2c_hermes, ptr %5793, i32 0, i32 7
  %5795 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5794, i32 0, i32 2
  %5796 = load i32, ptr %5795, align 4, !tbaa !18
  %5797 = icmp ult i32 %5792, %5796
  br i1 %5797, label %5798, label %5821

5798:                                             ; preds = %5751
  %5799 = load ptr, ptr %5, align 8, !tbaa !5
  %5800 = getelementptr inbounds %struct.w2c_hermes, ptr %5799, i32 0, i32 7
  %5801 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5800, i32 0, i32 0
  %5802 = load ptr, ptr %5801, align 8, !tbaa !19
  %5803 = load i32, ptr %22, align 4, !tbaa !9
  %5804 = zext i32 %5803 to i64
  %5805 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5802, i64 %5804
  %5806 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5805, i32 0, i32 1
  %5807 = load ptr, ptr %5806, align 8, !tbaa !20
  %5808 = icmp ne ptr %5807, null
  br i1 %5808, label %5809, label %5821

5809:                                             ; preds = %5798
  %5810 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5811 = load ptr, ptr %5, align 8, !tbaa !5
  %5812 = getelementptr inbounds %struct.w2c_hermes, ptr %5811, i32 0, i32 7
  %5813 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5812, i32 0, i32 0
  %5814 = load ptr, ptr %5813, align 8, !tbaa !19
  %5815 = load i32, ptr %22, align 4, !tbaa !9
  %5816 = zext i32 %5815 to i64
  %5817 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5814, i64 %5816
  %5818 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5817, i32 0, i32 0
  %5819 = load ptr, ptr %5818, align 8, !tbaa !22
  %5820 = call zeroext i1 @func_types_eq(ptr noundef %5810, ptr noundef %5819)
  br label %5821

5821:                                             ; preds = %5809, %5798, %5751
  %5822 = phi i1 [ false, %5798 ], [ false, %5751 ], [ %5820, %5809 ]
  %5823 = xor i1 %5822, true
  %5824 = xor i1 %5823, true
  %5825 = zext i1 %5824 to i32
  %5826 = sext i32 %5825 to i64
  %5827 = call i64 @llvm.expect.i64(i64 %5826, i64 1)
  %5828 = icmp ne i64 %5827, 0
  br i1 %5828, label %5831, label %5829

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

5830:                                             ; No predecessors!
  br label %5831

5831:                                             ; preds = %5830, %5821
  %5832 = phi i1 [ true, %5821 ], [ false, %5830 ]
  %5833 = zext i1 %5832 to i32
  %5834 = load ptr, ptr %5, align 8, !tbaa !5
  %5835 = getelementptr inbounds %struct.w2c_hermes, ptr %5834, i32 0, i32 7
  %5836 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5835, i32 0, i32 0
  %5837 = load ptr, ptr %5836, align 8, !tbaa !19
  %5838 = load i32, ptr %22, align 4, !tbaa !9
  %5839 = zext i32 %5838 to i64
  %5840 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5837, i64 %5839
  %5841 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5840, i32 0, i32 1
  %5842 = load ptr, ptr %5841, align 8, !tbaa !20
  %5843 = load ptr, ptr %5, align 8, !tbaa !5
  %5844 = getelementptr inbounds %struct.w2c_hermes, ptr %5843, i32 0, i32 7
  %5845 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5844, i32 0, i32 0
  %5846 = load ptr, ptr %5845, align 8, !tbaa !19
  %5847 = load i32, ptr %22, align 4, !tbaa !9
  %5848 = zext i32 %5847 to i64
  %5849 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5846, i64 %5848
  %5850 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5849, i32 0, i32 2
  %5851 = load ptr, ptr %5850, align 8, !tbaa !23
  %5852 = load i32, ptr %19, align 4, !tbaa !9
  %5853 = load i32, ptr %20, align 4, !tbaa !9
  %5854 = load i32, ptr %21, align 4, !tbaa !9
  call void %5842(ptr noundef %5851, i32 noundef %5852, i32 noundef %5853, i32 noundef %5854)
  %5855 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5855, ptr %19, align 4, !tbaa !9
  %5856 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5856, ptr %20, align 4, !tbaa !9
  store i32 240, ptr %21, align 4, !tbaa !9
  %5857 = load i32, ptr %21, align 4, !tbaa !9
  %5858 = load i32, ptr %20, align 4, !tbaa !9
  %5859 = add i32 %5858, %5857
  store i32 %5859, ptr %20, align 4, !tbaa !9
  store i32 48668, ptr %21, align 4, !tbaa !9
  %5860 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5860, ptr %22, align 4, !tbaa !9
  %5861 = load ptr, ptr %5, align 8, !tbaa !5
  %5862 = getelementptr inbounds %struct.w2c_hermes, ptr %5861, i32 0, i32 6
  %5863 = load i32, ptr %22, align 4, !tbaa !9
  %5864 = zext i32 %5863 to i64
  %5865 = call i32 @i32_load(ptr noundef %5862, i64 noundef %5864)
  store i32 %5865, ptr %22, align 4, !tbaa !9
  %5866 = load ptr, ptr %5, align 8, !tbaa !5
  %5867 = getelementptr inbounds %struct.w2c_hermes, ptr %5866, i32 0, i32 6
  %5868 = load i32, ptr %22, align 4, !tbaa !9
  %5869 = zext i32 %5868 to i64
  %5870 = add i64 %5869, 36
  %5871 = call i32 @i32_load(ptr noundef %5867, i64 noundef %5870)
  store i32 %5871, ptr %22, align 4, !tbaa !9
  %5872 = load i32, ptr %22, align 4, !tbaa !9
  %5873 = load ptr, ptr %5, align 8, !tbaa !5
  %5874 = getelementptr inbounds %struct.w2c_hermes, ptr %5873, i32 0, i32 7
  %5875 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5874, i32 0, i32 2
  %5876 = load i32, ptr %5875, align 4, !tbaa !18
  %5877 = icmp ult i32 %5872, %5876
  br i1 %5877, label %5878, label %5901

5878:                                             ; preds = %5831
  %5879 = load ptr, ptr %5, align 8, !tbaa !5
  %5880 = getelementptr inbounds %struct.w2c_hermes, ptr %5879, i32 0, i32 7
  %5881 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5880, i32 0, i32 0
  %5882 = load ptr, ptr %5881, align 8, !tbaa !19
  %5883 = load i32, ptr %22, align 4, !tbaa !9
  %5884 = zext i32 %5883 to i64
  %5885 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5882, i64 %5884
  %5886 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5885, i32 0, i32 1
  %5887 = load ptr, ptr %5886, align 8, !tbaa !20
  %5888 = icmp ne ptr %5887, null
  br i1 %5888, label %5889, label %5901

5889:                                             ; preds = %5878
  %5890 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5891 = load ptr, ptr %5, align 8, !tbaa !5
  %5892 = getelementptr inbounds %struct.w2c_hermes, ptr %5891, i32 0, i32 7
  %5893 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5892, i32 0, i32 0
  %5894 = load ptr, ptr %5893, align 8, !tbaa !19
  %5895 = load i32, ptr %22, align 4, !tbaa !9
  %5896 = zext i32 %5895 to i64
  %5897 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5894, i64 %5896
  %5898 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5897, i32 0, i32 0
  %5899 = load ptr, ptr %5898, align 8, !tbaa !22
  %5900 = call zeroext i1 @func_types_eq(ptr noundef %5890, ptr noundef %5899)
  br label %5901

5901:                                             ; preds = %5889, %5878, %5831
  %5902 = phi i1 [ false, %5878 ], [ false, %5831 ], [ %5900, %5889 ]
  %5903 = xor i1 %5902, true
  %5904 = xor i1 %5903, true
  %5905 = zext i1 %5904 to i32
  %5906 = sext i32 %5905 to i64
  %5907 = call i64 @llvm.expect.i64(i64 %5906, i64 1)
  %5908 = icmp ne i64 %5907, 0
  br i1 %5908, label %5911, label %5909

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

5910:                                             ; No predecessors!
  br label %5911

5911:                                             ; preds = %5910, %5901
  %5912 = phi i1 [ true, %5901 ], [ false, %5910 ]
  %5913 = zext i1 %5912 to i32
  %5914 = load ptr, ptr %5, align 8, !tbaa !5
  %5915 = getelementptr inbounds %struct.w2c_hermes, ptr %5914, i32 0, i32 7
  %5916 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5915, i32 0, i32 0
  %5917 = load ptr, ptr %5916, align 8, !tbaa !19
  %5918 = load i32, ptr %22, align 4, !tbaa !9
  %5919 = zext i32 %5918 to i64
  %5920 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5917, i64 %5919
  %5921 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5920, i32 0, i32 1
  %5922 = load ptr, ptr %5921, align 8, !tbaa !20
  %5923 = load ptr, ptr %5, align 8, !tbaa !5
  %5924 = getelementptr inbounds %struct.w2c_hermes, ptr %5923, i32 0, i32 7
  %5925 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5924, i32 0, i32 0
  %5926 = load ptr, ptr %5925, align 8, !tbaa !19
  %5927 = load i32, ptr %22, align 4, !tbaa !9
  %5928 = zext i32 %5927 to i64
  %5929 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5926, i64 %5928
  %5930 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5929, i32 0, i32 2
  %5931 = load ptr, ptr %5930, align 8, !tbaa !23
  %5932 = load i32, ptr %19, align 4, !tbaa !9
  %5933 = load i32, ptr %20, align 4, !tbaa !9
  %5934 = load i32, ptr %21, align 4, !tbaa !9
  call void %5922(ptr noundef %5931, i32 noundef %5932, i32 noundef %5933, i32 noundef %5934)
  %5935 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5935, ptr %19, align 4, !tbaa !9
  %5936 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %5936, ptr %20, align 4, !tbaa !9
  store i32 248, ptr %21, align 4, !tbaa !9
  %5937 = load i32, ptr %21, align 4, !tbaa !9
  %5938 = load i32, ptr %20, align 4, !tbaa !9
  %5939 = add i32 %5938, %5937
  store i32 %5939, ptr %20, align 4, !tbaa !9
  store i32 48735, ptr %21, align 4, !tbaa !9
  %5940 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %5940, ptr %22, align 4, !tbaa !9
  %5941 = load ptr, ptr %5, align 8, !tbaa !5
  %5942 = getelementptr inbounds %struct.w2c_hermes, ptr %5941, i32 0, i32 6
  %5943 = load i32, ptr %22, align 4, !tbaa !9
  %5944 = zext i32 %5943 to i64
  %5945 = call i32 @i32_load(ptr noundef %5942, i64 noundef %5944)
  store i32 %5945, ptr %22, align 4, !tbaa !9
  %5946 = load ptr, ptr %5, align 8, !tbaa !5
  %5947 = getelementptr inbounds %struct.w2c_hermes, ptr %5946, i32 0, i32 6
  %5948 = load i32, ptr %22, align 4, !tbaa !9
  %5949 = zext i32 %5948 to i64
  %5950 = add i64 %5949, 36
  %5951 = call i32 @i32_load(ptr noundef %5947, i64 noundef %5950)
  store i32 %5951, ptr %22, align 4, !tbaa !9
  %5952 = load i32, ptr %22, align 4, !tbaa !9
  %5953 = load ptr, ptr %5, align 8, !tbaa !5
  %5954 = getelementptr inbounds %struct.w2c_hermes, ptr %5953, i32 0, i32 7
  %5955 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5954, i32 0, i32 2
  %5956 = load i32, ptr %5955, align 4, !tbaa !18
  %5957 = icmp ult i32 %5952, %5956
  br i1 %5957, label %5958, label %5981

5958:                                             ; preds = %5911
  %5959 = load ptr, ptr %5, align 8, !tbaa !5
  %5960 = getelementptr inbounds %struct.w2c_hermes, ptr %5959, i32 0, i32 7
  %5961 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5960, i32 0, i32 0
  %5962 = load ptr, ptr %5961, align 8, !tbaa !19
  %5963 = load i32, ptr %22, align 4, !tbaa !9
  %5964 = zext i32 %5963 to i64
  %5965 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5962, i64 %5964
  %5966 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5965, i32 0, i32 1
  %5967 = load ptr, ptr %5966, align 8, !tbaa !20
  %5968 = icmp ne ptr %5967, null
  br i1 %5968, label %5969, label %5981

5969:                                             ; preds = %5958
  %5970 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %5971 = load ptr, ptr %5, align 8, !tbaa !5
  %5972 = getelementptr inbounds %struct.w2c_hermes, ptr %5971, i32 0, i32 7
  %5973 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5972, i32 0, i32 0
  %5974 = load ptr, ptr %5973, align 8, !tbaa !19
  %5975 = load i32, ptr %22, align 4, !tbaa !9
  %5976 = zext i32 %5975 to i64
  %5977 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5974, i64 %5976
  %5978 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5977, i32 0, i32 0
  %5979 = load ptr, ptr %5978, align 8, !tbaa !22
  %5980 = call zeroext i1 @func_types_eq(ptr noundef %5970, ptr noundef %5979)
  br label %5981

5981:                                             ; preds = %5969, %5958, %5911
  %5982 = phi i1 [ false, %5958 ], [ false, %5911 ], [ %5980, %5969 ]
  %5983 = xor i1 %5982, true
  %5984 = xor i1 %5983, true
  %5985 = zext i1 %5984 to i32
  %5986 = sext i32 %5985 to i64
  %5987 = call i64 @llvm.expect.i64(i64 %5986, i64 1)
  %5988 = icmp ne i64 %5987, 0
  br i1 %5988, label %5991, label %5989

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

5990:                                             ; No predecessors!
  br label %5991

5991:                                             ; preds = %5990, %5981
  %5992 = phi i1 [ true, %5981 ], [ false, %5990 ]
  %5993 = zext i1 %5992 to i32
  %5994 = load ptr, ptr %5, align 8, !tbaa !5
  %5995 = getelementptr inbounds %struct.w2c_hermes, ptr %5994, i32 0, i32 7
  %5996 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %5995, i32 0, i32 0
  %5997 = load ptr, ptr %5996, align 8, !tbaa !19
  %5998 = load i32, ptr %22, align 4, !tbaa !9
  %5999 = zext i32 %5998 to i64
  %6000 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %5997, i64 %5999
  %6001 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6000, i32 0, i32 1
  %6002 = load ptr, ptr %6001, align 8, !tbaa !20
  %6003 = load ptr, ptr %5, align 8, !tbaa !5
  %6004 = getelementptr inbounds %struct.w2c_hermes, ptr %6003, i32 0, i32 7
  %6005 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6004, i32 0, i32 0
  %6006 = load ptr, ptr %6005, align 8, !tbaa !19
  %6007 = load i32, ptr %22, align 4, !tbaa !9
  %6008 = zext i32 %6007 to i64
  %6009 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6006, i64 %6008
  %6010 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6009, i32 0, i32 2
  %6011 = load ptr, ptr %6010, align 8, !tbaa !23
  %6012 = load i32, ptr %19, align 4, !tbaa !9
  %6013 = load i32, ptr %20, align 4, !tbaa !9
  %6014 = load i32, ptr %21, align 4, !tbaa !9
  call void %6002(ptr noundef %6011, i32 noundef %6012, i32 noundef %6013, i32 noundef %6014)
  %6015 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6015, ptr %19, align 4, !tbaa !9
  %6016 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6016, ptr %20, align 4, !tbaa !9
  store i32 256, ptr %21, align 4, !tbaa !9
  %6017 = load i32, ptr %21, align 4, !tbaa !9
  %6018 = load i32, ptr %20, align 4, !tbaa !9
  %6019 = add i32 %6018, %6017
  store i32 %6019, ptr %20, align 4, !tbaa !9
  store i32 47803, ptr %21, align 4, !tbaa !9
  %6020 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6020, ptr %22, align 4, !tbaa !9
  %6021 = load ptr, ptr %5, align 8, !tbaa !5
  %6022 = getelementptr inbounds %struct.w2c_hermes, ptr %6021, i32 0, i32 6
  %6023 = load i32, ptr %22, align 4, !tbaa !9
  %6024 = zext i32 %6023 to i64
  %6025 = call i32 @i32_load(ptr noundef %6022, i64 noundef %6024)
  store i32 %6025, ptr %22, align 4, !tbaa !9
  %6026 = load ptr, ptr %5, align 8, !tbaa !5
  %6027 = getelementptr inbounds %struct.w2c_hermes, ptr %6026, i32 0, i32 6
  %6028 = load i32, ptr %22, align 4, !tbaa !9
  %6029 = zext i32 %6028 to i64
  %6030 = add i64 %6029, 36
  %6031 = call i32 @i32_load(ptr noundef %6027, i64 noundef %6030)
  store i32 %6031, ptr %22, align 4, !tbaa !9
  %6032 = load i32, ptr %22, align 4, !tbaa !9
  %6033 = load ptr, ptr %5, align 8, !tbaa !5
  %6034 = getelementptr inbounds %struct.w2c_hermes, ptr %6033, i32 0, i32 7
  %6035 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6034, i32 0, i32 2
  %6036 = load i32, ptr %6035, align 4, !tbaa !18
  %6037 = icmp ult i32 %6032, %6036
  br i1 %6037, label %6038, label %6061

6038:                                             ; preds = %5991
  %6039 = load ptr, ptr %5, align 8, !tbaa !5
  %6040 = getelementptr inbounds %struct.w2c_hermes, ptr %6039, i32 0, i32 7
  %6041 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6040, i32 0, i32 0
  %6042 = load ptr, ptr %6041, align 8, !tbaa !19
  %6043 = load i32, ptr %22, align 4, !tbaa !9
  %6044 = zext i32 %6043 to i64
  %6045 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6042, i64 %6044
  %6046 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6045, i32 0, i32 1
  %6047 = load ptr, ptr %6046, align 8, !tbaa !20
  %6048 = icmp ne ptr %6047, null
  br i1 %6048, label %6049, label %6061

6049:                                             ; preds = %6038
  %6050 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6051 = load ptr, ptr %5, align 8, !tbaa !5
  %6052 = getelementptr inbounds %struct.w2c_hermes, ptr %6051, i32 0, i32 7
  %6053 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6052, i32 0, i32 0
  %6054 = load ptr, ptr %6053, align 8, !tbaa !19
  %6055 = load i32, ptr %22, align 4, !tbaa !9
  %6056 = zext i32 %6055 to i64
  %6057 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6054, i64 %6056
  %6058 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6057, i32 0, i32 0
  %6059 = load ptr, ptr %6058, align 8, !tbaa !22
  %6060 = call zeroext i1 @func_types_eq(ptr noundef %6050, ptr noundef %6059)
  br label %6061

6061:                                             ; preds = %6049, %6038, %5991
  %6062 = phi i1 [ false, %6038 ], [ false, %5991 ], [ %6060, %6049 ]
  %6063 = xor i1 %6062, true
  %6064 = xor i1 %6063, true
  %6065 = zext i1 %6064 to i32
  %6066 = sext i32 %6065 to i64
  %6067 = call i64 @llvm.expect.i64(i64 %6066, i64 1)
  %6068 = icmp ne i64 %6067, 0
  br i1 %6068, label %6071, label %6069

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

6070:                                             ; No predecessors!
  br label %6071

6071:                                             ; preds = %6070, %6061
  %6072 = phi i1 [ true, %6061 ], [ false, %6070 ]
  %6073 = zext i1 %6072 to i32
  %6074 = load ptr, ptr %5, align 8, !tbaa !5
  %6075 = getelementptr inbounds %struct.w2c_hermes, ptr %6074, i32 0, i32 7
  %6076 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6075, i32 0, i32 0
  %6077 = load ptr, ptr %6076, align 8, !tbaa !19
  %6078 = load i32, ptr %22, align 4, !tbaa !9
  %6079 = zext i32 %6078 to i64
  %6080 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6077, i64 %6079
  %6081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6080, i32 0, i32 1
  %6082 = load ptr, ptr %6081, align 8, !tbaa !20
  %6083 = load ptr, ptr %5, align 8, !tbaa !5
  %6084 = getelementptr inbounds %struct.w2c_hermes, ptr %6083, i32 0, i32 7
  %6085 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6084, i32 0, i32 0
  %6086 = load ptr, ptr %6085, align 8, !tbaa !19
  %6087 = load i32, ptr %22, align 4, !tbaa !9
  %6088 = zext i32 %6087 to i64
  %6089 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6086, i64 %6088
  %6090 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6089, i32 0, i32 2
  %6091 = load ptr, ptr %6090, align 8, !tbaa !23
  %6092 = load i32, ptr %19, align 4, !tbaa !9
  %6093 = load i32, ptr %20, align 4, !tbaa !9
  %6094 = load i32, ptr %21, align 4, !tbaa !9
  call void %6082(ptr noundef %6091, i32 noundef %6092, i32 noundef %6093, i32 noundef %6094)
  %6095 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6095, ptr %19, align 4, !tbaa !9
  %6096 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6096, ptr %20, align 4, !tbaa !9
  store i32 264, ptr %21, align 4, !tbaa !9
  %6097 = load i32, ptr %21, align 4, !tbaa !9
  %6098 = load i32, ptr %20, align 4, !tbaa !9
  %6099 = add i32 %6098, %6097
  store i32 %6099, ptr %20, align 4, !tbaa !9
  store i32 48479, ptr %21, align 4, !tbaa !9
  %6100 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6100, ptr %22, align 4, !tbaa !9
  %6101 = load ptr, ptr %5, align 8, !tbaa !5
  %6102 = getelementptr inbounds %struct.w2c_hermes, ptr %6101, i32 0, i32 6
  %6103 = load i32, ptr %22, align 4, !tbaa !9
  %6104 = zext i32 %6103 to i64
  %6105 = call i32 @i32_load(ptr noundef %6102, i64 noundef %6104)
  store i32 %6105, ptr %22, align 4, !tbaa !9
  %6106 = load ptr, ptr %5, align 8, !tbaa !5
  %6107 = getelementptr inbounds %struct.w2c_hermes, ptr %6106, i32 0, i32 6
  %6108 = load i32, ptr %22, align 4, !tbaa !9
  %6109 = zext i32 %6108 to i64
  %6110 = add i64 %6109, 36
  %6111 = call i32 @i32_load(ptr noundef %6107, i64 noundef %6110)
  store i32 %6111, ptr %22, align 4, !tbaa !9
  %6112 = load i32, ptr %22, align 4, !tbaa !9
  %6113 = load ptr, ptr %5, align 8, !tbaa !5
  %6114 = getelementptr inbounds %struct.w2c_hermes, ptr %6113, i32 0, i32 7
  %6115 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6114, i32 0, i32 2
  %6116 = load i32, ptr %6115, align 4, !tbaa !18
  %6117 = icmp ult i32 %6112, %6116
  br i1 %6117, label %6118, label %6141

6118:                                             ; preds = %6071
  %6119 = load ptr, ptr %5, align 8, !tbaa !5
  %6120 = getelementptr inbounds %struct.w2c_hermes, ptr %6119, i32 0, i32 7
  %6121 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6120, i32 0, i32 0
  %6122 = load ptr, ptr %6121, align 8, !tbaa !19
  %6123 = load i32, ptr %22, align 4, !tbaa !9
  %6124 = zext i32 %6123 to i64
  %6125 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6122, i64 %6124
  %6126 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6125, i32 0, i32 1
  %6127 = load ptr, ptr %6126, align 8, !tbaa !20
  %6128 = icmp ne ptr %6127, null
  br i1 %6128, label %6129, label %6141

6129:                                             ; preds = %6118
  %6130 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6131 = load ptr, ptr %5, align 8, !tbaa !5
  %6132 = getelementptr inbounds %struct.w2c_hermes, ptr %6131, i32 0, i32 7
  %6133 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6132, i32 0, i32 0
  %6134 = load ptr, ptr %6133, align 8, !tbaa !19
  %6135 = load i32, ptr %22, align 4, !tbaa !9
  %6136 = zext i32 %6135 to i64
  %6137 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6134, i64 %6136
  %6138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6137, i32 0, i32 0
  %6139 = load ptr, ptr %6138, align 8, !tbaa !22
  %6140 = call zeroext i1 @func_types_eq(ptr noundef %6130, ptr noundef %6139)
  br label %6141

6141:                                             ; preds = %6129, %6118, %6071
  %6142 = phi i1 [ false, %6118 ], [ false, %6071 ], [ %6140, %6129 ]
  %6143 = xor i1 %6142, true
  %6144 = xor i1 %6143, true
  %6145 = zext i1 %6144 to i32
  %6146 = sext i32 %6145 to i64
  %6147 = call i64 @llvm.expect.i64(i64 %6146, i64 1)
  %6148 = icmp ne i64 %6147, 0
  br i1 %6148, label %6151, label %6149

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

6150:                                             ; No predecessors!
  br label %6151

6151:                                             ; preds = %6150, %6141
  %6152 = phi i1 [ true, %6141 ], [ false, %6150 ]
  %6153 = zext i1 %6152 to i32
  %6154 = load ptr, ptr %5, align 8, !tbaa !5
  %6155 = getelementptr inbounds %struct.w2c_hermes, ptr %6154, i32 0, i32 7
  %6156 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6155, i32 0, i32 0
  %6157 = load ptr, ptr %6156, align 8, !tbaa !19
  %6158 = load i32, ptr %22, align 4, !tbaa !9
  %6159 = zext i32 %6158 to i64
  %6160 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6157, i64 %6159
  %6161 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6160, i32 0, i32 1
  %6162 = load ptr, ptr %6161, align 8, !tbaa !20
  %6163 = load ptr, ptr %5, align 8, !tbaa !5
  %6164 = getelementptr inbounds %struct.w2c_hermes, ptr %6163, i32 0, i32 7
  %6165 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6164, i32 0, i32 0
  %6166 = load ptr, ptr %6165, align 8, !tbaa !19
  %6167 = load i32, ptr %22, align 4, !tbaa !9
  %6168 = zext i32 %6167 to i64
  %6169 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6166, i64 %6168
  %6170 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6169, i32 0, i32 2
  %6171 = load ptr, ptr %6170, align 8, !tbaa !23
  %6172 = load i32, ptr %19, align 4, !tbaa !9
  %6173 = load i32, ptr %20, align 4, !tbaa !9
  %6174 = load i32, ptr %21, align 4, !tbaa !9
  call void %6162(ptr noundef %6171, i32 noundef %6172, i32 noundef %6173, i32 noundef %6174)
  %6175 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6175, ptr %19, align 4, !tbaa !9
  %6176 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6176, ptr %20, align 4, !tbaa !9
  store i32 272, ptr %21, align 4, !tbaa !9
  %6177 = load i32, ptr %21, align 4, !tbaa !9
  %6178 = load i32, ptr %20, align 4, !tbaa !9
  %6179 = add i32 %6178, %6177
  store i32 %6179, ptr %20, align 4, !tbaa !9
  store i32 48057, ptr %21, align 4, !tbaa !9
  %6180 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6180, ptr %22, align 4, !tbaa !9
  %6181 = load ptr, ptr %5, align 8, !tbaa !5
  %6182 = getelementptr inbounds %struct.w2c_hermes, ptr %6181, i32 0, i32 6
  %6183 = load i32, ptr %22, align 4, !tbaa !9
  %6184 = zext i32 %6183 to i64
  %6185 = call i32 @i32_load(ptr noundef %6182, i64 noundef %6184)
  store i32 %6185, ptr %22, align 4, !tbaa !9
  %6186 = load ptr, ptr %5, align 8, !tbaa !5
  %6187 = getelementptr inbounds %struct.w2c_hermes, ptr %6186, i32 0, i32 6
  %6188 = load i32, ptr %22, align 4, !tbaa !9
  %6189 = zext i32 %6188 to i64
  %6190 = add i64 %6189, 36
  %6191 = call i32 @i32_load(ptr noundef %6187, i64 noundef %6190)
  store i32 %6191, ptr %22, align 4, !tbaa !9
  %6192 = load i32, ptr %22, align 4, !tbaa !9
  %6193 = load ptr, ptr %5, align 8, !tbaa !5
  %6194 = getelementptr inbounds %struct.w2c_hermes, ptr %6193, i32 0, i32 7
  %6195 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6194, i32 0, i32 2
  %6196 = load i32, ptr %6195, align 4, !tbaa !18
  %6197 = icmp ult i32 %6192, %6196
  br i1 %6197, label %6198, label %6221

6198:                                             ; preds = %6151
  %6199 = load ptr, ptr %5, align 8, !tbaa !5
  %6200 = getelementptr inbounds %struct.w2c_hermes, ptr %6199, i32 0, i32 7
  %6201 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6200, i32 0, i32 0
  %6202 = load ptr, ptr %6201, align 8, !tbaa !19
  %6203 = load i32, ptr %22, align 4, !tbaa !9
  %6204 = zext i32 %6203 to i64
  %6205 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6202, i64 %6204
  %6206 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6205, i32 0, i32 1
  %6207 = load ptr, ptr %6206, align 8, !tbaa !20
  %6208 = icmp ne ptr %6207, null
  br i1 %6208, label %6209, label %6221

6209:                                             ; preds = %6198
  %6210 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6211 = load ptr, ptr %5, align 8, !tbaa !5
  %6212 = getelementptr inbounds %struct.w2c_hermes, ptr %6211, i32 0, i32 7
  %6213 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6212, i32 0, i32 0
  %6214 = load ptr, ptr %6213, align 8, !tbaa !19
  %6215 = load i32, ptr %22, align 4, !tbaa !9
  %6216 = zext i32 %6215 to i64
  %6217 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6214, i64 %6216
  %6218 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6217, i32 0, i32 0
  %6219 = load ptr, ptr %6218, align 8, !tbaa !22
  %6220 = call zeroext i1 @func_types_eq(ptr noundef %6210, ptr noundef %6219)
  br label %6221

6221:                                             ; preds = %6209, %6198, %6151
  %6222 = phi i1 [ false, %6198 ], [ false, %6151 ], [ %6220, %6209 ]
  %6223 = xor i1 %6222, true
  %6224 = xor i1 %6223, true
  %6225 = zext i1 %6224 to i32
  %6226 = sext i32 %6225 to i64
  %6227 = call i64 @llvm.expect.i64(i64 %6226, i64 1)
  %6228 = icmp ne i64 %6227, 0
  br i1 %6228, label %6231, label %6229

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

6230:                                             ; No predecessors!
  br label %6231

6231:                                             ; preds = %6230, %6221
  %6232 = phi i1 [ true, %6221 ], [ false, %6230 ]
  %6233 = zext i1 %6232 to i32
  %6234 = load ptr, ptr %5, align 8, !tbaa !5
  %6235 = getelementptr inbounds %struct.w2c_hermes, ptr %6234, i32 0, i32 7
  %6236 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6235, i32 0, i32 0
  %6237 = load ptr, ptr %6236, align 8, !tbaa !19
  %6238 = load i32, ptr %22, align 4, !tbaa !9
  %6239 = zext i32 %6238 to i64
  %6240 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6237, i64 %6239
  %6241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6240, i32 0, i32 1
  %6242 = load ptr, ptr %6241, align 8, !tbaa !20
  %6243 = load ptr, ptr %5, align 8, !tbaa !5
  %6244 = getelementptr inbounds %struct.w2c_hermes, ptr %6243, i32 0, i32 7
  %6245 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6244, i32 0, i32 0
  %6246 = load ptr, ptr %6245, align 8, !tbaa !19
  %6247 = load i32, ptr %22, align 4, !tbaa !9
  %6248 = zext i32 %6247 to i64
  %6249 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6246, i64 %6248
  %6250 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6249, i32 0, i32 2
  %6251 = load ptr, ptr %6250, align 8, !tbaa !23
  %6252 = load i32, ptr %19, align 4, !tbaa !9
  %6253 = load i32, ptr %20, align 4, !tbaa !9
  %6254 = load i32, ptr %21, align 4, !tbaa !9
  call void %6242(ptr noundef %6251, i32 noundef %6252, i32 noundef %6253, i32 noundef %6254)
  %6255 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6255, ptr %19, align 4, !tbaa !9
  %6256 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6256, ptr %20, align 4, !tbaa !9
  store i32 280, ptr %21, align 4, !tbaa !9
  %6257 = load i32, ptr %21, align 4, !tbaa !9
  %6258 = load i32, ptr %20, align 4, !tbaa !9
  %6259 = add i32 %6258, %6257
  store i32 %6259, ptr %20, align 4, !tbaa !9
  store i32 48749, ptr %21, align 4, !tbaa !9
  %6260 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6260, ptr %22, align 4, !tbaa !9
  %6261 = load ptr, ptr %5, align 8, !tbaa !5
  %6262 = getelementptr inbounds %struct.w2c_hermes, ptr %6261, i32 0, i32 6
  %6263 = load i32, ptr %22, align 4, !tbaa !9
  %6264 = zext i32 %6263 to i64
  %6265 = call i32 @i32_load(ptr noundef %6262, i64 noundef %6264)
  store i32 %6265, ptr %22, align 4, !tbaa !9
  %6266 = load ptr, ptr %5, align 8, !tbaa !5
  %6267 = getelementptr inbounds %struct.w2c_hermes, ptr %6266, i32 0, i32 6
  %6268 = load i32, ptr %22, align 4, !tbaa !9
  %6269 = zext i32 %6268 to i64
  %6270 = add i64 %6269, 36
  %6271 = call i32 @i32_load(ptr noundef %6267, i64 noundef %6270)
  store i32 %6271, ptr %22, align 4, !tbaa !9
  %6272 = load i32, ptr %22, align 4, !tbaa !9
  %6273 = load ptr, ptr %5, align 8, !tbaa !5
  %6274 = getelementptr inbounds %struct.w2c_hermes, ptr %6273, i32 0, i32 7
  %6275 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6274, i32 0, i32 2
  %6276 = load i32, ptr %6275, align 4, !tbaa !18
  %6277 = icmp ult i32 %6272, %6276
  br i1 %6277, label %6278, label %6301

6278:                                             ; preds = %6231
  %6279 = load ptr, ptr %5, align 8, !tbaa !5
  %6280 = getelementptr inbounds %struct.w2c_hermes, ptr %6279, i32 0, i32 7
  %6281 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6280, i32 0, i32 0
  %6282 = load ptr, ptr %6281, align 8, !tbaa !19
  %6283 = load i32, ptr %22, align 4, !tbaa !9
  %6284 = zext i32 %6283 to i64
  %6285 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6282, i64 %6284
  %6286 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6285, i32 0, i32 1
  %6287 = load ptr, ptr %6286, align 8, !tbaa !20
  %6288 = icmp ne ptr %6287, null
  br i1 %6288, label %6289, label %6301

6289:                                             ; preds = %6278
  %6290 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6291 = load ptr, ptr %5, align 8, !tbaa !5
  %6292 = getelementptr inbounds %struct.w2c_hermes, ptr %6291, i32 0, i32 7
  %6293 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6292, i32 0, i32 0
  %6294 = load ptr, ptr %6293, align 8, !tbaa !19
  %6295 = load i32, ptr %22, align 4, !tbaa !9
  %6296 = zext i32 %6295 to i64
  %6297 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6294, i64 %6296
  %6298 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6297, i32 0, i32 0
  %6299 = load ptr, ptr %6298, align 8, !tbaa !22
  %6300 = call zeroext i1 @func_types_eq(ptr noundef %6290, ptr noundef %6299)
  br label %6301

6301:                                             ; preds = %6289, %6278, %6231
  %6302 = phi i1 [ false, %6278 ], [ false, %6231 ], [ %6300, %6289 ]
  %6303 = xor i1 %6302, true
  %6304 = xor i1 %6303, true
  %6305 = zext i1 %6304 to i32
  %6306 = sext i32 %6305 to i64
  %6307 = call i64 @llvm.expect.i64(i64 %6306, i64 1)
  %6308 = icmp ne i64 %6307, 0
  br i1 %6308, label %6311, label %6309

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

6310:                                             ; No predecessors!
  br label %6311

6311:                                             ; preds = %6310, %6301
  %6312 = phi i1 [ true, %6301 ], [ false, %6310 ]
  %6313 = zext i1 %6312 to i32
  %6314 = load ptr, ptr %5, align 8, !tbaa !5
  %6315 = getelementptr inbounds %struct.w2c_hermes, ptr %6314, i32 0, i32 7
  %6316 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6315, i32 0, i32 0
  %6317 = load ptr, ptr %6316, align 8, !tbaa !19
  %6318 = load i32, ptr %22, align 4, !tbaa !9
  %6319 = zext i32 %6318 to i64
  %6320 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6317, i64 %6319
  %6321 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6320, i32 0, i32 1
  %6322 = load ptr, ptr %6321, align 8, !tbaa !20
  %6323 = load ptr, ptr %5, align 8, !tbaa !5
  %6324 = getelementptr inbounds %struct.w2c_hermes, ptr %6323, i32 0, i32 7
  %6325 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6324, i32 0, i32 0
  %6326 = load ptr, ptr %6325, align 8, !tbaa !19
  %6327 = load i32, ptr %22, align 4, !tbaa !9
  %6328 = zext i32 %6327 to i64
  %6329 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6326, i64 %6328
  %6330 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6329, i32 0, i32 2
  %6331 = load ptr, ptr %6330, align 8, !tbaa !23
  %6332 = load i32, ptr %19, align 4, !tbaa !9
  %6333 = load i32, ptr %20, align 4, !tbaa !9
  %6334 = load i32, ptr %21, align 4, !tbaa !9
  call void %6322(ptr noundef %6331, i32 noundef %6332, i32 noundef %6333, i32 noundef %6334)
  %6335 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6335, ptr %19, align 4, !tbaa !9
  %6336 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6336, ptr %20, align 4, !tbaa !9
  store i32 288, ptr %21, align 4, !tbaa !9
  %6337 = load i32, ptr %21, align 4, !tbaa !9
  %6338 = load i32, ptr %20, align 4, !tbaa !9
  %6339 = add i32 %6338, %6337
  store i32 %6339, ptr %20, align 4, !tbaa !9
  store i32 47865, ptr %21, align 4, !tbaa !9
  %6340 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6340, ptr %22, align 4, !tbaa !9
  %6341 = load ptr, ptr %5, align 8, !tbaa !5
  %6342 = getelementptr inbounds %struct.w2c_hermes, ptr %6341, i32 0, i32 6
  %6343 = load i32, ptr %22, align 4, !tbaa !9
  %6344 = zext i32 %6343 to i64
  %6345 = call i32 @i32_load(ptr noundef %6342, i64 noundef %6344)
  store i32 %6345, ptr %22, align 4, !tbaa !9
  %6346 = load ptr, ptr %5, align 8, !tbaa !5
  %6347 = getelementptr inbounds %struct.w2c_hermes, ptr %6346, i32 0, i32 6
  %6348 = load i32, ptr %22, align 4, !tbaa !9
  %6349 = zext i32 %6348 to i64
  %6350 = add i64 %6349, 36
  %6351 = call i32 @i32_load(ptr noundef %6347, i64 noundef %6350)
  store i32 %6351, ptr %22, align 4, !tbaa !9
  %6352 = load i32, ptr %22, align 4, !tbaa !9
  %6353 = load ptr, ptr %5, align 8, !tbaa !5
  %6354 = getelementptr inbounds %struct.w2c_hermes, ptr %6353, i32 0, i32 7
  %6355 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6354, i32 0, i32 2
  %6356 = load i32, ptr %6355, align 4, !tbaa !18
  %6357 = icmp ult i32 %6352, %6356
  br i1 %6357, label %6358, label %6381

6358:                                             ; preds = %6311
  %6359 = load ptr, ptr %5, align 8, !tbaa !5
  %6360 = getelementptr inbounds %struct.w2c_hermes, ptr %6359, i32 0, i32 7
  %6361 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6360, i32 0, i32 0
  %6362 = load ptr, ptr %6361, align 8, !tbaa !19
  %6363 = load i32, ptr %22, align 4, !tbaa !9
  %6364 = zext i32 %6363 to i64
  %6365 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6362, i64 %6364
  %6366 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6365, i32 0, i32 1
  %6367 = load ptr, ptr %6366, align 8, !tbaa !20
  %6368 = icmp ne ptr %6367, null
  br i1 %6368, label %6369, label %6381

6369:                                             ; preds = %6358
  %6370 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6371 = load ptr, ptr %5, align 8, !tbaa !5
  %6372 = getelementptr inbounds %struct.w2c_hermes, ptr %6371, i32 0, i32 7
  %6373 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6372, i32 0, i32 0
  %6374 = load ptr, ptr %6373, align 8, !tbaa !19
  %6375 = load i32, ptr %22, align 4, !tbaa !9
  %6376 = zext i32 %6375 to i64
  %6377 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6374, i64 %6376
  %6378 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6377, i32 0, i32 0
  %6379 = load ptr, ptr %6378, align 8, !tbaa !22
  %6380 = call zeroext i1 @func_types_eq(ptr noundef %6370, ptr noundef %6379)
  br label %6381

6381:                                             ; preds = %6369, %6358, %6311
  %6382 = phi i1 [ false, %6358 ], [ false, %6311 ], [ %6380, %6369 ]
  %6383 = xor i1 %6382, true
  %6384 = xor i1 %6383, true
  %6385 = zext i1 %6384 to i32
  %6386 = sext i32 %6385 to i64
  %6387 = call i64 @llvm.expect.i64(i64 %6386, i64 1)
  %6388 = icmp ne i64 %6387, 0
  br i1 %6388, label %6391, label %6389

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

6390:                                             ; No predecessors!
  br label %6391

6391:                                             ; preds = %6390, %6381
  %6392 = phi i1 [ true, %6381 ], [ false, %6390 ]
  %6393 = zext i1 %6392 to i32
  %6394 = load ptr, ptr %5, align 8, !tbaa !5
  %6395 = getelementptr inbounds %struct.w2c_hermes, ptr %6394, i32 0, i32 7
  %6396 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6395, i32 0, i32 0
  %6397 = load ptr, ptr %6396, align 8, !tbaa !19
  %6398 = load i32, ptr %22, align 4, !tbaa !9
  %6399 = zext i32 %6398 to i64
  %6400 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6397, i64 %6399
  %6401 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6400, i32 0, i32 1
  %6402 = load ptr, ptr %6401, align 8, !tbaa !20
  %6403 = load ptr, ptr %5, align 8, !tbaa !5
  %6404 = getelementptr inbounds %struct.w2c_hermes, ptr %6403, i32 0, i32 7
  %6405 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6404, i32 0, i32 0
  %6406 = load ptr, ptr %6405, align 8, !tbaa !19
  %6407 = load i32, ptr %22, align 4, !tbaa !9
  %6408 = zext i32 %6407 to i64
  %6409 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6406, i64 %6408
  %6410 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6409, i32 0, i32 2
  %6411 = load ptr, ptr %6410, align 8, !tbaa !23
  %6412 = load i32, ptr %19, align 4, !tbaa !9
  %6413 = load i32, ptr %20, align 4, !tbaa !9
  %6414 = load i32, ptr %21, align 4, !tbaa !9
  call void %6402(ptr noundef %6411, i32 noundef %6412, i32 noundef %6413, i32 noundef %6414)
  %6415 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6415, ptr %19, align 4, !tbaa !9
  %6416 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6416, ptr %20, align 4, !tbaa !9
  store i32 296, ptr %21, align 4, !tbaa !9
  %6417 = load i32, ptr %21, align 4, !tbaa !9
  %6418 = load i32, ptr %20, align 4, !tbaa !9
  %6419 = add i32 %6418, %6417
  store i32 %6419, ptr %20, align 4, !tbaa !9
  store i32 36267, ptr %21, align 4, !tbaa !9
  %6420 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6420, ptr %22, align 4, !tbaa !9
  %6421 = load ptr, ptr %5, align 8, !tbaa !5
  %6422 = getelementptr inbounds %struct.w2c_hermes, ptr %6421, i32 0, i32 6
  %6423 = load i32, ptr %22, align 4, !tbaa !9
  %6424 = zext i32 %6423 to i64
  %6425 = call i32 @i32_load(ptr noundef %6422, i64 noundef %6424)
  store i32 %6425, ptr %22, align 4, !tbaa !9
  %6426 = load ptr, ptr %5, align 8, !tbaa !5
  %6427 = getelementptr inbounds %struct.w2c_hermes, ptr %6426, i32 0, i32 6
  %6428 = load i32, ptr %22, align 4, !tbaa !9
  %6429 = zext i32 %6428 to i64
  %6430 = add i64 %6429, 36
  %6431 = call i32 @i32_load(ptr noundef %6427, i64 noundef %6430)
  store i32 %6431, ptr %22, align 4, !tbaa !9
  %6432 = load i32, ptr %22, align 4, !tbaa !9
  %6433 = load ptr, ptr %5, align 8, !tbaa !5
  %6434 = getelementptr inbounds %struct.w2c_hermes, ptr %6433, i32 0, i32 7
  %6435 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6434, i32 0, i32 2
  %6436 = load i32, ptr %6435, align 4, !tbaa !18
  %6437 = icmp ult i32 %6432, %6436
  br i1 %6437, label %6438, label %6461

6438:                                             ; preds = %6391
  %6439 = load ptr, ptr %5, align 8, !tbaa !5
  %6440 = getelementptr inbounds %struct.w2c_hermes, ptr %6439, i32 0, i32 7
  %6441 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6440, i32 0, i32 0
  %6442 = load ptr, ptr %6441, align 8, !tbaa !19
  %6443 = load i32, ptr %22, align 4, !tbaa !9
  %6444 = zext i32 %6443 to i64
  %6445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6442, i64 %6444
  %6446 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6445, i32 0, i32 1
  %6447 = load ptr, ptr %6446, align 8, !tbaa !20
  %6448 = icmp ne ptr %6447, null
  br i1 %6448, label %6449, label %6461

6449:                                             ; preds = %6438
  %6450 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6451 = load ptr, ptr %5, align 8, !tbaa !5
  %6452 = getelementptr inbounds %struct.w2c_hermes, ptr %6451, i32 0, i32 7
  %6453 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6452, i32 0, i32 0
  %6454 = load ptr, ptr %6453, align 8, !tbaa !19
  %6455 = load i32, ptr %22, align 4, !tbaa !9
  %6456 = zext i32 %6455 to i64
  %6457 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6454, i64 %6456
  %6458 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6457, i32 0, i32 0
  %6459 = load ptr, ptr %6458, align 8, !tbaa !22
  %6460 = call zeroext i1 @func_types_eq(ptr noundef %6450, ptr noundef %6459)
  br label %6461

6461:                                             ; preds = %6449, %6438, %6391
  %6462 = phi i1 [ false, %6438 ], [ false, %6391 ], [ %6460, %6449 ]
  %6463 = xor i1 %6462, true
  %6464 = xor i1 %6463, true
  %6465 = zext i1 %6464 to i32
  %6466 = sext i32 %6465 to i64
  %6467 = call i64 @llvm.expect.i64(i64 %6466, i64 1)
  %6468 = icmp ne i64 %6467, 0
  br i1 %6468, label %6471, label %6469

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

6470:                                             ; No predecessors!
  br label %6471

6471:                                             ; preds = %6470, %6461
  %6472 = phi i1 [ true, %6461 ], [ false, %6470 ]
  %6473 = zext i1 %6472 to i32
  %6474 = load ptr, ptr %5, align 8, !tbaa !5
  %6475 = getelementptr inbounds %struct.w2c_hermes, ptr %6474, i32 0, i32 7
  %6476 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6475, i32 0, i32 0
  %6477 = load ptr, ptr %6476, align 8, !tbaa !19
  %6478 = load i32, ptr %22, align 4, !tbaa !9
  %6479 = zext i32 %6478 to i64
  %6480 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6477, i64 %6479
  %6481 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6480, i32 0, i32 1
  %6482 = load ptr, ptr %6481, align 8, !tbaa !20
  %6483 = load ptr, ptr %5, align 8, !tbaa !5
  %6484 = getelementptr inbounds %struct.w2c_hermes, ptr %6483, i32 0, i32 7
  %6485 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6484, i32 0, i32 0
  %6486 = load ptr, ptr %6485, align 8, !tbaa !19
  %6487 = load i32, ptr %22, align 4, !tbaa !9
  %6488 = zext i32 %6487 to i64
  %6489 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6486, i64 %6488
  %6490 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6489, i32 0, i32 2
  %6491 = load ptr, ptr %6490, align 8, !tbaa !23
  %6492 = load i32, ptr %19, align 4, !tbaa !9
  %6493 = load i32, ptr %20, align 4, !tbaa !9
  %6494 = load i32, ptr %21, align 4, !tbaa !9
  call void %6482(ptr noundef %6491, i32 noundef %6492, i32 noundef %6493, i32 noundef %6494)
  %6495 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6495, ptr %19, align 4, !tbaa !9
  %6496 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6496, ptr %20, align 4, !tbaa !9
  store i32 304, ptr %21, align 4, !tbaa !9
  %6497 = load i32, ptr %21, align 4, !tbaa !9
  %6498 = load i32, ptr %20, align 4, !tbaa !9
  %6499 = add i32 %6498, %6497
  store i32 %6499, ptr %20, align 4, !tbaa !9
  store i32 47905, ptr %21, align 4, !tbaa !9
  %6500 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6500, ptr %22, align 4, !tbaa !9
  %6501 = load ptr, ptr %5, align 8, !tbaa !5
  %6502 = getelementptr inbounds %struct.w2c_hermes, ptr %6501, i32 0, i32 6
  %6503 = load i32, ptr %22, align 4, !tbaa !9
  %6504 = zext i32 %6503 to i64
  %6505 = call i32 @i32_load(ptr noundef %6502, i64 noundef %6504)
  store i32 %6505, ptr %22, align 4, !tbaa !9
  %6506 = load ptr, ptr %5, align 8, !tbaa !5
  %6507 = getelementptr inbounds %struct.w2c_hermes, ptr %6506, i32 0, i32 6
  %6508 = load i32, ptr %22, align 4, !tbaa !9
  %6509 = zext i32 %6508 to i64
  %6510 = add i64 %6509, 36
  %6511 = call i32 @i32_load(ptr noundef %6507, i64 noundef %6510)
  store i32 %6511, ptr %22, align 4, !tbaa !9
  %6512 = load i32, ptr %22, align 4, !tbaa !9
  %6513 = load ptr, ptr %5, align 8, !tbaa !5
  %6514 = getelementptr inbounds %struct.w2c_hermes, ptr %6513, i32 0, i32 7
  %6515 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6514, i32 0, i32 2
  %6516 = load i32, ptr %6515, align 4, !tbaa !18
  %6517 = icmp ult i32 %6512, %6516
  br i1 %6517, label %6518, label %6541

6518:                                             ; preds = %6471
  %6519 = load ptr, ptr %5, align 8, !tbaa !5
  %6520 = getelementptr inbounds %struct.w2c_hermes, ptr %6519, i32 0, i32 7
  %6521 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6520, i32 0, i32 0
  %6522 = load ptr, ptr %6521, align 8, !tbaa !19
  %6523 = load i32, ptr %22, align 4, !tbaa !9
  %6524 = zext i32 %6523 to i64
  %6525 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6522, i64 %6524
  %6526 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6525, i32 0, i32 1
  %6527 = load ptr, ptr %6526, align 8, !tbaa !20
  %6528 = icmp ne ptr %6527, null
  br i1 %6528, label %6529, label %6541

6529:                                             ; preds = %6518
  %6530 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6531 = load ptr, ptr %5, align 8, !tbaa !5
  %6532 = getelementptr inbounds %struct.w2c_hermes, ptr %6531, i32 0, i32 7
  %6533 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6532, i32 0, i32 0
  %6534 = load ptr, ptr %6533, align 8, !tbaa !19
  %6535 = load i32, ptr %22, align 4, !tbaa !9
  %6536 = zext i32 %6535 to i64
  %6537 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6534, i64 %6536
  %6538 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6537, i32 0, i32 0
  %6539 = load ptr, ptr %6538, align 8, !tbaa !22
  %6540 = call zeroext i1 @func_types_eq(ptr noundef %6530, ptr noundef %6539)
  br label %6541

6541:                                             ; preds = %6529, %6518, %6471
  %6542 = phi i1 [ false, %6518 ], [ false, %6471 ], [ %6540, %6529 ]
  %6543 = xor i1 %6542, true
  %6544 = xor i1 %6543, true
  %6545 = zext i1 %6544 to i32
  %6546 = sext i32 %6545 to i64
  %6547 = call i64 @llvm.expect.i64(i64 %6546, i64 1)
  %6548 = icmp ne i64 %6547, 0
  br i1 %6548, label %6551, label %6549

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

6550:                                             ; No predecessors!
  br label %6551

6551:                                             ; preds = %6550, %6541
  %6552 = phi i1 [ true, %6541 ], [ false, %6550 ]
  %6553 = zext i1 %6552 to i32
  %6554 = load ptr, ptr %5, align 8, !tbaa !5
  %6555 = getelementptr inbounds %struct.w2c_hermes, ptr %6554, i32 0, i32 7
  %6556 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6555, i32 0, i32 0
  %6557 = load ptr, ptr %6556, align 8, !tbaa !19
  %6558 = load i32, ptr %22, align 4, !tbaa !9
  %6559 = zext i32 %6558 to i64
  %6560 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6557, i64 %6559
  %6561 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6560, i32 0, i32 1
  %6562 = load ptr, ptr %6561, align 8, !tbaa !20
  %6563 = load ptr, ptr %5, align 8, !tbaa !5
  %6564 = getelementptr inbounds %struct.w2c_hermes, ptr %6563, i32 0, i32 7
  %6565 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6564, i32 0, i32 0
  %6566 = load ptr, ptr %6565, align 8, !tbaa !19
  %6567 = load i32, ptr %22, align 4, !tbaa !9
  %6568 = zext i32 %6567 to i64
  %6569 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6566, i64 %6568
  %6570 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6569, i32 0, i32 2
  %6571 = load ptr, ptr %6570, align 8, !tbaa !23
  %6572 = load i32, ptr %19, align 4, !tbaa !9
  %6573 = load i32, ptr %20, align 4, !tbaa !9
  %6574 = load i32, ptr %21, align 4, !tbaa !9
  call void %6562(ptr noundef %6571, i32 noundef %6572, i32 noundef %6573, i32 noundef %6574)
  %6575 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6575, ptr %19, align 4, !tbaa !9
  %6576 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6576, ptr %20, align 4, !tbaa !9
  store i32 312, ptr %21, align 4, !tbaa !9
  %6577 = load i32, ptr %21, align 4, !tbaa !9
  %6578 = load i32, ptr %20, align 4, !tbaa !9
  %6579 = add i32 %6578, %6577
  store i32 %6579, ptr %20, align 4, !tbaa !9
  store i32 36311, ptr %21, align 4, !tbaa !9
  %6580 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6580, ptr %22, align 4, !tbaa !9
  %6581 = load ptr, ptr %5, align 8, !tbaa !5
  %6582 = getelementptr inbounds %struct.w2c_hermes, ptr %6581, i32 0, i32 6
  %6583 = load i32, ptr %22, align 4, !tbaa !9
  %6584 = zext i32 %6583 to i64
  %6585 = call i32 @i32_load(ptr noundef %6582, i64 noundef %6584)
  store i32 %6585, ptr %22, align 4, !tbaa !9
  %6586 = load ptr, ptr %5, align 8, !tbaa !5
  %6587 = getelementptr inbounds %struct.w2c_hermes, ptr %6586, i32 0, i32 6
  %6588 = load i32, ptr %22, align 4, !tbaa !9
  %6589 = zext i32 %6588 to i64
  %6590 = add i64 %6589, 36
  %6591 = call i32 @i32_load(ptr noundef %6587, i64 noundef %6590)
  store i32 %6591, ptr %22, align 4, !tbaa !9
  %6592 = load i32, ptr %22, align 4, !tbaa !9
  %6593 = load ptr, ptr %5, align 8, !tbaa !5
  %6594 = getelementptr inbounds %struct.w2c_hermes, ptr %6593, i32 0, i32 7
  %6595 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6594, i32 0, i32 2
  %6596 = load i32, ptr %6595, align 4, !tbaa !18
  %6597 = icmp ult i32 %6592, %6596
  br i1 %6597, label %6598, label %6621

6598:                                             ; preds = %6551
  %6599 = load ptr, ptr %5, align 8, !tbaa !5
  %6600 = getelementptr inbounds %struct.w2c_hermes, ptr %6599, i32 0, i32 7
  %6601 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6600, i32 0, i32 0
  %6602 = load ptr, ptr %6601, align 8, !tbaa !19
  %6603 = load i32, ptr %22, align 4, !tbaa !9
  %6604 = zext i32 %6603 to i64
  %6605 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6602, i64 %6604
  %6606 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6605, i32 0, i32 1
  %6607 = load ptr, ptr %6606, align 8, !tbaa !20
  %6608 = icmp ne ptr %6607, null
  br i1 %6608, label %6609, label %6621

6609:                                             ; preds = %6598
  %6610 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6611 = load ptr, ptr %5, align 8, !tbaa !5
  %6612 = getelementptr inbounds %struct.w2c_hermes, ptr %6611, i32 0, i32 7
  %6613 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6612, i32 0, i32 0
  %6614 = load ptr, ptr %6613, align 8, !tbaa !19
  %6615 = load i32, ptr %22, align 4, !tbaa !9
  %6616 = zext i32 %6615 to i64
  %6617 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6614, i64 %6616
  %6618 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6617, i32 0, i32 0
  %6619 = load ptr, ptr %6618, align 8, !tbaa !22
  %6620 = call zeroext i1 @func_types_eq(ptr noundef %6610, ptr noundef %6619)
  br label %6621

6621:                                             ; preds = %6609, %6598, %6551
  %6622 = phi i1 [ false, %6598 ], [ false, %6551 ], [ %6620, %6609 ]
  %6623 = xor i1 %6622, true
  %6624 = xor i1 %6623, true
  %6625 = zext i1 %6624 to i32
  %6626 = sext i32 %6625 to i64
  %6627 = call i64 @llvm.expect.i64(i64 %6626, i64 1)
  %6628 = icmp ne i64 %6627, 0
  br i1 %6628, label %6631, label %6629

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

6630:                                             ; No predecessors!
  br label %6631

6631:                                             ; preds = %6630, %6621
  %6632 = phi i1 [ true, %6621 ], [ false, %6630 ]
  %6633 = zext i1 %6632 to i32
  %6634 = load ptr, ptr %5, align 8, !tbaa !5
  %6635 = getelementptr inbounds %struct.w2c_hermes, ptr %6634, i32 0, i32 7
  %6636 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6635, i32 0, i32 0
  %6637 = load ptr, ptr %6636, align 8, !tbaa !19
  %6638 = load i32, ptr %22, align 4, !tbaa !9
  %6639 = zext i32 %6638 to i64
  %6640 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6637, i64 %6639
  %6641 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6640, i32 0, i32 1
  %6642 = load ptr, ptr %6641, align 8, !tbaa !20
  %6643 = load ptr, ptr %5, align 8, !tbaa !5
  %6644 = getelementptr inbounds %struct.w2c_hermes, ptr %6643, i32 0, i32 7
  %6645 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6644, i32 0, i32 0
  %6646 = load ptr, ptr %6645, align 8, !tbaa !19
  %6647 = load i32, ptr %22, align 4, !tbaa !9
  %6648 = zext i32 %6647 to i64
  %6649 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6646, i64 %6648
  %6650 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6649, i32 0, i32 2
  %6651 = load ptr, ptr %6650, align 8, !tbaa !23
  %6652 = load i32, ptr %19, align 4, !tbaa !9
  %6653 = load i32, ptr %20, align 4, !tbaa !9
  %6654 = load i32, ptr %21, align 4, !tbaa !9
  call void %6642(ptr noundef %6651, i32 noundef %6652, i32 noundef %6653, i32 noundef %6654)
  %6655 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6655, ptr %19, align 4, !tbaa !9
  %6656 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6656, ptr %20, align 4, !tbaa !9
  store i32 320, ptr %21, align 4, !tbaa !9
  %6657 = load i32, ptr %21, align 4, !tbaa !9
  %6658 = load i32, ptr %20, align 4, !tbaa !9
  %6659 = add i32 %6658, %6657
  store i32 %6659, ptr %20, align 4, !tbaa !9
  store i32 48015, ptr %21, align 4, !tbaa !9
  %6660 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6660, ptr %22, align 4, !tbaa !9
  %6661 = load ptr, ptr %5, align 8, !tbaa !5
  %6662 = getelementptr inbounds %struct.w2c_hermes, ptr %6661, i32 0, i32 6
  %6663 = load i32, ptr %22, align 4, !tbaa !9
  %6664 = zext i32 %6663 to i64
  %6665 = call i32 @i32_load(ptr noundef %6662, i64 noundef %6664)
  store i32 %6665, ptr %22, align 4, !tbaa !9
  %6666 = load ptr, ptr %5, align 8, !tbaa !5
  %6667 = getelementptr inbounds %struct.w2c_hermes, ptr %6666, i32 0, i32 6
  %6668 = load i32, ptr %22, align 4, !tbaa !9
  %6669 = zext i32 %6668 to i64
  %6670 = add i64 %6669, 36
  %6671 = call i32 @i32_load(ptr noundef %6667, i64 noundef %6670)
  store i32 %6671, ptr %22, align 4, !tbaa !9
  %6672 = load i32, ptr %22, align 4, !tbaa !9
  %6673 = load ptr, ptr %5, align 8, !tbaa !5
  %6674 = getelementptr inbounds %struct.w2c_hermes, ptr %6673, i32 0, i32 7
  %6675 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6674, i32 0, i32 2
  %6676 = load i32, ptr %6675, align 4, !tbaa !18
  %6677 = icmp ult i32 %6672, %6676
  br i1 %6677, label %6678, label %6701

6678:                                             ; preds = %6631
  %6679 = load ptr, ptr %5, align 8, !tbaa !5
  %6680 = getelementptr inbounds %struct.w2c_hermes, ptr %6679, i32 0, i32 7
  %6681 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6680, i32 0, i32 0
  %6682 = load ptr, ptr %6681, align 8, !tbaa !19
  %6683 = load i32, ptr %22, align 4, !tbaa !9
  %6684 = zext i32 %6683 to i64
  %6685 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6682, i64 %6684
  %6686 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6685, i32 0, i32 1
  %6687 = load ptr, ptr %6686, align 8, !tbaa !20
  %6688 = icmp ne ptr %6687, null
  br i1 %6688, label %6689, label %6701

6689:                                             ; preds = %6678
  %6690 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6691 = load ptr, ptr %5, align 8, !tbaa !5
  %6692 = getelementptr inbounds %struct.w2c_hermes, ptr %6691, i32 0, i32 7
  %6693 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6692, i32 0, i32 0
  %6694 = load ptr, ptr %6693, align 8, !tbaa !19
  %6695 = load i32, ptr %22, align 4, !tbaa !9
  %6696 = zext i32 %6695 to i64
  %6697 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6694, i64 %6696
  %6698 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6697, i32 0, i32 0
  %6699 = load ptr, ptr %6698, align 8, !tbaa !22
  %6700 = call zeroext i1 @func_types_eq(ptr noundef %6690, ptr noundef %6699)
  br label %6701

6701:                                             ; preds = %6689, %6678, %6631
  %6702 = phi i1 [ false, %6678 ], [ false, %6631 ], [ %6700, %6689 ]
  %6703 = xor i1 %6702, true
  %6704 = xor i1 %6703, true
  %6705 = zext i1 %6704 to i32
  %6706 = sext i32 %6705 to i64
  %6707 = call i64 @llvm.expect.i64(i64 %6706, i64 1)
  %6708 = icmp ne i64 %6707, 0
  br i1 %6708, label %6711, label %6709

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

6710:                                             ; No predecessors!
  br label %6711

6711:                                             ; preds = %6710, %6701
  %6712 = phi i1 [ true, %6701 ], [ false, %6710 ]
  %6713 = zext i1 %6712 to i32
  %6714 = load ptr, ptr %5, align 8, !tbaa !5
  %6715 = getelementptr inbounds %struct.w2c_hermes, ptr %6714, i32 0, i32 7
  %6716 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6715, i32 0, i32 0
  %6717 = load ptr, ptr %6716, align 8, !tbaa !19
  %6718 = load i32, ptr %22, align 4, !tbaa !9
  %6719 = zext i32 %6718 to i64
  %6720 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6717, i64 %6719
  %6721 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6720, i32 0, i32 1
  %6722 = load ptr, ptr %6721, align 8, !tbaa !20
  %6723 = load ptr, ptr %5, align 8, !tbaa !5
  %6724 = getelementptr inbounds %struct.w2c_hermes, ptr %6723, i32 0, i32 7
  %6725 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6724, i32 0, i32 0
  %6726 = load ptr, ptr %6725, align 8, !tbaa !19
  %6727 = load i32, ptr %22, align 4, !tbaa !9
  %6728 = zext i32 %6727 to i64
  %6729 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6726, i64 %6728
  %6730 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6729, i32 0, i32 2
  %6731 = load ptr, ptr %6730, align 8, !tbaa !23
  %6732 = load i32, ptr %19, align 4, !tbaa !9
  %6733 = load i32, ptr %20, align 4, !tbaa !9
  %6734 = load i32, ptr %21, align 4, !tbaa !9
  call void %6722(ptr noundef %6731, i32 noundef %6732, i32 noundef %6733, i32 noundef %6734)
  %6735 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6735, ptr %19, align 4, !tbaa !9
  %6736 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6736, ptr %20, align 4, !tbaa !9
  store i32 328, ptr %21, align 4, !tbaa !9
  %6737 = load i32, ptr %21, align 4, !tbaa !9
  %6738 = load i32, ptr %20, align 4, !tbaa !9
  %6739 = add i32 %6738, %6737
  store i32 %6739, ptr %20, align 4, !tbaa !9
  store i32 36431, ptr %21, align 4, !tbaa !9
  %6740 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6740, ptr %22, align 4, !tbaa !9
  %6741 = load ptr, ptr %5, align 8, !tbaa !5
  %6742 = getelementptr inbounds %struct.w2c_hermes, ptr %6741, i32 0, i32 6
  %6743 = load i32, ptr %22, align 4, !tbaa !9
  %6744 = zext i32 %6743 to i64
  %6745 = call i32 @i32_load(ptr noundef %6742, i64 noundef %6744)
  store i32 %6745, ptr %22, align 4, !tbaa !9
  %6746 = load ptr, ptr %5, align 8, !tbaa !5
  %6747 = getelementptr inbounds %struct.w2c_hermes, ptr %6746, i32 0, i32 6
  %6748 = load i32, ptr %22, align 4, !tbaa !9
  %6749 = zext i32 %6748 to i64
  %6750 = add i64 %6749, 36
  %6751 = call i32 @i32_load(ptr noundef %6747, i64 noundef %6750)
  store i32 %6751, ptr %22, align 4, !tbaa !9
  %6752 = load i32, ptr %22, align 4, !tbaa !9
  %6753 = load ptr, ptr %5, align 8, !tbaa !5
  %6754 = getelementptr inbounds %struct.w2c_hermes, ptr %6753, i32 0, i32 7
  %6755 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6754, i32 0, i32 2
  %6756 = load i32, ptr %6755, align 4, !tbaa !18
  %6757 = icmp ult i32 %6752, %6756
  br i1 %6757, label %6758, label %6781

6758:                                             ; preds = %6711
  %6759 = load ptr, ptr %5, align 8, !tbaa !5
  %6760 = getelementptr inbounds %struct.w2c_hermes, ptr %6759, i32 0, i32 7
  %6761 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6760, i32 0, i32 0
  %6762 = load ptr, ptr %6761, align 8, !tbaa !19
  %6763 = load i32, ptr %22, align 4, !tbaa !9
  %6764 = zext i32 %6763 to i64
  %6765 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6762, i64 %6764
  %6766 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6765, i32 0, i32 1
  %6767 = load ptr, ptr %6766, align 8, !tbaa !20
  %6768 = icmp ne ptr %6767, null
  br i1 %6768, label %6769, label %6781

6769:                                             ; preds = %6758
  %6770 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6771 = load ptr, ptr %5, align 8, !tbaa !5
  %6772 = getelementptr inbounds %struct.w2c_hermes, ptr %6771, i32 0, i32 7
  %6773 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6772, i32 0, i32 0
  %6774 = load ptr, ptr %6773, align 8, !tbaa !19
  %6775 = load i32, ptr %22, align 4, !tbaa !9
  %6776 = zext i32 %6775 to i64
  %6777 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6774, i64 %6776
  %6778 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6777, i32 0, i32 0
  %6779 = load ptr, ptr %6778, align 8, !tbaa !22
  %6780 = call zeroext i1 @func_types_eq(ptr noundef %6770, ptr noundef %6779)
  br label %6781

6781:                                             ; preds = %6769, %6758, %6711
  %6782 = phi i1 [ false, %6758 ], [ false, %6711 ], [ %6780, %6769 ]
  %6783 = xor i1 %6782, true
  %6784 = xor i1 %6783, true
  %6785 = zext i1 %6784 to i32
  %6786 = sext i32 %6785 to i64
  %6787 = call i64 @llvm.expect.i64(i64 %6786, i64 1)
  %6788 = icmp ne i64 %6787, 0
  br i1 %6788, label %6791, label %6789

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

6790:                                             ; No predecessors!
  br label %6791

6791:                                             ; preds = %6790, %6781
  %6792 = phi i1 [ true, %6781 ], [ false, %6790 ]
  %6793 = zext i1 %6792 to i32
  %6794 = load ptr, ptr %5, align 8, !tbaa !5
  %6795 = getelementptr inbounds %struct.w2c_hermes, ptr %6794, i32 0, i32 7
  %6796 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6795, i32 0, i32 0
  %6797 = load ptr, ptr %6796, align 8, !tbaa !19
  %6798 = load i32, ptr %22, align 4, !tbaa !9
  %6799 = zext i32 %6798 to i64
  %6800 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6797, i64 %6799
  %6801 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6800, i32 0, i32 1
  %6802 = load ptr, ptr %6801, align 8, !tbaa !20
  %6803 = load ptr, ptr %5, align 8, !tbaa !5
  %6804 = getelementptr inbounds %struct.w2c_hermes, ptr %6803, i32 0, i32 7
  %6805 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6804, i32 0, i32 0
  %6806 = load ptr, ptr %6805, align 8, !tbaa !19
  %6807 = load i32, ptr %22, align 4, !tbaa !9
  %6808 = zext i32 %6807 to i64
  %6809 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6806, i64 %6808
  %6810 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6809, i32 0, i32 2
  %6811 = load ptr, ptr %6810, align 8, !tbaa !23
  %6812 = load i32, ptr %19, align 4, !tbaa !9
  %6813 = load i32, ptr %20, align 4, !tbaa !9
  %6814 = load i32, ptr %21, align 4, !tbaa !9
  call void %6802(ptr noundef %6811, i32 noundef %6812, i32 noundef %6813, i32 noundef %6814)
  %6815 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6815, ptr %19, align 4, !tbaa !9
  %6816 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6816, ptr %20, align 4, !tbaa !9
  store i32 336, ptr %21, align 4, !tbaa !9
  %6817 = load i32, ptr %21, align 4, !tbaa !9
  %6818 = load i32, ptr %20, align 4, !tbaa !9
  %6819 = add i32 %6818, %6817
  store i32 %6819, ptr %20, align 4, !tbaa !9
  store i32 47845, ptr %21, align 4, !tbaa !9
  %6820 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6820, ptr %22, align 4, !tbaa !9
  %6821 = load ptr, ptr %5, align 8, !tbaa !5
  %6822 = getelementptr inbounds %struct.w2c_hermes, ptr %6821, i32 0, i32 6
  %6823 = load i32, ptr %22, align 4, !tbaa !9
  %6824 = zext i32 %6823 to i64
  %6825 = call i32 @i32_load(ptr noundef %6822, i64 noundef %6824)
  store i32 %6825, ptr %22, align 4, !tbaa !9
  %6826 = load ptr, ptr %5, align 8, !tbaa !5
  %6827 = getelementptr inbounds %struct.w2c_hermes, ptr %6826, i32 0, i32 6
  %6828 = load i32, ptr %22, align 4, !tbaa !9
  %6829 = zext i32 %6828 to i64
  %6830 = add i64 %6829, 36
  %6831 = call i32 @i32_load(ptr noundef %6827, i64 noundef %6830)
  store i32 %6831, ptr %22, align 4, !tbaa !9
  %6832 = load i32, ptr %22, align 4, !tbaa !9
  %6833 = load ptr, ptr %5, align 8, !tbaa !5
  %6834 = getelementptr inbounds %struct.w2c_hermes, ptr %6833, i32 0, i32 7
  %6835 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6834, i32 0, i32 2
  %6836 = load i32, ptr %6835, align 4, !tbaa !18
  %6837 = icmp ult i32 %6832, %6836
  br i1 %6837, label %6838, label %6861

6838:                                             ; preds = %6791
  %6839 = load ptr, ptr %5, align 8, !tbaa !5
  %6840 = getelementptr inbounds %struct.w2c_hermes, ptr %6839, i32 0, i32 7
  %6841 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6840, i32 0, i32 0
  %6842 = load ptr, ptr %6841, align 8, !tbaa !19
  %6843 = load i32, ptr %22, align 4, !tbaa !9
  %6844 = zext i32 %6843 to i64
  %6845 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6842, i64 %6844
  %6846 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6845, i32 0, i32 1
  %6847 = load ptr, ptr %6846, align 8, !tbaa !20
  %6848 = icmp ne ptr %6847, null
  br i1 %6848, label %6849, label %6861

6849:                                             ; preds = %6838
  %6850 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6851 = load ptr, ptr %5, align 8, !tbaa !5
  %6852 = getelementptr inbounds %struct.w2c_hermes, ptr %6851, i32 0, i32 7
  %6853 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6852, i32 0, i32 0
  %6854 = load ptr, ptr %6853, align 8, !tbaa !19
  %6855 = load i32, ptr %22, align 4, !tbaa !9
  %6856 = zext i32 %6855 to i64
  %6857 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6854, i64 %6856
  %6858 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6857, i32 0, i32 0
  %6859 = load ptr, ptr %6858, align 8, !tbaa !22
  %6860 = call zeroext i1 @func_types_eq(ptr noundef %6850, ptr noundef %6859)
  br label %6861

6861:                                             ; preds = %6849, %6838, %6791
  %6862 = phi i1 [ false, %6838 ], [ false, %6791 ], [ %6860, %6849 ]
  %6863 = xor i1 %6862, true
  %6864 = xor i1 %6863, true
  %6865 = zext i1 %6864 to i32
  %6866 = sext i32 %6865 to i64
  %6867 = call i64 @llvm.expect.i64(i64 %6866, i64 1)
  %6868 = icmp ne i64 %6867, 0
  br i1 %6868, label %6871, label %6869

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

6870:                                             ; No predecessors!
  br label %6871

6871:                                             ; preds = %6870, %6861
  %6872 = phi i1 [ true, %6861 ], [ false, %6870 ]
  %6873 = zext i1 %6872 to i32
  %6874 = load ptr, ptr %5, align 8, !tbaa !5
  %6875 = getelementptr inbounds %struct.w2c_hermes, ptr %6874, i32 0, i32 7
  %6876 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6875, i32 0, i32 0
  %6877 = load ptr, ptr %6876, align 8, !tbaa !19
  %6878 = load i32, ptr %22, align 4, !tbaa !9
  %6879 = zext i32 %6878 to i64
  %6880 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6877, i64 %6879
  %6881 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6880, i32 0, i32 1
  %6882 = load ptr, ptr %6881, align 8, !tbaa !20
  %6883 = load ptr, ptr %5, align 8, !tbaa !5
  %6884 = getelementptr inbounds %struct.w2c_hermes, ptr %6883, i32 0, i32 7
  %6885 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6884, i32 0, i32 0
  %6886 = load ptr, ptr %6885, align 8, !tbaa !19
  %6887 = load i32, ptr %22, align 4, !tbaa !9
  %6888 = zext i32 %6887 to i64
  %6889 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6886, i64 %6888
  %6890 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6889, i32 0, i32 2
  %6891 = load ptr, ptr %6890, align 8, !tbaa !23
  %6892 = load i32, ptr %19, align 4, !tbaa !9
  %6893 = load i32, ptr %20, align 4, !tbaa !9
  %6894 = load i32, ptr %21, align 4, !tbaa !9
  call void %6882(ptr noundef %6891, i32 noundef %6892, i32 noundef %6893, i32 noundef %6894)
  %6895 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6895, ptr %19, align 4, !tbaa !9
  %6896 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6896, ptr %20, align 4, !tbaa !9
  store i32 344, ptr %21, align 4, !tbaa !9
  %6897 = load i32, ptr %21, align 4, !tbaa !9
  %6898 = load i32, ptr %20, align 4, !tbaa !9
  %6899 = add i32 %6898, %6897
  store i32 %6899, ptr %20, align 4, !tbaa !9
  store i32 36245, ptr %21, align 4, !tbaa !9
  %6900 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6900, ptr %22, align 4, !tbaa !9
  %6901 = load ptr, ptr %5, align 8, !tbaa !5
  %6902 = getelementptr inbounds %struct.w2c_hermes, ptr %6901, i32 0, i32 6
  %6903 = load i32, ptr %22, align 4, !tbaa !9
  %6904 = zext i32 %6903 to i64
  %6905 = call i32 @i32_load(ptr noundef %6902, i64 noundef %6904)
  store i32 %6905, ptr %22, align 4, !tbaa !9
  %6906 = load ptr, ptr %5, align 8, !tbaa !5
  %6907 = getelementptr inbounds %struct.w2c_hermes, ptr %6906, i32 0, i32 6
  %6908 = load i32, ptr %22, align 4, !tbaa !9
  %6909 = zext i32 %6908 to i64
  %6910 = add i64 %6909, 36
  %6911 = call i32 @i32_load(ptr noundef %6907, i64 noundef %6910)
  store i32 %6911, ptr %22, align 4, !tbaa !9
  %6912 = load i32, ptr %22, align 4, !tbaa !9
  %6913 = load ptr, ptr %5, align 8, !tbaa !5
  %6914 = getelementptr inbounds %struct.w2c_hermes, ptr %6913, i32 0, i32 7
  %6915 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6914, i32 0, i32 2
  %6916 = load i32, ptr %6915, align 4, !tbaa !18
  %6917 = icmp ult i32 %6912, %6916
  br i1 %6917, label %6918, label %6941

6918:                                             ; preds = %6871
  %6919 = load ptr, ptr %5, align 8, !tbaa !5
  %6920 = getelementptr inbounds %struct.w2c_hermes, ptr %6919, i32 0, i32 7
  %6921 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6920, i32 0, i32 0
  %6922 = load ptr, ptr %6921, align 8, !tbaa !19
  %6923 = load i32, ptr %22, align 4, !tbaa !9
  %6924 = zext i32 %6923 to i64
  %6925 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6922, i64 %6924
  %6926 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6925, i32 0, i32 1
  %6927 = load ptr, ptr %6926, align 8, !tbaa !20
  %6928 = icmp ne ptr %6927, null
  br i1 %6928, label %6929, label %6941

6929:                                             ; preds = %6918
  %6930 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %6931 = load ptr, ptr %5, align 8, !tbaa !5
  %6932 = getelementptr inbounds %struct.w2c_hermes, ptr %6931, i32 0, i32 7
  %6933 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6932, i32 0, i32 0
  %6934 = load ptr, ptr %6933, align 8, !tbaa !19
  %6935 = load i32, ptr %22, align 4, !tbaa !9
  %6936 = zext i32 %6935 to i64
  %6937 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6934, i64 %6936
  %6938 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6937, i32 0, i32 0
  %6939 = load ptr, ptr %6938, align 8, !tbaa !22
  %6940 = call zeroext i1 @func_types_eq(ptr noundef %6930, ptr noundef %6939)
  br label %6941

6941:                                             ; preds = %6929, %6918, %6871
  %6942 = phi i1 [ false, %6918 ], [ false, %6871 ], [ %6940, %6929 ]
  %6943 = xor i1 %6942, true
  %6944 = xor i1 %6943, true
  %6945 = zext i1 %6944 to i32
  %6946 = sext i32 %6945 to i64
  %6947 = call i64 @llvm.expect.i64(i64 %6946, i64 1)
  %6948 = icmp ne i64 %6947, 0
  br i1 %6948, label %6951, label %6949

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

6950:                                             ; No predecessors!
  br label %6951

6951:                                             ; preds = %6950, %6941
  %6952 = phi i1 [ true, %6941 ], [ false, %6950 ]
  %6953 = zext i1 %6952 to i32
  %6954 = load ptr, ptr %5, align 8, !tbaa !5
  %6955 = getelementptr inbounds %struct.w2c_hermes, ptr %6954, i32 0, i32 7
  %6956 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6955, i32 0, i32 0
  %6957 = load ptr, ptr %6956, align 8, !tbaa !19
  %6958 = load i32, ptr %22, align 4, !tbaa !9
  %6959 = zext i32 %6958 to i64
  %6960 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6957, i64 %6959
  %6961 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6960, i32 0, i32 1
  %6962 = load ptr, ptr %6961, align 8, !tbaa !20
  %6963 = load ptr, ptr %5, align 8, !tbaa !5
  %6964 = getelementptr inbounds %struct.w2c_hermes, ptr %6963, i32 0, i32 7
  %6965 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6964, i32 0, i32 0
  %6966 = load ptr, ptr %6965, align 8, !tbaa !19
  %6967 = load i32, ptr %22, align 4, !tbaa !9
  %6968 = zext i32 %6967 to i64
  %6969 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6966, i64 %6968
  %6970 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %6969, i32 0, i32 2
  %6971 = load ptr, ptr %6970, align 8, !tbaa !23
  %6972 = load i32, ptr %19, align 4, !tbaa !9
  %6973 = load i32, ptr %20, align 4, !tbaa !9
  %6974 = load i32, ptr %21, align 4, !tbaa !9
  call void %6962(ptr noundef %6971, i32 noundef %6972, i32 noundef %6973, i32 noundef %6974)
  %6975 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6975, ptr %19, align 4, !tbaa !9
  %6976 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %6976, ptr %20, align 4, !tbaa !9
  store i32 352, ptr %21, align 4, !tbaa !9
  %6977 = load i32, ptr %21, align 4, !tbaa !9
  %6978 = load i32, ptr %20, align 4, !tbaa !9
  %6979 = add i32 %6978, %6977
  store i32 %6979, ptr %20, align 4, !tbaa !9
  store i32 47818, ptr %21, align 4, !tbaa !9
  %6980 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %6980, ptr %22, align 4, !tbaa !9
  %6981 = load ptr, ptr %5, align 8, !tbaa !5
  %6982 = getelementptr inbounds %struct.w2c_hermes, ptr %6981, i32 0, i32 6
  %6983 = load i32, ptr %22, align 4, !tbaa !9
  %6984 = zext i32 %6983 to i64
  %6985 = call i32 @i32_load(ptr noundef %6982, i64 noundef %6984)
  store i32 %6985, ptr %22, align 4, !tbaa !9
  %6986 = load ptr, ptr %5, align 8, !tbaa !5
  %6987 = getelementptr inbounds %struct.w2c_hermes, ptr %6986, i32 0, i32 6
  %6988 = load i32, ptr %22, align 4, !tbaa !9
  %6989 = zext i32 %6988 to i64
  %6990 = add i64 %6989, 36
  %6991 = call i32 @i32_load(ptr noundef %6987, i64 noundef %6990)
  store i32 %6991, ptr %22, align 4, !tbaa !9
  %6992 = load i32, ptr %22, align 4, !tbaa !9
  %6993 = load ptr, ptr %5, align 8, !tbaa !5
  %6994 = getelementptr inbounds %struct.w2c_hermes, ptr %6993, i32 0, i32 7
  %6995 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %6994, i32 0, i32 2
  %6996 = load i32, ptr %6995, align 4, !tbaa !18
  %6997 = icmp ult i32 %6992, %6996
  br i1 %6997, label %6998, label %7021

6998:                                             ; preds = %6951
  %6999 = load ptr, ptr %5, align 8, !tbaa !5
  %7000 = getelementptr inbounds %struct.w2c_hermes, ptr %6999, i32 0, i32 7
  %7001 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7000, i32 0, i32 0
  %7002 = load ptr, ptr %7001, align 8, !tbaa !19
  %7003 = load i32, ptr %22, align 4, !tbaa !9
  %7004 = zext i32 %7003 to i64
  %7005 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7002, i64 %7004
  %7006 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7005, i32 0, i32 1
  %7007 = load ptr, ptr %7006, align 8, !tbaa !20
  %7008 = icmp ne ptr %7007, null
  br i1 %7008, label %7009, label %7021

7009:                                             ; preds = %6998
  %7010 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7011 = load ptr, ptr %5, align 8, !tbaa !5
  %7012 = getelementptr inbounds %struct.w2c_hermes, ptr %7011, i32 0, i32 7
  %7013 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7012, i32 0, i32 0
  %7014 = load ptr, ptr %7013, align 8, !tbaa !19
  %7015 = load i32, ptr %22, align 4, !tbaa !9
  %7016 = zext i32 %7015 to i64
  %7017 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7014, i64 %7016
  %7018 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7017, i32 0, i32 0
  %7019 = load ptr, ptr %7018, align 8, !tbaa !22
  %7020 = call zeroext i1 @func_types_eq(ptr noundef %7010, ptr noundef %7019)
  br label %7021

7021:                                             ; preds = %7009, %6998, %6951
  %7022 = phi i1 [ false, %6998 ], [ false, %6951 ], [ %7020, %7009 ]
  %7023 = xor i1 %7022, true
  %7024 = xor i1 %7023, true
  %7025 = zext i1 %7024 to i32
  %7026 = sext i32 %7025 to i64
  %7027 = call i64 @llvm.expect.i64(i64 %7026, i64 1)
  %7028 = icmp ne i64 %7027, 0
  br i1 %7028, label %7031, label %7029

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

7030:                                             ; No predecessors!
  br label %7031

7031:                                             ; preds = %7030, %7021
  %7032 = phi i1 [ true, %7021 ], [ false, %7030 ]
  %7033 = zext i1 %7032 to i32
  %7034 = load ptr, ptr %5, align 8, !tbaa !5
  %7035 = getelementptr inbounds %struct.w2c_hermes, ptr %7034, i32 0, i32 7
  %7036 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7035, i32 0, i32 0
  %7037 = load ptr, ptr %7036, align 8, !tbaa !19
  %7038 = load i32, ptr %22, align 4, !tbaa !9
  %7039 = zext i32 %7038 to i64
  %7040 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7037, i64 %7039
  %7041 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7040, i32 0, i32 1
  %7042 = load ptr, ptr %7041, align 8, !tbaa !20
  %7043 = load ptr, ptr %5, align 8, !tbaa !5
  %7044 = getelementptr inbounds %struct.w2c_hermes, ptr %7043, i32 0, i32 7
  %7045 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7044, i32 0, i32 0
  %7046 = load ptr, ptr %7045, align 8, !tbaa !19
  %7047 = load i32, ptr %22, align 4, !tbaa !9
  %7048 = zext i32 %7047 to i64
  %7049 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7046, i64 %7048
  %7050 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7049, i32 0, i32 2
  %7051 = load ptr, ptr %7050, align 8, !tbaa !23
  %7052 = load i32, ptr %19, align 4, !tbaa !9
  %7053 = load i32, ptr %20, align 4, !tbaa !9
  %7054 = load i32, ptr %21, align 4, !tbaa !9
  call void %7042(ptr noundef %7051, i32 noundef %7052, i32 noundef %7053, i32 noundef %7054)
  %7055 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7055, ptr %19, align 4, !tbaa !9
  %7056 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7056, ptr %20, align 4, !tbaa !9
  store i32 360, ptr %21, align 4, !tbaa !9
  %7057 = load i32, ptr %21, align 4, !tbaa !9
  %7058 = load i32, ptr %20, align 4, !tbaa !9
  %7059 = add i32 %7058, %7057
  store i32 %7059, ptr %20, align 4, !tbaa !9
  store i32 36216, ptr %21, align 4, !tbaa !9
  %7060 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7060, ptr %22, align 4, !tbaa !9
  %7061 = load ptr, ptr %5, align 8, !tbaa !5
  %7062 = getelementptr inbounds %struct.w2c_hermes, ptr %7061, i32 0, i32 6
  %7063 = load i32, ptr %22, align 4, !tbaa !9
  %7064 = zext i32 %7063 to i64
  %7065 = call i32 @i32_load(ptr noundef %7062, i64 noundef %7064)
  store i32 %7065, ptr %22, align 4, !tbaa !9
  %7066 = load ptr, ptr %5, align 8, !tbaa !5
  %7067 = getelementptr inbounds %struct.w2c_hermes, ptr %7066, i32 0, i32 6
  %7068 = load i32, ptr %22, align 4, !tbaa !9
  %7069 = zext i32 %7068 to i64
  %7070 = add i64 %7069, 36
  %7071 = call i32 @i32_load(ptr noundef %7067, i64 noundef %7070)
  store i32 %7071, ptr %22, align 4, !tbaa !9
  %7072 = load i32, ptr %22, align 4, !tbaa !9
  %7073 = load ptr, ptr %5, align 8, !tbaa !5
  %7074 = getelementptr inbounds %struct.w2c_hermes, ptr %7073, i32 0, i32 7
  %7075 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7074, i32 0, i32 2
  %7076 = load i32, ptr %7075, align 4, !tbaa !18
  %7077 = icmp ult i32 %7072, %7076
  br i1 %7077, label %7078, label %7101

7078:                                             ; preds = %7031
  %7079 = load ptr, ptr %5, align 8, !tbaa !5
  %7080 = getelementptr inbounds %struct.w2c_hermes, ptr %7079, i32 0, i32 7
  %7081 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7080, i32 0, i32 0
  %7082 = load ptr, ptr %7081, align 8, !tbaa !19
  %7083 = load i32, ptr %22, align 4, !tbaa !9
  %7084 = zext i32 %7083 to i64
  %7085 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7082, i64 %7084
  %7086 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7085, i32 0, i32 1
  %7087 = load ptr, ptr %7086, align 8, !tbaa !20
  %7088 = icmp ne ptr %7087, null
  br i1 %7088, label %7089, label %7101

7089:                                             ; preds = %7078
  %7090 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7091 = load ptr, ptr %5, align 8, !tbaa !5
  %7092 = getelementptr inbounds %struct.w2c_hermes, ptr %7091, i32 0, i32 7
  %7093 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7092, i32 0, i32 0
  %7094 = load ptr, ptr %7093, align 8, !tbaa !19
  %7095 = load i32, ptr %22, align 4, !tbaa !9
  %7096 = zext i32 %7095 to i64
  %7097 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7094, i64 %7096
  %7098 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7097, i32 0, i32 0
  %7099 = load ptr, ptr %7098, align 8, !tbaa !22
  %7100 = call zeroext i1 @func_types_eq(ptr noundef %7090, ptr noundef %7099)
  br label %7101

7101:                                             ; preds = %7089, %7078, %7031
  %7102 = phi i1 [ false, %7078 ], [ false, %7031 ], [ %7100, %7089 ]
  %7103 = xor i1 %7102, true
  %7104 = xor i1 %7103, true
  %7105 = zext i1 %7104 to i32
  %7106 = sext i32 %7105 to i64
  %7107 = call i64 @llvm.expect.i64(i64 %7106, i64 1)
  %7108 = icmp ne i64 %7107, 0
  br i1 %7108, label %7111, label %7109

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

7110:                                             ; No predecessors!
  br label %7111

7111:                                             ; preds = %7110, %7101
  %7112 = phi i1 [ true, %7101 ], [ false, %7110 ]
  %7113 = zext i1 %7112 to i32
  %7114 = load ptr, ptr %5, align 8, !tbaa !5
  %7115 = getelementptr inbounds %struct.w2c_hermes, ptr %7114, i32 0, i32 7
  %7116 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7115, i32 0, i32 0
  %7117 = load ptr, ptr %7116, align 8, !tbaa !19
  %7118 = load i32, ptr %22, align 4, !tbaa !9
  %7119 = zext i32 %7118 to i64
  %7120 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7117, i64 %7119
  %7121 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7120, i32 0, i32 1
  %7122 = load ptr, ptr %7121, align 8, !tbaa !20
  %7123 = load ptr, ptr %5, align 8, !tbaa !5
  %7124 = getelementptr inbounds %struct.w2c_hermes, ptr %7123, i32 0, i32 7
  %7125 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7124, i32 0, i32 0
  %7126 = load ptr, ptr %7125, align 8, !tbaa !19
  %7127 = load i32, ptr %22, align 4, !tbaa !9
  %7128 = zext i32 %7127 to i64
  %7129 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7126, i64 %7128
  %7130 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7129, i32 0, i32 2
  %7131 = load ptr, ptr %7130, align 8, !tbaa !23
  %7132 = load i32, ptr %19, align 4, !tbaa !9
  %7133 = load i32, ptr %20, align 4, !tbaa !9
  %7134 = load i32, ptr %21, align 4, !tbaa !9
  call void %7122(ptr noundef %7131, i32 noundef %7132, i32 noundef %7133, i32 noundef %7134)
  %7135 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7135, ptr %19, align 4, !tbaa !9
  %7136 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7136, ptr %20, align 4, !tbaa !9
  store i32 368, ptr %21, align 4, !tbaa !9
  %7137 = load i32, ptr %21, align 4, !tbaa !9
  %7138 = load i32, ptr %20, align 4, !tbaa !9
  %7139 = add i32 %7138, %7137
  store i32 %7139, ptr %20, align 4, !tbaa !9
  store i32 47884, ptr %21, align 4, !tbaa !9
  %7140 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7140, ptr %22, align 4, !tbaa !9
  %7141 = load ptr, ptr %5, align 8, !tbaa !5
  %7142 = getelementptr inbounds %struct.w2c_hermes, ptr %7141, i32 0, i32 6
  %7143 = load i32, ptr %22, align 4, !tbaa !9
  %7144 = zext i32 %7143 to i64
  %7145 = call i32 @i32_load(ptr noundef %7142, i64 noundef %7144)
  store i32 %7145, ptr %22, align 4, !tbaa !9
  %7146 = load ptr, ptr %5, align 8, !tbaa !5
  %7147 = getelementptr inbounds %struct.w2c_hermes, ptr %7146, i32 0, i32 6
  %7148 = load i32, ptr %22, align 4, !tbaa !9
  %7149 = zext i32 %7148 to i64
  %7150 = add i64 %7149, 36
  %7151 = call i32 @i32_load(ptr noundef %7147, i64 noundef %7150)
  store i32 %7151, ptr %22, align 4, !tbaa !9
  %7152 = load i32, ptr %22, align 4, !tbaa !9
  %7153 = load ptr, ptr %5, align 8, !tbaa !5
  %7154 = getelementptr inbounds %struct.w2c_hermes, ptr %7153, i32 0, i32 7
  %7155 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7154, i32 0, i32 2
  %7156 = load i32, ptr %7155, align 4, !tbaa !18
  %7157 = icmp ult i32 %7152, %7156
  br i1 %7157, label %7158, label %7181

7158:                                             ; preds = %7111
  %7159 = load ptr, ptr %5, align 8, !tbaa !5
  %7160 = getelementptr inbounds %struct.w2c_hermes, ptr %7159, i32 0, i32 7
  %7161 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7160, i32 0, i32 0
  %7162 = load ptr, ptr %7161, align 8, !tbaa !19
  %7163 = load i32, ptr %22, align 4, !tbaa !9
  %7164 = zext i32 %7163 to i64
  %7165 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7162, i64 %7164
  %7166 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7165, i32 0, i32 1
  %7167 = load ptr, ptr %7166, align 8, !tbaa !20
  %7168 = icmp ne ptr %7167, null
  br i1 %7168, label %7169, label %7181

7169:                                             ; preds = %7158
  %7170 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7171 = load ptr, ptr %5, align 8, !tbaa !5
  %7172 = getelementptr inbounds %struct.w2c_hermes, ptr %7171, i32 0, i32 7
  %7173 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7172, i32 0, i32 0
  %7174 = load ptr, ptr %7173, align 8, !tbaa !19
  %7175 = load i32, ptr %22, align 4, !tbaa !9
  %7176 = zext i32 %7175 to i64
  %7177 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7174, i64 %7176
  %7178 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7177, i32 0, i32 0
  %7179 = load ptr, ptr %7178, align 8, !tbaa !22
  %7180 = call zeroext i1 @func_types_eq(ptr noundef %7170, ptr noundef %7179)
  br label %7181

7181:                                             ; preds = %7169, %7158, %7111
  %7182 = phi i1 [ false, %7158 ], [ false, %7111 ], [ %7180, %7169 ]
  %7183 = xor i1 %7182, true
  %7184 = xor i1 %7183, true
  %7185 = zext i1 %7184 to i32
  %7186 = sext i32 %7185 to i64
  %7187 = call i64 @llvm.expect.i64(i64 %7186, i64 1)
  %7188 = icmp ne i64 %7187, 0
  br i1 %7188, label %7191, label %7189

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

7190:                                             ; No predecessors!
  br label %7191

7191:                                             ; preds = %7190, %7181
  %7192 = phi i1 [ true, %7181 ], [ false, %7190 ]
  %7193 = zext i1 %7192 to i32
  %7194 = load ptr, ptr %5, align 8, !tbaa !5
  %7195 = getelementptr inbounds %struct.w2c_hermes, ptr %7194, i32 0, i32 7
  %7196 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7195, i32 0, i32 0
  %7197 = load ptr, ptr %7196, align 8, !tbaa !19
  %7198 = load i32, ptr %22, align 4, !tbaa !9
  %7199 = zext i32 %7198 to i64
  %7200 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7197, i64 %7199
  %7201 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7200, i32 0, i32 1
  %7202 = load ptr, ptr %7201, align 8, !tbaa !20
  %7203 = load ptr, ptr %5, align 8, !tbaa !5
  %7204 = getelementptr inbounds %struct.w2c_hermes, ptr %7203, i32 0, i32 7
  %7205 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7204, i32 0, i32 0
  %7206 = load ptr, ptr %7205, align 8, !tbaa !19
  %7207 = load i32, ptr %22, align 4, !tbaa !9
  %7208 = zext i32 %7207 to i64
  %7209 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7206, i64 %7208
  %7210 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7209, i32 0, i32 2
  %7211 = load ptr, ptr %7210, align 8, !tbaa !23
  %7212 = load i32, ptr %19, align 4, !tbaa !9
  %7213 = load i32, ptr %20, align 4, !tbaa !9
  %7214 = load i32, ptr %21, align 4, !tbaa !9
  call void %7202(ptr noundef %7211, i32 noundef %7212, i32 noundef %7213, i32 noundef %7214)
  %7215 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7215, ptr %19, align 4, !tbaa !9
  %7216 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7216, ptr %20, align 4, !tbaa !9
  store i32 376, ptr %21, align 4, !tbaa !9
  %7217 = load i32, ptr %21, align 4, !tbaa !9
  %7218 = load i32, ptr %20, align 4, !tbaa !9
  %7219 = add i32 %7218, %7217
  store i32 %7219, ptr %20, align 4, !tbaa !9
  store i32 36288, ptr %21, align 4, !tbaa !9
  %7220 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7220, ptr %22, align 4, !tbaa !9
  %7221 = load ptr, ptr %5, align 8, !tbaa !5
  %7222 = getelementptr inbounds %struct.w2c_hermes, ptr %7221, i32 0, i32 6
  %7223 = load i32, ptr %22, align 4, !tbaa !9
  %7224 = zext i32 %7223 to i64
  %7225 = call i32 @i32_load(ptr noundef %7222, i64 noundef %7224)
  store i32 %7225, ptr %22, align 4, !tbaa !9
  %7226 = load ptr, ptr %5, align 8, !tbaa !5
  %7227 = getelementptr inbounds %struct.w2c_hermes, ptr %7226, i32 0, i32 6
  %7228 = load i32, ptr %22, align 4, !tbaa !9
  %7229 = zext i32 %7228 to i64
  %7230 = add i64 %7229, 36
  %7231 = call i32 @i32_load(ptr noundef %7227, i64 noundef %7230)
  store i32 %7231, ptr %22, align 4, !tbaa !9
  %7232 = load i32, ptr %22, align 4, !tbaa !9
  %7233 = load ptr, ptr %5, align 8, !tbaa !5
  %7234 = getelementptr inbounds %struct.w2c_hermes, ptr %7233, i32 0, i32 7
  %7235 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7234, i32 0, i32 2
  %7236 = load i32, ptr %7235, align 4, !tbaa !18
  %7237 = icmp ult i32 %7232, %7236
  br i1 %7237, label %7238, label %7261

7238:                                             ; preds = %7191
  %7239 = load ptr, ptr %5, align 8, !tbaa !5
  %7240 = getelementptr inbounds %struct.w2c_hermes, ptr %7239, i32 0, i32 7
  %7241 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7240, i32 0, i32 0
  %7242 = load ptr, ptr %7241, align 8, !tbaa !19
  %7243 = load i32, ptr %22, align 4, !tbaa !9
  %7244 = zext i32 %7243 to i64
  %7245 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7242, i64 %7244
  %7246 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7245, i32 0, i32 1
  %7247 = load ptr, ptr %7246, align 8, !tbaa !20
  %7248 = icmp ne ptr %7247, null
  br i1 %7248, label %7249, label %7261

7249:                                             ; preds = %7238
  %7250 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7251 = load ptr, ptr %5, align 8, !tbaa !5
  %7252 = getelementptr inbounds %struct.w2c_hermes, ptr %7251, i32 0, i32 7
  %7253 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7252, i32 0, i32 0
  %7254 = load ptr, ptr %7253, align 8, !tbaa !19
  %7255 = load i32, ptr %22, align 4, !tbaa !9
  %7256 = zext i32 %7255 to i64
  %7257 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7254, i64 %7256
  %7258 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7257, i32 0, i32 0
  %7259 = load ptr, ptr %7258, align 8, !tbaa !22
  %7260 = call zeroext i1 @func_types_eq(ptr noundef %7250, ptr noundef %7259)
  br label %7261

7261:                                             ; preds = %7249, %7238, %7191
  %7262 = phi i1 [ false, %7238 ], [ false, %7191 ], [ %7260, %7249 ]
  %7263 = xor i1 %7262, true
  %7264 = xor i1 %7263, true
  %7265 = zext i1 %7264 to i32
  %7266 = sext i32 %7265 to i64
  %7267 = call i64 @llvm.expect.i64(i64 %7266, i64 1)
  %7268 = icmp ne i64 %7267, 0
  br i1 %7268, label %7271, label %7269

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

7270:                                             ; No predecessors!
  br label %7271

7271:                                             ; preds = %7270, %7261
  %7272 = phi i1 [ true, %7261 ], [ false, %7270 ]
  %7273 = zext i1 %7272 to i32
  %7274 = load ptr, ptr %5, align 8, !tbaa !5
  %7275 = getelementptr inbounds %struct.w2c_hermes, ptr %7274, i32 0, i32 7
  %7276 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7275, i32 0, i32 0
  %7277 = load ptr, ptr %7276, align 8, !tbaa !19
  %7278 = load i32, ptr %22, align 4, !tbaa !9
  %7279 = zext i32 %7278 to i64
  %7280 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7277, i64 %7279
  %7281 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7280, i32 0, i32 1
  %7282 = load ptr, ptr %7281, align 8, !tbaa !20
  %7283 = load ptr, ptr %5, align 8, !tbaa !5
  %7284 = getelementptr inbounds %struct.w2c_hermes, ptr %7283, i32 0, i32 7
  %7285 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7284, i32 0, i32 0
  %7286 = load ptr, ptr %7285, align 8, !tbaa !19
  %7287 = load i32, ptr %22, align 4, !tbaa !9
  %7288 = zext i32 %7287 to i64
  %7289 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7286, i64 %7288
  %7290 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7289, i32 0, i32 2
  %7291 = load ptr, ptr %7290, align 8, !tbaa !23
  %7292 = load i32, ptr %19, align 4, !tbaa !9
  %7293 = load i32, ptr %20, align 4, !tbaa !9
  %7294 = load i32, ptr %21, align 4, !tbaa !9
  call void %7282(ptr noundef %7291, i32 noundef %7292, i32 noundef %7293, i32 noundef %7294)
  %7295 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7295, ptr %19, align 4, !tbaa !9
  %7296 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7296, ptr %20, align 4, !tbaa !9
  store i32 384, ptr %21, align 4, !tbaa !9
  %7297 = load i32, ptr %21, align 4, !tbaa !9
  %7298 = load i32, ptr %20, align 4, !tbaa !9
  %7299 = add i32 %7298, %7297
  store i32 %7299, ptr %20, align 4, !tbaa !9
  store i32 47994, ptr %21, align 4, !tbaa !9
  %7300 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7300, ptr %22, align 4, !tbaa !9
  %7301 = load ptr, ptr %5, align 8, !tbaa !5
  %7302 = getelementptr inbounds %struct.w2c_hermes, ptr %7301, i32 0, i32 6
  %7303 = load i32, ptr %22, align 4, !tbaa !9
  %7304 = zext i32 %7303 to i64
  %7305 = call i32 @i32_load(ptr noundef %7302, i64 noundef %7304)
  store i32 %7305, ptr %22, align 4, !tbaa !9
  %7306 = load ptr, ptr %5, align 8, !tbaa !5
  %7307 = getelementptr inbounds %struct.w2c_hermes, ptr %7306, i32 0, i32 6
  %7308 = load i32, ptr %22, align 4, !tbaa !9
  %7309 = zext i32 %7308 to i64
  %7310 = add i64 %7309, 36
  %7311 = call i32 @i32_load(ptr noundef %7307, i64 noundef %7310)
  store i32 %7311, ptr %22, align 4, !tbaa !9
  %7312 = load i32, ptr %22, align 4, !tbaa !9
  %7313 = load ptr, ptr %5, align 8, !tbaa !5
  %7314 = getelementptr inbounds %struct.w2c_hermes, ptr %7313, i32 0, i32 7
  %7315 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7314, i32 0, i32 2
  %7316 = load i32, ptr %7315, align 4, !tbaa !18
  %7317 = icmp ult i32 %7312, %7316
  br i1 %7317, label %7318, label %7341

7318:                                             ; preds = %7271
  %7319 = load ptr, ptr %5, align 8, !tbaa !5
  %7320 = getelementptr inbounds %struct.w2c_hermes, ptr %7319, i32 0, i32 7
  %7321 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7320, i32 0, i32 0
  %7322 = load ptr, ptr %7321, align 8, !tbaa !19
  %7323 = load i32, ptr %22, align 4, !tbaa !9
  %7324 = zext i32 %7323 to i64
  %7325 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7322, i64 %7324
  %7326 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7325, i32 0, i32 1
  %7327 = load ptr, ptr %7326, align 8, !tbaa !20
  %7328 = icmp ne ptr %7327, null
  br i1 %7328, label %7329, label %7341

7329:                                             ; preds = %7318
  %7330 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7331 = load ptr, ptr %5, align 8, !tbaa !5
  %7332 = getelementptr inbounds %struct.w2c_hermes, ptr %7331, i32 0, i32 7
  %7333 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7332, i32 0, i32 0
  %7334 = load ptr, ptr %7333, align 8, !tbaa !19
  %7335 = load i32, ptr %22, align 4, !tbaa !9
  %7336 = zext i32 %7335 to i64
  %7337 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7334, i64 %7336
  %7338 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7337, i32 0, i32 0
  %7339 = load ptr, ptr %7338, align 8, !tbaa !22
  %7340 = call zeroext i1 @func_types_eq(ptr noundef %7330, ptr noundef %7339)
  br label %7341

7341:                                             ; preds = %7329, %7318, %7271
  %7342 = phi i1 [ false, %7318 ], [ false, %7271 ], [ %7340, %7329 ]
  %7343 = xor i1 %7342, true
  %7344 = xor i1 %7343, true
  %7345 = zext i1 %7344 to i32
  %7346 = sext i32 %7345 to i64
  %7347 = call i64 @llvm.expect.i64(i64 %7346, i64 1)
  %7348 = icmp ne i64 %7347, 0
  br i1 %7348, label %7351, label %7349

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

7350:                                             ; No predecessors!
  br label %7351

7351:                                             ; preds = %7350, %7341
  %7352 = phi i1 [ true, %7341 ], [ false, %7350 ]
  %7353 = zext i1 %7352 to i32
  %7354 = load ptr, ptr %5, align 8, !tbaa !5
  %7355 = getelementptr inbounds %struct.w2c_hermes, ptr %7354, i32 0, i32 7
  %7356 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7355, i32 0, i32 0
  %7357 = load ptr, ptr %7356, align 8, !tbaa !19
  %7358 = load i32, ptr %22, align 4, !tbaa !9
  %7359 = zext i32 %7358 to i64
  %7360 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7357, i64 %7359
  %7361 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7360, i32 0, i32 1
  %7362 = load ptr, ptr %7361, align 8, !tbaa !20
  %7363 = load ptr, ptr %5, align 8, !tbaa !5
  %7364 = getelementptr inbounds %struct.w2c_hermes, ptr %7363, i32 0, i32 7
  %7365 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7364, i32 0, i32 0
  %7366 = load ptr, ptr %7365, align 8, !tbaa !19
  %7367 = load i32, ptr %22, align 4, !tbaa !9
  %7368 = zext i32 %7367 to i64
  %7369 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7366, i64 %7368
  %7370 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7369, i32 0, i32 2
  %7371 = load ptr, ptr %7370, align 8, !tbaa !23
  %7372 = load i32, ptr %19, align 4, !tbaa !9
  %7373 = load i32, ptr %20, align 4, !tbaa !9
  %7374 = load i32, ptr %21, align 4, !tbaa !9
  call void %7362(ptr noundef %7371, i32 noundef %7372, i32 noundef %7373, i32 noundef %7374)
  %7375 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7375, ptr %19, align 4, !tbaa !9
  %7376 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7376, ptr %20, align 4, !tbaa !9
  store i32 392, ptr %21, align 4, !tbaa !9
  %7377 = load i32, ptr %21, align 4, !tbaa !9
  %7378 = load i32, ptr %20, align 4, !tbaa !9
  %7379 = add i32 %7378, %7377
  store i32 %7379, ptr %20, align 4, !tbaa !9
  store i32 36408, ptr %21, align 4, !tbaa !9
  %7380 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7380, ptr %22, align 4, !tbaa !9
  %7381 = load ptr, ptr %5, align 8, !tbaa !5
  %7382 = getelementptr inbounds %struct.w2c_hermes, ptr %7381, i32 0, i32 6
  %7383 = load i32, ptr %22, align 4, !tbaa !9
  %7384 = zext i32 %7383 to i64
  %7385 = call i32 @i32_load(ptr noundef %7382, i64 noundef %7384)
  store i32 %7385, ptr %22, align 4, !tbaa !9
  %7386 = load ptr, ptr %5, align 8, !tbaa !5
  %7387 = getelementptr inbounds %struct.w2c_hermes, ptr %7386, i32 0, i32 6
  %7388 = load i32, ptr %22, align 4, !tbaa !9
  %7389 = zext i32 %7388 to i64
  %7390 = add i64 %7389, 36
  %7391 = call i32 @i32_load(ptr noundef %7387, i64 noundef %7390)
  store i32 %7391, ptr %22, align 4, !tbaa !9
  %7392 = load i32, ptr %22, align 4, !tbaa !9
  %7393 = load ptr, ptr %5, align 8, !tbaa !5
  %7394 = getelementptr inbounds %struct.w2c_hermes, ptr %7393, i32 0, i32 7
  %7395 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7394, i32 0, i32 2
  %7396 = load i32, ptr %7395, align 4, !tbaa !18
  %7397 = icmp ult i32 %7392, %7396
  br i1 %7397, label %7398, label %7421

7398:                                             ; preds = %7351
  %7399 = load ptr, ptr %5, align 8, !tbaa !5
  %7400 = getelementptr inbounds %struct.w2c_hermes, ptr %7399, i32 0, i32 7
  %7401 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7400, i32 0, i32 0
  %7402 = load ptr, ptr %7401, align 8, !tbaa !19
  %7403 = load i32, ptr %22, align 4, !tbaa !9
  %7404 = zext i32 %7403 to i64
  %7405 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7402, i64 %7404
  %7406 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7405, i32 0, i32 1
  %7407 = load ptr, ptr %7406, align 8, !tbaa !20
  %7408 = icmp ne ptr %7407, null
  br i1 %7408, label %7409, label %7421

7409:                                             ; preds = %7398
  %7410 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7411 = load ptr, ptr %5, align 8, !tbaa !5
  %7412 = getelementptr inbounds %struct.w2c_hermes, ptr %7411, i32 0, i32 7
  %7413 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7412, i32 0, i32 0
  %7414 = load ptr, ptr %7413, align 8, !tbaa !19
  %7415 = load i32, ptr %22, align 4, !tbaa !9
  %7416 = zext i32 %7415 to i64
  %7417 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7414, i64 %7416
  %7418 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7417, i32 0, i32 0
  %7419 = load ptr, ptr %7418, align 8, !tbaa !22
  %7420 = call zeroext i1 @func_types_eq(ptr noundef %7410, ptr noundef %7419)
  br label %7421

7421:                                             ; preds = %7409, %7398, %7351
  %7422 = phi i1 [ false, %7398 ], [ false, %7351 ], [ %7420, %7409 ]
  %7423 = xor i1 %7422, true
  %7424 = xor i1 %7423, true
  %7425 = zext i1 %7424 to i32
  %7426 = sext i32 %7425 to i64
  %7427 = call i64 @llvm.expect.i64(i64 %7426, i64 1)
  %7428 = icmp ne i64 %7427, 0
  br i1 %7428, label %7431, label %7429

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

7430:                                             ; No predecessors!
  br label %7431

7431:                                             ; preds = %7430, %7421
  %7432 = phi i1 [ true, %7421 ], [ false, %7430 ]
  %7433 = zext i1 %7432 to i32
  %7434 = load ptr, ptr %5, align 8, !tbaa !5
  %7435 = getelementptr inbounds %struct.w2c_hermes, ptr %7434, i32 0, i32 7
  %7436 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7435, i32 0, i32 0
  %7437 = load ptr, ptr %7436, align 8, !tbaa !19
  %7438 = load i32, ptr %22, align 4, !tbaa !9
  %7439 = zext i32 %7438 to i64
  %7440 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7437, i64 %7439
  %7441 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7440, i32 0, i32 1
  %7442 = load ptr, ptr %7441, align 8, !tbaa !20
  %7443 = load ptr, ptr %5, align 8, !tbaa !5
  %7444 = getelementptr inbounds %struct.w2c_hermes, ptr %7443, i32 0, i32 7
  %7445 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7444, i32 0, i32 0
  %7446 = load ptr, ptr %7445, align 8, !tbaa !19
  %7447 = load i32, ptr %22, align 4, !tbaa !9
  %7448 = zext i32 %7447 to i64
  %7449 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7446, i64 %7448
  %7450 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7449, i32 0, i32 2
  %7451 = load ptr, ptr %7450, align 8, !tbaa !23
  %7452 = load i32, ptr %19, align 4, !tbaa !9
  %7453 = load i32, ptr %20, align 4, !tbaa !9
  %7454 = load i32, ptr %21, align 4, !tbaa !9
  call void %7442(ptr noundef %7451, i32 noundef %7452, i32 noundef %7453, i32 noundef %7454)
  %7455 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7455, ptr %19, align 4, !tbaa !9
  %7456 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7456, ptr %20, align 4, !tbaa !9
  store i32 400, ptr %21, align 4, !tbaa !9
  %7457 = load i32, ptr %21, align 4, !tbaa !9
  %7458 = load i32, ptr %20, align 4, !tbaa !9
  %7459 = add i32 %7458, %7457
  store i32 %7459, ptr %20, align 4, !tbaa !9
  store i32 48035, ptr %21, align 4, !tbaa !9
  %7460 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7460, ptr %22, align 4, !tbaa !9
  %7461 = load ptr, ptr %5, align 8, !tbaa !5
  %7462 = getelementptr inbounds %struct.w2c_hermes, ptr %7461, i32 0, i32 6
  %7463 = load i32, ptr %22, align 4, !tbaa !9
  %7464 = zext i32 %7463 to i64
  %7465 = call i32 @i32_load(ptr noundef %7462, i64 noundef %7464)
  store i32 %7465, ptr %22, align 4, !tbaa !9
  %7466 = load ptr, ptr %5, align 8, !tbaa !5
  %7467 = getelementptr inbounds %struct.w2c_hermes, ptr %7466, i32 0, i32 6
  %7468 = load i32, ptr %22, align 4, !tbaa !9
  %7469 = zext i32 %7468 to i64
  %7470 = add i64 %7469, 36
  %7471 = call i32 @i32_load(ptr noundef %7467, i64 noundef %7470)
  store i32 %7471, ptr %22, align 4, !tbaa !9
  %7472 = load i32, ptr %22, align 4, !tbaa !9
  %7473 = load ptr, ptr %5, align 8, !tbaa !5
  %7474 = getelementptr inbounds %struct.w2c_hermes, ptr %7473, i32 0, i32 7
  %7475 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7474, i32 0, i32 2
  %7476 = load i32, ptr %7475, align 4, !tbaa !18
  %7477 = icmp ult i32 %7472, %7476
  br i1 %7477, label %7478, label %7501

7478:                                             ; preds = %7431
  %7479 = load ptr, ptr %5, align 8, !tbaa !5
  %7480 = getelementptr inbounds %struct.w2c_hermes, ptr %7479, i32 0, i32 7
  %7481 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7480, i32 0, i32 0
  %7482 = load ptr, ptr %7481, align 8, !tbaa !19
  %7483 = load i32, ptr %22, align 4, !tbaa !9
  %7484 = zext i32 %7483 to i64
  %7485 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7482, i64 %7484
  %7486 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7485, i32 0, i32 1
  %7487 = load ptr, ptr %7486, align 8, !tbaa !20
  %7488 = icmp ne ptr %7487, null
  br i1 %7488, label %7489, label %7501

7489:                                             ; preds = %7478
  %7490 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7491 = load ptr, ptr %5, align 8, !tbaa !5
  %7492 = getelementptr inbounds %struct.w2c_hermes, ptr %7491, i32 0, i32 7
  %7493 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7492, i32 0, i32 0
  %7494 = load ptr, ptr %7493, align 8, !tbaa !19
  %7495 = load i32, ptr %22, align 4, !tbaa !9
  %7496 = zext i32 %7495 to i64
  %7497 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7494, i64 %7496
  %7498 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7497, i32 0, i32 0
  %7499 = load ptr, ptr %7498, align 8, !tbaa !22
  %7500 = call zeroext i1 @func_types_eq(ptr noundef %7490, ptr noundef %7499)
  br label %7501

7501:                                             ; preds = %7489, %7478, %7431
  %7502 = phi i1 [ false, %7478 ], [ false, %7431 ], [ %7500, %7489 ]
  %7503 = xor i1 %7502, true
  %7504 = xor i1 %7503, true
  %7505 = zext i1 %7504 to i32
  %7506 = sext i32 %7505 to i64
  %7507 = call i64 @llvm.expect.i64(i64 %7506, i64 1)
  %7508 = icmp ne i64 %7507, 0
  br i1 %7508, label %7511, label %7509

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

7510:                                             ; No predecessors!
  br label %7511

7511:                                             ; preds = %7510, %7501
  %7512 = phi i1 [ true, %7501 ], [ false, %7510 ]
  %7513 = zext i1 %7512 to i32
  %7514 = load ptr, ptr %5, align 8, !tbaa !5
  %7515 = getelementptr inbounds %struct.w2c_hermes, ptr %7514, i32 0, i32 7
  %7516 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7515, i32 0, i32 0
  %7517 = load ptr, ptr %7516, align 8, !tbaa !19
  %7518 = load i32, ptr %22, align 4, !tbaa !9
  %7519 = zext i32 %7518 to i64
  %7520 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7517, i64 %7519
  %7521 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7520, i32 0, i32 1
  %7522 = load ptr, ptr %7521, align 8, !tbaa !20
  %7523 = load ptr, ptr %5, align 8, !tbaa !5
  %7524 = getelementptr inbounds %struct.w2c_hermes, ptr %7523, i32 0, i32 7
  %7525 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7524, i32 0, i32 0
  %7526 = load ptr, ptr %7525, align 8, !tbaa !19
  %7527 = load i32, ptr %22, align 4, !tbaa !9
  %7528 = zext i32 %7527 to i64
  %7529 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7526, i64 %7528
  %7530 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7529, i32 0, i32 2
  %7531 = load ptr, ptr %7530, align 8, !tbaa !23
  %7532 = load i32, ptr %19, align 4, !tbaa !9
  %7533 = load i32, ptr %20, align 4, !tbaa !9
  %7534 = load i32, ptr %21, align 4, !tbaa !9
  call void %7522(ptr noundef %7531, i32 noundef %7532, i32 noundef %7533, i32 noundef %7534)
  %7535 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7535, ptr %19, align 4, !tbaa !9
  %7536 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7536, ptr %20, align 4, !tbaa !9
  store i32 408, ptr %21, align 4, !tbaa !9
  %7537 = load i32, ptr %21, align 4, !tbaa !9
  %7538 = load i32, ptr %20, align 4, !tbaa !9
  %7539 = add i32 %7538, %7537
  store i32 %7539, ptr %20, align 4, !tbaa !9
  store i32 36453, ptr %21, align 4, !tbaa !9
  %7540 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7540, ptr %22, align 4, !tbaa !9
  %7541 = load ptr, ptr %5, align 8, !tbaa !5
  %7542 = getelementptr inbounds %struct.w2c_hermes, ptr %7541, i32 0, i32 6
  %7543 = load i32, ptr %22, align 4, !tbaa !9
  %7544 = zext i32 %7543 to i64
  %7545 = call i32 @i32_load(ptr noundef %7542, i64 noundef %7544)
  store i32 %7545, ptr %22, align 4, !tbaa !9
  %7546 = load ptr, ptr %5, align 8, !tbaa !5
  %7547 = getelementptr inbounds %struct.w2c_hermes, ptr %7546, i32 0, i32 6
  %7548 = load i32, ptr %22, align 4, !tbaa !9
  %7549 = zext i32 %7548 to i64
  %7550 = add i64 %7549, 36
  %7551 = call i32 @i32_load(ptr noundef %7547, i64 noundef %7550)
  store i32 %7551, ptr %22, align 4, !tbaa !9
  %7552 = load i32, ptr %22, align 4, !tbaa !9
  %7553 = load ptr, ptr %5, align 8, !tbaa !5
  %7554 = getelementptr inbounds %struct.w2c_hermes, ptr %7553, i32 0, i32 7
  %7555 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7554, i32 0, i32 2
  %7556 = load i32, ptr %7555, align 4, !tbaa !18
  %7557 = icmp ult i32 %7552, %7556
  br i1 %7557, label %7558, label %7581

7558:                                             ; preds = %7511
  %7559 = load ptr, ptr %5, align 8, !tbaa !5
  %7560 = getelementptr inbounds %struct.w2c_hermes, ptr %7559, i32 0, i32 7
  %7561 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7560, i32 0, i32 0
  %7562 = load ptr, ptr %7561, align 8, !tbaa !19
  %7563 = load i32, ptr %22, align 4, !tbaa !9
  %7564 = zext i32 %7563 to i64
  %7565 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7562, i64 %7564
  %7566 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7565, i32 0, i32 1
  %7567 = load ptr, ptr %7566, align 8, !tbaa !20
  %7568 = icmp ne ptr %7567, null
  br i1 %7568, label %7569, label %7581

7569:                                             ; preds = %7558
  %7570 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7571 = load ptr, ptr %5, align 8, !tbaa !5
  %7572 = getelementptr inbounds %struct.w2c_hermes, ptr %7571, i32 0, i32 7
  %7573 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7572, i32 0, i32 0
  %7574 = load ptr, ptr %7573, align 8, !tbaa !19
  %7575 = load i32, ptr %22, align 4, !tbaa !9
  %7576 = zext i32 %7575 to i64
  %7577 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7574, i64 %7576
  %7578 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7577, i32 0, i32 0
  %7579 = load ptr, ptr %7578, align 8, !tbaa !22
  %7580 = call zeroext i1 @func_types_eq(ptr noundef %7570, ptr noundef %7579)
  br label %7581

7581:                                             ; preds = %7569, %7558, %7511
  %7582 = phi i1 [ false, %7558 ], [ false, %7511 ], [ %7580, %7569 ]
  %7583 = xor i1 %7582, true
  %7584 = xor i1 %7583, true
  %7585 = zext i1 %7584 to i32
  %7586 = sext i32 %7585 to i64
  %7587 = call i64 @llvm.expect.i64(i64 %7586, i64 1)
  %7588 = icmp ne i64 %7587, 0
  br i1 %7588, label %7591, label %7589

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

7590:                                             ; No predecessors!
  br label %7591

7591:                                             ; preds = %7590, %7581
  %7592 = phi i1 [ true, %7581 ], [ false, %7590 ]
  %7593 = zext i1 %7592 to i32
  %7594 = load ptr, ptr %5, align 8, !tbaa !5
  %7595 = getelementptr inbounds %struct.w2c_hermes, ptr %7594, i32 0, i32 7
  %7596 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7595, i32 0, i32 0
  %7597 = load ptr, ptr %7596, align 8, !tbaa !19
  %7598 = load i32, ptr %22, align 4, !tbaa !9
  %7599 = zext i32 %7598 to i64
  %7600 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7597, i64 %7599
  %7601 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7600, i32 0, i32 1
  %7602 = load ptr, ptr %7601, align 8, !tbaa !20
  %7603 = load ptr, ptr %5, align 8, !tbaa !5
  %7604 = getelementptr inbounds %struct.w2c_hermes, ptr %7603, i32 0, i32 7
  %7605 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7604, i32 0, i32 0
  %7606 = load ptr, ptr %7605, align 8, !tbaa !19
  %7607 = load i32, ptr %22, align 4, !tbaa !9
  %7608 = zext i32 %7607 to i64
  %7609 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7606, i64 %7608
  %7610 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7609, i32 0, i32 2
  %7611 = load ptr, ptr %7610, align 8, !tbaa !23
  %7612 = load i32, ptr %19, align 4, !tbaa !9
  %7613 = load i32, ptr %20, align 4, !tbaa !9
  %7614 = load i32, ptr %21, align 4, !tbaa !9
  call void %7602(ptr noundef %7611, i32 noundef %7612, i32 noundef %7613, i32 noundef %7614)
  %7615 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7615, ptr %19, align 4, !tbaa !9
  %7616 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7616, ptr %20, align 4, !tbaa !9
  store i32 416, ptr %21, align 4, !tbaa !9
  %7617 = load i32, ptr %21, align 4, !tbaa !9
  %7618 = load i32, ptr %20, align 4, !tbaa !9
  %7619 = add i32 %7618, %7617
  store i32 %7619, ptr %20, align 4, !tbaa !9
  store i32 47972, ptr %21, align 4, !tbaa !9
  %7620 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7620, ptr %22, align 4, !tbaa !9
  %7621 = load ptr, ptr %5, align 8, !tbaa !5
  %7622 = getelementptr inbounds %struct.w2c_hermes, ptr %7621, i32 0, i32 6
  %7623 = load i32, ptr %22, align 4, !tbaa !9
  %7624 = zext i32 %7623 to i64
  %7625 = call i32 @i32_load(ptr noundef %7622, i64 noundef %7624)
  store i32 %7625, ptr %22, align 4, !tbaa !9
  %7626 = load ptr, ptr %5, align 8, !tbaa !5
  %7627 = getelementptr inbounds %struct.w2c_hermes, ptr %7626, i32 0, i32 6
  %7628 = load i32, ptr %22, align 4, !tbaa !9
  %7629 = zext i32 %7628 to i64
  %7630 = add i64 %7629, 36
  %7631 = call i32 @i32_load(ptr noundef %7627, i64 noundef %7630)
  store i32 %7631, ptr %22, align 4, !tbaa !9
  %7632 = load i32, ptr %22, align 4, !tbaa !9
  %7633 = load ptr, ptr %5, align 8, !tbaa !5
  %7634 = getelementptr inbounds %struct.w2c_hermes, ptr %7633, i32 0, i32 7
  %7635 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7634, i32 0, i32 2
  %7636 = load i32, ptr %7635, align 4, !tbaa !18
  %7637 = icmp ult i32 %7632, %7636
  br i1 %7637, label %7638, label %7661

7638:                                             ; preds = %7591
  %7639 = load ptr, ptr %5, align 8, !tbaa !5
  %7640 = getelementptr inbounds %struct.w2c_hermes, ptr %7639, i32 0, i32 7
  %7641 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7640, i32 0, i32 0
  %7642 = load ptr, ptr %7641, align 8, !tbaa !19
  %7643 = load i32, ptr %22, align 4, !tbaa !9
  %7644 = zext i32 %7643 to i64
  %7645 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7642, i64 %7644
  %7646 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7645, i32 0, i32 1
  %7647 = load ptr, ptr %7646, align 8, !tbaa !20
  %7648 = icmp ne ptr %7647, null
  br i1 %7648, label %7649, label %7661

7649:                                             ; preds = %7638
  %7650 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7651 = load ptr, ptr %5, align 8, !tbaa !5
  %7652 = getelementptr inbounds %struct.w2c_hermes, ptr %7651, i32 0, i32 7
  %7653 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7652, i32 0, i32 0
  %7654 = load ptr, ptr %7653, align 8, !tbaa !19
  %7655 = load i32, ptr %22, align 4, !tbaa !9
  %7656 = zext i32 %7655 to i64
  %7657 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7654, i64 %7656
  %7658 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7657, i32 0, i32 0
  %7659 = load ptr, ptr %7658, align 8, !tbaa !22
  %7660 = call zeroext i1 @func_types_eq(ptr noundef %7650, ptr noundef %7659)
  br label %7661

7661:                                             ; preds = %7649, %7638, %7591
  %7662 = phi i1 [ false, %7638 ], [ false, %7591 ], [ %7660, %7649 ]
  %7663 = xor i1 %7662, true
  %7664 = xor i1 %7663, true
  %7665 = zext i1 %7664 to i32
  %7666 = sext i32 %7665 to i64
  %7667 = call i64 @llvm.expect.i64(i64 %7666, i64 1)
  %7668 = icmp ne i64 %7667, 0
  br i1 %7668, label %7671, label %7669

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

7670:                                             ; No predecessors!
  br label %7671

7671:                                             ; preds = %7670, %7661
  %7672 = phi i1 [ true, %7661 ], [ false, %7670 ]
  %7673 = zext i1 %7672 to i32
  %7674 = load ptr, ptr %5, align 8, !tbaa !5
  %7675 = getelementptr inbounds %struct.w2c_hermes, ptr %7674, i32 0, i32 7
  %7676 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7675, i32 0, i32 0
  %7677 = load ptr, ptr %7676, align 8, !tbaa !19
  %7678 = load i32, ptr %22, align 4, !tbaa !9
  %7679 = zext i32 %7678 to i64
  %7680 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7677, i64 %7679
  %7681 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7680, i32 0, i32 1
  %7682 = load ptr, ptr %7681, align 8, !tbaa !20
  %7683 = load ptr, ptr %5, align 8, !tbaa !5
  %7684 = getelementptr inbounds %struct.w2c_hermes, ptr %7683, i32 0, i32 7
  %7685 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7684, i32 0, i32 0
  %7686 = load ptr, ptr %7685, align 8, !tbaa !19
  %7687 = load i32, ptr %22, align 4, !tbaa !9
  %7688 = zext i32 %7687 to i64
  %7689 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7686, i64 %7688
  %7690 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7689, i32 0, i32 2
  %7691 = load ptr, ptr %7690, align 8, !tbaa !23
  %7692 = load i32, ptr %19, align 4, !tbaa !9
  %7693 = load i32, ptr %20, align 4, !tbaa !9
  %7694 = load i32, ptr %21, align 4, !tbaa !9
  call void %7682(ptr noundef %7691, i32 noundef %7692, i32 noundef %7693, i32 noundef %7694)
  %7695 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7695, ptr %19, align 4, !tbaa !9
  %7696 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7696, ptr %20, align 4, !tbaa !9
  store i32 424, ptr %21, align 4, !tbaa !9
  %7697 = load i32, ptr %21, align 4, !tbaa !9
  %7698 = load i32, ptr %20, align 4, !tbaa !9
  %7699 = add i32 %7698, %7697
  store i32 %7699, ptr %20, align 4, !tbaa !9
  store i32 36384, ptr %21, align 4, !tbaa !9
  %7700 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7700, ptr %22, align 4, !tbaa !9
  %7701 = load ptr, ptr %5, align 8, !tbaa !5
  %7702 = getelementptr inbounds %struct.w2c_hermes, ptr %7701, i32 0, i32 6
  %7703 = load i32, ptr %22, align 4, !tbaa !9
  %7704 = zext i32 %7703 to i64
  %7705 = call i32 @i32_load(ptr noundef %7702, i64 noundef %7704)
  store i32 %7705, ptr %22, align 4, !tbaa !9
  %7706 = load ptr, ptr %5, align 8, !tbaa !5
  %7707 = getelementptr inbounds %struct.w2c_hermes, ptr %7706, i32 0, i32 6
  %7708 = load i32, ptr %22, align 4, !tbaa !9
  %7709 = zext i32 %7708 to i64
  %7710 = add i64 %7709, 36
  %7711 = call i32 @i32_load(ptr noundef %7707, i64 noundef %7710)
  store i32 %7711, ptr %22, align 4, !tbaa !9
  %7712 = load i32, ptr %22, align 4, !tbaa !9
  %7713 = load ptr, ptr %5, align 8, !tbaa !5
  %7714 = getelementptr inbounds %struct.w2c_hermes, ptr %7713, i32 0, i32 7
  %7715 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7714, i32 0, i32 2
  %7716 = load i32, ptr %7715, align 4, !tbaa !18
  %7717 = icmp ult i32 %7712, %7716
  br i1 %7717, label %7718, label %7741

7718:                                             ; preds = %7671
  %7719 = load ptr, ptr %5, align 8, !tbaa !5
  %7720 = getelementptr inbounds %struct.w2c_hermes, ptr %7719, i32 0, i32 7
  %7721 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7720, i32 0, i32 0
  %7722 = load ptr, ptr %7721, align 8, !tbaa !19
  %7723 = load i32, ptr %22, align 4, !tbaa !9
  %7724 = zext i32 %7723 to i64
  %7725 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7722, i64 %7724
  %7726 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7725, i32 0, i32 1
  %7727 = load ptr, ptr %7726, align 8, !tbaa !20
  %7728 = icmp ne ptr %7727, null
  br i1 %7728, label %7729, label %7741

7729:                                             ; preds = %7718
  %7730 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7731 = load ptr, ptr %5, align 8, !tbaa !5
  %7732 = getelementptr inbounds %struct.w2c_hermes, ptr %7731, i32 0, i32 7
  %7733 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7732, i32 0, i32 0
  %7734 = load ptr, ptr %7733, align 8, !tbaa !19
  %7735 = load i32, ptr %22, align 4, !tbaa !9
  %7736 = zext i32 %7735 to i64
  %7737 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7734, i64 %7736
  %7738 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7737, i32 0, i32 0
  %7739 = load ptr, ptr %7738, align 8, !tbaa !22
  %7740 = call zeroext i1 @func_types_eq(ptr noundef %7730, ptr noundef %7739)
  br label %7741

7741:                                             ; preds = %7729, %7718, %7671
  %7742 = phi i1 [ false, %7718 ], [ false, %7671 ], [ %7740, %7729 ]
  %7743 = xor i1 %7742, true
  %7744 = xor i1 %7743, true
  %7745 = zext i1 %7744 to i32
  %7746 = sext i32 %7745 to i64
  %7747 = call i64 @llvm.expect.i64(i64 %7746, i64 1)
  %7748 = icmp ne i64 %7747, 0
  br i1 %7748, label %7751, label %7749

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

7750:                                             ; No predecessors!
  br label %7751

7751:                                             ; preds = %7750, %7741
  %7752 = phi i1 [ true, %7741 ], [ false, %7750 ]
  %7753 = zext i1 %7752 to i32
  %7754 = load ptr, ptr %5, align 8, !tbaa !5
  %7755 = getelementptr inbounds %struct.w2c_hermes, ptr %7754, i32 0, i32 7
  %7756 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7755, i32 0, i32 0
  %7757 = load ptr, ptr %7756, align 8, !tbaa !19
  %7758 = load i32, ptr %22, align 4, !tbaa !9
  %7759 = zext i32 %7758 to i64
  %7760 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7757, i64 %7759
  %7761 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7760, i32 0, i32 1
  %7762 = load ptr, ptr %7761, align 8, !tbaa !20
  %7763 = load ptr, ptr %5, align 8, !tbaa !5
  %7764 = getelementptr inbounds %struct.w2c_hermes, ptr %7763, i32 0, i32 7
  %7765 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7764, i32 0, i32 0
  %7766 = load ptr, ptr %7765, align 8, !tbaa !19
  %7767 = load i32, ptr %22, align 4, !tbaa !9
  %7768 = zext i32 %7767 to i64
  %7769 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7766, i64 %7768
  %7770 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7769, i32 0, i32 2
  %7771 = load ptr, ptr %7770, align 8, !tbaa !23
  %7772 = load i32, ptr %19, align 4, !tbaa !9
  %7773 = load i32, ptr %20, align 4, !tbaa !9
  %7774 = load i32, ptr %21, align 4, !tbaa !9
  call void %7762(ptr noundef %7771, i32 noundef %7772, i32 noundef %7773, i32 noundef %7774)
  %7775 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7775, ptr %19, align 4, !tbaa !9
  %7776 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7776, ptr %20, align 4, !tbaa !9
  store i32 432, ptr %21, align 4, !tbaa !9
  %7777 = load i32, ptr %21, align 4, !tbaa !9
  %7778 = load i32, ptr %20, align 4, !tbaa !9
  %7779 = add i32 %7778, %7777
  store i32 %7779, ptr %20, align 4, !tbaa !9
  store i32 47949, ptr %21, align 4, !tbaa !9
  %7780 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7780, ptr %22, align 4, !tbaa !9
  %7781 = load ptr, ptr %5, align 8, !tbaa !5
  %7782 = getelementptr inbounds %struct.w2c_hermes, ptr %7781, i32 0, i32 6
  %7783 = load i32, ptr %22, align 4, !tbaa !9
  %7784 = zext i32 %7783 to i64
  %7785 = call i32 @i32_load(ptr noundef %7782, i64 noundef %7784)
  store i32 %7785, ptr %22, align 4, !tbaa !9
  %7786 = load ptr, ptr %5, align 8, !tbaa !5
  %7787 = getelementptr inbounds %struct.w2c_hermes, ptr %7786, i32 0, i32 6
  %7788 = load i32, ptr %22, align 4, !tbaa !9
  %7789 = zext i32 %7788 to i64
  %7790 = add i64 %7789, 36
  %7791 = call i32 @i32_load(ptr noundef %7787, i64 noundef %7790)
  store i32 %7791, ptr %22, align 4, !tbaa !9
  %7792 = load i32, ptr %22, align 4, !tbaa !9
  %7793 = load ptr, ptr %5, align 8, !tbaa !5
  %7794 = getelementptr inbounds %struct.w2c_hermes, ptr %7793, i32 0, i32 7
  %7795 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7794, i32 0, i32 2
  %7796 = load i32, ptr %7795, align 4, !tbaa !18
  %7797 = icmp ult i32 %7792, %7796
  br i1 %7797, label %7798, label %7821

7798:                                             ; preds = %7751
  %7799 = load ptr, ptr %5, align 8, !tbaa !5
  %7800 = getelementptr inbounds %struct.w2c_hermes, ptr %7799, i32 0, i32 7
  %7801 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7800, i32 0, i32 0
  %7802 = load ptr, ptr %7801, align 8, !tbaa !19
  %7803 = load i32, ptr %22, align 4, !tbaa !9
  %7804 = zext i32 %7803 to i64
  %7805 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7802, i64 %7804
  %7806 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7805, i32 0, i32 1
  %7807 = load ptr, ptr %7806, align 8, !tbaa !20
  %7808 = icmp ne ptr %7807, null
  br i1 %7808, label %7809, label %7821

7809:                                             ; preds = %7798
  %7810 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7811 = load ptr, ptr %5, align 8, !tbaa !5
  %7812 = getelementptr inbounds %struct.w2c_hermes, ptr %7811, i32 0, i32 7
  %7813 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7812, i32 0, i32 0
  %7814 = load ptr, ptr %7813, align 8, !tbaa !19
  %7815 = load i32, ptr %22, align 4, !tbaa !9
  %7816 = zext i32 %7815 to i64
  %7817 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7814, i64 %7816
  %7818 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7817, i32 0, i32 0
  %7819 = load ptr, ptr %7818, align 8, !tbaa !22
  %7820 = call zeroext i1 @func_types_eq(ptr noundef %7810, ptr noundef %7819)
  br label %7821

7821:                                             ; preds = %7809, %7798, %7751
  %7822 = phi i1 [ false, %7798 ], [ false, %7751 ], [ %7820, %7809 ]
  %7823 = xor i1 %7822, true
  %7824 = xor i1 %7823, true
  %7825 = zext i1 %7824 to i32
  %7826 = sext i32 %7825 to i64
  %7827 = call i64 @llvm.expect.i64(i64 %7826, i64 1)
  %7828 = icmp ne i64 %7827, 0
  br i1 %7828, label %7831, label %7829

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

7830:                                             ; No predecessors!
  br label %7831

7831:                                             ; preds = %7830, %7821
  %7832 = phi i1 [ true, %7821 ], [ false, %7830 ]
  %7833 = zext i1 %7832 to i32
  %7834 = load ptr, ptr %5, align 8, !tbaa !5
  %7835 = getelementptr inbounds %struct.w2c_hermes, ptr %7834, i32 0, i32 7
  %7836 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7835, i32 0, i32 0
  %7837 = load ptr, ptr %7836, align 8, !tbaa !19
  %7838 = load i32, ptr %22, align 4, !tbaa !9
  %7839 = zext i32 %7838 to i64
  %7840 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7837, i64 %7839
  %7841 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7840, i32 0, i32 1
  %7842 = load ptr, ptr %7841, align 8, !tbaa !20
  %7843 = load ptr, ptr %5, align 8, !tbaa !5
  %7844 = getelementptr inbounds %struct.w2c_hermes, ptr %7843, i32 0, i32 7
  %7845 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7844, i32 0, i32 0
  %7846 = load ptr, ptr %7845, align 8, !tbaa !19
  %7847 = load i32, ptr %22, align 4, !tbaa !9
  %7848 = zext i32 %7847 to i64
  %7849 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7846, i64 %7848
  %7850 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7849, i32 0, i32 2
  %7851 = load ptr, ptr %7850, align 8, !tbaa !23
  %7852 = load i32, ptr %19, align 4, !tbaa !9
  %7853 = load i32, ptr %20, align 4, !tbaa !9
  %7854 = load i32, ptr %21, align 4, !tbaa !9
  call void %7842(ptr noundef %7851, i32 noundef %7852, i32 noundef %7853, i32 noundef %7854)
  %7855 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7855, ptr %19, align 4, !tbaa !9
  %7856 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7856, ptr %20, align 4, !tbaa !9
  store i32 440, ptr %21, align 4, !tbaa !9
  %7857 = load i32, ptr %21, align 4, !tbaa !9
  %7858 = load i32, ptr %20, align 4, !tbaa !9
  %7859 = add i32 %7858, %7857
  store i32 %7859, ptr %20, align 4, !tbaa !9
  store i32 36359, ptr %21, align 4, !tbaa !9
  %7860 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7860, ptr %22, align 4, !tbaa !9
  %7861 = load ptr, ptr %5, align 8, !tbaa !5
  %7862 = getelementptr inbounds %struct.w2c_hermes, ptr %7861, i32 0, i32 6
  %7863 = load i32, ptr %22, align 4, !tbaa !9
  %7864 = zext i32 %7863 to i64
  %7865 = call i32 @i32_load(ptr noundef %7862, i64 noundef %7864)
  store i32 %7865, ptr %22, align 4, !tbaa !9
  %7866 = load ptr, ptr %5, align 8, !tbaa !5
  %7867 = getelementptr inbounds %struct.w2c_hermes, ptr %7866, i32 0, i32 6
  %7868 = load i32, ptr %22, align 4, !tbaa !9
  %7869 = zext i32 %7868 to i64
  %7870 = add i64 %7869, 36
  %7871 = call i32 @i32_load(ptr noundef %7867, i64 noundef %7870)
  store i32 %7871, ptr %22, align 4, !tbaa !9
  %7872 = load i32, ptr %22, align 4, !tbaa !9
  %7873 = load ptr, ptr %5, align 8, !tbaa !5
  %7874 = getelementptr inbounds %struct.w2c_hermes, ptr %7873, i32 0, i32 7
  %7875 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7874, i32 0, i32 2
  %7876 = load i32, ptr %7875, align 4, !tbaa !18
  %7877 = icmp ult i32 %7872, %7876
  br i1 %7877, label %7878, label %7901

7878:                                             ; preds = %7831
  %7879 = load ptr, ptr %5, align 8, !tbaa !5
  %7880 = getelementptr inbounds %struct.w2c_hermes, ptr %7879, i32 0, i32 7
  %7881 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7880, i32 0, i32 0
  %7882 = load ptr, ptr %7881, align 8, !tbaa !19
  %7883 = load i32, ptr %22, align 4, !tbaa !9
  %7884 = zext i32 %7883 to i64
  %7885 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7882, i64 %7884
  %7886 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7885, i32 0, i32 1
  %7887 = load ptr, ptr %7886, align 8, !tbaa !20
  %7888 = icmp ne ptr %7887, null
  br i1 %7888, label %7889, label %7901

7889:                                             ; preds = %7878
  %7890 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7891 = load ptr, ptr %5, align 8, !tbaa !5
  %7892 = getelementptr inbounds %struct.w2c_hermes, ptr %7891, i32 0, i32 7
  %7893 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7892, i32 0, i32 0
  %7894 = load ptr, ptr %7893, align 8, !tbaa !19
  %7895 = load i32, ptr %22, align 4, !tbaa !9
  %7896 = zext i32 %7895 to i64
  %7897 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7894, i64 %7896
  %7898 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7897, i32 0, i32 0
  %7899 = load ptr, ptr %7898, align 8, !tbaa !22
  %7900 = call zeroext i1 @func_types_eq(ptr noundef %7890, ptr noundef %7899)
  br label %7901

7901:                                             ; preds = %7889, %7878, %7831
  %7902 = phi i1 [ false, %7878 ], [ false, %7831 ], [ %7900, %7889 ]
  %7903 = xor i1 %7902, true
  %7904 = xor i1 %7903, true
  %7905 = zext i1 %7904 to i32
  %7906 = sext i32 %7905 to i64
  %7907 = call i64 @llvm.expect.i64(i64 %7906, i64 1)
  %7908 = icmp ne i64 %7907, 0
  br i1 %7908, label %7911, label %7909

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

7910:                                             ; No predecessors!
  br label %7911

7911:                                             ; preds = %7910, %7901
  %7912 = phi i1 [ true, %7901 ], [ false, %7910 ]
  %7913 = zext i1 %7912 to i32
  %7914 = load ptr, ptr %5, align 8, !tbaa !5
  %7915 = getelementptr inbounds %struct.w2c_hermes, ptr %7914, i32 0, i32 7
  %7916 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7915, i32 0, i32 0
  %7917 = load ptr, ptr %7916, align 8, !tbaa !19
  %7918 = load i32, ptr %22, align 4, !tbaa !9
  %7919 = zext i32 %7918 to i64
  %7920 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7917, i64 %7919
  %7921 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7920, i32 0, i32 1
  %7922 = load ptr, ptr %7921, align 8, !tbaa !20
  %7923 = load ptr, ptr %5, align 8, !tbaa !5
  %7924 = getelementptr inbounds %struct.w2c_hermes, ptr %7923, i32 0, i32 7
  %7925 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7924, i32 0, i32 0
  %7926 = load ptr, ptr %7925, align 8, !tbaa !19
  %7927 = load i32, ptr %22, align 4, !tbaa !9
  %7928 = zext i32 %7927 to i64
  %7929 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7926, i64 %7928
  %7930 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7929, i32 0, i32 2
  %7931 = load ptr, ptr %7930, align 8, !tbaa !23
  %7932 = load i32, ptr %19, align 4, !tbaa !9
  %7933 = load i32, ptr %20, align 4, !tbaa !9
  %7934 = load i32, ptr %21, align 4, !tbaa !9
  call void %7922(ptr noundef %7931, i32 noundef %7932, i32 noundef %7933, i32 noundef %7934)
  %7935 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7935, ptr %19, align 4, !tbaa !9
  %7936 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %7936, ptr %20, align 4, !tbaa !9
  store i32 448, ptr %21, align 4, !tbaa !9
  %7937 = load i32, ptr %21, align 4, !tbaa !9
  %7938 = load i32, ptr %20, align 4, !tbaa !9
  %7939 = add i32 %7938, %7937
  store i32 %7939, ptr %20, align 4, !tbaa !9
  store i32 47925, ptr %21, align 4, !tbaa !9
  %7940 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %7940, ptr %22, align 4, !tbaa !9
  %7941 = load ptr, ptr %5, align 8, !tbaa !5
  %7942 = getelementptr inbounds %struct.w2c_hermes, ptr %7941, i32 0, i32 6
  %7943 = load i32, ptr %22, align 4, !tbaa !9
  %7944 = zext i32 %7943 to i64
  %7945 = call i32 @i32_load(ptr noundef %7942, i64 noundef %7944)
  store i32 %7945, ptr %22, align 4, !tbaa !9
  %7946 = load ptr, ptr %5, align 8, !tbaa !5
  %7947 = getelementptr inbounds %struct.w2c_hermes, ptr %7946, i32 0, i32 6
  %7948 = load i32, ptr %22, align 4, !tbaa !9
  %7949 = zext i32 %7948 to i64
  %7950 = add i64 %7949, 36
  %7951 = call i32 @i32_load(ptr noundef %7947, i64 noundef %7950)
  store i32 %7951, ptr %22, align 4, !tbaa !9
  %7952 = load i32, ptr %22, align 4, !tbaa !9
  %7953 = load ptr, ptr %5, align 8, !tbaa !5
  %7954 = getelementptr inbounds %struct.w2c_hermes, ptr %7953, i32 0, i32 7
  %7955 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7954, i32 0, i32 2
  %7956 = load i32, ptr %7955, align 4, !tbaa !18
  %7957 = icmp ult i32 %7952, %7956
  br i1 %7957, label %7958, label %7981

7958:                                             ; preds = %7911
  %7959 = load ptr, ptr %5, align 8, !tbaa !5
  %7960 = getelementptr inbounds %struct.w2c_hermes, ptr %7959, i32 0, i32 7
  %7961 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7960, i32 0, i32 0
  %7962 = load ptr, ptr %7961, align 8, !tbaa !19
  %7963 = load i32, ptr %22, align 4, !tbaa !9
  %7964 = zext i32 %7963 to i64
  %7965 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7962, i64 %7964
  %7966 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7965, i32 0, i32 1
  %7967 = load ptr, ptr %7966, align 8, !tbaa !20
  %7968 = icmp ne ptr %7967, null
  br i1 %7968, label %7969, label %7981

7969:                                             ; preds = %7958
  %7970 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %7971 = load ptr, ptr %5, align 8, !tbaa !5
  %7972 = getelementptr inbounds %struct.w2c_hermes, ptr %7971, i32 0, i32 7
  %7973 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7972, i32 0, i32 0
  %7974 = load ptr, ptr %7973, align 8, !tbaa !19
  %7975 = load i32, ptr %22, align 4, !tbaa !9
  %7976 = zext i32 %7975 to i64
  %7977 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7974, i64 %7976
  %7978 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7977, i32 0, i32 0
  %7979 = load ptr, ptr %7978, align 8, !tbaa !22
  %7980 = call zeroext i1 @func_types_eq(ptr noundef %7970, ptr noundef %7979)
  br label %7981

7981:                                             ; preds = %7969, %7958, %7911
  %7982 = phi i1 [ false, %7958 ], [ false, %7911 ], [ %7980, %7969 ]
  %7983 = xor i1 %7982, true
  %7984 = xor i1 %7983, true
  %7985 = zext i1 %7984 to i32
  %7986 = sext i32 %7985 to i64
  %7987 = call i64 @llvm.expect.i64(i64 %7986, i64 1)
  %7988 = icmp ne i64 %7987, 0
  br i1 %7988, label %7991, label %7989

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

7990:                                             ; No predecessors!
  br label %7991

7991:                                             ; preds = %7990, %7981
  %7992 = phi i1 [ true, %7981 ], [ false, %7990 ]
  %7993 = zext i1 %7992 to i32
  %7994 = load ptr, ptr %5, align 8, !tbaa !5
  %7995 = getelementptr inbounds %struct.w2c_hermes, ptr %7994, i32 0, i32 7
  %7996 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %7995, i32 0, i32 0
  %7997 = load ptr, ptr %7996, align 8, !tbaa !19
  %7998 = load i32, ptr %22, align 4, !tbaa !9
  %7999 = zext i32 %7998 to i64
  %8000 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %7997, i64 %7999
  %8001 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8000, i32 0, i32 1
  %8002 = load ptr, ptr %8001, align 8, !tbaa !20
  %8003 = load ptr, ptr %5, align 8, !tbaa !5
  %8004 = getelementptr inbounds %struct.w2c_hermes, ptr %8003, i32 0, i32 7
  %8005 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8004, i32 0, i32 0
  %8006 = load ptr, ptr %8005, align 8, !tbaa !19
  %8007 = load i32, ptr %22, align 4, !tbaa !9
  %8008 = zext i32 %8007 to i64
  %8009 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8006, i64 %8008
  %8010 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8009, i32 0, i32 2
  %8011 = load ptr, ptr %8010, align 8, !tbaa !23
  %8012 = load i32, ptr %19, align 4, !tbaa !9
  %8013 = load i32, ptr %20, align 4, !tbaa !9
  %8014 = load i32, ptr %21, align 4, !tbaa !9
  call void %8002(ptr noundef %8011, i32 noundef %8012, i32 noundef %8013, i32 noundef %8014)
  %8015 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8015, ptr %19, align 4, !tbaa !9
  %8016 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8016, ptr %20, align 4, !tbaa !9
  store i32 456, ptr %21, align 4, !tbaa !9
  %8017 = load i32, ptr %21, align 4, !tbaa !9
  %8018 = load i32, ptr %20, align 4, !tbaa !9
  %8019 = add i32 %8018, %8017
  store i32 %8019, ptr %20, align 4, !tbaa !9
  store i32 36333, ptr %21, align 4, !tbaa !9
  %8020 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8020, ptr %22, align 4, !tbaa !9
  %8021 = load ptr, ptr %5, align 8, !tbaa !5
  %8022 = getelementptr inbounds %struct.w2c_hermes, ptr %8021, i32 0, i32 6
  %8023 = load i32, ptr %22, align 4, !tbaa !9
  %8024 = zext i32 %8023 to i64
  %8025 = call i32 @i32_load(ptr noundef %8022, i64 noundef %8024)
  store i32 %8025, ptr %22, align 4, !tbaa !9
  %8026 = load ptr, ptr %5, align 8, !tbaa !5
  %8027 = getelementptr inbounds %struct.w2c_hermes, ptr %8026, i32 0, i32 6
  %8028 = load i32, ptr %22, align 4, !tbaa !9
  %8029 = zext i32 %8028 to i64
  %8030 = add i64 %8029, 36
  %8031 = call i32 @i32_load(ptr noundef %8027, i64 noundef %8030)
  store i32 %8031, ptr %22, align 4, !tbaa !9
  %8032 = load i32, ptr %22, align 4, !tbaa !9
  %8033 = load ptr, ptr %5, align 8, !tbaa !5
  %8034 = getelementptr inbounds %struct.w2c_hermes, ptr %8033, i32 0, i32 7
  %8035 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8034, i32 0, i32 2
  %8036 = load i32, ptr %8035, align 4, !tbaa !18
  %8037 = icmp ult i32 %8032, %8036
  br i1 %8037, label %8038, label %8061

8038:                                             ; preds = %7991
  %8039 = load ptr, ptr %5, align 8, !tbaa !5
  %8040 = getelementptr inbounds %struct.w2c_hermes, ptr %8039, i32 0, i32 7
  %8041 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8040, i32 0, i32 0
  %8042 = load ptr, ptr %8041, align 8, !tbaa !19
  %8043 = load i32, ptr %22, align 4, !tbaa !9
  %8044 = zext i32 %8043 to i64
  %8045 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8042, i64 %8044
  %8046 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8045, i32 0, i32 1
  %8047 = load ptr, ptr %8046, align 8, !tbaa !20
  %8048 = icmp ne ptr %8047, null
  br i1 %8048, label %8049, label %8061

8049:                                             ; preds = %8038
  %8050 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8051 = load ptr, ptr %5, align 8, !tbaa !5
  %8052 = getelementptr inbounds %struct.w2c_hermes, ptr %8051, i32 0, i32 7
  %8053 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8052, i32 0, i32 0
  %8054 = load ptr, ptr %8053, align 8, !tbaa !19
  %8055 = load i32, ptr %22, align 4, !tbaa !9
  %8056 = zext i32 %8055 to i64
  %8057 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8054, i64 %8056
  %8058 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8057, i32 0, i32 0
  %8059 = load ptr, ptr %8058, align 8, !tbaa !22
  %8060 = call zeroext i1 @func_types_eq(ptr noundef %8050, ptr noundef %8059)
  br label %8061

8061:                                             ; preds = %8049, %8038, %7991
  %8062 = phi i1 [ false, %8038 ], [ false, %7991 ], [ %8060, %8049 ]
  %8063 = xor i1 %8062, true
  %8064 = xor i1 %8063, true
  %8065 = zext i1 %8064 to i32
  %8066 = sext i32 %8065 to i64
  %8067 = call i64 @llvm.expect.i64(i64 %8066, i64 1)
  %8068 = icmp ne i64 %8067, 0
  br i1 %8068, label %8071, label %8069

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

8070:                                             ; No predecessors!
  br label %8071

8071:                                             ; preds = %8070, %8061
  %8072 = phi i1 [ true, %8061 ], [ false, %8070 ]
  %8073 = zext i1 %8072 to i32
  %8074 = load ptr, ptr %5, align 8, !tbaa !5
  %8075 = getelementptr inbounds %struct.w2c_hermes, ptr %8074, i32 0, i32 7
  %8076 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8075, i32 0, i32 0
  %8077 = load ptr, ptr %8076, align 8, !tbaa !19
  %8078 = load i32, ptr %22, align 4, !tbaa !9
  %8079 = zext i32 %8078 to i64
  %8080 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8077, i64 %8079
  %8081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8080, i32 0, i32 1
  %8082 = load ptr, ptr %8081, align 8, !tbaa !20
  %8083 = load ptr, ptr %5, align 8, !tbaa !5
  %8084 = getelementptr inbounds %struct.w2c_hermes, ptr %8083, i32 0, i32 7
  %8085 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8084, i32 0, i32 0
  %8086 = load ptr, ptr %8085, align 8, !tbaa !19
  %8087 = load i32, ptr %22, align 4, !tbaa !9
  %8088 = zext i32 %8087 to i64
  %8089 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8086, i64 %8088
  %8090 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8089, i32 0, i32 2
  %8091 = load ptr, ptr %8090, align 8, !tbaa !23
  %8092 = load i32, ptr %19, align 4, !tbaa !9
  %8093 = load i32, ptr %20, align 4, !tbaa !9
  %8094 = load i32, ptr %21, align 4, !tbaa !9
  call void %8082(ptr noundef %8091, i32 noundef %8092, i32 noundef %8093, i32 noundef %8094)
  %8095 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8095, ptr %19, align 4, !tbaa !9
  %8096 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8096, ptr %20, align 4, !tbaa !9
  store i32 464, ptr %21, align 4, !tbaa !9
  %8097 = load i32, ptr %21, align 4, !tbaa !9
  %8098 = load i32, ptr %20, align 4, !tbaa !9
  %8099 = add i32 %8098, %8097
  store i32 %8099, ptr %20, align 4, !tbaa !9
  store i32 48091, ptr %21, align 4, !tbaa !9
  %8100 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8100, ptr %22, align 4, !tbaa !9
  %8101 = load ptr, ptr %5, align 8, !tbaa !5
  %8102 = getelementptr inbounds %struct.w2c_hermes, ptr %8101, i32 0, i32 6
  %8103 = load i32, ptr %22, align 4, !tbaa !9
  %8104 = zext i32 %8103 to i64
  %8105 = call i32 @i32_load(ptr noundef %8102, i64 noundef %8104)
  store i32 %8105, ptr %22, align 4, !tbaa !9
  %8106 = load ptr, ptr %5, align 8, !tbaa !5
  %8107 = getelementptr inbounds %struct.w2c_hermes, ptr %8106, i32 0, i32 6
  %8108 = load i32, ptr %22, align 4, !tbaa !9
  %8109 = zext i32 %8108 to i64
  %8110 = add i64 %8109, 36
  %8111 = call i32 @i32_load(ptr noundef %8107, i64 noundef %8110)
  store i32 %8111, ptr %22, align 4, !tbaa !9
  %8112 = load i32, ptr %22, align 4, !tbaa !9
  %8113 = load ptr, ptr %5, align 8, !tbaa !5
  %8114 = getelementptr inbounds %struct.w2c_hermes, ptr %8113, i32 0, i32 7
  %8115 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8114, i32 0, i32 2
  %8116 = load i32, ptr %8115, align 4, !tbaa !18
  %8117 = icmp ult i32 %8112, %8116
  br i1 %8117, label %8118, label %8141

8118:                                             ; preds = %8071
  %8119 = load ptr, ptr %5, align 8, !tbaa !5
  %8120 = getelementptr inbounds %struct.w2c_hermes, ptr %8119, i32 0, i32 7
  %8121 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8120, i32 0, i32 0
  %8122 = load ptr, ptr %8121, align 8, !tbaa !19
  %8123 = load i32, ptr %22, align 4, !tbaa !9
  %8124 = zext i32 %8123 to i64
  %8125 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8122, i64 %8124
  %8126 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8125, i32 0, i32 1
  %8127 = load ptr, ptr %8126, align 8, !tbaa !20
  %8128 = icmp ne ptr %8127, null
  br i1 %8128, label %8129, label %8141

8129:                                             ; preds = %8118
  %8130 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8131 = load ptr, ptr %5, align 8, !tbaa !5
  %8132 = getelementptr inbounds %struct.w2c_hermes, ptr %8131, i32 0, i32 7
  %8133 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8132, i32 0, i32 0
  %8134 = load ptr, ptr %8133, align 8, !tbaa !19
  %8135 = load i32, ptr %22, align 4, !tbaa !9
  %8136 = zext i32 %8135 to i64
  %8137 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8134, i64 %8136
  %8138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8137, i32 0, i32 0
  %8139 = load ptr, ptr %8138, align 8, !tbaa !22
  %8140 = call zeroext i1 @func_types_eq(ptr noundef %8130, ptr noundef %8139)
  br label %8141

8141:                                             ; preds = %8129, %8118, %8071
  %8142 = phi i1 [ false, %8118 ], [ false, %8071 ], [ %8140, %8129 ]
  %8143 = xor i1 %8142, true
  %8144 = xor i1 %8143, true
  %8145 = zext i1 %8144 to i32
  %8146 = sext i32 %8145 to i64
  %8147 = call i64 @llvm.expect.i64(i64 %8146, i64 1)
  %8148 = icmp ne i64 %8147, 0
  br i1 %8148, label %8151, label %8149

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

8150:                                             ; No predecessors!
  br label %8151

8151:                                             ; preds = %8150, %8141
  %8152 = phi i1 [ true, %8141 ], [ false, %8150 ]
  %8153 = zext i1 %8152 to i32
  %8154 = load ptr, ptr %5, align 8, !tbaa !5
  %8155 = getelementptr inbounds %struct.w2c_hermes, ptr %8154, i32 0, i32 7
  %8156 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8155, i32 0, i32 0
  %8157 = load ptr, ptr %8156, align 8, !tbaa !19
  %8158 = load i32, ptr %22, align 4, !tbaa !9
  %8159 = zext i32 %8158 to i64
  %8160 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8157, i64 %8159
  %8161 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8160, i32 0, i32 1
  %8162 = load ptr, ptr %8161, align 8, !tbaa !20
  %8163 = load ptr, ptr %5, align 8, !tbaa !5
  %8164 = getelementptr inbounds %struct.w2c_hermes, ptr %8163, i32 0, i32 7
  %8165 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8164, i32 0, i32 0
  %8166 = load ptr, ptr %8165, align 8, !tbaa !19
  %8167 = load i32, ptr %22, align 4, !tbaa !9
  %8168 = zext i32 %8167 to i64
  %8169 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8166, i64 %8168
  %8170 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8169, i32 0, i32 2
  %8171 = load ptr, ptr %8170, align 8, !tbaa !23
  %8172 = load i32, ptr %19, align 4, !tbaa !9
  %8173 = load i32, ptr %20, align 4, !tbaa !9
  %8174 = load i32, ptr %21, align 4, !tbaa !9
  call void %8162(ptr noundef %8171, i32 noundef %8172, i32 noundef %8173, i32 noundef %8174)
  %8175 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8175, ptr %19, align 4, !tbaa !9
  %8176 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8176, ptr %20, align 4, !tbaa !9
  store i32 472, ptr %21, align 4, !tbaa !9
  %8177 = load i32, ptr %21, align 4, !tbaa !9
  %8178 = load i32, ptr %20, align 4, !tbaa !9
  %8179 = add i32 %8178, %8177
  store i32 %8179, ptr %20, align 4, !tbaa !9
  store i32 48178, ptr %21, align 4, !tbaa !9
  %8180 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8180, ptr %22, align 4, !tbaa !9
  %8181 = load ptr, ptr %5, align 8, !tbaa !5
  %8182 = getelementptr inbounds %struct.w2c_hermes, ptr %8181, i32 0, i32 6
  %8183 = load i32, ptr %22, align 4, !tbaa !9
  %8184 = zext i32 %8183 to i64
  %8185 = call i32 @i32_load(ptr noundef %8182, i64 noundef %8184)
  store i32 %8185, ptr %22, align 4, !tbaa !9
  %8186 = load ptr, ptr %5, align 8, !tbaa !5
  %8187 = getelementptr inbounds %struct.w2c_hermes, ptr %8186, i32 0, i32 6
  %8188 = load i32, ptr %22, align 4, !tbaa !9
  %8189 = zext i32 %8188 to i64
  %8190 = add i64 %8189, 36
  %8191 = call i32 @i32_load(ptr noundef %8187, i64 noundef %8190)
  store i32 %8191, ptr %22, align 4, !tbaa !9
  %8192 = load i32, ptr %22, align 4, !tbaa !9
  %8193 = load ptr, ptr %5, align 8, !tbaa !5
  %8194 = getelementptr inbounds %struct.w2c_hermes, ptr %8193, i32 0, i32 7
  %8195 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8194, i32 0, i32 2
  %8196 = load i32, ptr %8195, align 4, !tbaa !18
  %8197 = icmp ult i32 %8192, %8196
  br i1 %8197, label %8198, label %8221

8198:                                             ; preds = %8151
  %8199 = load ptr, ptr %5, align 8, !tbaa !5
  %8200 = getelementptr inbounds %struct.w2c_hermes, ptr %8199, i32 0, i32 7
  %8201 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8200, i32 0, i32 0
  %8202 = load ptr, ptr %8201, align 8, !tbaa !19
  %8203 = load i32, ptr %22, align 4, !tbaa !9
  %8204 = zext i32 %8203 to i64
  %8205 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8202, i64 %8204
  %8206 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8205, i32 0, i32 1
  %8207 = load ptr, ptr %8206, align 8, !tbaa !20
  %8208 = icmp ne ptr %8207, null
  br i1 %8208, label %8209, label %8221

8209:                                             ; preds = %8198
  %8210 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8211 = load ptr, ptr %5, align 8, !tbaa !5
  %8212 = getelementptr inbounds %struct.w2c_hermes, ptr %8211, i32 0, i32 7
  %8213 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8212, i32 0, i32 0
  %8214 = load ptr, ptr %8213, align 8, !tbaa !19
  %8215 = load i32, ptr %22, align 4, !tbaa !9
  %8216 = zext i32 %8215 to i64
  %8217 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8214, i64 %8216
  %8218 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8217, i32 0, i32 0
  %8219 = load ptr, ptr %8218, align 8, !tbaa !22
  %8220 = call zeroext i1 @func_types_eq(ptr noundef %8210, ptr noundef %8219)
  br label %8221

8221:                                             ; preds = %8209, %8198, %8151
  %8222 = phi i1 [ false, %8198 ], [ false, %8151 ], [ %8220, %8209 ]
  %8223 = xor i1 %8222, true
  %8224 = xor i1 %8223, true
  %8225 = zext i1 %8224 to i32
  %8226 = sext i32 %8225 to i64
  %8227 = call i64 @llvm.expect.i64(i64 %8226, i64 1)
  %8228 = icmp ne i64 %8227, 0
  br i1 %8228, label %8231, label %8229

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

8230:                                             ; No predecessors!
  br label %8231

8231:                                             ; preds = %8230, %8221
  %8232 = phi i1 [ true, %8221 ], [ false, %8230 ]
  %8233 = zext i1 %8232 to i32
  %8234 = load ptr, ptr %5, align 8, !tbaa !5
  %8235 = getelementptr inbounds %struct.w2c_hermes, ptr %8234, i32 0, i32 7
  %8236 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8235, i32 0, i32 0
  %8237 = load ptr, ptr %8236, align 8, !tbaa !19
  %8238 = load i32, ptr %22, align 4, !tbaa !9
  %8239 = zext i32 %8238 to i64
  %8240 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8237, i64 %8239
  %8241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8240, i32 0, i32 1
  %8242 = load ptr, ptr %8241, align 8, !tbaa !20
  %8243 = load ptr, ptr %5, align 8, !tbaa !5
  %8244 = getelementptr inbounds %struct.w2c_hermes, ptr %8243, i32 0, i32 7
  %8245 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8244, i32 0, i32 0
  %8246 = load ptr, ptr %8245, align 8, !tbaa !19
  %8247 = load i32, ptr %22, align 4, !tbaa !9
  %8248 = zext i32 %8247 to i64
  %8249 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8246, i64 %8248
  %8250 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8249, i32 0, i32 2
  %8251 = load ptr, ptr %8250, align 8, !tbaa !23
  %8252 = load i32, ptr %19, align 4, !tbaa !9
  %8253 = load i32, ptr %20, align 4, !tbaa !9
  %8254 = load i32, ptr %21, align 4, !tbaa !9
  call void %8242(ptr noundef %8251, i32 noundef %8252, i32 noundef %8253, i32 noundef %8254)
  %8255 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8255, ptr %19, align 4, !tbaa !9
  %8256 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8256, ptr %20, align 4, !tbaa !9
  store i32 480, ptr %21, align 4, !tbaa !9
  %8257 = load i32, ptr %21, align 4, !tbaa !9
  %8258 = load i32, ptr %20, align 4, !tbaa !9
  %8259 = add i32 %8258, %8257
  store i32 %8259, ptr %20, align 4, !tbaa !9
  store i32 48553, ptr %21, align 4, !tbaa !9
  %8260 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8260, ptr %22, align 4, !tbaa !9
  %8261 = load ptr, ptr %5, align 8, !tbaa !5
  %8262 = getelementptr inbounds %struct.w2c_hermes, ptr %8261, i32 0, i32 6
  %8263 = load i32, ptr %22, align 4, !tbaa !9
  %8264 = zext i32 %8263 to i64
  %8265 = call i32 @i32_load(ptr noundef %8262, i64 noundef %8264)
  store i32 %8265, ptr %22, align 4, !tbaa !9
  %8266 = load ptr, ptr %5, align 8, !tbaa !5
  %8267 = getelementptr inbounds %struct.w2c_hermes, ptr %8266, i32 0, i32 6
  %8268 = load i32, ptr %22, align 4, !tbaa !9
  %8269 = zext i32 %8268 to i64
  %8270 = add i64 %8269, 36
  %8271 = call i32 @i32_load(ptr noundef %8267, i64 noundef %8270)
  store i32 %8271, ptr %22, align 4, !tbaa !9
  %8272 = load i32, ptr %22, align 4, !tbaa !9
  %8273 = load ptr, ptr %5, align 8, !tbaa !5
  %8274 = getelementptr inbounds %struct.w2c_hermes, ptr %8273, i32 0, i32 7
  %8275 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8274, i32 0, i32 2
  %8276 = load i32, ptr %8275, align 4, !tbaa !18
  %8277 = icmp ult i32 %8272, %8276
  br i1 %8277, label %8278, label %8301

8278:                                             ; preds = %8231
  %8279 = load ptr, ptr %5, align 8, !tbaa !5
  %8280 = getelementptr inbounds %struct.w2c_hermes, ptr %8279, i32 0, i32 7
  %8281 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8280, i32 0, i32 0
  %8282 = load ptr, ptr %8281, align 8, !tbaa !19
  %8283 = load i32, ptr %22, align 4, !tbaa !9
  %8284 = zext i32 %8283 to i64
  %8285 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8282, i64 %8284
  %8286 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8285, i32 0, i32 1
  %8287 = load ptr, ptr %8286, align 8, !tbaa !20
  %8288 = icmp ne ptr %8287, null
  br i1 %8288, label %8289, label %8301

8289:                                             ; preds = %8278
  %8290 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8291 = load ptr, ptr %5, align 8, !tbaa !5
  %8292 = getelementptr inbounds %struct.w2c_hermes, ptr %8291, i32 0, i32 7
  %8293 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8292, i32 0, i32 0
  %8294 = load ptr, ptr %8293, align 8, !tbaa !19
  %8295 = load i32, ptr %22, align 4, !tbaa !9
  %8296 = zext i32 %8295 to i64
  %8297 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8294, i64 %8296
  %8298 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8297, i32 0, i32 0
  %8299 = load ptr, ptr %8298, align 8, !tbaa !22
  %8300 = call zeroext i1 @func_types_eq(ptr noundef %8290, ptr noundef %8299)
  br label %8301

8301:                                             ; preds = %8289, %8278, %8231
  %8302 = phi i1 [ false, %8278 ], [ false, %8231 ], [ %8300, %8289 ]
  %8303 = xor i1 %8302, true
  %8304 = xor i1 %8303, true
  %8305 = zext i1 %8304 to i32
  %8306 = sext i32 %8305 to i64
  %8307 = call i64 @llvm.expect.i64(i64 %8306, i64 1)
  %8308 = icmp ne i64 %8307, 0
  br i1 %8308, label %8311, label %8309

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

8310:                                             ; No predecessors!
  br label %8311

8311:                                             ; preds = %8310, %8301
  %8312 = phi i1 [ true, %8301 ], [ false, %8310 ]
  %8313 = zext i1 %8312 to i32
  %8314 = load ptr, ptr %5, align 8, !tbaa !5
  %8315 = getelementptr inbounds %struct.w2c_hermes, ptr %8314, i32 0, i32 7
  %8316 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8315, i32 0, i32 0
  %8317 = load ptr, ptr %8316, align 8, !tbaa !19
  %8318 = load i32, ptr %22, align 4, !tbaa !9
  %8319 = zext i32 %8318 to i64
  %8320 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8317, i64 %8319
  %8321 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8320, i32 0, i32 1
  %8322 = load ptr, ptr %8321, align 8, !tbaa !20
  %8323 = load ptr, ptr %5, align 8, !tbaa !5
  %8324 = getelementptr inbounds %struct.w2c_hermes, ptr %8323, i32 0, i32 7
  %8325 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8324, i32 0, i32 0
  %8326 = load ptr, ptr %8325, align 8, !tbaa !19
  %8327 = load i32, ptr %22, align 4, !tbaa !9
  %8328 = zext i32 %8327 to i64
  %8329 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8326, i64 %8328
  %8330 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8329, i32 0, i32 2
  %8331 = load ptr, ptr %8330, align 8, !tbaa !23
  %8332 = load i32, ptr %19, align 4, !tbaa !9
  %8333 = load i32, ptr %20, align 4, !tbaa !9
  %8334 = load i32, ptr %21, align 4, !tbaa !9
  call void %8322(ptr noundef %8331, i32 noundef %8332, i32 noundef %8333, i32 noundef %8334)
  %8335 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8335, ptr %19, align 4, !tbaa !9
  %8336 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8336, ptr %20, align 4, !tbaa !9
  store i32 488, ptr %21, align 4, !tbaa !9
  %8337 = load i32, ptr %21, align 4, !tbaa !9
  %8338 = load i32, ptr %20, align 4, !tbaa !9
  %8339 = add i32 %8338, %8337
  store i32 %8339, ptr %20, align 4, !tbaa !9
  store i32 48199, ptr %21, align 4, !tbaa !9
  %8340 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8340, ptr %22, align 4, !tbaa !9
  %8341 = load ptr, ptr %5, align 8, !tbaa !5
  %8342 = getelementptr inbounds %struct.w2c_hermes, ptr %8341, i32 0, i32 6
  %8343 = load i32, ptr %22, align 4, !tbaa !9
  %8344 = zext i32 %8343 to i64
  %8345 = call i32 @i32_load(ptr noundef %8342, i64 noundef %8344)
  store i32 %8345, ptr %22, align 4, !tbaa !9
  %8346 = load ptr, ptr %5, align 8, !tbaa !5
  %8347 = getelementptr inbounds %struct.w2c_hermes, ptr %8346, i32 0, i32 6
  %8348 = load i32, ptr %22, align 4, !tbaa !9
  %8349 = zext i32 %8348 to i64
  %8350 = add i64 %8349, 36
  %8351 = call i32 @i32_load(ptr noundef %8347, i64 noundef %8350)
  store i32 %8351, ptr %22, align 4, !tbaa !9
  %8352 = load i32, ptr %22, align 4, !tbaa !9
  %8353 = load ptr, ptr %5, align 8, !tbaa !5
  %8354 = getelementptr inbounds %struct.w2c_hermes, ptr %8353, i32 0, i32 7
  %8355 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8354, i32 0, i32 2
  %8356 = load i32, ptr %8355, align 4, !tbaa !18
  %8357 = icmp ult i32 %8352, %8356
  br i1 %8357, label %8358, label %8381

8358:                                             ; preds = %8311
  %8359 = load ptr, ptr %5, align 8, !tbaa !5
  %8360 = getelementptr inbounds %struct.w2c_hermes, ptr %8359, i32 0, i32 7
  %8361 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8360, i32 0, i32 0
  %8362 = load ptr, ptr %8361, align 8, !tbaa !19
  %8363 = load i32, ptr %22, align 4, !tbaa !9
  %8364 = zext i32 %8363 to i64
  %8365 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8362, i64 %8364
  %8366 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8365, i32 0, i32 1
  %8367 = load ptr, ptr %8366, align 8, !tbaa !20
  %8368 = icmp ne ptr %8367, null
  br i1 %8368, label %8369, label %8381

8369:                                             ; preds = %8358
  %8370 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8371 = load ptr, ptr %5, align 8, !tbaa !5
  %8372 = getelementptr inbounds %struct.w2c_hermes, ptr %8371, i32 0, i32 7
  %8373 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8372, i32 0, i32 0
  %8374 = load ptr, ptr %8373, align 8, !tbaa !19
  %8375 = load i32, ptr %22, align 4, !tbaa !9
  %8376 = zext i32 %8375 to i64
  %8377 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8374, i64 %8376
  %8378 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8377, i32 0, i32 0
  %8379 = load ptr, ptr %8378, align 8, !tbaa !22
  %8380 = call zeroext i1 @func_types_eq(ptr noundef %8370, ptr noundef %8379)
  br label %8381

8381:                                             ; preds = %8369, %8358, %8311
  %8382 = phi i1 [ false, %8358 ], [ false, %8311 ], [ %8380, %8369 ]
  %8383 = xor i1 %8382, true
  %8384 = xor i1 %8383, true
  %8385 = zext i1 %8384 to i32
  %8386 = sext i32 %8385 to i64
  %8387 = call i64 @llvm.expect.i64(i64 %8386, i64 1)
  %8388 = icmp ne i64 %8387, 0
  br i1 %8388, label %8391, label %8389

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

8390:                                             ; No predecessors!
  br label %8391

8391:                                             ; preds = %8390, %8381
  %8392 = phi i1 [ true, %8381 ], [ false, %8390 ]
  %8393 = zext i1 %8392 to i32
  %8394 = load ptr, ptr %5, align 8, !tbaa !5
  %8395 = getelementptr inbounds %struct.w2c_hermes, ptr %8394, i32 0, i32 7
  %8396 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8395, i32 0, i32 0
  %8397 = load ptr, ptr %8396, align 8, !tbaa !19
  %8398 = load i32, ptr %22, align 4, !tbaa !9
  %8399 = zext i32 %8398 to i64
  %8400 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8397, i64 %8399
  %8401 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8400, i32 0, i32 1
  %8402 = load ptr, ptr %8401, align 8, !tbaa !20
  %8403 = load ptr, ptr %5, align 8, !tbaa !5
  %8404 = getelementptr inbounds %struct.w2c_hermes, ptr %8403, i32 0, i32 7
  %8405 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8404, i32 0, i32 0
  %8406 = load ptr, ptr %8405, align 8, !tbaa !19
  %8407 = load i32, ptr %22, align 4, !tbaa !9
  %8408 = zext i32 %8407 to i64
  %8409 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8406, i64 %8408
  %8410 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8409, i32 0, i32 2
  %8411 = load ptr, ptr %8410, align 8, !tbaa !23
  %8412 = load i32, ptr %19, align 4, !tbaa !9
  %8413 = load i32, ptr %20, align 4, !tbaa !9
  %8414 = load i32, ptr %21, align 4, !tbaa !9
  call void %8402(ptr noundef %8411, i32 noundef %8412, i32 noundef %8413, i32 noundef %8414)
  %8415 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8415, ptr %19, align 4, !tbaa !9
  %8416 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8416, ptr %20, align 4, !tbaa !9
  store i32 496, ptr %21, align 4, !tbaa !9
  %8417 = load i32, ptr %21, align 4, !tbaa !9
  %8418 = load i32, ptr %20, align 4, !tbaa !9
  %8419 = add i32 %8418, %8417
  store i32 %8419, ptr %20, align 4, !tbaa !9
  store i32 48566, ptr %21, align 4, !tbaa !9
  %8420 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8420, ptr %22, align 4, !tbaa !9
  %8421 = load ptr, ptr %5, align 8, !tbaa !5
  %8422 = getelementptr inbounds %struct.w2c_hermes, ptr %8421, i32 0, i32 6
  %8423 = load i32, ptr %22, align 4, !tbaa !9
  %8424 = zext i32 %8423 to i64
  %8425 = call i32 @i32_load(ptr noundef %8422, i64 noundef %8424)
  store i32 %8425, ptr %22, align 4, !tbaa !9
  %8426 = load ptr, ptr %5, align 8, !tbaa !5
  %8427 = getelementptr inbounds %struct.w2c_hermes, ptr %8426, i32 0, i32 6
  %8428 = load i32, ptr %22, align 4, !tbaa !9
  %8429 = zext i32 %8428 to i64
  %8430 = add i64 %8429, 36
  %8431 = call i32 @i32_load(ptr noundef %8427, i64 noundef %8430)
  store i32 %8431, ptr %22, align 4, !tbaa !9
  %8432 = load i32, ptr %22, align 4, !tbaa !9
  %8433 = load ptr, ptr %5, align 8, !tbaa !5
  %8434 = getelementptr inbounds %struct.w2c_hermes, ptr %8433, i32 0, i32 7
  %8435 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8434, i32 0, i32 2
  %8436 = load i32, ptr %8435, align 4, !tbaa !18
  %8437 = icmp ult i32 %8432, %8436
  br i1 %8437, label %8438, label %8461

8438:                                             ; preds = %8391
  %8439 = load ptr, ptr %5, align 8, !tbaa !5
  %8440 = getelementptr inbounds %struct.w2c_hermes, ptr %8439, i32 0, i32 7
  %8441 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8440, i32 0, i32 0
  %8442 = load ptr, ptr %8441, align 8, !tbaa !19
  %8443 = load i32, ptr %22, align 4, !tbaa !9
  %8444 = zext i32 %8443 to i64
  %8445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8442, i64 %8444
  %8446 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8445, i32 0, i32 1
  %8447 = load ptr, ptr %8446, align 8, !tbaa !20
  %8448 = icmp ne ptr %8447, null
  br i1 %8448, label %8449, label %8461

8449:                                             ; preds = %8438
  %8450 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8451 = load ptr, ptr %5, align 8, !tbaa !5
  %8452 = getelementptr inbounds %struct.w2c_hermes, ptr %8451, i32 0, i32 7
  %8453 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8452, i32 0, i32 0
  %8454 = load ptr, ptr %8453, align 8, !tbaa !19
  %8455 = load i32, ptr %22, align 4, !tbaa !9
  %8456 = zext i32 %8455 to i64
  %8457 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8454, i64 %8456
  %8458 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8457, i32 0, i32 0
  %8459 = load ptr, ptr %8458, align 8, !tbaa !22
  %8460 = call zeroext i1 @func_types_eq(ptr noundef %8450, ptr noundef %8459)
  br label %8461

8461:                                             ; preds = %8449, %8438, %8391
  %8462 = phi i1 [ false, %8438 ], [ false, %8391 ], [ %8460, %8449 ]
  %8463 = xor i1 %8462, true
  %8464 = xor i1 %8463, true
  %8465 = zext i1 %8464 to i32
  %8466 = sext i32 %8465 to i64
  %8467 = call i64 @llvm.expect.i64(i64 %8466, i64 1)
  %8468 = icmp ne i64 %8467, 0
  br i1 %8468, label %8471, label %8469

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

8470:                                             ; No predecessors!
  br label %8471

8471:                                             ; preds = %8470, %8461
  %8472 = phi i1 [ true, %8461 ], [ false, %8470 ]
  %8473 = zext i1 %8472 to i32
  %8474 = load ptr, ptr %5, align 8, !tbaa !5
  %8475 = getelementptr inbounds %struct.w2c_hermes, ptr %8474, i32 0, i32 7
  %8476 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8475, i32 0, i32 0
  %8477 = load ptr, ptr %8476, align 8, !tbaa !19
  %8478 = load i32, ptr %22, align 4, !tbaa !9
  %8479 = zext i32 %8478 to i64
  %8480 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8477, i64 %8479
  %8481 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8480, i32 0, i32 1
  %8482 = load ptr, ptr %8481, align 8, !tbaa !20
  %8483 = load ptr, ptr %5, align 8, !tbaa !5
  %8484 = getelementptr inbounds %struct.w2c_hermes, ptr %8483, i32 0, i32 7
  %8485 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8484, i32 0, i32 0
  %8486 = load ptr, ptr %8485, align 8, !tbaa !19
  %8487 = load i32, ptr %22, align 4, !tbaa !9
  %8488 = zext i32 %8487 to i64
  %8489 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8486, i64 %8488
  %8490 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8489, i32 0, i32 2
  %8491 = load ptr, ptr %8490, align 8, !tbaa !23
  %8492 = load i32, ptr %19, align 4, !tbaa !9
  %8493 = load i32, ptr %20, align 4, !tbaa !9
  %8494 = load i32, ptr %21, align 4, !tbaa !9
  call void %8482(ptr noundef %8491, i32 noundef %8492, i32 noundef %8493, i32 noundef %8494)
  %8495 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8495, ptr %19, align 4, !tbaa !9
  %8496 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8496, ptr %20, align 4, !tbaa !9
  store i32 504, ptr %21, align 4, !tbaa !9
  %8497 = load i32, ptr %21, align 4, !tbaa !9
  %8498 = load i32, ptr %20, align 4, !tbaa !9
  %8499 = add i32 %8498, %8497
  store i32 %8499, ptr %20, align 4, !tbaa !9
  store i32 48104, ptr %21, align 4, !tbaa !9
  %8500 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8500, ptr %22, align 4, !tbaa !9
  %8501 = load ptr, ptr %5, align 8, !tbaa !5
  %8502 = getelementptr inbounds %struct.w2c_hermes, ptr %8501, i32 0, i32 6
  %8503 = load i32, ptr %22, align 4, !tbaa !9
  %8504 = zext i32 %8503 to i64
  %8505 = call i32 @i32_load(ptr noundef %8502, i64 noundef %8504)
  store i32 %8505, ptr %22, align 4, !tbaa !9
  %8506 = load ptr, ptr %5, align 8, !tbaa !5
  %8507 = getelementptr inbounds %struct.w2c_hermes, ptr %8506, i32 0, i32 6
  %8508 = load i32, ptr %22, align 4, !tbaa !9
  %8509 = zext i32 %8508 to i64
  %8510 = add i64 %8509, 36
  %8511 = call i32 @i32_load(ptr noundef %8507, i64 noundef %8510)
  store i32 %8511, ptr %22, align 4, !tbaa !9
  %8512 = load i32, ptr %22, align 4, !tbaa !9
  %8513 = load ptr, ptr %5, align 8, !tbaa !5
  %8514 = getelementptr inbounds %struct.w2c_hermes, ptr %8513, i32 0, i32 7
  %8515 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8514, i32 0, i32 2
  %8516 = load i32, ptr %8515, align 4, !tbaa !18
  %8517 = icmp ult i32 %8512, %8516
  br i1 %8517, label %8518, label %8541

8518:                                             ; preds = %8471
  %8519 = load ptr, ptr %5, align 8, !tbaa !5
  %8520 = getelementptr inbounds %struct.w2c_hermes, ptr %8519, i32 0, i32 7
  %8521 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8520, i32 0, i32 0
  %8522 = load ptr, ptr %8521, align 8, !tbaa !19
  %8523 = load i32, ptr %22, align 4, !tbaa !9
  %8524 = zext i32 %8523 to i64
  %8525 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8522, i64 %8524
  %8526 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8525, i32 0, i32 1
  %8527 = load ptr, ptr %8526, align 8, !tbaa !20
  %8528 = icmp ne ptr %8527, null
  br i1 %8528, label %8529, label %8541

8529:                                             ; preds = %8518
  %8530 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8531 = load ptr, ptr %5, align 8, !tbaa !5
  %8532 = getelementptr inbounds %struct.w2c_hermes, ptr %8531, i32 0, i32 7
  %8533 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8532, i32 0, i32 0
  %8534 = load ptr, ptr %8533, align 8, !tbaa !19
  %8535 = load i32, ptr %22, align 4, !tbaa !9
  %8536 = zext i32 %8535 to i64
  %8537 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8534, i64 %8536
  %8538 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8537, i32 0, i32 0
  %8539 = load ptr, ptr %8538, align 8, !tbaa !22
  %8540 = call zeroext i1 @func_types_eq(ptr noundef %8530, ptr noundef %8539)
  br label %8541

8541:                                             ; preds = %8529, %8518, %8471
  %8542 = phi i1 [ false, %8518 ], [ false, %8471 ], [ %8540, %8529 ]
  %8543 = xor i1 %8542, true
  %8544 = xor i1 %8543, true
  %8545 = zext i1 %8544 to i32
  %8546 = sext i32 %8545 to i64
  %8547 = call i64 @llvm.expect.i64(i64 %8546, i64 1)
  %8548 = icmp ne i64 %8547, 0
  br i1 %8548, label %8551, label %8549

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

8550:                                             ; No predecessors!
  br label %8551

8551:                                             ; preds = %8550, %8541
  %8552 = phi i1 [ true, %8541 ], [ false, %8550 ]
  %8553 = zext i1 %8552 to i32
  %8554 = load ptr, ptr %5, align 8, !tbaa !5
  %8555 = getelementptr inbounds %struct.w2c_hermes, ptr %8554, i32 0, i32 7
  %8556 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8555, i32 0, i32 0
  %8557 = load ptr, ptr %8556, align 8, !tbaa !19
  %8558 = load i32, ptr %22, align 4, !tbaa !9
  %8559 = zext i32 %8558 to i64
  %8560 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8557, i64 %8559
  %8561 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8560, i32 0, i32 1
  %8562 = load ptr, ptr %8561, align 8, !tbaa !20
  %8563 = load ptr, ptr %5, align 8, !tbaa !5
  %8564 = getelementptr inbounds %struct.w2c_hermes, ptr %8563, i32 0, i32 7
  %8565 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8564, i32 0, i32 0
  %8566 = load ptr, ptr %8565, align 8, !tbaa !19
  %8567 = load i32, ptr %22, align 4, !tbaa !9
  %8568 = zext i32 %8567 to i64
  %8569 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8566, i64 %8568
  %8570 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8569, i32 0, i32 2
  %8571 = load ptr, ptr %8570, align 8, !tbaa !23
  %8572 = load i32, ptr %19, align 4, !tbaa !9
  %8573 = load i32, ptr %20, align 4, !tbaa !9
  %8574 = load i32, ptr %21, align 4, !tbaa !9
  call void %8562(ptr noundef %8571, i32 noundef %8572, i32 noundef %8573, i32 noundef %8574)
  %8575 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8575, ptr %19, align 4, !tbaa !9
  %8576 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8576, ptr %20, align 4, !tbaa !9
  store i32 512, ptr %21, align 4, !tbaa !9
  %8577 = load i32, ptr %21, align 4, !tbaa !9
  %8578 = load i32, ptr %20, align 4, !tbaa !9
  %8579 = add i32 %8578, %8577
  store i32 %8579, ptr %20, align 4, !tbaa !9
  store i32 48700, ptr %21, align 4, !tbaa !9
  %8580 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8580, ptr %22, align 4, !tbaa !9
  %8581 = load ptr, ptr %5, align 8, !tbaa !5
  %8582 = getelementptr inbounds %struct.w2c_hermes, ptr %8581, i32 0, i32 6
  %8583 = load i32, ptr %22, align 4, !tbaa !9
  %8584 = zext i32 %8583 to i64
  %8585 = call i32 @i32_load(ptr noundef %8582, i64 noundef %8584)
  store i32 %8585, ptr %22, align 4, !tbaa !9
  %8586 = load ptr, ptr %5, align 8, !tbaa !5
  %8587 = getelementptr inbounds %struct.w2c_hermes, ptr %8586, i32 0, i32 6
  %8588 = load i32, ptr %22, align 4, !tbaa !9
  %8589 = zext i32 %8588 to i64
  %8590 = add i64 %8589, 36
  %8591 = call i32 @i32_load(ptr noundef %8587, i64 noundef %8590)
  store i32 %8591, ptr %22, align 4, !tbaa !9
  %8592 = load i32, ptr %22, align 4, !tbaa !9
  %8593 = load ptr, ptr %5, align 8, !tbaa !5
  %8594 = getelementptr inbounds %struct.w2c_hermes, ptr %8593, i32 0, i32 7
  %8595 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8594, i32 0, i32 2
  %8596 = load i32, ptr %8595, align 4, !tbaa !18
  %8597 = icmp ult i32 %8592, %8596
  br i1 %8597, label %8598, label %8621

8598:                                             ; preds = %8551
  %8599 = load ptr, ptr %5, align 8, !tbaa !5
  %8600 = getelementptr inbounds %struct.w2c_hermes, ptr %8599, i32 0, i32 7
  %8601 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8600, i32 0, i32 0
  %8602 = load ptr, ptr %8601, align 8, !tbaa !19
  %8603 = load i32, ptr %22, align 4, !tbaa !9
  %8604 = zext i32 %8603 to i64
  %8605 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8602, i64 %8604
  %8606 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8605, i32 0, i32 1
  %8607 = load ptr, ptr %8606, align 8, !tbaa !20
  %8608 = icmp ne ptr %8607, null
  br i1 %8608, label %8609, label %8621

8609:                                             ; preds = %8598
  %8610 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8611 = load ptr, ptr %5, align 8, !tbaa !5
  %8612 = getelementptr inbounds %struct.w2c_hermes, ptr %8611, i32 0, i32 7
  %8613 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8612, i32 0, i32 0
  %8614 = load ptr, ptr %8613, align 8, !tbaa !19
  %8615 = load i32, ptr %22, align 4, !tbaa !9
  %8616 = zext i32 %8615 to i64
  %8617 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8614, i64 %8616
  %8618 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8617, i32 0, i32 0
  %8619 = load ptr, ptr %8618, align 8, !tbaa !22
  %8620 = call zeroext i1 @func_types_eq(ptr noundef %8610, ptr noundef %8619)
  br label %8621

8621:                                             ; preds = %8609, %8598, %8551
  %8622 = phi i1 [ false, %8598 ], [ false, %8551 ], [ %8620, %8609 ]
  %8623 = xor i1 %8622, true
  %8624 = xor i1 %8623, true
  %8625 = zext i1 %8624 to i32
  %8626 = sext i32 %8625 to i64
  %8627 = call i64 @llvm.expect.i64(i64 %8626, i64 1)
  %8628 = icmp ne i64 %8627, 0
  br i1 %8628, label %8631, label %8629

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

8630:                                             ; No predecessors!
  br label %8631

8631:                                             ; preds = %8630, %8621
  %8632 = phi i1 [ true, %8621 ], [ false, %8630 ]
  %8633 = zext i1 %8632 to i32
  %8634 = load ptr, ptr %5, align 8, !tbaa !5
  %8635 = getelementptr inbounds %struct.w2c_hermes, ptr %8634, i32 0, i32 7
  %8636 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8635, i32 0, i32 0
  %8637 = load ptr, ptr %8636, align 8, !tbaa !19
  %8638 = load i32, ptr %22, align 4, !tbaa !9
  %8639 = zext i32 %8638 to i64
  %8640 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8637, i64 %8639
  %8641 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8640, i32 0, i32 1
  %8642 = load ptr, ptr %8641, align 8, !tbaa !20
  %8643 = load ptr, ptr %5, align 8, !tbaa !5
  %8644 = getelementptr inbounds %struct.w2c_hermes, ptr %8643, i32 0, i32 7
  %8645 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8644, i32 0, i32 0
  %8646 = load ptr, ptr %8645, align 8, !tbaa !19
  %8647 = load i32, ptr %22, align 4, !tbaa !9
  %8648 = zext i32 %8647 to i64
  %8649 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8646, i64 %8648
  %8650 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8649, i32 0, i32 2
  %8651 = load ptr, ptr %8650, align 8, !tbaa !23
  %8652 = load i32, ptr %19, align 4, !tbaa !9
  %8653 = load i32, ptr %20, align 4, !tbaa !9
  %8654 = load i32, ptr %21, align 4, !tbaa !9
  call void %8642(ptr noundef %8651, i32 noundef %8652, i32 noundef %8653, i32 noundef %8654)
  %8655 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8655, ptr %19, align 4, !tbaa !9
  %8656 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8656, ptr %20, align 4, !tbaa !9
  store i32 520, ptr %21, align 4, !tbaa !9
  %8657 = load i32, ptr %21, align 4, !tbaa !9
  %8658 = load i32, ptr %20, align 4, !tbaa !9
  %8659 = add i32 %8658, %8657
  store i32 %8659, ptr %20, align 4, !tbaa !9
  store i32 48537, ptr %21, align 4, !tbaa !9
  %8660 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8660, ptr %22, align 4, !tbaa !9
  %8661 = load ptr, ptr %5, align 8, !tbaa !5
  %8662 = getelementptr inbounds %struct.w2c_hermes, ptr %8661, i32 0, i32 6
  %8663 = load i32, ptr %22, align 4, !tbaa !9
  %8664 = zext i32 %8663 to i64
  %8665 = call i32 @i32_load(ptr noundef %8662, i64 noundef %8664)
  store i32 %8665, ptr %22, align 4, !tbaa !9
  %8666 = load ptr, ptr %5, align 8, !tbaa !5
  %8667 = getelementptr inbounds %struct.w2c_hermes, ptr %8666, i32 0, i32 6
  %8668 = load i32, ptr %22, align 4, !tbaa !9
  %8669 = zext i32 %8668 to i64
  %8670 = add i64 %8669, 36
  %8671 = call i32 @i32_load(ptr noundef %8667, i64 noundef %8670)
  store i32 %8671, ptr %22, align 4, !tbaa !9
  %8672 = load i32, ptr %22, align 4, !tbaa !9
  %8673 = load ptr, ptr %5, align 8, !tbaa !5
  %8674 = getelementptr inbounds %struct.w2c_hermes, ptr %8673, i32 0, i32 7
  %8675 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8674, i32 0, i32 2
  %8676 = load i32, ptr %8675, align 4, !tbaa !18
  %8677 = icmp ult i32 %8672, %8676
  br i1 %8677, label %8678, label %8701

8678:                                             ; preds = %8631
  %8679 = load ptr, ptr %5, align 8, !tbaa !5
  %8680 = getelementptr inbounds %struct.w2c_hermes, ptr %8679, i32 0, i32 7
  %8681 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8680, i32 0, i32 0
  %8682 = load ptr, ptr %8681, align 8, !tbaa !19
  %8683 = load i32, ptr %22, align 4, !tbaa !9
  %8684 = zext i32 %8683 to i64
  %8685 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8682, i64 %8684
  %8686 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8685, i32 0, i32 1
  %8687 = load ptr, ptr %8686, align 8, !tbaa !20
  %8688 = icmp ne ptr %8687, null
  br i1 %8688, label %8689, label %8701

8689:                                             ; preds = %8678
  %8690 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8691 = load ptr, ptr %5, align 8, !tbaa !5
  %8692 = getelementptr inbounds %struct.w2c_hermes, ptr %8691, i32 0, i32 7
  %8693 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8692, i32 0, i32 0
  %8694 = load ptr, ptr %8693, align 8, !tbaa !19
  %8695 = load i32, ptr %22, align 4, !tbaa !9
  %8696 = zext i32 %8695 to i64
  %8697 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8694, i64 %8696
  %8698 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8697, i32 0, i32 0
  %8699 = load ptr, ptr %8698, align 8, !tbaa !22
  %8700 = call zeroext i1 @func_types_eq(ptr noundef %8690, ptr noundef %8699)
  br label %8701

8701:                                             ; preds = %8689, %8678, %8631
  %8702 = phi i1 [ false, %8678 ], [ false, %8631 ], [ %8700, %8689 ]
  %8703 = xor i1 %8702, true
  %8704 = xor i1 %8703, true
  %8705 = zext i1 %8704 to i32
  %8706 = sext i32 %8705 to i64
  %8707 = call i64 @llvm.expect.i64(i64 %8706, i64 1)
  %8708 = icmp ne i64 %8707, 0
  br i1 %8708, label %8711, label %8709

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

8710:                                             ; No predecessors!
  br label %8711

8711:                                             ; preds = %8710, %8701
  %8712 = phi i1 [ true, %8701 ], [ false, %8710 ]
  %8713 = zext i1 %8712 to i32
  %8714 = load ptr, ptr %5, align 8, !tbaa !5
  %8715 = getelementptr inbounds %struct.w2c_hermes, ptr %8714, i32 0, i32 7
  %8716 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8715, i32 0, i32 0
  %8717 = load ptr, ptr %8716, align 8, !tbaa !19
  %8718 = load i32, ptr %22, align 4, !tbaa !9
  %8719 = zext i32 %8718 to i64
  %8720 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8717, i64 %8719
  %8721 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8720, i32 0, i32 1
  %8722 = load ptr, ptr %8721, align 8, !tbaa !20
  %8723 = load ptr, ptr %5, align 8, !tbaa !5
  %8724 = getelementptr inbounds %struct.w2c_hermes, ptr %8723, i32 0, i32 7
  %8725 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8724, i32 0, i32 0
  %8726 = load ptr, ptr %8725, align 8, !tbaa !19
  %8727 = load i32, ptr %22, align 4, !tbaa !9
  %8728 = zext i32 %8727 to i64
  %8729 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8726, i64 %8728
  %8730 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8729, i32 0, i32 2
  %8731 = load ptr, ptr %8730, align 8, !tbaa !23
  %8732 = load i32, ptr %19, align 4, !tbaa !9
  %8733 = load i32, ptr %20, align 4, !tbaa !9
  %8734 = load i32, ptr %21, align 4, !tbaa !9
  call void %8722(ptr noundef %8731, i32 noundef %8732, i32 noundef %8733, i32 noundef %8734)
  %8735 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8735, ptr %19, align 4, !tbaa !9
  %8736 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8736, ptr %20, align 4, !tbaa !9
  store i32 528, ptr %21, align 4, !tbaa !9
  %8737 = load i32, ptr %21, align 4, !tbaa !9
  %8738 = load i32, ptr %20, align 4, !tbaa !9
  %8739 = add i32 %8738, %8737
  store i32 %8739, ptr %20, align 4, !tbaa !9
  store i32 36827, ptr %21, align 4, !tbaa !9
  %8740 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8740, ptr %22, align 4, !tbaa !9
  %8741 = load ptr, ptr %5, align 8, !tbaa !5
  %8742 = getelementptr inbounds %struct.w2c_hermes, ptr %8741, i32 0, i32 6
  %8743 = load i32, ptr %22, align 4, !tbaa !9
  %8744 = zext i32 %8743 to i64
  %8745 = call i32 @i32_load(ptr noundef %8742, i64 noundef %8744)
  store i32 %8745, ptr %22, align 4, !tbaa !9
  %8746 = load ptr, ptr %5, align 8, !tbaa !5
  %8747 = getelementptr inbounds %struct.w2c_hermes, ptr %8746, i32 0, i32 6
  %8748 = load i32, ptr %22, align 4, !tbaa !9
  %8749 = zext i32 %8748 to i64
  %8750 = add i64 %8749, 36
  %8751 = call i32 @i32_load(ptr noundef %8747, i64 noundef %8750)
  store i32 %8751, ptr %22, align 4, !tbaa !9
  %8752 = load i32, ptr %22, align 4, !tbaa !9
  %8753 = load ptr, ptr %5, align 8, !tbaa !5
  %8754 = getelementptr inbounds %struct.w2c_hermes, ptr %8753, i32 0, i32 7
  %8755 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8754, i32 0, i32 2
  %8756 = load i32, ptr %8755, align 4, !tbaa !18
  %8757 = icmp ult i32 %8752, %8756
  br i1 %8757, label %8758, label %8781

8758:                                             ; preds = %8711
  %8759 = load ptr, ptr %5, align 8, !tbaa !5
  %8760 = getelementptr inbounds %struct.w2c_hermes, ptr %8759, i32 0, i32 7
  %8761 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8760, i32 0, i32 0
  %8762 = load ptr, ptr %8761, align 8, !tbaa !19
  %8763 = load i32, ptr %22, align 4, !tbaa !9
  %8764 = zext i32 %8763 to i64
  %8765 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8762, i64 %8764
  %8766 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8765, i32 0, i32 1
  %8767 = load ptr, ptr %8766, align 8, !tbaa !20
  %8768 = icmp ne ptr %8767, null
  br i1 %8768, label %8769, label %8781

8769:                                             ; preds = %8758
  %8770 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8771 = load ptr, ptr %5, align 8, !tbaa !5
  %8772 = getelementptr inbounds %struct.w2c_hermes, ptr %8771, i32 0, i32 7
  %8773 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8772, i32 0, i32 0
  %8774 = load ptr, ptr %8773, align 8, !tbaa !19
  %8775 = load i32, ptr %22, align 4, !tbaa !9
  %8776 = zext i32 %8775 to i64
  %8777 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8774, i64 %8776
  %8778 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8777, i32 0, i32 0
  %8779 = load ptr, ptr %8778, align 8, !tbaa !22
  %8780 = call zeroext i1 @func_types_eq(ptr noundef %8770, ptr noundef %8779)
  br label %8781

8781:                                             ; preds = %8769, %8758, %8711
  %8782 = phi i1 [ false, %8758 ], [ false, %8711 ], [ %8780, %8769 ]
  %8783 = xor i1 %8782, true
  %8784 = xor i1 %8783, true
  %8785 = zext i1 %8784 to i32
  %8786 = sext i32 %8785 to i64
  %8787 = call i64 @llvm.expect.i64(i64 %8786, i64 1)
  %8788 = icmp ne i64 %8787, 0
  br i1 %8788, label %8791, label %8789

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

8790:                                             ; No predecessors!
  br label %8791

8791:                                             ; preds = %8790, %8781
  %8792 = phi i1 [ true, %8781 ], [ false, %8790 ]
  %8793 = zext i1 %8792 to i32
  %8794 = load ptr, ptr %5, align 8, !tbaa !5
  %8795 = getelementptr inbounds %struct.w2c_hermes, ptr %8794, i32 0, i32 7
  %8796 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8795, i32 0, i32 0
  %8797 = load ptr, ptr %8796, align 8, !tbaa !19
  %8798 = load i32, ptr %22, align 4, !tbaa !9
  %8799 = zext i32 %8798 to i64
  %8800 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8797, i64 %8799
  %8801 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8800, i32 0, i32 1
  %8802 = load ptr, ptr %8801, align 8, !tbaa !20
  %8803 = load ptr, ptr %5, align 8, !tbaa !5
  %8804 = getelementptr inbounds %struct.w2c_hermes, ptr %8803, i32 0, i32 7
  %8805 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8804, i32 0, i32 0
  %8806 = load ptr, ptr %8805, align 8, !tbaa !19
  %8807 = load i32, ptr %22, align 4, !tbaa !9
  %8808 = zext i32 %8807 to i64
  %8809 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8806, i64 %8808
  %8810 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8809, i32 0, i32 2
  %8811 = load ptr, ptr %8810, align 8, !tbaa !23
  %8812 = load i32, ptr %19, align 4, !tbaa !9
  %8813 = load i32, ptr %20, align 4, !tbaa !9
  %8814 = load i32, ptr %21, align 4, !tbaa !9
  call void %8802(ptr noundef %8811, i32 noundef %8812, i32 noundef %8813, i32 noundef %8814)
  %8815 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8815, ptr %19, align 4, !tbaa !9
  %8816 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8816, ptr %20, align 4, !tbaa !9
  store i32 536, ptr %21, align 4, !tbaa !9
  %8817 = load i32, ptr %21, align 4, !tbaa !9
  %8818 = load i32, ptr %20, align 4, !tbaa !9
  %8819 = add i32 %8818, %8817
  store i32 %8819, ptr %20, align 4, !tbaa !9
  store i32 18846, ptr %21, align 4, !tbaa !9
  %8820 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8820, ptr %22, align 4, !tbaa !9
  %8821 = load ptr, ptr %5, align 8, !tbaa !5
  %8822 = getelementptr inbounds %struct.w2c_hermes, ptr %8821, i32 0, i32 6
  %8823 = load i32, ptr %22, align 4, !tbaa !9
  %8824 = zext i32 %8823 to i64
  %8825 = call i32 @i32_load(ptr noundef %8822, i64 noundef %8824)
  store i32 %8825, ptr %22, align 4, !tbaa !9
  %8826 = load ptr, ptr %5, align 8, !tbaa !5
  %8827 = getelementptr inbounds %struct.w2c_hermes, ptr %8826, i32 0, i32 6
  %8828 = load i32, ptr %22, align 4, !tbaa !9
  %8829 = zext i32 %8828 to i64
  %8830 = add i64 %8829, 36
  %8831 = call i32 @i32_load(ptr noundef %8827, i64 noundef %8830)
  store i32 %8831, ptr %22, align 4, !tbaa !9
  %8832 = load i32, ptr %22, align 4, !tbaa !9
  %8833 = load ptr, ptr %5, align 8, !tbaa !5
  %8834 = getelementptr inbounds %struct.w2c_hermes, ptr %8833, i32 0, i32 7
  %8835 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8834, i32 0, i32 2
  %8836 = load i32, ptr %8835, align 4, !tbaa !18
  %8837 = icmp ult i32 %8832, %8836
  br i1 %8837, label %8838, label %8861

8838:                                             ; preds = %8791
  %8839 = load ptr, ptr %5, align 8, !tbaa !5
  %8840 = getelementptr inbounds %struct.w2c_hermes, ptr %8839, i32 0, i32 7
  %8841 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8840, i32 0, i32 0
  %8842 = load ptr, ptr %8841, align 8, !tbaa !19
  %8843 = load i32, ptr %22, align 4, !tbaa !9
  %8844 = zext i32 %8843 to i64
  %8845 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8842, i64 %8844
  %8846 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8845, i32 0, i32 1
  %8847 = load ptr, ptr %8846, align 8, !tbaa !20
  %8848 = icmp ne ptr %8847, null
  br i1 %8848, label %8849, label %8861

8849:                                             ; preds = %8838
  %8850 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8851 = load ptr, ptr %5, align 8, !tbaa !5
  %8852 = getelementptr inbounds %struct.w2c_hermes, ptr %8851, i32 0, i32 7
  %8853 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8852, i32 0, i32 0
  %8854 = load ptr, ptr %8853, align 8, !tbaa !19
  %8855 = load i32, ptr %22, align 4, !tbaa !9
  %8856 = zext i32 %8855 to i64
  %8857 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8854, i64 %8856
  %8858 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8857, i32 0, i32 0
  %8859 = load ptr, ptr %8858, align 8, !tbaa !22
  %8860 = call zeroext i1 @func_types_eq(ptr noundef %8850, ptr noundef %8859)
  br label %8861

8861:                                             ; preds = %8849, %8838, %8791
  %8862 = phi i1 [ false, %8838 ], [ false, %8791 ], [ %8860, %8849 ]
  %8863 = xor i1 %8862, true
  %8864 = xor i1 %8863, true
  %8865 = zext i1 %8864 to i32
  %8866 = sext i32 %8865 to i64
  %8867 = call i64 @llvm.expect.i64(i64 %8866, i64 1)
  %8868 = icmp ne i64 %8867, 0
  br i1 %8868, label %8871, label %8869

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

8870:                                             ; No predecessors!
  br label %8871

8871:                                             ; preds = %8870, %8861
  %8872 = phi i1 [ true, %8861 ], [ false, %8870 ]
  %8873 = zext i1 %8872 to i32
  %8874 = load ptr, ptr %5, align 8, !tbaa !5
  %8875 = getelementptr inbounds %struct.w2c_hermes, ptr %8874, i32 0, i32 7
  %8876 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8875, i32 0, i32 0
  %8877 = load ptr, ptr %8876, align 8, !tbaa !19
  %8878 = load i32, ptr %22, align 4, !tbaa !9
  %8879 = zext i32 %8878 to i64
  %8880 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8877, i64 %8879
  %8881 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8880, i32 0, i32 1
  %8882 = load ptr, ptr %8881, align 8, !tbaa !20
  %8883 = load ptr, ptr %5, align 8, !tbaa !5
  %8884 = getelementptr inbounds %struct.w2c_hermes, ptr %8883, i32 0, i32 7
  %8885 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8884, i32 0, i32 0
  %8886 = load ptr, ptr %8885, align 8, !tbaa !19
  %8887 = load i32, ptr %22, align 4, !tbaa !9
  %8888 = zext i32 %8887 to i64
  %8889 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8886, i64 %8888
  %8890 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8889, i32 0, i32 2
  %8891 = load ptr, ptr %8890, align 8, !tbaa !23
  %8892 = load i32, ptr %19, align 4, !tbaa !9
  %8893 = load i32, ptr %20, align 4, !tbaa !9
  %8894 = load i32, ptr %21, align 4, !tbaa !9
  call void %8882(ptr noundef %8891, i32 noundef %8892, i32 noundef %8893, i32 noundef %8894)
  %8895 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8895, ptr %19, align 4, !tbaa !9
  %8896 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8896, ptr %20, align 4, !tbaa !9
  store i32 544, ptr %21, align 4, !tbaa !9
  %8897 = load i32, ptr %21, align 4, !tbaa !9
  %8898 = load i32, ptr %20, align 4, !tbaa !9
  %8899 = add i32 %8898, %8897
  store i32 %8899, ptr %20, align 4, !tbaa !9
  store i32 39592, ptr %21, align 4, !tbaa !9
  %8900 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8900, ptr %22, align 4, !tbaa !9
  %8901 = load ptr, ptr %5, align 8, !tbaa !5
  %8902 = getelementptr inbounds %struct.w2c_hermes, ptr %8901, i32 0, i32 6
  %8903 = load i32, ptr %22, align 4, !tbaa !9
  %8904 = zext i32 %8903 to i64
  %8905 = call i32 @i32_load(ptr noundef %8902, i64 noundef %8904)
  store i32 %8905, ptr %22, align 4, !tbaa !9
  %8906 = load ptr, ptr %5, align 8, !tbaa !5
  %8907 = getelementptr inbounds %struct.w2c_hermes, ptr %8906, i32 0, i32 6
  %8908 = load i32, ptr %22, align 4, !tbaa !9
  %8909 = zext i32 %8908 to i64
  %8910 = add i64 %8909, 36
  %8911 = call i32 @i32_load(ptr noundef %8907, i64 noundef %8910)
  store i32 %8911, ptr %22, align 4, !tbaa !9
  %8912 = load i32, ptr %22, align 4, !tbaa !9
  %8913 = load ptr, ptr %5, align 8, !tbaa !5
  %8914 = getelementptr inbounds %struct.w2c_hermes, ptr %8913, i32 0, i32 7
  %8915 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8914, i32 0, i32 2
  %8916 = load i32, ptr %8915, align 4, !tbaa !18
  %8917 = icmp ult i32 %8912, %8916
  br i1 %8917, label %8918, label %8941

8918:                                             ; preds = %8871
  %8919 = load ptr, ptr %5, align 8, !tbaa !5
  %8920 = getelementptr inbounds %struct.w2c_hermes, ptr %8919, i32 0, i32 7
  %8921 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8920, i32 0, i32 0
  %8922 = load ptr, ptr %8921, align 8, !tbaa !19
  %8923 = load i32, ptr %22, align 4, !tbaa !9
  %8924 = zext i32 %8923 to i64
  %8925 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8922, i64 %8924
  %8926 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8925, i32 0, i32 1
  %8927 = load ptr, ptr %8926, align 8, !tbaa !20
  %8928 = icmp ne ptr %8927, null
  br i1 %8928, label %8929, label %8941

8929:                                             ; preds = %8918
  %8930 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %8931 = load ptr, ptr %5, align 8, !tbaa !5
  %8932 = getelementptr inbounds %struct.w2c_hermes, ptr %8931, i32 0, i32 7
  %8933 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8932, i32 0, i32 0
  %8934 = load ptr, ptr %8933, align 8, !tbaa !19
  %8935 = load i32, ptr %22, align 4, !tbaa !9
  %8936 = zext i32 %8935 to i64
  %8937 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8934, i64 %8936
  %8938 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8937, i32 0, i32 0
  %8939 = load ptr, ptr %8938, align 8, !tbaa !22
  %8940 = call zeroext i1 @func_types_eq(ptr noundef %8930, ptr noundef %8939)
  br label %8941

8941:                                             ; preds = %8929, %8918, %8871
  %8942 = phi i1 [ false, %8918 ], [ false, %8871 ], [ %8940, %8929 ]
  %8943 = xor i1 %8942, true
  %8944 = xor i1 %8943, true
  %8945 = zext i1 %8944 to i32
  %8946 = sext i32 %8945 to i64
  %8947 = call i64 @llvm.expect.i64(i64 %8946, i64 1)
  %8948 = icmp ne i64 %8947, 0
  br i1 %8948, label %8951, label %8949

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

8950:                                             ; No predecessors!
  br label %8951

8951:                                             ; preds = %8950, %8941
  %8952 = phi i1 [ true, %8941 ], [ false, %8950 ]
  %8953 = zext i1 %8952 to i32
  %8954 = load ptr, ptr %5, align 8, !tbaa !5
  %8955 = getelementptr inbounds %struct.w2c_hermes, ptr %8954, i32 0, i32 7
  %8956 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8955, i32 0, i32 0
  %8957 = load ptr, ptr %8956, align 8, !tbaa !19
  %8958 = load i32, ptr %22, align 4, !tbaa !9
  %8959 = zext i32 %8958 to i64
  %8960 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8957, i64 %8959
  %8961 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8960, i32 0, i32 1
  %8962 = load ptr, ptr %8961, align 8, !tbaa !20
  %8963 = load ptr, ptr %5, align 8, !tbaa !5
  %8964 = getelementptr inbounds %struct.w2c_hermes, ptr %8963, i32 0, i32 7
  %8965 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8964, i32 0, i32 0
  %8966 = load ptr, ptr %8965, align 8, !tbaa !19
  %8967 = load i32, ptr %22, align 4, !tbaa !9
  %8968 = zext i32 %8967 to i64
  %8969 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8966, i64 %8968
  %8970 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %8969, i32 0, i32 2
  %8971 = load ptr, ptr %8970, align 8, !tbaa !23
  %8972 = load i32, ptr %19, align 4, !tbaa !9
  %8973 = load i32, ptr %20, align 4, !tbaa !9
  %8974 = load i32, ptr %21, align 4, !tbaa !9
  call void %8962(ptr noundef %8971, i32 noundef %8972, i32 noundef %8973, i32 noundef %8974)
  %8975 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8975, ptr %19, align 4, !tbaa !9
  %8976 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %8976, ptr %20, align 4, !tbaa !9
  store i32 552, ptr %21, align 4, !tbaa !9
  %8977 = load i32, ptr %21, align 4, !tbaa !9
  %8978 = load i32, ptr %20, align 4, !tbaa !9
  %8979 = add i32 %8978, %8977
  store i32 %8979, ptr %20, align 4, !tbaa !9
  store i32 37286, ptr %21, align 4, !tbaa !9
  %8980 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %8980, ptr %22, align 4, !tbaa !9
  %8981 = load ptr, ptr %5, align 8, !tbaa !5
  %8982 = getelementptr inbounds %struct.w2c_hermes, ptr %8981, i32 0, i32 6
  %8983 = load i32, ptr %22, align 4, !tbaa !9
  %8984 = zext i32 %8983 to i64
  %8985 = call i32 @i32_load(ptr noundef %8982, i64 noundef %8984)
  store i32 %8985, ptr %22, align 4, !tbaa !9
  %8986 = load ptr, ptr %5, align 8, !tbaa !5
  %8987 = getelementptr inbounds %struct.w2c_hermes, ptr %8986, i32 0, i32 6
  %8988 = load i32, ptr %22, align 4, !tbaa !9
  %8989 = zext i32 %8988 to i64
  %8990 = add i64 %8989, 36
  %8991 = call i32 @i32_load(ptr noundef %8987, i64 noundef %8990)
  store i32 %8991, ptr %22, align 4, !tbaa !9
  %8992 = load i32, ptr %22, align 4, !tbaa !9
  %8993 = load ptr, ptr %5, align 8, !tbaa !5
  %8994 = getelementptr inbounds %struct.w2c_hermes, ptr %8993, i32 0, i32 7
  %8995 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %8994, i32 0, i32 2
  %8996 = load i32, ptr %8995, align 4, !tbaa !18
  %8997 = icmp ult i32 %8992, %8996
  br i1 %8997, label %8998, label %9021

8998:                                             ; preds = %8951
  %8999 = load ptr, ptr %5, align 8, !tbaa !5
  %9000 = getelementptr inbounds %struct.w2c_hermes, ptr %8999, i32 0, i32 7
  %9001 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9000, i32 0, i32 0
  %9002 = load ptr, ptr %9001, align 8, !tbaa !19
  %9003 = load i32, ptr %22, align 4, !tbaa !9
  %9004 = zext i32 %9003 to i64
  %9005 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9002, i64 %9004
  %9006 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9005, i32 0, i32 1
  %9007 = load ptr, ptr %9006, align 8, !tbaa !20
  %9008 = icmp ne ptr %9007, null
  br i1 %9008, label %9009, label %9021

9009:                                             ; preds = %8998
  %9010 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9011 = load ptr, ptr %5, align 8, !tbaa !5
  %9012 = getelementptr inbounds %struct.w2c_hermes, ptr %9011, i32 0, i32 7
  %9013 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9012, i32 0, i32 0
  %9014 = load ptr, ptr %9013, align 8, !tbaa !19
  %9015 = load i32, ptr %22, align 4, !tbaa !9
  %9016 = zext i32 %9015 to i64
  %9017 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9014, i64 %9016
  %9018 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9017, i32 0, i32 0
  %9019 = load ptr, ptr %9018, align 8, !tbaa !22
  %9020 = call zeroext i1 @func_types_eq(ptr noundef %9010, ptr noundef %9019)
  br label %9021

9021:                                             ; preds = %9009, %8998, %8951
  %9022 = phi i1 [ false, %8998 ], [ false, %8951 ], [ %9020, %9009 ]
  %9023 = xor i1 %9022, true
  %9024 = xor i1 %9023, true
  %9025 = zext i1 %9024 to i32
  %9026 = sext i32 %9025 to i64
  %9027 = call i64 @llvm.expect.i64(i64 %9026, i64 1)
  %9028 = icmp ne i64 %9027, 0
  br i1 %9028, label %9031, label %9029

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

9030:                                             ; No predecessors!
  br label %9031

9031:                                             ; preds = %9030, %9021
  %9032 = phi i1 [ true, %9021 ], [ false, %9030 ]
  %9033 = zext i1 %9032 to i32
  %9034 = load ptr, ptr %5, align 8, !tbaa !5
  %9035 = getelementptr inbounds %struct.w2c_hermes, ptr %9034, i32 0, i32 7
  %9036 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9035, i32 0, i32 0
  %9037 = load ptr, ptr %9036, align 8, !tbaa !19
  %9038 = load i32, ptr %22, align 4, !tbaa !9
  %9039 = zext i32 %9038 to i64
  %9040 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9037, i64 %9039
  %9041 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9040, i32 0, i32 1
  %9042 = load ptr, ptr %9041, align 8, !tbaa !20
  %9043 = load ptr, ptr %5, align 8, !tbaa !5
  %9044 = getelementptr inbounds %struct.w2c_hermes, ptr %9043, i32 0, i32 7
  %9045 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9044, i32 0, i32 0
  %9046 = load ptr, ptr %9045, align 8, !tbaa !19
  %9047 = load i32, ptr %22, align 4, !tbaa !9
  %9048 = zext i32 %9047 to i64
  %9049 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9046, i64 %9048
  %9050 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9049, i32 0, i32 2
  %9051 = load ptr, ptr %9050, align 8, !tbaa !23
  %9052 = load i32, ptr %19, align 4, !tbaa !9
  %9053 = load i32, ptr %20, align 4, !tbaa !9
  %9054 = load i32, ptr %21, align 4, !tbaa !9
  call void %9042(ptr noundef %9051, i32 noundef %9052, i32 noundef %9053, i32 noundef %9054)
  %9055 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9055, ptr %19, align 4, !tbaa !9
  %9056 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9056, ptr %20, align 4, !tbaa !9
  store i32 560, ptr %21, align 4, !tbaa !9
  %9057 = load i32, ptr %21, align 4, !tbaa !9
  %9058 = load i32, ptr %20, align 4, !tbaa !9
  %9059 = add i32 %9058, %9057
  store i32 %9059, ptr %20, align 4, !tbaa !9
  store i32 33754, ptr %21, align 4, !tbaa !9
  %9060 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9060, ptr %22, align 4, !tbaa !9
  %9061 = load ptr, ptr %5, align 8, !tbaa !5
  %9062 = getelementptr inbounds %struct.w2c_hermes, ptr %9061, i32 0, i32 6
  %9063 = load i32, ptr %22, align 4, !tbaa !9
  %9064 = zext i32 %9063 to i64
  %9065 = call i32 @i32_load(ptr noundef %9062, i64 noundef %9064)
  store i32 %9065, ptr %22, align 4, !tbaa !9
  %9066 = load ptr, ptr %5, align 8, !tbaa !5
  %9067 = getelementptr inbounds %struct.w2c_hermes, ptr %9066, i32 0, i32 6
  %9068 = load i32, ptr %22, align 4, !tbaa !9
  %9069 = zext i32 %9068 to i64
  %9070 = add i64 %9069, 36
  %9071 = call i32 @i32_load(ptr noundef %9067, i64 noundef %9070)
  store i32 %9071, ptr %22, align 4, !tbaa !9
  %9072 = load i32, ptr %22, align 4, !tbaa !9
  %9073 = load ptr, ptr %5, align 8, !tbaa !5
  %9074 = getelementptr inbounds %struct.w2c_hermes, ptr %9073, i32 0, i32 7
  %9075 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9074, i32 0, i32 2
  %9076 = load i32, ptr %9075, align 4, !tbaa !18
  %9077 = icmp ult i32 %9072, %9076
  br i1 %9077, label %9078, label %9101

9078:                                             ; preds = %9031
  %9079 = load ptr, ptr %5, align 8, !tbaa !5
  %9080 = getelementptr inbounds %struct.w2c_hermes, ptr %9079, i32 0, i32 7
  %9081 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9080, i32 0, i32 0
  %9082 = load ptr, ptr %9081, align 8, !tbaa !19
  %9083 = load i32, ptr %22, align 4, !tbaa !9
  %9084 = zext i32 %9083 to i64
  %9085 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9082, i64 %9084
  %9086 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9085, i32 0, i32 1
  %9087 = load ptr, ptr %9086, align 8, !tbaa !20
  %9088 = icmp ne ptr %9087, null
  br i1 %9088, label %9089, label %9101

9089:                                             ; preds = %9078
  %9090 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9091 = load ptr, ptr %5, align 8, !tbaa !5
  %9092 = getelementptr inbounds %struct.w2c_hermes, ptr %9091, i32 0, i32 7
  %9093 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9092, i32 0, i32 0
  %9094 = load ptr, ptr %9093, align 8, !tbaa !19
  %9095 = load i32, ptr %22, align 4, !tbaa !9
  %9096 = zext i32 %9095 to i64
  %9097 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9094, i64 %9096
  %9098 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9097, i32 0, i32 0
  %9099 = load ptr, ptr %9098, align 8, !tbaa !22
  %9100 = call zeroext i1 @func_types_eq(ptr noundef %9090, ptr noundef %9099)
  br label %9101

9101:                                             ; preds = %9089, %9078, %9031
  %9102 = phi i1 [ false, %9078 ], [ false, %9031 ], [ %9100, %9089 ]
  %9103 = xor i1 %9102, true
  %9104 = xor i1 %9103, true
  %9105 = zext i1 %9104 to i32
  %9106 = sext i32 %9105 to i64
  %9107 = call i64 @llvm.expect.i64(i64 %9106, i64 1)
  %9108 = icmp ne i64 %9107, 0
  br i1 %9108, label %9111, label %9109

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

9110:                                             ; No predecessors!
  br label %9111

9111:                                             ; preds = %9110, %9101
  %9112 = phi i1 [ true, %9101 ], [ false, %9110 ]
  %9113 = zext i1 %9112 to i32
  %9114 = load ptr, ptr %5, align 8, !tbaa !5
  %9115 = getelementptr inbounds %struct.w2c_hermes, ptr %9114, i32 0, i32 7
  %9116 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9115, i32 0, i32 0
  %9117 = load ptr, ptr %9116, align 8, !tbaa !19
  %9118 = load i32, ptr %22, align 4, !tbaa !9
  %9119 = zext i32 %9118 to i64
  %9120 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9117, i64 %9119
  %9121 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9120, i32 0, i32 1
  %9122 = load ptr, ptr %9121, align 8, !tbaa !20
  %9123 = load ptr, ptr %5, align 8, !tbaa !5
  %9124 = getelementptr inbounds %struct.w2c_hermes, ptr %9123, i32 0, i32 7
  %9125 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9124, i32 0, i32 0
  %9126 = load ptr, ptr %9125, align 8, !tbaa !19
  %9127 = load i32, ptr %22, align 4, !tbaa !9
  %9128 = zext i32 %9127 to i64
  %9129 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9126, i64 %9128
  %9130 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9129, i32 0, i32 2
  %9131 = load ptr, ptr %9130, align 8, !tbaa !23
  %9132 = load i32, ptr %19, align 4, !tbaa !9
  %9133 = load i32, ptr %20, align 4, !tbaa !9
  %9134 = load i32, ptr %21, align 4, !tbaa !9
  call void %9122(ptr noundef %9131, i32 noundef %9132, i32 noundef %9133, i32 noundef %9134)
  %9135 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9135, ptr %19, align 4, !tbaa !9
  %9136 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9136, ptr %20, align 4, !tbaa !9
  store i32 568, ptr %21, align 4, !tbaa !9
  %9137 = load i32, ptr %21, align 4, !tbaa !9
  %9138 = load i32, ptr %20, align 4, !tbaa !9
  %9139 = add i32 %9138, %9137
  store i32 %9139, ptr %20, align 4, !tbaa !9
  store i32 33775, ptr %21, align 4, !tbaa !9
  %9140 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9140, ptr %22, align 4, !tbaa !9
  %9141 = load ptr, ptr %5, align 8, !tbaa !5
  %9142 = getelementptr inbounds %struct.w2c_hermes, ptr %9141, i32 0, i32 6
  %9143 = load i32, ptr %22, align 4, !tbaa !9
  %9144 = zext i32 %9143 to i64
  %9145 = call i32 @i32_load(ptr noundef %9142, i64 noundef %9144)
  store i32 %9145, ptr %22, align 4, !tbaa !9
  %9146 = load ptr, ptr %5, align 8, !tbaa !5
  %9147 = getelementptr inbounds %struct.w2c_hermes, ptr %9146, i32 0, i32 6
  %9148 = load i32, ptr %22, align 4, !tbaa !9
  %9149 = zext i32 %9148 to i64
  %9150 = add i64 %9149, 36
  %9151 = call i32 @i32_load(ptr noundef %9147, i64 noundef %9150)
  store i32 %9151, ptr %22, align 4, !tbaa !9
  %9152 = load i32, ptr %22, align 4, !tbaa !9
  %9153 = load ptr, ptr %5, align 8, !tbaa !5
  %9154 = getelementptr inbounds %struct.w2c_hermes, ptr %9153, i32 0, i32 7
  %9155 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9154, i32 0, i32 2
  %9156 = load i32, ptr %9155, align 4, !tbaa !18
  %9157 = icmp ult i32 %9152, %9156
  br i1 %9157, label %9158, label %9181

9158:                                             ; preds = %9111
  %9159 = load ptr, ptr %5, align 8, !tbaa !5
  %9160 = getelementptr inbounds %struct.w2c_hermes, ptr %9159, i32 0, i32 7
  %9161 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9160, i32 0, i32 0
  %9162 = load ptr, ptr %9161, align 8, !tbaa !19
  %9163 = load i32, ptr %22, align 4, !tbaa !9
  %9164 = zext i32 %9163 to i64
  %9165 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9162, i64 %9164
  %9166 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9165, i32 0, i32 1
  %9167 = load ptr, ptr %9166, align 8, !tbaa !20
  %9168 = icmp ne ptr %9167, null
  br i1 %9168, label %9169, label %9181

9169:                                             ; preds = %9158
  %9170 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9171 = load ptr, ptr %5, align 8, !tbaa !5
  %9172 = getelementptr inbounds %struct.w2c_hermes, ptr %9171, i32 0, i32 7
  %9173 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9172, i32 0, i32 0
  %9174 = load ptr, ptr %9173, align 8, !tbaa !19
  %9175 = load i32, ptr %22, align 4, !tbaa !9
  %9176 = zext i32 %9175 to i64
  %9177 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9174, i64 %9176
  %9178 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9177, i32 0, i32 0
  %9179 = load ptr, ptr %9178, align 8, !tbaa !22
  %9180 = call zeroext i1 @func_types_eq(ptr noundef %9170, ptr noundef %9179)
  br label %9181

9181:                                             ; preds = %9169, %9158, %9111
  %9182 = phi i1 [ false, %9158 ], [ false, %9111 ], [ %9180, %9169 ]
  %9183 = xor i1 %9182, true
  %9184 = xor i1 %9183, true
  %9185 = zext i1 %9184 to i32
  %9186 = sext i32 %9185 to i64
  %9187 = call i64 @llvm.expect.i64(i64 %9186, i64 1)
  %9188 = icmp ne i64 %9187, 0
  br i1 %9188, label %9191, label %9189

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

9190:                                             ; No predecessors!
  br label %9191

9191:                                             ; preds = %9190, %9181
  %9192 = phi i1 [ true, %9181 ], [ false, %9190 ]
  %9193 = zext i1 %9192 to i32
  %9194 = load ptr, ptr %5, align 8, !tbaa !5
  %9195 = getelementptr inbounds %struct.w2c_hermes, ptr %9194, i32 0, i32 7
  %9196 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9195, i32 0, i32 0
  %9197 = load ptr, ptr %9196, align 8, !tbaa !19
  %9198 = load i32, ptr %22, align 4, !tbaa !9
  %9199 = zext i32 %9198 to i64
  %9200 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9197, i64 %9199
  %9201 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9200, i32 0, i32 1
  %9202 = load ptr, ptr %9201, align 8, !tbaa !20
  %9203 = load ptr, ptr %5, align 8, !tbaa !5
  %9204 = getelementptr inbounds %struct.w2c_hermes, ptr %9203, i32 0, i32 7
  %9205 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9204, i32 0, i32 0
  %9206 = load ptr, ptr %9205, align 8, !tbaa !19
  %9207 = load i32, ptr %22, align 4, !tbaa !9
  %9208 = zext i32 %9207 to i64
  %9209 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9206, i64 %9208
  %9210 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9209, i32 0, i32 2
  %9211 = load ptr, ptr %9210, align 8, !tbaa !23
  %9212 = load i32, ptr %19, align 4, !tbaa !9
  %9213 = load i32, ptr %20, align 4, !tbaa !9
  %9214 = load i32, ptr %21, align 4, !tbaa !9
  call void %9202(ptr noundef %9211, i32 noundef %9212, i32 noundef %9213, i32 noundef %9214)
  %9215 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9215, ptr %19, align 4, !tbaa !9
  %9216 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9216, ptr %20, align 4, !tbaa !9
  store i32 576, ptr %21, align 4, !tbaa !9
  %9217 = load i32, ptr %21, align 4, !tbaa !9
  %9218 = load i32, ptr %20, align 4, !tbaa !9
  %9219 = add i32 %9218, %9217
  store i32 %9219, ptr %20, align 4, !tbaa !9
  store i32 48137, ptr %21, align 4, !tbaa !9
  %9220 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9220, ptr %22, align 4, !tbaa !9
  %9221 = load ptr, ptr %5, align 8, !tbaa !5
  %9222 = getelementptr inbounds %struct.w2c_hermes, ptr %9221, i32 0, i32 6
  %9223 = load i32, ptr %22, align 4, !tbaa !9
  %9224 = zext i32 %9223 to i64
  %9225 = call i32 @i32_load(ptr noundef %9222, i64 noundef %9224)
  store i32 %9225, ptr %22, align 4, !tbaa !9
  %9226 = load ptr, ptr %5, align 8, !tbaa !5
  %9227 = getelementptr inbounds %struct.w2c_hermes, ptr %9226, i32 0, i32 6
  %9228 = load i32, ptr %22, align 4, !tbaa !9
  %9229 = zext i32 %9228 to i64
  %9230 = add i64 %9229, 36
  %9231 = call i32 @i32_load(ptr noundef %9227, i64 noundef %9230)
  store i32 %9231, ptr %22, align 4, !tbaa !9
  %9232 = load i32, ptr %22, align 4, !tbaa !9
  %9233 = load ptr, ptr %5, align 8, !tbaa !5
  %9234 = getelementptr inbounds %struct.w2c_hermes, ptr %9233, i32 0, i32 7
  %9235 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9234, i32 0, i32 2
  %9236 = load i32, ptr %9235, align 4, !tbaa !18
  %9237 = icmp ult i32 %9232, %9236
  br i1 %9237, label %9238, label %9261

9238:                                             ; preds = %9191
  %9239 = load ptr, ptr %5, align 8, !tbaa !5
  %9240 = getelementptr inbounds %struct.w2c_hermes, ptr %9239, i32 0, i32 7
  %9241 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9240, i32 0, i32 0
  %9242 = load ptr, ptr %9241, align 8, !tbaa !19
  %9243 = load i32, ptr %22, align 4, !tbaa !9
  %9244 = zext i32 %9243 to i64
  %9245 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9242, i64 %9244
  %9246 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9245, i32 0, i32 1
  %9247 = load ptr, ptr %9246, align 8, !tbaa !20
  %9248 = icmp ne ptr %9247, null
  br i1 %9248, label %9249, label %9261

9249:                                             ; preds = %9238
  %9250 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9251 = load ptr, ptr %5, align 8, !tbaa !5
  %9252 = getelementptr inbounds %struct.w2c_hermes, ptr %9251, i32 0, i32 7
  %9253 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9252, i32 0, i32 0
  %9254 = load ptr, ptr %9253, align 8, !tbaa !19
  %9255 = load i32, ptr %22, align 4, !tbaa !9
  %9256 = zext i32 %9255 to i64
  %9257 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9254, i64 %9256
  %9258 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9257, i32 0, i32 0
  %9259 = load ptr, ptr %9258, align 8, !tbaa !22
  %9260 = call zeroext i1 @func_types_eq(ptr noundef %9250, ptr noundef %9259)
  br label %9261

9261:                                             ; preds = %9249, %9238, %9191
  %9262 = phi i1 [ false, %9238 ], [ false, %9191 ], [ %9260, %9249 ]
  %9263 = xor i1 %9262, true
  %9264 = xor i1 %9263, true
  %9265 = zext i1 %9264 to i32
  %9266 = sext i32 %9265 to i64
  %9267 = call i64 @llvm.expect.i64(i64 %9266, i64 1)
  %9268 = icmp ne i64 %9267, 0
  br i1 %9268, label %9271, label %9269

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

9270:                                             ; No predecessors!
  br label %9271

9271:                                             ; preds = %9270, %9261
  %9272 = phi i1 [ true, %9261 ], [ false, %9270 ]
  %9273 = zext i1 %9272 to i32
  %9274 = load ptr, ptr %5, align 8, !tbaa !5
  %9275 = getelementptr inbounds %struct.w2c_hermes, ptr %9274, i32 0, i32 7
  %9276 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9275, i32 0, i32 0
  %9277 = load ptr, ptr %9276, align 8, !tbaa !19
  %9278 = load i32, ptr %22, align 4, !tbaa !9
  %9279 = zext i32 %9278 to i64
  %9280 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9277, i64 %9279
  %9281 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9280, i32 0, i32 1
  %9282 = load ptr, ptr %9281, align 8, !tbaa !20
  %9283 = load ptr, ptr %5, align 8, !tbaa !5
  %9284 = getelementptr inbounds %struct.w2c_hermes, ptr %9283, i32 0, i32 7
  %9285 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9284, i32 0, i32 0
  %9286 = load ptr, ptr %9285, align 8, !tbaa !19
  %9287 = load i32, ptr %22, align 4, !tbaa !9
  %9288 = zext i32 %9287 to i64
  %9289 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9286, i64 %9288
  %9290 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9289, i32 0, i32 2
  %9291 = load ptr, ptr %9290, align 8, !tbaa !23
  %9292 = load i32, ptr %19, align 4, !tbaa !9
  %9293 = load i32, ptr %20, align 4, !tbaa !9
  %9294 = load i32, ptr %21, align 4, !tbaa !9
  call void %9282(ptr noundef %9291, i32 noundef %9292, i32 noundef %9293, i32 noundef %9294)
  %9295 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9295, ptr %19, align 4, !tbaa !9
  %9296 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9296, ptr %20, align 4, !tbaa !9
  store i32 584, ptr %21, align 4, !tbaa !9
  %9297 = load i32, ptr %21, align 4, !tbaa !9
  %9298 = load i32, ptr %20, align 4, !tbaa !9
  %9299 = add i32 %9298, %9297
  store i32 %9299, ptr %20, align 4, !tbaa !9
  store i32 48155, ptr %21, align 4, !tbaa !9
  %9300 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9300, ptr %22, align 4, !tbaa !9
  %9301 = load ptr, ptr %5, align 8, !tbaa !5
  %9302 = getelementptr inbounds %struct.w2c_hermes, ptr %9301, i32 0, i32 6
  %9303 = load i32, ptr %22, align 4, !tbaa !9
  %9304 = zext i32 %9303 to i64
  %9305 = call i32 @i32_load(ptr noundef %9302, i64 noundef %9304)
  store i32 %9305, ptr %22, align 4, !tbaa !9
  %9306 = load ptr, ptr %5, align 8, !tbaa !5
  %9307 = getelementptr inbounds %struct.w2c_hermes, ptr %9306, i32 0, i32 6
  %9308 = load i32, ptr %22, align 4, !tbaa !9
  %9309 = zext i32 %9308 to i64
  %9310 = add i64 %9309, 36
  %9311 = call i32 @i32_load(ptr noundef %9307, i64 noundef %9310)
  store i32 %9311, ptr %22, align 4, !tbaa !9
  %9312 = load i32, ptr %22, align 4, !tbaa !9
  %9313 = load ptr, ptr %5, align 8, !tbaa !5
  %9314 = getelementptr inbounds %struct.w2c_hermes, ptr %9313, i32 0, i32 7
  %9315 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9314, i32 0, i32 2
  %9316 = load i32, ptr %9315, align 4, !tbaa !18
  %9317 = icmp ult i32 %9312, %9316
  br i1 %9317, label %9318, label %9341

9318:                                             ; preds = %9271
  %9319 = load ptr, ptr %5, align 8, !tbaa !5
  %9320 = getelementptr inbounds %struct.w2c_hermes, ptr %9319, i32 0, i32 7
  %9321 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9320, i32 0, i32 0
  %9322 = load ptr, ptr %9321, align 8, !tbaa !19
  %9323 = load i32, ptr %22, align 4, !tbaa !9
  %9324 = zext i32 %9323 to i64
  %9325 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9322, i64 %9324
  %9326 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9325, i32 0, i32 1
  %9327 = load ptr, ptr %9326, align 8, !tbaa !20
  %9328 = icmp ne ptr %9327, null
  br i1 %9328, label %9329, label %9341

9329:                                             ; preds = %9318
  %9330 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9331 = load ptr, ptr %5, align 8, !tbaa !5
  %9332 = getelementptr inbounds %struct.w2c_hermes, ptr %9331, i32 0, i32 7
  %9333 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9332, i32 0, i32 0
  %9334 = load ptr, ptr %9333, align 8, !tbaa !19
  %9335 = load i32, ptr %22, align 4, !tbaa !9
  %9336 = zext i32 %9335 to i64
  %9337 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9334, i64 %9336
  %9338 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9337, i32 0, i32 0
  %9339 = load ptr, ptr %9338, align 8, !tbaa !22
  %9340 = call zeroext i1 @func_types_eq(ptr noundef %9330, ptr noundef %9339)
  br label %9341

9341:                                             ; preds = %9329, %9318, %9271
  %9342 = phi i1 [ false, %9318 ], [ false, %9271 ], [ %9340, %9329 ]
  %9343 = xor i1 %9342, true
  %9344 = xor i1 %9343, true
  %9345 = zext i1 %9344 to i32
  %9346 = sext i32 %9345 to i64
  %9347 = call i64 @llvm.expect.i64(i64 %9346, i64 1)
  %9348 = icmp ne i64 %9347, 0
  br i1 %9348, label %9351, label %9349

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

9350:                                             ; No predecessors!
  br label %9351

9351:                                             ; preds = %9350, %9341
  %9352 = phi i1 [ true, %9341 ], [ false, %9350 ]
  %9353 = zext i1 %9352 to i32
  %9354 = load ptr, ptr %5, align 8, !tbaa !5
  %9355 = getelementptr inbounds %struct.w2c_hermes, ptr %9354, i32 0, i32 7
  %9356 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9355, i32 0, i32 0
  %9357 = load ptr, ptr %9356, align 8, !tbaa !19
  %9358 = load i32, ptr %22, align 4, !tbaa !9
  %9359 = zext i32 %9358 to i64
  %9360 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9357, i64 %9359
  %9361 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9360, i32 0, i32 1
  %9362 = load ptr, ptr %9361, align 8, !tbaa !20
  %9363 = load ptr, ptr %5, align 8, !tbaa !5
  %9364 = getelementptr inbounds %struct.w2c_hermes, ptr %9363, i32 0, i32 7
  %9365 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9364, i32 0, i32 0
  %9366 = load ptr, ptr %9365, align 8, !tbaa !19
  %9367 = load i32, ptr %22, align 4, !tbaa !9
  %9368 = zext i32 %9367 to i64
  %9369 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9366, i64 %9368
  %9370 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9369, i32 0, i32 2
  %9371 = load ptr, ptr %9370, align 8, !tbaa !23
  %9372 = load i32, ptr %19, align 4, !tbaa !9
  %9373 = load i32, ptr %20, align 4, !tbaa !9
  %9374 = load i32, ptr %21, align 4, !tbaa !9
  call void %9362(ptr noundef %9371, i32 noundef %9372, i32 noundef %9373, i32 noundef %9374)
  %9375 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9375, ptr %19, align 4, !tbaa !9
  %9376 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9376, ptr %20, align 4, !tbaa !9
  store i32 592, ptr %21, align 4, !tbaa !9
  %9377 = load i32, ptr %21, align 4, !tbaa !9
  %9378 = load i32, ptr %20, align 4, !tbaa !9
  %9379 = add i32 %9378, %9377
  store i32 %9379, ptr %20, align 4, !tbaa !9
  store i32 34744, ptr %21, align 4, !tbaa !9
  %9380 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9380, ptr %22, align 4, !tbaa !9
  %9381 = load ptr, ptr %5, align 8, !tbaa !5
  %9382 = getelementptr inbounds %struct.w2c_hermes, ptr %9381, i32 0, i32 6
  %9383 = load i32, ptr %22, align 4, !tbaa !9
  %9384 = zext i32 %9383 to i64
  %9385 = call i32 @i32_load(ptr noundef %9382, i64 noundef %9384)
  store i32 %9385, ptr %22, align 4, !tbaa !9
  %9386 = load ptr, ptr %5, align 8, !tbaa !5
  %9387 = getelementptr inbounds %struct.w2c_hermes, ptr %9386, i32 0, i32 6
  %9388 = load i32, ptr %22, align 4, !tbaa !9
  %9389 = zext i32 %9388 to i64
  %9390 = add i64 %9389, 36
  %9391 = call i32 @i32_load(ptr noundef %9387, i64 noundef %9390)
  store i32 %9391, ptr %22, align 4, !tbaa !9
  %9392 = load i32, ptr %22, align 4, !tbaa !9
  %9393 = load ptr, ptr %5, align 8, !tbaa !5
  %9394 = getelementptr inbounds %struct.w2c_hermes, ptr %9393, i32 0, i32 7
  %9395 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9394, i32 0, i32 2
  %9396 = load i32, ptr %9395, align 4, !tbaa !18
  %9397 = icmp ult i32 %9392, %9396
  br i1 %9397, label %9398, label %9421

9398:                                             ; preds = %9351
  %9399 = load ptr, ptr %5, align 8, !tbaa !5
  %9400 = getelementptr inbounds %struct.w2c_hermes, ptr %9399, i32 0, i32 7
  %9401 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9400, i32 0, i32 0
  %9402 = load ptr, ptr %9401, align 8, !tbaa !19
  %9403 = load i32, ptr %22, align 4, !tbaa !9
  %9404 = zext i32 %9403 to i64
  %9405 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9402, i64 %9404
  %9406 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9405, i32 0, i32 1
  %9407 = load ptr, ptr %9406, align 8, !tbaa !20
  %9408 = icmp ne ptr %9407, null
  br i1 %9408, label %9409, label %9421

9409:                                             ; preds = %9398
  %9410 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9411 = load ptr, ptr %5, align 8, !tbaa !5
  %9412 = getelementptr inbounds %struct.w2c_hermes, ptr %9411, i32 0, i32 7
  %9413 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9412, i32 0, i32 0
  %9414 = load ptr, ptr %9413, align 8, !tbaa !19
  %9415 = load i32, ptr %22, align 4, !tbaa !9
  %9416 = zext i32 %9415 to i64
  %9417 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9414, i64 %9416
  %9418 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9417, i32 0, i32 0
  %9419 = load ptr, ptr %9418, align 8, !tbaa !22
  %9420 = call zeroext i1 @func_types_eq(ptr noundef %9410, ptr noundef %9419)
  br label %9421

9421:                                             ; preds = %9409, %9398, %9351
  %9422 = phi i1 [ false, %9398 ], [ false, %9351 ], [ %9420, %9409 ]
  %9423 = xor i1 %9422, true
  %9424 = xor i1 %9423, true
  %9425 = zext i1 %9424 to i32
  %9426 = sext i32 %9425 to i64
  %9427 = call i64 @llvm.expect.i64(i64 %9426, i64 1)
  %9428 = icmp ne i64 %9427, 0
  br i1 %9428, label %9431, label %9429

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

9430:                                             ; No predecessors!
  br label %9431

9431:                                             ; preds = %9430, %9421
  %9432 = phi i1 [ true, %9421 ], [ false, %9430 ]
  %9433 = zext i1 %9432 to i32
  %9434 = load ptr, ptr %5, align 8, !tbaa !5
  %9435 = getelementptr inbounds %struct.w2c_hermes, ptr %9434, i32 0, i32 7
  %9436 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9435, i32 0, i32 0
  %9437 = load ptr, ptr %9436, align 8, !tbaa !19
  %9438 = load i32, ptr %22, align 4, !tbaa !9
  %9439 = zext i32 %9438 to i64
  %9440 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9437, i64 %9439
  %9441 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9440, i32 0, i32 1
  %9442 = load ptr, ptr %9441, align 8, !tbaa !20
  %9443 = load ptr, ptr %5, align 8, !tbaa !5
  %9444 = getelementptr inbounds %struct.w2c_hermes, ptr %9443, i32 0, i32 7
  %9445 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9444, i32 0, i32 0
  %9446 = load ptr, ptr %9445, align 8, !tbaa !19
  %9447 = load i32, ptr %22, align 4, !tbaa !9
  %9448 = zext i32 %9447 to i64
  %9449 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9446, i64 %9448
  %9450 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9449, i32 0, i32 2
  %9451 = load ptr, ptr %9450, align 8, !tbaa !23
  %9452 = load i32, ptr %19, align 4, !tbaa !9
  %9453 = load i32, ptr %20, align 4, !tbaa !9
  %9454 = load i32, ptr %21, align 4, !tbaa !9
  call void %9442(ptr noundef %9451, i32 noundef %9452, i32 noundef %9453, i32 noundef %9454)
  %9455 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9455, ptr %19, align 4, !tbaa !9
  %9456 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9456, ptr %20, align 4, !tbaa !9
  store i32 600, ptr %21, align 4, !tbaa !9
  %9457 = load i32, ptr %21, align 4, !tbaa !9
  %9458 = load i32, ptr %20, align 4, !tbaa !9
  %9459 = add i32 %9458, %9457
  store i32 %9459, ptr %20, align 4, !tbaa !9
  store i32 48628, ptr %21, align 4, !tbaa !9
  %9460 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9460, ptr %22, align 4, !tbaa !9
  %9461 = load ptr, ptr %5, align 8, !tbaa !5
  %9462 = getelementptr inbounds %struct.w2c_hermes, ptr %9461, i32 0, i32 6
  %9463 = load i32, ptr %22, align 4, !tbaa !9
  %9464 = zext i32 %9463 to i64
  %9465 = call i32 @i32_load(ptr noundef %9462, i64 noundef %9464)
  store i32 %9465, ptr %22, align 4, !tbaa !9
  %9466 = load ptr, ptr %5, align 8, !tbaa !5
  %9467 = getelementptr inbounds %struct.w2c_hermes, ptr %9466, i32 0, i32 6
  %9468 = load i32, ptr %22, align 4, !tbaa !9
  %9469 = zext i32 %9468 to i64
  %9470 = add i64 %9469, 36
  %9471 = call i32 @i32_load(ptr noundef %9467, i64 noundef %9470)
  store i32 %9471, ptr %22, align 4, !tbaa !9
  %9472 = load i32, ptr %22, align 4, !tbaa !9
  %9473 = load ptr, ptr %5, align 8, !tbaa !5
  %9474 = getelementptr inbounds %struct.w2c_hermes, ptr %9473, i32 0, i32 7
  %9475 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9474, i32 0, i32 2
  %9476 = load i32, ptr %9475, align 4, !tbaa !18
  %9477 = icmp ult i32 %9472, %9476
  br i1 %9477, label %9478, label %9501

9478:                                             ; preds = %9431
  %9479 = load ptr, ptr %5, align 8, !tbaa !5
  %9480 = getelementptr inbounds %struct.w2c_hermes, ptr %9479, i32 0, i32 7
  %9481 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9480, i32 0, i32 0
  %9482 = load ptr, ptr %9481, align 8, !tbaa !19
  %9483 = load i32, ptr %22, align 4, !tbaa !9
  %9484 = zext i32 %9483 to i64
  %9485 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9482, i64 %9484
  %9486 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9485, i32 0, i32 1
  %9487 = load ptr, ptr %9486, align 8, !tbaa !20
  %9488 = icmp ne ptr %9487, null
  br i1 %9488, label %9489, label %9501

9489:                                             ; preds = %9478
  %9490 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9491 = load ptr, ptr %5, align 8, !tbaa !5
  %9492 = getelementptr inbounds %struct.w2c_hermes, ptr %9491, i32 0, i32 7
  %9493 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9492, i32 0, i32 0
  %9494 = load ptr, ptr %9493, align 8, !tbaa !19
  %9495 = load i32, ptr %22, align 4, !tbaa !9
  %9496 = zext i32 %9495 to i64
  %9497 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9494, i64 %9496
  %9498 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9497, i32 0, i32 0
  %9499 = load ptr, ptr %9498, align 8, !tbaa !22
  %9500 = call zeroext i1 @func_types_eq(ptr noundef %9490, ptr noundef %9499)
  br label %9501

9501:                                             ; preds = %9489, %9478, %9431
  %9502 = phi i1 [ false, %9478 ], [ false, %9431 ], [ %9500, %9489 ]
  %9503 = xor i1 %9502, true
  %9504 = xor i1 %9503, true
  %9505 = zext i1 %9504 to i32
  %9506 = sext i32 %9505 to i64
  %9507 = call i64 @llvm.expect.i64(i64 %9506, i64 1)
  %9508 = icmp ne i64 %9507, 0
  br i1 %9508, label %9511, label %9509

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

9510:                                             ; No predecessors!
  br label %9511

9511:                                             ; preds = %9510, %9501
  %9512 = phi i1 [ true, %9501 ], [ false, %9510 ]
  %9513 = zext i1 %9512 to i32
  %9514 = load ptr, ptr %5, align 8, !tbaa !5
  %9515 = getelementptr inbounds %struct.w2c_hermes, ptr %9514, i32 0, i32 7
  %9516 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9515, i32 0, i32 0
  %9517 = load ptr, ptr %9516, align 8, !tbaa !19
  %9518 = load i32, ptr %22, align 4, !tbaa !9
  %9519 = zext i32 %9518 to i64
  %9520 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9517, i64 %9519
  %9521 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9520, i32 0, i32 1
  %9522 = load ptr, ptr %9521, align 8, !tbaa !20
  %9523 = load ptr, ptr %5, align 8, !tbaa !5
  %9524 = getelementptr inbounds %struct.w2c_hermes, ptr %9523, i32 0, i32 7
  %9525 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9524, i32 0, i32 0
  %9526 = load ptr, ptr %9525, align 8, !tbaa !19
  %9527 = load i32, ptr %22, align 4, !tbaa !9
  %9528 = zext i32 %9527 to i64
  %9529 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9526, i64 %9528
  %9530 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9529, i32 0, i32 2
  %9531 = load ptr, ptr %9530, align 8, !tbaa !23
  %9532 = load i32, ptr %19, align 4, !tbaa !9
  %9533 = load i32, ptr %20, align 4, !tbaa !9
  %9534 = load i32, ptr %21, align 4, !tbaa !9
  call void %9522(ptr noundef %9531, i32 noundef %9532, i32 noundef %9533, i32 noundef %9534)
  %9535 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9535, ptr %19, align 4, !tbaa !9
  %9536 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9536, ptr %20, align 4, !tbaa !9
  store i32 608, ptr %21, align 4, !tbaa !9
  %9537 = load i32, ptr %21, align 4, !tbaa !9
  %9538 = load i32, ptr %20, align 4, !tbaa !9
  %9539 = add i32 %9538, %9537
  store i32 %9539, ptr %20, align 4, !tbaa !9
  store i32 48220, ptr %21, align 4, !tbaa !9
  %9540 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9540, ptr %22, align 4, !tbaa !9
  %9541 = load ptr, ptr %5, align 8, !tbaa !5
  %9542 = getelementptr inbounds %struct.w2c_hermes, ptr %9541, i32 0, i32 6
  %9543 = load i32, ptr %22, align 4, !tbaa !9
  %9544 = zext i32 %9543 to i64
  %9545 = call i32 @i32_load(ptr noundef %9542, i64 noundef %9544)
  store i32 %9545, ptr %22, align 4, !tbaa !9
  %9546 = load ptr, ptr %5, align 8, !tbaa !5
  %9547 = getelementptr inbounds %struct.w2c_hermes, ptr %9546, i32 0, i32 6
  %9548 = load i32, ptr %22, align 4, !tbaa !9
  %9549 = zext i32 %9548 to i64
  %9550 = add i64 %9549, 36
  %9551 = call i32 @i32_load(ptr noundef %9547, i64 noundef %9550)
  store i32 %9551, ptr %22, align 4, !tbaa !9
  %9552 = load i32, ptr %22, align 4, !tbaa !9
  %9553 = load ptr, ptr %5, align 8, !tbaa !5
  %9554 = getelementptr inbounds %struct.w2c_hermes, ptr %9553, i32 0, i32 7
  %9555 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9554, i32 0, i32 2
  %9556 = load i32, ptr %9555, align 4, !tbaa !18
  %9557 = icmp ult i32 %9552, %9556
  br i1 %9557, label %9558, label %9581

9558:                                             ; preds = %9511
  %9559 = load ptr, ptr %5, align 8, !tbaa !5
  %9560 = getelementptr inbounds %struct.w2c_hermes, ptr %9559, i32 0, i32 7
  %9561 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9560, i32 0, i32 0
  %9562 = load ptr, ptr %9561, align 8, !tbaa !19
  %9563 = load i32, ptr %22, align 4, !tbaa !9
  %9564 = zext i32 %9563 to i64
  %9565 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9562, i64 %9564
  %9566 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9565, i32 0, i32 1
  %9567 = load ptr, ptr %9566, align 8, !tbaa !20
  %9568 = icmp ne ptr %9567, null
  br i1 %9568, label %9569, label %9581

9569:                                             ; preds = %9558
  %9570 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9571 = load ptr, ptr %5, align 8, !tbaa !5
  %9572 = getelementptr inbounds %struct.w2c_hermes, ptr %9571, i32 0, i32 7
  %9573 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9572, i32 0, i32 0
  %9574 = load ptr, ptr %9573, align 8, !tbaa !19
  %9575 = load i32, ptr %22, align 4, !tbaa !9
  %9576 = zext i32 %9575 to i64
  %9577 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9574, i64 %9576
  %9578 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9577, i32 0, i32 0
  %9579 = load ptr, ptr %9578, align 8, !tbaa !22
  %9580 = call zeroext i1 @func_types_eq(ptr noundef %9570, ptr noundef %9579)
  br label %9581

9581:                                             ; preds = %9569, %9558, %9511
  %9582 = phi i1 [ false, %9558 ], [ false, %9511 ], [ %9580, %9569 ]
  %9583 = xor i1 %9582, true
  %9584 = xor i1 %9583, true
  %9585 = zext i1 %9584 to i32
  %9586 = sext i32 %9585 to i64
  %9587 = call i64 @llvm.expect.i64(i64 %9586, i64 1)
  %9588 = icmp ne i64 %9587, 0
  br i1 %9588, label %9591, label %9589

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

9590:                                             ; No predecessors!
  br label %9591

9591:                                             ; preds = %9590, %9581
  %9592 = phi i1 [ true, %9581 ], [ false, %9590 ]
  %9593 = zext i1 %9592 to i32
  %9594 = load ptr, ptr %5, align 8, !tbaa !5
  %9595 = getelementptr inbounds %struct.w2c_hermes, ptr %9594, i32 0, i32 7
  %9596 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9595, i32 0, i32 0
  %9597 = load ptr, ptr %9596, align 8, !tbaa !19
  %9598 = load i32, ptr %22, align 4, !tbaa !9
  %9599 = zext i32 %9598 to i64
  %9600 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9597, i64 %9599
  %9601 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9600, i32 0, i32 1
  %9602 = load ptr, ptr %9601, align 8, !tbaa !20
  %9603 = load ptr, ptr %5, align 8, !tbaa !5
  %9604 = getelementptr inbounds %struct.w2c_hermes, ptr %9603, i32 0, i32 7
  %9605 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9604, i32 0, i32 0
  %9606 = load ptr, ptr %9605, align 8, !tbaa !19
  %9607 = load i32, ptr %22, align 4, !tbaa !9
  %9608 = zext i32 %9607 to i64
  %9609 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9606, i64 %9608
  %9610 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9609, i32 0, i32 2
  %9611 = load ptr, ptr %9610, align 8, !tbaa !23
  %9612 = load i32, ptr %19, align 4, !tbaa !9
  %9613 = load i32, ptr %20, align 4, !tbaa !9
  %9614 = load i32, ptr %21, align 4, !tbaa !9
  call void %9602(ptr noundef %9611, i32 noundef %9612, i32 noundef %9613, i32 noundef %9614)
  %9615 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9615, ptr %19, align 4, !tbaa !9
  %9616 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9616, ptr %20, align 4, !tbaa !9
  store i32 616, ptr %21, align 4, !tbaa !9
  %9617 = load i32, ptr %21, align 4, !tbaa !9
  %9618 = load i32, ptr %20, align 4, !tbaa !9
  %9619 = add i32 %9618, %9617
  store i32 %9619, ptr %20, align 4, !tbaa !9
  store i32 48244, ptr %21, align 4, !tbaa !9
  %9620 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9620, ptr %22, align 4, !tbaa !9
  %9621 = load ptr, ptr %5, align 8, !tbaa !5
  %9622 = getelementptr inbounds %struct.w2c_hermes, ptr %9621, i32 0, i32 6
  %9623 = load i32, ptr %22, align 4, !tbaa !9
  %9624 = zext i32 %9623 to i64
  %9625 = call i32 @i32_load(ptr noundef %9622, i64 noundef %9624)
  store i32 %9625, ptr %22, align 4, !tbaa !9
  %9626 = load ptr, ptr %5, align 8, !tbaa !5
  %9627 = getelementptr inbounds %struct.w2c_hermes, ptr %9626, i32 0, i32 6
  %9628 = load i32, ptr %22, align 4, !tbaa !9
  %9629 = zext i32 %9628 to i64
  %9630 = add i64 %9629, 36
  %9631 = call i32 @i32_load(ptr noundef %9627, i64 noundef %9630)
  store i32 %9631, ptr %22, align 4, !tbaa !9
  %9632 = load i32, ptr %22, align 4, !tbaa !9
  %9633 = load ptr, ptr %5, align 8, !tbaa !5
  %9634 = getelementptr inbounds %struct.w2c_hermes, ptr %9633, i32 0, i32 7
  %9635 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9634, i32 0, i32 2
  %9636 = load i32, ptr %9635, align 4, !tbaa !18
  %9637 = icmp ult i32 %9632, %9636
  br i1 %9637, label %9638, label %9661

9638:                                             ; preds = %9591
  %9639 = load ptr, ptr %5, align 8, !tbaa !5
  %9640 = getelementptr inbounds %struct.w2c_hermes, ptr %9639, i32 0, i32 7
  %9641 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9640, i32 0, i32 0
  %9642 = load ptr, ptr %9641, align 8, !tbaa !19
  %9643 = load i32, ptr %22, align 4, !tbaa !9
  %9644 = zext i32 %9643 to i64
  %9645 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9642, i64 %9644
  %9646 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9645, i32 0, i32 1
  %9647 = load ptr, ptr %9646, align 8, !tbaa !20
  %9648 = icmp ne ptr %9647, null
  br i1 %9648, label %9649, label %9661

9649:                                             ; preds = %9638
  %9650 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9651 = load ptr, ptr %5, align 8, !tbaa !5
  %9652 = getelementptr inbounds %struct.w2c_hermes, ptr %9651, i32 0, i32 7
  %9653 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9652, i32 0, i32 0
  %9654 = load ptr, ptr %9653, align 8, !tbaa !19
  %9655 = load i32, ptr %22, align 4, !tbaa !9
  %9656 = zext i32 %9655 to i64
  %9657 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9654, i64 %9656
  %9658 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9657, i32 0, i32 0
  %9659 = load ptr, ptr %9658, align 8, !tbaa !22
  %9660 = call zeroext i1 @func_types_eq(ptr noundef %9650, ptr noundef %9659)
  br label %9661

9661:                                             ; preds = %9649, %9638, %9591
  %9662 = phi i1 [ false, %9638 ], [ false, %9591 ], [ %9660, %9649 ]
  %9663 = xor i1 %9662, true
  %9664 = xor i1 %9663, true
  %9665 = zext i1 %9664 to i32
  %9666 = sext i32 %9665 to i64
  %9667 = call i64 @llvm.expect.i64(i64 %9666, i64 1)
  %9668 = icmp ne i64 %9667, 0
  br i1 %9668, label %9671, label %9669

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

9670:                                             ; No predecessors!
  br label %9671

9671:                                             ; preds = %9670, %9661
  %9672 = phi i1 [ true, %9661 ], [ false, %9670 ]
  %9673 = zext i1 %9672 to i32
  %9674 = load ptr, ptr %5, align 8, !tbaa !5
  %9675 = getelementptr inbounds %struct.w2c_hermes, ptr %9674, i32 0, i32 7
  %9676 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9675, i32 0, i32 0
  %9677 = load ptr, ptr %9676, align 8, !tbaa !19
  %9678 = load i32, ptr %22, align 4, !tbaa !9
  %9679 = zext i32 %9678 to i64
  %9680 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9677, i64 %9679
  %9681 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9680, i32 0, i32 1
  %9682 = load ptr, ptr %9681, align 8, !tbaa !20
  %9683 = load ptr, ptr %5, align 8, !tbaa !5
  %9684 = getelementptr inbounds %struct.w2c_hermes, ptr %9683, i32 0, i32 7
  %9685 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9684, i32 0, i32 0
  %9686 = load ptr, ptr %9685, align 8, !tbaa !19
  %9687 = load i32, ptr %22, align 4, !tbaa !9
  %9688 = zext i32 %9687 to i64
  %9689 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9686, i64 %9688
  %9690 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9689, i32 0, i32 2
  %9691 = load ptr, ptr %9690, align 8, !tbaa !23
  %9692 = load i32, ptr %19, align 4, !tbaa !9
  %9693 = load i32, ptr %20, align 4, !tbaa !9
  %9694 = load i32, ptr %21, align 4, !tbaa !9
  call void %9682(ptr noundef %9691, i32 noundef %9692, i32 noundef %9693, i32 noundef %9694)
  %9695 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9695, ptr %19, align 4, !tbaa !9
  %9696 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9696, ptr %20, align 4, !tbaa !9
  store i32 624, ptr %21, align 4, !tbaa !9
  %9697 = load i32, ptr %21, align 4, !tbaa !9
  %9698 = load i32, ptr %20, align 4, !tbaa !9
  %9699 = add i32 %9698, %9697
  store i32 %9699, ptr %20, align 4, !tbaa !9
  store i32 48274, ptr %21, align 4, !tbaa !9
  %9700 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9700, ptr %22, align 4, !tbaa !9
  %9701 = load ptr, ptr %5, align 8, !tbaa !5
  %9702 = getelementptr inbounds %struct.w2c_hermes, ptr %9701, i32 0, i32 6
  %9703 = load i32, ptr %22, align 4, !tbaa !9
  %9704 = zext i32 %9703 to i64
  %9705 = call i32 @i32_load(ptr noundef %9702, i64 noundef %9704)
  store i32 %9705, ptr %22, align 4, !tbaa !9
  %9706 = load ptr, ptr %5, align 8, !tbaa !5
  %9707 = getelementptr inbounds %struct.w2c_hermes, ptr %9706, i32 0, i32 6
  %9708 = load i32, ptr %22, align 4, !tbaa !9
  %9709 = zext i32 %9708 to i64
  %9710 = add i64 %9709, 36
  %9711 = call i32 @i32_load(ptr noundef %9707, i64 noundef %9710)
  store i32 %9711, ptr %22, align 4, !tbaa !9
  %9712 = load i32, ptr %22, align 4, !tbaa !9
  %9713 = load ptr, ptr %5, align 8, !tbaa !5
  %9714 = getelementptr inbounds %struct.w2c_hermes, ptr %9713, i32 0, i32 7
  %9715 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9714, i32 0, i32 2
  %9716 = load i32, ptr %9715, align 4, !tbaa !18
  %9717 = icmp ult i32 %9712, %9716
  br i1 %9717, label %9718, label %9741

9718:                                             ; preds = %9671
  %9719 = load ptr, ptr %5, align 8, !tbaa !5
  %9720 = getelementptr inbounds %struct.w2c_hermes, ptr %9719, i32 0, i32 7
  %9721 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9720, i32 0, i32 0
  %9722 = load ptr, ptr %9721, align 8, !tbaa !19
  %9723 = load i32, ptr %22, align 4, !tbaa !9
  %9724 = zext i32 %9723 to i64
  %9725 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9722, i64 %9724
  %9726 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9725, i32 0, i32 1
  %9727 = load ptr, ptr %9726, align 8, !tbaa !20
  %9728 = icmp ne ptr %9727, null
  br i1 %9728, label %9729, label %9741

9729:                                             ; preds = %9718
  %9730 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9731 = load ptr, ptr %5, align 8, !tbaa !5
  %9732 = getelementptr inbounds %struct.w2c_hermes, ptr %9731, i32 0, i32 7
  %9733 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9732, i32 0, i32 0
  %9734 = load ptr, ptr %9733, align 8, !tbaa !19
  %9735 = load i32, ptr %22, align 4, !tbaa !9
  %9736 = zext i32 %9735 to i64
  %9737 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9734, i64 %9736
  %9738 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9737, i32 0, i32 0
  %9739 = load ptr, ptr %9738, align 8, !tbaa !22
  %9740 = call zeroext i1 @func_types_eq(ptr noundef %9730, ptr noundef %9739)
  br label %9741

9741:                                             ; preds = %9729, %9718, %9671
  %9742 = phi i1 [ false, %9718 ], [ false, %9671 ], [ %9740, %9729 ]
  %9743 = xor i1 %9742, true
  %9744 = xor i1 %9743, true
  %9745 = zext i1 %9744 to i32
  %9746 = sext i32 %9745 to i64
  %9747 = call i64 @llvm.expect.i64(i64 %9746, i64 1)
  %9748 = icmp ne i64 %9747, 0
  br i1 %9748, label %9751, label %9749

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

9750:                                             ; No predecessors!
  br label %9751

9751:                                             ; preds = %9750, %9741
  %9752 = phi i1 [ true, %9741 ], [ false, %9750 ]
  %9753 = zext i1 %9752 to i32
  %9754 = load ptr, ptr %5, align 8, !tbaa !5
  %9755 = getelementptr inbounds %struct.w2c_hermes, ptr %9754, i32 0, i32 7
  %9756 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9755, i32 0, i32 0
  %9757 = load ptr, ptr %9756, align 8, !tbaa !19
  %9758 = load i32, ptr %22, align 4, !tbaa !9
  %9759 = zext i32 %9758 to i64
  %9760 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9757, i64 %9759
  %9761 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9760, i32 0, i32 1
  %9762 = load ptr, ptr %9761, align 8, !tbaa !20
  %9763 = load ptr, ptr %5, align 8, !tbaa !5
  %9764 = getelementptr inbounds %struct.w2c_hermes, ptr %9763, i32 0, i32 7
  %9765 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9764, i32 0, i32 0
  %9766 = load ptr, ptr %9765, align 8, !tbaa !19
  %9767 = load i32, ptr %22, align 4, !tbaa !9
  %9768 = zext i32 %9767 to i64
  %9769 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9766, i64 %9768
  %9770 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9769, i32 0, i32 2
  %9771 = load ptr, ptr %9770, align 8, !tbaa !23
  %9772 = load i32, ptr %19, align 4, !tbaa !9
  %9773 = load i32, ptr %20, align 4, !tbaa !9
  %9774 = load i32, ptr %21, align 4, !tbaa !9
  call void %9762(ptr noundef %9771, i32 noundef %9772, i32 noundef %9773, i32 noundef %9774)
  %9775 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9775, ptr %19, align 4, !tbaa !9
  %9776 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9776, ptr %20, align 4, !tbaa !9
  store i32 632, ptr %21, align 4, !tbaa !9
  %9777 = load i32, ptr %21, align 4, !tbaa !9
  %9778 = load i32, ptr %20, align 4, !tbaa !9
  %9779 = add i32 %9778, %9777
  store i32 %9779, ptr %20, align 4, !tbaa !9
  store i32 48601, ptr %21, align 4, !tbaa !9
  %9780 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9780, ptr %22, align 4, !tbaa !9
  %9781 = load ptr, ptr %5, align 8, !tbaa !5
  %9782 = getelementptr inbounds %struct.w2c_hermes, ptr %9781, i32 0, i32 6
  %9783 = load i32, ptr %22, align 4, !tbaa !9
  %9784 = zext i32 %9783 to i64
  %9785 = call i32 @i32_load(ptr noundef %9782, i64 noundef %9784)
  store i32 %9785, ptr %22, align 4, !tbaa !9
  %9786 = load ptr, ptr %5, align 8, !tbaa !5
  %9787 = getelementptr inbounds %struct.w2c_hermes, ptr %9786, i32 0, i32 6
  %9788 = load i32, ptr %22, align 4, !tbaa !9
  %9789 = zext i32 %9788 to i64
  %9790 = add i64 %9789, 36
  %9791 = call i32 @i32_load(ptr noundef %9787, i64 noundef %9790)
  store i32 %9791, ptr %22, align 4, !tbaa !9
  %9792 = load i32, ptr %22, align 4, !tbaa !9
  %9793 = load ptr, ptr %5, align 8, !tbaa !5
  %9794 = getelementptr inbounds %struct.w2c_hermes, ptr %9793, i32 0, i32 7
  %9795 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9794, i32 0, i32 2
  %9796 = load i32, ptr %9795, align 4, !tbaa !18
  %9797 = icmp ult i32 %9792, %9796
  br i1 %9797, label %9798, label %9821

9798:                                             ; preds = %9751
  %9799 = load ptr, ptr %5, align 8, !tbaa !5
  %9800 = getelementptr inbounds %struct.w2c_hermes, ptr %9799, i32 0, i32 7
  %9801 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9800, i32 0, i32 0
  %9802 = load ptr, ptr %9801, align 8, !tbaa !19
  %9803 = load i32, ptr %22, align 4, !tbaa !9
  %9804 = zext i32 %9803 to i64
  %9805 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9802, i64 %9804
  %9806 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9805, i32 0, i32 1
  %9807 = load ptr, ptr %9806, align 8, !tbaa !20
  %9808 = icmp ne ptr %9807, null
  br i1 %9808, label %9809, label %9821

9809:                                             ; preds = %9798
  %9810 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9811 = load ptr, ptr %5, align 8, !tbaa !5
  %9812 = getelementptr inbounds %struct.w2c_hermes, ptr %9811, i32 0, i32 7
  %9813 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9812, i32 0, i32 0
  %9814 = load ptr, ptr %9813, align 8, !tbaa !19
  %9815 = load i32, ptr %22, align 4, !tbaa !9
  %9816 = zext i32 %9815 to i64
  %9817 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9814, i64 %9816
  %9818 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9817, i32 0, i32 0
  %9819 = load ptr, ptr %9818, align 8, !tbaa !22
  %9820 = call zeroext i1 @func_types_eq(ptr noundef %9810, ptr noundef %9819)
  br label %9821

9821:                                             ; preds = %9809, %9798, %9751
  %9822 = phi i1 [ false, %9798 ], [ false, %9751 ], [ %9820, %9809 ]
  %9823 = xor i1 %9822, true
  %9824 = xor i1 %9823, true
  %9825 = zext i1 %9824 to i32
  %9826 = sext i32 %9825 to i64
  %9827 = call i64 @llvm.expect.i64(i64 %9826, i64 1)
  %9828 = icmp ne i64 %9827, 0
  br i1 %9828, label %9831, label %9829

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

9830:                                             ; No predecessors!
  br label %9831

9831:                                             ; preds = %9830, %9821
  %9832 = phi i1 [ true, %9821 ], [ false, %9830 ]
  %9833 = zext i1 %9832 to i32
  %9834 = load ptr, ptr %5, align 8, !tbaa !5
  %9835 = getelementptr inbounds %struct.w2c_hermes, ptr %9834, i32 0, i32 7
  %9836 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9835, i32 0, i32 0
  %9837 = load ptr, ptr %9836, align 8, !tbaa !19
  %9838 = load i32, ptr %22, align 4, !tbaa !9
  %9839 = zext i32 %9838 to i64
  %9840 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9837, i64 %9839
  %9841 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9840, i32 0, i32 1
  %9842 = load ptr, ptr %9841, align 8, !tbaa !20
  %9843 = load ptr, ptr %5, align 8, !tbaa !5
  %9844 = getelementptr inbounds %struct.w2c_hermes, ptr %9843, i32 0, i32 7
  %9845 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9844, i32 0, i32 0
  %9846 = load ptr, ptr %9845, align 8, !tbaa !19
  %9847 = load i32, ptr %22, align 4, !tbaa !9
  %9848 = zext i32 %9847 to i64
  %9849 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9846, i64 %9848
  %9850 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9849, i32 0, i32 2
  %9851 = load ptr, ptr %9850, align 8, !tbaa !23
  %9852 = load i32, ptr %19, align 4, !tbaa !9
  %9853 = load i32, ptr %20, align 4, !tbaa !9
  %9854 = load i32, ptr %21, align 4, !tbaa !9
  call void %9842(ptr noundef %9851, i32 noundef %9852, i32 noundef %9853, i32 noundef %9854)
  %9855 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9855, ptr %19, align 4, !tbaa !9
  %9856 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9856, ptr %20, align 4, !tbaa !9
  store i32 640, ptr %21, align 4, !tbaa !9
  %9857 = load i32, ptr %21, align 4, !tbaa !9
  %9858 = load i32, ptr %20, align 4, !tbaa !9
  %9859 = add i32 %9858, %9857
  store i32 %9859, ptr %20, align 4, !tbaa !9
  store i32 41328, ptr %21, align 4, !tbaa !9
  %9860 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9860, ptr %22, align 4, !tbaa !9
  %9861 = load ptr, ptr %5, align 8, !tbaa !5
  %9862 = getelementptr inbounds %struct.w2c_hermes, ptr %9861, i32 0, i32 6
  %9863 = load i32, ptr %22, align 4, !tbaa !9
  %9864 = zext i32 %9863 to i64
  %9865 = call i32 @i32_load(ptr noundef %9862, i64 noundef %9864)
  store i32 %9865, ptr %22, align 4, !tbaa !9
  %9866 = load ptr, ptr %5, align 8, !tbaa !5
  %9867 = getelementptr inbounds %struct.w2c_hermes, ptr %9866, i32 0, i32 6
  %9868 = load i32, ptr %22, align 4, !tbaa !9
  %9869 = zext i32 %9868 to i64
  %9870 = add i64 %9869, 36
  %9871 = call i32 @i32_load(ptr noundef %9867, i64 noundef %9870)
  store i32 %9871, ptr %22, align 4, !tbaa !9
  %9872 = load i32, ptr %22, align 4, !tbaa !9
  %9873 = load ptr, ptr %5, align 8, !tbaa !5
  %9874 = getelementptr inbounds %struct.w2c_hermes, ptr %9873, i32 0, i32 7
  %9875 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9874, i32 0, i32 2
  %9876 = load i32, ptr %9875, align 4, !tbaa !18
  %9877 = icmp ult i32 %9872, %9876
  br i1 %9877, label %9878, label %9901

9878:                                             ; preds = %9831
  %9879 = load ptr, ptr %5, align 8, !tbaa !5
  %9880 = getelementptr inbounds %struct.w2c_hermes, ptr %9879, i32 0, i32 7
  %9881 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9880, i32 0, i32 0
  %9882 = load ptr, ptr %9881, align 8, !tbaa !19
  %9883 = load i32, ptr %22, align 4, !tbaa !9
  %9884 = zext i32 %9883 to i64
  %9885 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9882, i64 %9884
  %9886 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9885, i32 0, i32 1
  %9887 = load ptr, ptr %9886, align 8, !tbaa !20
  %9888 = icmp ne ptr %9887, null
  br i1 %9888, label %9889, label %9901

9889:                                             ; preds = %9878
  %9890 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9891 = load ptr, ptr %5, align 8, !tbaa !5
  %9892 = getelementptr inbounds %struct.w2c_hermes, ptr %9891, i32 0, i32 7
  %9893 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9892, i32 0, i32 0
  %9894 = load ptr, ptr %9893, align 8, !tbaa !19
  %9895 = load i32, ptr %22, align 4, !tbaa !9
  %9896 = zext i32 %9895 to i64
  %9897 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9894, i64 %9896
  %9898 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9897, i32 0, i32 0
  %9899 = load ptr, ptr %9898, align 8, !tbaa !22
  %9900 = call zeroext i1 @func_types_eq(ptr noundef %9890, ptr noundef %9899)
  br label %9901

9901:                                             ; preds = %9889, %9878, %9831
  %9902 = phi i1 [ false, %9878 ], [ false, %9831 ], [ %9900, %9889 ]
  %9903 = xor i1 %9902, true
  %9904 = xor i1 %9903, true
  %9905 = zext i1 %9904 to i32
  %9906 = sext i32 %9905 to i64
  %9907 = call i64 @llvm.expect.i64(i64 %9906, i64 1)
  %9908 = icmp ne i64 %9907, 0
  br i1 %9908, label %9911, label %9909

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

9910:                                             ; No predecessors!
  br label %9911

9911:                                             ; preds = %9910, %9901
  %9912 = phi i1 [ true, %9901 ], [ false, %9910 ]
  %9913 = zext i1 %9912 to i32
  %9914 = load ptr, ptr %5, align 8, !tbaa !5
  %9915 = getelementptr inbounds %struct.w2c_hermes, ptr %9914, i32 0, i32 7
  %9916 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9915, i32 0, i32 0
  %9917 = load ptr, ptr %9916, align 8, !tbaa !19
  %9918 = load i32, ptr %22, align 4, !tbaa !9
  %9919 = zext i32 %9918 to i64
  %9920 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9917, i64 %9919
  %9921 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9920, i32 0, i32 1
  %9922 = load ptr, ptr %9921, align 8, !tbaa !20
  %9923 = load ptr, ptr %5, align 8, !tbaa !5
  %9924 = getelementptr inbounds %struct.w2c_hermes, ptr %9923, i32 0, i32 7
  %9925 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9924, i32 0, i32 0
  %9926 = load ptr, ptr %9925, align 8, !tbaa !19
  %9927 = load i32, ptr %22, align 4, !tbaa !9
  %9928 = zext i32 %9927 to i64
  %9929 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9926, i64 %9928
  %9930 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9929, i32 0, i32 2
  %9931 = load ptr, ptr %9930, align 8, !tbaa !23
  %9932 = load i32, ptr %19, align 4, !tbaa !9
  %9933 = load i32, ptr %20, align 4, !tbaa !9
  %9934 = load i32, ptr %21, align 4, !tbaa !9
  call void %9922(ptr noundef %9931, i32 noundef %9932, i32 noundef %9933, i32 noundef %9934)
  %9935 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9935, ptr %19, align 4, !tbaa !9
  %9936 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %9936, ptr %20, align 4, !tbaa !9
  store i32 648, ptr %21, align 4, !tbaa !9
  %9937 = load i32, ptr %21, align 4, !tbaa !9
  %9938 = load i32, ptr %20, align 4, !tbaa !9
  %9939 = add i32 %9938, %9937
  store i32 %9939, ptr %20, align 4, !tbaa !9
  store i32 41345, ptr %21, align 4, !tbaa !9
  %9940 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %9940, ptr %22, align 4, !tbaa !9
  %9941 = load ptr, ptr %5, align 8, !tbaa !5
  %9942 = getelementptr inbounds %struct.w2c_hermes, ptr %9941, i32 0, i32 6
  %9943 = load i32, ptr %22, align 4, !tbaa !9
  %9944 = zext i32 %9943 to i64
  %9945 = call i32 @i32_load(ptr noundef %9942, i64 noundef %9944)
  store i32 %9945, ptr %22, align 4, !tbaa !9
  %9946 = load ptr, ptr %5, align 8, !tbaa !5
  %9947 = getelementptr inbounds %struct.w2c_hermes, ptr %9946, i32 0, i32 6
  %9948 = load i32, ptr %22, align 4, !tbaa !9
  %9949 = zext i32 %9948 to i64
  %9950 = add i64 %9949, 36
  %9951 = call i32 @i32_load(ptr noundef %9947, i64 noundef %9950)
  store i32 %9951, ptr %22, align 4, !tbaa !9
  %9952 = load i32, ptr %22, align 4, !tbaa !9
  %9953 = load ptr, ptr %5, align 8, !tbaa !5
  %9954 = getelementptr inbounds %struct.w2c_hermes, ptr %9953, i32 0, i32 7
  %9955 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9954, i32 0, i32 2
  %9956 = load i32, ptr %9955, align 4, !tbaa !18
  %9957 = icmp ult i32 %9952, %9956
  br i1 %9957, label %9958, label %9981

9958:                                             ; preds = %9911
  %9959 = load ptr, ptr %5, align 8, !tbaa !5
  %9960 = getelementptr inbounds %struct.w2c_hermes, ptr %9959, i32 0, i32 7
  %9961 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9960, i32 0, i32 0
  %9962 = load ptr, ptr %9961, align 8, !tbaa !19
  %9963 = load i32, ptr %22, align 4, !tbaa !9
  %9964 = zext i32 %9963 to i64
  %9965 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9962, i64 %9964
  %9966 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9965, i32 0, i32 1
  %9967 = load ptr, ptr %9966, align 8, !tbaa !20
  %9968 = icmp ne ptr %9967, null
  br i1 %9968, label %9969, label %9981

9969:                                             ; preds = %9958
  %9970 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %9971 = load ptr, ptr %5, align 8, !tbaa !5
  %9972 = getelementptr inbounds %struct.w2c_hermes, ptr %9971, i32 0, i32 7
  %9973 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9972, i32 0, i32 0
  %9974 = load ptr, ptr %9973, align 8, !tbaa !19
  %9975 = load i32, ptr %22, align 4, !tbaa !9
  %9976 = zext i32 %9975 to i64
  %9977 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9974, i64 %9976
  %9978 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9977, i32 0, i32 0
  %9979 = load ptr, ptr %9978, align 8, !tbaa !22
  %9980 = call zeroext i1 @func_types_eq(ptr noundef %9970, ptr noundef %9979)
  br label %9981

9981:                                             ; preds = %9969, %9958, %9911
  %9982 = phi i1 [ false, %9958 ], [ false, %9911 ], [ %9980, %9969 ]
  %9983 = xor i1 %9982, true
  %9984 = xor i1 %9983, true
  %9985 = zext i1 %9984 to i32
  %9986 = sext i32 %9985 to i64
  %9987 = call i64 @llvm.expect.i64(i64 %9986, i64 1)
  %9988 = icmp ne i64 %9987, 0
  br i1 %9988, label %9991, label %9989

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

9990:                                             ; No predecessors!
  br label %9991

9991:                                             ; preds = %9990, %9981
  %9992 = phi i1 [ true, %9981 ], [ false, %9990 ]
  %9993 = zext i1 %9992 to i32
  %9994 = load ptr, ptr %5, align 8, !tbaa !5
  %9995 = getelementptr inbounds %struct.w2c_hermes, ptr %9994, i32 0, i32 7
  %9996 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %9995, i32 0, i32 0
  %9997 = load ptr, ptr %9996, align 8, !tbaa !19
  %9998 = load i32, ptr %22, align 4, !tbaa !9
  %9999 = zext i32 %9998 to i64
  %10000 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %9997, i64 %9999
  %10001 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10000, i32 0, i32 1
  %10002 = load ptr, ptr %10001, align 8, !tbaa !20
  %10003 = load ptr, ptr %5, align 8, !tbaa !5
  %10004 = getelementptr inbounds %struct.w2c_hermes, ptr %10003, i32 0, i32 7
  %10005 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10004, i32 0, i32 0
  %10006 = load ptr, ptr %10005, align 8, !tbaa !19
  %10007 = load i32, ptr %22, align 4, !tbaa !9
  %10008 = zext i32 %10007 to i64
  %10009 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10006, i64 %10008
  %10010 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10009, i32 0, i32 2
  %10011 = load ptr, ptr %10010, align 8, !tbaa !23
  %10012 = load i32, ptr %19, align 4, !tbaa !9
  %10013 = load i32, ptr %20, align 4, !tbaa !9
  %10014 = load i32, ptr %21, align 4, !tbaa !9
  call void %10002(ptr noundef %10011, i32 noundef %10012, i32 noundef %10013, i32 noundef %10014)
  %10015 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10015, ptr %19, align 4, !tbaa !9
  %10016 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10016, ptr %20, align 4, !tbaa !9
  store i32 656, ptr %21, align 4, !tbaa !9
  %10017 = load i32, ptr %21, align 4, !tbaa !9
  %10018 = load i32, ptr %20, align 4, !tbaa !9
  %10019 = add i32 %10018, %10017
  store i32 %10019, ptr %20, align 4, !tbaa !9
  store i32 41378, ptr %21, align 4, !tbaa !9
  %10020 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10020, ptr %22, align 4, !tbaa !9
  %10021 = load ptr, ptr %5, align 8, !tbaa !5
  %10022 = getelementptr inbounds %struct.w2c_hermes, ptr %10021, i32 0, i32 6
  %10023 = load i32, ptr %22, align 4, !tbaa !9
  %10024 = zext i32 %10023 to i64
  %10025 = call i32 @i32_load(ptr noundef %10022, i64 noundef %10024)
  store i32 %10025, ptr %22, align 4, !tbaa !9
  %10026 = load ptr, ptr %5, align 8, !tbaa !5
  %10027 = getelementptr inbounds %struct.w2c_hermes, ptr %10026, i32 0, i32 6
  %10028 = load i32, ptr %22, align 4, !tbaa !9
  %10029 = zext i32 %10028 to i64
  %10030 = add i64 %10029, 36
  %10031 = call i32 @i32_load(ptr noundef %10027, i64 noundef %10030)
  store i32 %10031, ptr %22, align 4, !tbaa !9
  %10032 = load i32, ptr %22, align 4, !tbaa !9
  %10033 = load ptr, ptr %5, align 8, !tbaa !5
  %10034 = getelementptr inbounds %struct.w2c_hermes, ptr %10033, i32 0, i32 7
  %10035 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10034, i32 0, i32 2
  %10036 = load i32, ptr %10035, align 4, !tbaa !18
  %10037 = icmp ult i32 %10032, %10036
  br i1 %10037, label %10038, label %10061

10038:                                            ; preds = %9991
  %10039 = load ptr, ptr %5, align 8, !tbaa !5
  %10040 = getelementptr inbounds %struct.w2c_hermes, ptr %10039, i32 0, i32 7
  %10041 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10040, i32 0, i32 0
  %10042 = load ptr, ptr %10041, align 8, !tbaa !19
  %10043 = load i32, ptr %22, align 4, !tbaa !9
  %10044 = zext i32 %10043 to i64
  %10045 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10042, i64 %10044
  %10046 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10045, i32 0, i32 1
  %10047 = load ptr, ptr %10046, align 8, !tbaa !20
  %10048 = icmp ne ptr %10047, null
  br i1 %10048, label %10049, label %10061

10049:                                            ; preds = %10038
  %10050 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %10051 = load ptr, ptr %5, align 8, !tbaa !5
  %10052 = getelementptr inbounds %struct.w2c_hermes, ptr %10051, i32 0, i32 7
  %10053 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10052, i32 0, i32 0
  %10054 = load ptr, ptr %10053, align 8, !tbaa !19
  %10055 = load i32, ptr %22, align 4, !tbaa !9
  %10056 = zext i32 %10055 to i64
  %10057 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10054, i64 %10056
  %10058 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10057, i32 0, i32 0
  %10059 = load ptr, ptr %10058, align 8, !tbaa !22
  %10060 = call zeroext i1 @func_types_eq(ptr noundef %10050, ptr noundef %10059)
  br label %10061

10061:                                            ; preds = %10049, %10038, %9991
  %10062 = phi i1 [ false, %10038 ], [ false, %9991 ], [ %10060, %10049 ]
  %10063 = xor i1 %10062, true
  %10064 = xor i1 %10063, true
  %10065 = zext i1 %10064 to i32
  %10066 = sext i32 %10065 to i64
  %10067 = call i64 @llvm.expect.i64(i64 %10066, i64 1)
  %10068 = icmp ne i64 %10067, 0
  br i1 %10068, label %10071, label %10069

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

10070:                                            ; No predecessors!
  br label %10071

10071:                                            ; preds = %10070, %10061
  %10072 = phi i1 [ true, %10061 ], [ false, %10070 ]
  %10073 = zext i1 %10072 to i32
  %10074 = load ptr, ptr %5, align 8, !tbaa !5
  %10075 = getelementptr inbounds %struct.w2c_hermes, ptr %10074, i32 0, i32 7
  %10076 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10075, i32 0, i32 0
  %10077 = load ptr, ptr %10076, align 8, !tbaa !19
  %10078 = load i32, ptr %22, align 4, !tbaa !9
  %10079 = zext i32 %10078 to i64
  %10080 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10077, i64 %10079
  %10081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10080, i32 0, i32 1
  %10082 = load ptr, ptr %10081, align 8, !tbaa !20
  %10083 = load ptr, ptr %5, align 8, !tbaa !5
  %10084 = getelementptr inbounds %struct.w2c_hermes, ptr %10083, i32 0, i32 7
  %10085 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10084, i32 0, i32 0
  %10086 = load ptr, ptr %10085, align 8, !tbaa !19
  %10087 = load i32, ptr %22, align 4, !tbaa !9
  %10088 = zext i32 %10087 to i64
  %10089 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10086, i64 %10088
  %10090 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10089, i32 0, i32 2
  %10091 = load ptr, ptr %10090, align 8, !tbaa !23
  %10092 = load i32, ptr %19, align 4, !tbaa !9
  %10093 = load i32, ptr %20, align 4, !tbaa !9
  %10094 = load i32, ptr %21, align 4, !tbaa !9
  call void %10082(ptr noundef %10091, i32 noundef %10092, i32 noundef %10093, i32 noundef %10094)
  %10095 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10095, ptr %19, align 4, !tbaa !9
  %10096 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10096, ptr %20, align 4, !tbaa !9
  store i32 664, ptr %21, align 4, !tbaa !9
  %10097 = load i32, ptr %21, align 4, !tbaa !9
  %10098 = load i32, ptr %20, align 4, !tbaa !9
  %10099 = add i32 %10098, %10097
  store i32 %10099, ptr %20, align 4, !tbaa !9
  store i32 37309, ptr %21, align 4, !tbaa !9
  %10100 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10100, ptr %22, align 4, !tbaa !9
  %10101 = load ptr, ptr %5, align 8, !tbaa !5
  %10102 = getelementptr inbounds %struct.w2c_hermes, ptr %10101, i32 0, i32 6
  %10103 = load i32, ptr %22, align 4, !tbaa !9
  %10104 = zext i32 %10103 to i64
  %10105 = call i32 @i32_load(ptr noundef %10102, i64 noundef %10104)
  store i32 %10105, ptr %22, align 4, !tbaa !9
  %10106 = load ptr, ptr %5, align 8, !tbaa !5
  %10107 = getelementptr inbounds %struct.w2c_hermes, ptr %10106, i32 0, i32 6
  %10108 = load i32, ptr %22, align 4, !tbaa !9
  %10109 = zext i32 %10108 to i64
  %10110 = add i64 %10109, 36
  %10111 = call i32 @i32_load(ptr noundef %10107, i64 noundef %10110)
  store i32 %10111, ptr %22, align 4, !tbaa !9
  %10112 = load i32, ptr %22, align 4, !tbaa !9
  %10113 = load ptr, ptr %5, align 8, !tbaa !5
  %10114 = getelementptr inbounds %struct.w2c_hermes, ptr %10113, i32 0, i32 7
  %10115 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10114, i32 0, i32 2
  %10116 = load i32, ptr %10115, align 4, !tbaa !18
  %10117 = icmp ult i32 %10112, %10116
  br i1 %10117, label %10118, label %10141

10118:                                            ; preds = %10071
  %10119 = load ptr, ptr %5, align 8, !tbaa !5
  %10120 = getelementptr inbounds %struct.w2c_hermes, ptr %10119, i32 0, i32 7
  %10121 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10120, i32 0, i32 0
  %10122 = load ptr, ptr %10121, align 8, !tbaa !19
  %10123 = load i32, ptr %22, align 4, !tbaa !9
  %10124 = zext i32 %10123 to i64
  %10125 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10122, i64 %10124
  %10126 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10125, i32 0, i32 1
  %10127 = load ptr, ptr %10126, align 8, !tbaa !20
  %10128 = icmp ne ptr %10127, null
  br i1 %10128, label %10129, label %10141

10129:                                            ; preds = %10118
  %10130 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %10131 = load ptr, ptr %5, align 8, !tbaa !5
  %10132 = getelementptr inbounds %struct.w2c_hermes, ptr %10131, i32 0, i32 7
  %10133 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10132, i32 0, i32 0
  %10134 = load ptr, ptr %10133, align 8, !tbaa !19
  %10135 = load i32, ptr %22, align 4, !tbaa !9
  %10136 = zext i32 %10135 to i64
  %10137 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10134, i64 %10136
  %10138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10137, i32 0, i32 0
  %10139 = load ptr, ptr %10138, align 8, !tbaa !22
  %10140 = call zeroext i1 @func_types_eq(ptr noundef %10130, ptr noundef %10139)
  br label %10141

10141:                                            ; preds = %10129, %10118, %10071
  %10142 = phi i1 [ false, %10118 ], [ false, %10071 ], [ %10140, %10129 ]
  %10143 = xor i1 %10142, true
  %10144 = xor i1 %10143, true
  %10145 = zext i1 %10144 to i32
  %10146 = sext i32 %10145 to i64
  %10147 = call i64 @llvm.expect.i64(i64 %10146, i64 1)
  %10148 = icmp ne i64 %10147, 0
  br i1 %10148, label %10151, label %10149

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

10150:                                            ; No predecessors!
  br label %10151

10151:                                            ; preds = %10150, %10141
  %10152 = phi i1 [ true, %10141 ], [ false, %10150 ]
  %10153 = zext i1 %10152 to i32
  %10154 = load ptr, ptr %5, align 8, !tbaa !5
  %10155 = getelementptr inbounds %struct.w2c_hermes, ptr %10154, i32 0, i32 7
  %10156 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10155, i32 0, i32 0
  %10157 = load ptr, ptr %10156, align 8, !tbaa !19
  %10158 = load i32, ptr %22, align 4, !tbaa !9
  %10159 = zext i32 %10158 to i64
  %10160 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10157, i64 %10159
  %10161 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10160, i32 0, i32 1
  %10162 = load ptr, ptr %10161, align 8, !tbaa !20
  %10163 = load ptr, ptr %5, align 8, !tbaa !5
  %10164 = getelementptr inbounds %struct.w2c_hermes, ptr %10163, i32 0, i32 7
  %10165 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10164, i32 0, i32 0
  %10166 = load ptr, ptr %10165, align 8, !tbaa !19
  %10167 = load i32, ptr %22, align 4, !tbaa !9
  %10168 = zext i32 %10167 to i64
  %10169 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10166, i64 %10168
  %10170 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10169, i32 0, i32 2
  %10171 = load ptr, ptr %10170, align 8, !tbaa !23
  %10172 = load i32, ptr %19, align 4, !tbaa !9
  %10173 = load i32, ptr %20, align 4, !tbaa !9
  %10174 = load i32, ptr %21, align 4, !tbaa !9
  call void %10162(ptr noundef %10171, i32 noundef %10172, i32 noundef %10173, i32 noundef %10174)
  %10175 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10175, ptr %19, align 4, !tbaa !9
  %10176 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10176, ptr %20, align 4, !tbaa !9
  store i32 672, ptr %21, align 4, !tbaa !9
  %10177 = load i32, ptr %21, align 4, !tbaa !9
  %10178 = load i32, ptr %20, align 4, !tbaa !9
  %10179 = add i32 %10178, %10177
  store i32 %10179, ptr %20, align 4, !tbaa !9
  store i32 48717, ptr %21, align 4, !tbaa !9
  %10180 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10180, ptr %22, align 4, !tbaa !9
  %10181 = load ptr, ptr %5, align 8, !tbaa !5
  %10182 = getelementptr inbounds %struct.w2c_hermes, ptr %10181, i32 0, i32 6
  %10183 = load i32, ptr %22, align 4, !tbaa !9
  %10184 = zext i32 %10183 to i64
  %10185 = call i32 @i32_load(ptr noundef %10182, i64 noundef %10184)
  store i32 %10185, ptr %22, align 4, !tbaa !9
  %10186 = load ptr, ptr %5, align 8, !tbaa !5
  %10187 = getelementptr inbounds %struct.w2c_hermes, ptr %10186, i32 0, i32 6
  %10188 = load i32, ptr %22, align 4, !tbaa !9
  %10189 = zext i32 %10188 to i64
  %10190 = add i64 %10189, 36
  %10191 = call i32 @i32_load(ptr noundef %10187, i64 noundef %10190)
  store i32 %10191, ptr %22, align 4, !tbaa !9
  %10192 = load i32, ptr %22, align 4, !tbaa !9
  %10193 = load ptr, ptr %5, align 8, !tbaa !5
  %10194 = getelementptr inbounds %struct.w2c_hermes, ptr %10193, i32 0, i32 7
  %10195 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10194, i32 0, i32 2
  %10196 = load i32, ptr %10195, align 4, !tbaa !18
  %10197 = icmp ult i32 %10192, %10196
  br i1 %10197, label %10198, label %10221

10198:                                            ; preds = %10151
  %10199 = load ptr, ptr %5, align 8, !tbaa !5
  %10200 = getelementptr inbounds %struct.w2c_hermes, ptr %10199, i32 0, i32 7
  %10201 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10200, i32 0, i32 0
  %10202 = load ptr, ptr %10201, align 8, !tbaa !19
  %10203 = load i32, ptr %22, align 4, !tbaa !9
  %10204 = zext i32 %10203 to i64
  %10205 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10202, i64 %10204
  %10206 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10205, i32 0, i32 1
  %10207 = load ptr, ptr %10206, align 8, !tbaa !20
  %10208 = icmp ne ptr %10207, null
  br i1 %10208, label %10209, label %10221

10209:                                            ; preds = %10198
  %10210 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %10211 = load ptr, ptr %5, align 8, !tbaa !5
  %10212 = getelementptr inbounds %struct.w2c_hermes, ptr %10211, i32 0, i32 7
  %10213 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10212, i32 0, i32 0
  %10214 = load ptr, ptr %10213, align 8, !tbaa !19
  %10215 = load i32, ptr %22, align 4, !tbaa !9
  %10216 = zext i32 %10215 to i64
  %10217 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10214, i64 %10216
  %10218 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10217, i32 0, i32 0
  %10219 = load ptr, ptr %10218, align 8, !tbaa !22
  %10220 = call zeroext i1 @func_types_eq(ptr noundef %10210, ptr noundef %10219)
  br label %10221

10221:                                            ; preds = %10209, %10198, %10151
  %10222 = phi i1 [ false, %10198 ], [ false, %10151 ], [ %10220, %10209 ]
  %10223 = xor i1 %10222, true
  %10224 = xor i1 %10223, true
  %10225 = zext i1 %10224 to i32
  %10226 = sext i32 %10225 to i64
  %10227 = call i64 @llvm.expect.i64(i64 %10226, i64 1)
  %10228 = icmp ne i64 %10227, 0
  br i1 %10228, label %10231, label %10229

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

10230:                                            ; No predecessors!
  br label %10231

10231:                                            ; preds = %10230, %10221
  %10232 = phi i1 [ true, %10221 ], [ false, %10230 ]
  %10233 = zext i1 %10232 to i32
  %10234 = load ptr, ptr %5, align 8, !tbaa !5
  %10235 = getelementptr inbounds %struct.w2c_hermes, ptr %10234, i32 0, i32 7
  %10236 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10235, i32 0, i32 0
  %10237 = load ptr, ptr %10236, align 8, !tbaa !19
  %10238 = load i32, ptr %22, align 4, !tbaa !9
  %10239 = zext i32 %10238 to i64
  %10240 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10237, i64 %10239
  %10241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10240, i32 0, i32 1
  %10242 = load ptr, ptr %10241, align 8, !tbaa !20
  %10243 = load ptr, ptr %5, align 8, !tbaa !5
  %10244 = getelementptr inbounds %struct.w2c_hermes, ptr %10243, i32 0, i32 7
  %10245 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10244, i32 0, i32 0
  %10246 = load ptr, ptr %10245, align 8, !tbaa !19
  %10247 = load i32, ptr %22, align 4, !tbaa !9
  %10248 = zext i32 %10247 to i64
  %10249 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10246, i64 %10248
  %10250 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10249, i32 0, i32 2
  %10251 = load ptr, ptr %10250, align 8, !tbaa !23
  %10252 = load i32, ptr %19, align 4, !tbaa !9
  %10253 = load i32, ptr %20, align 4, !tbaa !9
  %10254 = load i32, ptr %21, align 4, !tbaa !9
  call void %10242(ptr noundef %10251, i32 noundef %10252, i32 noundef %10253, i32 noundef %10254)
  %10255 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10255, ptr %19, align 4, !tbaa !9
  %10256 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10256, ptr %20, align 4, !tbaa !9
  store i32 680, ptr %21, align 4, !tbaa !9
  %10257 = load i32, ptr %21, align 4, !tbaa !9
  %10258 = load i32, ptr %20, align 4, !tbaa !9
  %10259 = add i32 %10258, %10257
  store i32 %10259, ptr %20, align 4, !tbaa !9
  store i32 48500, ptr %21, align 4, !tbaa !9
  %10260 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10260, ptr %22, align 4, !tbaa !9
  %10261 = load ptr, ptr %5, align 8, !tbaa !5
  %10262 = getelementptr inbounds %struct.w2c_hermes, ptr %10261, i32 0, i32 6
  %10263 = load i32, ptr %22, align 4, !tbaa !9
  %10264 = zext i32 %10263 to i64
  %10265 = call i32 @i32_load(ptr noundef %10262, i64 noundef %10264)
  store i32 %10265, ptr %22, align 4, !tbaa !9
  %10266 = load ptr, ptr %5, align 8, !tbaa !5
  %10267 = getelementptr inbounds %struct.w2c_hermes, ptr %10266, i32 0, i32 6
  %10268 = load i32, ptr %22, align 4, !tbaa !9
  %10269 = zext i32 %10268 to i64
  %10270 = add i64 %10269, 36
  %10271 = call i32 @i32_load(ptr noundef %10267, i64 noundef %10270)
  store i32 %10271, ptr %22, align 4, !tbaa !9
  %10272 = load i32, ptr %22, align 4, !tbaa !9
  %10273 = load ptr, ptr %5, align 8, !tbaa !5
  %10274 = getelementptr inbounds %struct.w2c_hermes, ptr %10273, i32 0, i32 7
  %10275 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10274, i32 0, i32 2
  %10276 = load i32, ptr %10275, align 4, !tbaa !18
  %10277 = icmp ult i32 %10272, %10276
  br i1 %10277, label %10278, label %10301

10278:                                            ; preds = %10231
  %10279 = load ptr, ptr %5, align 8, !tbaa !5
  %10280 = getelementptr inbounds %struct.w2c_hermes, ptr %10279, i32 0, i32 7
  %10281 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10280, i32 0, i32 0
  %10282 = load ptr, ptr %10281, align 8, !tbaa !19
  %10283 = load i32, ptr %22, align 4, !tbaa !9
  %10284 = zext i32 %10283 to i64
  %10285 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10282, i64 %10284
  %10286 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10285, i32 0, i32 1
  %10287 = load ptr, ptr %10286, align 8, !tbaa !20
  %10288 = icmp ne ptr %10287, null
  br i1 %10288, label %10289, label %10301

10289:                                            ; preds = %10278
  %10290 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %10291 = load ptr, ptr %5, align 8, !tbaa !5
  %10292 = getelementptr inbounds %struct.w2c_hermes, ptr %10291, i32 0, i32 7
  %10293 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10292, i32 0, i32 0
  %10294 = load ptr, ptr %10293, align 8, !tbaa !19
  %10295 = load i32, ptr %22, align 4, !tbaa !9
  %10296 = zext i32 %10295 to i64
  %10297 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10294, i64 %10296
  %10298 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10297, i32 0, i32 0
  %10299 = load ptr, ptr %10298, align 8, !tbaa !22
  %10300 = call zeroext i1 @func_types_eq(ptr noundef %10290, ptr noundef %10299)
  br label %10301

10301:                                            ; preds = %10289, %10278, %10231
  %10302 = phi i1 [ false, %10278 ], [ false, %10231 ], [ %10300, %10289 ]
  %10303 = xor i1 %10302, true
  %10304 = xor i1 %10303, true
  %10305 = zext i1 %10304 to i32
  %10306 = sext i32 %10305 to i64
  %10307 = call i64 @llvm.expect.i64(i64 %10306, i64 1)
  %10308 = icmp ne i64 %10307, 0
  br i1 %10308, label %10311, label %10309

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

10310:                                            ; No predecessors!
  br label %10311

10311:                                            ; preds = %10310, %10301
  %10312 = phi i1 [ true, %10301 ], [ false, %10310 ]
  %10313 = zext i1 %10312 to i32
  %10314 = load ptr, ptr %5, align 8, !tbaa !5
  %10315 = getelementptr inbounds %struct.w2c_hermes, ptr %10314, i32 0, i32 7
  %10316 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10315, i32 0, i32 0
  %10317 = load ptr, ptr %10316, align 8, !tbaa !19
  %10318 = load i32, ptr %22, align 4, !tbaa !9
  %10319 = zext i32 %10318 to i64
  %10320 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10317, i64 %10319
  %10321 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10320, i32 0, i32 1
  %10322 = load ptr, ptr %10321, align 8, !tbaa !20
  %10323 = load ptr, ptr %5, align 8, !tbaa !5
  %10324 = getelementptr inbounds %struct.w2c_hermes, ptr %10323, i32 0, i32 7
  %10325 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10324, i32 0, i32 0
  %10326 = load ptr, ptr %10325, align 8, !tbaa !19
  %10327 = load i32, ptr %22, align 4, !tbaa !9
  %10328 = zext i32 %10327 to i64
  %10329 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10326, i64 %10328
  %10330 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10329, i32 0, i32 2
  %10331 = load ptr, ptr %10330, align 8, !tbaa !23
  %10332 = load i32, ptr %19, align 4, !tbaa !9
  %10333 = load i32, ptr %20, align 4, !tbaa !9
  %10334 = load i32, ptr %21, align 4, !tbaa !9
  call void %10322(ptr noundef %10331, i32 noundef %10332, i32 noundef %10333, i32 noundef %10334)
  %10335 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10335, ptr %19, align 4, !tbaa !9
  %10336 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10336, ptr %20, align 4, !tbaa !9
  store i32 728, ptr %21, align 4, !tbaa !9
  %10337 = load i32, ptr %21, align 4, !tbaa !9
  %10338 = load i32, ptr %20, align 4, !tbaa !9
  %10339 = add i32 %10338, %10337
  store i32 %10339, ptr %20, align 4, !tbaa !9
  store i32 48121, ptr %21, align 4, !tbaa !9
  %10340 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10340, ptr %22, align 4, !tbaa !9
  %10341 = load ptr, ptr %5, align 8, !tbaa !5
  %10342 = getelementptr inbounds %struct.w2c_hermes, ptr %10341, i32 0, i32 6
  %10343 = load i32, ptr %22, align 4, !tbaa !9
  %10344 = zext i32 %10343 to i64
  %10345 = call i32 @i32_load(ptr noundef %10342, i64 noundef %10344)
  store i32 %10345, ptr %22, align 4, !tbaa !9
  %10346 = load ptr, ptr %5, align 8, !tbaa !5
  %10347 = getelementptr inbounds %struct.w2c_hermes, ptr %10346, i32 0, i32 6
  %10348 = load i32, ptr %22, align 4, !tbaa !9
  %10349 = zext i32 %10348 to i64
  %10350 = add i64 %10349, 32
  %10351 = call i32 @i32_load(ptr noundef %10347, i64 noundef %10350)
  store i32 %10351, ptr %22, align 4, !tbaa !9
  %10352 = load i32, ptr %22, align 4, !tbaa !9
  %10353 = load ptr, ptr %5, align 8, !tbaa !5
  %10354 = getelementptr inbounds %struct.w2c_hermes, ptr %10353, i32 0, i32 7
  %10355 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10354, i32 0, i32 2
  %10356 = load i32, ptr %10355, align 4, !tbaa !18
  %10357 = icmp ult i32 %10352, %10356
  br i1 %10357, label %10358, label %10381

10358:                                            ; preds = %10311
  %10359 = load ptr, ptr %5, align 8, !tbaa !5
  %10360 = getelementptr inbounds %struct.w2c_hermes, ptr %10359, i32 0, i32 7
  %10361 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10360, i32 0, i32 0
  %10362 = load ptr, ptr %10361, align 8, !tbaa !19
  %10363 = load i32, ptr %22, align 4, !tbaa !9
  %10364 = zext i32 %10363 to i64
  %10365 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10362, i64 %10364
  %10366 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10365, i32 0, i32 1
  %10367 = load ptr, ptr %10366, align 8, !tbaa !20
  %10368 = icmp ne ptr %10367, null
  br i1 %10368, label %10369, label %10381

10369:                                            ; preds = %10358
  %10370 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %10371 = load ptr, ptr %5, align 8, !tbaa !5
  %10372 = getelementptr inbounds %struct.w2c_hermes, ptr %10371, i32 0, i32 7
  %10373 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10372, i32 0, i32 0
  %10374 = load ptr, ptr %10373, align 8, !tbaa !19
  %10375 = load i32, ptr %22, align 4, !tbaa !9
  %10376 = zext i32 %10375 to i64
  %10377 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10374, i64 %10376
  %10378 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10377, i32 0, i32 0
  %10379 = load ptr, ptr %10378, align 8, !tbaa !22
  %10380 = call zeroext i1 @func_types_eq(ptr noundef %10370, ptr noundef %10379)
  br label %10381

10381:                                            ; preds = %10369, %10358, %10311
  %10382 = phi i1 [ false, %10358 ], [ false, %10311 ], [ %10380, %10369 ]
  %10383 = xor i1 %10382, true
  %10384 = xor i1 %10383, true
  %10385 = zext i1 %10384 to i32
  %10386 = sext i32 %10385 to i64
  %10387 = call i64 @llvm.expect.i64(i64 %10386, i64 1)
  %10388 = icmp ne i64 %10387, 0
  br i1 %10388, label %10391, label %10389

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

10390:                                            ; No predecessors!
  br label %10391

10391:                                            ; preds = %10390, %10381
  %10392 = phi i1 [ true, %10381 ], [ false, %10390 ]
  %10393 = zext i1 %10392 to i32
  %10394 = load ptr, ptr %5, align 8, !tbaa !5
  %10395 = getelementptr inbounds %struct.w2c_hermes, ptr %10394, i32 0, i32 7
  %10396 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10395, i32 0, i32 0
  %10397 = load ptr, ptr %10396, align 8, !tbaa !19
  %10398 = load i32, ptr %22, align 4, !tbaa !9
  %10399 = zext i32 %10398 to i64
  %10400 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10397, i64 %10399
  %10401 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10400, i32 0, i32 1
  %10402 = load ptr, ptr %10401, align 8, !tbaa !20
  %10403 = load ptr, ptr %5, align 8, !tbaa !5
  %10404 = getelementptr inbounds %struct.w2c_hermes, ptr %10403, i32 0, i32 7
  %10405 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10404, i32 0, i32 0
  %10406 = load ptr, ptr %10405, align 8, !tbaa !19
  %10407 = load i32, ptr %22, align 4, !tbaa !9
  %10408 = zext i32 %10407 to i64
  %10409 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10406, i64 %10408
  %10410 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10409, i32 0, i32 2
  %10411 = load ptr, ptr %10410, align 8, !tbaa !23
  %10412 = load i32, ptr %19, align 4, !tbaa !9
  %10413 = load i32, ptr %20, align 4, !tbaa !9
  %10414 = load i32, ptr %21, align 4, !tbaa !9
  call void %10402(ptr noundef %10411, i32 noundef %10412, i32 noundef %10413, i32 noundef %10414)
  %10415 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10415, ptr %19, align 4, !tbaa !9
  %10416 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10416, ptr %20, align 4, !tbaa !9
  store i32 732, ptr %21, align 4, !tbaa !9
  %10417 = load i32, ptr %21, align 4, !tbaa !9
  %10418 = load i32, ptr %20, align 4, !tbaa !9
  %10419 = add i32 %10418, %10417
  store i32 %10419, ptr %20, align 4, !tbaa !9
  store i32 48583, ptr %21, align 4, !tbaa !9
  %10420 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10420, ptr %22, align 4, !tbaa !9
  %10421 = load ptr, ptr %5, align 8, !tbaa !5
  %10422 = getelementptr inbounds %struct.w2c_hermes, ptr %10421, i32 0, i32 6
  %10423 = load i32, ptr %22, align 4, !tbaa !9
  %10424 = zext i32 %10423 to i64
  %10425 = call i32 @i32_load(ptr noundef %10422, i64 noundef %10424)
  store i32 %10425, ptr %22, align 4, !tbaa !9
  %10426 = load ptr, ptr %5, align 8, !tbaa !5
  %10427 = getelementptr inbounds %struct.w2c_hermes, ptr %10426, i32 0, i32 6
  %10428 = load i32, ptr %22, align 4, !tbaa !9
  %10429 = zext i32 %10428 to i64
  %10430 = add i64 %10429, 32
  %10431 = call i32 @i32_load(ptr noundef %10427, i64 noundef %10430)
  store i32 %10431, ptr %22, align 4, !tbaa !9
  %10432 = load i32, ptr %22, align 4, !tbaa !9
  %10433 = load ptr, ptr %5, align 8, !tbaa !5
  %10434 = getelementptr inbounds %struct.w2c_hermes, ptr %10433, i32 0, i32 7
  %10435 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10434, i32 0, i32 2
  %10436 = load i32, ptr %10435, align 4, !tbaa !18
  %10437 = icmp ult i32 %10432, %10436
  br i1 %10437, label %10438, label %10461

10438:                                            ; preds = %10391
  %10439 = load ptr, ptr %5, align 8, !tbaa !5
  %10440 = getelementptr inbounds %struct.w2c_hermes, ptr %10439, i32 0, i32 7
  %10441 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10440, i32 0, i32 0
  %10442 = load ptr, ptr %10441, align 8, !tbaa !19
  %10443 = load i32, ptr %22, align 4, !tbaa !9
  %10444 = zext i32 %10443 to i64
  %10445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10442, i64 %10444
  %10446 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10445, i32 0, i32 1
  %10447 = load ptr, ptr %10446, align 8, !tbaa !20
  %10448 = icmp ne ptr %10447, null
  br i1 %10448, label %10449, label %10461

10449:                                            ; preds = %10438
  %10450 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %10451 = load ptr, ptr %5, align 8, !tbaa !5
  %10452 = getelementptr inbounds %struct.w2c_hermes, ptr %10451, i32 0, i32 7
  %10453 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10452, i32 0, i32 0
  %10454 = load ptr, ptr %10453, align 8, !tbaa !19
  %10455 = load i32, ptr %22, align 4, !tbaa !9
  %10456 = zext i32 %10455 to i64
  %10457 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10454, i64 %10456
  %10458 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10457, i32 0, i32 0
  %10459 = load ptr, ptr %10458, align 8, !tbaa !22
  %10460 = call zeroext i1 @func_types_eq(ptr noundef %10450, ptr noundef %10459)
  br label %10461

10461:                                            ; preds = %10449, %10438, %10391
  %10462 = phi i1 [ false, %10438 ], [ false, %10391 ], [ %10460, %10449 ]
  %10463 = xor i1 %10462, true
  %10464 = xor i1 %10463, true
  %10465 = zext i1 %10464 to i32
  %10466 = sext i32 %10465 to i64
  %10467 = call i64 @llvm.expect.i64(i64 %10466, i64 1)
  %10468 = icmp ne i64 %10467, 0
  br i1 %10468, label %10471, label %10469

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

10470:                                            ; No predecessors!
  br label %10471

10471:                                            ; preds = %10470, %10461
  %10472 = phi i1 [ true, %10461 ], [ false, %10470 ]
  %10473 = zext i1 %10472 to i32
  %10474 = load ptr, ptr %5, align 8, !tbaa !5
  %10475 = getelementptr inbounds %struct.w2c_hermes, ptr %10474, i32 0, i32 7
  %10476 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10475, i32 0, i32 0
  %10477 = load ptr, ptr %10476, align 8, !tbaa !19
  %10478 = load i32, ptr %22, align 4, !tbaa !9
  %10479 = zext i32 %10478 to i64
  %10480 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10477, i64 %10479
  %10481 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10480, i32 0, i32 1
  %10482 = load ptr, ptr %10481, align 8, !tbaa !20
  %10483 = load ptr, ptr %5, align 8, !tbaa !5
  %10484 = getelementptr inbounds %struct.w2c_hermes, ptr %10483, i32 0, i32 7
  %10485 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10484, i32 0, i32 0
  %10486 = load ptr, ptr %10485, align 8, !tbaa !19
  %10487 = load i32, ptr %22, align 4, !tbaa !9
  %10488 = zext i32 %10487 to i64
  %10489 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10486, i64 %10488
  %10490 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10489, i32 0, i32 2
  %10491 = load ptr, ptr %10490, align 8, !tbaa !23
  %10492 = load i32, ptr %19, align 4, !tbaa !9
  %10493 = load i32, ptr %20, align 4, !tbaa !9
  %10494 = load i32, ptr %21, align 4, !tbaa !9
  call void %10482(ptr noundef %10491, i32 noundef %10492, i32 noundef %10493, i32 noundef %10494)
  %10495 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10495, ptr %19, align 4, !tbaa !9
  %10496 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10496, ptr %20, align 4, !tbaa !9
  %10497 = load ptr, ptr %5, align 8, !tbaa !5
  %10498 = getelementptr inbounds %struct.w2c_hermes, ptr %10497, i32 0, i32 6
  %10499 = load i32, ptr %20, align 4, !tbaa !9
  %10500 = zext i32 %10499 to i64
  %10501 = call i32 @i32_load(ptr noundef %10498, i64 noundef %10500)
  store i32 %10501, ptr %20, align 4, !tbaa !9
  %10502 = load ptr, ptr %5, align 8, !tbaa !5
  %10503 = getelementptr inbounds %struct.w2c_hermes, ptr %10502, i32 0, i32 6
  %10504 = load i32, ptr %20, align 4, !tbaa !9
  %10505 = zext i32 %10504 to i64
  %10506 = add i64 %10505, 12
  %10507 = call i32 @i32_load(ptr noundef %10503, i64 noundef %10506)
  store i32 %10507, ptr %20, align 4, !tbaa !9
  %10508 = load i32, ptr %20, align 4, !tbaa !9
  %10509 = load ptr, ptr %5, align 8, !tbaa !5
  %10510 = getelementptr inbounds %struct.w2c_hermes, ptr %10509, i32 0, i32 7
  %10511 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10510, i32 0, i32 2
  %10512 = load i32, ptr %10511, align 4, !tbaa !18
  %10513 = icmp ult i32 %10508, %10512
  br i1 %10513, label %10514, label %10537

10514:                                            ; preds = %10471
  %10515 = load ptr, ptr %5, align 8, !tbaa !5
  %10516 = getelementptr inbounds %struct.w2c_hermes, ptr %10515, i32 0, i32 7
  %10517 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10516, i32 0, i32 0
  %10518 = load ptr, ptr %10517, align 8, !tbaa !19
  %10519 = load i32, ptr %20, align 4, !tbaa !9
  %10520 = zext i32 %10519 to i64
  %10521 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10518, i64 %10520
  %10522 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10521, i32 0, i32 1
  %10523 = load ptr, ptr %10522, align 8, !tbaa !20
  %10524 = icmp ne ptr %10523, null
  br i1 %10524, label %10525, label %10537

10525:                                            ; preds = %10514
  %10526 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %10527 = load ptr, ptr %5, align 8, !tbaa !5
  %10528 = getelementptr inbounds %struct.w2c_hermes, ptr %10527, i32 0, i32 7
  %10529 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10528, i32 0, i32 0
  %10530 = load ptr, ptr %10529, align 8, !tbaa !19
  %10531 = load i32, ptr %20, align 4, !tbaa !9
  %10532 = zext i32 %10531 to i64
  %10533 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10530, i64 %10532
  %10534 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10533, i32 0, i32 0
  %10535 = load ptr, ptr %10534, align 8, !tbaa !22
  %10536 = call zeroext i1 @func_types_eq(ptr noundef %10526, ptr noundef %10535)
  br label %10537

10537:                                            ; preds = %10525, %10514, %10471
  %10538 = phi i1 [ false, %10514 ], [ false, %10471 ], [ %10536, %10525 ]
  %10539 = xor i1 %10538, true
  %10540 = xor i1 %10539, true
  %10541 = zext i1 %10540 to i32
  %10542 = sext i32 %10541 to i64
  %10543 = call i64 @llvm.expect.i64(i64 %10542, i64 1)
  %10544 = icmp ne i64 %10543, 0
  br i1 %10544, label %10547, label %10545

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

10546:                                            ; No predecessors!
  br label %10547

10547:                                            ; preds = %10546, %10537
  %10548 = phi i1 [ true, %10537 ], [ false, %10546 ]
  %10549 = zext i1 %10548 to i32
  %10550 = load ptr, ptr %5, align 8, !tbaa !5
  %10551 = getelementptr inbounds %struct.w2c_hermes, ptr %10550, i32 0, i32 7
  %10552 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10551, i32 0, i32 0
  %10553 = load ptr, ptr %10552, align 8, !tbaa !19
  %10554 = load i32, ptr %20, align 4, !tbaa !9
  %10555 = zext i32 %10554 to i64
  %10556 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10553, i64 %10555
  %10557 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10556, i32 0, i32 1
  %10558 = load ptr, ptr %10557, align 8, !tbaa !20
  %10559 = load ptr, ptr %5, align 8, !tbaa !5
  %10560 = getelementptr inbounds %struct.w2c_hermes, ptr %10559, i32 0, i32 7
  %10561 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10560, i32 0, i32 0
  %10562 = load ptr, ptr %10561, align 8, !tbaa !19
  %10563 = load i32, ptr %20, align 4, !tbaa !9
  %10564 = zext i32 %10563 to i64
  %10565 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10562, i64 %10564
  %10566 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10565, i32 0, i32 2
  %10567 = load ptr, ptr %10566, align 8, !tbaa !23
  %10568 = load i32, ptr %19, align 4, !tbaa !9
  call void %10558(ptr noundef %10567, i32 noundef %10568)
  %10569 = load ptr, ptr %5, align 8, !tbaa !5
  %10570 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %10569)
  store i64 %10570, ptr %24, align 8, !tbaa !11
  %10571 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %10571, ptr %18, align 8, !tbaa !11
  %10572 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10572, ptr %19, align 4, !tbaa !9
  store i32 5376, ptr %20, align 4, !tbaa !9
  %10573 = load i32, ptr %20, align 4, !tbaa !9
  %10574 = load i32, ptr %19, align 4, !tbaa !9
  %10575 = add i32 %10574, %10573
  store i32 %10575, ptr %19, align 4, !tbaa !9
  %10576 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %10576, ptr %9, align 4, !tbaa !9
  %10577 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %10577, ptr %20, align 4, !tbaa !9
  %10578 = load ptr, ptr %5, align 8, !tbaa !5
  %10579 = getelementptr inbounds %struct.w2c_hermes, ptr %10578, i32 0, i32 6
  %10580 = load i32, ptr %20, align 4, !tbaa !9
  %10581 = zext i32 %10580 to i64
  %10582 = call double @f64_load(ptr noundef %10579, i64 noundef %10581)
  store double %10582, ptr %28, align 8, !tbaa !24
  %10583 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %10583, ptr %26, align 8, !tbaa !11
  %10584 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %10584, ptr %27, align 8, !tbaa !11
  %10585 = load i64, ptr %27, align 8, !tbaa !11
  %10586 = load i64, ptr %26, align 8, !tbaa !11
  %10587 = sub i64 %10586, %10585
  store i64 %10587, ptr %26, align 8, !tbaa !11
  %10588 = load i64, ptr %26, align 8, !tbaa !11
  %10589 = sitofp i64 %10588 to double
  store double %10589, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %10590 = load double, ptr %30, align 8, !tbaa !24
  %10591 = load double, ptr %29, align 8, !tbaa !24
  %10592 = fdiv double %10591, %10590
  store double %10592, ptr %29, align 8, !tbaa !24
  %10593 = load double, ptr %29, align 8, !tbaa !24
  %10594 = load double, ptr %28, align 8, !tbaa !24
  %10595 = fadd double %10594, %10593
  store double %10595, ptr %28, align 8, !tbaa !24
  %10596 = load ptr, ptr %5, align 8, !tbaa !5
  %10597 = getelementptr inbounds %struct.w2c_hermes, ptr %10596, i32 0, i32 6
  %10598 = load i32, ptr %19, align 4, !tbaa !9
  %10599 = zext i32 %10598 to i64
  %10600 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %10597, i64 noundef %10599, double noundef %10600)
  %10601 = load ptr, ptr %5, align 8, !tbaa !5
  %10602 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %10601)
  store i64 %10602, ptr %24, align 8, !tbaa !11
  %10603 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %10603, ptr %17, align 8, !tbaa !11
  %10604 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %10604, ptr %19, align 4, !tbaa !9
  %10605 = load i32, ptr %19, align 4, !tbaa !9
  %10606 = icmp ne i32 %10605, 0
  br i1 %10606, label %10607, label %10905

10607:                                            ; preds = %10547
  %10608 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10608, ptr %19, align 4, !tbaa !9
  store i32 9, ptr %20, align 4, !tbaa !9
  %10609 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10609, ptr %21, align 4, !tbaa !9
  %10610 = load ptr, ptr %5, align 8, !tbaa !5
  %10611 = getelementptr inbounds %struct.w2c_hermes, ptr %10610, i32 0, i32 6
  %10612 = load i32, ptr %21, align 4, !tbaa !9
  %10613 = zext i32 %10612 to i64
  %10614 = call i32 @i32_load(ptr noundef %10611, i64 noundef %10613)
  store i32 %10614, ptr %21, align 4, !tbaa !9
  %10615 = load ptr, ptr %5, align 8, !tbaa !5
  %10616 = getelementptr inbounds %struct.w2c_hermes, ptr %10615, i32 0, i32 6
  %10617 = load i32, ptr %21, align 4, !tbaa !9
  %10618 = zext i32 %10617 to i64
  %10619 = add i64 %10618, 8
  %10620 = call i32 @i32_load(ptr noundef %10616, i64 noundef %10619)
  store i32 %10620, ptr %21, align 4, !tbaa !9
  %10621 = load i32, ptr %21, align 4, !tbaa !9
  %10622 = load ptr, ptr %5, align 8, !tbaa !5
  %10623 = getelementptr inbounds %struct.w2c_hermes, ptr %10622, i32 0, i32 7
  %10624 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10623, i32 0, i32 2
  %10625 = load i32, ptr %10624, align 4, !tbaa !18
  %10626 = icmp ult i32 %10621, %10625
  br i1 %10626, label %10627, label %10650

10627:                                            ; preds = %10607
  %10628 = load ptr, ptr %5, align 8, !tbaa !5
  %10629 = getelementptr inbounds %struct.w2c_hermes, ptr %10628, i32 0, i32 7
  %10630 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10629, i32 0, i32 0
  %10631 = load ptr, ptr %10630, align 8, !tbaa !19
  %10632 = load i32, ptr %21, align 4, !tbaa !9
  %10633 = zext i32 %10632 to i64
  %10634 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10631, i64 %10633
  %10635 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10634, i32 0, i32 1
  %10636 = load ptr, ptr %10635, align 8, !tbaa !20
  %10637 = icmp ne ptr %10636, null
  br i1 %10637, label %10638, label %10650

10638:                                            ; preds = %10627
  %10639 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %10640 = load ptr, ptr %5, align 8, !tbaa !5
  %10641 = getelementptr inbounds %struct.w2c_hermes, ptr %10640, i32 0, i32 7
  %10642 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10641, i32 0, i32 0
  %10643 = load ptr, ptr %10642, align 8, !tbaa !19
  %10644 = load i32, ptr %21, align 4, !tbaa !9
  %10645 = zext i32 %10644 to i64
  %10646 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10643, i64 %10645
  %10647 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10646, i32 0, i32 0
  %10648 = load ptr, ptr %10647, align 8, !tbaa !22
  %10649 = call zeroext i1 @func_types_eq(ptr noundef %10639, ptr noundef %10648)
  br label %10650

10650:                                            ; preds = %10638, %10627, %10607
  %10651 = phi i1 [ false, %10627 ], [ false, %10607 ], [ %10649, %10638 ]
  %10652 = xor i1 %10651, true
  %10653 = xor i1 %10652, true
  %10654 = zext i1 %10653 to i32
  %10655 = sext i32 %10654 to i64
  %10656 = call i64 @llvm.expect.i64(i64 %10655, i64 1)
  %10657 = icmp ne i64 %10656, 0
  br i1 %10657, label %10660, label %10658

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

10659:                                            ; No predecessors!
  br label %10660

10660:                                            ; preds = %10659, %10650
  %10661 = phi i1 [ true, %10650 ], [ false, %10659 ]
  %10662 = zext i1 %10661 to i32
  %10663 = load ptr, ptr %5, align 8, !tbaa !5
  %10664 = getelementptr inbounds %struct.w2c_hermes, ptr %10663, i32 0, i32 7
  %10665 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10664, i32 0, i32 0
  %10666 = load ptr, ptr %10665, align 8, !tbaa !19
  %10667 = load i32, ptr %21, align 4, !tbaa !9
  %10668 = zext i32 %10667 to i64
  %10669 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10666, i64 %10668
  %10670 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10669, i32 0, i32 1
  %10671 = load ptr, ptr %10670, align 8, !tbaa !20
  %10672 = load ptr, ptr %5, align 8, !tbaa !5
  %10673 = getelementptr inbounds %struct.w2c_hermes, ptr %10672, i32 0, i32 7
  %10674 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10673, i32 0, i32 0
  %10675 = load ptr, ptr %10674, align 8, !tbaa !19
  %10676 = load i32, ptr %21, align 4, !tbaa !9
  %10677 = zext i32 %10676 to i64
  %10678 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10675, i64 %10677
  %10679 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10678, i32 0, i32 2
  %10680 = load ptr, ptr %10679, align 8, !tbaa !23
  %10681 = load i32, ptr %19, align 4, !tbaa !9
  %10682 = load i32, ptr %20, align 4, !tbaa !9
  call void %10671(ptr noundef %10680, i32 noundef %10681, i32 noundef %10682)
  %10683 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10683, ptr %19, align 4, !tbaa !9
  store i32 5468, ptr %20, align 4, !tbaa !9
  %10684 = load i32, ptr %20, align 4, !tbaa !9
  %10685 = load i32, ptr %19, align 4, !tbaa !9
  %10686 = add i32 %10685, %10684
  store i32 %10686, ptr %19, align 4, !tbaa !9
  %10687 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %10687, ptr %8, align 4, !tbaa !9
  %10688 = load ptr, ptr %5, align 8, !tbaa !5
  %10689 = getelementptr inbounds %struct.w2c_hermes, ptr %10688, i32 0, i32 6
  %10690 = load i32, ptr %19, align 4, !tbaa !9
  %10691 = zext i32 %10690 to i64
  %10692 = call i32 @i32_load(ptr noundef %10689, i64 noundef %10691)
  store i32 %10692, ptr %19, align 4, !tbaa !9
  %10693 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %10693, ptr %9, align 4, !tbaa !9
  %10694 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %10694, ptr %20, align 4, !tbaa !9
  %10695 = load ptr, ptr %5, align 8, !tbaa !5
  %10696 = getelementptr inbounds %struct.w2c_hermes, ptr %10695, i32 0, i32 6
  %10697 = load i32, ptr %20, align 4, !tbaa !9
  %10698 = zext i32 %10697 to i64
  %10699 = add i64 %10698, 4
  %10700 = call i32 @i32_load(ptr noundef %10696, i64 noundef %10699)
  store i32 %10700, ptr %20, align 4, !tbaa !9
  %10701 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %10701, ptr %8, align 4, !tbaa !9
  %10702 = load i32, ptr %19, align 4, !tbaa !9
  %10703 = load i32, ptr %20, align 4, !tbaa !9
  %10704 = icmp ne i32 %10702, %10703
  %10705 = zext i1 %10704 to i32
  store i32 %10705, ptr %19, align 4, !tbaa !9
  %10706 = load i32, ptr %19, align 4, !tbaa !9
  %10707 = icmp ne i32 %10706, 0
  br i1 %10707, label %10708, label %10830

10708:                                            ; preds = %10660
  br label %10709

10709:                                            ; preds = %10828, %10708
  %10710 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %10710, ptr %19, align 4, !tbaa !9
  %10711 = load ptr, ptr %5, align 8, !tbaa !5
  %10712 = getelementptr inbounds %struct.w2c_hermes, ptr %10711, i32 0, i32 6
  %10713 = load i32, ptr %19, align 4, !tbaa !9
  %10714 = zext i32 %10713 to i64
  %10715 = call i32 @i32_load(ptr noundef %10712, i64 noundef %10714)
  store i32 %10715, ptr %19, align 4, !tbaa !9
  %10716 = load i32, ptr %19, align 4, !tbaa !9
  %10717 = icmp ne i32 %10716, 0
  %10718 = xor i1 %10717, true
  %10719 = zext i1 %10718 to i32
  store i32 %10719, ptr %19, align 4, !tbaa !9
  %10720 = load i32, ptr %19, align 4, !tbaa !9
  %10721 = icmp ne i32 %10720, 0
  br i1 %10721, label %10722, label %10723

10722:                                            ; preds = %10709
  br label %10815

10723:                                            ; preds = %10709
  %10724 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %10724, ptr %19, align 4, !tbaa !9
  %10725 = load ptr, ptr %5, align 8, !tbaa !5
  %10726 = getelementptr inbounds %struct.w2c_hermes, ptr %10725, i32 0, i32 6
  %10727 = load i32, ptr %19, align 4, !tbaa !9
  %10728 = zext i32 %10727 to i64
  %10729 = add i64 %10728, 4
  %10730 = call i32 @i32_load(ptr noundef %10726, i64 noundef %10729)
  store i32 %10730, ptr %19, align 4, !tbaa !9
  store i32 -8, ptr %20, align 4, !tbaa !9
  %10731 = load i32, ptr %19, align 4, !tbaa !9
  %10732 = load i32, ptr %20, align 4, !tbaa !9
  %10733 = icmp ult i32 %10731, %10732
  %10734 = zext i1 %10733 to i32
  store i32 %10734, ptr %19, align 4, !tbaa !9
  %10735 = load i32, ptr %19, align 4, !tbaa !9
  %10736 = icmp ne i32 %10735, 0
  br i1 %10736, label %10737, label %10738

10737:                                            ; preds = %10723
  br label %10815

10738:                                            ; preds = %10723
  %10739 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10739, ptr %19, align 4, !tbaa !9
  %10740 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %10740, ptr %20, align 4, !tbaa !9
  %10741 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10741, ptr %21, align 4, !tbaa !9
  %10742 = load ptr, ptr %5, align 8, !tbaa !5
  %10743 = getelementptr inbounds %struct.w2c_hermes, ptr %10742, i32 0, i32 6
  %10744 = load i32, ptr %21, align 4, !tbaa !9
  %10745 = zext i32 %10744 to i64
  %10746 = call i32 @i32_load(ptr noundef %10743, i64 noundef %10745)
  store i32 %10746, ptr %21, align 4, !tbaa !9
  %10747 = load ptr, ptr %5, align 8, !tbaa !5
  %10748 = getelementptr inbounds %struct.w2c_hermes, ptr %10747, i32 0, i32 6
  %10749 = load i32, ptr %21, align 4, !tbaa !9
  %10750 = zext i32 %10749 to i64
  %10751 = add i64 %10750, 16
  %10752 = call i32 @i32_load(ptr noundef %10748, i64 noundef %10751)
  store i32 %10752, ptr %21, align 4, !tbaa !9
  %10753 = load i32, ptr %21, align 4, !tbaa !9
  %10754 = load ptr, ptr %5, align 8, !tbaa !5
  %10755 = getelementptr inbounds %struct.w2c_hermes, ptr %10754, i32 0, i32 7
  %10756 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10755, i32 0, i32 2
  %10757 = load i32, ptr %10756, align 4, !tbaa !18
  %10758 = icmp ult i32 %10753, %10757
  br i1 %10758, label %10759, label %10782

10759:                                            ; preds = %10738
  %10760 = load ptr, ptr %5, align 8, !tbaa !5
  %10761 = getelementptr inbounds %struct.w2c_hermes, ptr %10760, i32 0, i32 7
  %10762 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10761, i32 0, i32 0
  %10763 = load ptr, ptr %10762, align 8, !tbaa !19
  %10764 = load i32, ptr %21, align 4, !tbaa !9
  %10765 = zext i32 %10764 to i64
  %10766 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10763, i64 %10765
  %10767 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10766, i32 0, i32 1
  %10768 = load ptr, ptr %10767, align 8, !tbaa !20
  %10769 = icmp ne ptr %10768, null
  br i1 %10769, label %10770, label %10782

10770:                                            ; preds = %10759
  %10771 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %10772 = load ptr, ptr %5, align 8, !tbaa !5
  %10773 = getelementptr inbounds %struct.w2c_hermes, ptr %10772, i32 0, i32 7
  %10774 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10773, i32 0, i32 0
  %10775 = load ptr, ptr %10774, align 8, !tbaa !19
  %10776 = load i32, ptr %21, align 4, !tbaa !9
  %10777 = zext i32 %10776 to i64
  %10778 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10775, i64 %10777
  %10779 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10778, i32 0, i32 0
  %10780 = load ptr, ptr %10779, align 8, !tbaa !22
  %10781 = call zeroext i1 @func_types_eq(ptr noundef %10771, ptr noundef %10780)
  br label %10782

10782:                                            ; preds = %10770, %10759, %10738
  %10783 = phi i1 [ false, %10759 ], [ false, %10738 ], [ %10781, %10770 ]
  %10784 = xor i1 %10783, true
  %10785 = xor i1 %10784, true
  %10786 = zext i1 %10785 to i32
  %10787 = sext i32 %10786 to i64
  %10788 = call i64 @llvm.expect.i64(i64 %10787, i64 1)
  %10789 = icmp ne i64 %10788, 0
  br i1 %10789, label %10792, label %10790

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

10791:                                            ; No predecessors!
  br label %10792

10792:                                            ; preds = %10791, %10782
  %10793 = phi i1 [ true, %10782 ], [ false, %10791 ]
  %10794 = zext i1 %10793 to i32
  %10795 = load ptr, ptr %5, align 8, !tbaa !5
  %10796 = getelementptr inbounds %struct.w2c_hermes, ptr %10795, i32 0, i32 7
  %10797 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10796, i32 0, i32 0
  %10798 = load ptr, ptr %10797, align 8, !tbaa !19
  %10799 = load i32, ptr %21, align 4, !tbaa !9
  %10800 = zext i32 %10799 to i64
  %10801 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10798, i64 %10800
  %10802 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10801, i32 0, i32 1
  %10803 = load ptr, ptr %10802, align 8, !tbaa !20
  %10804 = load ptr, ptr %5, align 8, !tbaa !5
  %10805 = getelementptr inbounds %struct.w2c_hermes, ptr %10804, i32 0, i32 7
  %10806 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10805, i32 0, i32 0
  %10807 = load ptr, ptr %10806, align 8, !tbaa !19
  %10808 = load i32, ptr %21, align 4, !tbaa !9
  %10809 = zext i32 %10808 to i64
  %10810 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10807, i64 %10809
  %10811 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10810, i32 0, i32 2
  %10812 = load ptr, ptr %10811, align 8, !tbaa !23
  %10813 = load i32, ptr %19, align 4, !tbaa !9
  %10814 = load i32, ptr %20, align 4, !tbaa !9
  call void %10803(ptr noundef %10812, i32 noundef %10813, i32 noundef %10814)
  br label %10815

10815:                                            ; preds = %10792, %10737, %10722
  %10816 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %10816, ptr %19, align 4, !tbaa !9
  store i32 12, ptr %20, align 4, !tbaa !9
  %10817 = load i32, ptr %20, align 4, !tbaa !9
  %10818 = load i32, ptr %19, align 4, !tbaa !9
  %10819 = add i32 %10818, %10817
  store i32 %10819, ptr %19, align 4, !tbaa !9
  %10820 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %10820, ptr %9, align 4, !tbaa !9
  %10821 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %10821, ptr %20, align 4, !tbaa !9
  %10822 = load i32, ptr %19, align 4, !tbaa !9
  %10823 = load i32, ptr %20, align 4, !tbaa !9
  %10824 = icmp ne i32 %10822, %10823
  %10825 = zext i1 %10824 to i32
  store i32 %10825, ptr %19, align 4, !tbaa !9
  %10826 = load i32, ptr %19, align 4, !tbaa !9
  %10827 = icmp ne i32 %10826, 0
  br i1 %10827, label %10828, label %10829

10828:                                            ; preds = %10815
  br label %10709

10829:                                            ; preds = %10815
  br label %10830

10830:                                            ; preds = %10829, %10660
  %10831 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10831, ptr %19, align 4, !tbaa !9
  %10832 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10832, ptr %20, align 4, !tbaa !9
  %10833 = load ptr, ptr %5, align 8, !tbaa !5
  %10834 = getelementptr inbounds %struct.w2c_hermes, ptr %10833, i32 0, i32 6
  %10835 = load i32, ptr %20, align 4, !tbaa !9
  %10836 = zext i32 %10835 to i64
  %10837 = call i32 @i32_load(ptr noundef %10834, i64 noundef %10836)
  store i32 %10837, ptr %20, align 4, !tbaa !9
  %10838 = load ptr, ptr %5, align 8, !tbaa !5
  %10839 = getelementptr inbounds %struct.w2c_hermes, ptr %10838, i32 0, i32 6
  %10840 = load i32, ptr %20, align 4, !tbaa !9
  %10841 = zext i32 %10840 to i64
  %10842 = add i64 %10841, 12
  %10843 = call i32 @i32_load(ptr noundef %10839, i64 noundef %10842)
  store i32 %10843, ptr %20, align 4, !tbaa !9
  %10844 = load i32, ptr %20, align 4, !tbaa !9
  %10845 = load ptr, ptr %5, align 8, !tbaa !5
  %10846 = getelementptr inbounds %struct.w2c_hermes, ptr %10845, i32 0, i32 7
  %10847 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10846, i32 0, i32 2
  %10848 = load i32, ptr %10847, align 4, !tbaa !18
  %10849 = icmp ult i32 %10844, %10848
  br i1 %10849, label %10850, label %10873

10850:                                            ; preds = %10830
  %10851 = load ptr, ptr %5, align 8, !tbaa !5
  %10852 = getelementptr inbounds %struct.w2c_hermes, ptr %10851, i32 0, i32 7
  %10853 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10852, i32 0, i32 0
  %10854 = load ptr, ptr %10853, align 8, !tbaa !19
  %10855 = load i32, ptr %20, align 4, !tbaa !9
  %10856 = zext i32 %10855 to i64
  %10857 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10854, i64 %10856
  %10858 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10857, i32 0, i32 1
  %10859 = load ptr, ptr %10858, align 8, !tbaa !20
  %10860 = icmp ne ptr %10859, null
  br i1 %10860, label %10861, label %10873

10861:                                            ; preds = %10850
  %10862 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %10863 = load ptr, ptr %5, align 8, !tbaa !5
  %10864 = getelementptr inbounds %struct.w2c_hermes, ptr %10863, i32 0, i32 7
  %10865 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10864, i32 0, i32 0
  %10866 = load ptr, ptr %10865, align 8, !tbaa !19
  %10867 = load i32, ptr %20, align 4, !tbaa !9
  %10868 = zext i32 %10867 to i64
  %10869 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10866, i64 %10868
  %10870 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10869, i32 0, i32 0
  %10871 = load ptr, ptr %10870, align 8, !tbaa !22
  %10872 = call zeroext i1 @func_types_eq(ptr noundef %10862, ptr noundef %10871)
  br label %10873

10873:                                            ; preds = %10861, %10850, %10830
  %10874 = phi i1 [ false, %10850 ], [ false, %10830 ], [ %10872, %10861 ]
  %10875 = xor i1 %10874, true
  %10876 = xor i1 %10875, true
  %10877 = zext i1 %10876 to i32
  %10878 = sext i32 %10877 to i64
  %10879 = call i64 @llvm.expect.i64(i64 %10878, i64 1)
  %10880 = icmp ne i64 %10879, 0
  br i1 %10880, label %10883, label %10881

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

10882:                                            ; No predecessors!
  br label %10883

10883:                                            ; preds = %10882, %10873
  %10884 = phi i1 [ true, %10873 ], [ false, %10882 ]
  %10885 = zext i1 %10884 to i32
  %10886 = load ptr, ptr %5, align 8, !tbaa !5
  %10887 = getelementptr inbounds %struct.w2c_hermes, ptr %10886, i32 0, i32 7
  %10888 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10887, i32 0, i32 0
  %10889 = load ptr, ptr %10888, align 8, !tbaa !19
  %10890 = load i32, ptr %20, align 4, !tbaa !9
  %10891 = zext i32 %10890 to i64
  %10892 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10889, i64 %10891
  %10893 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10892, i32 0, i32 1
  %10894 = load ptr, ptr %10893, align 8, !tbaa !20
  %10895 = load ptr, ptr %5, align 8, !tbaa !5
  %10896 = getelementptr inbounds %struct.w2c_hermes, ptr %10895, i32 0, i32 7
  %10897 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10896, i32 0, i32 0
  %10898 = load ptr, ptr %10897, align 8, !tbaa !19
  %10899 = load i32, ptr %20, align 4, !tbaa !9
  %10900 = zext i32 %10899 to i64
  %10901 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10898, i64 %10900
  %10902 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10901, i32 0, i32 2
  %10903 = load ptr, ptr %10902, align 8, !tbaa !23
  %10904 = load i32, ptr %19, align 4, !tbaa !9
  call void %10894(ptr noundef %10903, i32 noundef %10904)
  br label %10905

10905:                                            ; preds = %10883, %10547
  %10906 = load ptr, ptr %5, align 8, !tbaa !5
  %10907 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %10906)
  store i64 %10907, ptr %24, align 8, !tbaa !11
  %10908 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %10908, ptr %18, align 8, !tbaa !11
  %10909 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %10909, ptr %19, align 4, !tbaa !9
  store i32 5392, ptr %20, align 4, !tbaa !9
  %10910 = load i32, ptr %20, align 4, !tbaa !9
  %10911 = load i32, ptr %19, align 4, !tbaa !9
  %10912 = add i32 %10911, %10910
  store i32 %10912, ptr %19, align 4, !tbaa !9
  %10913 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %10913, ptr %8, align 4, !tbaa !9
  %10914 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %10914, ptr %20, align 4, !tbaa !9
  %10915 = load ptr, ptr %5, align 8, !tbaa !5
  %10916 = getelementptr inbounds %struct.w2c_hermes, ptr %10915, i32 0, i32 6
  %10917 = load i32, ptr %20, align 4, !tbaa !9
  %10918 = zext i32 %10917 to i64
  %10919 = call double @f64_load(ptr noundef %10916, i64 noundef %10918)
  store double %10919, ptr %28, align 8, !tbaa !24
  %10920 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %10920, ptr %26, align 8, !tbaa !11
  %10921 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %10921, ptr %27, align 8, !tbaa !11
  %10922 = load i64, ptr %27, align 8, !tbaa !11
  %10923 = load i64, ptr %26, align 8, !tbaa !11
  %10924 = sub i64 %10923, %10922
  store i64 %10924, ptr %26, align 8, !tbaa !11
  %10925 = load i64, ptr %26, align 8, !tbaa !11
  %10926 = sitofp i64 %10925 to double
  store double %10926, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %10927 = load double, ptr %30, align 8, !tbaa !24
  %10928 = load double, ptr %29, align 8, !tbaa !24
  %10929 = fdiv double %10928, %10927
  store double %10929, ptr %29, align 8, !tbaa !24
  %10930 = load double, ptr %29, align 8, !tbaa !24
  %10931 = load double, ptr %28, align 8, !tbaa !24
  %10932 = fadd double %10931, %10930
  store double %10932, ptr %28, align 8, !tbaa !24
  %10933 = load ptr, ptr %5, align 8, !tbaa !5
  %10934 = getelementptr inbounds %struct.w2c_hermes, ptr %10933, i32 0, i32 6
  %10935 = load i32, ptr %19, align 4, !tbaa !9
  %10936 = zext i32 %10935 to i64
  %10937 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %10934, i64 noundef %10936, double noundef %10937)
  %10938 = load ptr, ptr %5, align 8, !tbaa !5
  %10939 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %10938)
  store i64 %10939, ptr %24, align 8, !tbaa !11
  %10940 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %10940, ptr %17, align 8, !tbaa !11
  %10941 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10941, ptr %19, align 4, !tbaa !9
  store i32 10, ptr %20, align 4, !tbaa !9
  %10942 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %10942, ptr %21, align 4, !tbaa !9
  %10943 = load ptr, ptr %5, align 8, !tbaa !5
  %10944 = getelementptr inbounds %struct.w2c_hermes, ptr %10943, i32 0, i32 6
  %10945 = load i32, ptr %21, align 4, !tbaa !9
  %10946 = zext i32 %10945 to i64
  %10947 = call i32 @i32_load(ptr noundef %10944, i64 noundef %10946)
  store i32 %10947, ptr %21, align 4, !tbaa !9
  %10948 = load ptr, ptr %5, align 8, !tbaa !5
  %10949 = getelementptr inbounds %struct.w2c_hermes, ptr %10948, i32 0, i32 6
  %10950 = load i32, ptr %21, align 4, !tbaa !9
  %10951 = zext i32 %10950 to i64
  %10952 = add i64 %10951, 8
  %10953 = call i32 @i32_load(ptr noundef %10949, i64 noundef %10952)
  store i32 %10953, ptr %21, align 4, !tbaa !9
  %10954 = load i32, ptr %21, align 4, !tbaa !9
  %10955 = load ptr, ptr %5, align 8, !tbaa !5
  %10956 = getelementptr inbounds %struct.w2c_hermes, ptr %10955, i32 0, i32 7
  %10957 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10956, i32 0, i32 2
  %10958 = load i32, ptr %10957, align 4, !tbaa !18
  %10959 = icmp ult i32 %10954, %10958
  br i1 %10959, label %10960, label %10983

10960:                                            ; preds = %10905
  %10961 = load ptr, ptr %5, align 8, !tbaa !5
  %10962 = getelementptr inbounds %struct.w2c_hermes, ptr %10961, i32 0, i32 7
  %10963 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10962, i32 0, i32 0
  %10964 = load ptr, ptr %10963, align 8, !tbaa !19
  %10965 = load i32, ptr %21, align 4, !tbaa !9
  %10966 = zext i32 %10965 to i64
  %10967 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10964, i64 %10966
  %10968 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10967, i32 0, i32 1
  %10969 = load ptr, ptr %10968, align 8, !tbaa !20
  %10970 = icmp ne ptr %10969, null
  br i1 %10970, label %10971, label %10983

10971:                                            ; preds = %10960
  %10972 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %10973 = load ptr, ptr %5, align 8, !tbaa !5
  %10974 = getelementptr inbounds %struct.w2c_hermes, ptr %10973, i32 0, i32 7
  %10975 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10974, i32 0, i32 0
  %10976 = load ptr, ptr %10975, align 8, !tbaa !19
  %10977 = load i32, ptr %21, align 4, !tbaa !9
  %10978 = zext i32 %10977 to i64
  %10979 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10976, i64 %10978
  %10980 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10979, i32 0, i32 0
  %10981 = load ptr, ptr %10980, align 8, !tbaa !22
  %10982 = call zeroext i1 @func_types_eq(ptr noundef %10972, ptr noundef %10981)
  br label %10983

10983:                                            ; preds = %10971, %10960, %10905
  %10984 = phi i1 [ false, %10960 ], [ false, %10905 ], [ %10982, %10971 ]
  %10985 = xor i1 %10984, true
  %10986 = xor i1 %10985, true
  %10987 = zext i1 %10986 to i32
  %10988 = sext i32 %10987 to i64
  %10989 = call i64 @llvm.expect.i64(i64 %10988, i64 1)
  %10990 = icmp ne i64 %10989, 0
  br i1 %10990, label %10993, label %10991

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

10992:                                            ; No predecessors!
  br label %10993

10993:                                            ; preds = %10992, %10983
  %10994 = phi i1 [ true, %10983 ], [ false, %10992 ]
  %10995 = zext i1 %10994 to i32
  %10996 = load ptr, ptr %5, align 8, !tbaa !5
  %10997 = getelementptr inbounds %struct.w2c_hermes, ptr %10996, i32 0, i32 7
  %10998 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %10997, i32 0, i32 0
  %10999 = load ptr, ptr %10998, align 8, !tbaa !19
  %11000 = load i32, ptr %21, align 4, !tbaa !9
  %11001 = zext i32 %11000 to i64
  %11002 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %10999, i64 %11001
  %11003 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11002, i32 0, i32 1
  %11004 = load ptr, ptr %11003, align 8, !tbaa !20
  %11005 = load ptr, ptr %5, align 8, !tbaa !5
  %11006 = getelementptr inbounds %struct.w2c_hermes, ptr %11005, i32 0, i32 7
  %11007 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11006, i32 0, i32 0
  %11008 = load ptr, ptr %11007, align 8, !tbaa !19
  %11009 = load i32, ptr %21, align 4, !tbaa !9
  %11010 = zext i32 %11009 to i64
  %11011 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11008, i64 %11010
  %11012 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11011, i32 0, i32 2
  %11013 = load ptr, ptr %11012, align 8, !tbaa !23
  %11014 = load i32, ptr %19, align 4, !tbaa !9
  %11015 = load i32, ptr %20, align 4, !tbaa !9
  call void %11004(ptr noundef %11013, i32 noundef %11014, i32 noundef %11015)
  %11016 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %11016, ptr %19, align 4, !tbaa !9
  %11017 = load ptr, ptr %5, align 8, !tbaa !5
  %11018 = getelementptr inbounds %struct.w2c_hermes, ptr %11017, i32 0, i32 6
  %11019 = load i32, ptr %19, align 4, !tbaa !9
  %11020 = zext i32 %11019 to i64
  %11021 = add i64 %11020, 4
  %11022 = call i32 @i32_load(ptr noundef %11018, i64 noundef %11021)
  store i32 %11022, ptr %19, align 4, !tbaa !9
  %11023 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11023, ptr %10, align 4, !tbaa !9
  %11024 = load i32, ptr %19, align 4, !tbaa !9
  %11025 = icmp ne i32 %11024, 0
  br i1 %11025, label %11026, label %11232

11026:                                            ; preds = %10993
  br label %11027

11027:                                            ; preds = %11230, %11026
  %11028 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %11028, ptr %19, align 4, !tbaa !9
  %11029 = load ptr, ptr %5, align 8, !tbaa !5
  %11030 = getelementptr inbounds %struct.w2c_hermes, ptr %11029, i32 0, i32 6
  %11031 = load i32, ptr %19, align 4, !tbaa !9
  %11032 = zext i32 %11031 to i64
  %11033 = add i64 %11032, 136
  %11034 = call i32 @i32_load(ptr noundef %11030, i64 noundef %11033)
  store i32 %11034, ptr %19, align 4, !tbaa !9
  %11035 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11035, ptr %12, align 4, !tbaa !9
  %11036 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %11036, ptr %20, align 4, !tbaa !9
  %11037 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %11037, ptr %21, align 4, !tbaa !9
  %11038 = load ptr, ptr %5, align 8, !tbaa !5
  %11039 = getelementptr inbounds %struct.w2c_hermes, ptr %11038, i32 0, i32 6
  %11040 = load i32, ptr %21, align 4, !tbaa !9
  %11041 = zext i32 %11040 to i64
  %11042 = add i64 %11041, 172
  %11043 = call i32 @i32_load(ptr noundef %11039, i64 noundef %11042)
  store i32 %11043, ptr %21, align 4, !tbaa !9
  store i32 2, ptr %22, align 4, !tbaa !9
  %11044 = load i32, ptr %22, align 4, !tbaa !9
  %11045 = and i32 %11044, 31
  %11046 = load i32, ptr %21, align 4, !tbaa !9
  %11047 = shl i32 %11046, %11045
  store i32 %11047, ptr %21, align 4, !tbaa !9
  %11048 = load i32, ptr %21, align 4, !tbaa !9
  %11049 = load i32, ptr %20, align 4, !tbaa !9
  %11050 = add i32 %11049, %11048
  store i32 %11050, ptr %20, align 4, !tbaa !9
  %11051 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %11051, ptr %9, align 4, !tbaa !9
  store i32 4, ptr %21, align 4, !tbaa !9
  %11052 = load i32, ptr %21, align 4, !tbaa !9
  %11053 = load i32, ptr %20, align 4, !tbaa !9
  %11054 = add i32 %11053, %11052
  store i32 %11054, ptr %20, align 4, !tbaa !9
  %11055 = load i32, ptr %19, align 4, !tbaa !9
  %11056 = load i32, ptr %20, align 4, !tbaa !9
  %11057 = icmp ne i32 %11055, %11056
  %11058 = zext i1 %11057 to i32
  store i32 %11058, ptr %19, align 4, !tbaa !9
  %11059 = load i32, ptr %19, align 4, !tbaa !9
  %11060 = icmp ne i32 %11059, 0
  br i1 %11060, label %11061, label %11219

11061:                                            ; preds = %11027
  br label %11062

11062:                                            ; preds = %11217, %11061
  %11063 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %11063, ptr %19, align 4, !tbaa !9
  %11064 = load ptr, ptr %5, align 8, !tbaa !5
  %11065 = getelementptr inbounds %struct.w2c_hermes, ptr %11064, i32 0, i32 6
  %11066 = load i32, ptr %19, align 4, !tbaa !9
  %11067 = zext i32 %11066 to i64
  %11068 = call i32 @i32_load(ptr noundef %11065, i64 noundef %11067)
  store i32 %11068, ptr %19, align 4, !tbaa !9
  %11069 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11069, ptr %11, align 4, !tbaa !9
  %11070 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %11070, ptr %20, align 4, !tbaa !9
  %11071 = load ptr, ptr %5, align 8, !tbaa !5
  %11072 = getelementptr inbounds %struct.w2c_hermes, ptr %11071, i32 0, i32 6
  %11073 = load i32, ptr %20, align 4, !tbaa !9
  %11074 = zext i32 %11073 to i64
  %11075 = add i64 %11074, 164
  %11076 = call i32 @i32_load(ptr noundef %11072, i64 noundef %11075)
  store i32 %11076, ptr %20, align 4, !tbaa !9
  %11077 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11077, ptr %21, align 4, !tbaa !9
  store i32 128, ptr %22, align 4, !tbaa !9
  %11078 = load i32, ptr %22, align 4, !tbaa !9
  %11079 = load i32, ptr %21, align 4, !tbaa !9
  %11080 = add i32 %11079, %11078
  store i32 %11080, ptr %21, align 4, !tbaa !9
  %11081 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %11081, ptr %8, align 4, !tbaa !9
  %11082 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11082, ptr %22, align 4, !tbaa !9
  %11083 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %11083, ptr %23, align 4, !tbaa !9
  %11084 = load ptr, ptr %5, align 8, !tbaa !5
  %11085 = getelementptr inbounds %struct.w2c_hermes, ptr %11084, i32 0, i32 6
  %11086 = load i32, ptr %23, align 4, !tbaa !9
  %11087 = zext i32 %11086 to i64
  %11088 = add i64 %11087, 168
  %11089 = call i32 @i32_load(ptr noundef %11085, i64 noundef %11088)
  store i32 %11089, ptr %23, align 4, !tbaa !9
  %11090 = load i32, ptr %22, align 4, !tbaa !9
  %11091 = load i32, ptr %23, align 4, !tbaa !9
  %11092 = icmp eq i32 %11090, %11091
  %11093 = zext i1 %11092 to i32
  store i32 %11093, ptr %22, align 4, !tbaa !9
  %11094 = load i32, ptr %22, align 4, !tbaa !9
  %11095 = icmp ne i32 %11094, 0
  br i1 %11095, label %11096, label %11098

11096:                                            ; preds = %11062
  %11097 = load i32, ptr %20, align 4, !tbaa !9
  br label %11100

11098:                                            ; preds = %11062
  %11099 = load i32, ptr %21, align 4, !tbaa !9
  br label %11100

11100:                                            ; preds = %11098, %11096
  %11101 = phi i32 [ %11097, %11096 ], [ %11099, %11098 ]
  store i32 %11101, ptr %20, align 4, !tbaa !9
  %11102 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %11102, ptr %8, align 4, !tbaa !9
  %11103 = load i32, ptr %19, align 4, !tbaa !9
  %11104 = load i32, ptr %20, align 4, !tbaa !9
  %11105 = icmp ne i32 %11103, %11104
  %11106 = zext i1 %11105 to i32
  store i32 %11106, ptr %19, align 4, !tbaa !9
  %11107 = load i32, ptr %19, align 4, !tbaa !9
  %11108 = icmp ne i32 %11107, 0
  br i1 %11108, label %11109, label %11201

11109:                                            ; preds = %11100
  br label %11110

11110:                                            ; preds = %11199, %11109
  %11111 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11111, ptr %19, align 4, !tbaa !9
  %11112 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11112, ptr %20, align 4, !tbaa !9
  %11113 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11113, ptr %21, align 4, !tbaa !9
  %11114 = load ptr, ptr %5, align 8, !tbaa !5
  %11115 = getelementptr inbounds %struct.w2c_hermes, ptr %11114, i32 0, i32 6
  %11116 = load i32, ptr %21, align 4, !tbaa !9
  %11117 = zext i32 %11116 to i64
  %11118 = call i32 @i32_load(ptr noundef %11115, i64 noundef %11117)
  store i32 %11118, ptr %21, align 4, !tbaa !9
  %11119 = load ptr, ptr %5, align 8, !tbaa !5
  %11120 = getelementptr inbounds %struct.w2c_hermes, ptr %11119, i32 0, i32 6
  %11121 = load i32, ptr %21, align 4, !tbaa !9
  %11122 = zext i32 %11121 to i64
  %11123 = add i64 %11122, 24
  %11124 = call i32 @i32_load(ptr noundef %11120, i64 noundef %11123)
  store i32 %11124, ptr %21, align 4, !tbaa !9
  %11125 = load i32, ptr %21, align 4, !tbaa !9
  %11126 = load ptr, ptr %5, align 8, !tbaa !5
  %11127 = getelementptr inbounds %struct.w2c_hermes, ptr %11126, i32 0, i32 7
  %11128 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11127, i32 0, i32 2
  %11129 = load i32, ptr %11128, align 4, !tbaa !18
  %11130 = icmp ult i32 %11125, %11129
  br i1 %11130, label %11131, label %11154

11131:                                            ; preds = %11110
  %11132 = load ptr, ptr %5, align 8, !tbaa !5
  %11133 = getelementptr inbounds %struct.w2c_hermes, ptr %11132, i32 0, i32 7
  %11134 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11133, i32 0, i32 0
  %11135 = load ptr, ptr %11134, align 8, !tbaa !19
  %11136 = load i32, ptr %21, align 4, !tbaa !9
  %11137 = zext i32 %11136 to i64
  %11138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11135, i64 %11137
  %11139 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11138, i32 0, i32 1
  %11140 = load ptr, ptr %11139, align 8, !tbaa !20
  %11141 = icmp ne ptr %11140, null
  br i1 %11141, label %11142, label %11154

11142:                                            ; preds = %11131
  %11143 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %11144 = load ptr, ptr %5, align 8, !tbaa !5
  %11145 = getelementptr inbounds %struct.w2c_hermes, ptr %11144, i32 0, i32 7
  %11146 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11145, i32 0, i32 0
  %11147 = load ptr, ptr %11146, align 8, !tbaa !19
  %11148 = load i32, ptr %21, align 4, !tbaa !9
  %11149 = zext i32 %11148 to i64
  %11150 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11147, i64 %11149
  %11151 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11150, i32 0, i32 0
  %11152 = load ptr, ptr %11151, align 8, !tbaa !22
  %11153 = call zeroext i1 @func_types_eq(ptr noundef %11143, ptr noundef %11152)
  br label %11154

11154:                                            ; preds = %11142, %11131, %11110
  %11155 = phi i1 [ false, %11131 ], [ false, %11110 ], [ %11153, %11142 ]
  %11156 = xor i1 %11155, true
  %11157 = xor i1 %11156, true
  %11158 = zext i1 %11157 to i32
  %11159 = sext i32 %11158 to i64
  %11160 = call i64 @llvm.expect.i64(i64 %11159, i64 1)
  %11161 = icmp ne i64 %11160, 0
  br i1 %11161, label %11164, label %11162

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

11163:                                            ; No predecessors!
  br label %11164

11164:                                            ; preds = %11163, %11154
  %11165 = phi i1 [ true, %11154 ], [ false, %11163 ]
  %11166 = zext i1 %11165 to i32
  %11167 = load ptr, ptr %5, align 8, !tbaa !5
  %11168 = getelementptr inbounds %struct.w2c_hermes, ptr %11167, i32 0, i32 7
  %11169 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11168, i32 0, i32 0
  %11170 = load ptr, ptr %11169, align 8, !tbaa !19
  %11171 = load i32, ptr %21, align 4, !tbaa !9
  %11172 = zext i32 %11171 to i64
  %11173 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11170, i64 %11172
  %11174 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11173, i32 0, i32 1
  %11175 = load ptr, ptr %11174, align 8, !tbaa !20
  %11176 = load ptr, ptr %5, align 8, !tbaa !5
  %11177 = getelementptr inbounds %struct.w2c_hermes, ptr %11176, i32 0, i32 7
  %11178 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11177, i32 0, i32 0
  %11179 = load ptr, ptr %11178, align 8, !tbaa !19
  %11180 = load i32, ptr %21, align 4, !tbaa !9
  %11181 = zext i32 %11180 to i64
  %11182 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11179, i64 %11181
  %11183 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11182, i32 0, i32 2
  %11184 = load ptr, ptr %11183, align 8, !tbaa !23
  %11185 = load i32, ptr %19, align 4, !tbaa !9
  %11186 = load i32, ptr %20, align 4, !tbaa !9
  call void %11175(ptr noundef %11184, i32 noundef %11185, i32 noundef %11186)
  %11187 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11187, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %11188 = load i32, ptr %20, align 4, !tbaa !9
  %11189 = load i32, ptr %19, align 4, !tbaa !9
  %11190 = add i32 %11189, %11188
  store i32 %11190, ptr %19, align 4, !tbaa !9
  %11191 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11191, ptr %11, align 4, !tbaa !9
  %11192 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11192, ptr %20, align 4, !tbaa !9
  %11193 = load i32, ptr %19, align 4, !tbaa !9
  %11194 = load i32, ptr %20, align 4, !tbaa !9
  %11195 = icmp ne i32 %11193, %11194
  %11196 = zext i1 %11195 to i32
  store i32 %11196, ptr %19, align 4, !tbaa !9
  %11197 = load i32, ptr %19, align 4, !tbaa !9
  %11198 = icmp ne i32 %11197, 0
  br i1 %11198, label %11199, label %11200

11199:                                            ; preds = %11164
  br label %11110

11200:                                            ; preds = %11164
  br label %11201

11201:                                            ; preds = %11200, %11100
  %11202 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %11202, ptr %19, align 4, !tbaa !9
  %11203 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %11203, ptr %20, align 4, !tbaa !9
  %11204 = load i32, ptr %19, align 4, !tbaa !9
  %11205 = load i32, ptr %20, align 4, !tbaa !9
  %11206 = icmp ne i32 %11204, %11205
  %11207 = zext i1 %11206 to i32
  store i32 %11207, ptr %19, align 4, !tbaa !9
  %11208 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11208, ptr %8, align 4, !tbaa !9
  %11209 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %11209, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %11210 = load i32, ptr %20, align 4, !tbaa !9
  %11211 = load i32, ptr %19, align 4, !tbaa !9
  %11212 = add i32 %11211, %11210
  store i32 %11212, ptr %19, align 4, !tbaa !9
  %11213 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11213, ptr %12, align 4, !tbaa !9
  %11214 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11214, ptr %19, align 4, !tbaa !9
  %11215 = load i32, ptr %19, align 4, !tbaa !9
  %11216 = icmp ne i32 %11215, 0
  br i1 %11216, label %11217, label %11218

11217:                                            ; preds = %11201
  br label %11062

11218:                                            ; preds = %11201
  br label %11219

11219:                                            ; preds = %11218, %11027
  %11220 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %11220, ptr %19, align 4, !tbaa !9
  %11221 = load ptr, ptr %5, align 8, !tbaa !5
  %11222 = getelementptr inbounds %struct.w2c_hermes, ptr %11221, i32 0, i32 6
  %11223 = load i32, ptr %19, align 4, !tbaa !9
  %11224 = zext i32 %11223 to i64
  %11225 = add i64 %11224, 4
  %11226 = call i32 @i32_load(ptr noundef %11222, i64 noundef %11225)
  store i32 %11226, ptr %19, align 4, !tbaa !9
  %11227 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11227, ptr %10, align 4, !tbaa !9
  %11228 = load i32, ptr %19, align 4, !tbaa !9
  %11229 = icmp ne i32 %11228, 0
  br i1 %11229, label %11230, label %11231

11230:                                            ; preds = %11219
  br label %11027

11231:                                            ; preds = %11219
  br label %11232

11232:                                            ; preds = %11231, %10993
  %11233 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11233, ptr %19, align 4, !tbaa !9
  %11234 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11234, ptr %20, align 4, !tbaa !9
  %11235 = load ptr, ptr %5, align 8, !tbaa !5
  %11236 = getelementptr inbounds %struct.w2c_hermes, ptr %11235, i32 0, i32 6
  %11237 = load i32, ptr %20, align 4, !tbaa !9
  %11238 = zext i32 %11237 to i64
  %11239 = call i32 @i32_load(ptr noundef %11236, i64 noundef %11238)
  store i32 %11239, ptr %20, align 4, !tbaa !9
  %11240 = load ptr, ptr %5, align 8, !tbaa !5
  %11241 = getelementptr inbounds %struct.w2c_hermes, ptr %11240, i32 0, i32 6
  %11242 = load i32, ptr %20, align 4, !tbaa !9
  %11243 = zext i32 %11242 to i64
  %11244 = add i64 %11243, 12
  %11245 = call i32 @i32_load(ptr noundef %11241, i64 noundef %11244)
  store i32 %11245, ptr %20, align 4, !tbaa !9
  %11246 = load i32, ptr %20, align 4, !tbaa !9
  %11247 = load ptr, ptr %5, align 8, !tbaa !5
  %11248 = getelementptr inbounds %struct.w2c_hermes, ptr %11247, i32 0, i32 7
  %11249 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11248, i32 0, i32 2
  %11250 = load i32, ptr %11249, align 4, !tbaa !18
  %11251 = icmp ult i32 %11246, %11250
  br i1 %11251, label %11252, label %11275

11252:                                            ; preds = %11232
  %11253 = load ptr, ptr %5, align 8, !tbaa !5
  %11254 = getelementptr inbounds %struct.w2c_hermes, ptr %11253, i32 0, i32 7
  %11255 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11254, i32 0, i32 0
  %11256 = load ptr, ptr %11255, align 8, !tbaa !19
  %11257 = load i32, ptr %20, align 4, !tbaa !9
  %11258 = zext i32 %11257 to i64
  %11259 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11256, i64 %11258
  %11260 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11259, i32 0, i32 1
  %11261 = load ptr, ptr %11260, align 8, !tbaa !20
  %11262 = icmp ne ptr %11261, null
  br i1 %11262, label %11263, label %11275

11263:                                            ; preds = %11252
  %11264 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %11265 = load ptr, ptr %5, align 8, !tbaa !5
  %11266 = getelementptr inbounds %struct.w2c_hermes, ptr %11265, i32 0, i32 7
  %11267 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11266, i32 0, i32 0
  %11268 = load ptr, ptr %11267, align 8, !tbaa !19
  %11269 = load i32, ptr %20, align 4, !tbaa !9
  %11270 = zext i32 %11269 to i64
  %11271 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11268, i64 %11270
  %11272 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11271, i32 0, i32 0
  %11273 = load ptr, ptr %11272, align 8, !tbaa !22
  %11274 = call zeroext i1 @func_types_eq(ptr noundef %11264, ptr noundef %11273)
  br label %11275

11275:                                            ; preds = %11263, %11252, %11232
  %11276 = phi i1 [ false, %11252 ], [ false, %11232 ], [ %11274, %11263 ]
  %11277 = xor i1 %11276, true
  %11278 = xor i1 %11277, true
  %11279 = zext i1 %11278 to i32
  %11280 = sext i32 %11279 to i64
  %11281 = call i64 @llvm.expect.i64(i64 %11280, i64 1)
  %11282 = icmp ne i64 %11281, 0
  br i1 %11282, label %11285, label %11283

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

11284:                                            ; No predecessors!
  br label %11285

11285:                                            ; preds = %11284, %11275
  %11286 = phi i1 [ true, %11275 ], [ false, %11284 ]
  %11287 = zext i1 %11286 to i32
  %11288 = load ptr, ptr %5, align 8, !tbaa !5
  %11289 = getelementptr inbounds %struct.w2c_hermes, ptr %11288, i32 0, i32 7
  %11290 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11289, i32 0, i32 0
  %11291 = load ptr, ptr %11290, align 8, !tbaa !19
  %11292 = load i32, ptr %20, align 4, !tbaa !9
  %11293 = zext i32 %11292 to i64
  %11294 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11291, i64 %11293
  %11295 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11294, i32 0, i32 1
  %11296 = load ptr, ptr %11295, align 8, !tbaa !20
  %11297 = load ptr, ptr %5, align 8, !tbaa !5
  %11298 = getelementptr inbounds %struct.w2c_hermes, ptr %11297, i32 0, i32 7
  %11299 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11298, i32 0, i32 0
  %11300 = load ptr, ptr %11299, align 8, !tbaa !19
  %11301 = load i32, ptr %20, align 4, !tbaa !9
  %11302 = zext i32 %11301 to i64
  %11303 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11300, i64 %11302
  %11304 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11303, i32 0, i32 2
  %11305 = load ptr, ptr %11304, align 8, !tbaa !23
  %11306 = load i32, ptr %19, align 4, !tbaa !9
  call void %11296(ptr noundef %11305, i32 noundef %11306)
  %11307 = load ptr, ptr %5, align 8, !tbaa !5
  %11308 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %11307)
  store i64 %11308, ptr %24, align 8, !tbaa !11
  %11309 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %11309, ptr %18, align 8, !tbaa !11
  %11310 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %11310, ptr %19, align 4, !tbaa !9
  store i32 5400, ptr %20, align 4, !tbaa !9
  %11311 = load i32, ptr %20, align 4, !tbaa !9
  %11312 = load i32, ptr %19, align 4, !tbaa !9
  %11313 = add i32 %11312, %11311
  store i32 %11313, ptr %19, align 4, !tbaa !9
  %11314 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11314, ptr %8, align 4, !tbaa !9
  %11315 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11315, ptr %20, align 4, !tbaa !9
  %11316 = load ptr, ptr %5, align 8, !tbaa !5
  %11317 = getelementptr inbounds %struct.w2c_hermes, ptr %11316, i32 0, i32 6
  %11318 = load i32, ptr %20, align 4, !tbaa !9
  %11319 = zext i32 %11318 to i64
  %11320 = call double @f64_load(ptr noundef %11317, i64 noundef %11319)
  store double %11320, ptr %28, align 8, !tbaa !24
  %11321 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %11321, ptr %26, align 8, !tbaa !11
  %11322 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %11322, ptr %27, align 8, !tbaa !11
  %11323 = load i64, ptr %27, align 8, !tbaa !11
  %11324 = load i64, ptr %26, align 8, !tbaa !11
  %11325 = sub i64 %11324, %11323
  store i64 %11325, ptr %26, align 8, !tbaa !11
  %11326 = load i64, ptr %26, align 8, !tbaa !11
  %11327 = sitofp i64 %11326 to double
  store double %11327, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %11328 = load double, ptr %30, align 8, !tbaa !24
  %11329 = load double, ptr %29, align 8, !tbaa !24
  %11330 = fdiv double %11329, %11328
  store double %11330, ptr %29, align 8, !tbaa !24
  %11331 = load double, ptr %29, align 8, !tbaa !24
  %11332 = load double, ptr %28, align 8, !tbaa !24
  %11333 = fadd double %11332, %11331
  store double %11333, ptr %28, align 8, !tbaa !24
  %11334 = load ptr, ptr %5, align 8, !tbaa !5
  %11335 = getelementptr inbounds %struct.w2c_hermes, ptr %11334, i32 0, i32 6
  %11336 = load i32, ptr %19, align 4, !tbaa !9
  %11337 = zext i32 %11336 to i64
  %11338 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %11335, i64 noundef %11337, double noundef %11338)
  %11339 = load ptr, ptr %5, align 8, !tbaa !5
  %11340 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %11339)
  store i64 %11340, ptr %24, align 8, !tbaa !11
  %11341 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %11341, ptr %17, align 8, !tbaa !11
  %11342 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11342, ptr %19, align 4, !tbaa !9
  store i32 13, ptr %20, align 4, !tbaa !9
  %11343 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11343, ptr %21, align 4, !tbaa !9
  %11344 = load ptr, ptr %5, align 8, !tbaa !5
  %11345 = getelementptr inbounds %struct.w2c_hermes, ptr %11344, i32 0, i32 6
  %11346 = load i32, ptr %21, align 4, !tbaa !9
  %11347 = zext i32 %11346 to i64
  %11348 = call i32 @i32_load(ptr noundef %11345, i64 noundef %11347)
  store i32 %11348, ptr %21, align 4, !tbaa !9
  %11349 = load ptr, ptr %5, align 8, !tbaa !5
  %11350 = getelementptr inbounds %struct.w2c_hermes, ptr %11349, i32 0, i32 6
  %11351 = load i32, ptr %21, align 4, !tbaa !9
  %11352 = zext i32 %11351 to i64
  %11353 = add i64 %11352, 8
  %11354 = call i32 @i32_load(ptr noundef %11350, i64 noundef %11353)
  store i32 %11354, ptr %21, align 4, !tbaa !9
  %11355 = load i32, ptr %21, align 4, !tbaa !9
  %11356 = load ptr, ptr %5, align 8, !tbaa !5
  %11357 = getelementptr inbounds %struct.w2c_hermes, ptr %11356, i32 0, i32 7
  %11358 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11357, i32 0, i32 2
  %11359 = load i32, ptr %11358, align 4, !tbaa !18
  %11360 = icmp ult i32 %11355, %11359
  br i1 %11360, label %11361, label %11384

11361:                                            ; preds = %11285
  %11362 = load ptr, ptr %5, align 8, !tbaa !5
  %11363 = getelementptr inbounds %struct.w2c_hermes, ptr %11362, i32 0, i32 7
  %11364 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11363, i32 0, i32 0
  %11365 = load ptr, ptr %11364, align 8, !tbaa !19
  %11366 = load i32, ptr %21, align 4, !tbaa !9
  %11367 = zext i32 %11366 to i64
  %11368 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11365, i64 %11367
  %11369 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11368, i32 0, i32 1
  %11370 = load ptr, ptr %11369, align 8, !tbaa !20
  %11371 = icmp ne ptr %11370, null
  br i1 %11371, label %11372, label %11384

11372:                                            ; preds = %11361
  %11373 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %11374 = load ptr, ptr %5, align 8, !tbaa !5
  %11375 = getelementptr inbounds %struct.w2c_hermes, ptr %11374, i32 0, i32 7
  %11376 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11375, i32 0, i32 0
  %11377 = load ptr, ptr %11376, align 8, !tbaa !19
  %11378 = load i32, ptr %21, align 4, !tbaa !9
  %11379 = zext i32 %11378 to i64
  %11380 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11377, i64 %11379
  %11381 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11380, i32 0, i32 0
  %11382 = load ptr, ptr %11381, align 8, !tbaa !22
  %11383 = call zeroext i1 @func_types_eq(ptr noundef %11373, ptr noundef %11382)
  br label %11384

11384:                                            ; preds = %11372, %11361, %11285
  %11385 = phi i1 [ false, %11361 ], [ false, %11285 ], [ %11383, %11372 ]
  %11386 = xor i1 %11385, true
  %11387 = xor i1 %11386, true
  %11388 = zext i1 %11387 to i32
  %11389 = sext i32 %11388 to i64
  %11390 = call i64 @llvm.expect.i64(i64 %11389, i64 1)
  %11391 = icmp ne i64 %11390, 0
  br i1 %11391, label %11394, label %11392

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

11393:                                            ; No predecessors!
  br label %11394

11394:                                            ; preds = %11393, %11384
  %11395 = phi i1 [ true, %11384 ], [ false, %11393 ]
  %11396 = zext i1 %11395 to i32
  %11397 = load ptr, ptr %5, align 8, !tbaa !5
  %11398 = getelementptr inbounds %struct.w2c_hermes, ptr %11397, i32 0, i32 7
  %11399 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11398, i32 0, i32 0
  %11400 = load ptr, ptr %11399, align 8, !tbaa !19
  %11401 = load i32, ptr %21, align 4, !tbaa !9
  %11402 = zext i32 %11401 to i64
  %11403 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11400, i64 %11402
  %11404 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11403, i32 0, i32 1
  %11405 = load ptr, ptr %11404, align 8, !tbaa !20
  %11406 = load ptr, ptr %5, align 8, !tbaa !5
  %11407 = getelementptr inbounds %struct.w2c_hermes, ptr %11406, i32 0, i32 7
  %11408 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11407, i32 0, i32 0
  %11409 = load ptr, ptr %11408, align 8, !tbaa !19
  %11410 = load i32, ptr %21, align 4, !tbaa !9
  %11411 = zext i32 %11410 to i64
  %11412 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11409, i64 %11411
  %11413 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11412, i32 0, i32 2
  %11414 = load ptr, ptr %11413, align 8, !tbaa !23
  %11415 = load i32, ptr %19, align 4, !tbaa !9
  %11416 = load i32, ptr %20, align 4, !tbaa !9
  call void %11405(ptr noundef %11414, i32 noundef %11415, i32 noundef %11416)
  %11417 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11417, ptr %19, align 4, !tbaa !9
  %11418 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %11418, ptr %20, align 4, !tbaa !9
  store i32 5520, ptr %21, align 4, !tbaa !9
  %11419 = load i32, ptr %21, align 4, !tbaa !9
  %11420 = load i32, ptr %20, align 4, !tbaa !9
  %11421 = add i32 %11420, %11419
  store i32 %11421, ptr %20, align 4, !tbaa !9
  %11422 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11422, ptr %21, align 4, !tbaa !9
  %11423 = load ptr, ptr %5, align 8, !tbaa !5
  %11424 = getelementptr inbounds %struct.w2c_hermes, ptr %11423, i32 0, i32 6
  %11425 = load i32, ptr %21, align 4, !tbaa !9
  %11426 = zext i32 %11425 to i64
  %11427 = call i32 @i32_load(ptr noundef %11424, i64 noundef %11426)
  store i32 %11427, ptr %21, align 4, !tbaa !9
  %11428 = load ptr, ptr %5, align 8, !tbaa !5
  %11429 = getelementptr inbounds %struct.w2c_hermes, ptr %11428, i32 0, i32 6
  %11430 = load i32, ptr %21, align 4, !tbaa !9
  %11431 = zext i32 %11430 to i64
  %11432 = add i64 %11431, 20
  %11433 = call i32 @i32_load(ptr noundef %11429, i64 noundef %11432)
  store i32 %11433, ptr %21, align 4, !tbaa !9
  %11434 = load i32, ptr %21, align 4, !tbaa !9
  %11435 = load ptr, ptr %5, align 8, !tbaa !5
  %11436 = getelementptr inbounds %struct.w2c_hermes, ptr %11435, i32 0, i32 7
  %11437 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11436, i32 0, i32 2
  %11438 = load i32, ptr %11437, align 4, !tbaa !18
  %11439 = icmp ult i32 %11434, %11438
  br i1 %11439, label %11440, label %11463

11440:                                            ; preds = %11394
  %11441 = load ptr, ptr %5, align 8, !tbaa !5
  %11442 = getelementptr inbounds %struct.w2c_hermes, ptr %11441, i32 0, i32 7
  %11443 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11442, i32 0, i32 0
  %11444 = load ptr, ptr %11443, align 8, !tbaa !19
  %11445 = load i32, ptr %21, align 4, !tbaa !9
  %11446 = zext i32 %11445 to i64
  %11447 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11444, i64 %11446
  %11448 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11447, i32 0, i32 1
  %11449 = load ptr, ptr %11448, align 8, !tbaa !20
  %11450 = icmp ne ptr %11449, null
  br i1 %11450, label %11451, label %11463

11451:                                            ; preds = %11440
  %11452 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %11453 = load ptr, ptr %5, align 8, !tbaa !5
  %11454 = getelementptr inbounds %struct.w2c_hermes, ptr %11453, i32 0, i32 7
  %11455 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11454, i32 0, i32 0
  %11456 = load ptr, ptr %11455, align 8, !tbaa !19
  %11457 = load i32, ptr %21, align 4, !tbaa !9
  %11458 = zext i32 %11457 to i64
  %11459 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11456, i64 %11458
  %11460 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11459, i32 0, i32 0
  %11461 = load ptr, ptr %11460, align 8, !tbaa !22
  %11462 = call zeroext i1 @func_types_eq(ptr noundef %11452, ptr noundef %11461)
  br label %11463

11463:                                            ; preds = %11451, %11440, %11394
  %11464 = phi i1 [ false, %11440 ], [ false, %11394 ], [ %11462, %11451 ]
  %11465 = xor i1 %11464, true
  %11466 = xor i1 %11465, true
  %11467 = zext i1 %11466 to i32
  %11468 = sext i32 %11467 to i64
  %11469 = call i64 @llvm.expect.i64(i64 %11468, i64 1)
  %11470 = icmp ne i64 %11469, 0
  br i1 %11470, label %11473, label %11471

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

11472:                                            ; No predecessors!
  br label %11473

11473:                                            ; preds = %11472, %11463
  %11474 = phi i1 [ true, %11463 ], [ false, %11472 ]
  %11475 = zext i1 %11474 to i32
  %11476 = load ptr, ptr %5, align 8, !tbaa !5
  %11477 = getelementptr inbounds %struct.w2c_hermes, ptr %11476, i32 0, i32 7
  %11478 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11477, i32 0, i32 0
  %11479 = load ptr, ptr %11478, align 8, !tbaa !19
  %11480 = load i32, ptr %21, align 4, !tbaa !9
  %11481 = zext i32 %11480 to i64
  %11482 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11479, i64 %11481
  %11483 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11482, i32 0, i32 1
  %11484 = load ptr, ptr %11483, align 8, !tbaa !20
  %11485 = load ptr, ptr %5, align 8, !tbaa !5
  %11486 = getelementptr inbounds %struct.w2c_hermes, ptr %11485, i32 0, i32 7
  %11487 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11486, i32 0, i32 0
  %11488 = load ptr, ptr %11487, align 8, !tbaa !19
  %11489 = load i32, ptr %21, align 4, !tbaa !9
  %11490 = zext i32 %11489 to i64
  %11491 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11488, i64 %11490
  %11492 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11491, i32 0, i32 2
  %11493 = load ptr, ptr %11492, align 8, !tbaa !23
  %11494 = load i32, ptr %19, align 4, !tbaa !9
  %11495 = load i32, ptr %20, align 4, !tbaa !9
  call void %11484(ptr noundef %11493, i32 noundef %11494, i32 noundef %11495)
  %11496 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11496, ptr %19, align 4, !tbaa !9
  %11497 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11497, ptr %20, align 4, !tbaa !9
  %11498 = load ptr, ptr %5, align 8, !tbaa !5
  %11499 = getelementptr inbounds %struct.w2c_hermes, ptr %11498, i32 0, i32 6
  %11500 = load i32, ptr %20, align 4, !tbaa !9
  %11501 = zext i32 %11500 to i64
  %11502 = call i32 @i32_load(ptr noundef %11499, i64 noundef %11501)
  store i32 %11502, ptr %20, align 4, !tbaa !9
  %11503 = load ptr, ptr %5, align 8, !tbaa !5
  %11504 = getelementptr inbounds %struct.w2c_hermes, ptr %11503, i32 0, i32 6
  %11505 = load i32, ptr %20, align 4, !tbaa !9
  %11506 = zext i32 %11505 to i64
  %11507 = add i64 %11506, 12
  %11508 = call i32 @i32_load(ptr noundef %11504, i64 noundef %11507)
  store i32 %11508, ptr %20, align 4, !tbaa !9
  %11509 = load i32, ptr %20, align 4, !tbaa !9
  %11510 = load ptr, ptr %5, align 8, !tbaa !5
  %11511 = getelementptr inbounds %struct.w2c_hermes, ptr %11510, i32 0, i32 7
  %11512 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11511, i32 0, i32 2
  %11513 = load i32, ptr %11512, align 4, !tbaa !18
  %11514 = icmp ult i32 %11509, %11513
  br i1 %11514, label %11515, label %11538

11515:                                            ; preds = %11473
  %11516 = load ptr, ptr %5, align 8, !tbaa !5
  %11517 = getelementptr inbounds %struct.w2c_hermes, ptr %11516, i32 0, i32 7
  %11518 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11517, i32 0, i32 0
  %11519 = load ptr, ptr %11518, align 8, !tbaa !19
  %11520 = load i32, ptr %20, align 4, !tbaa !9
  %11521 = zext i32 %11520 to i64
  %11522 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11519, i64 %11521
  %11523 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11522, i32 0, i32 1
  %11524 = load ptr, ptr %11523, align 8, !tbaa !20
  %11525 = icmp ne ptr %11524, null
  br i1 %11525, label %11526, label %11538

11526:                                            ; preds = %11515
  %11527 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %11528 = load ptr, ptr %5, align 8, !tbaa !5
  %11529 = getelementptr inbounds %struct.w2c_hermes, ptr %11528, i32 0, i32 7
  %11530 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11529, i32 0, i32 0
  %11531 = load ptr, ptr %11530, align 8, !tbaa !19
  %11532 = load i32, ptr %20, align 4, !tbaa !9
  %11533 = zext i32 %11532 to i64
  %11534 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11531, i64 %11533
  %11535 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11534, i32 0, i32 0
  %11536 = load ptr, ptr %11535, align 8, !tbaa !22
  %11537 = call zeroext i1 @func_types_eq(ptr noundef %11527, ptr noundef %11536)
  br label %11538

11538:                                            ; preds = %11526, %11515, %11473
  %11539 = phi i1 [ false, %11515 ], [ false, %11473 ], [ %11537, %11526 ]
  %11540 = xor i1 %11539, true
  %11541 = xor i1 %11540, true
  %11542 = zext i1 %11541 to i32
  %11543 = sext i32 %11542 to i64
  %11544 = call i64 @llvm.expect.i64(i64 %11543, i64 1)
  %11545 = icmp ne i64 %11544, 0
  br i1 %11545, label %11548, label %11546

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

11547:                                            ; No predecessors!
  br label %11548

11548:                                            ; preds = %11547, %11538
  %11549 = phi i1 [ true, %11538 ], [ false, %11547 ]
  %11550 = zext i1 %11549 to i32
  %11551 = load ptr, ptr %5, align 8, !tbaa !5
  %11552 = getelementptr inbounds %struct.w2c_hermes, ptr %11551, i32 0, i32 7
  %11553 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11552, i32 0, i32 0
  %11554 = load ptr, ptr %11553, align 8, !tbaa !19
  %11555 = load i32, ptr %20, align 4, !tbaa !9
  %11556 = zext i32 %11555 to i64
  %11557 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11554, i64 %11556
  %11558 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11557, i32 0, i32 1
  %11559 = load ptr, ptr %11558, align 8, !tbaa !20
  %11560 = load ptr, ptr %5, align 8, !tbaa !5
  %11561 = getelementptr inbounds %struct.w2c_hermes, ptr %11560, i32 0, i32 7
  %11562 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11561, i32 0, i32 0
  %11563 = load ptr, ptr %11562, align 8, !tbaa !19
  %11564 = load i32, ptr %20, align 4, !tbaa !9
  %11565 = zext i32 %11564 to i64
  %11566 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11563, i64 %11565
  %11567 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11566, i32 0, i32 2
  %11568 = load ptr, ptr %11567, align 8, !tbaa !23
  %11569 = load i32, ptr %19, align 4, !tbaa !9
  call void %11559(ptr noundef %11568, i32 noundef %11569)
  %11570 = load ptr, ptr %5, align 8, !tbaa !5
  %11571 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %11570)
  store i64 %11571, ptr %24, align 8, !tbaa !11
  %11572 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %11572, ptr %18, align 8, !tbaa !11
  %11573 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %11573, ptr %19, align 4, !tbaa !9
  store i32 5424, ptr %20, align 4, !tbaa !9
  %11574 = load i32, ptr %20, align 4, !tbaa !9
  %11575 = load i32, ptr %19, align 4, !tbaa !9
  %11576 = add i32 %11575, %11574
  store i32 %11576, ptr %19, align 4, !tbaa !9
  %11577 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11577, ptr %8, align 4, !tbaa !9
  %11578 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11578, ptr %20, align 4, !tbaa !9
  %11579 = load ptr, ptr %5, align 8, !tbaa !5
  %11580 = getelementptr inbounds %struct.w2c_hermes, ptr %11579, i32 0, i32 6
  %11581 = load i32, ptr %20, align 4, !tbaa !9
  %11582 = zext i32 %11581 to i64
  %11583 = call double @f64_load(ptr noundef %11580, i64 noundef %11582)
  store double %11583, ptr %28, align 8, !tbaa !24
  %11584 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %11584, ptr %26, align 8, !tbaa !11
  %11585 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %11585, ptr %27, align 8, !tbaa !11
  %11586 = load i64, ptr %27, align 8, !tbaa !11
  %11587 = load i64, ptr %26, align 8, !tbaa !11
  %11588 = sub i64 %11587, %11586
  store i64 %11588, ptr %26, align 8, !tbaa !11
  %11589 = load i64, ptr %26, align 8, !tbaa !11
  %11590 = sitofp i64 %11589 to double
  store double %11590, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %11591 = load double, ptr %30, align 8, !tbaa !24
  %11592 = load double, ptr %29, align 8, !tbaa !24
  %11593 = fdiv double %11592, %11591
  store double %11593, ptr %29, align 8, !tbaa !24
  %11594 = load double, ptr %29, align 8, !tbaa !24
  %11595 = load double, ptr %28, align 8, !tbaa !24
  %11596 = fadd double %11595, %11594
  store double %11596, ptr %28, align 8, !tbaa !24
  %11597 = load ptr, ptr %5, align 8, !tbaa !5
  %11598 = getelementptr inbounds %struct.w2c_hermes, ptr %11597, i32 0, i32 6
  %11599 = load i32, ptr %19, align 4, !tbaa !9
  %11600 = zext i32 %11599 to i64
  %11601 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %11598, i64 noundef %11600, double noundef %11601)
  %11602 = load ptr, ptr %5, align 8, !tbaa !5
  %11603 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %11602)
  store i64 %11603, ptr %24, align 8, !tbaa !11
  %11604 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %11604, ptr %17, align 8, !tbaa !11
  %11605 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11605, ptr %19, align 4, !tbaa !9
  store i32 15, ptr %20, align 4, !tbaa !9
  %11606 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11606, ptr %21, align 4, !tbaa !9
  %11607 = load ptr, ptr %5, align 8, !tbaa !5
  %11608 = getelementptr inbounds %struct.w2c_hermes, ptr %11607, i32 0, i32 6
  %11609 = load i32, ptr %21, align 4, !tbaa !9
  %11610 = zext i32 %11609 to i64
  %11611 = call i32 @i32_load(ptr noundef %11608, i64 noundef %11610)
  store i32 %11611, ptr %21, align 4, !tbaa !9
  %11612 = load ptr, ptr %5, align 8, !tbaa !5
  %11613 = getelementptr inbounds %struct.w2c_hermes, ptr %11612, i32 0, i32 6
  %11614 = load i32, ptr %21, align 4, !tbaa !9
  %11615 = zext i32 %11614 to i64
  %11616 = add i64 %11615, 8
  %11617 = call i32 @i32_load(ptr noundef %11613, i64 noundef %11616)
  store i32 %11617, ptr %21, align 4, !tbaa !9
  %11618 = load i32, ptr %21, align 4, !tbaa !9
  %11619 = load ptr, ptr %5, align 8, !tbaa !5
  %11620 = getelementptr inbounds %struct.w2c_hermes, ptr %11619, i32 0, i32 7
  %11621 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11620, i32 0, i32 2
  %11622 = load i32, ptr %11621, align 4, !tbaa !18
  %11623 = icmp ult i32 %11618, %11622
  br i1 %11623, label %11624, label %11647

11624:                                            ; preds = %11548
  %11625 = load ptr, ptr %5, align 8, !tbaa !5
  %11626 = getelementptr inbounds %struct.w2c_hermes, ptr %11625, i32 0, i32 7
  %11627 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11626, i32 0, i32 0
  %11628 = load ptr, ptr %11627, align 8, !tbaa !19
  %11629 = load i32, ptr %21, align 4, !tbaa !9
  %11630 = zext i32 %11629 to i64
  %11631 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11628, i64 %11630
  %11632 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11631, i32 0, i32 1
  %11633 = load ptr, ptr %11632, align 8, !tbaa !20
  %11634 = icmp ne ptr %11633, null
  br i1 %11634, label %11635, label %11647

11635:                                            ; preds = %11624
  %11636 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %11637 = load ptr, ptr %5, align 8, !tbaa !5
  %11638 = getelementptr inbounds %struct.w2c_hermes, ptr %11637, i32 0, i32 7
  %11639 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11638, i32 0, i32 0
  %11640 = load ptr, ptr %11639, align 8, !tbaa !19
  %11641 = load i32, ptr %21, align 4, !tbaa !9
  %11642 = zext i32 %11641 to i64
  %11643 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11640, i64 %11642
  %11644 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11643, i32 0, i32 0
  %11645 = load ptr, ptr %11644, align 8, !tbaa !22
  %11646 = call zeroext i1 @func_types_eq(ptr noundef %11636, ptr noundef %11645)
  br label %11647

11647:                                            ; preds = %11635, %11624, %11548
  %11648 = phi i1 [ false, %11624 ], [ false, %11548 ], [ %11646, %11635 ]
  %11649 = xor i1 %11648, true
  %11650 = xor i1 %11649, true
  %11651 = zext i1 %11650 to i32
  %11652 = sext i32 %11651 to i64
  %11653 = call i64 @llvm.expect.i64(i64 %11652, i64 1)
  %11654 = icmp ne i64 %11653, 0
  br i1 %11654, label %11657, label %11655

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

11656:                                            ; No predecessors!
  br label %11657

11657:                                            ; preds = %11656, %11647
  %11658 = phi i1 [ true, %11647 ], [ false, %11656 ]
  %11659 = zext i1 %11658 to i32
  %11660 = load ptr, ptr %5, align 8, !tbaa !5
  %11661 = getelementptr inbounds %struct.w2c_hermes, ptr %11660, i32 0, i32 7
  %11662 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11661, i32 0, i32 0
  %11663 = load ptr, ptr %11662, align 8, !tbaa !19
  %11664 = load i32, ptr %21, align 4, !tbaa !9
  %11665 = zext i32 %11664 to i64
  %11666 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11663, i64 %11665
  %11667 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11666, i32 0, i32 1
  %11668 = load ptr, ptr %11667, align 8, !tbaa !20
  %11669 = load ptr, ptr %5, align 8, !tbaa !5
  %11670 = getelementptr inbounds %struct.w2c_hermes, ptr %11669, i32 0, i32 7
  %11671 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11670, i32 0, i32 0
  %11672 = load ptr, ptr %11671, align 8, !tbaa !19
  %11673 = load i32, ptr %21, align 4, !tbaa !9
  %11674 = zext i32 %11673 to i64
  %11675 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11672, i64 %11674
  %11676 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11675, i32 0, i32 2
  %11677 = load ptr, ptr %11676, align 8, !tbaa !23
  %11678 = load i32, ptr %19, align 4, !tbaa !9
  %11679 = load i32, ptr %20, align 4, !tbaa !9
  call void %11668(ptr noundef %11677, i32 noundef %11678, i32 noundef %11679)
  %11680 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %11680, ptr %19, align 4, !tbaa !9
  %11681 = load ptr, ptr %5, align 8, !tbaa !5
  %11682 = getelementptr inbounds %struct.w2c_hermes, ptr %11681, i32 0, i32 6
  %11683 = load i32, ptr %19, align 4, !tbaa !9
  %11684 = zext i32 %11683 to i64
  %11685 = add i64 %11684, 5760
  %11686 = call i32 @i32_load(ptr noundef %11682, i64 noundef %11685)
  store i32 %11686, ptr %19, align 4, !tbaa !9
  %11687 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11687, ptr %8, align 4, !tbaa !9
  %11688 = load i32, ptr %19, align 4, !tbaa !9
  %11689 = icmp ne i32 %11688, 0
  br i1 %11689, label %11690, label %11917

11690:                                            ; preds = %11657
  %11691 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11691, ptr %19, align 4, !tbaa !9
  %11692 = load ptr, ptr %5, align 8, !tbaa !5
  %11693 = getelementptr inbounds %struct.w2c_hermes, ptr %11692, i32 0, i32 6
  %11694 = load i32, ptr %19, align 4, !tbaa !9
  %11695 = zext i32 %11694 to i64
  %11696 = add i64 %11695, 48
  %11697 = call i32 @i32_load(ptr noundef %11693, i64 noundef %11696)
  store i32 %11697, ptr %19, align 4, !tbaa !9
  %11698 = load i32, ptr %19, align 4, !tbaa !9
  %11699 = icmp ne i32 %11698, 0
  %11700 = xor i1 %11699, true
  %11701 = zext i1 %11700 to i32
  store i32 %11701, ptr %19, align 4, !tbaa !9
  %11702 = load i32, ptr %19, align 4, !tbaa !9
  %11703 = icmp ne i32 %11702, 0
  br i1 %11703, label %11704, label %11705

11704:                                            ; preds = %11690
  br label %11916

11705:                                            ; preds = %11690
  %11706 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11706, ptr %19, align 4, !tbaa !9
  %11707 = load ptr, ptr %5, align 8, !tbaa !5
  %11708 = getelementptr inbounds %struct.w2c_hermes, ptr %11707, i32 0, i32 6
  %11709 = load i32, ptr %19, align 4, !tbaa !9
  %11710 = zext i32 %11709 to i64
  %11711 = add i64 %11710, 44
  %11712 = call i32 @i32_load(ptr noundef %11708, i64 noundef %11711)
  store i32 %11712, ptr %19, align 4, !tbaa !9
  %11713 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11713, ptr %11, align 4, !tbaa !9
  %11714 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11714, ptr %20, align 4, !tbaa !9
  %11715 = load ptr, ptr %5, align 8, !tbaa !5
  %11716 = getelementptr inbounds %struct.w2c_hermes, ptr %11715, i32 0, i32 6
  %11717 = load i32, ptr %20, align 4, !tbaa !9
  %11718 = zext i32 %11717 to i64
  %11719 = add i64 %11718, 56
  %11720 = call i32 @i32_load(ptr noundef %11716, i64 noundef %11719)
  store i32 %11720, ptr %20, align 4, !tbaa !9
  %11721 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %11721, ptr %8, align 4, !tbaa !9
  store i32 2, ptr %21, align 4, !tbaa !9
  %11722 = load i32, ptr %21, align 4, !tbaa !9
  %11723 = and i32 %11722, 31
  %11724 = load i32, ptr %20, align 4, !tbaa !9
  %11725 = shl i32 %11724, %11723
  store i32 %11725, ptr %20, align 4, !tbaa !9
  %11726 = load i32, ptr %20, align 4, !tbaa !9
  %11727 = load i32, ptr %19, align 4, !tbaa !9
  %11728 = add i32 %11727, %11726
  store i32 %11728, ptr %19, align 4, !tbaa !9
  %11729 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11729, ptr %9, align 4, !tbaa !9
  %11730 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %11730, ptr %19, align 4, !tbaa !9
  %11731 = load i32, ptr %19, align 4, !tbaa !9
  %11732 = icmp ne i32 %11731, 0
  %11733 = xor i1 %11732, true
  %11734 = zext i1 %11733 to i32
  store i32 %11734, ptr %19, align 4, !tbaa !9
  %11735 = load i32, ptr %19, align 4, !tbaa !9
  %11736 = icmp ne i32 %11735, 0
  br i1 %11736, label %11737, label %11738

11737:                                            ; preds = %11705
  br label %11771

11738:                                            ; preds = %11705
  br label %11739

11739:                                            ; preds = %11769, %11738
  %11740 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11740, ptr %19, align 4, !tbaa !9
  %11741 = load ptr, ptr %5, align 8, !tbaa !5
  %11742 = getelementptr inbounds %struct.w2c_hermes, ptr %11741, i32 0, i32 6
  %11743 = load i32, ptr %19, align 4, !tbaa !9
  %11744 = zext i32 %11743 to i64
  %11745 = call i32 @i32_load(ptr noundef %11742, i64 noundef %11744)
  store i32 %11745, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %11746 = load i32, ptr %20, align 4, !tbaa !9
  %11747 = load i32, ptr %19, align 4, !tbaa !9
  %11748 = add i32 %11747, %11746
  store i32 %11748, ptr %19, align 4, !tbaa !9
  %11749 = load i32, ptr %19, align 4, !tbaa !9
  switch i32 %11749, label %11755 [
    i32 0, label %11750
    i32 1, label %11751
    i32 2, label %11752
    i32 3, label %11753
    i32 4, label %11754
  ]

11750:                                            ; preds = %11739
  br label %11756

11751:                                            ; preds = %11739
  br label %11771

11752:                                            ; preds = %11739
  br label %11771

11753:                                            ; preds = %11739
  br label %11771

11754:                                            ; preds = %11739
  br label %11756

11755:                                            ; preds = %11739
  br label %11771

11756:                                            ; preds = %11754, %11750
  %11757 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11757, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %11758 = load i32, ptr %20, align 4, !tbaa !9
  %11759 = load i32, ptr %19, align 4, !tbaa !9
  %11760 = add i32 %11759, %11758
  store i32 %11760, ptr %19, align 4, !tbaa !9
  %11761 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11761, ptr %11, align 4, !tbaa !9
  %11762 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %11762, ptr %20, align 4, !tbaa !9
  %11763 = load i32, ptr %19, align 4, !tbaa !9
  %11764 = load i32, ptr %20, align 4, !tbaa !9
  %11765 = icmp ne i32 %11763, %11764
  %11766 = zext i1 %11765 to i32
  store i32 %11766, ptr %19, align 4, !tbaa !9
  %11767 = load i32, ptr %19, align 4, !tbaa !9
  %11768 = icmp ne i32 %11767, 0
  br i1 %11768, label %11769, label %11770

11769:                                            ; preds = %11756
  br label %11739

11770:                                            ; preds = %11756
  br label %11916

11771:                                            ; preds = %11755, %11753, %11752, %11751, %11737
  %11772 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %11772, ptr %19, align 4, !tbaa !9
  %11773 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11773, ptr %20, align 4, !tbaa !9
  %11774 = load i32, ptr %19, align 4, !tbaa !9
  %11775 = load i32, ptr %20, align 4, !tbaa !9
  %11776 = icmp eq i32 %11774, %11775
  %11777 = zext i1 %11776 to i32
  store i32 %11777, ptr %19, align 4, !tbaa !9
  %11778 = load i32, ptr %19, align 4, !tbaa !9
  %11779 = icmp ne i32 %11778, 0
  br i1 %11779, label %11780, label %11781

11780:                                            ; preds = %11771
  br label %11916

11781:                                            ; preds = %11771
  br label %11782

11782:                                            ; preds = %11914, %11781
  %11783 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11783, ptr %19, align 4, !tbaa !9
  %11784 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11784, ptr %20, align 4, !tbaa !9
  %11785 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11785, ptr %21, align 4, !tbaa !9
  %11786 = load ptr, ptr %5, align 8, !tbaa !5
  %11787 = getelementptr inbounds %struct.w2c_hermes, ptr %11786, i32 0, i32 6
  %11788 = load i32, ptr %21, align 4, !tbaa !9
  %11789 = zext i32 %11788 to i64
  %11790 = call i32 @i32_load(ptr noundef %11787, i64 noundef %11789)
  store i32 %11790, ptr %21, align 4, !tbaa !9
  %11791 = load ptr, ptr %5, align 8, !tbaa !5
  %11792 = getelementptr inbounds %struct.w2c_hermes, ptr %11791, i32 0, i32 6
  %11793 = load i32, ptr %21, align 4, !tbaa !9
  %11794 = zext i32 %11793 to i64
  %11795 = add i64 %11794, 16
  %11796 = call i32 @i32_load(ptr noundef %11792, i64 noundef %11795)
  store i32 %11796, ptr %21, align 4, !tbaa !9
  %11797 = load i32, ptr %21, align 4, !tbaa !9
  %11798 = load ptr, ptr %5, align 8, !tbaa !5
  %11799 = getelementptr inbounds %struct.w2c_hermes, ptr %11798, i32 0, i32 7
  %11800 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11799, i32 0, i32 2
  %11801 = load i32, ptr %11800, align 4, !tbaa !18
  %11802 = icmp ult i32 %11797, %11801
  br i1 %11802, label %11803, label %11826

11803:                                            ; preds = %11782
  %11804 = load ptr, ptr %5, align 8, !tbaa !5
  %11805 = getelementptr inbounds %struct.w2c_hermes, ptr %11804, i32 0, i32 7
  %11806 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11805, i32 0, i32 0
  %11807 = load ptr, ptr %11806, align 8, !tbaa !19
  %11808 = load i32, ptr %21, align 4, !tbaa !9
  %11809 = zext i32 %11808 to i64
  %11810 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11807, i64 %11809
  %11811 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11810, i32 0, i32 1
  %11812 = load ptr, ptr %11811, align 8, !tbaa !20
  %11813 = icmp ne ptr %11812, null
  br i1 %11813, label %11814, label %11826

11814:                                            ; preds = %11803
  %11815 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %11816 = load ptr, ptr %5, align 8, !tbaa !5
  %11817 = getelementptr inbounds %struct.w2c_hermes, ptr %11816, i32 0, i32 7
  %11818 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11817, i32 0, i32 0
  %11819 = load ptr, ptr %11818, align 8, !tbaa !19
  %11820 = load i32, ptr %21, align 4, !tbaa !9
  %11821 = zext i32 %11820 to i64
  %11822 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11819, i64 %11821
  %11823 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11822, i32 0, i32 0
  %11824 = load ptr, ptr %11823, align 8, !tbaa !22
  %11825 = call zeroext i1 @func_types_eq(ptr noundef %11815, ptr noundef %11824)
  br label %11826

11826:                                            ; preds = %11814, %11803, %11782
  %11827 = phi i1 [ false, %11803 ], [ false, %11782 ], [ %11825, %11814 ]
  %11828 = xor i1 %11827, true
  %11829 = xor i1 %11828, true
  %11830 = zext i1 %11829 to i32
  %11831 = sext i32 %11830 to i64
  %11832 = call i64 @llvm.expect.i64(i64 %11831, i64 1)
  %11833 = icmp ne i64 %11832, 0
  br i1 %11833, label %11836, label %11834

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

11835:                                            ; No predecessors!
  br label %11836

11836:                                            ; preds = %11835, %11826
  %11837 = phi i1 [ true, %11826 ], [ false, %11835 ]
  %11838 = zext i1 %11837 to i32
  %11839 = load ptr, ptr %5, align 8, !tbaa !5
  %11840 = getelementptr inbounds %struct.w2c_hermes, ptr %11839, i32 0, i32 7
  %11841 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11840, i32 0, i32 0
  %11842 = load ptr, ptr %11841, align 8, !tbaa !19
  %11843 = load i32, ptr %21, align 4, !tbaa !9
  %11844 = zext i32 %11843 to i64
  %11845 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11842, i64 %11844
  %11846 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11845, i32 0, i32 1
  %11847 = load ptr, ptr %11846, align 8, !tbaa !20
  %11848 = load ptr, ptr %5, align 8, !tbaa !5
  %11849 = getelementptr inbounds %struct.w2c_hermes, ptr %11848, i32 0, i32 7
  %11850 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11849, i32 0, i32 0
  %11851 = load ptr, ptr %11850, align 8, !tbaa !19
  %11852 = load i32, ptr %21, align 4, !tbaa !9
  %11853 = zext i32 %11852 to i64
  %11854 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11851, i64 %11853
  %11855 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11854, i32 0, i32 2
  %11856 = load ptr, ptr %11855, align 8, !tbaa !23
  %11857 = load i32, ptr %19, align 4, !tbaa !9
  %11858 = load i32, ptr %20, align 4, !tbaa !9
  call void %11847(ptr noundef %11856, i32 noundef %11857, i32 noundef %11858)
  %11859 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11859, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %11860 = load i32, ptr %20, align 4, !tbaa !9
  %11861 = load i32, ptr %19, align 4, !tbaa !9
  %11862 = add i32 %11861, %11860
  store i32 %11862, ptr %19, align 4, !tbaa !9
  %11863 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11863, ptr %11, align 4, !tbaa !9
  %11864 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %11864, ptr %20, align 4, !tbaa !9
  %11865 = load i32, ptr %19, align 4, !tbaa !9
  %11866 = load i32, ptr %20, align 4, !tbaa !9
  %11867 = icmp eq i32 %11865, %11866
  %11868 = zext i1 %11867 to i32
  store i32 %11868, ptr %19, align 4, !tbaa !9
  %11869 = load i32, ptr %19, align 4, !tbaa !9
  %11870 = icmp ne i32 %11869, 0
  br i1 %11870, label %11871, label %11872

11871:                                            ; preds = %11836
  br label %11916

11872:                                            ; preds = %11836
  br label %11873

11873:                                            ; preds = %11903, %11872
  %11874 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11874, ptr %19, align 4, !tbaa !9
  %11875 = load ptr, ptr %5, align 8, !tbaa !5
  %11876 = getelementptr inbounds %struct.w2c_hermes, ptr %11875, i32 0, i32 6
  %11877 = load i32, ptr %19, align 4, !tbaa !9
  %11878 = zext i32 %11877 to i64
  %11879 = call i32 @i32_load(ptr noundef %11876, i64 noundef %11878)
  store i32 %11879, ptr %19, align 4, !tbaa !9
  store i32 8, ptr %20, align 4, !tbaa !9
  %11880 = load i32, ptr %20, align 4, !tbaa !9
  %11881 = load i32, ptr %19, align 4, !tbaa !9
  %11882 = add i32 %11881, %11880
  store i32 %11882, ptr %19, align 4, !tbaa !9
  %11883 = load i32, ptr %19, align 4, !tbaa !9
  switch i32 %11883, label %11889 [
    i32 0, label %11884
    i32 1, label %11885
    i32 2, label %11886
    i32 3, label %11887
    i32 4, label %11888
  ]

11884:                                            ; preds = %11873
  br label %11890

11885:                                            ; preds = %11873
  br label %11905

11886:                                            ; preds = %11873
  br label %11905

11887:                                            ; preds = %11873
  br label %11905

11888:                                            ; preds = %11873
  br label %11890

11889:                                            ; preds = %11873
  br label %11905

11890:                                            ; preds = %11888, %11884
  %11891 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11891, ptr %19, align 4, !tbaa !9
  store i32 4, ptr %20, align 4, !tbaa !9
  %11892 = load i32, ptr %20, align 4, !tbaa !9
  %11893 = load i32, ptr %19, align 4, !tbaa !9
  %11894 = add i32 %11893, %11892
  store i32 %11894, ptr %19, align 4, !tbaa !9
  %11895 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11895, ptr %11, align 4, !tbaa !9
  %11896 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %11896, ptr %20, align 4, !tbaa !9
  %11897 = load i32, ptr %19, align 4, !tbaa !9
  %11898 = load i32, ptr %20, align 4, !tbaa !9
  %11899 = icmp ne i32 %11897, %11898
  %11900 = zext i1 %11899 to i32
  store i32 %11900, ptr %19, align 4, !tbaa !9
  %11901 = load i32, ptr %19, align 4, !tbaa !9
  %11902 = icmp ne i32 %11901, 0
  br i1 %11902, label %11903, label %11904

11903:                                            ; preds = %11890
  br label %11873

11904:                                            ; preds = %11890
  br label %11916

11905:                                            ; preds = %11889, %11887, %11886, %11885
  %11906 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %11906, ptr %19, align 4, !tbaa !9
  %11907 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %11907, ptr %20, align 4, !tbaa !9
  %11908 = load i32, ptr %19, align 4, !tbaa !9
  %11909 = load i32, ptr %20, align 4, !tbaa !9
  %11910 = icmp ne i32 %11908, %11909
  %11911 = zext i1 %11910 to i32
  store i32 %11911, ptr %19, align 4, !tbaa !9
  %11912 = load i32, ptr %19, align 4, !tbaa !9
  %11913 = icmp ne i32 %11912, 0
  br i1 %11913, label %11914, label %11915

11914:                                            ; preds = %11905
  br label %11782

11915:                                            ; preds = %11905
  br label %11916

11916:                                            ; preds = %11915, %11904, %11871, %11780, %11770, %11704
  br label %11917

11917:                                            ; preds = %11916, %11657
  %11918 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11918, ptr %19, align 4, !tbaa !9
  %11919 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %11919, ptr %20, align 4, !tbaa !9
  %11920 = load ptr, ptr %5, align 8, !tbaa !5
  %11921 = getelementptr inbounds %struct.w2c_hermes, ptr %11920, i32 0, i32 6
  %11922 = load i32, ptr %20, align 4, !tbaa !9
  %11923 = zext i32 %11922 to i64
  %11924 = call i32 @i32_load(ptr noundef %11921, i64 noundef %11923)
  store i32 %11924, ptr %20, align 4, !tbaa !9
  %11925 = load ptr, ptr %5, align 8, !tbaa !5
  %11926 = getelementptr inbounds %struct.w2c_hermes, ptr %11925, i32 0, i32 6
  %11927 = load i32, ptr %20, align 4, !tbaa !9
  %11928 = zext i32 %11927 to i64
  %11929 = add i64 %11928, 12
  %11930 = call i32 @i32_load(ptr noundef %11926, i64 noundef %11929)
  store i32 %11930, ptr %20, align 4, !tbaa !9
  %11931 = load i32, ptr %20, align 4, !tbaa !9
  %11932 = load ptr, ptr %5, align 8, !tbaa !5
  %11933 = getelementptr inbounds %struct.w2c_hermes, ptr %11932, i32 0, i32 7
  %11934 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11933, i32 0, i32 2
  %11935 = load i32, ptr %11934, align 4, !tbaa !18
  %11936 = icmp ult i32 %11931, %11935
  br i1 %11936, label %11937, label %11960

11937:                                            ; preds = %11917
  %11938 = load ptr, ptr %5, align 8, !tbaa !5
  %11939 = getelementptr inbounds %struct.w2c_hermes, ptr %11938, i32 0, i32 7
  %11940 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11939, i32 0, i32 0
  %11941 = load ptr, ptr %11940, align 8, !tbaa !19
  %11942 = load i32, ptr %20, align 4, !tbaa !9
  %11943 = zext i32 %11942 to i64
  %11944 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11941, i64 %11943
  %11945 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11944, i32 0, i32 1
  %11946 = load ptr, ptr %11945, align 8, !tbaa !20
  %11947 = icmp ne ptr %11946, null
  br i1 %11947, label %11948, label %11960

11948:                                            ; preds = %11937
  %11949 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %11950 = load ptr, ptr %5, align 8, !tbaa !5
  %11951 = getelementptr inbounds %struct.w2c_hermes, ptr %11950, i32 0, i32 7
  %11952 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11951, i32 0, i32 0
  %11953 = load ptr, ptr %11952, align 8, !tbaa !19
  %11954 = load i32, ptr %20, align 4, !tbaa !9
  %11955 = zext i32 %11954 to i64
  %11956 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11953, i64 %11955
  %11957 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11956, i32 0, i32 0
  %11958 = load ptr, ptr %11957, align 8, !tbaa !22
  %11959 = call zeroext i1 @func_types_eq(ptr noundef %11949, ptr noundef %11958)
  br label %11960

11960:                                            ; preds = %11948, %11937, %11917
  %11961 = phi i1 [ false, %11937 ], [ false, %11917 ], [ %11959, %11948 ]
  %11962 = xor i1 %11961, true
  %11963 = xor i1 %11962, true
  %11964 = zext i1 %11963 to i32
  %11965 = sext i32 %11964 to i64
  %11966 = call i64 @llvm.expect.i64(i64 %11965, i64 1)
  %11967 = icmp ne i64 %11966, 0
  br i1 %11967, label %11970, label %11968

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

11969:                                            ; No predecessors!
  br label %11970

11970:                                            ; preds = %11969, %11960
  %11971 = phi i1 [ true, %11960 ], [ false, %11969 ]
  %11972 = zext i1 %11971 to i32
  %11973 = load ptr, ptr %5, align 8, !tbaa !5
  %11974 = getelementptr inbounds %struct.w2c_hermes, ptr %11973, i32 0, i32 7
  %11975 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11974, i32 0, i32 0
  %11976 = load ptr, ptr %11975, align 8, !tbaa !19
  %11977 = load i32, ptr %20, align 4, !tbaa !9
  %11978 = zext i32 %11977 to i64
  %11979 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11976, i64 %11978
  %11980 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11979, i32 0, i32 1
  %11981 = load ptr, ptr %11980, align 8, !tbaa !20
  %11982 = load ptr, ptr %5, align 8, !tbaa !5
  %11983 = getelementptr inbounds %struct.w2c_hermes, ptr %11982, i32 0, i32 7
  %11984 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %11983, i32 0, i32 0
  %11985 = load ptr, ptr %11984, align 8, !tbaa !19
  %11986 = load i32, ptr %20, align 4, !tbaa !9
  %11987 = zext i32 %11986 to i64
  %11988 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11985, i64 %11987
  %11989 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %11988, i32 0, i32 2
  %11990 = load ptr, ptr %11989, align 8, !tbaa !23
  %11991 = load i32, ptr %19, align 4, !tbaa !9
  call void %11981(ptr noundef %11990, i32 noundef %11991)
  %11992 = load ptr, ptr %5, align 8, !tbaa !5
  %11993 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %11992)
  store i64 %11993, ptr %24, align 8, !tbaa !11
  %11994 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %11994, ptr %18, align 8, !tbaa !11
  %11995 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %11995, ptr %19, align 4, !tbaa !9
  store i32 5440, ptr %20, align 4, !tbaa !9
  %11996 = load i32, ptr %20, align 4, !tbaa !9
  %11997 = load i32, ptr %19, align 4, !tbaa !9
  %11998 = add i32 %11997, %11996
  store i32 %11998, ptr %19, align 4, !tbaa !9
  %11999 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %11999, ptr %8, align 4, !tbaa !9
  %12000 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %12000, ptr %20, align 4, !tbaa !9
  %12001 = load ptr, ptr %5, align 8, !tbaa !5
  %12002 = getelementptr inbounds %struct.w2c_hermes, ptr %12001, i32 0, i32 6
  %12003 = load i32, ptr %20, align 4, !tbaa !9
  %12004 = zext i32 %12003 to i64
  %12005 = call double @f64_load(ptr noundef %12002, i64 noundef %12004)
  store double %12005, ptr %28, align 8, !tbaa !24
  %12006 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %12006, ptr %26, align 8, !tbaa !11
  %12007 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %12007, ptr %27, align 8, !tbaa !11
  %12008 = load i64, ptr %27, align 8, !tbaa !11
  %12009 = load i64, ptr %26, align 8, !tbaa !11
  %12010 = sub i64 %12009, %12008
  store i64 %12010, ptr %26, align 8, !tbaa !11
  %12011 = load i64, ptr %26, align 8, !tbaa !11
  %12012 = sitofp i64 %12011 to double
  store double %12012, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %12013 = load double, ptr %30, align 8, !tbaa !24
  %12014 = load double, ptr %29, align 8, !tbaa !24
  %12015 = fdiv double %12014, %12013
  store double %12015, ptr %29, align 8, !tbaa !24
  %12016 = load double, ptr %29, align 8, !tbaa !24
  %12017 = load double, ptr %28, align 8, !tbaa !24
  %12018 = fadd double %12017, %12016
  store double %12018, ptr %28, align 8, !tbaa !24
  %12019 = load ptr, ptr %5, align 8, !tbaa !5
  %12020 = getelementptr inbounds %struct.w2c_hermes, ptr %12019, i32 0, i32 6
  %12021 = load i32, ptr %19, align 4, !tbaa !9
  %12022 = zext i32 %12021 to i64
  %12023 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %12020, i64 noundef %12022, double noundef %12023)
  %12024 = load ptr, ptr %5, align 8, !tbaa !5
  %12025 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %12024)
  store i64 %12025, ptr %24, align 8, !tbaa !11
  %12026 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %12026, ptr %18, align 8, !tbaa !11
  %12027 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12027, ptr %19, align 4, !tbaa !9
  %12028 = load ptr, ptr %5, align 8, !tbaa !5
  %12029 = getelementptr inbounds %struct.w2c_hermes, ptr %12028, i32 0, i32 6
  %12030 = load i32, ptr %19, align 4, !tbaa !9
  %12031 = zext i32 %12030 to i64
  %12032 = add i64 %12031, 5272
  %12033 = call i32 @i32_load(ptr noundef %12029, i64 noundef %12032)
  store i32 %12033, ptr %19, align 4, !tbaa !9
  %12034 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12034, ptr %10, align 4, !tbaa !9
  %12035 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12035, ptr %20, align 4, !tbaa !9
  store i32 5276, ptr %21, align 4, !tbaa !9
  %12036 = load i32, ptr %21, align 4, !tbaa !9
  %12037 = load i32, ptr %20, align 4, !tbaa !9
  %12038 = add i32 %12037, %12036
  store i32 %12038, ptr %20, align 4, !tbaa !9
  %12039 = load ptr, ptr %5, align 8, !tbaa !5
  %12040 = getelementptr inbounds %struct.w2c_hermes, ptr %12039, i32 0, i32 6
  %12041 = load i32, ptr %20, align 4, !tbaa !9
  %12042 = zext i32 %12041 to i64
  %12043 = call i32 @i32_load(ptr noundef %12040, i64 noundef %12042)
  store i32 %12043, ptr %20, align 4, !tbaa !9
  %12044 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %12044, ptr %8, align 4, !tbaa !9
  %12045 = load i32, ptr %19, align 4, !tbaa !9
  %12046 = load i32, ptr %20, align 4, !tbaa !9
  %12047 = icmp ne i32 %12045, %12046
  %12048 = zext i1 %12047 to i32
  store i32 %12048, ptr %19, align 4, !tbaa !9
  %12049 = load i32, ptr %19, align 4, !tbaa !9
  %12050 = icmp ne i32 %12049, 0
  br i1 %12050, label %12051, label %12143

12051:                                            ; preds = %11970
  br label %12052

12052:                                            ; preds = %12141, %12051
  %12053 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12053, ptr %19, align 4, !tbaa !9
  %12054 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %12054, ptr %20, align 4, !tbaa !9
  %12055 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12055, ptr %21, align 4, !tbaa !9
  %12056 = load ptr, ptr %5, align 8, !tbaa !5
  %12057 = getelementptr inbounds %struct.w2c_hermes, ptr %12056, i32 0, i32 6
  %12058 = load i32, ptr %21, align 4, !tbaa !9
  %12059 = zext i32 %12058 to i64
  %12060 = call i32 @i32_load(ptr noundef %12057, i64 noundef %12059)
  store i32 %12060, ptr %21, align 4, !tbaa !9
  %12061 = load ptr, ptr %5, align 8, !tbaa !5
  %12062 = getelementptr inbounds %struct.w2c_hermes, ptr %12061, i32 0, i32 6
  %12063 = load i32, ptr %21, align 4, !tbaa !9
  %12064 = zext i32 %12063 to i64
  %12065 = add i64 %12064, 80
  %12066 = call i32 @i32_load(ptr noundef %12062, i64 noundef %12065)
  store i32 %12066, ptr %21, align 4, !tbaa !9
  %12067 = load i32, ptr %21, align 4, !tbaa !9
  %12068 = load ptr, ptr %5, align 8, !tbaa !5
  %12069 = getelementptr inbounds %struct.w2c_hermes, ptr %12068, i32 0, i32 7
  %12070 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12069, i32 0, i32 2
  %12071 = load i32, ptr %12070, align 4, !tbaa !18
  %12072 = icmp ult i32 %12067, %12071
  br i1 %12072, label %12073, label %12096

12073:                                            ; preds = %12052
  %12074 = load ptr, ptr %5, align 8, !tbaa !5
  %12075 = getelementptr inbounds %struct.w2c_hermes, ptr %12074, i32 0, i32 7
  %12076 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12075, i32 0, i32 0
  %12077 = load ptr, ptr %12076, align 8, !tbaa !19
  %12078 = load i32, ptr %21, align 4, !tbaa !9
  %12079 = zext i32 %12078 to i64
  %12080 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12077, i64 %12079
  %12081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12080, i32 0, i32 1
  %12082 = load ptr, ptr %12081, align 8, !tbaa !20
  %12083 = icmp ne ptr %12082, null
  br i1 %12083, label %12084, label %12096

12084:                                            ; preds = %12073
  %12085 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %12086 = load ptr, ptr %5, align 8, !tbaa !5
  %12087 = getelementptr inbounds %struct.w2c_hermes, ptr %12086, i32 0, i32 7
  %12088 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12087, i32 0, i32 0
  %12089 = load ptr, ptr %12088, align 8, !tbaa !19
  %12090 = load i32, ptr %21, align 4, !tbaa !9
  %12091 = zext i32 %12090 to i64
  %12092 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12089, i64 %12091
  %12093 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12092, i32 0, i32 0
  %12094 = load ptr, ptr %12093, align 8, !tbaa !22
  %12095 = call zeroext i1 @func_types_eq(ptr noundef %12085, ptr noundef %12094)
  br label %12096

12096:                                            ; preds = %12084, %12073, %12052
  %12097 = phi i1 [ false, %12073 ], [ false, %12052 ], [ %12095, %12084 ]
  %12098 = xor i1 %12097, true
  %12099 = xor i1 %12098, true
  %12100 = zext i1 %12099 to i32
  %12101 = sext i32 %12100 to i64
  %12102 = call i64 @llvm.expect.i64(i64 %12101, i64 1)
  %12103 = icmp ne i64 %12102, 0
  br i1 %12103, label %12106, label %12104

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

12105:                                            ; No predecessors!
  br label %12106

12106:                                            ; preds = %12105, %12096
  %12107 = phi i1 [ true, %12096 ], [ false, %12105 ]
  %12108 = zext i1 %12107 to i32
  %12109 = load ptr, ptr %5, align 8, !tbaa !5
  %12110 = getelementptr inbounds %struct.w2c_hermes, ptr %12109, i32 0, i32 7
  %12111 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12110, i32 0, i32 0
  %12112 = load ptr, ptr %12111, align 8, !tbaa !19
  %12113 = load i32, ptr %21, align 4, !tbaa !9
  %12114 = zext i32 %12113 to i64
  %12115 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12112, i64 %12114
  %12116 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12115, i32 0, i32 1
  %12117 = load ptr, ptr %12116, align 8, !tbaa !20
  %12118 = load ptr, ptr %5, align 8, !tbaa !5
  %12119 = getelementptr inbounds %struct.w2c_hermes, ptr %12118, i32 0, i32 7
  %12120 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12119, i32 0, i32 0
  %12121 = load ptr, ptr %12120, align 8, !tbaa !19
  %12122 = load i32, ptr %21, align 4, !tbaa !9
  %12123 = zext i32 %12122 to i64
  %12124 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12121, i64 %12123
  %12125 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12124, i32 0, i32 2
  %12126 = load ptr, ptr %12125, align 8, !tbaa !23
  %12127 = load i32, ptr %19, align 4, !tbaa !9
  %12128 = load i32, ptr %20, align 4, !tbaa !9
  call void %12117(ptr noundef %12126, i32 noundef %12127, i32 noundef %12128)
  %12129 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %12129, ptr %19, align 4, !tbaa !9
  store i32 24, ptr %20, align 4, !tbaa !9
  %12130 = load i32, ptr %20, align 4, !tbaa !9
  %12131 = load i32, ptr %19, align 4, !tbaa !9
  %12132 = add i32 %12131, %12130
  store i32 %12132, ptr %19, align 4, !tbaa !9
  %12133 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12133, ptr %10, align 4, !tbaa !9
  %12134 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %12134, ptr %20, align 4, !tbaa !9
  %12135 = load i32, ptr %19, align 4, !tbaa !9
  %12136 = load i32, ptr %20, align 4, !tbaa !9
  %12137 = icmp ne i32 %12135, %12136
  %12138 = zext i1 %12137 to i32
  store i32 %12138, ptr %19, align 4, !tbaa !9
  %12139 = load i32, ptr %19, align 4, !tbaa !9
  %12140 = icmp ne i32 %12139, 0
  br i1 %12140, label %12141, label %12142

12141:                                            ; preds = %12106
  br label %12052

12142:                                            ; preds = %12106
  br label %12143

12143:                                            ; preds = %12142, %11970
  %12144 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12144, ptr %19, align 4, !tbaa !9
  store i32 16, ptr %20, align 4, !tbaa !9
  %12145 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12145, ptr %21, align 4, !tbaa !9
  %12146 = load ptr, ptr %5, align 8, !tbaa !5
  %12147 = getelementptr inbounds %struct.w2c_hermes, ptr %12146, i32 0, i32 6
  %12148 = load i32, ptr %21, align 4, !tbaa !9
  %12149 = zext i32 %12148 to i64
  %12150 = call i32 @i32_load(ptr noundef %12147, i64 noundef %12149)
  store i32 %12150, ptr %21, align 4, !tbaa !9
  %12151 = load ptr, ptr %5, align 8, !tbaa !5
  %12152 = getelementptr inbounds %struct.w2c_hermes, ptr %12151, i32 0, i32 6
  %12153 = load i32, ptr %21, align 4, !tbaa !9
  %12154 = zext i32 %12153 to i64
  %12155 = add i64 %12154, 8
  %12156 = call i32 @i32_load(ptr noundef %12152, i64 noundef %12155)
  store i32 %12156, ptr %21, align 4, !tbaa !9
  %12157 = load i32, ptr %21, align 4, !tbaa !9
  %12158 = load ptr, ptr %5, align 8, !tbaa !5
  %12159 = getelementptr inbounds %struct.w2c_hermes, ptr %12158, i32 0, i32 7
  %12160 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12159, i32 0, i32 2
  %12161 = load i32, ptr %12160, align 4, !tbaa !18
  %12162 = icmp ult i32 %12157, %12161
  br i1 %12162, label %12163, label %12186

12163:                                            ; preds = %12143
  %12164 = load ptr, ptr %5, align 8, !tbaa !5
  %12165 = getelementptr inbounds %struct.w2c_hermes, ptr %12164, i32 0, i32 7
  %12166 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12165, i32 0, i32 0
  %12167 = load ptr, ptr %12166, align 8, !tbaa !19
  %12168 = load i32, ptr %21, align 4, !tbaa !9
  %12169 = zext i32 %12168 to i64
  %12170 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12167, i64 %12169
  %12171 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12170, i32 0, i32 1
  %12172 = load ptr, ptr %12171, align 8, !tbaa !20
  %12173 = icmp ne ptr %12172, null
  br i1 %12173, label %12174, label %12186

12174:                                            ; preds = %12163
  %12175 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %12176 = load ptr, ptr %5, align 8, !tbaa !5
  %12177 = getelementptr inbounds %struct.w2c_hermes, ptr %12176, i32 0, i32 7
  %12178 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12177, i32 0, i32 0
  %12179 = load ptr, ptr %12178, align 8, !tbaa !19
  %12180 = load i32, ptr %21, align 4, !tbaa !9
  %12181 = zext i32 %12180 to i64
  %12182 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12179, i64 %12181
  %12183 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12182, i32 0, i32 0
  %12184 = load ptr, ptr %12183, align 8, !tbaa !22
  %12185 = call zeroext i1 @func_types_eq(ptr noundef %12175, ptr noundef %12184)
  br label %12186

12186:                                            ; preds = %12174, %12163, %12143
  %12187 = phi i1 [ false, %12163 ], [ false, %12143 ], [ %12185, %12174 ]
  %12188 = xor i1 %12187, true
  %12189 = xor i1 %12188, true
  %12190 = zext i1 %12189 to i32
  %12191 = sext i32 %12190 to i64
  %12192 = call i64 @llvm.expect.i64(i64 %12191, i64 1)
  %12193 = icmp ne i64 %12192, 0
  br i1 %12193, label %12196, label %12194

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

12195:                                            ; No predecessors!
  br label %12196

12196:                                            ; preds = %12195, %12186
  %12197 = phi i1 [ true, %12186 ], [ false, %12195 ]
  %12198 = zext i1 %12197 to i32
  %12199 = load ptr, ptr %5, align 8, !tbaa !5
  %12200 = getelementptr inbounds %struct.w2c_hermes, ptr %12199, i32 0, i32 7
  %12201 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12200, i32 0, i32 0
  %12202 = load ptr, ptr %12201, align 8, !tbaa !19
  %12203 = load i32, ptr %21, align 4, !tbaa !9
  %12204 = zext i32 %12203 to i64
  %12205 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12202, i64 %12204
  %12206 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12205, i32 0, i32 1
  %12207 = load ptr, ptr %12206, align 8, !tbaa !20
  %12208 = load ptr, ptr %5, align 8, !tbaa !5
  %12209 = getelementptr inbounds %struct.w2c_hermes, ptr %12208, i32 0, i32 7
  %12210 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12209, i32 0, i32 0
  %12211 = load ptr, ptr %12210, align 8, !tbaa !19
  %12212 = load i32, ptr %21, align 4, !tbaa !9
  %12213 = zext i32 %12212 to i64
  %12214 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12211, i64 %12213
  %12215 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12214, i32 0, i32 2
  %12216 = load ptr, ptr %12215, align 8, !tbaa !23
  %12217 = load i32, ptr %19, align 4, !tbaa !9
  %12218 = load i32, ptr %20, align 4, !tbaa !9
  call void %12207(ptr noundef %12216, i32 noundef %12217, i32 noundef %12218)
  %12219 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12219, ptr %19, align 4, !tbaa !9
  %12220 = load ptr, ptr %5, align 8, !tbaa !5
  %12221 = getelementptr inbounds %struct.w2c_hermes, ptr %12220, i32 0, i32 6
  %12222 = load i32, ptr %19, align 4, !tbaa !9
  %12223 = zext i32 %12222 to i64
  %12224 = add i64 %12223, 5248
  %12225 = call i32 @i32_load(ptr noundef %12221, i64 noundef %12224)
  store i32 %12225, ptr %19, align 4, !tbaa !9
  %12226 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12226, ptr %10, align 4, !tbaa !9
  %12227 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12227, ptr %20, align 4, !tbaa !9
  store i32 5252, ptr %21, align 4, !tbaa !9
  %12228 = load i32, ptr %21, align 4, !tbaa !9
  %12229 = load i32, ptr %20, align 4, !tbaa !9
  %12230 = add i32 %12229, %12228
  store i32 %12230, ptr %20, align 4, !tbaa !9
  %12231 = load ptr, ptr %5, align 8, !tbaa !5
  %12232 = getelementptr inbounds %struct.w2c_hermes, ptr %12231, i32 0, i32 6
  %12233 = load i32, ptr %20, align 4, !tbaa !9
  %12234 = zext i32 %12233 to i64
  %12235 = call i32 @i32_load(ptr noundef %12232, i64 noundef %12234)
  store i32 %12235, ptr %20, align 4, !tbaa !9
  %12236 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %12236, ptr %9, align 4, !tbaa !9
  %12237 = load i32, ptr %19, align 4, !tbaa !9
  %12238 = load i32, ptr %20, align 4, !tbaa !9
  %12239 = icmp ne i32 %12237, %12238
  %12240 = zext i1 %12239 to i32
  store i32 %12240, ptr %19, align 4, !tbaa !9
  %12241 = load i32, ptr %19, align 4, !tbaa !9
  %12242 = icmp ne i32 %12241, 0
  br i1 %12242, label %12243, label %12369

12243:                                            ; preds = %12196
  %12244 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12244, ptr %19, align 4, !tbaa !9
  store i32 808, ptr %20, align 4, !tbaa !9
  %12245 = load i32, ptr %20, align 4, !tbaa !9
  %12246 = load i32, ptr %19, align 4, !tbaa !9
  %12247 = add i32 %12246, %12245
  store i32 %12247, ptr %19, align 4, !tbaa !9
  %12248 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12248, ptr %8, align 4, !tbaa !9
  br label %12249

12249:                                            ; preds = %12367, %12243
  %12250 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %12250, ptr %19, align 4, !tbaa !9
  %12251 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %12251, ptr %20, align 4, !tbaa !9
  %12252 = load ptr, ptr %5, align 8, !tbaa !5
  %12253 = getelementptr inbounds %struct.w2c_hermes, ptr %12252, i32 0, i32 6
  %12254 = load i32, ptr %19, align 4, !tbaa !9
  %12255 = zext i32 %12254 to i64
  %12256 = add i64 %12255, 12
  %12257 = load i32, ptr %20, align 4, !tbaa !9
  call void @i32_store(ptr noundef %12253, i64 noundef %12256, i32 noundef %12257)
  %12258 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %12258, ptr %19, align 4, !tbaa !9
  %12259 = load ptr, ptr %5, align 8, !tbaa !5
  %12260 = getelementptr inbounds %struct.w2c_hermes, ptr %12259, i32 0, i32 6
  %12261 = load i32, ptr %19, align 4, !tbaa !9
  %12262 = zext i32 %12261 to i64
  %12263 = add i64 %12262, 16
  %12264 = call i32 @i32_load(ptr noundef %12260, i64 noundef %12263)
  store i32 %12264, ptr %19, align 4, !tbaa !9
  %12265 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12265, ptr %11, align 4, !tbaa !9
  %12266 = load i32, ptr %19, align 4, !tbaa !9
  %12267 = icmp ne i32 %12266, 0
  %12268 = xor i1 %12267, true
  %12269 = zext i1 %12268 to i32
  store i32 %12269, ptr %19, align 4, !tbaa !9
  %12270 = load i32, ptr %19, align 4, !tbaa !9
  %12271 = icmp ne i32 %12270, 0
  br i1 %12271, label %12272, label %12273

12272:                                            ; preds = %12249
  br label %12633

12273:                                            ; preds = %12249
  %12274 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %12274, ptr %19, align 4, !tbaa !9
  %12275 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %12275, ptr %20, align 4, !tbaa !9
  store i32 12, ptr %21, align 4, !tbaa !9
  %12276 = load i32, ptr %21, align 4, !tbaa !9
  %12277 = load i32, ptr %20, align 4, !tbaa !9
  %12278 = add i32 %12277, %12276
  store i32 %12278, ptr %20, align 4, !tbaa !9
  %12279 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12279, ptr %21, align 4, !tbaa !9
  %12280 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %12280, ptr %22, align 4, !tbaa !9
  %12281 = load ptr, ptr %5, align 8, !tbaa !5
  %12282 = getelementptr inbounds %struct.w2c_hermes, ptr %12281, i32 0, i32 6
  %12283 = load i32, ptr %22, align 4, !tbaa !9
  %12284 = zext i32 %12283 to i64
  %12285 = call i32 @i32_load(ptr noundef %12282, i64 noundef %12284)
  store i32 %12285, ptr %22, align 4, !tbaa !9
  %12286 = load ptr, ptr %5, align 8, !tbaa !5
  %12287 = getelementptr inbounds %struct.w2c_hermes, ptr %12286, i32 0, i32 6
  %12288 = load i32, ptr %22, align 4, !tbaa !9
  %12289 = zext i32 %12288 to i64
  %12290 = add i64 %12289, 24
  %12291 = call i32 @i32_load(ptr noundef %12287, i64 noundef %12290)
  store i32 %12291, ptr %22, align 4, !tbaa !9
  %12292 = load i32, ptr %22, align 4, !tbaa !9
  %12293 = load ptr, ptr %5, align 8, !tbaa !5
  %12294 = getelementptr inbounds %struct.w2c_hermes, ptr %12293, i32 0, i32 7
  %12295 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12294, i32 0, i32 2
  %12296 = load i32, ptr %12295, align 4, !tbaa !18
  %12297 = icmp ult i32 %12292, %12296
  br i1 %12297, label %12298, label %12321

12298:                                            ; preds = %12273
  %12299 = load ptr, ptr %5, align 8, !tbaa !5
  %12300 = getelementptr inbounds %struct.w2c_hermes, ptr %12299, i32 0, i32 7
  %12301 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12300, i32 0, i32 0
  %12302 = load ptr, ptr %12301, align 8, !tbaa !19
  %12303 = load i32, ptr %22, align 4, !tbaa !9
  %12304 = zext i32 %12303 to i64
  %12305 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12302, i64 %12304
  %12306 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12305, i32 0, i32 1
  %12307 = load ptr, ptr %12306, align 8, !tbaa !20
  %12308 = icmp ne ptr %12307, null
  br i1 %12308, label %12309, label %12321

12309:                                            ; preds = %12298
  %12310 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %12311 = load ptr, ptr %5, align 8, !tbaa !5
  %12312 = getelementptr inbounds %struct.w2c_hermes, ptr %12311, i32 0, i32 7
  %12313 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12312, i32 0, i32 0
  %12314 = load ptr, ptr %12313, align 8, !tbaa !19
  %12315 = load i32, ptr %22, align 4, !tbaa !9
  %12316 = zext i32 %12315 to i64
  %12317 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12314, i64 %12316
  %12318 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12317, i32 0, i32 0
  %12319 = load ptr, ptr %12318, align 8, !tbaa !22
  %12320 = call zeroext i1 @func_types_eq(ptr noundef %12310, ptr noundef %12319)
  br label %12321

12321:                                            ; preds = %12309, %12298, %12273
  %12322 = phi i1 [ false, %12298 ], [ false, %12273 ], [ %12320, %12309 ]
  %12323 = xor i1 %12322, true
  %12324 = xor i1 %12323, true
  %12325 = zext i1 %12324 to i32
  %12326 = sext i32 %12325 to i64
  %12327 = call i64 @llvm.expect.i64(i64 %12326, i64 1)
  %12328 = icmp ne i64 %12327, 0
  br i1 %12328, label %12331, label %12329

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

12330:                                            ; No predecessors!
  br label %12331

12331:                                            ; preds = %12330, %12321
  %12332 = phi i1 [ true, %12321 ], [ false, %12330 ]
  %12333 = zext i1 %12332 to i32
  %12334 = load ptr, ptr %5, align 8, !tbaa !5
  %12335 = getelementptr inbounds %struct.w2c_hermes, ptr %12334, i32 0, i32 7
  %12336 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12335, i32 0, i32 0
  %12337 = load ptr, ptr %12336, align 8, !tbaa !19
  %12338 = load i32, ptr %22, align 4, !tbaa !9
  %12339 = zext i32 %12338 to i64
  %12340 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12337, i64 %12339
  %12341 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12340, i32 0, i32 1
  %12342 = load ptr, ptr %12341, align 8, !tbaa !20
  %12343 = load ptr, ptr %5, align 8, !tbaa !5
  %12344 = getelementptr inbounds %struct.w2c_hermes, ptr %12343, i32 0, i32 7
  %12345 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12344, i32 0, i32 0
  %12346 = load ptr, ptr %12345, align 8, !tbaa !19
  %12347 = load i32, ptr %22, align 4, !tbaa !9
  %12348 = zext i32 %12347 to i64
  %12349 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12346, i64 %12348
  %12350 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12349, i32 0, i32 2
  %12351 = load ptr, ptr %12350, align 8, !tbaa !23
  %12352 = load i32, ptr %19, align 4, !tbaa !9
  %12353 = load i32, ptr %20, align 4, !tbaa !9
  %12354 = load i32, ptr %21, align 4, !tbaa !9
  call void %12342(ptr noundef %12351, i32 noundef %12352, i32 noundef %12353, i32 noundef %12354)
  %12355 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %12355, ptr %19, align 4, !tbaa !9
  store i32 24, ptr %20, align 4, !tbaa !9
  %12356 = load i32, ptr %20, align 4, !tbaa !9
  %12357 = load i32, ptr %19, align 4, !tbaa !9
  %12358 = add i32 %12357, %12356
  store i32 %12358, ptr %19, align 4, !tbaa !9
  %12359 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12359, ptr %10, align 4, !tbaa !9
  %12360 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %12360, ptr %20, align 4, !tbaa !9
  %12361 = load i32, ptr %19, align 4, !tbaa !9
  %12362 = load i32, ptr %20, align 4, !tbaa !9
  %12363 = icmp ne i32 %12361, %12362
  %12364 = zext i1 %12363 to i32
  store i32 %12364, ptr %19, align 4, !tbaa !9
  %12365 = load i32, ptr %19, align 4, !tbaa !9
  %12366 = icmp ne i32 %12365, 0
  br i1 %12366, label %12367, label %12368

12367:                                            ; preds = %12331
  br label %12249

12368:                                            ; preds = %12331
  br label %12369

12369:                                            ; preds = %12368, %12196
  %12370 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12370, ptr %19, align 4, !tbaa !9
  %12371 = load ptr, ptr %5, align 8, !tbaa !5
  %12372 = getelementptr inbounds %struct.w2c_hermes, ptr %12371, i32 0, i32 6
  %12373 = load i32, ptr %19, align 4, !tbaa !9
  %12374 = zext i32 %12373 to i64
  %12375 = add i64 %12374, 5284
  %12376 = call i32 @i32_load(ptr noundef %12372, i64 noundef %12375)
  store i32 %12376, ptr %19, align 4, !tbaa !9
  %12377 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12377, ptr %10, align 4, !tbaa !9
  %12378 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12378, ptr %20, align 4, !tbaa !9
  store i32 5288, ptr %21, align 4, !tbaa !9
  %12379 = load i32, ptr %21, align 4, !tbaa !9
  %12380 = load i32, ptr %20, align 4, !tbaa !9
  %12381 = add i32 %12380, %12379
  store i32 %12381, ptr %20, align 4, !tbaa !9
  %12382 = load ptr, ptr %5, align 8, !tbaa !5
  %12383 = getelementptr inbounds %struct.w2c_hermes, ptr %12382, i32 0, i32 6
  %12384 = load i32, ptr %20, align 4, !tbaa !9
  %12385 = zext i32 %12384 to i64
  %12386 = call i32 @i32_load(ptr noundef %12383, i64 noundef %12385)
  store i32 %12386, ptr %20, align 4, !tbaa !9
  %12387 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %12387, ptr %8, align 4, !tbaa !9
  %12388 = load i32, ptr %19, align 4, !tbaa !9
  %12389 = load i32, ptr %20, align 4, !tbaa !9
  %12390 = icmp ne i32 %12388, %12389
  %12391 = zext i1 %12390 to i32
  store i32 %12391, ptr %19, align 4, !tbaa !9
  %12392 = load i32, ptr %19, align 4, !tbaa !9
  %12393 = icmp ne i32 %12392, 0
  br i1 %12393, label %12394, label %12486

12394:                                            ; preds = %12369
  br label %12395

12395:                                            ; preds = %12484, %12394
  %12396 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12396, ptr %19, align 4, !tbaa !9
  %12397 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %12397, ptr %20, align 4, !tbaa !9
  %12398 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12398, ptr %21, align 4, !tbaa !9
  %12399 = load ptr, ptr %5, align 8, !tbaa !5
  %12400 = getelementptr inbounds %struct.w2c_hermes, ptr %12399, i32 0, i32 6
  %12401 = load i32, ptr %21, align 4, !tbaa !9
  %12402 = zext i32 %12401 to i64
  %12403 = call i32 @i32_load(ptr noundef %12400, i64 noundef %12402)
  store i32 %12403, ptr %21, align 4, !tbaa !9
  %12404 = load ptr, ptr %5, align 8, !tbaa !5
  %12405 = getelementptr inbounds %struct.w2c_hermes, ptr %12404, i32 0, i32 6
  %12406 = load i32, ptr %21, align 4, !tbaa !9
  %12407 = zext i32 %12406 to i64
  %12408 = add i64 %12407, 80
  %12409 = call i32 @i32_load(ptr noundef %12405, i64 noundef %12408)
  store i32 %12409, ptr %21, align 4, !tbaa !9
  %12410 = load i32, ptr %21, align 4, !tbaa !9
  %12411 = load ptr, ptr %5, align 8, !tbaa !5
  %12412 = getelementptr inbounds %struct.w2c_hermes, ptr %12411, i32 0, i32 7
  %12413 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12412, i32 0, i32 2
  %12414 = load i32, ptr %12413, align 4, !tbaa !18
  %12415 = icmp ult i32 %12410, %12414
  br i1 %12415, label %12416, label %12439

12416:                                            ; preds = %12395
  %12417 = load ptr, ptr %5, align 8, !tbaa !5
  %12418 = getelementptr inbounds %struct.w2c_hermes, ptr %12417, i32 0, i32 7
  %12419 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12418, i32 0, i32 0
  %12420 = load ptr, ptr %12419, align 8, !tbaa !19
  %12421 = load i32, ptr %21, align 4, !tbaa !9
  %12422 = zext i32 %12421 to i64
  %12423 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12420, i64 %12422
  %12424 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12423, i32 0, i32 1
  %12425 = load ptr, ptr %12424, align 8, !tbaa !20
  %12426 = icmp ne ptr %12425, null
  br i1 %12426, label %12427, label %12439

12427:                                            ; preds = %12416
  %12428 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %12429 = load ptr, ptr %5, align 8, !tbaa !5
  %12430 = getelementptr inbounds %struct.w2c_hermes, ptr %12429, i32 0, i32 7
  %12431 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12430, i32 0, i32 0
  %12432 = load ptr, ptr %12431, align 8, !tbaa !19
  %12433 = load i32, ptr %21, align 4, !tbaa !9
  %12434 = zext i32 %12433 to i64
  %12435 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12432, i64 %12434
  %12436 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12435, i32 0, i32 0
  %12437 = load ptr, ptr %12436, align 8, !tbaa !22
  %12438 = call zeroext i1 @func_types_eq(ptr noundef %12428, ptr noundef %12437)
  br label %12439

12439:                                            ; preds = %12427, %12416, %12395
  %12440 = phi i1 [ false, %12416 ], [ false, %12395 ], [ %12438, %12427 ]
  %12441 = xor i1 %12440, true
  %12442 = xor i1 %12441, true
  %12443 = zext i1 %12442 to i32
  %12444 = sext i32 %12443 to i64
  %12445 = call i64 @llvm.expect.i64(i64 %12444, i64 1)
  %12446 = icmp ne i64 %12445, 0
  br i1 %12446, label %12449, label %12447

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

12448:                                            ; No predecessors!
  br label %12449

12449:                                            ; preds = %12448, %12439
  %12450 = phi i1 [ true, %12439 ], [ false, %12448 ]
  %12451 = zext i1 %12450 to i32
  %12452 = load ptr, ptr %5, align 8, !tbaa !5
  %12453 = getelementptr inbounds %struct.w2c_hermes, ptr %12452, i32 0, i32 7
  %12454 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12453, i32 0, i32 0
  %12455 = load ptr, ptr %12454, align 8, !tbaa !19
  %12456 = load i32, ptr %21, align 4, !tbaa !9
  %12457 = zext i32 %12456 to i64
  %12458 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12455, i64 %12457
  %12459 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12458, i32 0, i32 1
  %12460 = load ptr, ptr %12459, align 8, !tbaa !20
  %12461 = load ptr, ptr %5, align 8, !tbaa !5
  %12462 = getelementptr inbounds %struct.w2c_hermes, ptr %12461, i32 0, i32 7
  %12463 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12462, i32 0, i32 0
  %12464 = load ptr, ptr %12463, align 8, !tbaa !19
  %12465 = load i32, ptr %21, align 4, !tbaa !9
  %12466 = zext i32 %12465 to i64
  %12467 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12464, i64 %12466
  %12468 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12467, i32 0, i32 2
  %12469 = load ptr, ptr %12468, align 8, !tbaa !23
  %12470 = load i32, ptr %19, align 4, !tbaa !9
  %12471 = load i32, ptr %20, align 4, !tbaa !9
  call void %12460(ptr noundef %12469, i32 noundef %12470, i32 noundef %12471)
  %12472 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %12472, ptr %19, align 4, !tbaa !9
  store i32 24, ptr %20, align 4, !tbaa !9
  %12473 = load i32, ptr %20, align 4, !tbaa !9
  %12474 = load i32, ptr %19, align 4, !tbaa !9
  %12475 = add i32 %12474, %12473
  store i32 %12475, ptr %19, align 4, !tbaa !9
  %12476 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12476, ptr %10, align 4, !tbaa !9
  %12477 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %12477, ptr %20, align 4, !tbaa !9
  %12478 = load i32, ptr %19, align 4, !tbaa !9
  %12479 = load i32, ptr %20, align 4, !tbaa !9
  %12480 = icmp ne i32 %12478, %12479
  %12481 = zext i1 %12480 to i32
  store i32 %12481, ptr %19, align 4, !tbaa !9
  %12482 = load i32, ptr %19, align 4, !tbaa !9
  %12483 = icmp ne i32 %12482, 0
  br i1 %12483, label %12484, label %12485

12484:                                            ; preds = %12449
  br label %12395

12485:                                            ; preds = %12449
  br label %12486

12486:                                            ; preds = %12485, %12369
  %12487 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12487, ptr %19, align 4, !tbaa !9
  %12488 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12488, ptr %20, align 4, !tbaa !9
  %12489 = load ptr, ptr %5, align 8, !tbaa !5
  %12490 = getelementptr inbounds %struct.w2c_hermes, ptr %12489, i32 0, i32 6
  %12491 = load i32, ptr %20, align 4, !tbaa !9
  %12492 = zext i32 %12491 to i64
  %12493 = call i32 @i32_load(ptr noundef %12490, i64 noundef %12492)
  store i32 %12493, ptr %20, align 4, !tbaa !9
  %12494 = load ptr, ptr %5, align 8, !tbaa !5
  %12495 = getelementptr inbounds %struct.w2c_hermes, ptr %12494, i32 0, i32 6
  %12496 = load i32, ptr %20, align 4, !tbaa !9
  %12497 = zext i32 %12496 to i64
  %12498 = add i64 %12497, 12
  %12499 = call i32 @i32_load(ptr noundef %12495, i64 noundef %12498)
  store i32 %12499, ptr %20, align 4, !tbaa !9
  %12500 = load i32, ptr %20, align 4, !tbaa !9
  %12501 = load ptr, ptr %5, align 8, !tbaa !5
  %12502 = getelementptr inbounds %struct.w2c_hermes, ptr %12501, i32 0, i32 7
  %12503 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12502, i32 0, i32 2
  %12504 = load i32, ptr %12503, align 4, !tbaa !18
  %12505 = icmp ult i32 %12500, %12504
  br i1 %12505, label %12506, label %12529

12506:                                            ; preds = %12486
  %12507 = load ptr, ptr %5, align 8, !tbaa !5
  %12508 = getelementptr inbounds %struct.w2c_hermes, ptr %12507, i32 0, i32 7
  %12509 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12508, i32 0, i32 0
  %12510 = load ptr, ptr %12509, align 8, !tbaa !19
  %12511 = load i32, ptr %20, align 4, !tbaa !9
  %12512 = zext i32 %12511 to i64
  %12513 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12510, i64 %12512
  %12514 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12513, i32 0, i32 1
  %12515 = load ptr, ptr %12514, align 8, !tbaa !20
  %12516 = icmp ne ptr %12515, null
  br i1 %12516, label %12517, label %12529

12517:                                            ; preds = %12506
  %12518 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %12519 = load ptr, ptr %5, align 8, !tbaa !5
  %12520 = getelementptr inbounds %struct.w2c_hermes, ptr %12519, i32 0, i32 7
  %12521 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12520, i32 0, i32 0
  %12522 = load ptr, ptr %12521, align 8, !tbaa !19
  %12523 = load i32, ptr %20, align 4, !tbaa !9
  %12524 = zext i32 %12523 to i64
  %12525 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12522, i64 %12524
  %12526 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12525, i32 0, i32 0
  %12527 = load ptr, ptr %12526, align 8, !tbaa !22
  %12528 = call zeroext i1 @func_types_eq(ptr noundef %12518, ptr noundef %12527)
  br label %12529

12529:                                            ; preds = %12517, %12506, %12486
  %12530 = phi i1 [ false, %12506 ], [ false, %12486 ], [ %12528, %12517 ]
  %12531 = xor i1 %12530, true
  %12532 = xor i1 %12531, true
  %12533 = zext i1 %12532 to i32
  %12534 = sext i32 %12533 to i64
  %12535 = call i64 @llvm.expect.i64(i64 %12534, i64 1)
  %12536 = icmp ne i64 %12535, 0
  br i1 %12536, label %12539, label %12537

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

12538:                                            ; No predecessors!
  br label %12539

12539:                                            ; preds = %12538, %12529
  %12540 = phi i1 [ true, %12529 ], [ false, %12538 ]
  %12541 = zext i1 %12540 to i32
  %12542 = load ptr, ptr %5, align 8, !tbaa !5
  %12543 = getelementptr inbounds %struct.w2c_hermes, ptr %12542, i32 0, i32 7
  %12544 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12543, i32 0, i32 0
  %12545 = load ptr, ptr %12544, align 8, !tbaa !19
  %12546 = load i32, ptr %20, align 4, !tbaa !9
  %12547 = zext i32 %12546 to i64
  %12548 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12545, i64 %12547
  %12549 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12548, i32 0, i32 1
  %12550 = load ptr, ptr %12549, align 8, !tbaa !20
  %12551 = load ptr, ptr %5, align 8, !tbaa !5
  %12552 = getelementptr inbounds %struct.w2c_hermes, ptr %12551, i32 0, i32 7
  %12553 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %12552, i32 0, i32 0
  %12554 = load ptr, ptr %12553, align 8, !tbaa !19
  %12555 = load i32, ptr %20, align 4, !tbaa !9
  %12556 = zext i32 %12555 to i64
  %12557 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12554, i64 %12556
  %12558 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %12557, i32 0, i32 2
  %12559 = load ptr, ptr %12558, align 8, !tbaa !23
  %12560 = load i32, ptr %19, align 4, !tbaa !9
  call void %12550(ptr noundef %12559, i32 noundef %12560)
  %12561 = load ptr, ptr %5, align 8, !tbaa !5
  %12562 = call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %12561)
  store i64 %12562, ptr %24, align 8, !tbaa !11
  %12563 = load i64, ptr %24, align 8, !tbaa !11
  store i64 %12563, ptr %17, align 8, !tbaa !11
  %12564 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12564, ptr %19, align 4, !tbaa !9
  store i32 5448, ptr %20, align 4, !tbaa !9
  %12565 = load i32, ptr %20, align 4, !tbaa !9
  %12566 = load i32, ptr %19, align 4, !tbaa !9
  %12567 = add i32 %12566, %12565
  store i32 %12567, ptr %19, align 4, !tbaa !9
  %12568 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %12568, ptr %7, align 4, !tbaa !9
  %12569 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %12569, ptr %20, align 4, !tbaa !9
  %12570 = load ptr, ptr %5, align 8, !tbaa !5
  %12571 = getelementptr inbounds %struct.w2c_hermes, ptr %12570, i32 0, i32 6
  %12572 = load i32, ptr %20, align 4, !tbaa !9
  %12573 = zext i32 %12572 to i64
  %12574 = call double @f64_load(ptr noundef %12571, i64 noundef %12573)
  store double %12574, ptr %28, align 8, !tbaa !24
  %12575 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %12575, ptr %26, align 8, !tbaa !11
  %12576 = load i64, ptr %18, align 8, !tbaa !11
  store i64 %12576, ptr %27, align 8, !tbaa !11
  %12577 = load i64, ptr %27, align 8, !tbaa !11
  %12578 = load i64, ptr %26, align 8, !tbaa !11
  %12579 = sub i64 %12578, %12577
  store i64 %12579, ptr %26, align 8, !tbaa !11
  %12580 = load i64, ptr %26, align 8, !tbaa !11
  %12581 = sitofp i64 %12580 to double
  store double %12581, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %12582 = load double, ptr %30, align 8, !tbaa !24
  %12583 = load double, ptr %29, align 8, !tbaa !24
  %12584 = fdiv double %12583, %12582
  store double %12584, ptr %29, align 8, !tbaa !24
  %12585 = load double, ptr %29, align 8, !tbaa !24
  %12586 = load double, ptr %28, align 8, !tbaa !24
  %12587 = fadd double %12586, %12585
  store double %12587, ptr %28, align 8, !tbaa !24
  %12588 = load ptr, ptr %5, align 8, !tbaa !5
  %12589 = getelementptr inbounds %struct.w2c_hermes, ptr %12588, i32 0, i32 6
  %12590 = load i32, ptr %19, align 4, !tbaa !9
  %12591 = zext i32 %12590 to i64
  %12592 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %12589, i64 noundef %12591, double noundef %12592)
  %12593 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12593, ptr %19, align 4, !tbaa !9
  %12594 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12594, ptr %20, align 4, !tbaa !9
  %12595 = load ptr, ptr %5, align 8, !tbaa !5
  %12596 = getelementptr inbounds %struct.w2c_hermes, ptr %12595, i32 0, i32 6
  %12597 = load i32, ptr %20, align 4, !tbaa !9
  %12598 = zext i32 %12597 to i64
  %12599 = add i64 %12598, 5456
  %12600 = call double @f64_load(ptr noundef %12596, i64 noundef %12599)
  store double %12600, ptr %28, align 8, !tbaa !24
  %12601 = load i64, ptr %17, align 8, !tbaa !11
  store i64 %12601, ptr %26, align 8, !tbaa !11
  %12602 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %12602, ptr %22, align 4, !tbaa !9
  %12603 = load ptr, ptr %5, align 8, !tbaa !5
  %12604 = getelementptr inbounds %struct.w2c_hermes, ptr %12603, i32 0, i32 6
  %12605 = load i32, ptr %22, align 4, !tbaa !9
  %12606 = zext i32 %12605 to i64
  %12607 = add i64 %12606, 5312
  %12608 = call i64 @i64_load(ptr noundef %12604, i64 noundef %12607)
  store i64 %12608, ptr %27, align 8, !tbaa !11
  %12609 = load i64, ptr %27, align 8, !tbaa !11
  %12610 = load i64, ptr %26, align 8, !tbaa !11
  %12611 = sub i64 %12610, %12609
  store i64 %12611, ptr %26, align 8, !tbaa !11
  %12612 = load i64, ptr %26, align 8, !tbaa !11
  %12613 = sitofp i64 %12612 to double
  store double %12613, ptr %29, align 8, !tbaa !24
  store double 1.000000e+09, ptr %30, align 8, !tbaa !24
  %12614 = load double, ptr %30, align 8, !tbaa !24
  %12615 = load double, ptr %29, align 8, !tbaa !24
  %12616 = fdiv double %12615, %12614
  store double %12616, ptr %29, align 8, !tbaa !24
  %12617 = load double, ptr %29, align 8, !tbaa !24
  %12618 = load double, ptr %28, align 8, !tbaa !24
  %12619 = fadd double %12618, %12617
  store double %12619, ptr %28, align 8, !tbaa !24
  %12620 = load ptr, ptr %5, align 8, !tbaa !5
  %12621 = getelementptr inbounds %struct.w2c_hermes, ptr %12620, i32 0, i32 6
  %12622 = load i32, ptr %19, align 4, !tbaa !9
  %12623 = zext i32 %12622 to i64
  %12624 = add i64 %12623, 5456
  %12625 = load double, ptr %28, align 8, !tbaa !24
  call void @f64_store(ptr noundef %12621, i64 noundef %12624, double noundef %12625)
  %12626 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %12626, ptr %19, align 4, !tbaa !9
  store i32 16, ptr %20, align 4, !tbaa !9
  %12627 = load i32, ptr %20, align 4, !tbaa !9
  %12628 = load i32, ptr %19, align 4, !tbaa !9
  %12629 = add i32 %12628, %12627
  store i32 %12629, ptr %19, align 4, !tbaa !9
  %12630 = load i32, ptr %19, align 4, !tbaa !9
  %12631 = load ptr, ptr %5, align 8, !tbaa !5
  %12632 = getelementptr inbounds %struct.w2c_hermes, ptr %12631, i32 0, i32 3
  store i32 %12630, ptr %12632, align 8, !tbaa !13
  br label %12635

12633:                                            ; preds = %12272
  %12634 = load ptr, ptr %5, align 8, !tbaa !5
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef %12634)
  call void @wasm_rt_trap(i32 noundef 5) #7
  unreachable

12635:                                            ; preds = %12539
  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 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, 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 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, 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 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  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 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { nocallback nofree nosync nounwind willreturn memory(none) }
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, !10, i64 24}
!14 = !{!"w2c_hermes", !6, i64 0, !6, i64 8, !6, i64 16, !10, i64 24, !10, i64 28, !10, i64 32, !15, i64 40, !17, i64 80}
!15 = !{!"", !6, i64 0, !12, i64 8, !12, i64 16, !12, i64 24, !16, i64 32}
!16 = !{!"_Bool", !7, i64 0}
!17 = !{!"", !6, i64 0, !10, i64 8, !10, i64 12}
!18 = !{!14, !10, i64 92}
!19 = !{!14, !6, i64 80}
!20 = !{!21, !6, i64 8}
!21 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16}
!22 = !{!21, !6, i64 0}
!23 = !{!21, !6, i64 16}
!24 = !{!25, !25, i64 0}
!25 = !{!"double", !7, i64 0}


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

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

@w2c_hermes_t3 = external local_unnamed_addr constant ptr, align 8
@w2c_hermes_t2 = external local_unnamed_addr constant ptr, align 8
@w2c_hermes_t0 = external local_unnamed_addr constant ptr, align 8

; Function Attrs: inlinehint nounwind uwtable
declare hidden void @i64_store(ptr noundef, i64 noundef, i64 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 i64 @i64_load(ptr noundef, i64 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 zeroext i1 @func_types_eq(ptr noundef, ptr noundef) local_unnamed_addr #0

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef) local_unnamed_addr #2

; 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

declare i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef) local_unnamed_addr #2

; Function Attrs: nounwind uwtable
define dso_local void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3ARuntime0x3A0x3AmarkRoots0x28hermes0x3A0x3Avm0x3A0x3ARootAndSlotAcceptorWithNames0x260x2C0x20bool0x29(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3) local_unnamed_addr #3 {
  %5 = getelementptr inbounds i8, ptr %0, i64 24
  %6 = load i32, ptr %5, align 8, !tbaa !5
  %7 = add i32 %6, -16
  store i32 %7, ptr %5, align 8, !tbaa !5
  %8 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %0) #4
  %9 = getelementptr inbounds i8, ptr %0, i64 40
  %10 = zext i32 %1 to i64
  %11 = add nuw nsw i64 %10, 5312
  tail call void @i64_store(ptr noundef nonnull %9, i64 noundef %11, i64 noundef %8)
  %12 = zext i32 %2 to i64
  %13 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %14 = zext i32 %13 to i64
  %15 = add nuw nsw i64 %14, 8
  %16 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %15)
  %17 = getelementptr inbounds i8, ptr %0, i64 80
  %18 = getelementptr inbounds i8, ptr %0, i64 92
  %19 = load i32, ptr %18, align 4, !tbaa !15
  %20 = icmp ult i32 %16, %19
  br i1 %20, label %21, label %.critedge, !prof !16

21:                                               ; preds = %4
  %22 = load ptr, ptr %17, align 8, !tbaa !17
  %23 = zext i32 %16 to i64
  %24 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %22, i64 %23
  %25 = getelementptr inbounds i8, ptr %24, i64 8
  %26 = load ptr, ptr %25, align 8, !tbaa !18
  %.not = icmp eq ptr %26, null
  br i1 %.not, label %.critedge, label %27, !prof !20

27:                                               ; preds = %21
  %28 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !21
  %29 = load ptr, ptr %24, align 8, !tbaa !22
  %30 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %29)
  br i1 %30, label %31, label %.critedge, !prof !16

.critedge:                                        ; preds = %21, %4, %27
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

31:                                               ; preds = %27
  %32 = load ptr, ptr %17, align 8, !tbaa !17
  %33 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %32, i64 %23
  %34 = getelementptr inbounds i8, ptr %33, i64 8
  %35 = load ptr, ptr %34, align 8, !tbaa !18
  %36 = getelementptr inbounds i8, ptr %33, i64 16
  %37 = load ptr, ptr %36, align 8, !tbaa !23
  tail call void %35(ptr noundef %37, i32 noundef %2, i32 noundef 0) #4
  %38 = add nuw nsw i64 %10, 5580
  %39 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %38)
  %40 = add nuw nsw i64 %10, 5588
  %41 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %40)
  %.not4013 = icmp eq i32 %39, %41
  br i1 %.not4013, label %.loopexit4505, label %.preheader4504

.preheader4504:                                   ; preds = %31
  %42 = load ptr, ptr @w2c_hermes_t2, align 8
  br label %43

43:                                               ; preds = %.preheader4504, %59
  %.03827 = phi i32 [ %66, %59 ], [ %39, %.preheader4504 ]
  %44 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %45 = zext i32 %44 to i64
  %46 = add nuw nsw i64 %45, 36
  %47 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %46)
  %48 = load i32, ptr %18, align 4, !tbaa !15
  %49 = icmp ult i32 %47, %48
  br i1 %49, label %50, label %.critedge4193, !prof !16

50:                                               ; preds = %43
  %51 = load ptr, ptr %17, align 8, !tbaa !17
  %52 = zext i32 %47 to i64
  %53 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %51, i64 %52
  %54 = getelementptr inbounds i8, ptr %53, i64 8
  %55 = load ptr, ptr %54, align 8, !tbaa !18
  %.not4014 = icmp eq ptr %55, null
  br i1 %.not4014, label %.critedge4193, label %56, !prof !20

56:                                               ; preds = %50
  %57 = load ptr, ptr %53, align 8, !tbaa !22
  %58 = tail call zeroext i1 @func_types_eq(ptr noundef %42, ptr noundef %57)
  br i1 %58, label %59, label %.critedge4193, !prof !16

.critedge4193:                                    ; preds = %50, %43, %56
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

59:                                               ; preds = %56
  %60 = load ptr, ptr %17, align 8, !tbaa !17
  %61 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %60, i64 %52
  %62 = getelementptr inbounds i8, ptr %61, i64 8
  %63 = load ptr, ptr %62, align 8, !tbaa !18
  %64 = getelementptr inbounds i8, ptr %61, i64 16
  %65 = load ptr, ptr %64, align 8, !tbaa !23
  tail call void %63(ptr noundef %65, i32 noundef %2, i32 noundef %.03827, i32 noundef 0) #4
  %66 = add i32 %.03827, 8
  %.not4015 = icmp eq i32 %66, %41
  br i1 %.not4015, label %.loopexit4505, label %43

.loopexit4505:                                    ; preds = %59, %31
  %67 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %68 = zext i32 %67 to i64
  %69 = add nuw nsw i64 %68, 12
  %70 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %69)
  %71 = load i32, ptr %18, align 4, !tbaa !15
  %72 = icmp ult i32 %70, %71
  br i1 %72, label %73, label %.critedge4195, !prof !16

73:                                               ; preds = %.loopexit4505
  %74 = load ptr, ptr %17, align 8, !tbaa !17
  %75 = zext i32 %70 to i64
  %76 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %74, i64 %75
  %77 = getelementptr inbounds i8, ptr %76, i64 8
  %78 = load ptr, ptr %77, align 8, !tbaa !18
  %.not4016 = icmp eq ptr %78, null
  br i1 %.not4016, label %.critedge4195, label %79, !prof !20

79:                                               ; preds = %73
  %80 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !21
  %81 = load ptr, ptr %76, align 8, !tbaa !22
  %82 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %81)
  br i1 %82, label %83, label %.critedge4195, !prof !16

.critedge4195:                                    ; preds = %73, %.loopexit4505, %79
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

83:                                               ; preds = %79
  %84 = load ptr, ptr %17, align 8, !tbaa !17
  %85 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %84, i64 %75
  %86 = getelementptr inbounds i8, ptr %85, i64 8
  %87 = load ptr, ptr %86, align 8, !tbaa !18
  %88 = getelementptr inbounds i8, ptr %85, i64 16
  %89 = load ptr, ptr %88, align 8, !tbaa !23
  tail call void %87(ptr noundef %89, i32 noundef %2) #4
  %90 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %91 = add nuw nsw i64 %10, 5320
  %92 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %91)
  %93 = sub i64 %90, %8
  %94 = sitofp i64 %93 to double
  %95 = fdiv double %94, 1.000000e+09
  %96 = fadd double %92, %95
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %91, double noundef %96)
  %97 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %98 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %99 = zext i32 %98 to i64
  %100 = add nuw nsw i64 %99, 8
  %101 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %100)
  %102 = load i32, ptr %18, align 4, !tbaa !15
  %103 = icmp ult i32 %101, %102
  br i1 %103, label %104, label %.critedge4197, !prof !16

104:                                              ; preds = %83
  %105 = load ptr, ptr %17, align 8, !tbaa !17
  %106 = zext i32 %101 to i64
  %107 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %105, i64 %106
  %108 = getelementptr inbounds i8, ptr %107, i64 8
  %109 = load ptr, ptr %108, align 8, !tbaa !18
  %.not4017 = icmp eq ptr %109, null
  br i1 %.not4017, label %.critedge4197, label %110, !prof !20

110:                                              ; preds = %104
  %111 = load ptr, ptr %107, align 8, !tbaa !22
  %112 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %111)
  br i1 %112, label %113, label %.critedge4197, !prof !16

.critedge4197:                                    ; preds = %104, %83, %110
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

113:                                              ; preds = %110
  %114 = load ptr, ptr %17, align 8, !tbaa !17
  %115 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %114, i64 %106
  %116 = getelementptr inbounds i8, ptr %115, i64 8
  %117 = load ptr, ptr %116, align 8, !tbaa !18
  %118 = getelementptr inbounds i8, ptr %115, i64 16
  %119 = load ptr, ptr %118, align 8, !tbaa !23
  tail call void %117(ptr noundef %119, i32 noundef %2, i32 noundef 1) #4
  %120 = add i32 %1, 5616
  %121 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %122 = zext i32 %121 to i64
  %123 = add nuw nsw i64 %122, 36
  %124 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %123)
  %125 = load i32, ptr %18, align 4, !tbaa !15
  %126 = icmp ult i32 %124, %125
  br i1 %126, label %127, label %.critedge4199, !prof !16

127:                                              ; preds = %113
  %128 = load ptr, ptr %17, align 8, !tbaa !17
  %129 = zext i32 %124 to i64
  %130 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %128, i64 %129
  %131 = getelementptr inbounds i8, ptr %130, i64 8
  %132 = load ptr, ptr %131, align 8, !tbaa !18
  %.not4018 = icmp eq ptr %132, null
  br i1 %.not4018, label %.critedge4199, label %133, !prof !20

133:                                              ; preds = %127
  %134 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !21
  %135 = load ptr, ptr %130, align 8, !tbaa !22
  %136 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %135)
  br i1 %136, label %137, label %.critedge4199, !prof !16

.critedge4199:                                    ; preds = %127, %113, %133
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

137:                                              ; preds = %133
  %138 = load ptr, ptr %17, align 8, !tbaa !17
  %139 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %138, i64 %129
  %140 = getelementptr inbounds i8, ptr %139, i64 8
  %141 = load ptr, ptr %140, align 8, !tbaa !18
  %142 = getelementptr inbounds i8, ptr %139, i64 16
  %143 = load ptr, ptr %142, align 8, !tbaa !23
  tail call void %141(ptr noundef %143, i32 noundef %2, i32 noundef %120, i32 noundef 33765) #4
  %144 = add i32 %1, 5624
  %145 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %146 = zext i32 %145 to i64
  %147 = add nuw nsw i64 %146, 36
  %148 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %147)
  %149 = load i32, ptr %18, align 4, !tbaa !15
  %150 = icmp ult i32 %148, %149
  br i1 %150, label %151, label %.critedge4201, !prof !16

151:                                              ; preds = %137
  %152 = load ptr, ptr %17, align 8, !tbaa !17
  %153 = zext i32 %148 to i64
  %154 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %152, i64 %153
  %155 = getelementptr inbounds i8, ptr %154, i64 8
  %156 = load ptr, ptr %155, align 8, !tbaa !18
  %.not4019 = icmp eq ptr %156, null
  br i1 %.not4019, label %.critedge4201, label %157, !prof !20

157:                                              ; preds = %151
  %158 = load ptr, ptr %154, align 8, !tbaa !22
  %159 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %158)
  br i1 %159, label %160, label %.critedge4201, !prof !16

.critedge4201:                                    ; preds = %151, %137, %157
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

160:                                              ; preds = %157
  %161 = load ptr, ptr %17, align 8, !tbaa !17
  %162 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %161, i64 %153
  %163 = getelementptr inbounds i8, ptr %162, i64 8
  %164 = load ptr, ptr %163, align 8, !tbaa !18
  %165 = getelementptr inbounds i8, ptr %162, i64 16
  %166 = load ptr, ptr %165, align 8, !tbaa !23
  tail call void %164(ptr noundef %166, i32 noundef %2, i32 noundef %144, i32 noundef 33765) #4
  %167 = add i32 %1, 5632
  %168 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %169 = zext i32 %168 to i64
  %170 = add nuw nsw i64 %169, 36
  %171 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %170)
  %172 = load i32, ptr %18, align 4, !tbaa !15
  %173 = icmp ult i32 %171, %172
  br i1 %173, label %174, label %.critedge4203, !prof !16

174:                                              ; preds = %160
  %175 = load ptr, ptr %17, align 8, !tbaa !17
  %176 = zext i32 %171 to i64
  %177 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %175, i64 %176
  %178 = getelementptr inbounds i8, ptr %177, i64 8
  %179 = load ptr, ptr %178, align 8, !tbaa !18
  %.not4020 = icmp eq ptr %179, null
  br i1 %.not4020, label %.critedge4203, label %180, !prof !20

180:                                              ; preds = %174
  %181 = load ptr, ptr %177, align 8, !tbaa !22
  %182 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %181)
  br i1 %182, label %183, label %.critedge4203, !prof !16

.critedge4203:                                    ; preds = %174, %160, %180
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

183:                                              ; preds = %180
  %184 = load ptr, ptr %17, align 8, !tbaa !17
  %185 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %184, i64 %176
  %186 = getelementptr inbounds i8, ptr %185, i64 8
  %187 = load ptr, ptr %186, align 8, !tbaa !18
  %188 = getelementptr inbounds i8, ptr %185, i64 16
  %189 = load ptr, ptr %188, align 8, !tbaa !23
  tail call void %187(ptr noundef %189, i32 noundef %2, i32 noundef %167, i32 noundef 33765) #4
  %190 = add i32 %1, 5640
  %191 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %192 = zext i32 %191 to i64
  %193 = add nuw nsw i64 %192, 36
  %194 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %193)
  %195 = load i32, ptr %18, align 4, !tbaa !15
  %196 = icmp ult i32 %194, %195
  br i1 %196, label %197, label %.critedge4205, !prof !16

197:                                              ; preds = %183
  %198 = load ptr, ptr %17, align 8, !tbaa !17
  %199 = zext i32 %194 to i64
  %200 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %198, i64 %199
  %201 = getelementptr inbounds i8, ptr %200, i64 8
  %202 = load ptr, ptr %201, align 8, !tbaa !18
  %.not4021 = icmp eq ptr %202, null
  br i1 %.not4021, label %.critedge4205, label %203, !prof !20

203:                                              ; preds = %197
  %204 = load ptr, ptr %200, align 8, !tbaa !22
  %205 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %204)
  br i1 %205, label %206, label %.critedge4205, !prof !16

.critedge4205:                                    ; preds = %197, %183, %203
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

206:                                              ; preds = %203
  %207 = load ptr, ptr %17, align 8, !tbaa !17
  %208 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %207, i64 %199
  %209 = getelementptr inbounds i8, ptr %208, i64 8
  %210 = load ptr, ptr %209, align 8, !tbaa !18
  %211 = getelementptr inbounds i8, ptr %208, i64 16
  %212 = load ptr, ptr %211, align 8, !tbaa !23
  tail call void %210(ptr noundef %212, i32 noundef %2, i32 noundef %190, i32 noundef 33765) #4
  %213 = add i32 %1, 5648
  %214 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %215 = zext i32 %214 to i64
  %216 = add nuw nsw i64 %215, 36
  %217 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %216)
  %218 = load i32, ptr %18, align 4, !tbaa !15
  %219 = icmp ult i32 %217, %218
  br i1 %219, label %220, label %.critedge4207, !prof !16

220:                                              ; preds = %206
  %221 = load ptr, ptr %17, align 8, !tbaa !17
  %222 = zext i32 %217 to i64
  %223 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %221, i64 %222
  %224 = getelementptr inbounds i8, ptr %223, i64 8
  %225 = load ptr, ptr %224, align 8, !tbaa !18
  %.not4022 = icmp eq ptr %225, null
  br i1 %.not4022, label %.critedge4207, label %226, !prof !20

226:                                              ; preds = %220
  %227 = load ptr, ptr %223, align 8, !tbaa !22
  %228 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %227)
  br i1 %228, label %229, label %.critedge4207, !prof !16

.critedge4207:                                    ; preds = %220, %206, %226
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

229:                                              ; preds = %226
  %230 = load ptr, ptr %17, align 8, !tbaa !17
  %231 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %230, i64 %222
  %232 = getelementptr inbounds i8, ptr %231, i64 8
  %233 = load ptr, ptr %232, align 8, !tbaa !18
  %234 = getelementptr inbounds i8, ptr %231, i64 16
  %235 = load ptr, ptr %234, align 8, !tbaa !23
  tail call void %233(ptr noundef %235, i32 noundef %2, i32 noundef %213, i32 noundef 33765) #4
  %236 = add i32 %1, 5656
  %237 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %238 = zext i32 %237 to i64
  %239 = add nuw nsw i64 %238, 36
  %240 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %239)
  %241 = load i32, ptr %18, align 4, !tbaa !15
  %242 = icmp ult i32 %240, %241
  br i1 %242, label %243, label %.critedge4209, !prof !16

243:                                              ; preds = %229
  %244 = load ptr, ptr %17, align 8, !tbaa !17
  %245 = zext i32 %240 to i64
  %246 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %244, i64 %245
  %247 = getelementptr inbounds i8, ptr %246, i64 8
  %248 = load ptr, ptr %247, align 8, !tbaa !18
  %.not4023 = icmp eq ptr %248, null
  br i1 %.not4023, label %.critedge4209, label %249, !prof !20

249:                                              ; preds = %243
  %250 = load ptr, ptr %246, align 8, !tbaa !22
  %251 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %250)
  br i1 %251, label %252, label %.critedge4209, !prof !16

.critedge4209:                                    ; preds = %243, %229, %249
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

252:                                              ; preds = %249
  %253 = load ptr, ptr %17, align 8, !tbaa !17
  %254 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %253, i64 %245
  %255 = getelementptr inbounds i8, ptr %254, i64 8
  %256 = load ptr, ptr %255, align 8, !tbaa !18
  %257 = getelementptr inbounds i8, ptr %254, i64 16
  %258 = load ptr, ptr %257, align 8, !tbaa !23
  tail call void %256(ptr noundef %258, i32 noundef %2, i32 noundef %236, i32 noundef 33765) #4
  %259 = add i32 %1, 5664
  %260 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %261 = zext i32 %260 to i64
  %262 = add nuw nsw i64 %261, 36
  %263 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %262)
  %264 = load i32, ptr %18, align 4, !tbaa !15
  %265 = icmp ult i32 %263, %264
  br i1 %265, label %266, label %.critedge4211, !prof !16

266:                                              ; preds = %252
  %267 = load ptr, ptr %17, align 8, !tbaa !17
  %268 = zext i32 %263 to i64
  %269 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %267, i64 %268
  %270 = getelementptr inbounds i8, ptr %269, i64 8
  %271 = load ptr, ptr %270, align 8, !tbaa !18
  %.not4024 = icmp eq ptr %271, null
  br i1 %.not4024, label %.critedge4211, label %272, !prof !20

272:                                              ; preds = %266
  %273 = load ptr, ptr %269, align 8, !tbaa !22
  %274 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %273)
  br i1 %274, label %275, label %.critedge4211, !prof !16

.critedge4211:                                    ; preds = %266, %252, %272
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

275:                                              ; preds = %272
  %276 = load ptr, ptr %17, align 8, !tbaa !17
  %277 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %276, i64 %268
  %278 = getelementptr inbounds i8, ptr %277, i64 8
  %279 = load ptr, ptr %278, align 8, !tbaa !18
  %280 = getelementptr inbounds i8, ptr %277, i64 16
  %281 = load ptr, ptr %280, align 8, !tbaa !23
  tail call void %279(ptr noundef %281, i32 noundef %2, i32 noundef %259, i32 noundef 33765) #4
  %282 = add i32 %1, 5672
  %283 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %284 = zext i32 %283 to i64
  %285 = add nuw nsw i64 %284, 36
  %286 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %285)
  %287 = load i32, ptr %18, align 4, !tbaa !15
  %288 = icmp ult i32 %286, %287
  br i1 %288, label %289, label %.critedge4213, !prof !16

289:                                              ; preds = %275
  %290 = load ptr, ptr %17, align 8, !tbaa !17
  %291 = zext i32 %286 to i64
  %292 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %290, i64 %291
  %293 = getelementptr inbounds i8, ptr %292, i64 8
  %294 = load ptr, ptr %293, align 8, !tbaa !18
  %.not4025 = icmp eq ptr %294, null
  br i1 %.not4025, label %.critedge4213, label %295, !prof !20

295:                                              ; preds = %289
  %296 = load ptr, ptr %292, align 8, !tbaa !22
  %297 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %296)
  br i1 %297, label %298, label %.critedge4213, !prof !16

.critedge4213:                                    ; preds = %289, %275, %295
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

298:                                              ; preds = %295
  %299 = load ptr, ptr %17, align 8, !tbaa !17
  %300 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %299, i64 %291
  %301 = getelementptr inbounds i8, ptr %300, i64 8
  %302 = load ptr, ptr %301, align 8, !tbaa !18
  %303 = getelementptr inbounds i8, ptr %300, i64 16
  %304 = load ptr, ptr %303, align 8, !tbaa !23
  tail call void %302(ptr noundef %304, i32 noundef %2, i32 noundef %282, i32 noundef 33765) #4
  %305 = add i32 %1, 696
  %306 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %307 = zext i32 %306 to i64
  %308 = add nuw nsw i64 %307, 36
  %309 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %308)
  %310 = load i32, ptr %18, align 4, !tbaa !15
  %311 = icmp ult i32 %309, %310
  br i1 %311, label %312, label %.critedge4215, !prof !16

312:                                              ; preds = %298
  %313 = load ptr, ptr %17, align 8, !tbaa !17
  %314 = zext i32 %309 to i64
  %315 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %313, i64 %314
  %316 = getelementptr inbounds i8, ptr %315, i64 8
  %317 = load ptr, ptr %316, align 8, !tbaa !18
  %.not4026 = icmp eq ptr %317, null
  br i1 %.not4026, label %.critedge4215, label %318, !prof !20

318:                                              ; preds = %312
  %319 = load ptr, ptr %315, align 8, !tbaa !22
  %320 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %319)
  br i1 %320, label %321, label %.critedge4215, !prof !16

.critedge4215:                                    ; preds = %312, %298, %318
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

321:                                              ; preds = %318
  %322 = load ptr, ptr %17, align 8, !tbaa !17
  %323 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %322, i64 %314
  %324 = getelementptr inbounds i8, ptr %323, i64 8
  %325 = load ptr, ptr %324, align 8, !tbaa !18
  %326 = getelementptr inbounds i8, ptr %323, i64 16
  %327 = load ptr, ptr %326, align 8, !tbaa !23
  tail call void %325(ptr noundef %327, i32 noundef %2, i32 noundef %305, i32 noundef 55785) #4
  %328 = add i32 %1, 704
  %329 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %330 = zext i32 %329 to i64
  %331 = add nuw nsw i64 %330, 36
  %332 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %331)
  %333 = load i32, ptr %18, align 4, !tbaa !15
  %334 = icmp ult i32 %332, %333
  br i1 %334, label %335, label %.critedge4217, !prof !16

335:                                              ; preds = %321
  %336 = load ptr, ptr %17, align 8, !tbaa !17
  %337 = zext i32 %332 to i64
  %338 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %336, i64 %337
  %339 = getelementptr inbounds i8, ptr %338, i64 8
  %340 = load ptr, ptr %339, align 8, !tbaa !18
  %.not4027 = icmp eq ptr %340, null
  br i1 %.not4027, label %.critedge4217, label %341, !prof !20

341:                                              ; preds = %335
  %342 = load ptr, ptr %338, align 8, !tbaa !22
  %343 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %342)
  br i1 %343, label %344, label %.critedge4217, !prof !16

.critedge4217:                                    ; preds = %335, %321, %341
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

344:                                              ; preds = %341
  %345 = load ptr, ptr %17, align 8, !tbaa !17
  %346 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %345, i64 %337
  %347 = getelementptr inbounds i8, ptr %346, i64 8
  %348 = load ptr, ptr %347, align 8, !tbaa !18
  %349 = getelementptr inbounds i8, ptr %346, i64 16
  %350 = load ptr, ptr %349, align 8, !tbaa !23
  tail call void %348(ptr noundef %350, i32 noundef %2, i32 noundef %328, i32 noundef 55823) #4
  %351 = add i32 %1, 712
  %352 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %353 = zext i32 %352 to i64
  %354 = add nuw nsw i64 %353, 36
  %355 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %354)
  %356 = load i32, ptr %18, align 4, !tbaa !15
  %357 = icmp ult i32 %355, %356
  br i1 %357, label %358, label %.critedge4219, !prof !16

358:                                              ; preds = %344
  %359 = load ptr, ptr %17, align 8, !tbaa !17
  %360 = zext i32 %355 to i64
  %361 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %359, i64 %360
  %362 = getelementptr inbounds i8, ptr %361, i64 8
  %363 = load ptr, ptr %362, align 8, !tbaa !18
  %.not4028 = icmp eq ptr %363, null
  br i1 %.not4028, label %.critedge4219, label %364, !prof !20

364:                                              ; preds = %358
  %365 = load ptr, ptr %361, align 8, !tbaa !22
  %366 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %365)
  br i1 %366, label %367, label %.critedge4219, !prof !16

.critedge4219:                                    ; preds = %358, %344, %364
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

367:                                              ; preds = %364
  %368 = load ptr, ptr %17, align 8, !tbaa !17
  %369 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %368, i64 %360
  %370 = getelementptr inbounds i8, ptr %369, i64 8
  %371 = load ptr, ptr %370, align 8, !tbaa !18
  %372 = getelementptr inbounds i8, ptr %369, i64 16
  %373 = load ptr, ptr %372, align 8, !tbaa !23
  tail call void %371(ptr noundef %373, i32 noundef %2, i32 noundef %351, i32 noundef 55765) #4
  %374 = add i32 %1, 720
  %375 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %376 = zext i32 %375 to i64
  %377 = add nuw nsw i64 %376, 36
  %378 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %377)
  %379 = load i32, ptr %18, align 4, !tbaa !15
  %380 = icmp ult i32 %378, %379
  br i1 %380, label %381, label %.critedge4221, !prof !16

381:                                              ; preds = %367
  %382 = load ptr, ptr %17, align 8, !tbaa !17
  %383 = zext i32 %378 to i64
  %384 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %382, i64 %383
  %385 = getelementptr inbounds i8, ptr %384, i64 8
  %386 = load ptr, ptr %385, align 8, !tbaa !18
  %.not4029 = icmp eq ptr %386, null
  br i1 %.not4029, label %.critedge4221, label %387, !prof !20

387:                                              ; preds = %381
  %388 = load ptr, ptr %384, align 8, !tbaa !22
  %389 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %388)
  br i1 %389, label %390, label %.critedge4221, !prof !16

.critedge4221:                                    ; preds = %381, %367, %387
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

390:                                              ; preds = %387
  %391 = load ptr, ptr %17, align 8, !tbaa !17
  %392 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %391, i64 %383
  %393 = getelementptr inbounds i8, ptr %392, i64 8
  %394 = load ptr, ptr %393, align 8, !tbaa !18
  %395 = getelementptr inbounds i8, ptr %392, i64 16
  %396 = load ptr, ptr %395, align 8, !tbaa !23
  tail call void %394(ptr noundef %396, i32 noundef %2, i32 noundef %374, i32 noundef 55793) #4
  %397 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %398 = zext i32 %397 to i64
  %399 = add nuw nsw i64 %398, 12
  %400 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %399)
  %401 = load i32, ptr %18, align 4, !tbaa !15
  %402 = icmp ult i32 %400, %401
  br i1 %402, label %403, label %.critedge4223, !prof !16

403:                                              ; preds = %390
  %404 = load ptr, ptr %17, align 8, !tbaa !17
  %405 = zext i32 %400 to i64
  %406 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %404, i64 %405
  %407 = getelementptr inbounds i8, ptr %406, i64 8
  %408 = load ptr, ptr %407, align 8, !tbaa !18
  %.not4030 = icmp eq ptr %408, null
  br i1 %.not4030, label %.critedge4223, label %409, !prof !20

409:                                              ; preds = %403
  %410 = load ptr, ptr %406, align 8, !tbaa !22
  %411 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %410)
  br i1 %411, label %412, label %.critedge4223, !prof !16

.critedge4223:                                    ; preds = %403, %390, %409
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

412:                                              ; preds = %409
  %413 = load ptr, ptr %17, align 8, !tbaa !17
  %414 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %413, i64 %405
  %415 = getelementptr inbounds i8, ptr %414, i64 8
  %416 = load ptr, ptr %415, align 8, !tbaa !18
  %417 = getelementptr inbounds i8, ptr %414, i64 16
  %418 = load ptr, ptr %417, align 8, !tbaa !23
  tail call void %416(ptr noundef %418, i32 noundef %2) #4
  %419 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %420 = add i32 %1, 5328
  %421 = zext i32 %420 to i64
  %422 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %421)
  %423 = sub i64 %419, %97
  %424 = sitofp i64 %423 to double
  %425 = fdiv double %424, 1.000000e+09
  %426 = fadd double %422, %425
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %421, double noundef %426)
  %427 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %428 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %429 = zext i32 %428 to i64
  %430 = add nuw nsw i64 %429, 8
  %431 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %430)
  %432 = load i32, ptr %18, align 4, !tbaa !15
  %433 = icmp ult i32 %431, %432
  br i1 %433, label %434, label %.critedge4225, !prof !16

434:                                              ; preds = %412
  %435 = load ptr, ptr %17, align 8, !tbaa !17
  %436 = zext i32 %431 to i64
  %437 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %435, i64 %436
  %438 = getelementptr inbounds i8, ptr %437, i64 8
  %439 = load ptr, ptr %438, align 8, !tbaa !18
  %.not4031 = icmp eq ptr %439, null
  br i1 %.not4031, label %.critedge4225, label %440, !prof !20

440:                                              ; preds = %434
  %441 = load ptr, ptr %437, align 8, !tbaa !22
  %442 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %441)
  br i1 %442, label %443, label %.critedge4225, !prof !16

.critedge4225:                                    ; preds = %434, %412, %440
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

443:                                              ; preds = %440
  %444 = load ptr, ptr %17, align 8, !tbaa !17
  %445 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %444, i64 %436
  %446 = getelementptr inbounds i8, ptr %445, i64 8
  %447 = load ptr, ptr %446, align 8, !tbaa !18
  %448 = getelementptr inbounds i8, ptr %445, i64 16
  %449 = load ptr, ptr %448, align 8, !tbaa !23
  tail call void %447(ptr noundef %449, i32 noundef %2, i32 noundef 2) #4
  %450 = add i32 %1, 688
  %451 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %452 = zext i32 %451 to i64
  %453 = add nuw nsw i64 %452, 36
  %454 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %453)
  %455 = load i32, ptr %18, align 4, !tbaa !15
  %456 = icmp ult i32 %454, %455
  br i1 %456, label %457, label %.critedge4227, !prof !16

457:                                              ; preds = %443
  %458 = load ptr, ptr %17, align 8, !tbaa !17
  %459 = zext i32 %454 to i64
  %460 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %458, i64 %459
  %461 = getelementptr inbounds i8, ptr %460, i64 8
  %462 = load ptr, ptr %461, align 8, !tbaa !18
  %.not4032 = icmp eq ptr %462, null
  br i1 %.not4032, label %.critedge4227, label %463, !prof !20

463:                                              ; preds = %457
  %464 = load ptr, ptr %460, align 8, !tbaa !22
  %465 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %464)
  br i1 %465, label %466, label %.critedge4227, !prof !16

.critedge4227:                                    ; preds = %457, %443, %463
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

466:                                              ; preds = %463
  %467 = load ptr, ptr %17, align 8, !tbaa !17
  %468 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %467, i64 %459
  %469 = getelementptr inbounds i8, ptr %468, i64 8
  %470 = load ptr, ptr %469, align 8, !tbaa !18
  %471 = getelementptr inbounds i8, ptr %468, i64 16
  %472 = load ptr, ptr %471, align 8, !tbaa !23
  tail call void %470(ptr noundef %472, i32 noundef %2, i32 noundef %450, i32 noundef 0) #4
  %473 = add i32 %1, 5564
  %474 = zext i32 %473 to i64
  %475 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %474)
  %476 = add i32 %1, 5560
  %.not4033 = icmp eq i32 %475, %476
  br i1 %.not4033, label %.loopexit4503, label %.preheader4502

.preheader4502:                                   ; preds = %466
  %.not4041 = icmp eq i32 %3, 0
  br label %477

477:                                              ; preds = %.preheader4502, %.loopexit4497
  %.13828 = phi i32 [ %566, %.loopexit4497 ], [ %475, %.preheader4502 ]
  %478 = load i32, ptr %5, align 8, !tbaa !5
  %479 = add i32 %478, -16
  store i32 %479, ptr %5, align 8, !tbaa !5
  %480 = zext i32 %.13828 to i64
  %481 = add nuw nsw i64 %480, 84
  %482 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %481)
  %483 = add nuw nsw i64 %480, 96
  %484 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %483)
  %485 = shl i32 %484, 3
  %486 = add i32 %485, %482
  %487 = add nuw nsw i64 %480, 88
  %488 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %487)
  %.not4034 = icmp eq i32 %488, 0
  br i1 %.not4034, label %.loopexit4501, label %489

489:                                              ; preds = %477
  %.not4035 = icmp eq i32 %484, 0
  br i1 %.not4035, label %.loopexit4501, label %.preheader4500

.preheader4500:                                   ; preds = %489, %493
  %.03832 = phi i32 [ %494, %493 ], [ %482, %489 ]
  %490 = zext i32 %.03832 to i64
  %491 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %490)
  %492 = icmp ult i32 %491, -2
  br i1 %492, label %.loopexit4501, label %493

493:                                              ; preds = %.preheader4500
  %494 = add i32 %.03832, 8
  %.not4036 = icmp eq i32 %494, %486
  br i1 %.not4036, label %.loopexit4501, label %.preheader4500

.loopexit4501:                                    ; preds = %493, %.preheader4500, %489, %477
  %.13833 = phi i32 [ %486, %477 ], [ %482, %489 ], [ %486, %493 ], [ %.03832, %.preheader4500 ]
  %.0 = phi i32 [ %484, %477 ], [ 0, %489 ], [ %484, %.preheader4500 ], [ %484, %493 ]
  %495 = shl i32 %.0, 3
  %496 = add i32 %495, %482
  %.not4037 = icmp eq i32 %496, %.13833
  br i1 %.not4037, label %.loopexit4499, label %.preheader4498

.preheader4498:                                   ; preds = %.loopexit4501, %.loopexit4495
  %.23834 = phi i32 [ %.33835, %.loopexit4495 ], [ %.13833, %.loopexit4501 ]
  %497 = add i32 %.23834, 4
  %498 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %499 = zext i32 %498 to i64
  %500 = add nuw nsw i64 %499, 16
  %501 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %500)
  %502 = load i32, ptr %18, align 4, !tbaa !15
  %503 = icmp ult i32 %501, %502
  br i1 %503, label %504, label %.critedge4229, !prof !16

504:                                              ; preds = %.preheader4498
  %505 = load ptr, ptr %17, align 8, !tbaa !17
  %506 = zext i32 %501 to i64
  %507 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %505, i64 %506
  %508 = getelementptr inbounds i8, ptr %507, i64 8
  %509 = load ptr, ptr %508, align 8, !tbaa !18
  %.not4038 = icmp eq ptr %509, null
  br i1 %.not4038, label %.critedge4229, label %510, !prof !20

510:                                              ; preds = %504
  %511 = load ptr, ptr %507, align 8, !tbaa !22
  %512 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %511)
  br i1 %512, label %513, label %.critedge4229, !prof !16

.critedge4229:                                    ; preds = %504, %.preheader4498, %510
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

513:                                              ; preds = %510
  %514 = load ptr, ptr %17, align 8, !tbaa !17
  %515 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %514, i64 %506
  %516 = getelementptr inbounds i8, ptr %515, i64 8
  %517 = load ptr, ptr %516, align 8, !tbaa !18
  %518 = getelementptr inbounds i8, ptr %515, i64 16
  %519 = load ptr, ptr %518, align 8, !tbaa !23
  tail call void %517(ptr noundef %519, i32 noundef %2, i32 noundef %497) #4
  %520 = add i32 %.23834, 8
  %521 = icmp eq i32 %520, %486
  br i1 %521, label %.loopexit4495, label %.preheader4494

.preheader4494:                                   ; preds = %513, %525
  %.1 = phi i32 [ %526, %525 ], [ %520, %513 ]
  %522 = zext i32 %.1 to i64
  %523 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %522)
  %524 = icmp ult i32 %523, -2
  br i1 %524, label %.loopexit4495, label %525

525:                                              ; preds = %.preheader4494
  %526 = add i32 %.1, 8
  %.not4039 = icmp eq i32 %526, %486
  br i1 %.not4039, label %.loopexit4495, label %.preheader4494

.loopexit4495:                                    ; preds = %.preheader4494, %525, %513
  %.33835 = phi i32 [ %486, %513 ], [ %.1, %.preheader4494 ], [ %486, %525 ]
  %.not4040 = icmp eq i32 %.33835, %496
  br i1 %.not4040, label %.loopexit4499, label %.preheader4498

.loopexit4499:                                    ; preds = %.loopexit4495, %.loopexit4501
  br i1 %.not4041, label %.loopexit4497, label %527

527:                                              ; preds = %.loopexit4499
  %528 = add nuw nsw i64 %480, 12
  %529 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %528)
  %530 = add nuw nsw i64 %480, 16
  %531 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %530)
  %532 = icmp eq i32 %529, %531
  br i1 %532, label %.loopexit4497, label %.preheader4496

.preheader4496:                                   ; preds = %527
  %533 = zext i32 %479 to i64
  %534 = add nuw nsw i64 %533, 12
  %535 = add i32 %478, -4
  br label %536

536:                                              ; preds = %.preheader4496, %563
  %.2 = phi i32 [ %564, %563 ], [ %529, %.preheader4496 ]
  %537 = zext i32 %.2 to i64
  %538 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %537)
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %534, i32 noundef %538)
  %539 = icmp ult i32 %538, 536870910
  br i1 %539, label %540, label %563

540:                                              ; preds = %536
  %541 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %542 = zext i32 %541 to i64
  %543 = add nuw nsw i64 %542, 28
  %544 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %543)
  %545 = load i32, ptr %18, align 4, !tbaa !15
  %546 = icmp ult i32 %544, %545
  br i1 %546, label %547, label %.critedge4231, !prof !16

547:                                              ; preds = %540
  %548 = load ptr, ptr %17, align 8, !tbaa !17
  %549 = zext i32 %544 to i64
  %550 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %548, i64 %549
  %551 = getelementptr inbounds i8, ptr %550, i64 8
  %552 = load ptr, ptr %551, align 8, !tbaa !18
  %.not4042 = icmp eq ptr %552, null
  br i1 %.not4042, label %.critedge4231, label %553, !prof !20

553:                                              ; preds = %547
  %554 = load ptr, ptr %550, align 8, !tbaa !22
  %555 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %554)
  br i1 %555, label %556, label %.critedge4231, !prof !16

.critedge4231:                                    ; preds = %547, %540, %553
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

556:                                              ; preds = %553
  %557 = load ptr, ptr %17, align 8, !tbaa !17
  %558 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %557, i64 %549
  %559 = getelementptr inbounds i8, ptr %558, i64 8
  %560 = load ptr, ptr %559, align 8, !tbaa !18
  %561 = getelementptr inbounds i8, ptr %558, i64 16
  %562 = load ptr, ptr %561, align 8, !tbaa !23
  tail call void %560(ptr noundef %562, i32 noundef %2, i32 noundef %535) #4
  br label %563

563:                                              ; preds = %556, %536
  %564 = add i32 %.2, 4
  %.not4043 = icmp eq i32 %564, %531
  br i1 %.not4043, label %.loopexit4497, label %536

.loopexit4497:                                    ; preds = %563, %527, %.loopexit4499
  store i32 %478, ptr %5, align 8, !tbaa !5
  %565 = add nuw nsw i64 %480, 4
  %566 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %565)
  %.not4044 = icmp eq i32 %566, %476
  br i1 %.not4044, label %.loopexit4503, label %477

.loopexit4503:                                    ; preds = %.loopexit4497, %466
  %567 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %568 = zext i32 %567 to i64
  %569 = add nuw nsw i64 %568, 12
  %570 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %569)
  %571 = load i32, ptr %18, align 4, !tbaa !15
  %572 = icmp ult i32 %570, %571
  br i1 %572, label %573, label %.critedge4233, !prof !16

573:                                              ; preds = %.loopexit4503
  %574 = load ptr, ptr %17, align 8, !tbaa !17
  %575 = zext i32 %570 to i64
  %576 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %574, i64 %575
  %577 = getelementptr inbounds i8, ptr %576, i64 8
  %578 = load ptr, ptr %577, align 8, !tbaa !18
  %.not4045 = icmp eq ptr %578, null
  br i1 %.not4045, label %.critedge4233, label %579, !prof !20

579:                                              ; preds = %573
  %580 = load ptr, ptr %576, align 8, !tbaa !22
  %581 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %580)
  br i1 %581, label %582, label %.critedge4233, !prof !16

.critedge4233:                                    ; preds = %573, %.loopexit4503, %579
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

582:                                              ; preds = %579
  %583 = load ptr, ptr %17, align 8, !tbaa !17
  %584 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %583, i64 %575
  %585 = getelementptr inbounds i8, ptr %584, i64 8
  %586 = load ptr, ptr %585, align 8, !tbaa !18
  %587 = getelementptr inbounds i8, ptr %584, i64 16
  %588 = load ptr, ptr %587, align 8, !tbaa !23
  tail call void %586(ptr noundef %588, i32 noundef %2) #4
  %589 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %590 = add i32 %1, 5336
  %591 = zext i32 %590 to i64
  %592 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %591)
  %593 = sub i64 %589, %427
  %594 = sitofp i64 %593 to double
  %595 = fdiv double %594, 1.000000e+09
  %596 = fadd double %592, %595
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %591, double noundef %596)
  %597 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %598 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %599 = zext i32 %598 to i64
  %600 = add nuw nsw i64 %599, 8
  %601 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %600)
  %602 = load i32, ptr %18, align 4, !tbaa !15
  %603 = icmp ult i32 %601, %602
  br i1 %603, label %604, label %.critedge4235, !prof !16

604:                                              ; preds = %582
  %605 = load ptr, ptr %17, align 8, !tbaa !17
  %606 = zext i32 %601 to i64
  %607 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %605, i64 %606
  %608 = getelementptr inbounds i8, ptr %607, i64 8
  %609 = load ptr, ptr %608, align 8, !tbaa !18
  %.not4046 = icmp eq ptr %609, null
  br i1 %.not4046, label %.critedge4235, label %610, !prof !20

610:                                              ; preds = %604
  %611 = load ptr, ptr %607, align 8, !tbaa !22
  %612 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %611)
  br i1 %612, label %613, label %.critedge4235, !prof !16

.critedge4235:                                    ; preds = %604, %582, %610
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

613:                                              ; preds = %610
  %614 = load ptr, ptr %17, align 8, !tbaa !17
  %615 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %614, i64 %606
  %616 = getelementptr inbounds i8, ptr %615, i64 8
  %617 = load ptr, ptr %616, align 8, !tbaa !18
  %618 = getelementptr inbounds i8, ptr %615, i64 16
  %619 = load ptr, ptr %618, align 8, !tbaa !23
  tail call void %617(ptr noundef %619, i32 noundef %2, i32 noundef 3) #4
  %.not4047 = icmp eq i32 %3, 0
  br i1 %.not4047, label %.loopexit4493, label %620

620:                                              ; preds = %613
  %621 = add nuw nsw i64 %10, 5688
  %622 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %621)
  %623 = add i32 %1, 5692
  %624 = zext i32 %623 to i64
  %625 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %624)
  %626 = icmp eq i32 %622, %625
  br i1 %626, label %.loopexit4493, label %.preheader4492

.preheader4492:                                   ; preds = %620, %642
  %.23829 = phi i32 [ %649, %642 ], [ %622, %620 ]
  %627 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %628 = zext i32 %627 to i64
  %629 = add nuw nsw i64 %628, 36
  %630 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %629)
  %631 = load i32, ptr %18, align 4, !tbaa !15
  %632 = icmp ult i32 %630, %631
  br i1 %632, label %633, label %.critedge4237, !prof !16

633:                                              ; preds = %.preheader4492
  %634 = load ptr, ptr %17, align 8, !tbaa !17
  %635 = zext i32 %630 to i64
  %636 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %634, i64 %635
  %637 = getelementptr inbounds i8, ptr %636, i64 8
  %638 = load ptr, ptr %637, align 8, !tbaa !18
  %.not4048 = icmp eq ptr %638, null
  br i1 %.not4048, label %.critedge4237, label %639, !prof !20

639:                                              ; preds = %633
  %640 = load ptr, ptr %636, align 8, !tbaa !22
  %641 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %640)
  br i1 %641, label %642, label %.critedge4237, !prof !16

.critedge4237:                                    ; preds = %633, %.preheader4492, %639
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

642:                                              ; preds = %639
  %643 = load ptr, ptr %17, align 8, !tbaa !17
  %644 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %643, i64 %635
  %645 = getelementptr inbounds i8, ptr %644, i64 8
  %646 = load ptr, ptr %645, align 8, !tbaa !18
  %647 = getelementptr inbounds i8, ptr %644, i64 16
  %648 = load ptr, ptr %647, align 8, !tbaa !23
  tail call void %646(ptr noundef %648, i32 noundef %2, i32 noundef %.23829, i32 noundef 0) #4
  %649 = add i32 %.23829, 8
  %.not4049 = icmp eq i32 %649, %625
  br i1 %.not4049, label %.loopexit4493, label %.preheader4492

.loopexit4493:                                    ; preds = %642, %620, %613
  %650 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %651 = zext i32 %650 to i64
  %652 = add nuw nsw i64 %651, 12
  %653 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %652)
  %654 = load i32, ptr %18, align 4, !tbaa !15
  %655 = icmp ult i32 %653, %654
  br i1 %655, label %656, label %.critedge4239, !prof !16

656:                                              ; preds = %.loopexit4493
  %657 = load ptr, ptr %17, align 8, !tbaa !17
  %658 = zext i32 %653 to i64
  %659 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %657, i64 %658
  %660 = getelementptr inbounds i8, ptr %659, i64 8
  %661 = load ptr, ptr %660, align 8, !tbaa !18
  %.not4050 = icmp eq ptr %661, null
  br i1 %.not4050, label %.critedge4239, label %662, !prof !20

662:                                              ; preds = %656
  %663 = load ptr, ptr %659, align 8, !tbaa !22
  %664 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %663)
  br i1 %664, label %665, label %.critedge4239, !prof !16

.critedge4239:                                    ; preds = %656, %.loopexit4493, %662
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

665:                                              ; preds = %662
  %666 = load ptr, ptr %17, align 8, !tbaa !17
  %667 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %666, i64 %658
  %668 = getelementptr inbounds i8, ptr %667, i64 8
  %669 = load ptr, ptr %668, align 8, !tbaa !18
  %670 = getelementptr inbounds i8, ptr %667, i64 16
  %671 = load ptr, ptr %670, align 8, !tbaa !23
  tail call void %669(ptr noundef %671, i32 noundef %2) #4
  %672 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %673 = add i32 %1, 5344
  %674 = zext i32 %673 to i64
  %675 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %674)
  %676 = sub i64 %672, %597
  %677 = sitofp i64 %676 to double
  %678 = fdiv double %677, 1.000000e+09
  %679 = fadd double %675, %678
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %674, double noundef %679)
  %680 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %681 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %682 = zext i32 %681 to i64
  %683 = add nuw nsw i64 %682, 8
  %684 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %683)
  %685 = load i32, ptr %18, align 4, !tbaa !15
  %686 = icmp ult i32 %684, %685
  br i1 %686, label %687, label %.critedge4241, !prof !16

687:                                              ; preds = %665
  %688 = load ptr, ptr %17, align 8, !tbaa !17
  %689 = zext i32 %684 to i64
  %690 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %688, i64 %689
  %691 = getelementptr inbounds i8, ptr %690, i64 8
  %692 = load ptr, ptr %691, align 8, !tbaa !18
  %.not4051 = icmp eq ptr %692, null
  br i1 %.not4051, label %.critedge4241, label %693, !prof !20

693:                                              ; preds = %687
  %694 = load ptr, ptr %690, align 8, !tbaa !22
  %695 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %694)
  br i1 %695, label %696, label %.critedge4241, !prof !16

.critedge4241:                                    ; preds = %687, %665, %693
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

696:                                              ; preds = %693
  %697 = load ptr, ptr %17, align 8, !tbaa !17
  %698 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %697, i64 %689
  %699 = getelementptr inbounds i8, ptr %698, i64 8
  %700 = load ptr, ptr %699, align 8, !tbaa !18
  %701 = getelementptr inbounds i8, ptr %698, i64 16
  %702 = load ptr, ptr %701, align 8, !tbaa !23
  tail call void %700(ptr noundef %702, i32 noundef %2, i32 noundef 4) #4
  %703 = add nuw nsw i64 %10, 5700
  %704 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %703)
  %705 = add i32 %1, 5704
  %706 = zext i32 %705 to i64
  %707 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %706)
  %.not4052 = icmp eq i32 %704, %707
  br i1 %.not4052, label %.loopexit4491, label %.preheader4490

.preheader4490:                                   ; preds = %696, %723
  %.33830 = phi i32 [ %730, %723 ], [ %704, %696 ]
  %708 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %709 = zext i32 %708 to i64
  %710 = add nuw nsw i64 %709, 16
  %711 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %710)
  %712 = load i32, ptr %18, align 4, !tbaa !15
  %713 = icmp ult i32 %711, %712
  br i1 %713, label %714, label %.critedge4243, !prof !16

714:                                              ; preds = %.preheader4490
  %715 = load ptr, ptr %17, align 8, !tbaa !17
  %716 = zext i32 %711 to i64
  %717 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %715, i64 %716
  %718 = getelementptr inbounds i8, ptr %717, i64 8
  %719 = load ptr, ptr %718, align 8, !tbaa !18
  %.not4053 = icmp eq ptr %719, null
  br i1 %.not4053, label %.critedge4243, label %720, !prof !20

720:                                              ; preds = %714
  %721 = load ptr, ptr %717, align 8, !tbaa !22
  %722 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %721)
  br i1 %722, label %723, label %.critedge4243, !prof !16

.critedge4243:                                    ; preds = %714, %.preheader4490, %720
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

723:                                              ; preds = %720
  %724 = load ptr, ptr %17, align 8, !tbaa !17
  %725 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %724, i64 %716
  %726 = getelementptr inbounds i8, ptr %725, i64 8
  %727 = load ptr, ptr %726, align 8, !tbaa !18
  %728 = getelementptr inbounds i8, ptr %725, i64 16
  %729 = load ptr, ptr %728, align 8, !tbaa !23
  tail call void %727(ptr noundef %729, i32 noundef %2, i32 noundef %.33830) #4
  %730 = add i32 %.33830, 4
  %.not4054 = icmp eq i32 %730, %707
  br i1 %.not4054, label %.loopexit4491, label %.preheader4490

.loopexit4491:                                    ; preds = %723, %696
  %731 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %732 = zext i32 %731 to i64
  %733 = add nuw nsw i64 %732, 12
  %734 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %733)
  %735 = load i32, ptr %18, align 4, !tbaa !15
  %736 = icmp ult i32 %734, %735
  br i1 %736, label %737, label %.critedge4245, !prof !16

737:                                              ; preds = %.loopexit4491
  %738 = load ptr, ptr %17, align 8, !tbaa !17
  %739 = zext i32 %734 to i64
  %740 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %738, i64 %739
  %741 = getelementptr inbounds i8, ptr %740, i64 8
  %742 = load ptr, ptr %741, align 8, !tbaa !18
  %.not4055 = icmp eq ptr %742, null
  br i1 %.not4055, label %.critedge4245, label %743, !prof !20

743:                                              ; preds = %737
  %744 = load ptr, ptr %740, align 8, !tbaa !22
  %745 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %744)
  br i1 %745, label %746, label %.critedge4245, !prof !16

.critedge4245:                                    ; preds = %737, %.loopexit4491, %743
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

746:                                              ; preds = %743
  %747 = load ptr, ptr %17, align 8, !tbaa !17
  %748 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %747, i64 %739
  %749 = getelementptr inbounds i8, ptr %748, i64 8
  %750 = load ptr, ptr %749, align 8, !tbaa !18
  %751 = getelementptr inbounds i8, ptr %748, i64 16
  %752 = load ptr, ptr %751, align 8, !tbaa !23
  tail call void %750(ptr noundef %752, i32 noundef %2) #4
  %753 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %754 = add i32 %1, 5352
  %755 = zext i32 %754 to i64
  %756 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %755)
  %757 = sub i64 %753, %680
  %758 = sitofp i64 %757 to double
  %759 = fdiv double %758, 1.000000e+09
  %760 = fadd double %756, %759
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %755, double noundef %760)
  %761 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %762 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %763 = zext i32 %762 to i64
  %764 = add nuw nsw i64 %763, 8
  %765 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %764)
  %766 = load i32, ptr %18, align 4, !tbaa !15
  %767 = icmp ult i32 %765, %766
  br i1 %767, label %768, label %.critedge4247, !prof !16

768:                                              ; preds = %746
  %769 = load ptr, ptr %17, align 8, !tbaa !17
  %770 = zext i32 %765 to i64
  %771 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %769, i64 %770
  %772 = getelementptr inbounds i8, ptr %771, i64 8
  %773 = load ptr, ptr %772, align 8, !tbaa !18
  %.not4056 = icmp eq ptr %773, null
  br i1 %.not4056, label %.critedge4247, label %774, !prof !20

774:                                              ; preds = %768
  %775 = load ptr, ptr %771, align 8, !tbaa !22
  %776 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %775)
  br i1 %776, label %777, label %.critedge4247, !prof !16

.critedge4247:                                    ; preds = %768, %746, %774
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

777:                                              ; preds = %774
  %778 = load ptr, ptr %17, align 8, !tbaa !17
  %779 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %778, i64 %770
  %780 = getelementptr inbounds i8, ptr %779, i64 8
  %781 = load ptr, ptr %780, align 8, !tbaa !18
  %782 = getelementptr inbounds i8, ptr %779, i64 16
  %783 = load ptr, ptr %782, align 8, !tbaa !23
  tail call void %781(ptr noundef %783, i32 noundef %2, i32 noundef 5) #4
  %784 = add nuw nsw i64 %10, 5712
  %785 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %784)
  %786 = add i32 %1, 5716
  %787 = zext i32 %786 to i64
  %788 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %787)
  %.not4057 = icmp eq i32 %785, %788
  br i1 %.not4057, label %.loopexit4489, label %.preheader4488

.preheader4488:                                   ; preds = %777, %804
  %.43831 = phi i32 [ %811, %804 ], [ %785, %777 ]
  %789 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %790 = zext i32 %789 to i64
  %791 = add nuw nsw i64 %790, 16
  %792 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %791)
  %793 = load i32, ptr %18, align 4, !tbaa !15
  %794 = icmp ult i32 %792, %793
  br i1 %794, label %795, label %.critedge4249, !prof !16

795:                                              ; preds = %.preheader4488
  %796 = load ptr, ptr %17, align 8, !tbaa !17
  %797 = zext i32 %792 to i64
  %798 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %796, i64 %797
  %799 = getelementptr inbounds i8, ptr %798, i64 8
  %800 = load ptr, ptr %799, align 8, !tbaa !18
  %.not4058 = icmp eq ptr %800, null
  br i1 %.not4058, label %.critedge4249, label %801, !prof !20

801:                                              ; preds = %795
  %802 = load ptr, ptr %798, align 8, !tbaa !22
  %803 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %802)
  br i1 %803, label %804, label %.critedge4249, !prof !16

.critedge4249:                                    ; preds = %795, %.preheader4488, %801
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

804:                                              ; preds = %801
  %805 = load ptr, ptr %17, align 8, !tbaa !17
  %806 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %805, i64 %797
  %807 = getelementptr inbounds i8, ptr %806, i64 8
  %808 = load ptr, ptr %807, align 8, !tbaa !18
  %809 = getelementptr inbounds i8, ptr %806, i64 16
  %810 = load ptr, ptr %809, align 8, !tbaa !23
  tail call void %808(ptr noundef %810, i32 noundef %2, i32 noundef %.43831) #4
  %811 = add i32 %.43831, 4
  %.not4059 = icmp eq i32 %811, %788
  br i1 %.not4059, label %.loopexit4489, label %.preheader4488

.loopexit4489:                                    ; preds = %804, %777
  %812 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %813 = zext i32 %812 to i64
  %814 = add nuw nsw i64 %813, 12
  %815 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %814)
  %816 = load i32, ptr %18, align 4, !tbaa !15
  %817 = icmp ult i32 %815, %816
  br i1 %817, label %818, label %.critedge4251, !prof !16

818:                                              ; preds = %.loopexit4489
  %819 = load ptr, ptr %17, align 8, !tbaa !17
  %820 = zext i32 %815 to i64
  %821 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %819, i64 %820
  %822 = getelementptr inbounds i8, ptr %821, i64 8
  %823 = load ptr, ptr %822, align 8, !tbaa !18
  %.not4060 = icmp eq ptr %823, null
  br i1 %.not4060, label %.critedge4251, label %824, !prof !20

824:                                              ; preds = %818
  %825 = load ptr, ptr %821, align 8, !tbaa !22
  %826 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %825)
  br i1 %826, label %827, label %.critedge4251, !prof !16

.critedge4251:                                    ; preds = %818, %.loopexit4489, %824
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

827:                                              ; preds = %824
  %828 = load ptr, ptr %17, align 8, !tbaa !17
  %829 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %828, i64 %820
  %830 = getelementptr inbounds i8, ptr %829, i64 8
  %831 = load ptr, ptr %830, align 8, !tbaa !18
  %832 = getelementptr inbounds i8, ptr %829, i64 16
  %833 = load ptr, ptr %832, align 8, !tbaa !23
  tail call void %831(ptr noundef %833, i32 noundef %2) #4
  %834 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %835 = add i32 %1, 5360
  %836 = zext i32 %835 to i64
  %837 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %836)
  %838 = sub i64 %834, %761
  %839 = sitofp i64 %838 to double
  %840 = fdiv double %839, 1.000000e+09
  %841 = fadd double %837, %840
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %836, double noundef %841)
  %842 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %843 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %844 = zext i32 %843 to i64
  %845 = add nuw nsw i64 %844, 8
  %846 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %845)
  %847 = load i32, ptr %18, align 4, !tbaa !15
  %848 = icmp ult i32 %846, %847
  br i1 %848, label %849, label %.critedge4253, !prof !16

849:                                              ; preds = %827
  %850 = load ptr, ptr %17, align 8, !tbaa !17
  %851 = zext i32 %846 to i64
  %852 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %850, i64 %851
  %853 = getelementptr inbounds i8, ptr %852, i64 8
  %854 = load ptr, ptr %853, align 8, !tbaa !18
  %.not4061 = icmp eq ptr %854, null
  br i1 %.not4061, label %.critedge4253, label %855, !prof !20

855:                                              ; preds = %849
  %856 = load ptr, ptr %852, align 8, !tbaa !22
  %857 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %856)
  br i1 %857, label %858, label %.critedge4253, !prof !16

.critedge4253:                                    ; preds = %849, %827, %855
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

858:                                              ; preds = %855
  %859 = load ptr, ptr %17, align 8, !tbaa !17
  %860 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %859, i64 %851
  %861 = getelementptr inbounds i8, ptr %860, i64 8
  %862 = load ptr, ptr %861, align 8, !tbaa !18
  %863 = getelementptr inbounds i8, ptr %860, i64 16
  %864 = load ptr, ptr %863, align 8, !tbaa !23
  tail call void %862(ptr noundef %864, i32 noundef %2, i32 noundef 6) #4
  %865 = add i32 %1, 5732
  %866 = zext i32 %865 to i64
  %867 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %866)
  %868 = add i32 %1, 5736
  %869 = zext i32 %868 to i64
  %870 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %869)
  %871 = icmp eq i32 %867, %870
  br i1 %871, label %.loopexit4487, label %872

872:                                              ; preds = %858
  %873 = add i32 %1, 5744
  %874 = zext i32 %873 to i64
  %875 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %874)
  %876 = lshr i32 %875, 8
  %877 = and i32 %876, 16777212
  %878 = add i32 %877, %867
  %879 = zext i32 %878 to i64
  %880 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %879)
  %881 = shl i32 %875, 2
  %882 = and i32 %881, 4092
  %883 = add i32 %882, %880
  %884 = add i32 %1, 5748
  %885 = zext i32 %884 to i64
  %886 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %885)
  %887 = add i32 %886, %875
  %888 = lshr i32 %887, 8
  %889 = and i32 %888, 16777212
  %890 = add i32 %889, %867
  %891 = zext i32 %890 to i64
  %892 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %891)
  %893 = shl i32 %887, 2
  %894 = and i32 %893, 4092
  %895 = add i32 %894, %892
  %896 = icmp eq i32 %883, %895
  br i1 %896, label %.loopexit4487, label %.preheader4486

.preheader4486:                                   ; preds = %872, %928
  %.5 = phi i32 [ %.6, %928 ], [ %883, %872 ]
  %.03821 = phi i32 [ %.13822, %928 ], [ %878, %872 ]
  %897 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %898 = zext i32 %897 to i64
  %899 = add nuw nsw i64 %898, 16
  %900 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %899)
  %901 = load i32, ptr %18, align 4, !tbaa !15
  %902 = icmp ult i32 %900, %901
  br i1 %902, label %903, label %.critedge4255, !prof !16

903:                                              ; preds = %.preheader4486
  %904 = load ptr, ptr %17, align 8, !tbaa !17
  %905 = zext i32 %900 to i64
  %906 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %904, i64 %905
  %907 = getelementptr inbounds i8, ptr %906, i64 8
  %908 = load ptr, ptr %907, align 8, !tbaa !18
  %.not4062 = icmp eq ptr %908, null
  br i1 %.not4062, label %.critedge4255, label %909, !prof !20

909:                                              ; preds = %903
  %910 = load ptr, ptr %906, align 8, !tbaa !22
  %911 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %910)
  br i1 %911, label %912, label %.critedge4255, !prof !16

.critedge4255:                                    ; preds = %903, %.preheader4486, %909
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

912:                                              ; preds = %909
  %913 = load ptr, ptr %17, align 8, !tbaa !17
  %914 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %913, i64 %905
  %915 = getelementptr inbounds i8, ptr %914, i64 8
  %916 = load ptr, ptr %915, align 8, !tbaa !18
  %917 = getelementptr inbounds i8, ptr %914, i64 16
  %918 = load ptr, ptr %917, align 8, !tbaa !23
  tail call void %916(ptr noundef %918, i32 noundef %2, i32 noundef %.5) #4
  %919 = add i32 %.5, 4
  %920 = zext i32 %.03821 to i64
  %921 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %920)
  %922 = sub i32 %919, %921
  %923 = icmp eq i32 %922, 4096
  br i1 %923, label %924, label %928

924:                                              ; preds = %912
  %925 = add nuw nsw i64 %920, 4
  %926 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %925)
  %927 = add i32 %.03821, 4
  br label %928

928:                                              ; preds = %924, %912
  %.6 = phi i32 [ %926, %924 ], [ %919, %912 ]
  %.13822 = phi i32 [ %927, %924 ], [ %.03821, %912 ]
  %.not4063 = icmp eq i32 %895, %.6
  br i1 %.not4063, label %.loopexit4487, label %.preheader4486

.loopexit4487:                                    ; preds = %928, %872, %858
  %929 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %930 = zext i32 %929 to i64
  %931 = add nuw nsw i64 %930, 12
  %932 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %931)
  %933 = load i32, ptr %18, align 4, !tbaa !15
  %934 = icmp ult i32 %932, %933
  br i1 %934, label %935, label %.critedge4257, !prof !16

935:                                              ; preds = %.loopexit4487
  %936 = load ptr, ptr %17, align 8, !tbaa !17
  %937 = zext i32 %932 to i64
  %938 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %936, i64 %937
  %939 = getelementptr inbounds i8, ptr %938, i64 8
  %940 = load ptr, ptr %939, align 8, !tbaa !18
  %.not4064 = icmp eq ptr %940, null
  br i1 %.not4064, label %.critedge4257, label %941, !prof !20

941:                                              ; preds = %935
  %942 = load ptr, ptr %938, align 8, !tbaa !22
  %943 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %942)
  br i1 %943, label %944, label %.critedge4257, !prof !16

.critedge4257:                                    ; preds = %935, %.loopexit4487, %941
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

944:                                              ; preds = %941
  %945 = load ptr, ptr %17, align 8, !tbaa !17
  %946 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %945, i64 %937
  %947 = getelementptr inbounds i8, ptr %946, i64 8
  %948 = load ptr, ptr %947, align 8, !tbaa !18
  %949 = getelementptr inbounds i8, ptr %946, i64 16
  %950 = load ptr, ptr %949, align 8, !tbaa !23
  tail call void %948(ptr noundef %950, i32 noundef %2) #4
  %951 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %952 = add i32 %1, 5368
  %953 = zext i32 %952 to i64
  %954 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %953)
  %955 = sub i64 %951, %842
  %956 = sitofp i64 %955 to double
  %957 = fdiv double %956, 1.000000e+09
  %958 = fadd double %954, %957
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %953, double noundef %958)
  %959 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %960 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %961 = zext i32 %960 to i64
  %962 = add nuw nsw i64 %961, 8
  %963 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %962)
  %964 = load i32, ptr %18, align 4, !tbaa !15
  %965 = icmp ult i32 %963, %964
  br i1 %965, label %966, label %.critedge4259, !prof !16

966:                                              ; preds = %944
  %967 = load ptr, ptr %17, align 8, !tbaa !17
  %968 = zext i32 %963 to i64
  %969 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %967, i64 %968
  %970 = getelementptr inbounds i8, ptr %969, i64 8
  %971 = load ptr, ptr %970, align 8, !tbaa !18
  %.not4065 = icmp eq ptr %971, null
  br i1 %.not4065, label %.critedge4259, label %972, !prof !20

972:                                              ; preds = %966
  %973 = load ptr, ptr %969, align 8, !tbaa !22
  %974 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %973)
  br i1 %974, label %975, label %.critedge4259, !prof !16

.critedge4259:                                    ; preds = %966, %944, %972
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

975:                                              ; preds = %972
  %976 = load ptr, ptr %17, align 8, !tbaa !17
  %977 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %976, i64 %968
  %978 = getelementptr inbounds i8, ptr %977, i64 8
  %979 = load ptr, ptr %978, align 8, !tbaa !18
  %980 = getelementptr inbounds i8, ptr %977, i64 16
  %981 = load ptr, ptr %980, align 8, !tbaa !23
  tail call void %979(ptr noundef %981, i32 noundef %2, i32 noundef 7) #4
  %982 = add i32 %1, 16
  %983 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %984 = zext i32 %983 to i64
  %985 = add nuw nsw i64 %984, 36
  %986 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %985)
  %987 = load i32, ptr %18, align 4, !tbaa !15
  %988 = icmp ult i32 %986, %987
  br i1 %988, label %989, label %.critedge4261, !prof !16

989:                                              ; preds = %975
  %990 = load ptr, ptr %17, align 8, !tbaa !17
  %991 = zext i32 %986 to i64
  %992 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %990, i64 %991
  %993 = getelementptr inbounds i8, ptr %992, i64 8
  %994 = load ptr, ptr %993, align 8, !tbaa !18
  %.not4066 = icmp eq ptr %994, null
  br i1 %.not4066, label %.critedge4261, label %995, !prof !20

995:                                              ; preds = %989
  %996 = load ptr, ptr %992, align 8, !tbaa !22
  %997 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %996)
  br i1 %997, label %998, label %.critedge4261, !prof !16

.critedge4261:                                    ; preds = %989, %975, %995
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

998:                                              ; preds = %995
  %999 = load ptr, ptr %17, align 8, !tbaa !17
  %1000 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %999, i64 %991
  %1001 = getelementptr inbounds i8, ptr %1000, i64 8
  %1002 = load ptr, ptr %1001, align 8, !tbaa !18
  %1003 = getelementptr inbounds i8, ptr %1000, i64 16
  %1004 = load ptr, ptr %1003, align 8, !tbaa !23
  tail call void %1002(ptr noundef %1004, i32 noundef %2, i32 noundef %982, i32 noundef 48121) #4
  %1005 = add i32 %1, 24
  %1006 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1007 = zext i32 %1006 to i64
  %1008 = add nuw nsw i64 %1007, 36
  %1009 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1008)
  %1010 = load i32, ptr %18, align 4, !tbaa !15
  %1011 = icmp ult i32 %1009, %1010
  br i1 %1011, label %1012, label %.critedge4263, !prof !16

1012:                                             ; preds = %998
  %1013 = load ptr, ptr %17, align 8, !tbaa !17
  %1014 = zext i32 %1009 to i64
  %1015 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1013, i64 %1014
  %1016 = getelementptr inbounds i8, ptr %1015, i64 8
  %1017 = load ptr, ptr %1016, align 8, !tbaa !18
  %.not4067 = icmp eq ptr %1017, null
  br i1 %.not4067, label %.critedge4263, label %1018, !prof !20

1018:                                             ; preds = %1012
  %1019 = load ptr, ptr %1015, align 8, !tbaa !22
  %1020 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1019)
  br i1 %1020, label %1021, label %.critedge4263, !prof !16

.critedge4263:                                    ; preds = %1012, %998, %1018
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1021:                                             ; preds = %1018
  %1022 = load ptr, ptr %17, align 8, !tbaa !17
  %1023 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1022, i64 %1014
  %1024 = getelementptr inbounds i8, ptr %1023, i64 8
  %1025 = load ptr, ptr %1024, align 8, !tbaa !18
  %1026 = getelementptr inbounds i8, ptr %1023, i64 16
  %1027 = load ptr, ptr %1026, align 8, !tbaa !23
  tail call void %1025(ptr noundef %1027, i32 noundef %2, i32 noundef %1005, i32 noundef 36477) #4
  %1028 = add i32 %1, 32
  %1029 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1030 = zext i32 %1029 to i64
  %1031 = add nuw nsw i64 %1030, 36
  %1032 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1031)
  %1033 = load i32, ptr %18, align 4, !tbaa !15
  %1034 = icmp ult i32 %1032, %1033
  br i1 %1034, label %1035, label %.critedge4265, !prof !16

1035:                                             ; preds = %1021
  %1036 = load ptr, ptr %17, align 8, !tbaa !17
  %1037 = zext i32 %1032 to i64
  %1038 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1036, i64 %1037
  %1039 = getelementptr inbounds i8, ptr %1038, i64 8
  %1040 = load ptr, ptr %1039, align 8, !tbaa !18
  %.not4068 = icmp eq ptr %1040, null
  br i1 %.not4068, label %.critedge4265, label %1041, !prof !20

1041:                                             ; preds = %1035
  %1042 = load ptr, ptr %1038, align 8, !tbaa !22
  %1043 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1042)
  br i1 %1043, label %1044, label %.critedge4265, !prof !16

.critedge4265:                                    ; preds = %1035, %1021, %1041
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1044:                                             ; preds = %1041
  %1045 = load ptr, ptr %17, align 8, !tbaa !17
  %1046 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1045, i64 %1037
  %1047 = getelementptr inbounds i8, ptr %1046, i64 8
  %1048 = load ptr, ptr %1047, align 8, !tbaa !18
  %1049 = getelementptr inbounds i8, ptr %1046, i64 16
  %1050 = load ptr, ptr %1049, align 8, !tbaa !23
  tail call void %1048(ptr noundef %1050, i32 noundef %2, i32 noundef %1028, i32 noundef 48464) #4
  %1051 = add i32 %1, 40
  %1052 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1053 = zext i32 %1052 to i64
  %1054 = add nuw nsw i64 %1053, 36
  %1055 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1054)
  %1056 = load i32, ptr %18, align 4, !tbaa !15
  %1057 = icmp ult i32 %1055, %1056
  br i1 %1057, label %1058, label %.critedge4267, !prof !16

1058:                                             ; preds = %1044
  %1059 = load ptr, ptr %17, align 8, !tbaa !17
  %1060 = zext i32 %1055 to i64
  %1061 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1059, i64 %1060
  %1062 = getelementptr inbounds i8, ptr %1061, i64 8
  %1063 = load ptr, ptr %1062, align 8, !tbaa !18
  %.not4069 = icmp eq ptr %1063, null
  br i1 %.not4069, label %.critedge4267, label %1064, !prof !20

1064:                                             ; preds = %1058
  %1065 = load ptr, ptr %1061, align 8, !tbaa !22
  %1066 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1065)
  br i1 %1066, label %1067, label %.critedge4267, !prof !16

.critedge4267:                                    ; preds = %1058, %1044, %1064
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1067:                                             ; preds = %1064
  %1068 = load ptr, ptr %17, align 8, !tbaa !17
  %1069 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1068, i64 %1060
  %1070 = getelementptr inbounds i8, ptr %1069, i64 8
  %1071 = load ptr, ptr %1070, align 8, !tbaa !18
  %1072 = getelementptr inbounds i8, ptr %1069, i64 16
  %1073 = load ptr, ptr %1072, align 8, !tbaa !23
  tail call void %1071(ptr noundef %1073, i32 noundef %2, i32 noundef %1051, i32 noundef 36790) #4
  %1074 = add i32 %1, 48
  %1075 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1076 = zext i32 %1075 to i64
  %1077 = add nuw nsw i64 %1076, 36
  %1078 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1077)
  %1079 = load i32, ptr %18, align 4, !tbaa !15
  %1080 = icmp ult i32 %1078, %1079
  br i1 %1080, label %1081, label %.critedge4269, !prof !16

1081:                                             ; preds = %1067
  %1082 = load ptr, ptr %17, align 8, !tbaa !17
  %1083 = zext i32 %1078 to i64
  %1084 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1082, i64 %1083
  %1085 = getelementptr inbounds i8, ptr %1084, i64 8
  %1086 = load ptr, ptr %1085, align 8, !tbaa !18
  %.not4070 = icmp eq ptr %1086, null
  br i1 %.not4070, label %.critedge4269, label %1087, !prof !20

1087:                                             ; preds = %1081
  %1088 = load ptr, ptr %1084, align 8, !tbaa !22
  %1089 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1088)
  br i1 %1089, label %1090, label %.critedge4269, !prof !16

.critedge4269:                                    ; preds = %1081, %1067, %1087
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1090:                                             ; preds = %1087
  %1091 = load ptr, ptr %17, align 8, !tbaa !17
  %1092 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1091, i64 %1083
  %1093 = getelementptr inbounds i8, ptr %1092, i64 8
  %1094 = load ptr, ptr %1093, align 8, !tbaa !18
  %1095 = getelementptr inbounds i8, ptr %1092, i64 16
  %1096 = load ptr, ptr %1095, align 8, !tbaa !23
  tail call void %1094(ptr noundef %1096, i32 noundef %2, i32 noundef %1074, i32 noundef 48374) #4
  %1097 = add i32 %1, 56
  %1098 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1099 = zext i32 %1098 to i64
  %1100 = add nuw nsw i64 %1099, 36
  %1101 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1100)
  %1102 = load i32, ptr %18, align 4, !tbaa !15
  %1103 = icmp ult i32 %1101, %1102
  br i1 %1103, label %1104, label %.critedge4271, !prof !16

1104:                                             ; preds = %1090
  %1105 = load ptr, ptr %17, align 8, !tbaa !17
  %1106 = zext i32 %1101 to i64
  %1107 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1105, i64 %1106
  %1108 = getelementptr inbounds i8, ptr %1107, i64 8
  %1109 = load ptr, ptr %1108, align 8, !tbaa !18
  %.not4071 = icmp eq ptr %1109, null
  br i1 %.not4071, label %.critedge4271, label %1110, !prof !20

1110:                                             ; preds = %1104
  %1111 = load ptr, ptr %1107, align 8, !tbaa !22
  %1112 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1111)
  br i1 %1112, label %1113, label %.critedge4271, !prof !16

.critedge4271:                                    ; preds = %1104, %1090, %1110
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1113:                                             ; preds = %1110
  %1114 = load ptr, ptr %17, align 8, !tbaa !17
  %1115 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1114, i64 %1106
  %1116 = getelementptr inbounds i8, ptr %1115, i64 8
  %1117 = load ptr, ptr %1116, align 8, !tbaa !18
  %1118 = getelementptr inbounds i8, ptr %1115, i64 16
  %1119 = load ptr, ptr %1118, align 8, !tbaa !23
  tail call void %1117(ptr noundef %1119, i32 noundef %2, i32 noundef %1097, i32 noundef 36692) #4
  %1120 = add i32 %1, 64
  %1121 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1122 = zext i32 %1121 to i64
  %1123 = add nuw nsw i64 %1122, 36
  %1124 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1123)
  %1125 = load i32, ptr %18, align 4, !tbaa !15
  %1126 = icmp ult i32 %1124, %1125
  br i1 %1126, label %1127, label %.critedge4273, !prof !16

1127:                                             ; preds = %1113
  %1128 = load ptr, ptr %17, align 8, !tbaa !17
  %1129 = zext i32 %1124 to i64
  %1130 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1128, i64 %1129
  %1131 = getelementptr inbounds i8, ptr %1130, i64 8
  %1132 = load ptr, ptr %1131, align 8, !tbaa !18
  %.not4072 = icmp eq ptr %1132, null
  br i1 %.not4072, label %.critedge4273, label %1133, !prof !20

1133:                                             ; preds = %1127
  %1134 = load ptr, ptr %1130, align 8, !tbaa !22
  %1135 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1134)
  br i1 %1135, label %1136, label %.critedge4273, !prof !16

.critedge4273:                                    ; preds = %1127, %1113, %1133
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1136:                                             ; preds = %1133
  %1137 = load ptr, ptr %17, align 8, !tbaa !17
  %1138 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1137, i64 %1129
  %1139 = getelementptr inbounds i8, ptr %1138, i64 8
  %1140 = load ptr, ptr %1139, align 8, !tbaa !18
  %1141 = getelementptr inbounds i8, ptr %1138, i64 16
  %1142 = load ptr, ptr %1141, align 8, !tbaa !23
  tail call void %1140(ptr noundef %1142, i32 noundef %2, i32 noundef %1120, i32 noundef 48355) #4
  %1143 = add i32 %1, 72
  %1144 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1145 = zext i32 %1144 to i64
  %1146 = add nuw nsw i64 %1145, 36
  %1147 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1146)
  %1148 = load i32, ptr %18, align 4, !tbaa !15
  %1149 = icmp ult i32 %1147, %1148
  br i1 %1149, label %1150, label %.critedge4275, !prof !16

1150:                                             ; preds = %1136
  %1151 = load ptr, ptr %17, align 8, !tbaa !17
  %1152 = zext i32 %1147 to i64
  %1153 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1151, i64 %1152
  %1154 = getelementptr inbounds i8, ptr %1153, i64 8
  %1155 = load ptr, ptr %1154, align 8, !tbaa !18
  %.not4073 = icmp eq ptr %1155, null
  br i1 %.not4073, label %.critedge4275, label %1156, !prof !20

1156:                                             ; preds = %1150
  %1157 = load ptr, ptr %1153, align 8, !tbaa !22
  %1158 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1157)
  br i1 %1158, label %1159, label %.critedge4275, !prof !16

.critedge4275:                                    ; preds = %1150, %1136, %1156
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1159:                                             ; preds = %1156
  %1160 = load ptr, ptr %17, align 8, !tbaa !17
  %1161 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1160, i64 %1152
  %1162 = getelementptr inbounds i8, ptr %1161, i64 8
  %1163 = load ptr, ptr %1162, align 8, !tbaa !18
  %1164 = getelementptr inbounds i8, ptr %1161, i64 16
  %1165 = load ptr, ptr %1164, align 8, !tbaa !23
  tail call void %1163(ptr noundef %1165, i32 noundef %2, i32 noundef %1143, i32 noundef 36562) #4
  %1166 = add i32 %1, 80
  %1167 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1168 = zext i32 %1167 to i64
  %1169 = add nuw nsw i64 %1168, 36
  %1170 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1169)
  %1171 = load i32, ptr %18, align 4, !tbaa !15
  %1172 = icmp ult i32 %1170, %1171
  br i1 %1172, label %1173, label %.critedge4277, !prof !16

1173:                                             ; preds = %1159
  %1174 = load ptr, ptr %17, align 8, !tbaa !17
  %1175 = zext i32 %1170 to i64
  %1176 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1174, i64 %1175
  %1177 = getelementptr inbounds i8, ptr %1176, i64 8
  %1178 = load ptr, ptr %1177, align 8, !tbaa !18
  %.not4074 = icmp eq ptr %1178, null
  br i1 %.not4074, label %.critedge4277, label %1179, !prof !20

1179:                                             ; preds = %1173
  %1180 = load ptr, ptr %1176, align 8, !tbaa !22
  %1181 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1180)
  br i1 %1181, label %1182, label %.critedge4277, !prof !16

.critedge4277:                                    ; preds = %1173, %1159, %1179
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1182:                                             ; preds = %1179
  %1183 = load ptr, ptr %17, align 8, !tbaa !17
  %1184 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1183, i64 %1175
  %1185 = getelementptr inbounds i8, ptr %1184, i64 8
  %1186 = load ptr, ptr %1185, align 8, !tbaa !18
  %1187 = getelementptr inbounds i8, ptr %1184, i64 16
  %1188 = load ptr, ptr %1187, align 8, !tbaa !23
  tail call void %1186(ptr noundef %1188, i32 noundef %2, i32 noundef %1166, i32 noundef 48417) #4
  %1189 = add i32 %1, 88
  %1190 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1191 = zext i32 %1190 to i64
  %1192 = add nuw nsw i64 %1191, 36
  %1193 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1192)
  %1194 = load i32, ptr %18, align 4, !tbaa !15
  %1195 = icmp ult i32 %1193, %1194
  br i1 %1195, label %1196, label %.critedge4279, !prof !16

1196:                                             ; preds = %1182
  %1197 = load ptr, ptr %17, align 8, !tbaa !17
  %1198 = zext i32 %1193 to i64
  %1199 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1197, i64 %1198
  %1200 = getelementptr inbounds i8, ptr %1199, i64 8
  %1201 = load ptr, ptr %1200, align 8, !tbaa !18
  %.not4075 = icmp eq ptr %1201, null
  br i1 %.not4075, label %.critedge4279, label %1202, !prof !20

1202:                                             ; preds = %1196
  %1203 = load ptr, ptr %1199, align 8, !tbaa !22
  %1204 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1203)
  br i1 %1204, label %1205, label %.critedge4279, !prof !16

.critedge4279:                                    ; preds = %1196, %1182, %1202
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1205:                                             ; preds = %1202
  %1206 = load ptr, ptr %17, align 8, !tbaa !17
  %1207 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1206, i64 %1198
  %1208 = getelementptr inbounds i8, ptr %1207, i64 8
  %1209 = load ptr, ptr %1208, align 8, !tbaa !18
  %1210 = getelementptr inbounds i8, ptr %1207, i64 16
  %1211 = load ptr, ptr %1210, align 8, !tbaa !23
  tail call void %1209(ptr noundef %1211, i32 noundef %2, i32 noundef %1189, i32 noundef 36739) #4
  %1212 = add i32 %1, 96
  %1213 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1214 = zext i32 %1213 to i64
  %1215 = add nuw nsw i64 %1214, 36
  %1216 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1215)
  %1217 = load i32, ptr %18, align 4, !tbaa !15
  %1218 = icmp ult i32 %1216, %1217
  br i1 %1218, label %1219, label %.critedge4281, !prof !16

1219:                                             ; preds = %1205
  %1220 = load ptr, ptr %17, align 8, !tbaa !17
  %1221 = zext i32 %1216 to i64
  %1222 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1220, i64 %1221
  %1223 = getelementptr inbounds i8, ptr %1222, i64 8
  %1224 = load ptr, ptr %1223, align 8, !tbaa !18
  %.not4076 = icmp eq ptr %1224, null
  br i1 %.not4076, label %.critedge4281, label %1225, !prof !20

1225:                                             ; preds = %1219
  %1226 = load ptr, ptr %1222, align 8, !tbaa !22
  %1227 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1226)
  br i1 %1227, label %1228, label %.critedge4281, !prof !16

.critedge4281:                                    ; preds = %1219, %1205, %1225
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1228:                                             ; preds = %1225
  %1229 = load ptr, ptr %17, align 8, !tbaa !17
  %1230 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1229, i64 %1221
  %1231 = getelementptr inbounds i8, ptr %1230, i64 8
  %1232 = load ptr, ptr %1231, align 8, !tbaa !18
  %1233 = getelementptr inbounds i8, ptr %1230, i64 16
  %1234 = load ptr, ptr %1233, align 8, !tbaa !23
  tail call void %1232(ptr noundef %1234, i32 noundef %2, i32 noundef %1212, i32 noundef 48437) #4
  %1235 = add i32 %1, 104
  %1236 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1237 = zext i32 %1236 to i64
  %1238 = add nuw nsw i64 %1237, 36
  %1239 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1238)
  %1240 = load i32, ptr %18, align 4, !tbaa !15
  %1241 = icmp ult i32 %1239, %1240
  br i1 %1241, label %1242, label %.critedge4283, !prof !16

1242:                                             ; preds = %1228
  %1243 = load ptr, ptr %17, align 8, !tbaa !17
  %1244 = zext i32 %1239 to i64
  %1245 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1243, i64 %1244
  %1246 = getelementptr inbounds i8, ptr %1245, i64 8
  %1247 = load ptr, ptr %1246, align 8, !tbaa !18
  %.not4077 = icmp eq ptr %1247, null
  br i1 %.not4077, label %.critedge4283, label %1248, !prof !20

1248:                                             ; preds = %1242
  %1249 = load ptr, ptr %1245, align 8, !tbaa !22
  %1250 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1249)
  br i1 %1250, label %1251, label %.critedge4283, !prof !16

.critedge4283:                                    ; preds = %1242, %1228, %1248
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1251:                                             ; preds = %1248
  %1252 = load ptr, ptr %17, align 8, !tbaa !17
  %1253 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1252, i64 %1244
  %1254 = getelementptr inbounds i8, ptr %1253, i64 8
  %1255 = load ptr, ptr %1254, align 8, !tbaa !18
  %1256 = getelementptr inbounds i8, ptr %1253, i64 16
  %1257 = load ptr, ptr %1256, align 8, !tbaa !23
  tail call void %1255(ptr noundef %1257, i32 noundef %2, i32 noundef %1235, i32 noundef 36761) #4
  %1258 = add i32 %1, 112
  %1259 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1260 = zext i32 %1259 to i64
  %1261 = add nuw nsw i64 %1260, 36
  %1262 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1261)
  %1263 = load i32, ptr %18, align 4, !tbaa !15
  %1264 = icmp ult i32 %1262, %1263
  br i1 %1264, label %1265, label %.critedge4285, !prof !16

1265:                                             ; preds = %1251
  %1266 = load ptr, ptr %17, align 8, !tbaa !17
  %1267 = zext i32 %1262 to i64
  %1268 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1266, i64 %1267
  %1269 = getelementptr inbounds i8, ptr %1268, i64 8
  %1270 = load ptr, ptr %1269, align 8, !tbaa !18
  %.not4078 = icmp eq ptr %1270, null
  br i1 %.not4078, label %.critedge4285, label %1271, !prof !20

1271:                                             ; preds = %1265
  %1272 = load ptr, ptr %1268, align 8, !tbaa !22
  %1273 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1272)
  br i1 %1273, label %1274, label %.critedge4285, !prof !16

.critedge4285:                                    ; preds = %1265, %1251, %1271
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1274:                                             ; preds = %1271
  %1275 = load ptr, ptr %17, align 8, !tbaa !17
  %1276 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1275, i64 %1267
  %1277 = getelementptr inbounds i8, ptr %1276, i64 8
  %1278 = load ptr, ptr %1277, align 8, !tbaa !18
  %1279 = getelementptr inbounds i8, ptr %1276, i64 16
  %1280 = load ptr, ptr %1279, align 8, !tbaa !23
  tail call void %1278(ptr noundef %1280, i32 noundef %2, i32 noundef %1258, i32 noundef 48293) #4
  %1281 = add i32 %1, 120
  %1282 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1283 = zext i32 %1282 to i64
  %1284 = add nuw nsw i64 %1283, 36
  %1285 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1284)
  %1286 = load i32, ptr %18, align 4, !tbaa !15
  %1287 = icmp ult i32 %1285, %1286
  br i1 %1287, label %1288, label %.critedge4287, !prof !16

1288:                                             ; preds = %1274
  %1289 = load ptr, ptr %17, align 8, !tbaa !17
  %1290 = zext i32 %1285 to i64
  %1291 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1289, i64 %1290
  %1292 = getelementptr inbounds i8, ptr %1291, i64 8
  %1293 = load ptr, ptr %1292, align 8, !tbaa !18
  %.not4079 = icmp eq ptr %1293, null
  br i1 %.not4079, label %.critedge4287, label %1294, !prof !20

1294:                                             ; preds = %1288
  %1295 = load ptr, ptr %1291, align 8, !tbaa !22
  %1296 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1295)
  br i1 %1296, label %1297, label %.critedge4287, !prof !16

.critedge4287:                                    ; preds = %1288, %1274, %1294
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1297:                                             ; preds = %1294
  %1298 = load ptr, ptr %17, align 8, !tbaa !17
  %1299 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1298, i64 %1290
  %1300 = getelementptr inbounds i8, ptr %1299, i64 8
  %1301 = load ptr, ptr %1300, align 8, !tbaa !18
  %1302 = getelementptr inbounds i8, ptr %1299, i64 16
  %1303 = load ptr, ptr %1302, align 8, !tbaa !23
  tail call void %1301(ptr noundef %1303, i32 noundef %2, i32 noundef %1281, i32 noundef 36494) #4
  %1304 = add i32 %1, 128
  %1305 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1306 = zext i32 %1305 to i64
  %1307 = add nuw nsw i64 %1306, 36
  %1308 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1307)
  %1309 = load i32, ptr %18, align 4, !tbaa !15
  %1310 = icmp ult i32 %1308, %1309
  br i1 %1310, label %1311, label %.critedge4289, !prof !16

1311:                                             ; preds = %1297
  %1312 = load ptr, ptr %17, align 8, !tbaa !17
  %1313 = zext i32 %1308 to i64
  %1314 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1312, i64 %1313
  %1315 = getelementptr inbounds i8, ptr %1314, i64 8
  %1316 = load ptr, ptr %1315, align 8, !tbaa !18
  %.not4080 = icmp eq ptr %1316, null
  br i1 %.not4080, label %.critedge4289, label %1317, !prof !20

1317:                                             ; preds = %1311
  %1318 = load ptr, ptr %1314, align 8, !tbaa !22
  %1319 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1318)
  br i1 %1319, label %1320, label %.critedge4289, !prof !16

.critedge4289:                                    ; preds = %1311, %1297, %1317
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1320:                                             ; preds = %1317
  %1321 = load ptr, ptr %17, align 8, !tbaa !17
  %1322 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1321, i64 %1313
  %1323 = getelementptr inbounds i8, ptr %1322, i64 8
  %1324 = load ptr, ptr %1323, align 8, !tbaa !18
  %1325 = getelementptr inbounds i8, ptr %1322, i64 16
  %1326 = load ptr, ptr %1325, align 8, !tbaa !23
  tail call void %1324(ptr noundef %1326, i32 noundef %2, i32 noundef %1304, i32 noundef 48398) #4
  %1327 = add i32 %1, 136
  %1328 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1329 = zext i32 %1328 to i64
  %1330 = add nuw nsw i64 %1329, 36
  %1331 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1330)
  %1332 = load i32, ptr %18, align 4, !tbaa !15
  %1333 = icmp ult i32 %1331, %1332
  br i1 %1333, label %1334, label %.critedge4291, !prof !16

1334:                                             ; preds = %1320
  %1335 = load ptr, ptr %17, align 8, !tbaa !17
  %1336 = zext i32 %1331 to i64
  %1337 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1335, i64 %1336
  %1338 = getelementptr inbounds i8, ptr %1337, i64 8
  %1339 = load ptr, ptr %1338, align 8, !tbaa !18
  %.not4081 = icmp eq ptr %1339, null
  br i1 %.not4081, label %.critedge4291, label %1340, !prof !20

1340:                                             ; preds = %1334
  %1341 = load ptr, ptr %1337, align 8, !tbaa !22
  %1342 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1341)
  br i1 %1342, label %1343, label %.critedge4291, !prof !16

.critedge4291:                                    ; preds = %1334, %1320, %1340
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1343:                                             ; preds = %1340
  %1344 = load ptr, ptr %17, align 8, !tbaa !17
  %1345 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1344, i64 %1336
  %1346 = getelementptr inbounds i8, ptr %1345, i64 8
  %1347 = load ptr, ptr %1346, align 8, !tbaa !18
  %1348 = getelementptr inbounds i8, ptr %1345, i64 16
  %1349 = load ptr, ptr %1348, align 8, !tbaa !23
  tail call void %1347(ptr noundef %1349, i32 noundef %2, i32 noundef %1327, i32 noundef 36718) #4
  %1350 = add i32 %1, 144
  %1351 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1352 = zext i32 %1351 to i64
  %1353 = add nuw nsw i64 %1352, 36
  %1354 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1353)
  %1355 = load i32, ptr %18, align 4, !tbaa !15
  %1356 = icmp ult i32 %1354, %1355
  br i1 %1356, label %1357, label %.critedge4293, !prof !16

1357:                                             ; preds = %1343
  %1358 = load ptr, ptr %17, align 8, !tbaa !17
  %1359 = zext i32 %1354 to i64
  %1360 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1358, i64 %1359
  %1361 = getelementptr inbounds i8, ptr %1360, i64 8
  %1362 = load ptr, ptr %1361, align 8, !tbaa !18
  %.not4082 = icmp eq ptr %1362, null
  br i1 %.not4082, label %.critedge4293, label %1363, !prof !20

1363:                                             ; preds = %1357
  %1364 = load ptr, ptr %1360, align 8, !tbaa !22
  %1365 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1364)
  br i1 %1365, label %1366, label %.critedge4293, !prof !16

.critedge4293:                                    ; preds = %1357, %1343, %1363
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1366:                                             ; preds = %1363
  %1367 = load ptr, ptr %17, align 8, !tbaa !17
  %1368 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1367, i64 %1359
  %1369 = getelementptr inbounds i8, ptr %1368, i64 8
  %1370 = load ptr, ptr %1369, align 8, !tbaa !18
  %1371 = getelementptr inbounds i8, ptr %1368, i64 16
  %1372 = load ptr, ptr %1371, align 8, !tbaa !23
  tail call void %1370(ptr noundef %1372, i32 noundef %2, i32 noundef %1350, i32 noundef 48461) #4
  %1373 = add i32 %1, 152
  %1374 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1375 = zext i32 %1374 to i64
  %1376 = add nuw nsw i64 %1375, 36
  %1377 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1376)
  %1378 = load i32, ptr %18, align 4, !tbaa !15
  %1379 = icmp ult i32 %1377, %1378
  br i1 %1379, label %1380, label %.critedge4295, !prof !16

1380:                                             ; preds = %1366
  %1381 = load ptr, ptr %17, align 8, !tbaa !17
  %1382 = zext i32 %1377 to i64
  %1383 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1381, i64 %1382
  %1384 = getelementptr inbounds i8, ptr %1383, i64 8
  %1385 = load ptr, ptr %1384, align 8, !tbaa !18
  %.not4083 = icmp eq ptr %1385, null
  br i1 %.not4083, label %.critedge4295, label %1386, !prof !20

1386:                                             ; preds = %1380
  %1387 = load ptr, ptr %1383, align 8, !tbaa !22
  %1388 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1387)
  br i1 %1388, label %1389, label %.critedge4295, !prof !16

.critedge4295:                                    ; preds = %1380, %1366, %1386
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1389:                                             ; preds = %1386
  %1390 = load ptr, ptr %17, align 8, !tbaa !17
  %1391 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1390, i64 %1382
  %1392 = getelementptr inbounds i8, ptr %1391, i64 8
  %1393 = load ptr, ptr %1392, align 8, !tbaa !18
  %1394 = getelementptr inbounds i8, ptr %1391, i64 16
  %1395 = load ptr, ptr %1394, align 8, !tbaa !23
  tail call void %1393(ptr noundef %1395, i32 noundef %2, i32 noundef %1373, i32 noundef 36787) #4
  %1396 = add i32 %1, 160
  %1397 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1398 = zext i32 %1397 to i64
  %1399 = add nuw nsw i64 %1398, 36
  %1400 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1399)
  %1401 = load i32, ptr %18, align 4, !tbaa !15
  %1402 = icmp ult i32 %1400, %1401
  br i1 %1402, label %1403, label %.critedge4297, !prof !16

1403:                                             ; preds = %1389
  %1404 = load ptr, ptr %17, align 8, !tbaa !17
  %1405 = zext i32 %1400 to i64
  %1406 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1404, i64 %1405
  %1407 = getelementptr inbounds i8, ptr %1406, i64 8
  %1408 = load ptr, ptr %1407, align 8, !tbaa !18
  %.not4084 = icmp eq ptr %1408, null
  br i1 %.not4084, label %.critedge4297, label %1409, !prof !20

1409:                                             ; preds = %1403
  %1410 = load ptr, ptr %1406, align 8, !tbaa !22
  %1411 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1410)
  br i1 %1411, label %1412, label %.critedge4297, !prof !16

.critedge4297:                                    ; preds = %1403, %1389, %1409
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1412:                                             ; preds = %1409
  %1413 = load ptr, ptr %17, align 8, !tbaa !17
  %1414 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1413, i64 %1405
  %1415 = getelementptr inbounds i8, ptr %1414, i64 8
  %1416 = load ptr, ptr %1415, align 8, !tbaa !18
  %1417 = getelementptr inbounds i8, ptr %1414, i64 16
  %1418 = load ptr, ptr %1417, align 8, !tbaa !23
  tail call void %1416(ptr noundef %1418, i32 noundef %2, i32 noundef %1396, i32 noundef 48314) #4
  %1419 = add i32 %1, 168
  %1420 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1421 = zext i32 %1420 to i64
  %1422 = add nuw nsw i64 %1421, 36
  %1423 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1422)
  %1424 = load i32, ptr %18, align 4, !tbaa !15
  %1425 = icmp ult i32 %1423, %1424
  br i1 %1425, label %1426, label %.critedge4299, !prof !16

1426:                                             ; preds = %1412
  %1427 = load ptr, ptr %17, align 8, !tbaa !17
  %1428 = zext i32 %1423 to i64
  %1429 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1427, i64 %1428
  %1430 = getelementptr inbounds i8, ptr %1429, i64 8
  %1431 = load ptr, ptr %1430, align 8, !tbaa !18
  %.not4085 = icmp eq ptr %1431, null
  br i1 %.not4085, label %.critedge4299, label %1432, !prof !20

1432:                                             ; preds = %1426
  %1433 = load ptr, ptr %1429, align 8, !tbaa !22
  %1434 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1433)
  br i1 %1434, label %1435, label %.critedge4299, !prof !16

.critedge4299:                                    ; preds = %1426, %1412, %1432
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1435:                                             ; preds = %1432
  %1436 = load ptr, ptr %17, align 8, !tbaa !17
  %1437 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1436, i64 %1428
  %1438 = getelementptr inbounds i8, ptr %1437, i64 8
  %1439 = load ptr, ptr %1438, align 8, !tbaa !18
  %1440 = getelementptr inbounds i8, ptr %1437, i64 16
  %1441 = load ptr, ptr %1440, align 8, !tbaa !23
  tail call void %1439(ptr noundef %1441, i32 noundef %2, i32 noundef %1419, i32 noundef 36517) #4
  %1442 = add i32 %1, 176
  %1443 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1444 = zext i32 %1443 to i64
  %1445 = add nuw nsw i64 %1444, 36
  %1446 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1445)
  %1447 = load i32, ptr %18, align 4, !tbaa !15
  %1448 = icmp ult i32 %1446, %1447
  br i1 %1448, label %1449, label %.critedge4301, !prof !16

1449:                                             ; preds = %1435
  %1450 = load ptr, ptr %17, align 8, !tbaa !17
  %1451 = zext i32 %1446 to i64
  %1452 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1450, i64 %1451
  %1453 = getelementptr inbounds i8, ptr %1452, i64 8
  %1454 = load ptr, ptr %1453, align 8, !tbaa !18
  %.not4086 = icmp eq ptr %1454, null
  br i1 %.not4086, label %.critedge4301, label %1455, !prof !20

1455:                                             ; preds = %1449
  %1456 = load ptr, ptr %1452, align 8, !tbaa !22
  %1457 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1456)
  br i1 %1457, label %1458, label %.critedge4301, !prof !16

.critedge4301:                                    ; preds = %1449, %1435, %1455
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1458:                                             ; preds = %1455
  %1459 = load ptr, ptr %17, align 8, !tbaa !17
  %1460 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1459, i64 %1451
  %1461 = getelementptr inbounds i8, ptr %1460, i64 8
  %1462 = load ptr, ptr %1461, align 8, !tbaa !18
  %1463 = getelementptr inbounds i8, ptr %1460, i64 16
  %1464 = load ptr, ptr %1463, align 8, !tbaa !23
  tail call void %1462(ptr noundef %1464, i32 noundef %2, i32 noundef %1442, i32 noundef 48336) #4
  %1465 = add i32 %1, 184
  %1466 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1467 = zext i32 %1466 to i64
  %1468 = add nuw nsw i64 %1467, 36
  %1469 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1468)
  %1470 = load i32, ptr %18, align 4, !tbaa !15
  %1471 = icmp ult i32 %1469, %1470
  br i1 %1471, label %1472, label %.critedge4303, !prof !16

1472:                                             ; preds = %1458
  %1473 = load ptr, ptr %17, align 8, !tbaa !17
  %1474 = zext i32 %1469 to i64
  %1475 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1473, i64 %1474
  %1476 = getelementptr inbounds i8, ptr %1475, i64 8
  %1477 = load ptr, ptr %1476, align 8, !tbaa !18
  %.not4087 = icmp eq ptr %1477, null
  br i1 %.not4087, label %.critedge4303, label %1478, !prof !20

1478:                                             ; preds = %1472
  %1479 = load ptr, ptr %1475, align 8, !tbaa !22
  %1480 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1479)
  br i1 %1480, label %1481, label %.critedge4303, !prof !16

.critedge4303:                                    ; preds = %1472, %1458, %1478
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1481:                                             ; preds = %1478
  %1482 = load ptr, ptr %17, align 8, !tbaa !17
  %1483 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1482, i64 %1474
  %1484 = getelementptr inbounds i8, ptr %1483, i64 8
  %1485 = load ptr, ptr %1484, align 8, !tbaa !18
  %1486 = getelementptr inbounds i8, ptr %1483, i64 16
  %1487 = load ptr, ptr %1486, align 8, !tbaa !23
  tail call void %1485(ptr noundef %1487, i32 noundef %2, i32 noundef %1465, i32 noundef 36541) #4
  %1488 = add i32 %1, 192
  %1489 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1490 = zext i32 %1489 to i64
  %1491 = add nuw nsw i64 %1490, 36
  %1492 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1491)
  %1493 = load i32, ptr %18, align 4, !tbaa !15
  %1494 = icmp ult i32 %1492, %1493
  br i1 %1494, label %1495, label %.critedge4305, !prof !16

1495:                                             ; preds = %1481
  %1496 = load ptr, ptr %17, align 8, !tbaa !17
  %1497 = zext i32 %1492 to i64
  %1498 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1496, i64 %1497
  %1499 = getelementptr inbounds i8, ptr %1498, i64 8
  %1500 = load ptr, ptr %1499, align 8, !tbaa !18
  %.not4088 = icmp eq ptr %1500, null
  br i1 %.not4088, label %.critedge4305, label %1501, !prof !20

1501:                                             ; preds = %1495
  %1502 = load ptr, ptr %1498, align 8, !tbaa !22
  %1503 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1502)
  br i1 %1503, label %1504, label %.critedge4305, !prof !16

.critedge4305:                                    ; preds = %1495, %1481, %1501
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1504:                                             ; preds = %1501
  %1505 = load ptr, ptr %17, align 8, !tbaa !17
  %1506 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1505, i64 %1497
  %1507 = getelementptr inbounds i8, ptr %1506, i64 8
  %1508 = load ptr, ptr %1507, align 8, !tbaa !18
  %1509 = getelementptr inbounds i8, ptr %1506, i64 16
  %1510 = load ptr, ptr %1509, align 8, !tbaa !23
  tail call void %1508(ptr noundef %1510, i32 noundef %2, i32 noundef %1488, i32 noundef 48583) #4
  %1511 = add i32 %1, 200
  %1512 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1513 = zext i32 %1512 to i64
  %1514 = add nuw nsw i64 %1513, 36
  %1515 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1514)
  %1516 = load i32, ptr %18, align 4, !tbaa !15
  %1517 = icmp ult i32 %1515, %1516
  br i1 %1517, label %1518, label %.critedge4307, !prof !16

1518:                                             ; preds = %1504
  %1519 = load ptr, ptr %17, align 8, !tbaa !17
  %1520 = zext i32 %1515 to i64
  %1521 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1519, i64 %1520
  %1522 = getelementptr inbounds i8, ptr %1521, i64 8
  %1523 = load ptr, ptr %1522, align 8, !tbaa !18
  %.not4089 = icmp eq ptr %1523, null
  br i1 %.not4089, label %.critedge4307, label %1524, !prof !20

1524:                                             ; preds = %1518
  %1525 = load ptr, ptr %1521, align 8, !tbaa !22
  %1526 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1525)
  br i1 %1526, label %1527, label %.critedge4307, !prof !16

.critedge4307:                                    ; preds = %1518, %1504, %1524
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1527:                                             ; preds = %1524
  %1528 = load ptr, ptr %17, align 8, !tbaa !17
  %1529 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1528, i64 %1520
  %1530 = getelementptr inbounds i8, ptr %1529, i64 8
  %1531 = load ptr, ptr %1530, align 8, !tbaa !18
  %1532 = getelementptr inbounds i8, ptr %1529, i64 16
  %1533 = load ptr, ptr %1532, align 8, !tbaa !23
  tail call void %1531(ptr noundef %1533, i32 noundef %2, i32 noundef %1511, i32 noundef 36807) #4
  %1534 = add i32 %1, 208
  %1535 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1536 = zext i32 %1535 to i64
  %1537 = add nuw nsw i64 %1536, 36
  %1538 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1537)
  %1539 = load i32, ptr %18, align 4, !tbaa !15
  %1540 = icmp ult i32 %1538, %1539
  br i1 %1540, label %1541, label %.critedge4309, !prof !16

1541:                                             ; preds = %1527
  %1542 = load ptr, ptr %17, align 8, !tbaa !17
  %1543 = zext i32 %1538 to i64
  %1544 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1542, i64 %1543
  %1545 = getelementptr inbounds i8, ptr %1544, i64 8
  %1546 = load ptr, ptr %1545, align 8, !tbaa !18
  %.not4090 = icmp eq ptr %1546, null
  br i1 %.not4090, label %.critedge4309, label %1547, !prof !20

1547:                                             ; preds = %1541
  %1548 = load ptr, ptr %1544, align 8, !tbaa !22
  %1549 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1548)
  br i1 %1549, label %1550, label %.critedge4309, !prof !16

.critedge4309:                                    ; preds = %1541, %1527, %1547
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1550:                                             ; preds = %1547
  %1551 = load ptr, ptr %17, align 8, !tbaa !17
  %1552 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1551, i64 %1543
  %1553 = getelementptr inbounds i8, ptr %1552, i64 8
  %1554 = load ptr, ptr %1553, align 8, !tbaa !18
  %1555 = getelementptr inbounds i8, ptr %1552, i64 16
  %1556 = load ptr, ptr %1555, align 8, !tbaa !23
  tail call void %1554(ptr noundef %1556, i32 noundef %2, i32 noundef %1534, i32 noundef 48684) #4
  %1557 = add i32 %1, 216
  %1558 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1559 = zext i32 %1558 to i64
  %1560 = add nuw nsw i64 %1559, 36
  %1561 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1560)
  %1562 = load i32, ptr %18, align 4, !tbaa !15
  %1563 = icmp ult i32 %1561, %1562
  br i1 %1563, label %1564, label %.critedge4311, !prof !16

1564:                                             ; preds = %1550
  %1565 = load ptr, ptr %17, align 8, !tbaa !17
  %1566 = zext i32 %1561 to i64
  %1567 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1565, i64 %1566
  %1568 = getelementptr inbounds i8, ptr %1567, i64 8
  %1569 = load ptr, ptr %1568, align 8, !tbaa !18
  %.not4091 = icmp eq ptr %1569, null
  br i1 %.not4091, label %.critedge4311, label %1570, !prof !20

1570:                                             ; preds = %1564
  %1571 = load ptr, ptr %1567, align 8, !tbaa !22
  %1572 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1571)
  br i1 %1572, label %1573, label %.critedge4311, !prof !16

.critedge4311:                                    ; preds = %1564, %1550, %1570
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1573:                                             ; preds = %1570
  %1574 = load ptr, ptr %17, align 8, !tbaa !17
  %1575 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1574, i64 %1566
  %1576 = getelementptr inbounds i8, ptr %1575, i64 8
  %1577 = load ptr, ptr %1576, align 8, !tbaa !18
  %1578 = getelementptr inbounds i8, ptr %1575, i64 16
  %1579 = load ptr, ptr %1578, align 8, !tbaa !23
  tail call void %1577(ptr noundef %1579, i32 noundef %2, i32 noundef %1557, i32 noundef 48075) #4
  %1580 = add i32 %1, 224
  %1581 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1582 = zext i32 %1581 to i64
  %1583 = add nuw nsw i64 %1582, 36
  %1584 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1583)
  %1585 = load i32, ptr %18, align 4, !tbaa !15
  %1586 = icmp ult i32 %1584, %1585
  br i1 %1586, label %1587, label %.critedge4313, !prof !16

1587:                                             ; preds = %1573
  %1588 = load ptr, ptr %17, align 8, !tbaa !17
  %1589 = zext i32 %1584 to i64
  %1590 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1588, i64 %1589
  %1591 = getelementptr inbounds i8, ptr %1590, i64 8
  %1592 = load ptr, ptr %1591, align 8, !tbaa !18
  %.not4092 = icmp eq ptr %1592, null
  br i1 %.not4092, label %.critedge4313, label %1593, !prof !20

1593:                                             ; preds = %1587
  %1594 = load ptr, ptr %1590, align 8, !tbaa !22
  %1595 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1594)
  br i1 %1595, label %1596, label %.critedge4313, !prof !16

.critedge4313:                                    ; preds = %1587, %1573, %1593
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1596:                                             ; preds = %1593
  %1597 = load ptr, ptr %17, align 8, !tbaa !17
  %1598 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1597, i64 %1589
  %1599 = getelementptr inbounds i8, ptr %1598, i64 8
  %1600 = load ptr, ptr %1599, align 8, !tbaa !18
  %1601 = getelementptr inbounds i8, ptr %1598, i64 16
  %1602 = load ptr, ptr %1601, align 8, !tbaa !23
  tail call void %1600(ptr noundef %1602, i32 noundef %2, i32 noundef %1580, i32 noundef 48521) #4
  %1603 = add i32 %1, 232
  %1604 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1605 = zext i32 %1604 to i64
  %1606 = add nuw nsw i64 %1605, 36
  %1607 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1606)
  %1608 = load i32, ptr %18, align 4, !tbaa !15
  %1609 = icmp ult i32 %1607, %1608
  br i1 %1609, label %1610, label %.critedge4315, !prof !16

1610:                                             ; preds = %1596
  %1611 = load ptr, ptr %17, align 8, !tbaa !17
  %1612 = zext i32 %1607 to i64
  %1613 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1611, i64 %1612
  %1614 = getelementptr inbounds i8, ptr %1613, i64 8
  %1615 = load ptr, ptr %1614, align 8, !tbaa !18
  %.not4093 = icmp eq ptr %1615, null
  br i1 %.not4093, label %.critedge4315, label %1616, !prof !20

1616:                                             ; preds = %1610
  %1617 = load ptr, ptr %1613, align 8, !tbaa !22
  %1618 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1617)
  br i1 %1618, label %1619, label %.critedge4315, !prof !16

.critedge4315:                                    ; preds = %1610, %1596, %1616
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1619:                                             ; preds = %1616
  %1620 = load ptr, ptr %17, align 8, !tbaa !17
  %1621 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1620, i64 %1612
  %1622 = getelementptr inbounds i8, ptr %1621, i64 8
  %1623 = load ptr, ptr %1622, align 8, !tbaa !18
  %1624 = getelementptr inbounds i8, ptr %1621, i64 16
  %1625 = load ptr, ptr %1624, align 8, !tbaa !23
  tail call void %1623(ptr noundef %1625, i32 noundef %2, i32 noundef %1603, i32 noundef 48651) #4
  %1626 = add i32 %1, 240
  %1627 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1628 = zext i32 %1627 to i64
  %1629 = add nuw nsw i64 %1628, 36
  %1630 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1629)
  %1631 = load i32, ptr %18, align 4, !tbaa !15
  %1632 = icmp ult i32 %1630, %1631
  br i1 %1632, label %1633, label %.critedge4317, !prof !16

1633:                                             ; preds = %1619
  %1634 = load ptr, ptr %17, align 8, !tbaa !17
  %1635 = zext i32 %1630 to i64
  %1636 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1634, i64 %1635
  %1637 = getelementptr inbounds i8, ptr %1636, i64 8
  %1638 = load ptr, ptr %1637, align 8, !tbaa !18
  %.not4094 = icmp eq ptr %1638, null
  br i1 %.not4094, label %.critedge4317, label %1639, !prof !20

1639:                                             ; preds = %1633
  %1640 = load ptr, ptr %1636, align 8, !tbaa !22
  %1641 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1640)
  br i1 %1641, label %1642, label %.critedge4317, !prof !16

.critedge4317:                                    ; preds = %1633, %1619, %1639
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1642:                                             ; preds = %1639
  %1643 = load ptr, ptr %17, align 8, !tbaa !17
  %1644 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1643, i64 %1635
  %1645 = getelementptr inbounds i8, ptr %1644, i64 8
  %1646 = load ptr, ptr %1645, align 8, !tbaa !18
  %1647 = getelementptr inbounds i8, ptr %1644, i64 16
  %1648 = load ptr, ptr %1647, align 8, !tbaa !23
  tail call void %1646(ptr noundef %1648, i32 noundef %2, i32 noundef %1626, i32 noundef 48668) #4
  %1649 = add i32 %1, 248
  %1650 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1651 = zext i32 %1650 to i64
  %1652 = add nuw nsw i64 %1651, 36
  %1653 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1652)
  %1654 = load i32, ptr %18, align 4, !tbaa !15
  %1655 = icmp ult i32 %1653, %1654
  br i1 %1655, label %1656, label %.critedge4319, !prof !16

1656:                                             ; preds = %1642
  %1657 = load ptr, ptr %17, align 8, !tbaa !17
  %1658 = zext i32 %1653 to i64
  %1659 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1657, i64 %1658
  %1660 = getelementptr inbounds i8, ptr %1659, i64 8
  %1661 = load ptr, ptr %1660, align 8, !tbaa !18
  %.not4095 = icmp eq ptr %1661, null
  br i1 %.not4095, label %.critedge4319, label %1662, !prof !20

1662:                                             ; preds = %1656
  %1663 = load ptr, ptr %1659, align 8, !tbaa !22
  %1664 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1663)
  br i1 %1664, label %1665, label %.critedge4319, !prof !16

.critedge4319:                                    ; preds = %1656, %1642, %1662
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1665:                                             ; preds = %1662
  %1666 = load ptr, ptr %17, align 8, !tbaa !17
  %1667 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1666, i64 %1658
  %1668 = getelementptr inbounds i8, ptr %1667, i64 8
  %1669 = load ptr, ptr %1668, align 8, !tbaa !18
  %1670 = getelementptr inbounds i8, ptr %1667, i64 16
  %1671 = load ptr, ptr %1670, align 8, !tbaa !23
  tail call void %1669(ptr noundef %1671, i32 noundef %2, i32 noundef %1649, i32 noundef 48735) #4
  %1672 = add i32 %1, 256
  %1673 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1674 = zext i32 %1673 to i64
  %1675 = add nuw nsw i64 %1674, 36
  %1676 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1675)
  %1677 = load i32, ptr %18, align 4, !tbaa !15
  %1678 = icmp ult i32 %1676, %1677
  br i1 %1678, label %1679, label %.critedge4321, !prof !16

1679:                                             ; preds = %1665
  %1680 = load ptr, ptr %17, align 8, !tbaa !17
  %1681 = zext i32 %1676 to i64
  %1682 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1680, i64 %1681
  %1683 = getelementptr inbounds i8, ptr %1682, i64 8
  %1684 = load ptr, ptr %1683, align 8, !tbaa !18
  %.not4096 = icmp eq ptr %1684, null
  br i1 %.not4096, label %.critedge4321, label %1685, !prof !20

1685:                                             ; preds = %1679
  %1686 = load ptr, ptr %1682, align 8, !tbaa !22
  %1687 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1686)
  br i1 %1687, label %1688, label %.critedge4321, !prof !16

.critedge4321:                                    ; preds = %1679, %1665, %1685
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1688:                                             ; preds = %1685
  %1689 = load ptr, ptr %17, align 8, !tbaa !17
  %1690 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1689, i64 %1681
  %1691 = getelementptr inbounds i8, ptr %1690, i64 8
  %1692 = load ptr, ptr %1691, align 8, !tbaa !18
  %1693 = getelementptr inbounds i8, ptr %1690, i64 16
  %1694 = load ptr, ptr %1693, align 8, !tbaa !23
  tail call void %1692(ptr noundef %1694, i32 noundef %2, i32 noundef %1672, i32 noundef 47803) #4
  %1695 = add i32 %1, 264
  %1696 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1697 = zext i32 %1696 to i64
  %1698 = add nuw nsw i64 %1697, 36
  %1699 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1698)
  %1700 = load i32, ptr %18, align 4, !tbaa !15
  %1701 = icmp ult i32 %1699, %1700
  br i1 %1701, label %1702, label %.critedge4323, !prof !16

1702:                                             ; preds = %1688
  %1703 = load ptr, ptr %17, align 8, !tbaa !17
  %1704 = zext i32 %1699 to i64
  %1705 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1703, i64 %1704
  %1706 = getelementptr inbounds i8, ptr %1705, i64 8
  %1707 = load ptr, ptr %1706, align 8, !tbaa !18
  %.not4097 = icmp eq ptr %1707, null
  br i1 %.not4097, label %.critedge4323, label %1708, !prof !20

1708:                                             ; preds = %1702
  %1709 = load ptr, ptr %1705, align 8, !tbaa !22
  %1710 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1709)
  br i1 %1710, label %1711, label %.critedge4323, !prof !16

.critedge4323:                                    ; preds = %1702, %1688, %1708
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1711:                                             ; preds = %1708
  %1712 = load ptr, ptr %17, align 8, !tbaa !17
  %1713 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1712, i64 %1704
  %1714 = getelementptr inbounds i8, ptr %1713, i64 8
  %1715 = load ptr, ptr %1714, align 8, !tbaa !18
  %1716 = getelementptr inbounds i8, ptr %1713, i64 16
  %1717 = load ptr, ptr %1716, align 8, !tbaa !23
  tail call void %1715(ptr noundef %1717, i32 noundef %2, i32 noundef %1695, i32 noundef 48479) #4
  %1718 = add i32 %1, 272
  %1719 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1720 = zext i32 %1719 to i64
  %1721 = add nuw nsw i64 %1720, 36
  %1722 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1721)
  %1723 = load i32, ptr %18, align 4, !tbaa !15
  %1724 = icmp ult i32 %1722, %1723
  br i1 %1724, label %1725, label %.critedge4325, !prof !16

1725:                                             ; preds = %1711
  %1726 = load ptr, ptr %17, align 8, !tbaa !17
  %1727 = zext i32 %1722 to i64
  %1728 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1726, i64 %1727
  %1729 = getelementptr inbounds i8, ptr %1728, i64 8
  %1730 = load ptr, ptr %1729, align 8, !tbaa !18
  %.not4098 = icmp eq ptr %1730, null
  br i1 %.not4098, label %.critedge4325, label %1731, !prof !20

1731:                                             ; preds = %1725
  %1732 = load ptr, ptr %1728, align 8, !tbaa !22
  %1733 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1732)
  br i1 %1733, label %1734, label %.critedge4325, !prof !16

.critedge4325:                                    ; preds = %1725, %1711, %1731
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1734:                                             ; preds = %1731
  %1735 = load ptr, ptr %17, align 8, !tbaa !17
  %1736 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1735, i64 %1727
  %1737 = getelementptr inbounds i8, ptr %1736, i64 8
  %1738 = load ptr, ptr %1737, align 8, !tbaa !18
  %1739 = getelementptr inbounds i8, ptr %1736, i64 16
  %1740 = load ptr, ptr %1739, align 8, !tbaa !23
  tail call void %1738(ptr noundef %1740, i32 noundef %2, i32 noundef %1718, i32 noundef 48057) #4
  %1741 = add i32 %1, 280
  %1742 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1743 = zext i32 %1742 to i64
  %1744 = add nuw nsw i64 %1743, 36
  %1745 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1744)
  %1746 = load i32, ptr %18, align 4, !tbaa !15
  %1747 = icmp ult i32 %1745, %1746
  br i1 %1747, label %1748, label %.critedge4327, !prof !16

1748:                                             ; preds = %1734
  %1749 = load ptr, ptr %17, align 8, !tbaa !17
  %1750 = zext i32 %1745 to i64
  %1751 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1749, i64 %1750
  %1752 = getelementptr inbounds i8, ptr %1751, i64 8
  %1753 = load ptr, ptr %1752, align 8, !tbaa !18
  %.not4099 = icmp eq ptr %1753, null
  br i1 %.not4099, label %.critedge4327, label %1754, !prof !20

1754:                                             ; preds = %1748
  %1755 = load ptr, ptr %1751, align 8, !tbaa !22
  %1756 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1755)
  br i1 %1756, label %1757, label %.critedge4327, !prof !16

.critedge4327:                                    ; preds = %1748, %1734, %1754
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1757:                                             ; preds = %1754
  %1758 = load ptr, ptr %17, align 8, !tbaa !17
  %1759 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1758, i64 %1750
  %1760 = getelementptr inbounds i8, ptr %1759, i64 8
  %1761 = load ptr, ptr %1760, align 8, !tbaa !18
  %1762 = getelementptr inbounds i8, ptr %1759, i64 16
  %1763 = load ptr, ptr %1762, align 8, !tbaa !23
  tail call void %1761(ptr noundef %1763, i32 noundef %2, i32 noundef %1741, i32 noundef 48749) #4
  %1764 = add i32 %1, 288
  %1765 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1766 = zext i32 %1765 to i64
  %1767 = add nuw nsw i64 %1766, 36
  %1768 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1767)
  %1769 = load i32, ptr %18, align 4, !tbaa !15
  %1770 = icmp ult i32 %1768, %1769
  br i1 %1770, label %1771, label %.critedge4329, !prof !16

1771:                                             ; preds = %1757
  %1772 = load ptr, ptr %17, align 8, !tbaa !17
  %1773 = zext i32 %1768 to i64
  %1774 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1772, i64 %1773
  %1775 = getelementptr inbounds i8, ptr %1774, i64 8
  %1776 = load ptr, ptr %1775, align 8, !tbaa !18
  %.not4100 = icmp eq ptr %1776, null
  br i1 %.not4100, label %.critedge4329, label %1777, !prof !20

1777:                                             ; preds = %1771
  %1778 = load ptr, ptr %1774, align 8, !tbaa !22
  %1779 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1778)
  br i1 %1779, label %1780, label %.critedge4329, !prof !16

.critedge4329:                                    ; preds = %1771, %1757, %1777
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1780:                                             ; preds = %1777
  %1781 = load ptr, ptr %17, align 8, !tbaa !17
  %1782 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1781, i64 %1773
  %1783 = getelementptr inbounds i8, ptr %1782, i64 8
  %1784 = load ptr, ptr %1783, align 8, !tbaa !18
  %1785 = getelementptr inbounds i8, ptr %1782, i64 16
  %1786 = load ptr, ptr %1785, align 8, !tbaa !23
  tail call void %1784(ptr noundef %1786, i32 noundef %2, i32 noundef %1764, i32 noundef 47865) #4
  %1787 = add i32 %1, 296
  %1788 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1789 = zext i32 %1788 to i64
  %1790 = add nuw nsw i64 %1789, 36
  %1791 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1790)
  %1792 = load i32, ptr %18, align 4, !tbaa !15
  %1793 = icmp ult i32 %1791, %1792
  br i1 %1793, label %1794, label %.critedge4331, !prof !16

1794:                                             ; preds = %1780
  %1795 = load ptr, ptr %17, align 8, !tbaa !17
  %1796 = zext i32 %1791 to i64
  %1797 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1795, i64 %1796
  %1798 = getelementptr inbounds i8, ptr %1797, i64 8
  %1799 = load ptr, ptr %1798, align 8, !tbaa !18
  %.not4101 = icmp eq ptr %1799, null
  br i1 %.not4101, label %.critedge4331, label %1800, !prof !20

1800:                                             ; preds = %1794
  %1801 = load ptr, ptr %1797, align 8, !tbaa !22
  %1802 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1801)
  br i1 %1802, label %1803, label %.critedge4331, !prof !16

.critedge4331:                                    ; preds = %1794, %1780, %1800
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1803:                                             ; preds = %1800
  %1804 = load ptr, ptr %17, align 8, !tbaa !17
  %1805 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1804, i64 %1796
  %1806 = getelementptr inbounds i8, ptr %1805, i64 8
  %1807 = load ptr, ptr %1806, align 8, !tbaa !18
  %1808 = getelementptr inbounds i8, ptr %1805, i64 16
  %1809 = load ptr, ptr %1808, align 8, !tbaa !23
  tail call void %1807(ptr noundef %1809, i32 noundef %2, i32 noundef %1787, i32 noundef 36267) #4
  %1810 = add i32 %1, 304
  %1811 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1812 = zext i32 %1811 to i64
  %1813 = add nuw nsw i64 %1812, 36
  %1814 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1813)
  %1815 = load i32, ptr %18, align 4, !tbaa !15
  %1816 = icmp ult i32 %1814, %1815
  br i1 %1816, label %1817, label %.critedge4333, !prof !16

1817:                                             ; preds = %1803
  %1818 = load ptr, ptr %17, align 8, !tbaa !17
  %1819 = zext i32 %1814 to i64
  %1820 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1818, i64 %1819
  %1821 = getelementptr inbounds i8, ptr %1820, i64 8
  %1822 = load ptr, ptr %1821, align 8, !tbaa !18
  %.not4102 = icmp eq ptr %1822, null
  br i1 %.not4102, label %.critedge4333, label %1823, !prof !20

1823:                                             ; preds = %1817
  %1824 = load ptr, ptr %1820, align 8, !tbaa !22
  %1825 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1824)
  br i1 %1825, label %1826, label %.critedge4333, !prof !16

.critedge4333:                                    ; preds = %1817, %1803, %1823
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1826:                                             ; preds = %1823
  %1827 = load ptr, ptr %17, align 8, !tbaa !17
  %1828 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1827, i64 %1819
  %1829 = getelementptr inbounds i8, ptr %1828, i64 8
  %1830 = load ptr, ptr %1829, align 8, !tbaa !18
  %1831 = getelementptr inbounds i8, ptr %1828, i64 16
  %1832 = load ptr, ptr %1831, align 8, !tbaa !23
  tail call void %1830(ptr noundef %1832, i32 noundef %2, i32 noundef %1810, i32 noundef 47905) #4
  %1833 = add i32 %1, 312
  %1834 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1835 = zext i32 %1834 to i64
  %1836 = add nuw nsw i64 %1835, 36
  %1837 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1836)
  %1838 = load i32, ptr %18, align 4, !tbaa !15
  %1839 = icmp ult i32 %1837, %1838
  br i1 %1839, label %1840, label %.critedge4335, !prof !16

1840:                                             ; preds = %1826
  %1841 = load ptr, ptr %17, align 8, !tbaa !17
  %1842 = zext i32 %1837 to i64
  %1843 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1841, i64 %1842
  %1844 = getelementptr inbounds i8, ptr %1843, i64 8
  %1845 = load ptr, ptr %1844, align 8, !tbaa !18
  %.not4103 = icmp eq ptr %1845, null
  br i1 %.not4103, label %.critedge4335, label %1846, !prof !20

1846:                                             ; preds = %1840
  %1847 = load ptr, ptr %1843, align 8, !tbaa !22
  %1848 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1847)
  br i1 %1848, label %1849, label %.critedge4335, !prof !16

.critedge4335:                                    ; preds = %1840, %1826, %1846
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1849:                                             ; preds = %1846
  %1850 = load ptr, ptr %17, align 8, !tbaa !17
  %1851 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1850, i64 %1842
  %1852 = getelementptr inbounds i8, ptr %1851, i64 8
  %1853 = load ptr, ptr %1852, align 8, !tbaa !18
  %1854 = getelementptr inbounds i8, ptr %1851, i64 16
  %1855 = load ptr, ptr %1854, align 8, !tbaa !23
  tail call void %1853(ptr noundef %1855, i32 noundef %2, i32 noundef %1833, i32 noundef 36311) #4
  %1856 = add i32 %1, 320
  %1857 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1858 = zext i32 %1857 to i64
  %1859 = add nuw nsw i64 %1858, 36
  %1860 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1859)
  %1861 = load i32, ptr %18, align 4, !tbaa !15
  %1862 = icmp ult i32 %1860, %1861
  br i1 %1862, label %1863, label %.critedge4337, !prof !16

1863:                                             ; preds = %1849
  %1864 = load ptr, ptr %17, align 8, !tbaa !17
  %1865 = zext i32 %1860 to i64
  %1866 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1864, i64 %1865
  %1867 = getelementptr inbounds i8, ptr %1866, i64 8
  %1868 = load ptr, ptr %1867, align 8, !tbaa !18
  %.not4104 = icmp eq ptr %1868, null
  br i1 %.not4104, label %.critedge4337, label %1869, !prof !20

1869:                                             ; preds = %1863
  %1870 = load ptr, ptr %1866, align 8, !tbaa !22
  %1871 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1870)
  br i1 %1871, label %1872, label %.critedge4337, !prof !16

.critedge4337:                                    ; preds = %1863, %1849, %1869
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1872:                                             ; preds = %1869
  %1873 = load ptr, ptr %17, align 8, !tbaa !17
  %1874 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1873, i64 %1865
  %1875 = getelementptr inbounds i8, ptr %1874, i64 8
  %1876 = load ptr, ptr %1875, align 8, !tbaa !18
  %1877 = getelementptr inbounds i8, ptr %1874, i64 16
  %1878 = load ptr, ptr %1877, align 8, !tbaa !23
  tail call void %1876(ptr noundef %1878, i32 noundef %2, i32 noundef %1856, i32 noundef 48015) #4
  %1879 = add i32 %1, 328
  %1880 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1881 = zext i32 %1880 to i64
  %1882 = add nuw nsw i64 %1881, 36
  %1883 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1882)
  %1884 = load i32, ptr %18, align 4, !tbaa !15
  %1885 = icmp ult i32 %1883, %1884
  br i1 %1885, label %1886, label %.critedge4339, !prof !16

1886:                                             ; preds = %1872
  %1887 = load ptr, ptr %17, align 8, !tbaa !17
  %1888 = zext i32 %1883 to i64
  %1889 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1887, i64 %1888
  %1890 = getelementptr inbounds i8, ptr %1889, i64 8
  %1891 = load ptr, ptr %1890, align 8, !tbaa !18
  %.not4105 = icmp eq ptr %1891, null
  br i1 %.not4105, label %.critedge4339, label %1892, !prof !20

1892:                                             ; preds = %1886
  %1893 = load ptr, ptr %1889, align 8, !tbaa !22
  %1894 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1893)
  br i1 %1894, label %1895, label %.critedge4339, !prof !16

.critedge4339:                                    ; preds = %1886, %1872, %1892
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1895:                                             ; preds = %1892
  %1896 = load ptr, ptr %17, align 8, !tbaa !17
  %1897 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1896, i64 %1888
  %1898 = getelementptr inbounds i8, ptr %1897, i64 8
  %1899 = load ptr, ptr %1898, align 8, !tbaa !18
  %1900 = getelementptr inbounds i8, ptr %1897, i64 16
  %1901 = load ptr, ptr %1900, align 8, !tbaa !23
  tail call void %1899(ptr noundef %1901, i32 noundef %2, i32 noundef %1879, i32 noundef 36431) #4
  %1902 = add i32 %1, 336
  %1903 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1904 = zext i32 %1903 to i64
  %1905 = add nuw nsw i64 %1904, 36
  %1906 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1905)
  %1907 = load i32, ptr %18, align 4, !tbaa !15
  %1908 = icmp ult i32 %1906, %1907
  br i1 %1908, label %1909, label %.critedge4341, !prof !16

1909:                                             ; preds = %1895
  %1910 = load ptr, ptr %17, align 8, !tbaa !17
  %1911 = zext i32 %1906 to i64
  %1912 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1910, i64 %1911
  %1913 = getelementptr inbounds i8, ptr %1912, i64 8
  %1914 = load ptr, ptr %1913, align 8, !tbaa !18
  %.not4106 = icmp eq ptr %1914, null
  br i1 %.not4106, label %.critedge4341, label %1915, !prof !20

1915:                                             ; preds = %1909
  %1916 = load ptr, ptr %1912, align 8, !tbaa !22
  %1917 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1916)
  br i1 %1917, label %1918, label %.critedge4341, !prof !16

.critedge4341:                                    ; preds = %1909, %1895, %1915
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1918:                                             ; preds = %1915
  %1919 = load ptr, ptr %17, align 8, !tbaa !17
  %1920 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1919, i64 %1911
  %1921 = getelementptr inbounds i8, ptr %1920, i64 8
  %1922 = load ptr, ptr %1921, align 8, !tbaa !18
  %1923 = getelementptr inbounds i8, ptr %1920, i64 16
  %1924 = load ptr, ptr %1923, align 8, !tbaa !23
  tail call void %1922(ptr noundef %1924, i32 noundef %2, i32 noundef %1902, i32 noundef 47845) #4
  %1925 = add i32 %1, 344
  %1926 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1927 = zext i32 %1926 to i64
  %1928 = add nuw nsw i64 %1927, 36
  %1929 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1928)
  %1930 = load i32, ptr %18, align 4, !tbaa !15
  %1931 = icmp ult i32 %1929, %1930
  br i1 %1931, label %1932, label %.critedge4343, !prof !16

1932:                                             ; preds = %1918
  %1933 = load ptr, ptr %17, align 8, !tbaa !17
  %1934 = zext i32 %1929 to i64
  %1935 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1933, i64 %1934
  %1936 = getelementptr inbounds i8, ptr %1935, i64 8
  %1937 = load ptr, ptr %1936, align 8, !tbaa !18
  %.not4107 = icmp eq ptr %1937, null
  br i1 %.not4107, label %.critedge4343, label %1938, !prof !20

1938:                                             ; preds = %1932
  %1939 = load ptr, ptr %1935, align 8, !tbaa !22
  %1940 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1939)
  br i1 %1940, label %1941, label %.critedge4343, !prof !16

.critedge4343:                                    ; preds = %1932, %1918, %1938
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1941:                                             ; preds = %1938
  %1942 = load ptr, ptr %17, align 8, !tbaa !17
  %1943 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1942, i64 %1934
  %1944 = getelementptr inbounds i8, ptr %1943, i64 8
  %1945 = load ptr, ptr %1944, align 8, !tbaa !18
  %1946 = getelementptr inbounds i8, ptr %1943, i64 16
  %1947 = load ptr, ptr %1946, align 8, !tbaa !23
  tail call void %1945(ptr noundef %1947, i32 noundef %2, i32 noundef %1925, i32 noundef 36245) #4
  %1948 = add i32 %1, 352
  %1949 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1950 = zext i32 %1949 to i64
  %1951 = add nuw nsw i64 %1950, 36
  %1952 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1951)
  %1953 = load i32, ptr %18, align 4, !tbaa !15
  %1954 = icmp ult i32 %1952, %1953
  br i1 %1954, label %1955, label %.critedge4345, !prof !16

1955:                                             ; preds = %1941
  %1956 = load ptr, ptr %17, align 8, !tbaa !17
  %1957 = zext i32 %1952 to i64
  %1958 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1956, i64 %1957
  %1959 = getelementptr inbounds i8, ptr %1958, i64 8
  %1960 = load ptr, ptr %1959, align 8, !tbaa !18
  %.not4108 = icmp eq ptr %1960, null
  br i1 %.not4108, label %.critedge4345, label %1961, !prof !20

1961:                                             ; preds = %1955
  %1962 = load ptr, ptr %1958, align 8, !tbaa !22
  %1963 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1962)
  br i1 %1963, label %1964, label %.critedge4345, !prof !16

.critedge4345:                                    ; preds = %1955, %1941, %1961
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1964:                                             ; preds = %1961
  %1965 = load ptr, ptr %17, align 8, !tbaa !17
  %1966 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1965, i64 %1957
  %1967 = getelementptr inbounds i8, ptr %1966, i64 8
  %1968 = load ptr, ptr %1967, align 8, !tbaa !18
  %1969 = getelementptr inbounds i8, ptr %1966, i64 16
  %1970 = load ptr, ptr %1969, align 8, !tbaa !23
  tail call void %1968(ptr noundef %1970, i32 noundef %2, i32 noundef %1948, i32 noundef 47818) #4
  %1971 = add i32 %1, 360
  %1972 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1973 = zext i32 %1972 to i64
  %1974 = add nuw nsw i64 %1973, 36
  %1975 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1974)
  %1976 = load i32, ptr %18, align 4, !tbaa !15
  %1977 = icmp ult i32 %1975, %1976
  br i1 %1977, label %1978, label %.critedge4347, !prof !16

1978:                                             ; preds = %1964
  %1979 = load ptr, ptr %17, align 8, !tbaa !17
  %1980 = zext i32 %1975 to i64
  %1981 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1979, i64 %1980
  %1982 = getelementptr inbounds i8, ptr %1981, i64 8
  %1983 = load ptr, ptr %1982, align 8, !tbaa !18
  %.not4109 = icmp eq ptr %1983, null
  br i1 %.not4109, label %.critedge4347, label %1984, !prof !20

1984:                                             ; preds = %1978
  %1985 = load ptr, ptr %1981, align 8, !tbaa !22
  %1986 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %1985)
  br i1 %1986, label %1987, label %.critedge4347, !prof !16

.critedge4347:                                    ; preds = %1978, %1964, %1984
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

1987:                                             ; preds = %1984
  %1988 = load ptr, ptr %17, align 8, !tbaa !17
  %1989 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1988, i64 %1980
  %1990 = getelementptr inbounds i8, ptr %1989, i64 8
  %1991 = load ptr, ptr %1990, align 8, !tbaa !18
  %1992 = getelementptr inbounds i8, ptr %1989, i64 16
  %1993 = load ptr, ptr %1992, align 8, !tbaa !23
  tail call void %1991(ptr noundef %1993, i32 noundef %2, i32 noundef %1971, i32 noundef 36216) #4
  %1994 = add i32 %1, 368
  %1995 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %1996 = zext i32 %1995 to i64
  %1997 = add nuw nsw i64 %1996, 36
  %1998 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %1997)
  %1999 = load i32, ptr %18, align 4, !tbaa !15
  %2000 = icmp ult i32 %1998, %1999
  br i1 %2000, label %2001, label %.critedge4349, !prof !16

2001:                                             ; preds = %1987
  %2002 = load ptr, ptr %17, align 8, !tbaa !17
  %2003 = zext i32 %1998 to i64
  %2004 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2002, i64 %2003
  %2005 = getelementptr inbounds i8, ptr %2004, i64 8
  %2006 = load ptr, ptr %2005, align 8, !tbaa !18
  %.not4110 = icmp eq ptr %2006, null
  br i1 %.not4110, label %.critedge4349, label %2007, !prof !20

2007:                                             ; preds = %2001
  %2008 = load ptr, ptr %2004, align 8, !tbaa !22
  %2009 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2008)
  br i1 %2009, label %2010, label %.critedge4349, !prof !16

.critedge4349:                                    ; preds = %2001, %1987, %2007
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2010:                                             ; preds = %2007
  %2011 = load ptr, ptr %17, align 8, !tbaa !17
  %2012 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2011, i64 %2003
  %2013 = getelementptr inbounds i8, ptr %2012, i64 8
  %2014 = load ptr, ptr %2013, align 8, !tbaa !18
  %2015 = getelementptr inbounds i8, ptr %2012, i64 16
  %2016 = load ptr, ptr %2015, align 8, !tbaa !23
  tail call void %2014(ptr noundef %2016, i32 noundef %2, i32 noundef %1994, i32 noundef 47884) #4
  %2017 = add i32 %1, 376
  %2018 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2019 = zext i32 %2018 to i64
  %2020 = add nuw nsw i64 %2019, 36
  %2021 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2020)
  %2022 = load i32, ptr %18, align 4, !tbaa !15
  %2023 = icmp ult i32 %2021, %2022
  br i1 %2023, label %2024, label %.critedge4351, !prof !16

2024:                                             ; preds = %2010
  %2025 = load ptr, ptr %17, align 8, !tbaa !17
  %2026 = zext i32 %2021 to i64
  %2027 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2025, i64 %2026
  %2028 = getelementptr inbounds i8, ptr %2027, i64 8
  %2029 = load ptr, ptr %2028, align 8, !tbaa !18
  %.not4111 = icmp eq ptr %2029, null
  br i1 %.not4111, label %.critedge4351, label %2030, !prof !20

2030:                                             ; preds = %2024
  %2031 = load ptr, ptr %2027, align 8, !tbaa !22
  %2032 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2031)
  br i1 %2032, label %2033, label %.critedge4351, !prof !16

.critedge4351:                                    ; preds = %2024, %2010, %2030
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2033:                                             ; preds = %2030
  %2034 = load ptr, ptr %17, align 8, !tbaa !17
  %2035 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2034, i64 %2026
  %2036 = getelementptr inbounds i8, ptr %2035, i64 8
  %2037 = load ptr, ptr %2036, align 8, !tbaa !18
  %2038 = getelementptr inbounds i8, ptr %2035, i64 16
  %2039 = load ptr, ptr %2038, align 8, !tbaa !23
  tail call void %2037(ptr noundef %2039, i32 noundef %2, i32 noundef %2017, i32 noundef 36288) #4
  %2040 = add i32 %1, 384
  %2041 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2042 = zext i32 %2041 to i64
  %2043 = add nuw nsw i64 %2042, 36
  %2044 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2043)
  %2045 = load i32, ptr %18, align 4, !tbaa !15
  %2046 = icmp ult i32 %2044, %2045
  br i1 %2046, label %2047, label %.critedge4353, !prof !16

2047:                                             ; preds = %2033
  %2048 = load ptr, ptr %17, align 8, !tbaa !17
  %2049 = zext i32 %2044 to i64
  %2050 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2048, i64 %2049
  %2051 = getelementptr inbounds i8, ptr %2050, i64 8
  %2052 = load ptr, ptr %2051, align 8, !tbaa !18
  %.not4112 = icmp eq ptr %2052, null
  br i1 %.not4112, label %.critedge4353, label %2053, !prof !20

2053:                                             ; preds = %2047
  %2054 = load ptr, ptr %2050, align 8, !tbaa !22
  %2055 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2054)
  br i1 %2055, label %2056, label %.critedge4353, !prof !16

.critedge4353:                                    ; preds = %2047, %2033, %2053
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2056:                                             ; preds = %2053
  %2057 = load ptr, ptr %17, align 8, !tbaa !17
  %2058 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2057, i64 %2049
  %2059 = getelementptr inbounds i8, ptr %2058, i64 8
  %2060 = load ptr, ptr %2059, align 8, !tbaa !18
  %2061 = getelementptr inbounds i8, ptr %2058, i64 16
  %2062 = load ptr, ptr %2061, align 8, !tbaa !23
  tail call void %2060(ptr noundef %2062, i32 noundef %2, i32 noundef %2040, i32 noundef 47994) #4
  %2063 = add i32 %1, 392
  %2064 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2065 = zext i32 %2064 to i64
  %2066 = add nuw nsw i64 %2065, 36
  %2067 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2066)
  %2068 = load i32, ptr %18, align 4, !tbaa !15
  %2069 = icmp ult i32 %2067, %2068
  br i1 %2069, label %2070, label %.critedge4355, !prof !16

2070:                                             ; preds = %2056
  %2071 = load ptr, ptr %17, align 8, !tbaa !17
  %2072 = zext i32 %2067 to i64
  %2073 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2071, i64 %2072
  %2074 = getelementptr inbounds i8, ptr %2073, i64 8
  %2075 = load ptr, ptr %2074, align 8, !tbaa !18
  %.not4113 = icmp eq ptr %2075, null
  br i1 %.not4113, label %.critedge4355, label %2076, !prof !20

2076:                                             ; preds = %2070
  %2077 = load ptr, ptr %2073, align 8, !tbaa !22
  %2078 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2077)
  br i1 %2078, label %2079, label %.critedge4355, !prof !16

.critedge4355:                                    ; preds = %2070, %2056, %2076
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2079:                                             ; preds = %2076
  %2080 = load ptr, ptr %17, align 8, !tbaa !17
  %2081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2080, i64 %2072
  %2082 = getelementptr inbounds i8, ptr %2081, i64 8
  %2083 = load ptr, ptr %2082, align 8, !tbaa !18
  %2084 = getelementptr inbounds i8, ptr %2081, i64 16
  %2085 = load ptr, ptr %2084, align 8, !tbaa !23
  tail call void %2083(ptr noundef %2085, i32 noundef %2, i32 noundef %2063, i32 noundef 36408) #4
  %2086 = add i32 %1, 400
  %2087 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2088 = zext i32 %2087 to i64
  %2089 = add nuw nsw i64 %2088, 36
  %2090 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2089)
  %2091 = load i32, ptr %18, align 4, !tbaa !15
  %2092 = icmp ult i32 %2090, %2091
  br i1 %2092, label %2093, label %.critedge4357, !prof !16

2093:                                             ; preds = %2079
  %2094 = load ptr, ptr %17, align 8, !tbaa !17
  %2095 = zext i32 %2090 to i64
  %2096 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2094, i64 %2095
  %2097 = getelementptr inbounds i8, ptr %2096, i64 8
  %2098 = load ptr, ptr %2097, align 8, !tbaa !18
  %.not4114 = icmp eq ptr %2098, null
  br i1 %.not4114, label %.critedge4357, label %2099, !prof !20

2099:                                             ; preds = %2093
  %2100 = load ptr, ptr %2096, align 8, !tbaa !22
  %2101 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2100)
  br i1 %2101, label %2102, label %.critedge4357, !prof !16

.critedge4357:                                    ; preds = %2093, %2079, %2099
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2102:                                             ; preds = %2099
  %2103 = load ptr, ptr %17, align 8, !tbaa !17
  %2104 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2103, i64 %2095
  %2105 = getelementptr inbounds i8, ptr %2104, i64 8
  %2106 = load ptr, ptr %2105, align 8, !tbaa !18
  %2107 = getelementptr inbounds i8, ptr %2104, i64 16
  %2108 = load ptr, ptr %2107, align 8, !tbaa !23
  tail call void %2106(ptr noundef %2108, i32 noundef %2, i32 noundef %2086, i32 noundef 48035) #4
  %2109 = add i32 %1, 408
  %2110 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2111 = zext i32 %2110 to i64
  %2112 = add nuw nsw i64 %2111, 36
  %2113 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2112)
  %2114 = load i32, ptr %18, align 4, !tbaa !15
  %2115 = icmp ult i32 %2113, %2114
  br i1 %2115, label %2116, label %.critedge4359, !prof !16

2116:                                             ; preds = %2102
  %2117 = load ptr, ptr %17, align 8, !tbaa !17
  %2118 = zext i32 %2113 to i64
  %2119 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2117, i64 %2118
  %2120 = getelementptr inbounds i8, ptr %2119, i64 8
  %2121 = load ptr, ptr %2120, align 8, !tbaa !18
  %.not4115 = icmp eq ptr %2121, null
  br i1 %.not4115, label %.critedge4359, label %2122, !prof !20

2122:                                             ; preds = %2116
  %2123 = load ptr, ptr %2119, align 8, !tbaa !22
  %2124 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2123)
  br i1 %2124, label %2125, label %.critedge4359, !prof !16

.critedge4359:                                    ; preds = %2116, %2102, %2122
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2125:                                             ; preds = %2122
  %2126 = load ptr, ptr %17, align 8, !tbaa !17
  %2127 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2126, i64 %2118
  %2128 = getelementptr inbounds i8, ptr %2127, i64 8
  %2129 = load ptr, ptr %2128, align 8, !tbaa !18
  %2130 = getelementptr inbounds i8, ptr %2127, i64 16
  %2131 = load ptr, ptr %2130, align 8, !tbaa !23
  tail call void %2129(ptr noundef %2131, i32 noundef %2, i32 noundef %2109, i32 noundef 36453) #4
  %2132 = add i32 %1, 416
  %2133 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2134 = zext i32 %2133 to i64
  %2135 = add nuw nsw i64 %2134, 36
  %2136 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2135)
  %2137 = load i32, ptr %18, align 4, !tbaa !15
  %2138 = icmp ult i32 %2136, %2137
  br i1 %2138, label %2139, label %.critedge4361, !prof !16

2139:                                             ; preds = %2125
  %2140 = load ptr, ptr %17, align 8, !tbaa !17
  %2141 = zext i32 %2136 to i64
  %2142 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2140, i64 %2141
  %2143 = getelementptr inbounds i8, ptr %2142, i64 8
  %2144 = load ptr, ptr %2143, align 8, !tbaa !18
  %.not4116 = icmp eq ptr %2144, null
  br i1 %.not4116, label %.critedge4361, label %2145, !prof !20

2145:                                             ; preds = %2139
  %2146 = load ptr, ptr %2142, align 8, !tbaa !22
  %2147 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2146)
  br i1 %2147, label %2148, label %.critedge4361, !prof !16

.critedge4361:                                    ; preds = %2139, %2125, %2145
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2148:                                             ; preds = %2145
  %2149 = load ptr, ptr %17, align 8, !tbaa !17
  %2150 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2149, i64 %2141
  %2151 = getelementptr inbounds i8, ptr %2150, i64 8
  %2152 = load ptr, ptr %2151, align 8, !tbaa !18
  %2153 = getelementptr inbounds i8, ptr %2150, i64 16
  %2154 = load ptr, ptr %2153, align 8, !tbaa !23
  tail call void %2152(ptr noundef %2154, i32 noundef %2, i32 noundef %2132, i32 noundef 47972) #4
  %2155 = add i32 %1, 424
  %2156 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2157 = zext i32 %2156 to i64
  %2158 = add nuw nsw i64 %2157, 36
  %2159 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2158)
  %2160 = load i32, ptr %18, align 4, !tbaa !15
  %2161 = icmp ult i32 %2159, %2160
  br i1 %2161, label %2162, label %.critedge4363, !prof !16

2162:                                             ; preds = %2148
  %2163 = load ptr, ptr %17, align 8, !tbaa !17
  %2164 = zext i32 %2159 to i64
  %2165 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2163, i64 %2164
  %2166 = getelementptr inbounds i8, ptr %2165, i64 8
  %2167 = load ptr, ptr %2166, align 8, !tbaa !18
  %.not4117 = icmp eq ptr %2167, null
  br i1 %.not4117, label %.critedge4363, label %2168, !prof !20

2168:                                             ; preds = %2162
  %2169 = load ptr, ptr %2165, align 8, !tbaa !22
  %2170 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2169)
  br i1 %2170, label %2171, label %.critedge4363, !prof !16

.critedge4363:                                    ; preds = %2162, %2148, %2168
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2171:                                             ; preds = %2168
  %2172 = load ptr, ptr %17, align 8, !tbaa !17
  %2173 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2172, i64 %2164
  %2174 = getelementptr inbounds i8, ptr %2173, i64 8
  %2175 = load ptr, ptr %2174, align 8, !tbaa !18
  %2176 = getelementptr inbounds i8, ptr %2173, i64 16
  %2177 = load ptr, ptr %2176, align 8, !tbaa !23
  tail call void %2175(ptr noundef %2177, i32 noundef %2, i32 noundef %2155, i32 noundef 36384) #4
  %2178 = add i32 %1, 432
  %2179 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2180 = zext i32 %2179 to i64
  %2181 = add nuw nsw i64 %2180, 36
  %2182 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2181)
  %2183 = load i32, ptr %18, align 4, !tbaa !15
  %2184 = icmp ult i32 %2182, %2183
  br i1 %2184, label %2185, label %.critedge4365, !prof !16

2185:                                             ; preds = %2171
  %2186 = load ptr, ptr %17, align 8, !tbaa !17
  %2187 = zext i32 %2182 to i64
  %2188 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2186, i64 %2187
  %2189 = getelementptr inbounds i8, ptr %2188, i64 8
  %2190 = load ptr, ptr %2189, align 8, !tbaa !18
  %.not4118 = icmp eq ptr %2190, null
  br i1 %.not4118, label %.critedge4365, label %2191, !prof !20

2191:                                             ; preds = %2185
  %2192 = load ptr, ptr %2188, align 8, !tbaa !22
  %2193 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2192)
  br i1 %2193, label %2194, label %.critedge4365, !prof !16

.critedge4365:                                    ; preds = %2185, %2171, %2191
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2194:                                             ; preds = %2191
  %2195 = load ptr, ptr %17, align 8, !tbaa !17
  %2196 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2195, i64 %2187
  %2197 = getelementptr inbounds i8, ptr %2196, i64 8
  %2198 = load ptr, ptr %2197, align 8, !tbaa !18
  %2199 = getelementptr inbounds i8, ptr %2196, i64 16
  %2200 = load ptr, ptr %2199, align 8, !tbaa !23
  tail call void %2198(ptr noundef %2200, i32 noundef %2, i32 noundef %2178, i32 noundef 47949) #4
  %2201 = add i32 %1, 440
  %2202 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2203 = zext i32 %2202 to i64
  %2204 = add nuw nsw i64 %2203, 36
  %2205 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2204)
  %2206 = load i32, ptr %18, align 4, !tbaa !15
  %2207 = icmp ult i32 %2205, %2206
  br i1 %2207, label %2208, label %.critedge4367, !prof !16

2208:                                             ; preds = %2194
  %2209 = load ptr, ptr %17, align 8, !tbaa !17
  %2210 = zext i32 %2205 to i64
  %2211 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2209, i64 %2210
  %2212 = getelementptr inbounds i8, ptr %2211, i64 8
  %2213 = load ptr, ptr %2212, align 8, !tbaa !18
  %.not4119 = icmp eq ptr %2213, null
  br i1 %.not4119, label %.critedge4367, label %2214, !prof !20

2214:                                             ; preds = %2208
  %2215 = load ptr, ptr %2211, align 8, !tbaa !22
  %2216 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2215)
  br i1 %2216, label %2217, label %.critedge4367, !prof !16

.critedge4367:                                    ; preds = %2208, %2194, %2214
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2217:                                             ; preds = %2214
  %2218 = load ptr, ptr %17, align 8, !tbaa !17
  %2219 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2218, i64 %2210
  %2220 = getelementptr inbounds i8, ptr %2219, i64 8
  %2221 = load ptr, ptr %2220, align 8, !tbaa !18
  %2222 = getelementptr inbounds i8, ptr %2219, i64 16
  %2223 = load ptr, ptr %2222, align 8, !tbaa !23
  tail call void %2221(ptr noundef %2223, i32 noundef %2, i32 noundef %2201, i32 noundef 36359) #4
  %2224 = add i32 %1, 448
  %2225 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2226 = zext i32 %2225 to i64
  %2227 = add nuw nsw i64 %2226, 36
  %2228 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2227)
  %2229 = load i32, ptr %18, align 4, !tbaa !15
  %2230 = icmp ult i32 %2228, %2229
  br i1 %2230, label %2231, label %.critedge4369, !prof !16

2231:                                             ; preds = %2217
  %2232 = load ptr, ptr %17, align 8, !tbaa !17
  %2233 = zext i32 %2228 to i64
  %2234 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2232, i64 %2233
  %2235 = getelementptr inbounds i8, ptr %2234, i64 8
  %2236 = load ptr, ptr %2235, align 8, !tbaa !18
  %.not4120 = icmp eq ptr %2236, null
  br i1 %.not4120, label %.critedge4369, label %2237, !prof !20

2237:                                             ; preds = %2231
  %2238 = load ptr, ptr %2234, align 8, !tbaa !22
  %2239 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2238)
  br i1 %2239, label %2240, label %.critedge4369, !prof !16

.critedge4369:                                    ; preds = %2231, %2217, %2237
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2240:                                             ; preds = %2237
  %2241 = load ptr, ptr %17, align 8, !tbaa !17
  %2242 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2241, i64 %2233
  %2243 = getelementptr inbounds i8, ptr %2242, i64 8
  %2244 = load ptr, ptr %2243, align 8, !tbaa !18
  %2245 = getelementptr inbounds i8, ptr %2242, i64 16
  %2246 = load ptr, ptr %2245, align 8, !tbaa !23
  tail call void %2244(ptr noundef %2246, i32 noundef %2, i32 noundef %2224, i32 noundef 47925) #4
  %2247 = add i32 %1, 456
  %2248 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2249 = zext i32 %2248 to i64
  %2250 = add nuw nsw i64 %2249, 36
  %2251 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2250)
  %2252 = load i32, ptr %18, align 4, !tbaa !15
  %2253 = icmp ult i32 %2251, %2252
  br i1 %2253, label %2254, label %.critedge4371, !prof !16

2254:                                             ; preds = %2240
  %2255 = load ptr, ptr %17, align 8, !tbaa !17
  %2256 = zext i32 %2251 to i64
  %2257 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2255, i64 %2256
  %2258 = getelementptr inbounds i8, ptr %2257, i64 8
  %2259 = load ptr, ptr %2258, align 8, !tbaa !18
  %.not4121 = icmp eq ptr %2259, null
  br i1 %.not4121, label %.critedge4371, label %2260, !prof !20

2260:                                             ; preds = %2254
  %2261 = load ptr, ptr %2257, align 8, !tbaa !22
  %2262 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2261)
  br i1 %2262, label %2263, label %.critedge4371, !prof !16

.critedge4371:                                    ; preds = %2254, %2240, %2260
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2263:                                             ; preds = %2260
  %2264 = load ptr, ptr %17, align 8, !tbaa !17
  %2265 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2264, i64 %2256
  %2266 = getelementptr inbounds i8, ptr %2265, i64 8
  %2267 = load ptr, ptr %2266, align 8, !tbaa !18
  %2268 = getelementptr inbounds i8, ptr %2265, i64 16
  %2269 = load ptr, ptr %2268, align 8, !tbaa !23
  tail call void %2267(ptr noundef %2269, i32 noundef %2, i32 noundef %2247, i32 noundef 36333) #4
  %2270 = add i32 %1, 464
  %2271 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2272 = zext i32 %2271 to i64
  %2273 = add nuw nsw i64 %2272, 36
  %2274 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2273)
  %2275 = load i32, ptr %18, align 4, !tbaa !15
  %2276 = icmp ult i32 %2274, %2275
  br i1 %2276, label %2277, label %.critedge4373, !prof !16

2277:                                             ; preds = %2263
  %2278 = load ptr, ptr %17, align 8, !tbaa !17
  %2279 = zext i32 %2274 to i64
  %2280 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2278, i64 %2279
  %2281 = getelementptr inbounds i8, ptr %2280, i64 8
  %2282 = load ptr, ptr %2281, align 8, !tbaa !18
  %.not4122 = icmp eq ptr %2282, null
  br i1 %.not4122, label %.critedge4373, label %2283, !prof !20

2283:                                             ; preds = %2277
  %2284 = load ptr, ptr %2280, align 8, !tbaa !22
  %2285 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2284)
  br i1 %2285, label %2286, label %.critedge4373, !prof !16

.critedge4373:                                    ; preds = %2277, %2263, %2283
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2286:                                             ; preds = %2283
  %2287 = load ptr, ptr %17, align 8, !tbaa !17
  %2288 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2287, i64 %2279
  %2289 = getelementptr inbounds i8, ptr %2288, i64 8
  %2290 = load ptr, ptr %2289, align 8, !tbaa !18
  %2291 = getelementptr inbounds i8, ptr %2288, i64 16
  %2292 = load ptr, ptr %2291, align 8, !tbaa !23
  tail call void %2290(ptr noundef %2292, i32 noundef %2, i32 noundef %2270, i32 noundef 48091) #4
  %2293 = add i32 %1, 472
  %2294 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2295 = zext i32 %2294 to i64
  %2296 = add nuw nsw i64 %2295, 36
  %2297 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2296)
  %2298 = load i32, ptr %18, align 4, !tbaa !15
  %2299 = icmp ult i32 %2297, %2298
  br i1 %2299, label %2300, label %.critedge4375, !prof !16

2300:                                             ; preds = %2286
  %2301 = load ptr, ptr %17, align 8, !tbaa !17
  %2302 = zext i32 %2297 to i64
  %2303 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2301, i64 %2302
  %2304 = getelementptr inbounds i8, ptr %2303, i64 8
  %2305 = load ptr, ptr %2304, align 8, !tbaa !18
  %.not4123 = icmp eq ptr %2305, null
  br i1 %.not4123, label %.critedge4375, label %2306, !prof !20

2306:                                             ; preds = %2300
  %2307 = load ptr, ptr %2303, align 8, !tbaa !22
  %2308 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2307)
  br i1 %2308, label %2309, label %.critedge4375, !prof !16

.critedge4375:                                    ; preds = %2300, %2286, %2306
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2309:                                             ; preds = %2306
  %2310 = load ptr, ptr %17, align 8, !tbaa !17
  %2311 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2310, i64 %2302
  %2312 = getelementptr inbounds i8, ptr %2311, i64 8
  %2313 = load ptr, ptr %2312, align 8, !tbaa !18
  %2314 = getelementptr inbounds i8, ptr %2311, i64 16
  %2315 = load ptr, ptr %2314, align 8, !tbaa !23
  tail call void %2313(ptr noundef %2315, i32 noundef %2, i32 noundef %2293, i32 noundef 48178) #4
  %2316 = add i32 %1, 480
  %2317 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2318 = zext i32 %2317 to i64
  %2319 = add nuw nsw i64 %2318, 36
  %2320 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2319)
  %2321 = load i32, ptr %18, align 4, !tbaa !15
  %2322 = icmp ult i32 %2320, %2321
  br i1 %2322, label %2323, label %.critedge4377, !prof !16

2323:                                             ; preds = %2309
  %2324 = load ptr, ptr %17, align 8, !tbaa !17
  %2325 = zext i32 %2320 to i64
  %2326 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2324, i64 %2325
  %2327 = getelementptr inbounds i8, ptr %2326, i64 8
  %2328 = load ptr, ptr %2327, align 8, !tbaa !18
  %.not4124 = icmp eq ptr %2328, null
  br i1 %.not4124, label %.critedge4377, label %2329, !prof !20

2329:                                             ; preds = %2323
  %2330 = load ptr, ptr %2326, align 8, !tbaa !22
  %2331 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2330)
  br i1 %2331, label %2332, label %.critedge4377, !prof !16

.critedge4377:                                    ; preds = %2323, %2309, %2329
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2332:                                             ; preds = %2329
  %2333 = load ptr, ptr %17, align 8, !tbaa !17
  %2334 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2333, i64 %2325
  %2335 = getelementptr inbounds i8, ptr %2334, i64 8
  %2336 = load ptr, ptr %2335, align 8, !tbaa !18
  %2337 = getelementptr inbounds i8, ptr %2334, i64 16
  %2338 = load ptr, ptr %2337, align 8, !tbaa !23
  tail call void %2336(ptr noundef %2338, i32 noundef %2, i32 noundef %2316, i32 noundef 48553) #4
  %2339 = add i32 %1, 488
  %2340 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2341 = zext i32 %2340 to i64
  %2342 = add nuw nsw i64 %2341, 36
  %2343 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2342)
  %2344 = load i32, ptr %18, align 4, !tbaa !15
  %2345 = icmp ult i32 %2343, %2344
  br i1 %2345, label %2346, label %.critedge4379, !prof !16

2346:                                             ; preds = %2332
  %2347 = load ptr, ptr %17, align 8, !tbaa !17
  %2348 = zext i32 %2343 to i64
  %2349 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2347, i64 %2348
  %2350 = getelementptr inbounds i8, ptr %2349, i64 8
  %2351 = load ptr, ptr %2350, align 8, !tbaa !18
  %.not4125 = icmp eq ptr %2351, null
  br i1 %.not4125, label %.critedge4379, label %2352, !prof !20

2352:                                             ; preds = %2346
  %2353 = load ptr, ptr %2349, align 8, !tbaa !22
  %2354 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2353)
  br i1 %2354, label %2355, label %.critedge4379, !prof !16

.critedge4379:                                    ; preds = %2346, %2332, %2352
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2355:                                             ; preds = %2352
  %2356 = load ptr, ptr %17, align 8, !tbaa !17
  %2357 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2356, i64 %2348
  %2358 = getelementptr inbounds i8, ptr %2357, i64 8
  %2359 = load ptr, ptr %2358, align 8, !tbaa !18
  %2360 = getelementptr inbounds i8, ptr %2357, i64 16
  %2361 = load ptr, ptr %2360, align 8, !tbaa !23
  tail call void %2359(ptr noundef %2361, i32 noundef %2, i32 noundef %2339, i32 noundef 48199) #4
  %2362 = add i32 %1, 496
  %2363 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2364 = zext i32 %2363 to i64
  %2365 = add nuw nsw i64 %2364, 36
  %2366 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2365)
  %2367 = load i32, ptr %18, align 4, !tbaa !15
  %2368 = icmp ult i32 %2366, %2367
  br i1 %2368, label %2369, label %.critedge4381, !prof !16

2369:                                             ; preds = %2355
  %2370 = load ptr, ptr %17, align 8, !tbaa !17
  %2371 = zext i32 %2366 to i64
  %2372 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2370, i64 %2371
  %2373 = getelementptr inbounds i8, ptr %2372, i64 8
  %2374 = load ptr, ptr %2373, align 8, !tbaa !18
  %.not4126 = icmp eq ptr %2374, null
  br i1 %.not4126, label %.critedge4381, label %2375, !prof !20

2375:                                             ; preds = %2369
  %2376 = load ptr, ptr %2372, align 8, !tbaa !22
  %2377 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2376)
  br i1 %2377, label %2378, label %.critedge4381, !prof !16

.critedge4381:                                    ; preds = %2369, %2355, %2375
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2378:                                             ; preds = %2375
  %2379 = load ptr, ptr %17, align 8, !tbaa !17
  %2380 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2379, i64 %2371
  %2381 = getelementptr inbounds i8, ptr %2380, i64 8
  %2382 = load ptr, ptr %2381, align 8, !tbaa !18
  %2383 = getelementptr inbounds i8, ptr %2380, i64 16
  %2384 = load ptr, ptr %2383, align 8, !tbaa !23
  tail call void %2382(ptr noundef %2384, i32 noundef %2, i32 noundef %2362, i32 noundef 48566) #4
  %2385 = add i32 %1, 504
  %2386 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2387 = zext i32 %2386 to i64
  %2388 = add nuw nsw i64 %2387, 36
  %2389 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2388)
  %2390 = load i32, ptr %18, align 4, !tbaa !15
  %2391 = icmp ult i32 %2389, %2390
  br i1 %2391, label %2392, label %.critedge4383, !prof !16

2392:                                             ; preds = %2378
  %2393 = load ptr, ptr %17, align 8, !tbaa !17
  %2394 = zext i32 %2389 to i64
  %2395 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2393, i64 %2394
  %2396 = getelementptr inbounds i8, ptr %2395, i64 8
  %2397 = load ptr, ptr %2396, align 8, !tbaa !18
  %.not4127 = icmp eq ptr %2397, null
  br i1 %.not4127, label %.critedge4383, label %2398, !prof !20

2398:                                             ; preds = %2392
  %2399 = load ptr, ptr %2395, align 8, !tbaa !22
  %2400 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2399)
  br i1 %2400, label %2401, label %.critedge4383, !prof !16

.critedge4383:                                    ; preds = %2392, %2378, %2398
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2401:                                             ; preds = %2398
  %2402 = load ptr, ptr %17, align 8, !tbaa !17
  %2403 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2402, i64 %2394
  %2404 = getelementptr inbounds i8, ptr %2403, i64 8
  %2405 = load ptr, ptr %2404, align 8, !tbaa !18
  %2406 = getelementptr inbounds i8, ptr %2403, i64 16
  %2407 = load ptr, ptr %2406, align 8, !tbaa !23
  tail call void %2405(ptr noundef %2407, i32 noundef %2, i32 noundef %2385, i32 noundef 48104) #4
  %2408 = add i32 %1, 512
  %2409 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2410 = zext i32 %2409 to i64
  %2411 = add nuw nsw i64 %2410, 36
  %2412 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2411)
  %2413 = load i32, ptr %18, align 4, !tbaa !15
  %2414 = icmp ult i32 %2412, %2413
  br i1 %2414, label %2415, label %.critedge4385, !prof !16

2415:                                             ; preds = %2401
  %2416 = load ptr, ptr %17, align 8, !tbaa !17
  %2417 = zext i32 %2412 to i64
  %2418 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2416, i64 %2417
  %2419 = getelementptr inbounds i8, ptr %2418, i64 8
  %2420 = load ptr, ptr %2419, align 8, !tbaa !18
  %.not4128 = icmp eq ptr %2420, null
  br i1 %.not4128, label %.critedge4385, label %2421, !prof !20

2421:                                             ; preds = %2415
  %2422 = load ptr, ptr %2418, align 8, !tbaa !22
  %2423 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2422)
  br i1 %2423, label %2424, label %.critedge4385, !prof !16

.critedge4385:                                    ; preds = %2415, %2401, %2421
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2424:                                             ; preds = %2421
  %2425 = load ptr, ptr %17, align 8, !tbaa !17
  %2426 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2425, i64 %2417
  %2427 = getelementptr inbounds i8, ptr %2426, i64 8
  %2428 = load ptr, ptr %2427, align 8, !tbaa !18
  %2429 = getelementptr inbounds i8, ptr %2426, i64 16
  %2430 = load ptr, ptr %2429, align 8, !tbaa !23
  tail call void %2428(ptr noundef %2430, i32 noundef %2, i32 noundef %2408, i32 noundef 48700) #4
  %2431 = add i32 %1, 520
  %2432 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2433 = zext i32 %2432 to i64
  %2434 = add nuw nsw i64 %2433, 36
  %2435 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2434)
  %2436 = load i32, ptr %18, align 4, !tbaa !15
  %2437 = icmp ult i32 %2435, %2436
  br i1 %2437, label %2438, label %.critedge4387, !prof !16

2438:                                             ; preds = %2424
  %2439 = load ptr, ptr %17, align 8, !tbaa !17
  %2440 = zext i32 %2435 to i64
  %2441 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2439, i64 %2440
  %2442 = getelementptr inbounds i8, ptr %2441, i64 8
  %2443 = load ptr, ptr %2442, align 8, !tbaa !18
  %.not4129 = icmp eq ptr %2443, null
  br i1 %.not4129, label %.critedge4387, label %2444, !prof !20

2444:                                             ; preds = %2438
  %2445 = load ptr, ptr %2441, align 8, !tbaa !22
  %2446 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2445)
  br i1 %2446, label %2447, label %.critedge4387, !prof !16

.critedge4387:                                    ; preds = %2438, %2424, %2444
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2447:                                             ; preds = %2444
  %2448 = load ptr, ptr %17, align 8, !tbaa !17
  %2449 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2448, i64 %2440
  %2450 = getelementptr inbounds i8, ptr %2449, i64 8
  %2451 = load ptr, ptr %2450, align 8, !tbaa !18
  %2452 = getelementptr inbounds i8, ptr %2449, i64 16
  %2453 = load ptr, ptr %2452, align 8, !tbaa !23
  tail call void %2451(ptr noundef %2453, i32 noundef %2, i32 noundef %2431, i32 noundef 48537) #4
  %2454 = add i32 %1, 528
  %2455 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2456 = zext i32 %2455 to i64
  %2457 = add nuw nsw i64 %2456, 36
  %2458 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2457)
  %2459 = load i32, ptr %18, align 4, !tbaa !15
  %2460 = icmp ult i32 %2458, %2459
  br i1 %2460, label %2461, label %.critedge4389, !prof !16

2461:                                             ; preds = %2447
  %2462 = load ptr, ptr %17, align 8, !tbaa !17
  %2463 = zext i32 %2458 to i64
  %2464 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2462, i64 %2463
  %2465 = getelementptr inbounds i8, ptr %2464, i64 8
  %2466 = load ptr, ptr %2465, align 8, !tbaa !18
  %.not4130 = icmp eq ptr %2466, null
  br i1 %.not4130, label %.critedge4389, label %2467, !prof !20

2467:                                             ; preds = %2461
  %2468 = load ptr, ptr %2464, align 8, !tbaa !22
  %2469 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2468)
  br i1 %2469, label %2470, label %.critedge4389, !prof !16

.critedge4389:                                    ; preds = %2461, %2447, %2467
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2470:                                             ; preds = %2467
  %2471 = load ptr, ptr %17, align 8, !tbaa !17
  %2472 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2471, i64 %2463
  %2473 = getelementptr inbounds i8, ptr %2472, i64 8
  %2474 = load ptr, ptr %2473, align 8, !tbaa !18
  %2475 = getelementptr inbounds i8, ptr %2472, i64 16
  %2476 = load ptr, ptr %2475, align 8, !tbaa !23
  tail call void %2474(ptr noundef %2476, i32 noundef %2, i32 noundef %2454, i32 noundef 36827) #4
  %2477 = add i32 %1, 536
  %2478 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2479 = zext i32 %2478 to i64
  %2480 = add nuw nsw i64 %2479, 36
  %2481 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2480)
  %2482 = load i32, ptr %18, align 4, !tbaa !15
  %2483 = icmp ult i32 %2481, %2482
  br i1 %2483, label %2484, label %.critedge4391, !prof !16

2484:                                             ; preds = %2470
  %2485 = load ptr, ptr %17, align 8, !tbaa !17
  %2486 = zext i32 %2481 to i64
  %2487 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2485, i64 %2486
  %2488 = getelementptr inbounds i8, ptr %2487, i64 8
  %2489 = load ptr, ptr %2488, align 8, !tbaa !18
  %.not4131 = icmp eq ptr %2489, null
  br i1 %.not4131, label %.critedge4391, label %2490, !prof !20

2490:                                             ; preds = %2484
  %2491 = load ptr, ptr %2487, align 8, !tbaa !22
  %2492 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2491)
  br i1 %2492, label %2493, label %.critedge4391, !prof !16

.critedge4391:                                    ; preds = %2484, %2470, %2490
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2493:                                             ; preds = %2490
  %2494 = load ptr, ptr %17, align 8, !tbaa !17
  %2495 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2494, i64 %2486
  %2496 = getelementptr inbounds i8, ptr %2495, i64 8
  %2497 = load ptr, ptr %2496, align 8, !tbaa !18
  %2498 = getelementptr inbounds i8, ptr %2495, i64 16
  %2499 = load ptr, ptr %2498, align 8, !tbaa !23
  tail call void %2497(ptr noundef %2499, i32 noundef %2, i32 noundef %2477, i32 noundef 18846) #4
  %2500 = add i32 %1, 544
  %2501 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2502 = zext i32 %2501 to i64
  %2503 = add nuw nsw i64 %2502, 36
  %2504 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2503)
  %2505 = load i32, ptr %18, align 4, !tbaa !15
  %2506 = icmp ult i32 %2504, %2505
  br i1 %2506, label %2507, label %.critedge4393, !prof !16

2507:                                             ; preds = %2493
  %2508 = load ptr, ptr %17, align 8, !tbaa !17
  %2509 = zext i32 %2504 to i64
  %2510 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2508, i64 %2509
  %2511 = getelementptr inbounds i8, ptr %2510, i64 8
  %2512 = load ptr, ptr %2511, align 8, !tbaa !18
  %.not4132 = icmp eq ptr %2512, null
  br i1 %.not4132, label %.critedge4393, label %2513, !prof !20

2513:                                             ; preds = %2507
  %2514 = load ptr, ptr %2510, align 8, !tbaa !22
  %2515 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2514)
  br i1 %2515, label %2516, label %.critedge4393, !prof !16

.critedge4393:                                    ; preds = %2507, %2493, %2513
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2516:                                             ; preds = %2513
  %2517 = load ptr, ptr %17, align 8, !tbaa !17
  %2518 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2517, i64 %2509
  %2519 = getelementptr inbounds i8, ptr %2518, i64 8
  %2520 = load ptr, ptr %2519, align 8, !tbaa !18
  %2521 = getelementptr inbounds i8, ptr %2518, i64 16
  %2522 = load ptr, ptr %2521, align 8, !tbaa !23
  tail call void %2520(ptr noundef %2522, i32 noundef %2, i32 noundef %2500, i32 noundef 39592) #4
  %2523 = add i32 %1, 552
  %2524 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2525 = zext i32 %2524 to i64
  %2526 = add nuw nsw i64 %2525, 36
  %2527 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2526)
  %2528 = load i32, ptr %18, align 4, !tbaa !15
  %2529 = icmp ult i32 %2527, %2528
  br i1 %2529, label %2530, label %.critedge4395, !prof !16

2530:                                             ; preds = %2516
  %2531 = load ptr, ptr %17, align 8, !tbaa !17
  %2532 = zext i32 %2527 to i64
  %2533 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2531, i64 %2532
  %2534 = getelementptr inbounds i8, ptr %2533, i64 8
  %2535 = load ptr, ptr %2534, align 8, !tbaa !18
  %.not4133 = icmp eq ptr %2535, null
  br i1 %.not4133, label %.critedge4395, label %2536, !prof !20

2536:                                             ; preds = %2530
  %2537 = load ptr, ptr %2533, align 8, !tbaa !22
  %2538 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2537)
  br i1 %2538, label %2539, label %.critedge4395, !prof !16

.critedge4395:                                    ; preds = %2530, %2516, %2536
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2539:                                             ; preds = %2536
  %2540 = load ptr, ptr %17, align 8, !tbaa !17
  %2541 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2540, i64 %2532
  %2542 = getelementptr inbounds i8, ptr %2541, i64 8
  %2543 = load ptr, ptr %2542, align 8, !tbaa !18
  %2544 = getelementptr inbounds i8, ptr %2541, i64 16
  %2545 = load ptr, ptr %2544, align 8, !tbaa !23
  tail call void %2543(ptr noundef %2545, i32 noundef %2, i32 noundef %2523, i32 noundef 37286) #4
  %2546 = add i32 %1, 560
  %2547 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2548 = zext i32 %2547 to i64
  %2549 = add nuw nsw i64 %2548, 36
  %2550 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2549)
  %2551 = load i32, ptr %18, align 4, !tbaa !15
  %2552 = icmp ult i32 %2550, %2551
  br i1 %2552, label %2553, label %.critedge4397, !prof !16

2553:                                             ; preds = %2539
  %2554 = load ptr, ptr %17, align 8, !tbaa !17
  %2555 = zext i32 %2550 to i64
  %2556 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2554, i64 %2555
  %2557 = getelementptr inbounds i8, ptr %2556, i64 8
  %2558 = load ptr, ptr %2557, align 8, !tbaa !18
  %.not4134 = icmp eq ptr %2558, null
  br i1 %.not4134, label %.critedge4397, label %2559, !prof !20

2559:                                             ; preds = %2553
  %2560 = load ptr, ptr %2556, align 8, !tbaa !22
  %2561 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2560)
  br i1 %2561, label %2562, label %.critedge4397, !prof !16

.critedge4397:                                    ; preds = %2553, %2539, %2559
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2562:                                             ; preds = %2559
  %2563 = load ptr, ptr %17, align 8, !tbaa !17
  %2564 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2563, i64 %2555
  %2565 = getelementptr inbounds i8, ptr %2564, i64 8
  %2566 = load ptr, ptr %2565, align 8, !tbaa !18
  %2567 = getelementptr inbounds i8, ptr %2564, i64 16
  %2568 = load ptr, ptr %2567, align 8, !tbaa !23
  tail call void %2566(ptr noundef %2568, i32 noundef %2, i32 noundef %2546, i32 noundef 33754) #4
  %2569 = add i32 %1, 568
  %2570 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2571 = zext i32 %2570 to i64
  %2572 = add nuw nsw i64 %2571, 36
  %2573 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2572)
  %2574 = load i32, ptr %18, align 4, !tbaa !15
  %2575 = icmp ult i32 %2573, %2574
  br i1 %2575, label %2576, label %.critedge4399, !prof !16

2576:                                             ; preds = %2562
  %2577 = load ptr, ptr %17, align 8, !tbaa !17
  %2578 = zext i32 %2573 to i64
  %2579 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2577, i64 %2578
  %2580 = getelementptr inbounds i8, ptr %2579, i64 8
  %2581 = load ptr, ptr %2580, align 8, !tbaa !18
  %.not4135 = icmp eq ptr %2581, null
  br i1 %.not4135, label %.critedge4399, label %2582, !prof !20

2582:                                             ; preds = %2576
  %2583 = load ptr, ptr %2579, align 8, !tbaa !22
  %2584 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2583)
  br i1 %2584, label %2585, label %.critedge4399, !prof !16

.critedge4399:                                    ; preds = %2576, %2562, %2582
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2585:                                             ; preds = %2582
  %2586 = load ptr, ptr %17, align 8, !tbaa !17
  %2587 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2586, i64 %2578
  %2588 = getelementptr inbounds i8, ptr %2587, i64 8
  %2589 = load ptr, ptr %2588, align 8, !tbaa !18
  %2590 = getelementptr inbounds i8, ptr %2587, i64 16
  %2591 = load ptr, ptr %2590, align 8, !tbaa !23
  tail call void %2589(ptr noundef %2591, i32 noundef %2, i32 noundef %2569, i32 noundef 33775) #4
  %2592 = add i32 %1, 576
  %2593 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2594 = zext i32 %2593 to i64
  %2595 = add nuw nsw i64 %2594, 36
  %2596 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2595)
  %2597 = load i32, ptr %18, align 4, !tbaa !15
  %2598 = icmp ult i32 %2596, %2597
  br i1 %2598, label %2599, label %.critedge4401, !prof !16

2599:                                             ; preds = %2585
  %2600 = load ptr, ptr %17, align 8, !tbaa !17
  %2601 = zext i32 %2596 to i64
  %2602 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2600, i64 %2601
  %2603 = getelementptr inbounds i8, ptr %2602, i64 8
  %2604 = load ptr, ptr %2603, align 8, !tbaa !18
  %.not4136 = icmp eq ptr %2604, null
  br i1 %.not4136, label %.critedge4401, label %2605, !prof !20

2605:                                             ; preds = %2599
  %2606 = load ptr, ptr %2602, align 8, !tbaa !22
  %2607 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2606)
  br i1 %2607, label %2608, label %.critedge4401, !prof !16

.critedge4401:                                    ; preds = %2599, %2585, %2605
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2608:                                             ; preds = %2605
  %2609 = load ptr, ptr %17, align 8, !tbaa !17
  %2610 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2609, i64 %2601
  %2611 = getelementptr inbounds i8, ptr %2610, i64 8
  %2612 = load ptr, ptr %2611, align 8, !tbaa !18
  %2613 = getelementptr inbounds i8, ptr %2610, i64 16
  %2614 = load ptr, ptr %2613, align 8, !tbaa !23
  tail call void %2612(ptr noundef %2614, i32 noundef %2, i32 noundef %2592, i32 noundef 48137) #4
  %2615 = add i32 %1, 584
  %2616 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2617 = zext i32 %2616 to i64
  %2618 = add nuw nsw i64 %2617, 36
  %2619 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2618)
  %2620 = load i32, ptr %18, align 4, !tbaa !15
  %2621 = icmp ult i32 %2619, %2620
  br i1 %2621, label %2622, label %.critedge4403, !prof !16

2622:                                             ; preds = %2608
  %2623 = load ptr, ptr %17, align 8, !tbaa !17
  %2624 = zext i32 %2619 to i64
  %2625 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2623, i64 %2624
  %2626 = getelementptr inbounds i8, ptr %2625, i64 8
  %2627 = load ptr, ptr %2626, align 8, !tbaa !18
  %.not4137 = icmp eq ptr %2627, null
  br i1 %.not4137, label %.critedge4403, label %2628, !prof !20

2628:                                             ; preds = %2622
  %2629 = load ptr, ptr %2625, align 8, !tbaa !22
  %2630 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2629)
  br i1 %2630, label %2631, label %.critedge4403, !prof !16

.critedge4403:                                    ; preds = %2622, %2608, %2628
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2631:                                             ; preds = %2628
  %2632 = load ptr, ptr %17, align 8, !tbaa !17
  %2633 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2632, i64 %2624
  %2634 = getelementptr inbounds i8, ptr %2633, i64 8
  %2635 = load ptr, ptr %2634, align 8, !tbaa !18
  %2636 = getelementptr inbounds i8, ptr %2633, i64 16
  %2637 = load ptr, ptr %2636, align 8, !tbaa !23
  tail call void %2635(ptr noundef %2637, i32 noundef %2, i32 noundef %2615, i32 noundef 48155) #4
  %2638 = add i32 %1, 592
  %2639 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2640 = zext i32 %2639 to i64
  %2641 = add nuw nsw i64 %2640, 36
  %2642 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2641)
  %2643 = load i32, ptr %18, align 4, !tbaa !15
  %2644 = icmp ult i32 %2642, %2643
  br i1 %2644, label %2645, label %.critedge4405, !prof !16

2645:                                             ; preds = %2631
  %2646 = load ptr, ptr %17, align 8, !tbaa !17
  %2647 = zext i32 %2642 to i64
  %2648 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2646, i64 %2647
  %2649 = getelementptr inbounds i8, ptr %2648, i64 8
  %2650 = load ptr, ptr %2649, align 8, !tbaa !18
  %.not4138 = icmp eq ptr %2650, null
  br i1 %.not4138, label %.critedge4405, label %2651, !prof !20

2651:                                             ; preds = %2645
  %2652 = load ptr, ptr %2648, align 8, !tbaa !22
  %2653 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2652)
  br i1 %2653, label %2654, label %.critedge4405, !prof !16

.critedge4405:                                    ; preds = %2645, %2631, %2651
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2654:                                             ; preds = %2651
  %2655 = load ptr, ptr %17, align 8, !tbaa !17
  %2656 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2655, i64 %2647
  %2657 = getelementptr inbounds i8, ptr %2656, i64 8
  %2658 = load ptr, ptr %2657, align 8, !tbaa !18
  %2659 = getelementptr inbounds i8, ptr %2656, i64 16
  %2660 = load ptr, ptr %2659, align 8, !tbaa !23
  tail call void %2658(ptr noundef %2660, i32 noundef %2, i32 noundef %2638, i32 noundef 34744) #4
  %2661 = add i32 %1, 600
  %2662 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2663 = zext i32 %2662 to i64
  %2664 = add nuw nsw i64 %2663, 36
  %2665 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2664)
  %2666 = load i32, ptr %18, align 4, !tbaa !15
  %2667 = icmp ult i32 %2665, %2666
  br i1 %2667, label %2668, label %.critedge4407, !prof !16

2668:                                             ; preds = %2654
  %2669 = load ptr, ptr %17, align 8, !tbaa !17
  %2670 = zext i32 %2665 to i64
  %2671 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2669, i64 %2670
  %2672 = getelementptr inbounds i8, ptr %2671, i64 8
  %2673 = load ptr, ptr %2672, align 8, !tbaa !18
  %.not4139 = icmp eq ptr %2673, null
  br i1 %.not4139, label %.critedge4407, label %2674, !prof !20

2674:                                             ; preds = %2668
  %2675 = load ptr, ptr %2671, align 8, !tbaa !22
  %2676 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2675)
  br i1 %2676, label %2677, label %.critedge4407, !prof !16

.critedge4407:                                    ; preds = %2668, %2654, %2674
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2677:                                             ; preds = %2674
  %2678 = load ptr, ptr %17, align 8, !tbaa !17
  %2679 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2678, i64 %2670
  %2680 = getelementptr inbounds i8, ptr %2679, i64 8
  %2681 = load ptr, ptr %2680, align 8, !tbaa !18
  %2682 = getelementptr inbounds i8, ptr %2679, i64 16
  %2683 = load ptr, ptr %2682, align 8, !tbaa !23
  tail call void %2681(ptr noundef %2683, i32 noundef %2, i32 noundef %2661, i32 noundef 48628) #4
  %2684 = add i32 %1, 608
  %2685 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2686 = zext i32 %2685 to i64
  %2687 = add nuw nsw i64 %2686, 36
  %2688 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2687)
  %2689 = load i32, ptr %18, align 4, !tbaa !15
  %2690 = icmp ult i32 %2688, %2689
  br i1 %2690, label %2691, label %.critedge4409, !prof !16

2691:                                             ; preds = %2677
  %2692 = load ptr, ptr %17, align 8, !tbaa !17
  %2693 = zext i32 %2688 to i64
  %2694 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2692, i64 %2693
  %2695 = getelementptr inbounds i8, ptr %2694, i64 8
  %2696 = load ptr, ptr %2695, align 8, !tbaa !18
  %.not4140 = icmp eq ptr %2696, null
  br i1 %.not4140, label %.critedge4409, label %2697, !prof !20

2697:                                             ; preds = %2691
  %2698 = load ptr, ptr %2694, align 8, !tbaa !22
  %2699 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2698)
  br i1 %2699, label %2700, label %.critedge4409, !prof !16

.critedge4409:                                    ; preds = %2691, %2677, %2697
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2700:                                             ; preds = %2697
  %2701 = load ptr, ptr %17, align 8, !tbaa !17
  %2702 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2701, i64 %2693
  %2703 = getelementptr inbounds i8, ptr %2702, i64 8
  %2704 = load ptr, ptr %2703, align 8, !tbaa !18
  %2705 = getelementptr inbounds i8, ptr %2702, i64 16
  %2706 = load ptr, ptr %2705, align 8, !tbaa !23
  tail call void %2704(ptr noundef %2706, i32 noundef %2, i32 noundef %2684, i32 noundef 48220) #4
  %2707 = add i32 %1, 616
  %2708 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2709 = zext i32 %2708 to i64
  %2710 = add nuw nsw i64 %2709, 36
  %2711 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2710)
  %2712 = load i32, ptr %18, align 4, !tbaa !15
  %2713 = icmp ult i32 %2711, %2712
  br i1 %2713, label %2714, label %.critedge4411, !prof !16

2714:                                             ; preds = %2700
  %2715 = load ptr, ptr %17, align 8, !tbaa !17
  %2716 = zext i32 %2711 to i64
  %2717 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2715, i64 %2716
  %2718 = getelementptr inbounds i8, ptr %2717, i64 8
  %2719 = load ptr, ptr %2718, align 8, !tbaa !18
  %.not4141 = icmp eq ptr %2719, null
  br i1 %.not4141, label %.critedge4411, label %2720, !prof !20

2720:                                             ; preds = %2714
  %2721 = load ptr, ptr %2717, align 8, !tbaa !22
  %2722 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2721)
  br i1 %2722, label %2723, label %.critedge4411, !prof !16

.critedge4411:                                    ; preds = %2714, %2700, %2720
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2723:                                             ; preds = %2720
  %2724 = load ptr, ptr %17, align 8, !tbaa !17
  %2725 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2724, i64 %2716
  %2726 = getelementptr inbounds i8, ptr %2725, i64 8
  %2727 = load ptr, ptr %2726, align 8, !tbaa !18
  %2728 = getelementptr inbounds i8, ptr %2725, i64 16
  %2729 = load ptr, ptr %2728, align 8, !tbaa !23
  tail call void %2727(ptr noundef %2729, i32 noundef %2, i32 noundef %2707, i32 noundef 48244) #4
  %2730 = add i32 %1, 624
  %2731 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2732 = zext i32 %2731 to i64
  %2733 = add nuw nsw i64 %2732, 36
  %2734 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2733)
  %2735 = load i32, ptr %18, align 4, !tbaa !15
  %2736 = icmp ult i32 %2734, %2735
  br i1 %2736, label %2737, label %.critedge4413, !prof !16

2737:                                             ; preds = %2723
  %2738 = load ptr, ptr %17, align 8, !tbaa !17
  %2739 = zext i32 %2734 to i64
  %2740 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2738, i64 %2739
  %2741 = getelementptr inbounds i8, ptr %2740, i64 8
  %2742 = load ptr, ptr %2741, align 8, !tbaa !18
  %.not4142 = icmp eq ptr %2742, null
  br i1 %.not4142, label %.critedge4413, label %2743, !prof !20

2743:                                             ; preds = %2737
  %2744 = load ptr, ptr %2740, align 8, !tbaa !22
  %2745 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2744)
  br i1 %2745, label %2746, label %.critedge4413, !prof !16

.critedge4413:                                    ; preds = %2737, %2723, %2743
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2746:                                             ; preds = %2743
  %2747 = load ptr, ptr %17, align 8, !tbaa !17
  %2748 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2747, i64 %2739
  %2749 = getelementptr inbounds i8, ptr %2748, i64 8
  %2750 = load ptr, ptr %2749, align 8, !tbaa !18
  %2751 = getelementptr inbounds i8, ptr %2748, i64 16
  %2752 = load ptr, ptr %2751, align 8, !tbaa !23
  tail call void %2750(ptr noundef %2752, i32 noundef %2, i32 noundef %2730, i32 noundef 48274) #4
  %2753 = add i32 %1, 632
  %2754 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2755 = zext i32 %2754 to i64
  %2756 = add nuw nsw i64 %2755, 36
  %2757 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2756)
  %2758 = load i32, ptr %18, align 4, !tbaa !15
  %2759 = icmp ult i32 %2757, %2758
  br i1 %2759, label %2760, label %.critedge4415, !prof !16

2760:                                             ; preds = %2746
  %2761 = load ptr, ptr %17, align 8, !tbaa !17
  %2762 = zext i32 %2757 to i64
  %2763 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2761, i64 %2762
  %2764 = getelementptr inbounds i8, ptr %2763, i64 8
  %2765 = load ptr, ptr %2764, align 8, !tbaa !18
  %.not4143 = icmp eq ptr %2765, null
  br i1 %.not4143, label %.critedge4415, label %2766, !prof !20

2766:                                             ; preds = %2760
  %2767 = load ptr, ptr %2763, align 8, !tbaa !22
  %2768 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2767)
  br i1 %2768, label %2769, label %.critedge4415, !prof !16

.critedge4415:                                    ; preds = %2760, %2746, %2766
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2769:                                             ; preds = %2766
  %2770 = load ptr, ptr %17, align 8, !tbaa !17
  %2771 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2770, i64 %2762
  %2772 = getelementptr inbounds i8, ptr %2771, i64 8
  %2773 = load ptr, ptr %2772, align 8, !tbaa !18
  %2774 = getelementptr inbounds i8, ptr %2771, i64 16
  %2775 = load ptr, ptr %2774, align 8, !tbaa !23
  tail call void %2773(ptr noundef %2775, i32 noundef %2, i32 noundef %2753, i32 noundef 48601) #4
  %2776 = add i32 %1, 640
  %2777 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2778 = zext i32 %2777 to i64
  %2779 = add nuw nsw i64 %2778, 36
  %2780 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2779)
  %2781 = load i32, ptr %18, align 4, !tbaa !15
  %2782 = icmp ult i32 %2780, %2781
  br i1 %2782, label %2783, label %.critedge4417, !prof !16

2783:                                             ; preds = %2769
  %2784 = load ptr, ptr %17, align 8, !tbaa !17
  %2785 = zext i32 %2780 to i64
  %2786 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2784, i64 %2785
  %2787 = getelementptr inbounds i8, ptr %2786, i64 8
  %2788 = load ptr, ptr %2787, align 8, !tbaa !18
  %.not4144 = icmp eq ptr %2788, null
  br i1 %.not4144, label %.critedge4417, label %2789, !prof !20

2789:                                             ; preds = %2783
  %2790 = load ptr, ptr %2786, align 8, !tbaa !22
  %2791 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2790)
  br i1 %2791, label %2792, label %.critedge4417, !prof !16

.critedge4417:                                    ; preds = %2783, %2769, %2789
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2792:                                             ; preds = %2789
  %2793 = load ptr, ptr %17, align 8, !tbaa !17
  %2794 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2793, i64 %2785
  %2795 = getelementptr inbounds i8, ptr %2794, i64 8
  %2796 = load ptr, ptr %2795, align 8, !tbaa !18
  %2797 = getelementptr inbounds i8, ptr %2794, i64 16
  %2798 = load ptr, ptr %2797, align 8, !tbaa !23
  tail call void %2796(ptr noundef %2798, i32 noundef %2, i32 noundef %2776, i32 noundef 41328) #4
  %2799 = add i32 %1, 648
  %2800 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2801 = zext i32 %2800 to i64
  %2802 = add nuw nsw i64 %2801, 36
  %2803 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2802)
  %2804 = load i32, ptr %18, align 4, !tbaa !15
  %2805 = icmp ult i32 %2803, %2804
  br i1 %2805, label %2806, label %.critedge4419, !prof !16

2806:                                             ; preds = %2792
  %2807 = load ptr, ptr %17, align 8, !tbaa !17
  %2808 = zext i32 %2803 to i64
  %2809 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2807, i64 %2808
  %2810 = getelementptr inbounds i8, ptr %2809, i64 8
  %2811 = load ptr, ptr %2810, align 8, !tbaa !18
  %.not4145 = icmp eq ptr %2811, null
  br i1 %.not4145, label %.critedge4419, label %2812, !prof !20

2812:                                             ; preds = %2806
  %2813 = load ptr, ptr %2809, align 8, !tbaa !22
  %2814 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2813)
  br i1 %2814, label %2815, label %.critedge4419, !prof !16

.critedge4419:                                    ; preds = %2806, %2792, %2812
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2815:                                             ; preds = %2812
  %2816 = load ptr, ptr %17, align 8, !tbaa !17
  %2817 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2816, i64 %2808
  %2818 = getelementptr inbounds i8, ptr %2817, i64 8
  %2819 = load ptr, ptr %2818, align 8, !tbaa !18
  %2820 = getelementptr inbounds i8, ptr %2817, i64 16
  %2821 = load ptr, ptr %2820, align 8, !tbaa !23
  tail call void %2819(ptr noundef %2821, i32 noundef %2, i32 noundef %2799, i32 noundef 41345) #4
  %2822 = add i32 %1, 656
  %2823 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2824 = zext i32 %2823 to i64
  %2825 = add nuw nsw i64 %2824, 36
  %2826 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2825)
  %2827 = load i32, ptr %18, align 4, !tbaa !15
  %2828 = icmp ult i32 %2826, %2827
  br i1 %2828, label %2829, label %.critedge4421, !prof !16

2829:                                             ; preds = %2815
  %2830 = load ptr, ptr %17, align 8, !tbaa !17
  %2831 = zext i32 %2826 to i64
  %2832 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2830, i64 %2831
  %2833 = getelementptr inbounds i8, ptr %2832, i64 8
  %2834 = load ptr, ptr %2833, align 8, !tbaa !18
  %.not4146 = icmp eq ptr %2834, null
  br i1 %.not4146, label %.critedge4421, label %2835, !prof !20

2835:                                             ; preds = %2829
  %2836 = load ptr, ptr %2832, align 8, !tbaa !22
  %2837 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2836)
  br i1 %2837, label %2838, label %.critedge4421, !prof !16

.critedge4421:                                    ; preds = %2829, %2815, %2835
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2838:                                             ; preds = %2835
  %2839 = load ptr, ptr %17, align 8, !tbaa !17
  %2840 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2839, i64 %2831
  %2841 = getelementptr inbounds i8, ptr %2840, i64 8
  %2842 = load ptr, ptr %2841, align 8, !tbaa !18
  %2843 = getelementptr inbounds i8, ptr %2840, i64 16
  %2844 = load ptr, ptr %2843, align 8, !tbaa !23
  tail call void %2842(ptr noundef %2844, i32 noundef %2, i32 noundef %2822, i32 noundef 41378) #4
  %2845 = add i32 %1, 664
  %2846 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2847 = zext i32 %2846 to i64
  %2848 = add nuw nsw i64 %2847, 36
  %2849 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2848)
  %2850 = load i32, ptr %18, align 4, !tbaa !15
  %2851 = icmp ult i32 %2849, %2850
  br i1 %2851, label %2852, label %.critedge4423, !prof !16

2852:                                             ; preds = %2838
  %2853 = load ptr, ptr %17, align 8, !tbaa !17
  %2854 = zext i32 %2849 to i64
  %2855 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2853, i64 %2854
  %2856 = getelementptr inbounds i8, ptr %2855, i64 8
  %2857 = load ptr, ptr %2856, align 8, !tbaa !18
  %.not4147 = icmp eq ptr %2857, null
  br i1 %.not4147, label %.critedge4423, label %2858, !prof !20

2858:                                             ; preds = %2852
  %2859 = load ptr, ptr %2855, align 8, !tbaa !22
  %2860 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2859)
  br i1 %2860, label %2861, label %.critedge4423, !prof !16

.critedge4423:                                    ; preds = %2852, %2838, %2858
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2861:                                             ; preds = %2858
  %2862 = load ptr, ptr %17, align 8, !tbaa !17
  %2863 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2862, i64 %2854
  %2864 = getelementptr inbounds i8, ptr %2863, i64 8
  %2865 = load ptr, ptr %2864, align 8, !tbaa !18
  %2866 = getelementptr inbounds i8, ptr %2863, i64 16
  %2867 = load ptr, ptr %2866, align 8, !tbaa !23
  tail call void %2865(ptr noundef %2867, i32 noundef %2, i32 noundef %2845, i32 noundef 37309) #4
  %2868 = add i32 %1, 672
  %2869 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2870 = zext i32 %2869 to i64
  %2871 = add nuw nsw i64 %2870, 36
  %2872 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2871)
  %2873 = load i32, ptr %18, align 4, !tbaa !15
  %2874 = icmp ult i32 %2872, %2873
  br i1 %2874, label %2875, label %.critedge4425, !prof !16

2875:                                             ; preds = %2861
  %2876 = load ptr, ptr %17, align 8, !tbaa !17
  %2877 = zext i32 %2872 to i64
  %2878 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2876, i64 %2877
  %2879 = getelementptr inbounds i8, ptr %2878, i64 8
  %2880 = load ptr, ptr %2879, align 8, !tbaa !18
  %.not4148 = icmp eq ptr %2880, null
  br i1 %.not4148, label %.critedge4425, label %2881, !prof !20

2881:                                             ; preds = %2875
  %2882 = load ptr, ptr %2878, align 8, !tbaa !22
  %2883 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2882)
  br i1 %2883, label %2884, label %.critedge4425, !prof !16

.critedge4425:                                    ; preds = %2875, %2861, %2881
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2884:                                             ; preds = %2881
  %2885 = load ptr, ptr %17, align 8, !tbaa !17
  %2886 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2885, i64 %2877
  %2887 = getelementptr inbounds i8, ptr %2886, i64 8
  %2888 = load ptr, ptr %2887, align 8, !tbaa !18
  %2889 = getelementptr inbounds i8, ptr %2886, i64 16
  %2890 = load ptr, ptr %2889, align 8, !tbaa !23
  tail call void %2888(ptr noundef %2890, i32 noundef %2, i32 noundef %2868, i32 noundef 48717) #4
  %2891 = add i32 %1, 680
  %2892 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2893 = zext i32 %2892 to i64
  %2894 = add nuw nsw i64 %2893, 36
  %2895 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2894)
  %2896 = load i32, ptr %18, align 4, !tbaa !15
  %2897 = icmp ult i32 %2895, %2896
  br i1 %2897, label %2898, label %.critedge4427, !prof !16

2898:                                             ; preds = %2884
  %2899 = load ptr, ptr %17, align 8, !tbaa !17
  %2900 = zext i32 %2895 to i64
  %2901 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2899, i64 %2900
  %2902 = getelementptr inbounds i8, ptr %2901, i64 8
  %2903 = load ptr, ptr %2902, align 8, !tbaa !18
  %.not4149 = icmp eq ptr %2903, null
  br i1 %.not4149, label %.critedge4427, label %2904, !prof !20

2904:                                             ; preds = %2898
  %2905 = load ptr, ptr %2901, align 8, !tbaa !22
  %2906 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2905)
  br i1 %2906, label %2907, label %.critedge4427, !prof !16

.critedge4427:                                    ; preds = %2898, %2884, %2904
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2907:                                             ; preds = %2904
  %2908 = load ptr, ptr %17, align 8, !tbaa !17
  %2909 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2908, i64 %2900
  %2910 = getelementptr inbounds i8, ptr %2909, i64 8
  %2911 = load ptr, ptr %2910, align 8, !tbaa !18
  %2912 = getelementptr inbounds i8, ptr %2909, i64 16
  %2913 = load ptr, ptr %2912, align 8, !tbaa !23
  tail call void %2911(ptr noundef %2913, i32 noundef %2, i32 noundef %2891, i32 noundef 48500) #4
  %2914 = add i32 %1, 728
  %2915 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2916 = zext i32 %2915 to i64
  %2917 = add nuw nsw i64 %2916, 32
  %2918 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2917)
  %2919 = load i32, ptr %18, align 4, !tbaa !15
  %2920 = icmp ult i32 %2918, %2919
  br i1 %2920, label %2921, label %.critedge4429, !prof !16

2921:                                             ; preds = %2907
  %2922 = load ptr, ptr %17, align 8, !tbaa !17
  %2923 = zext i32 %2918 to i64
  %2924 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2922, i64 %2923
  %2925 = getelementptr inbounds i8, ptr %2924, i64 8
  %2926 = load ptr, ptr %2925, align 8, !tbaa !18
  %.not4150 = icmp eq ptr %2926, null
  br i1 %.not4150, label %.critedge4429, label %2927, !prof !20

2927:                                             ; preds = %2921
  %2928 = load ptr, ptr %2924, align 8, !tbaa !22
  %2929 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2928)
  br i1 %2929, label %2930, label %.critedge4429, !prof !16

.critedge4429:                                    ; preds = %2921, %2907, %2927
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2930:                                             ; preds = %2927
  %2931 = load ptr, ptr %17, align 8, !tbaa !17
  %2932 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2931, i64 %2923
  %2933 = getelementptr inbounds i8, ptr %2932, i64 8
  %2934 = load ptr, ptr %2933, align 8, !tbaa !18
  %2935 = getelementptr inbounds i8, ptr %2932, i64 16
  %2936 = load ptr, ptr %2935, align 8, !tbaa !23
  tail call void %2934(ptr noundef %2936, i32 noundef %2, i32 noundef %2914, i32 noundef 48121) #4
  %2937 = add i32 %1, 732
  %2938 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2939 = zext i32 %2938 to i64
  %2940 = add nuw nsw i64 %2939, 32
  %2941 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2940)
  %2942 = load i32, ptr %18, align 4, !tbaa !15
  %2943 = icmp ult i32 %2941, %2942
  br i1 %2943, label %2944, label %.critedge4431, !prof !16

2944:                                             ; preds = %2930
  %2945 = load ptr, ptr %17, align 8, !tbaa !17
  %2946 = zext i32 %2941 to i64
  %2947 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2945, i64 %2946
  %2948 = getelementptr inbounds i8, ptr %2947, i64 8
  %2949 = load ptr, ptr %2948, align 8, !tbaa !18
  %.not4151 = icmp eq ptr %2949, null
  br i1 %.not4151, label %.critedge4431, label %2950, !prof !20

2950:                                             ; preds = %2944
  %2951 = load ptr, ptr %2947, align 8, !tbaa !22
  %2952 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %2951)
  br i1 %2952, label %2953, label %.critedge4431, !prof !16

.critedge4431:                                    ; preds = %2944, %2930, %2950
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2953:                                             ; preds = %2950
  %2954 = load ptr, ptr %17, align 8, !tbaa !17
  %2955 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2954, i64 %2946
  %2956 = getelementptr inbounds i8, ptr %2955, i64 8
  %2957 = load ptr, ptr %2956, align 8, !tbaa !18
  %2958 = getelementptr inbounds i8, ptr %2955, i64 16
  %2959 = load ptr, ptr %2958, align 8, !tbaa !23
  tail call void %2957(ptr noundef %2959, i32 noundef %2, i32 noundef %2937, i32 noundef 48583) #4
  %2960 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2961 = zext i32 %2960 to i64
  %2962 = add nuw nsw i64 %2961, 12
  %2963 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2962)
  %2964 = load i32, ptr %18, align 4, !tbaa !15
  %2965 = icmp ult i32 %2963, %2964
  br i1 %2965, label %2966, label %.critedge4433, !prof !16

2966:                                             ; preds = %2953
  %2967 = load ptr, ptr %17, align 8, !tbaa !17
  %2968 = zext i32 %2963 to i64
  %2969 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2967, i64 %2968
  %2970 = getelementptr inbounds i8, ptr %2969, i64 8
  %2971 = load ptr, ptr %2970, align 8, !tbaa !18
  %.not4152 = icmp eq ptr %2971, null
  br i1 %.not4152, label %.critedge4433, label %2972, !prof !20

2972:                                             ; preds = %2966
  %2973 = load ptr, ptr %2969, align 8, !tbaa !22
  %2974 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %2973)
  br i1 %2974, label %2975, label %.critedge4433, !prof !16

.critedge4433:                                    ; preds = %2966, %2953, %2972
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

2975:                                             ; preds = %2972
  %2976 = load ptr, ptr %17, align 8, !tbaa !17
  %2977 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2976, i64 %2968
  %2978 = getelementptr inbounds i8, ptr %2977, i64 8
  %2979 = load ptr, ptr %2978, align 8, !tbaa !18
  %2980 = getelementptr inbounds i8, ptr %2977, i64 16
  %2981 = load ptr, ptr %2980, align 8, !tbaa !23
  tail call void %2979(ptr noundef %2981, i32 noundef %2) #4
  %2982 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %0) #4
  %2983 = add i32 %1, 5376
  %2984 = zext i32 %2983 to i64
  %2985 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %2984)
  %2986 = sub i64 %2982, %959
  %2987 = sitofp i64 %2986 to double
  %2988 = fdiv double %2987, 1.000000e+09
  %2989 = fadd double %2985, %2988
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %2984, double noundef %2989)
  %2990 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef %0) #4
  br i1 %.not4047, label %3072, label %2991

2991:                                             ; preds = %2975
  %2992 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %2993 = zext i32 %2992 to i64
  %2994 = add nuw nsw i64 %2993, 8
  %2995 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %2994)
  %2996 = load i32, ptr %18, align 4, !tbaa !15
  %2997 = icmp ult i32 %2995, %2996
  br i1 %2997, label %2998, label %.critedge4435, !prof !16

2998:                                             ; preds = %2991
  %2999 = load ptr, ptr %17, align 8, !tbaa !17
  %3000 = zext i32 %2995 to i64
  %3001 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2999, i64 %3000
  %3002 = getelementptr inbounds i8, ptr %3001, i64 8
  %3003 = load ptr, ptr %3002, align 8, !tbaa !18
  %.not4153 = icmp eq ptr %3003, null
  br i1 %.not4153, label %.critedge4435, label %3004, !prof !20

3004:                                             ; preds = %2998
  %3005 = load ptr, ptr %3001, align 8, !tbaa !22
  %3006 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3005)
  br i1 %3006, label %3007, label %.critedge4435, !prof !16

.critedge4435:                                    ; preds = %2998, %2991, %3004
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3007:                                             ; preds = %3004
  %3008 = load ptr, ptr %17, align 8, !tbaa !17
  %3009 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3008, i64 %3000
  %3010 = getelementptr inbounds i8, ptr %3009, i64 8
  %3011 = load ptr, ptr %3010, align 8, !tbaa !18
  %3012 = getelementptr inbounds i8, ptr %3009, i64 16
  %3013 = load ptr, ptr %3012, align 8, !tbaa !23
  tail call void %3011(ptr noundef %3013, i32 noundef %2, i32 noundef 9) #4
  %3014 = add i32 %1, 5468
  %3015 = zext i32 %3014 to i64
  %3016 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3015)
  %3017 = add nuw nsw i64 %3015, 4
  %3018 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3017)
  %.not4154 = icmp eq i32 %3016, %3018
  br i1 %.not4154, label %.loopexit4485, label %.preheader4484

.preheader4484:                                   ; preds = %3007, %3048
  %.43836 = phi i32 [ %3049, %3048 ], [ %3016, %3007 ]
  %3019 = zext i32 %.43836 to i64
  %3020 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3019)
  %.not4155 = icmp eq i32 %3020, 0
  br i1 %.not4155, label %3048, label %3021

3021:                                             ; preds = %.preheader4484
  %3022 = add nuw nsw i64 %3019, 4
  %3023 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3022)
  %3024 = icmp ult i32 %3023, -8
  br i1 %3024, label %3048, label %3025

3025:                                             ; preds = %3021
  %3026 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3027 = zext i32 %3026 to i64
  %3028 = add nuw nsw i64 %3027, 16
  %3029 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3028)
  %3030 = load i32, ptr %18, align 4, !tbaa !15
  %3031 = icmp ult i32 %3029, %3030
  br i1 %3031, label %3032, label %.critedge4437, !prof !16

3032:                                             ; preds = %3025
  %3033 = load ptr, ptr %17, align 8, !tbaa !17
  %3034 = zext i32 %3029 to i64
  %3035 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3033, i64 %3034
  %3036 = getelementptr inbounds i8, ptr %3035, i64 8
  %3037 = load ptr, ptr %3036, align 8, !tbaa !18
  %.not4156 = icmp eq ptr %3037, null
  br i1 %.not4156, label %.critedge4437, label %3038, !prof !20

3038:                                             ; preds = %3032
  %3039 = load ptr, ptr %3035, align 8, !tbaa !22
  %3040 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3039)
  br i1 %3040, label %3041, label %.critedge4437, !prof !16

.critedge4437:                                    ; preds = %3032, %3025, %3038
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3041:                                             ; preds = %3038
  %3042 = load ptr, ptr %17, align 8, !tbaa !17
  %3043 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3042, i64 %3034
  %3044 = getelementptr inbounds i8, ptr %3043, i64 8
  %3045 = load ptr, ptr %3044, align 8, !tbaa !18
  %3046 = getelementptr inbounds i8, ptr %3043, i64 16
  %3047 = load ptr, ptr %3046, align 8, !tbaa !23
  tail call void %3045(ptr noundef %3047, i32 noundef %2, i32 noundef %.43836) #4
  br label %3048

3048:                                             ; preds = %3021, %.preheader4484, %3041
  %3049 = add i32 %.43836, 12
  %.not4157 = icmp eq i32 %3049, %3018
  br i1 %.not4157, label %.loopexit4485, label %.preheader4484

.loopexit4485:                                    ; preds = %3048, %3007
  %3050 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3051 = zext i32 %3050 to i64
  %3052 = add nuw nsw i64 %3051, 12
  %3053 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3052)
  %3054 = load i32, ptr %18, align 4, !tbaa !15
  %3055 = icmp ult i32 %3053, %3054
  br i1 %3055, label %3056, label %.critedge4439, !prof !16

3056:                                             ; preds = %.loopexit4485
  %3057 = load ptr, ptr %17, align 8, !tbaa !17
  %3058 = zext i32 %3053 to i64
  %3059 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3057, i64 %3058
  %3060 = getelementptr inbounds i8, ptr %3059, i64 8
  %3061 = load ptr, ptr %3060, align 8, !tbaa !18
  %.not4158 = icmp eq ptr %3061, null
  br i1 %.not4158, label %.critedge4439, label %3062, !prof !20

3062:                                             ; preds = %3056
  %3063 = load ptr, ptr %3059, align 8, !tbaa !22
  %3064 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %3063)
  br i1 %3064, label %3065, label %.critedge4439, !prof !16

.critedge4439:                                    ; preds = %3056, %.loopexit4485, %3062
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3065:                                             ; preds = %3062
  %3066 = load ptr, ptr %17, align 8, !tbaa !17
  %3067 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3066, i64 %3058
  %3068 = getelementptr inbounds i8, ptr %3067, i64 8
  %3069 = load ptr, ptr %3068, align 8, !tbaa !18
  %3070 = getelementptr inbounds i8, ptr %3067, i64 16
  %3071 = load ptr, ptr %3070, align 8, !tbaa !23
  tail call void %3069(ptr noundef %3071, i32 noundef %2) #4
  br label %3072

3072:                                             ; preds = %3065, %2975
  %3073 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3074 = add i32 %1, 5392
  %3075 = zext i32 %3074 to i64
  %3076 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %3075)
  %3077 = sub i64 %3073, %2990
  %3078 = sitofp i64 %3077 to double
  %3079 = fdiv double %3078, 1.000000e+09
  %3080 = fadd double %3076, %3079
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %3075, double noundef %3080)
  %3081 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3082 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3083 = zext i32 %3082 to i64
  %3084 = add nuw nsw i64 %3083, 8
  %3085 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3084)
  %3086 = load i32, ptr %18, align 4, !tbaa !15
  %3087 = icmp ult i32 %3085, %3086
  br i1 %3087, label %3088, label %.critedge4441, !prof !16

3088:                                             ; preds = %3072
  %3089 = load ptr, ptr %17, align 8, !tbaa !17
  %3090 = zext i32 %3085 to i64
  %3091 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3089, i64 %3090
  %3092 = getelementptr inbounds i8, ptr %3091, i64 8
  %3093 = load ptr, ptr %3092, align 8, !tbaa !18
  %.not4159 = icmp eq ptr %3093, null
  br i1 %.not4159, label %.critedge4441, label %3094, !prof !20

3094:                                             ; preds = %3088
  %3095 = load ptr, ptr %3091, align 8, !tbaa !22
  %3096 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3095)
  br i1 %3096, label %3097, label %.critedge4441, !prof !16

.critedge4441:                                    ; preds = %3088, %3072, %3094
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3097:                                             ; preds = %3094
  %3098 = load ptr, ptr %17, align 8, !tbaa !17
  %3099 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3098, i64 %3090
  %3100 = getelementptr inbounds i8, ptr %3099, i64 8
  %3101 = load ptr, ptr %3100, align 8, !tbaa !18
  %3102 = getelementptr inbounds i8, ptr %3099, i64 16
  %3103 = load ptr, ptr %3102, align 8, !tbaa !23
  tail call void %3101(ptr noundef %3103, i32 noundef %2, i32 noundef 10) #4
  %3104 = add nuw nsw i64 %10, 4
  %3105 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3104)
  %.not4160 = icmp eq i32 %3105, 0
  br i1 %.not4160, label %.loopexit4483, label %.preheader4482

.preheader4482:                                   ; preds = %3097, %.loopexit4481
  %.7 = phi i32 [ %3149, %.loopexit4481 ], [ %3105, %3097 ]
  %3106 = zext i32 %.7 to i64
  %3107 = add nuw nsw i64 %3106, 136
  %3108 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3107)
  %3109 = add nuw nsw i64 %3106, 172
  %3110 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3109)
  %3111 = shl i32 %3110, 2
  %3112 = add i32 %3111, %3108
  %3113 = add i32 %3112, 4
  %.not4161 = icmp eq i32 %3108, %3113
  br i1 %.not4161, label %.loopexit4481, label %.preheader4480

.preheader4480:                                   ; preds = %.preheader4482
  %3114 = add nuw nsw i64 %3106, 164
  %3115 = add nuw nsw i64 %3106, 168
  br label %3116

3116:                                             ; preds = %.preheader4480, %.loopexit4479
  %.23823 = phi i32 [ %3147, %.loopexit4479 ], [ %3108, %.preheader4480 ]
  %3117 = zext i32 %.23823 to i64
  %3118 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3117)
  %3119 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3114)
  %3120 = add i32 %3118, 128
  %3121 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3115)
  %3122 = icmp eq i32 %3120, %3121
  %3123 = select i1 %3122, i32 %3119, i32 %3120
  %.not4162 = icmp eq i32 %3118, %3123
  br i1 %.not4162, label %.loopexit4479, label %.preheader4478

.preheader4478:                                   ; preds = %3116, %3139
  %.03824 = phi i32 [ %3146, %3139 ], [ %3118, %3116 ]
  %3124 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3125 = zext i32 %3124 to i64
  %3126 = add nuw nsw i64 %3125, 24
  %3127 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3126)
  %3128 = load i32, ptr %18, align 4, !tbaa !15
  %3129 = icmp ult i32 %3127, %3128
  br i1 %3129, label %3130, label %.critedge4443, !prof !16

3130:                                             ; preds = %.preheader4478
  %3131 = load ptr, ptr %17, align 8, !tbaa !17
  %3132 = zext i32 %3127 to i64
  %3133 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3131, i64 %3132
  %3134 = getelementptr inbounds i8, ptr %3133, i64 8
  %3135 = load ptr, ptr %3134, align 8, !tbaa !18
  %.not4163 = icmp eq ptr %3135, null
  br i1 %.not4163, label %.critedge4443, label %3136, !prof !20

3136:                                             ; preds = %3130
  %3137 = load ptr, ptr %3133, align 8, !tbaa !22
  %3138 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3137)
  br i1 %3138, label %3139, label %.critedge4443, !prof !16

.critedge4443:                                    ; preds = %3130, %.preheader4478, %3136
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3139:                                             ; preds = %3136
  %3140 = load ptr, ptr %17, align 8, !tbaa !17
  %3141 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3140, i64 %3132
  %3142 = getelementptr inbounds i8, ptr %3141, i64 8
  %3143 = load ptr, ptr %3142, align 8, !tbaa !18
  %3144 = getelementptr inbounds i8, ptr %3141, i64 16
  %3145 = load ptr, ptr %3144, align 8, !tbaa !23
  tail call void %3143(ptr noundef %3145, i32 noundef %2, i32 noundef %.03824) #4
  %3146 = add i32 %.03824, 8
  %.not4164 = icmp eq i32 %3146, %3123
  br i1 %.not4164, label %.loopexit4479, label %.preheader4478

.loopexit4479:                                    ; preds = %3139, %3116
  %.not4165 = icmp eq i32 %3112, %.23823
  %3147 = add i32 %.23823, 4
  br i1 %.not4165, label %.loopexit4481, label %3116

.loopexit4481:                                    ; preds = %.loopexit4479, %.preheader4482
  %3148 = add nuw nsw i64 %3106, 4
  %3149 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3148)
  %.not4166 = icmp eq i32 %3149, 0
  br i1 %.not4166, label %.loopexit4483, label %.preheader4482

.loopexit4483:                                    ; preds = %.loopexit4481, %3097
  %3150 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3151 = zext i32 %3150 to i64
  %3152 = add nuw nsw i64 %3151, 12
  %3153 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3152)
  %3154 = load i32, ptr %18, align 4, !tbaa !15
  %3155 = icmp ult i32 %3153, %3154
  br i1 %3155, label %3156, label %.critedge4445, !prof !16

3156:                                             ; preds = %.loopexit4483
  %3157 = load ptr, ptr %17, align 8, !tbaa !17
  %3158 = zext i32 %3153 to i64
  %3159 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3157, i64 %3158
  %3160 = getelementptr inbounds i8, ptr %3159, i64 8
  %3161 = load ptr, ptr %3160, align 8, !tbaa !18
  %.not4167 = icmp eq ptr %3161, null
  br i1 %.not4167, label %.critedge4445, label %3162, !prof !20

3162:                                             ; preds = %3156
  %3163 = load ptr, ptr %3159, align 8, !tbaa !22
  %3164 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %3163)
  br i1 %3164, label %3165, label %.critedge4445, !prof !16

.critedge4445:                                    ; preds = %3156, %.loopexit4483, %3162
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3165:                                             ; preds = %3162
  %3166 = load ptr, ptr %17, align 8, !tbaa !17
  %3167 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3166, i64 %3158
  %3168 = getelementptr inbounds i8, ptr %3167, i64 8
  %3169 = load ptr, ptr %3168, align 8, !tbaa !18
  %3170 = getelementptr inbounds i8, ptr %3167, i64 16
  %3171 = load ptr, ptr %3170, align 8, !tbaa !23
  tail call void %3169(ptr noundef %3171, i32 noundef %2) #4
  %3172 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3173 = add i32 %1, 5400
  %3174 = zext i32 %3173 to i64
  %3175 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %3174)
  %3176 = sub i64 %3172, %3081
  %3177 = sitofp i64 %3176 to double
  %3178 = fdiv double %3177, 1.000000e+09
  %3179 = fadd double %3175, %3178
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %3174, double noundef %3179)
  %3180 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3181 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3182 = zext i32 %3181 to i64
  %3183 = add nuw nsw i64 %3182, 8
  %3184 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3183)
  %3185 = load i32, ptr %18, align 4, !tbaa !15
  %3186 = icmp ult i32 %3184, %3185
  br i1 %3186, label %3187, label %.critedge4447, !prof !16

3187:                                             ; preds = %3165
  %3188 = load ptr, ptr %17, align 8, !tbaa !17
  %3189 = zext i32 %3184 to i64
  %3190 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3188, i64 %3189
  %3191 = getelementptr inbounds i8, ptr %3190, i64 8
  %3192 = load ptr, ptr %3191, align 8, !tbaa !18
  %.not4168 = icmp eq ptr %3192, null
  br i1 %.not4168, label %.critedge4447, label %3193, !prof !20

3193:                                             ; preds = %3187
  %3194 = load ptr, ptr %3190, align 8, !tbaa !22
  %3195 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3194)
  br i1 %3195, label %3196, label %.critedge4447, !prof !16

.critedge4447:                                    ; preds = %3187, %3165, %3193
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3196:                                             ; preds = %3193
  %3197 = load ptr, ptr %17, align 8, !tbaa !17
  %3198 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3197, i64 %3189
  %3199 = getelementptr inbounds i8, ptr %3198, i64 8
  %3200 = load ptr, ptr %3199, align 8, !tbaa !18
  %3201 = getelementptr inbounds i8, ptr %3198, i64 16
  %3202 = load ptr, ptr %3201, align 8, !tbaa !23
  tail call void %3200(ptr noundef %3202, i32 noundef %2, i32 noundef 13) #4
  %3203 = add i32 %1, 5520
  %3204 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3205 = zext i32 %3204 to i64
  %3206 = add nuw nsw i64 %3205, 20
  %3207 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3206)
  %3208 = load i32, ptr %18, align 4, !tbaa !15
  %3209 = icmp ult i32 %3207, %3208
  br i1 %3209, label %3210, label %.critedge4449, !prof !16

3210:                                             ; preds = %3196
  %3211 = load ptr, ptr %17, align 8, !tbaa !17
  %3212 = zext i32 %3207 to i64
  %3213 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3211, i64 %3212
  %3214 = getelementptr inbounds i8, ptr %3213, i64 8
  %3215 = load ptr, ptr %3214, align 8, !tbaa !18
  %.not4169 = icmp eq ptr %3215, null
  br i1 %.not4169, label %.critedge4449, label %3216, !prof !20

3216:                                             ; preds = %3210
  %3217 = load ptr, ptr %3213, align 8, !tbaa !22
  %3218 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3217)
  br i1 %3218, label %3219, label %.critedge4449, !prof !16

.critedge4449:                                    ; preds = %3210, %3196, %3216
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3219:                                             ; preds = %3216
  %3220 = load ptr, ptr %17, align 8, !tbaa !17
  %3221 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3220, i64 %3212
  %3222 = getelementptr inbounds i8, ptr %3221, i64 8
  %3223 = load ptr, ptr %3222, align 8, !tbaa !18
  %3224 = getelementptr inbounds i8, ptr %3221, i64 16
  %3225 = load ptr, ptr %3224, align 8, !tbaa !23
  tail call void %3223(ptr noundef %3225, i32 noundef %2, i32 noundef %3203) #4
  %3226 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3227 = zext i32 %3226 to i64
  %3228 = add nuw nsw i64 %3227, 12
  %3229 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3228)
  %3230 = load i32, ptr %18, align 4, !tbaa !15
  %3231 = icmp ult i32 %3229, %3230
  br i1 %3231, label %3232, label %.critedge4451, !prof !16

3232:                                             ; preds = %3219
  %3233 = load ptr, ptr %17, align 8, !tbaa !17
  %3234 = zext i32 %3229 to i64
  %3235 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3233, i64 %3234
  %3236 = getelementptr inbounds i8, ptr %3235, i64 8
  %3237 = load ptr, ptr %3236, align 8, !tbaa !18
  %.not4170 = icmp eq ptr %3237, null
  br i1 %.not4170, label %.critedge4451, label %3238, !prof !20

3238:                                             ; preds = %3232
  %3239 = load ptr, ptr %3235, align 8, !tbaa !22
  %3240 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %3239)
  br i1 %3240, label %3241, label %.critedge4451, !prof !16

.critedge4451:                                    ; preds = %3232, %3219, %3238
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3241:                                             ; preds = %3238
  %3242 = load ptr, ptr %17, align 8, !tbaa !17
  %3243 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3242, i64 %3234
  %3244 = getelementptr inbounds i8, ptr %3243, i64 8
  %3245 = load ptr, ptr %3244, align 8, !tbaa !18
  %3246 = getelementptr inbounds i8, ptr %3243, i64 16
  %3247 = load ptr, ptr %3246, align 8, !tbaa !23
  tail call void %3245(ptr noundef %3247, i32 noundef %2) #4
  %3248 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3249 = add i32 %1, 5424
  %3250 = zext i32 %3249 to i64
  %3251 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %3250)
  %3252 = sub i64 %3248, %3180
  %3253 = sitofp i64 %3252 to double
  %3254 = fdiv double %3253, 1.000000e+09
  %3255 = fadd double %3251, %3254
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %3250, double noundef %3255)
  %3256 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3257 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3258 = zext i32 %3257 to i64
  %3259 = add nuw nsw i64 %3258, 8
  %3260 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3259)
  %3261 = load i32, ptr %18, align 4, !tbaa !15
  %3262 = icmp ult i32 %3260, %3261
  br i1 %3262, label %3263, label %.critedge4453, !prof !16

3263:                                             ; preds = %3241
  %3264 = load ptr, ptr %17, align 8, !tbaa !17
  %3265 = zext i32 %3260 to i64
  %3266 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3264, i64 %3265
  %3267 = getelementptr inbounds i8, ptr %3266, i64 8
  %3268 = load ptr, ptr %3267, align 8, !tbaa !18
  %.not4171 = icmp eq ptr %3268, null
  br i1 %.not4171, label %.critedge4453, label %3269, !prof !20

3269:                                             ; preds = %3263
  %3270 = load ptr, ptr %3266, align 8, !tbaa !22
  %3271 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3270)
  br i1 %3271, label %3272, label %.critedge4453, !prof !16

.critedge4453:                                    ; preds = %3263, %3241, %3269
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3272:                                             ; preds = %3269
  %3273 = load ptr, ptr %17, align 8, !tbaa !17
  %3274 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3273, i64 %3265
  %3275 = getelementptr inbounds i8, ptr %3274, i64 8
  %3276 = load ptr, ptr %3275, align 8, !tbaa !18
  %3277 = getelementptr inbounds i8, ptr %3274, i64 16
  %3278 = load ptr, ptr %3277, align 8, !tbaa !23
  tail call void %3276(ptr noundef %3278, i32 noundef %2, i32 noundef 15) #4
  %3279 = add nuw nsw i64 %10, 5760
  %3280 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3279)
  %.not4172 = icmp eq i32 %3280, 0
  br i1 %.not4172, label %.loopexit4472, label %3281

3281:                                             ; preds = %3272
  %3282 = zext i32 %3280 to i64
  %3283 = add nuw nsw i64 %3282, 48
  %3284 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3283)
  %.not4173 = icmp eq i32 %3284, 0
  br i1 %.not4173, label %.loopexit4472, label %3285

3285:                                             ; preds = %3281
  %3286 = add nuw nsw i64 %3282, 44
  %3287 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3286)
  %3288 = add nuw nsw i64 %3282, 56
  %3289 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3288)
  %3290 = shl i32 %3289, 2
  %3291 = add i32 %3290, %3287
  %.not4174 = icmp eq i32 %3289, 0
  br i1 %.not4174, label %.loopexit4476, label %.preheader4475

.preheader4475:                                   ; preds = %3285, %3294
  %.13825 = phi i32 [ %3295, %3294 ], [ %3287, %3285 ]
  %3292 = zext i32 %.13825 to i64
  %3293 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3292)
  switch i32 %3293, label %.loopexit4476 [
    i32 -8, label %3294
    i32 -4, label %3294
  ]

3294:                                             ; preds = %.preheader4475, %.preheader4475
  %3295 = add i32 %.13825, 4
  %.not4175 = icmp eq i32 %3295, %3291
  br i1 %.not4175, label %.loopexit4472, label %.preheader4475

.loopexit4476:                                    ; preds = %.preheader4475, %3285
  %.23826 = phi i32 [ %3287, %3285 ], [ %.13825, %.preheader4475 ]
  %3296 = icmp eq i32 %3291, %.23826
  br i1 %3296, label %.loopexit4472, label %.preheader4473

.preheader4473:                                   ; preds = %.loopexit4476, %3325
  %.3 = phi i32 [ %.4, %3325 ], [ %.23826, %.loopexit4476 ]
  %3297 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3298 = zext i32 %3297 to i64
  %3299 = add nuw nsw i64 %3298, 16
  %3300 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3299)
  %3301 = load i32, ptr %18, align 4, !tbaa !15
  %3302 = icmp ult i32 %3300, %3301
  br i1 %3302, label %3303, label %.critedge4455, !prof !16

3303:                                             ; preds = %.preheader4473
  %3304 = load ptr, ptr %17, align 8, !tbaa !17
  %3305 = zext i32 %3300 to i64
  %3306 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3304, i64 %3305
  %3307 = getelementptr inbounds i8, ptr %3306, i64 8
  %3308 = load ptr, ptr %3307, align 8, !tbaa !18
  %.not4176 = icmp eq ptr %3308, null
  br i1 %.not4176, label %.critedge4455, label %3309, !prof !20

3309:                                             ; preds = %3303
  %3310 = load ptr, ptr %3306, align 8, !tbaa !22
  %3311 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3310)
  br i1 %3311, label %3312, label %.critedge4455, !prof !16

.critedge4455:                                    ; preds = %3303, %.preheader4473, %3309
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3312:                                             ; preds = %3309
  %3313 = load ptr, ptr %17, align 8, !tbaa !17
  %3314 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3313, i64 %3305
  %3315 = getelementptr inbounds i8, ptr %3314, i64 8
  %3316 = load ptr, ptr %3315, align 8, !tbaa !18
  %3317 = getelementptr inbounds i8, ptr %3314, i64 16
  %3318 = load ptr, ptr %3317, align 8, !tbaa !23
  tail call void %3316(ptr noundef %3318, i32 noundef %2, i32 noundef %.3) #4
  %3319 = add i32 %.3, 4
  %3320 = icmp eq i32 %3319, %3291
  br i1 %3320, label %.loopexit4472, label %.preheader4471

.preheader4471:                                   ; preds = %3312, %3323
  %.4 = phi i32 [ %3324, %3323 ], [ %3319, %3312 ]
  %3321 = zext i32 %.4 to i64
  %3322 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3321)
  switch i32 %3322, label %3325 [
    i32 -8, label %3323
    i32 -4, label %3323
  ]

3323:                                             ; preds = %.preheader4471, %.preheader4471
  %3324 = add i32 %.4, 4
  %.not4177 = icmp eq i32 %3324, %3291
  br i1 %.not4177, label %.loopexit4472, label %.preheader4471

3325:                                             ; preds = %.preheader4471
  %.not4178 = icmp eq i32 %3291, %.4
  br i1 %.not4178, label %.loopexit4472, label %.preheader4473

.loopexit4472:                                    ; preds = %3294, %3312, %3325, %3323, %3281, %.loopexit4476, %3272
  %3326 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3327 = zext i32 %3326 to i64
  %3328 = add nuw nsw i64 %3327, 12
  %3329 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3328)
  %3330 = load i32, ptr %18, align 4, !tbaa !15
  %3331 = icmp ult i32 %3329, %3330
  br i1 %3331, label %3332, label %.critedge4457, !prof !16

3332:                                             ; preds = %.loopexit4472
  %3333 = load ptr, ptr %17, align 8, !tbaa !17
  %3334 = zext i32 %3329 to i64
  %3335 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3333, i64 %3334
  %3336 = getelementptr inbounds i8, ptr %3335, i64 8
  %3337 = load ptr, ptr %3336, align 8, !tbaa !18
  %.not4179 = icmp eq ptr %3337, null
  br i1 %.not4179, label %.critedge4457, label %3338, !prof !20

3338:                                             ; preds = %3332
  %3339 = load ptr, ptr %3335, align 8, !tbaa !22
  %3340 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %3339)
  br i1 %3340, label %3341, label %.critedge4457, !prof !16

.critedge4457:                                    ; preds = %3332, %.loopexit4472, %3338
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3341:                                             ; preds = %3338
  %3342 = load ptr, ptr %17, align 8, !tbaa !17
  %3343 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3342, i64 %3334
  %3344 = getelementptr inbounds i8, ptr %3343, i64 8
  %3345 = load ptr, ptr %3344, align 8, !tbaa !18
  %3346 = getelementptr inbounds i8, ptr %3343, i64 16
  %3347 = load ptr, ptr %3346, align 8, !tbaa !23
  tail call void %3345(ptr noundef %3347, i32 noundef %2) #4
  %3348 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3349 = add i32 %1, 5440
  %3350 = zext i32 %3349 to i64
  %3351 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %3350)
  %3352 = sub i64 %3348, %3256
  %3353 = sitofp i64 %3352 to double
  %3354 = fdiv double %3353, 1.000000e+09
  %3355 = fadd double %3351, %3354
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %3350, double noundef %3355)
  %3356 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3357 = add nuw nsw i64 %10, 5272
  %3358 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3357)
  %3359 = add i32 %1, 5276
  %3360 = zext i32 %3359 to i64
  %3361 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3360)
  %.not4180 = icmp eq i32 %3358, %3361
  br i1 %.not4180, label %.loopexit4470, label %.preheader4469

.preheader4469:                                   ; preds = %3341, %3377
  %.8 = phi i32 [ %3384, %3377 ], [ %3358, %3341 ]
  %3362 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3363 = zext i32 %3362 to i64
  %3364 = add nuw nsw i64 %3363, 80
  %3365 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3364)
  %3366 = load i32, ptr %18, align 4, !tbaa !15
  %3367 = icmp ult i32 %3365, %3366
  br i1 %3367, label %3368, label %.critedge4459, !prof !16

3368:                                             ; preds = %.preheader4469
  %3369 = load ptr, ptr %17, align 8, !tbaa !17
  %3370 = zext i32 %3365 to i64
  %3371 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3369, i64 %3370
  %3372 = getelementptr inbounds i8, ptr %3371, i64 8
  %3373 = load ptr, ptr %3372, align 8, !tbaa !18
  %.not4181 = icmp eq ptr %3373, null
  br i1 %.not4181, label %.critedge4459, label %3374, !prof !20

3374:                                             ; preds = %3368
  %3375 = load ptr, ptr %3371, align 8, !tbaa !22
  %3376 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3375)
  br i1 %3376, label %3377, label %.critedge4459, !prof !16

.critedge4459:                                    ; preds = %3368, %.preheader4469, %3374
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3377:                                             ; preds = %3374
  %3378 = load ptr, ptr %17, align 8, !tbaa !17
  %3379 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3378, i64 %3370
  %3380 = getelementptr inbounds i8, ptr %3379, i64 8
  %3381 = load ptr, ptr %3380, align 8, !tbaa !18
  %3382 = getelementptr inbounds i8, ptr %3379, i64 16
  %3383 = load ptr, ptr %3382, align 8, !tbaa !23
  tail call void %3381(ptr noundef %3383, i32 noundef %2, i32 noundef %.8) #4
  %3384 = add i32 %.8, 24
  %.not4182 = icmp eq i32 %3384, %3361
  br i1 %.not4182, label %.loopexit4470, label %.preheader4469

.loopexit4470:                                    ; preds = %3377, %3341
  %3385 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3386 = zext i32 %3385 to i64
  %3387 = add nuw nsw i64 %3386, 8
  %3388 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3387)
  %3389 = load i32, ptr %18, align 4, !tbaa !15
  %3390 = icmp ult i32 %3388, %3389
  br i1 %3390, label %3391, label %.critedge4461, !prof !16

3391:                                             ; preds = %.loopexit4470
  %3392 = load ptr, ptr %17, align 8, !tbaa !17
  %3393 = zext i32 %3388 to i64
  %3394 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3392, i64 %3393
  %3395 = getelementptr inbounds i8, ptr %3394, i64 8
  %3396 = load ptr, ptr %3395, align 8, !tbaa !18
  %.not4183 = icmp eq ptr %3396, null
  br i1 %.not4183, label %.critedge4461, label %3397, !prof !20

3397:                                             ; preds = %3391
  %3398 = load ptr, ptr %3394, align 8, !tbaa !22
  %3399 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3398)
  br i1 %3399, label %3400, label %.critedge4461, !prof !16

.critedge4461:                                    ; preds = %3391, %.loopexit4470, %3397
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3400:                                             ; preds = %3397
  %3401 = load ptr, ptr %17, align 8, !tbaa !17
  %3402 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3401, i64 %3393
  %3403 = getelementptr inbounds i8, ptr %3402, i64 8
  %3404 = load ptr, ptr %3403, align 8, !tbaa !18
  %3405 = getelementptr inbounds i8, ptr %3402, i64 16
  %3406 = load ptr, ptr %3405, align 8, !tbaa !23
  tail call void %3404(ptr noundef %3406, i32 noundef %2, i32 noundef 16) #4
  %3407 = add nuw nsw i64 %10, 5248
  %3408 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3407)
  %3409 = add i32 %1, 5252
  %3410 = zext i32 %3409 to i64
  %3411 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3410)
  %.not4184 = icmp eq i32 %3408, %3411
  br i1 %.not4184, label %.loopexit4468, label %3412

3412:                                             ; preds = %3400
  %3413 = add i32 %1, 808
  %3414 = zext i32 %7 to i64
  %3415 = add nuw nsw i64 %3414, 12
  %3416 = add i32 %6, -4
  br label %3417

3417:                                             ; preds = %3438, %3412
  %.9 = phi i32 [ %3408, %3412 ], [ %3445, %3438 ]
  tail call void @i32_store(ptr noundef nonnull %9, i64 noundef %3415, i32 noundef %3413)
  %3418 = zext i32 %.9 to i64
  %3419 = add nuw nsw i64 %3418, 16
  %3420 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3419)
  %.not4185 = icmp eq i32 %3420, 0
  br i1 %.not4185, label %3511, label %3421

3421:                                             ; preds = %3417
  %3422 = zext i32 %3420 to i64
  %3423 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3422)
  %3424 = zext i32 %3423 to i64
  %3425 = add nuw nsw i64 %3424, 24
  %3426 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3425)
  %3427 = load i32, ptr %18, align 4, !tbaa !15
  %3428 = icmp ult i32 %3426, %3427
  br i1 %3428, label %3429, label %.critedge4463, !prof !16

3429:                                             ; preds = %3421
  %3430 = load ptr, ptr %17, align 8, !tbaa !17
  %3431 = zext i32 %3426 to i64
  %3432 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3430, i64 %3431
  %3433 = getelementptr inbounds i8, ptr %3432, i64 8
  %3434 = load ptr, ptr %3433, align 8, !tbaa !18
  %.not4186 = icmp eq ptr %3434, null
  br i1 %.not4186, label %.critedge4463, label %3435, !prof !20

3435:                                             ; preds = %3429
  %3436 = load ptr, ptr %3432, align 8, !tbaa !22
  %3437 = tail call zeroext i1 @func_types_eq(ptr noundef %134, ptr noundef %3436)
  br i1 %3437, label %3438, label %.critedge4463, !prof !16

.critedge4463:                                    ; preds = %3429, %3421, %3435
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3438:                                             ; preds = %3435
  %3439 = load ptr, ptr %17, align 8, !tbaa !17
  %3440 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3439, i64 %3431
  %3441 = getelementptr inbounds i8, ptr %3440, i64 8
  %3442 = load ptr, ptr %3441, align 8, !tbaa !18
  %3443 = getelementptr inbounds i8, ptr %3440, i64 16
  %3444 = load ptr, ptr %3443, align 8, !tbaa !23
  tail call void %3442(ptr noundef %3444, i32 noundef %3420, i32 noundef %3416, i32 noundef %2) #4
  %3445 = add i32 %.9, 24
  %.not4187 = icmp eq i32 %3445, %3411
  br i1 %.not4187, label %.loopexit4468, label %3417

.loopexit4468:                                    ; preds = %3438, %3400
  %3446 = add nuw nsw i64 %10, 5284
  %3447 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3446)
  %3448 = add i32 %1, 5288
  %3449 = zext i32 %3448 to i64
  %3450 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3449)
  %.not4188 = icmp eq i32 %3447, %3450
  br i1 %.not4188, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %.loopexit4468, %3466
  %.10 = phi i32 [ %3473, %3466 ], [ %3447, %.loopexit4468 ]
  %3451 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3452 = zext i32 %3451 to i64
  %3453 = add nuw nsw i64 %3452, 80
  %3454 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3453)
  %3455 = load i32, ptr %18, align 4, !tbaa !15
  %3456 = icmp ult i32 %3454, %3455
  br i1 %3456, label %3457, label %.critedge4465, !prof !16

3457:                                             ; preds = %.preheader
  %3458 = load ptr, ptr %17, align 8, !tbaa !17
  %3459 = zext i32 %3454 to i64
  %3460 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3458, i64 %3459
  %3461 = getelementptr inbounds i8, ptr %3460, i64 8
  %3462 = load ptr, ptr %3461, align 8, !tbaa !18
  %.not4189 = icmp eq ptr %3462, null
  br i1 %.not4189, label %.critedge4465, label %3463, !prof !20

3463:                                             ; preds = %3457
  %3464 = load ptr, ptr %3460, align 8, !tbaa !22
  %3465 = tail call zeroext i1 @func_types_eq(ptr noundef %28, ptr noundef %3464)
  br i1 %3465, label %3466, label %.critedge4465, !prof !16

.critedge4465:                                    ; preds = %3457, %.preheader, %3463
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3466:                                             ; preds = %3463
  %3467 = load ptr, ptr %17, align 8, !tbaa !17
  %3468 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3467, i64 %3459
  %3469 = getelementptr inbounds i8, ptr %3468, i64 8
  %3470 = load ptr, ptr %3469, align 8, !tbaa !18
  %3471 = getelementptr inbounds i8, ptr %3468, i64 16
  %3472 = load ptr, ptr %3471, align 8, !tbaa !23
  tail call void %3470(ptr noundef %3472, i32 noundef %2, i32 noundef %.10) #4
  %3473 = add i32 %.10, 24
  %.not4190 = icmp eq i32 %3473, %3450
  br i1 %.not4190, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %3466, %.loopexit4468
  %3474 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %12)
  %3475 = zext i32 %3474 to i64
  %3476 = add nuw nsw i64 %3475, 12
  %3477 = tail call i32 @i32_load(ptr noundef nonnull %9, i64 noundef %3476)
  %3478 = load i32, ptr %18, align 4, !tbaa !15
  %3479 = icmp ult i32 %3477, %3478
  br i1 %3479, label %3480, label %.critedge4467, !prof !16

3480:                                             ; preds = %.loopexit
  %3481 = load ptr, ptr %17, align 8, !tbaa !17
  %3482 = zext i32 %3477 to i64
  %3483 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3481, i64 %3482
  %3484 = getelementptr inbounds i8, ptr %3483, i64 8
  %3485 = load ptr, ptr %3484, align 8, !tbaa !18
  %.not4191 = icmp eq ptr %3485, null
  br i1 %.not4191, label %.critedge4467, label %3486, !prof !20

3486:                                             ; preds = %3480
  %3487 = load ptr, ptr %3483, align 8, !tbaa !22
  %3488 = tail call zeroext i1 @func_types_eq(ptr noundef %80, ptr noundef %3487)
  br i1 %3488, label %3489, label %.critedge4467, !prof !16

.critedge4467:                                    ; preds = %3480, %.loopexit, %3486
  tail call void @wasm_rt_trap(i32 noundef 6) #5
  unreachable

3489:                                             ; preds = %3486
  %3490 = load ptr, ptr %17, align 8, !tbaa !17
  %3491 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %3490, i64 %3482
  %3492 = getelementptr inbounds i8, ptr %3491, i64 8
  %3493 = load ptr, ptr %3492, align 8, !tbaa !18
  %3494 = getelementptr inbounds i8, ptr %3491, i64 16
  %3495 = load ptr, ptr %3494, align 8, !tbaa !23
  tail call void %3493(ptr noundef %3495, i32 noundef %2) #4
  %3496 = tail call i64 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Achrono0x3A0x3Asteady_clock0x3A0x3Anow0x280x29(ptr noundef nonnull %0) #4
  %3497 = add i32 %1, 5448
  %3498 = zext i32 %3497 to i64
  %3499 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %3498)
  %3500 = sub i64 %3496, %3356
  %3501 = sitofp i64 %3500 to double
  %3502 = fdiv double %3501, 1.000000e+09
  %3503 = fadd double %3499, %3502
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %3498, double noundef %3503)
  %3504 = add nuw nsw i64 %10, 5456
  %3505 = tail call double @f64_load(ptr noundef nonnull %9, i64 noundef %3504)
  %3506 = tail call i64 @i64_load(ptr noundef nonnull %9, i64 noundef %11)
  %3507 = sub i64 %3496, %3506
  %3508 = sitofp i64 %3507 to double
  %3509 = fdiv double %3508, 1.000000e+09
  %3510 = fadd double %3505, %3509
  tail call void @f64_store(ptr noundef nonnull %9, i64 noundef %3504, double noundef %3510)
  store i32 %6, ptr %5, align 8, !tbaa !5
  ret void

3511:                                             ; preds = %3417
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fthrow_out_of_range0x5Babi0x3Av150070x5D0x28char0x20const0x2A0x29(ptr noundef nonnull %0) #4
  tail call void @wasm_rt_trap(i32 noundef 5) #5
  unreachable
}

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

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

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


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