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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AGCBase0x3A0x3AGCBase0x28hermes0x3A0x3Avm0x3A0x3AGCBase0x3A0x3AGCCallbacks0x260x2C0x20hermes0x3A0x3Avm0x3A0x3APointerBase0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AGCConfig0x20const0x260x2C0x20std0x3A0x3A_0x5F20x3A0x3Ashared_ptr0x3Chermes0x3A0x3Avm0x3A0x3ACrashManager0x3E0x2C0x20hermes0x3A0x3Avm0x3A0x3AGCBase0x3A0x3AHeapKind0x29(ptr noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6) #5 {
  %8 = alloca ptr, align 8
  %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 double, align 8
  %17 = alloca i32, align 4
  %18 = alloca i32, align 4
  %19 = alloca i32, align 4
  %20 = alloca i64, align 8
  %21 = alloca double, align 8
  %22 = alloca double, align 8
  store ptr %0, ptr %8, align 8, !tbaa !5
  store i32 %1, ptr %9, align 4, !tbaa !9
  store i32 %2, ptr %10, align 4, !tbaa !9
  store i32 %3, ptr %11, align 4, !tbaa !9
  store i32 %4, ptr %12, align 4, !tbaa !9
  store i32 %5, ptr %13, align 4, !tbaa !9
  store i32 %6, ptr %14, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 4, ptr %15) #6
  store i32 0, ptr %15, align 4, !tbaa !9
  call void @llvm.lifetime.start.p0(i64 8, ptr %16) #6
  store double 0.000000e+00, ptr %16, align 8, !tbaa !11
  call void @llvm.lifetime.start.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.start.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.start.p0(i64 8, ptr %22) #6
  %23 = load ptr, ptr %8, align 8, !tbaa !5
  %24 = getelementptr inbounds %struct.w2c_hermes, ptr %23, i32 0, i32 3
  %25 = load i32, ptr %24, align 8, !tbaa !13
  store i32 %25, ptr %17, align 4, !tbaa !9
  store i32 48, ptr %18, align 4, !tbaa !9
  %26 = load i32, ptr %18, align 4, !tbaa !9
  %27 = load i32, ptr %17, align 4, !tbaa !9
  %28 = sub i32 %27, %26
  store i32 %28, ptr %17, align 4, !tbaa !9
  %29 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %29, ptr %15, align 4, !tbaa !9
  %30 = load i32, ptr %17, align 4, !tbaa !9
  %31 = load ptr, ptr %8, align 8, !tbaa !5
  %32 = getelementptr inbounds %struct.w2c_hermes, ptr %31, i32 0, i32 3
  store i32 %30, ptr %32, align 8, !tbaa !13
  %33 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %33, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %34 = load ptr, ptr %8, align 8, !tbaa !5
  %35 = getelementptr inbounds %struct.w2c_hermes, ptr %34, i32 0, i32 6
  %36 = load i32, ptr %17, align 4, !tbaa !9
  %37 = zext i32 %36 to i64
  %38 = add i64 %37, 48
  %39 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %35, i64 noundef %38, i64 noundef %39)
  %40 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %40, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %41 = load ptr, ptr %8, align 8, !tbaa !5
  %42 = getelementptr inbounds %struct.w2c_hermes, ptr %41, i32 0, i32 6
  %43 = load i32, ptr %17, align 4, !tbaa !9
  %44 = zext i32 %43 to i64
  %45 = add i64 %44, 8
  %46 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %42, i64 noundef %45, i64 noundef %46)
  %47 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %47, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %48 = load ptr, ptr %8, align 8, !tbaa !5
  %49 = getelementptr inbounds %struct.w2c_hermes, ptr %48, i32 0, i32 6
  %50 = load i32, ptr %17, align 4, !tbaa !9
  %51 = zext i32 %50 to i64
  %52 = add i64 %51, 4
  %53 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %49, i64 noundef %52, i32 noundef %53)
  %54 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %54, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %55 = load ptr, ptr %8, align 8, !tbaa !5
  %56 = getelementptr inbounds %struct.w2c_hermes, ptr %55, i32 0, i32 6
  %57 = load i32, ptr %17, align 4, !tbaa !9
  %58 = zext i32 %57 to i64
  %59 = add i64 %58, 20
  %60 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %56, i64 noundef %59, i64 noundef %60)
  %61 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %61, ptr %17, align 4, !tbaa !9
  %62 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %62, ptr %18, align 4, !tbaa !9
  %63 = load ptr, ptr %8, align 8, !tbaa !5
  %64 = getelementptr inbounds %struct.w2c_hermes, ptr %63, i32 0, i32 6
  %65 = load i32, ptr %17, align 4, !tbaa !9
  %66 = zext i32 %65 to i64
  %67 = add i64 %66, 60
  %68 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %64, i64 noundef %67, i32 noundef %68)
  %69 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %69, ptr %17, align 4, !tbaa !9
  %70 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %70, ptr %18, align 4, !tbaa !9
  %71 = load ptr, ptr %8, align 8, !tbaa !5
  %72 = getelementptr inbounds %struct.w2c_hermes, ptr %71, i32 0, i32 6
  %73 = load i32, ptr %17, align 4, !tbaa !9
  %74 = zext i32 %73 to i64
  %75 = add i64 %74, 56
  %76 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %72, i64 noundef %75, i32 noundef %76)
  %77 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %77, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %78 = load ptr, ptr %8, align 8, !tbaa !5
  %79 = getelementptr inbounds %struct.w2c_hermes, ptr %78, i32 0, i32 6
  %80 = load i32, ptr %17, align 4, !tbaa !9
  %81 = zext i32 %80 to i64
  %82 = add i64 %81, 28
  %83 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %79, i64 noundef %82, i64 noundef %83)
  %84 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %84, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %85 = load ptr, ptr %8, align 8, !tbaa !5
  %86 = getelementptr inbounds %struct.w2c_hermes, ptr %85, i32 0, i32 6
  %87 = load i32, ptr %17, align 4, !tbaa !9
  %88 = zext i32 %87 to i64
  %89 = add i64 %88, 36
  %90 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %86, i64 noundef %89, i64 noundef %90)
  %91 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %91, ptr %17, align 4, !tbaa !9
  store i32 276400, ptr %18, align 4, !tbaa !9
  %92 = load ptr, ptr %8, align 8, !tbaa !5
  %93 = getelementptr inbounds %struct.w2c_hermes, ptr %92, i32 0, i32 6
  %94 = load i32, ptr %17, align 4, !tbaa !9
  %95 = zext i32 %94 to i64
  %96 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %93, i64 noundef %95, i32 noundef %96)
  %97 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %97, ptr %17, align 4, !tbaa !9
  %98 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %98, ptr %18, align 4, !tbaa !9
  %99 = load ptr, ptr %8, align 8, !tbaa !5
  %100 = getelementptr inbounds %struct.w2c_hermes, ptr %99, i32 0, i32 6
  %101 = load i32, ptr %18, align 4, !tbaa !9
  %102 = zext i32 %101 to i64
  %103 = call i32 @i32_load(ptr noundef %100, i64 noundef %102)
  store i32 %103, ptr %18, align 4, !tbaa !9
  %104 = load ptr, ptr %8, align 8, !tbaa !5
  %105 = getelementptr inbounds %struct.w2c_hermes, ptr %104, i32 0, i32 6
  %106 = load i32, ptr %17, align 4, !tbaa !9
  %107 = zext i32 %106 to i64
  %108 = add i64 %107, 64
  %109 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %105, i64 noundef %108, i32 noundef %109)
  %110 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %110, ptr %17, align 4, !tbaa !9
  %111 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %111, ptr %18, align 4, !tbaa !9
  %112 = load ptr, ptr %8, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.w2c_hermes, ptr %112, i32 0, i32 6
  %114 = load i32, ptr %18, align 4, !tbaa !9
  %115 = zext i32 %114 to i64
  %116 = add i64 %115, 4
  %117 = call i32 @i32_load(ptr noundef %113, i64 noundef %116)
  store i32 %117, ptr %18, align 4, !tbaa !9
  %118 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %118, ptr %13, align 4, !tbaa !9
  %119 = load ptr, ptr %8, align 8, !tbaa !5
  %120 = getelementptr inbounds %struct.w2c_hermes, ptr %119, i32 0, i32 6
  %121 = load i32, ptr %17, align 4, !tbaa !9
  %122 = zext i32 %121 to i64
  %123 = add i64 %122, 68
  %124 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %120, i64 noundef %123, i32 noundef %124)
  %125 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %125, ptr %17, align 4, !tbaa !9
  %126 = load i32, ptr %17, align 4, !tbaa !9
  %127 = icmp ne i32 %126, 0
  br i1 %127, label %128, label %146

128:                                              ; preds = %7
  %129 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %129, ptr %17, align 4, !tbaa !9
  %130 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %130, ptr %18, align 4, !tbaa !9
  %131 = load ptr, ptr %8, align 8, !tbaa !5
  %132 = getelementptr inbounds %struct.w2c_hermes, ptr %131, i32 0, i32 6
  %133 = load i32, ptr %18, align 4, !tbaa !9
  %134 = zext i32 %133 to i64
  %135 = add i64 %134, 4
  %136 = call i32 @i32_load(ptr noundef %132, i64 noundef %135)
  store i32 %136, ptr %18, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  %137 = load i32, ptr %19, align 4, !tbaa !9
  %138 = load i32, ptr %18, align 4, !tbaa !9
  %139 = add i32 %138, %137
  store i32 %139, ptr %18, align 4, !tbaa !9
  %140 = load ptr, ptr %8, align 8, !tbaa !5
  %141 = getelementptr inbounds %struct.w2c_hermes, ptr %140, i32 0, i32 6
  %142 = load i32, ptr %17, align 4, !tbaa !9
  %143 = zext i32 %142 to i64
  %144 = add i64 %143, 4
  %145 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %141, i64 noundef %144, i32 noundef %145)
  br label %146

146:                                              ; preds = %128, %7
  %147 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %147, ptr %17, align 4, !tbaa !9
  %148 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %148, ptr %18, align 4, !tbaa !9
  %149 = load ptr, ptr %8, align 8, !tbaa !5
  %150 = getelementptr inbounds %struct.w2c_hermes, ptr %149, i32 0, i32 6
  %151 = load i32, ptr %17, align 4, !tbaa !9
  %152 = zext i32 %151 to i64
  %153 = add i64 %152, 72
  %154 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %150, i64 noundef %153, i32 noundef %154)
  %155 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %155, ptr %17, align 4, !tbaa !9
  %156 = load ptr, ptr %8, align 8, !tbaa !5
  %157 = getelementptr inbounds %struct.w2c_hermes, ptr %156, i32 0, i32 6
  %158 = load i32, ptr %17, align 4, !tbaa !9
  %159 = zext i32 %158 to i64
  %160 = add i64 %159, 128
  %161 = call i32 @i32_load(ptr noundef %157, i64 noundef %160)
  store i32 %161, ptr %17, align 4, !tbaa !9
  %162 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %162, ptr %11, align 4, !tbaa !9
  %163 = load i32, ptr %17, align 4, !tbaa !9
  %164 = icmp ne i32 %163, 0
  %165 = xor i1 %164, true
  %166 = zext i1 %165 to i32
  store i32 %166, ptr %17, align 4, !tbaa !9
  %167 = load i32, ptr %17, align 4, !tbaa !9
  %168 = icmp ne i32 %167, 0
  br i1 %168, label %169, label %177

169:                                              ; preds = %146
  %170 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %170, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %171 = load ptr, ptr %8, align 8, !tbaa !5
  %172 = getelementptr inbounds %struct.w2c_hermes, ptr %171, i32 0, i32 6
  %173 = load i32, ptr %17, align 4, !tbaa !9
  %174 = zext i32 %173 to i64
  %175 = add i64 %174, 96
  %176 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %172, i64 noundef %175, i32 noundef %176)
  br label %361

177:                                              ; preds = %146
  %178 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %178, ptr %17, align 4, !tbaa !9
  store i32 112, ptr %18, align 4, !tbaa !9
  %179 = load i32, ptr %18, align 4, !tbaa !9
  %180 = load i32, ptr %17, align 4, !tbaa !9
  %181 = add i32 %180, %179
  store i32 %181, ptr %17, align 4, !tbaa !9
  %182 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %182, ptr %18, align 4, !tbaa !9
  %183 = load i32, ptr %17, align 4, !tbaa !9
  %184 = load i32, ptr %18, align 4, !tbaa !9
  %185 = icmp eq i32 %183, %184
  %186 = zext i1 %185 to i32
  store i32 %186, ptr %17, align 4, !tbaa !9
  %187 = load i32, ptr %17, align 4, !tbaa !9
  %188 = icmp ne i32 %187, 0
  br i1 %188, label %189, label %278

189:                                              ; preds = %177
  %190 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %190, ptr %17, align 4, !tbaa !9
  %191 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %191, ptr %18, align 4, !tbaa !9
  store i32 80, ptr %19, align 4, !tbaa !9
  %192 = load i32, ptr %19, align 4, !tbaa !9
  %193 = load i32, ptr %18, align 4, !tbaa !9
  %194 = add i32 %193, %192
  store i32 %194, ptr %18, align 4, !tbaa !9
  %195 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %195, ptr %10, align 4, !tbaa !9
  %196 = load ptr, ptr %8, align 8, !tbaa !5
  %197 = getelementptr inbounds %struct.w2c_hermes, ptr %196, i32 0, i32 6
  %198 = load i32, ptr %17, align 4, !tbaa !9
  %199 = zext i32 %198 to i64
  %200 = add i64 %199, 96
  %201 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %197, i64 noundef %200, i32 noundef %201)
  %202 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %202, ptr %17, align 4, !tbaa !9
  %203 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %203, ptr %18, align 4, !tbaa !9
  %204 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %204, ptr %19, align 4, !tbaa !9
  %205 = load ptr, ptr %8, align 8, !tbaa !5
  %206 = getelementptr inbounds %struct.w2c_hermes, ptr %205, i32 0, i32 6
  %207 = load i32, ptr %19, align 4, !tbaa !9
  %208 = zext i32 %207 to i64
  %209 = call i32 @i32_load(ptr noundef %206, i64 noundef %208)
  store i32 %209, ptr %19, align 4, !tbaa !9
  %210 = load ptr, ptr %8, align 8, !tbaa !5
  %211 = getelementptr inbounds %struct.w2c_hermes, ptr %210, i32 0, i32 6
  %212 = load i32, ptr %19, align 4, !tbaa !9
  %213 = zext i32 %212 to i64
  %214 = add i64 %213, 12
  %215 = call i32 @i32_load(ptr noundef %211, i64 noundef %214)
  store i32 %215, ptr %19, align 4, !tbaa !9
  %216 = load i32, ptr %19, align 4, !tbaa !9
  %217 = load ptr, ptr %8, align 8, !tbaa !5
  %218 = getelementptr inbounds %struct.w2c_hermes, ptr %217, i32 0, i32 7
  %219 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %218, i32 0, i32 2
  %220 = load i32, ptr %219, align 4, !tbaa !20
  %221 = icmp ult i32 %216, %220
  br i1 %221, label %222, label %245

222:                                              ; preds = %189
  %223 = load ptr, ptr %8, align 8, !tbaa !5
  %224 = getelementptr inbounds %struct.w2c_hermes, ptr %223, i32 0, i32 7
  %225 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %224, i32 0, i32 0
  %226 = load ptr, ptr %225, align 8, !tbaa !21
  %227 = load i32, ptr %19, align 4, !tbaa !9
  %228 = zext i32 %227 to i64
  %229 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %226, i64 %228
  %230 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %229, i32 0, i32 1
  %231 = load ptr, ptr %230, align 8, !tbaa !22
  %232 = icmp ne ptr %231, null
  br i1 %232, label %233, label %245

233:                                              ; preds = %222
  %234 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %235 = load ptr, ptr %8, align 8, !tbaa !5
  %236 = getelementptr inbounds %struct.w2c_hermes, ptr %235, i32 0, i32 7
  %237 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %236, i32 0, i32 0
  %238 = load ptr, ptr %237, align 8, !tbaa !21
  %239 = load i32, ptr %19, align 4, !tbaa !9
  %240 = zext i32 %239 to i64
  %241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %238, i64 %240
  %242 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %241, i32 0, i32 0
  %243 = load ptr, ptr %242, align 8, !tbaa !24
  %244 = call zeroext i1 @func_types_eq(ptr noundef %234, ptr noundef %243)
  br label %245

245:                                              ; preds = %233, %222, %189
  %246 = phi i1 [ false, %222 ], [ false, %189 ], [ %244, %233 ]
  %247 = xor i1 %246, true
  %248 = xor i1 %247, true
  %249 = zext i1 %248 to i32
  %250 = sext i32 %249 to i64
  %251 = call i64 @llvm.expect.i64(i64 %250, i64 1)
  %252 = icmp ne i64 %251, 0
  br i1 %252, label %255, label %253

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

254:                                              ; No predecessors!
  br label %255

255:                                              ; preds = %254, %245
  %256 = phi i1 [ true, %245 ], [ false, %254 ]
  %257 = zext i1 %256 to i32
  %258 = load ptr, ptr %8, align 8, !tbaa !5
  %259 = getelementptr inbounds %struct.w2c_hermes, ptr %258, i32 0, i32 7
  %260 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %259, i32 0, i32 0
  %261 = load ptr, ptr %260, align 8, !tbaa !21
  %262 = load i32, ptr %19, align 4, !tbaa !9
  %263 = zext i32 %262 to i64
  %264 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %261, i64 %263
  %265 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %264, i32 0, i32 1
  %266 = load ptr, ptr %265, align 8, !tbaa !22
  %267 = load ptr, ptr %8, align 8, !tbaa !5
  %268 = getelementptr inbounds %struct.w2c_hermes, ptr %267, i32 0, i32 7
  %269 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %268, i32 0, i32 0
  %270 = load ptr, ptr %269, align 8, !tbaa !21
  %271 = load i32, ptr %19, align 4, !tbaa !9
  %272 = zext i32 %271 to i64
  %273 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %270, i64 %272
  %274 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %273, i32 0, i32 2
  %275 = load ptr, ptr %274, align 8, !tbaa !25
  %276 = load i32, ptr %17, align 4, !tbaa !9
  %277 = load i32, ptr %18, align 4, !tbaa !9
  call void %266(ptr noundef %275, i32 noundef %276, i32 noundef %277)
  br label %361

278:                                              ; preds = %177
  %279 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %279, ptr %17, align 4, !tbaa !9
  %280 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %280, ptr %18, align 4, !tbaa !9
  %281 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %281, ptr %19, align 4, !tbaa !9
  %282 = load ptr, ptr %8, align 8, !tbaa !5
  %283 = getelementptr inbounds %struct.w2c_hermes, ptr %282, i32 0, i32 6
  %284 = load i32, ptr %19, align 4, !tbaa !9
  %285 = zext i32 %284 to i64
  %286 = call i32 @i32_load(ptr noundef %283, i64 noundef %285)
  store i32 %286, ptr %19, align 4, !tbaa !9
  %287 = load ptr, ptr %8, align 8, !tbaa !5
  %288 = getelementptr inbounds %struct.w2c_hermes, ptr %287, i32 0, i32 6
  %289 = load i32, ptr %19, align 4, !tbaa !9
  %290 = zext i32 %289 to i64
  %291 = add i64 %290, 8
  %292 = call i32 @i32_load(ptr noundef %288, i64 noundef %291)
  store i32 %292, ptr %19, align 4, !tbaa !9
  %293 = load i32, ptr %19, align 4, !tbaa !9
  %294 = load ptr, ptr %8, align 8, !tbaa !5
  %295 = getelementptr inbounds %struct.w2c_hermes, ptr %294, i32 0, i32 7
  %296 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %295, i32 0, i32 2
  %297 = load i32, ptr %296, align 4, !tbaa !20
  %298 = icmp ult i32 %293, %297
  br i1 %298, label %299, label %322

299:                                              ; preds = %278
  %300 = load ptr, ptr %8, align 8, !tbaa !5
  %301 = getelementptr inbounds %struct.w2c_hermes, ptr %300, i32 0, i32 7
  %302 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %301, i32 0, i32 0
  %303 = load ptr, ptr %302, align 8, !tbaa !21
  %304 = load i32, ptr %19, align 4, !tbaa !9
  %305 = zext i32 %304 to i64
  %306 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %303, i64 %305
  %307 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %306, i32 0, i32 1
  %308 = load ptr, ptr %307, align 8, !tbaa !22
  %309 = icmp ne ptr %308, null
  br i1 %309, label %310, label %322

310:                                              ; preds = %299
  %311 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %312 = load ptr, ptr %8, align 8, !tbaa !5
  %313 = getelementptr inbounds %struct.w2c_hermes, ptr %312, i32 0, i32 7
  %314 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %313, i32 0, i32 0
  %315 = load ptr, ptr %314, align 8, !tbaa !21
  %316 = load i32, ptr %19, align 4, !tbaa !9
  %317 = zext i32 %316 to i64
  %318 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %315, i64 %317
  %319 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %318, i32 0, i32 0
  %320 = load ptr, ptr %319, align 8, !tbaa !24
  %321 = call zeroext i1 @func_types_eq(ptr noundef %311, ptr noundef %320)
  br label %322

322:                                              ; preds = %310, %299, %278
  %323 = phi i1 [ false, %299 ], [ false, %278 ], [ %321, %310 ]
  %324 = xor i1 %323, true
  %325 = xor i1 %324, true
  %326 = zext i1 %325 to i32
  %327 = sext i32 %326 to i64
  %328 = call i64 @llvm.expect.i64(i64 %327, i64 1)
  %329 = icmp ne i64 %328, 0
  br i1 %329, label %332, label %330

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

331:                                              ; No predecessors!
  br label %332

332:                                              ; preds = %331, %322
  %333 = phi i1 [ true, %322 ], [ false, %331 ]
  %334 = zext i1 %333 to i32
  %335 = load ptr, ptr %8, align 8, !tbaa !5
  %336 = getelementptr inbounds %struct.w2c_hermes, ptr %335, i32 0, i32 7
  %337 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %336, i32 0, i32 0
  %338 = load ptr, ptr %337, align 8, !tbaa !21
  %339 = load i32, ptr %19, align 4, !tbaa !9
  %340 = zext i32 %339 to i64
  %341 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %338, i64 %340
  %342 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %341, i32 0, i32 1
  %343 = load ptr, ptr %342, align 8, !tbaa !22
  %344 = load ptr, ptr %8, align 8, !tbaa !5
  %345 = getelementptr inbounds %struct.w2c_hermes, ptr %344, i32 0, i32 7
  %346 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %345, i32 0, i32 0
  %347 = load ptr, ptr %346, align 8, !tbaa !21
  %348 = load i32, ptr %19, align 4, !tbaa !9
  %349 = zext i32 %348 to i64
  %350 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %347, i64 %349
  %351 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %350, i32 0, i32 2
  %352 = load ptr, ptr %351, align 8, !tbaa !25
  %353 = load i32, ptr %18, align 4, !tbaa !9
  %354 = call i32 %343(ptr noundef %352, i32 noundef %353)
  store i32 %354, ptr %18, align 4, !tbaa !9
  %355 = load ptr, ptr %8, align 8, !tbaa !5
  %356 = getelementptr inbounds %struct.w2c_hermes, ptr %355, i32 0, i32 6
  %357 = load i32, ptr %17, align 4, !tbaa !9
  %358 = zext i32 %357 to i64
  %359 = add i64 %358, 96
  %360 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %356, i64 noundef %359, i32 noundef %360)
  br label %361

361:                                              ; preds = %332, %255, %169
  %362 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %362, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %363 = load ptr, ptr %8, align 8, !tbaa !5
  %364 = getelementptr inbounds %struct.w2c_hermes, ptr %363, i32 0, i32 6
  %365 = load i32, ptr %17, align 4, !tbaa !9
  %366 = zext i32 %365 to i64
  %367 = add i64 %366, 104
  %368 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %364, i64 noundef %367, i64 noundef %368)
  %369 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %369, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %370 = load ptr, ptr %8, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.w2c_hermes, ptr %370, i32 0, i32 6
  %372 = load i32, ptr %17, align 4, !tbaa !9
  %373 = zext i32 %372 to i64
  %374 = add i64 %373, 112
  %375 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %371, i64 noundef %374, i32 noundef %375)
  %376 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %376, ptr %17, align 4, !tbaa !9
  %377 = load ptr, ptr %8, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.w2c_hermes, ptr %377, i32 0, i32 6
  %379 = load i32, ptr %17, align 4, !tbaa !9
  %380 = zext i32 %379 to i64
  %381 = add i64 %380, 48
  %382 = call i32 @i32_load8_u(ptr noundef %378, i64 noundef %381)
  store i32 %382, ptr %17, align 4, !tbaa !9
  %383 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %383, ptr %11, align 4, !tbaa !9
  %384 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %384, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %385 = load ptr, ptr %8, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.w2c_hermes, ptr %385, i32 0, i32 6
  %387 = load i32, ptr %17, align 4, !tbaa !9
  %388 = zext i32 %387 to i64
  %389 = add i64 %388, 280
  %390 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %386, i64 noundef %389, i64 noundef %390)
  %391 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %391, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %392 = load ptr, ptr %8, align 8, !tbaa !5
  %393 = getelementptr inbounds %struct.w2c_hermes, ptr %392, i32 0, i32 6
  %394 = load i32, ptr %17, align 4, !tbaa !9
  %395 = zext i32 %394 to i64
  %396 = add i64 %395, 240
  %397 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %393, i64 noundef %396, i32 noundef %397)
  %398 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %398, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %399 = load ptr, ptr %8, align 8, !tbaa !5
  %400 = getelementptr inbounds %struct.w2c_hermes, ptr %399, i32 0, i32 6
  %401 = load i32, ptr %17, align 4, !tbaa !9
  %402 = zext i32 %401 to i64
  %403 = add i64 %402, 152
  %404 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %400, i64 noundef %403, i32 noundef %404)
  %405 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %405, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %406 = load ptr, ptr %8, align 8, !tbaa !5
  %407 = getelementptr inbounds %struct.w2c_hermes, ptr %406, i32 0, i32 6
  %408 = load i32, ptr %17, align 4, !tbaa !9
  %409 = zext i32 %408 to i64
  %410 = add i64 %409, 144
  %411 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %407, i64 noundef %410, i32 noundef %411)
  %412 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %412, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %413 = load ptr, ptr %8, align 8, !tbaa !5
  %414 = getelementptr inbounds %struct.w2c_hermes, ptr %413, i32 0, i32 6
  %415 = load i32, ptr %17, align 4, !tbaa !9
  %416 = zext i32 %415 to i64
  %417 = add i64 %416, 136
  %418 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %414, i64 noundef %417, i64 noundef %418)
  %419 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %419, ptr %17, align 4, !tbaa !9
  %420 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %420, ptr %18, align 4, !tbaa !9
  %421 = load ptr, ptr %8, align 8, !tbaa !5
  %422 = getelementptr inbounds %struct.w2c_hermes, ptr %421, i32 0, i32 6
  %423 = load i32, ptr %17, align 4, !tbaa !9
  %424 = zext i32 %423 to i64
  %425 = add i64 %424, 116
  %426 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %422, i64 noundef %425, i32 noundef %426)
  %427 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %427, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %428 = load ptr, ptr %8, align 8, !tbaa !5
  %429 = getelementptr inbounds %struct.w2c_hermes, ptr %428, i32 0, i32 6
  %430 = load i32, ptr %17, align 4, !tbaa !9
  %431 = zext i32 %430 to i64
  %432 = add i64 %431, 288
  %433 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %429, i64 noundef %432, i64 noundef %433)
  %434 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %434, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %435 = load ptr, ptr %8, align 8, !tbaa !5
  %436 = getelementptr inbounds %struct.w2c_hermes, ptr %435, i32 0, i32 6
  %437 = load i32, ptr %17, align 4, !tbaa !9
  %438 = zext i32 %437 to i64
  %439 = add i64 %438, 296
  %440 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %436, i64 noundef %439, i64 noundef %440)
  %441 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %441, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %442 = load ptr, ptr %8, align 8, !tbaa !5
  %443 = getelementptr inbounds %struct.w2c_hermes, ptr %442, i32 0, i32 6
  %444 = load i32, ptr %17, align 4, !tbaa !9
  %445 = zext i32 %444 to i64
  %446 = add i64 %445, 160
  %447 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %443, i64 noundef %446, i64 noundef %447)
  %448 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %448, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %449 = load ptr, ptr %8, align 8, !tbaa !5
  %450 = getelementptr inbounds %struct.w2c_hermes, ptr %449, i32 0, i32 6
  %451 = load i32, ptr %17, align 4, !tbaa !9
  %452 = zext i32 %451 to i64
  %453 = add i64 %452, 168
  %454 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %450, i64 noundef %453, i64 noundef %454)
  %455 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %455, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %456 = load ptr, ptr %8, align 8, !tbaa !5
  %457 = getelementptr inbounds %struct.w2c_hermes, ptr %456, i32 0, i32 6
  %458 = load i32, ptr %17, align 4, !tbaa !9
  %459 = zext i32 %458 to i64
  %460 = add i64 %459, 176
  %461 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %457, i64 noundef %460, i64 noundef %461)
  %462 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %462, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %463 = load ptr, ptr %8, align 8, !tbaa !5
  %464 = getelementptr inbounds %struct.w2c_hermes, ptr %463, i32 0, i32 6
  %465 = load i32, ptr %17, align 4, !tbaa !9
  %466 = zext i32 %465 to i64
  %467 = add i64 %466, 184
  %468 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %464, i64 noundef %467, i64 noundef %468)
  %469 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %469, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %470 = load ptr, ptr %8, align 8, !tbaa !5
  %471 = getelementptr inbounds %struct.w2c_hermes, ptr %470, i32 0, i32 6
  %472 = load i32, ptr %17, align 4, !tbaa !9
  %473 = zext i32 %472 to i64
  %474 = add i64 %473, 192
  %475 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %471, i64 noundef %474, i32 noundef %475)
  %476 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %476, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %477 = load ptr, ptr %8, align 8, !tbaa !5
  %478 = getelementptr inbounds %struct.w2c_hermes, ptr %477, i32 0, i32 6
  %479 = load i32, ptr %17, align 4, !tbaa !9
  %480 = zext i32 %479 to i64
  %481 = add i64 %480, 200
  %482 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %478, i64 noundef %481, i64 noundef %482)
  %483 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %483, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %484 = load ptr, ptr %8, align 8, !tbaa !5
  %485 = getelementptr inbounds %struct.w2c_hermes, ptr %484, i32 0, i32 6
  %486 = load i32, ptr %17, align 4, !tbaa !9
  %487 = zext i32 %486 to i64
  %488 = add i64 %487, 208
  %489 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %485, i64 noundef %488, i64 noundef %489)
  %490 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %490, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %491 = load ptr, ptr %8, align 8, !tbaa !5
  %492 = getelementptr inbounds %struct.w2c_hermes, ptr %491, i32 0, i32 6
  %493 = load i32, ptr %17, align 4, !tbaa !9
  %494 = zext i32 %493 to i64
  %495 = add i64 %494, 216
  %496 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %492, i64 noundef %495, i64 noundef %496)
  %497 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %497, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %498 = load ptr, ptr %8, align 8, !tbaa !5
  %499 = getelementptr inbounds %struct.w2c_hermes, ptr %498, i32 0, i32 6
  %500 = load i32, ptr %17, align 4, !tbaa !9
  %501 = zext i32 %500 to i64
  %502 = add i64 %501, 224
  %503 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %499, i64 noundef %502, i64 noundef %503)
  %504 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %504, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %505 = load ptr, ptr %8, align 8, !tbaa !5
  %506 = getelementptr inbounds %struct.w2c_hermes, ptr %505, i32 0, i32 6
  %507 = load i32, ptr %17, align 4, !tbaa !9
  %508 = zext i32 %507 to i64
  %509 = add i64 %508, 232
  %510 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %506, i64 noundef %509, i32 noundef %510)
  %511 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %511, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %512 = load ptr, ptr %8, align 8, !tbaa !5
  %513 = getelementptr inbounds %struct.w2c_hermes, ptr %512, i32 0, i32 6
  %514 = load i32, ptr %17, align 4, !tbaa !9
  %515 = zext i32 %514 to i64
  %516 = add i64 %515, 272
  %517 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %513, i64 noundef %516, i32 noundef %517)
  %518 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %518, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %519 = load ptr, ptr %8, align 8, !tbaa !5
  %520 = getelementptr inbounds %struct.w2c_hermes, ptr %519, i32 0, i32 6
  %521 = load i32, ptr %17, align 4, !tbaa !9
  %522 = zext i32 %521 to i64
  %523 = add i64 %522, 264
  %524 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %520, i64 noundef %523, i64 noundef %524)
  %525 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %525, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %526 = load ptr, ptr %8, align 8, !tbaa !5
  %527 = getelementptr inbounds %struct.w2c_hermes, ptr %526, i32 0, i32 6
  %528 = load i32, ptr %17, align 4, !tbaa !9
  %529 = zext i32 %528 to i64
  %530 = add i64 %529, 256
  %531 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %527, i64 noundef %530, i64 noundef %531)
  %532 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %532, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %533 = load ptr, ptr %8, align 8, !tbaa !5
  %534 = getelementptr inbounds %struct.w2c_hermes, ptr %533, i32 0, i32 6
  %535 = load i32, ptr %17, align 4, !tbaa !9
  %536 = zext i32 %535 to i64
  %537 = add i64 %536, 248
  %538 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %534, i64 noundef %537, i64 noundef %538)
  %539 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %539, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %540 = load ptr, ptr %8, align 8, !tbaa !5
  %541 = getelementptr inbounds %struct.w2c_hermes, ptr %540, i32 0, i32 6
  %542 = load i32, ptr %17, align 4, !tbaa !9
  %543 = zext i32 %542 to i64
  %544 = add i64 %543, 117
  %545 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %541, i64 noundef %544, i64 noundef %545)
  %546 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %546, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %547 = load ptr, ptr %8, align 8, !tbaa !5
  %548 = getelementptr inbounds %struct.w2c_hermes, ptr %547, i32 0, i32 6
  %549 = load i32, ptr %17, align 4, !tbaa !9
  %550 = zext i32 %549 to i64
  %551 = add i64 %550, 124
  %552 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %548, i64 noundef %551, i32 noundef %552)
  %553 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %553, ptr %17, align 4, !tbaa !9
  store i32 304, ptr %18, align 4, !tbaa !9
  %554 = load i32, ptr %18, align 4, !tbaa !9
  %555 = load i32, ptr %17, align 4, !tbaa !9
  %556 = add i32 %555, %554
  store i32 %556, ptr %17, align 4, !tbaa !9
  %557 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %557, ptr %11, align 4, !tbaa !9
  %558 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %558, ptr %17, align 4, !tbaa !9
  %559 = load ptr, ptr %8, align 8, !tbaa !5
  %560 = getelementptr inbounds %struct.w2c_hermes, ptr %559, i32 0, i32 6
  %561 = load i32, ptr %17, align 4, !tbaa !9
  %562 = zext i32 %561 to i64
  %563 = add i64 %562, 67
  %564 = call i32 @i32_load8_s(ptr noundef %560, i64 noundef %563)
  store i32 %564, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %565 = load i32, ptr %17, align 4, !tbaa !9
  %566 = load i32, ptr %18, align 4, !tbaa !9
  %567 = icmp sge i32 %565, %566
  %568 = zext i1 %567 to i32
  store i32 %568, ptr %17, align 4, !tbaa !9
  %569 = load i32, ptr %17, align 4, !tbaa !9
  %570 = icmp ne i32 %569, 0
  br i1 %570, label %571, label %602

571:                                              ; preds = %361
  %572 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %572, ptr %17, align 4, !tbaa !9
  %573 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %573, ptr %18, align 4, !tbaa !9
  store i32 56, ptr %19, align 4, !tbaa !9
  %574 = load i32, ptr %19, align 4, !tbaa !9
  %575 = load i32, ptr %18, align 4, !tbaa !9
  %576 = add i32 %575, %574
  store i32 %576, ptr %18, align 4, !tbaa !9
  %577 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %577, ptr %10, align 4, !tbaa !9
  %578 = load ptr, ptr %8, align 8, !tbaa !5
  %579 = getelementptr inbounds %struct.w2c_hermes, ptr %578, i32 0, i32 6
  %580 = load i32, ptr %18, align 4, !tbaa !9
  %581 = zext i32 %580 to i64
  %582 = call i64 @i64_load(ptr noundef %579, i64 noundef %581)
  store i64 %582, ptr %20, align 8, !tbaa !19
  %583 = load ptr, ptr %8, align 8, !tbaa !5
  %584 = getelementptr inbounds %struct.w2c_hermes, ptr %583, i32 0, i32 6
  %585 = load i32, ptr %17, align 4, !tbaa !9
  %586 = zext i32 %585 to i64
  %587 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %584, i64 noundef %586, i64 noundef %587)
  %588 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %588, ptr %17, align 4, !tbaa !9
  %589 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %589, ptr %18, align 4, !tbaa !9
  %590 = load ptr, ptr %8, align 8, !tbaa !5
  %591 = getelementptr inbounds %struct.w2c_hermes, ptr %590, i32 0, i32 6
  %592 = load i32, ptr %18, align 4, !tbaa !9
  %593 = zext i32 %592 to i64
  %594 = add i64 %593, 8
  %595 = call i32 @i32_load(ptr noundef %591, i64 noundef %594)
  store i32 %595, ptr %18, align 4, !tbaa !9
  %596 = load ptr, ptr %8, align 8, !tbaa !5
  %597 = getelementptr inbounds %struct.w2c_hermes, ptr %596, i32 0, i32 6
  %598 = load i32, ptr %17, align 4, !tbaa !9
  %599 = zext i32 %598 to i64
  %600 = add i64 %599, 8
  %601 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %597, i64 noundef %600, i32 noundef %601)
  br label %622

602:                                              ; preds = %361
  %603 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %603, ptr %17, align 4, !tbaa !9
  %604 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %604, ptr %18, align 4, !tbaa !9
  %605 = load ptr, ptr %8, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.w2c_hermes, ptr %605, i32 0, i32 6
  %607 = load i32, ptr %18, align 4, !tbaa !9
  %608 = zext i32 %607 to i64
  %609 = add i64 %608, 56
  %610 = call i32 @i32_load(ptr noundef %606, i64 noundef %609)
  store i32 %610, ptr %18, align 4, !tbaa !9
  %611 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %611, ptr %19, align 4, !tbaa !9
  %612 = load ptr, ptr %8, align 8, !tbaa !5
  %613 = getelementptr inbounds %struct.w2c_hermes, ptr %612, i32 0, i32 6
  %614 = load i32, ptr %19, align 4, !tbaa !9
  %615 = zext i32 %614 to i64
  %616 = add i64 %615, 60
  %617 = call i32 @i32_load(ptr noundef %613, i64 noundef %616)
  store i32 %617, ptr %19, align 4, !tbaa !9
  %618 = load ptr, ptr %8, align 8, !tbaa !5
  %619 = load i32, ptr %17, align 4, !tbaa !9
  %620 = load i32, ptr %18, align 4, !tbaa !9
  %621 = load i32, ptr %19, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x3A0x3A_0x5Finit_copy_ctor_external0x28char0x20const0x2A0x2C0x20unsigned0x20long0x29(ptr noundef %618, i32 noundef %619, i32 noundef %620, i32 noundef %621)
  br label %622

622:                                              ; preds = %602, %571
  %623 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %623, ptr %17, align 4, !tbaa !9
  %624 = load ptr, ptr %8, align 8, !tbaa !5
  %625 = getelementptr inbounds %struct.w2c_hermes, ptr %624, i32 0, i32 6
  %626 = load i32, ptr %17, align 4, !tbaa !9
  %627 = zext i32 %626 to i64
  %628 = add i64 %627, 16
  %629 = call double @f64_load(ptr noundef %625, i64 noundef %628)
  store double %629, ptr %21, align 8, !tbaa !11
  %630 = load double, ptr %21, align 8, !tbaa !11
  store double %630, ptr %16, align 8, !tbaa !11
  %631 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %631, ptr %17, align 4, !tbaa !9
  store i32 59, ptr %18, align 4, !tbaa !9
  %632 = load ptr, ptr %8, align 8, !tbaa !5
  %633 = getelementptr inbounds %struct.w2c_hermes, ptr %632, i32 0, i32 6
  %634 = load i32, ptr %17, align 4, !tbaa !9
  %635 = zext i32 %634 to i64
  %636 = add i64 %635, 404
  %637 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %633, i64 noundef %636, i32 noundef %637)
  %638 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %638, ptr %17, align 4, !tbaa !9
  %639 = load double, ptr %16, align 8, !tbaa !11
  store double %639, ptr %22, align 8, !tbaa !11
  %640 = load ptr, ptr %8, align 8, !tbaa !5
  %641 = getelementptr inbounds %struct.w2c_hermes, ptr %640, i32 0, i32 6
  %642 = load i32, ptr %17, align 4, !tbaa !9
  %643 = zext i32 %642 to i64
  %644 = add i64 %643, 392
  %645 = load double, ptr %22, align 8, !tbaa !11
  call void @f64_store(ptr noundef %641, i64 noundef %644, double noundef %645)
  %646 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %646, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %647 = load ptr, ptr %8, align 8, !tbaa !5
  %648 = getelementptr inbounds %struct.w2c_hermes, ptr %647, i32 0, i32 6
  %649 = load i32, ptr %17, align 4, !tbaa !9
  %650 = zext i32 %649 to i64
  %651 = add i64 %650, 384
  %652 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %648, i64 noundef %651, i32 noundef %652)
  %653 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %653, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %654 = load ptr, ptr %8, align 8, !tbaa !5
  %655 = getelementptr inbounds %struct.w2c_hermes, ptr %654, i32 0, i32 6
  %656 = load i32, ptr %17, align 4, !tbaa !9
  %657 = zext i32 %656 to i64
  %658 = add i64 %657, 376
  %659 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %655, i64 noundef %658, i64 noundef %659)
  %660 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %660, ptr %17, align 4, !tbaa !9
  store i64 4602678819172646912, ptr %20, align 8, !tbaa !19
  %661 = load ptr, ptr %8, align 8, !tbaa !5
  %662 = getelementptr inbounds %struct.w2c_hermes, ptr %661, i32 0, i32 6
  %663 = load i32, ptr %17, align 4, !tbaa !9
  %664 = zext i32 %663 to i64
  %665 = add i64 %664, 368
  %666 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %662, i64 noundef %665, i64 noundef %666)
  %667 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %667, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %668 = load ptr, ptr %8, align 8, !tbaa !5
  %669 = getelementptr inbounds %struct.w2c_hermes, ptr %668, i32 0, i32 6
  %670 = load i32, ptr %17, align 4, !tbaa !9
  %671 = zext i32 %670 to i64
  %672 = add i64 %671, 360
  %673 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %669, i64 noundef %672, i64 noundef %673)
  %674 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %674, ptr %17, align 4, !tbaa !9
  %675 = load double, ptr %16, align 8, !tbaa !11
  store double %675, ptr %22, align 8, !tbaa !11
  %676 = load ptr, ptr %8, align 8, !tbaa !5
  %677 = getelementptr inbounds %struct.w2c_hermes, ptr %676, i32 0, i32 6
  %678 = load i32, ptr %17, align 4, !tbaa !9
  %679 = zext i32 %678 to i64
  %680 = add i64 %679, 352
  %681 = load double, ptr %22, align 8, !tbaa !11
  call void @f64_store(ptr noundef %677, i64 noundef %680, double noundef %681)
  %682 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %682, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %683 = load ptr, ptr %8, align 8, !tbaa !5
  %684 = getelementptr inbounds %struct.w2c_hermes, ptr %683, i32 0, i32 6
  %685 = load i32, ptr %17, align 4, !tbaa !9
  %686 = zext i32 %685 to i64
  %687 = add i64 %686, 344
  %688 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %684, i64 noundef %687, i32 noundef %688)
  %689 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %689, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %690 = load ptr, ptr %8, align 8, !tbaa !5
  %691 = getelementptr inbounds %struct.w2c_hermes, ptr %690, i32 0, i32 6
  %692 = load i32, ptr %17, align 4, !tbaa !9
  %693 = zext i32 %692 to i64
  %694 = add i64 %693, 336
  %695 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %691, i64 noundef %694, i64 noundef %695)
  %696 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %696, ptr %17, align 4, !tbaa !9
  store i64 4602678819172646912, ptr %20, align 8, !tbaa !19
  %697 = load ptr, ptr %8, align 8, !tbaa !5
  %698 = getelementptr inbounds %struct.w2c_hermes, ptr %697, i32 0, i32 6
  %699 = load i32, ptr %17, align 4, !tbaa !9
  %700 = zext i32 %699 to i64
  %701 = add i64 %700, 328
  %702 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %698, i64 noundef %701, i64 noundef %702)
  %703 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %703, ptr %17, align 4, !tbaa !9
  store i64 0, ptr %20, align 8, !tbaa !19
  %704 = load ptr, ptr %8, align 8, !tbaa !5
  %705 = getelementptr inbounds %struct.w2c_hermes, ptr %704, i32 0, i32 6
  %706 = load i32, ptr %17, align 4, !tbaa !9
  %707 = zext i32 %706 to i64
  %708 = add i64 %707, 320
  %709 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %705, i64 noundef %708, i64 noundef %709)
  %710 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %710, ptr %17, align 4, !tbaa !9
  store i32 408, ptr %18, align 4, !tbaa !9
  %711 = load i32, ptr %18, align 4, !tbaa !9
  %712 = load i32, ptr %17, align 4, !tbaa !9
  %713 = add i32 %712, %711
  store i32 %713, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  store i32 100, ptr %19, align 4, !tbaa !9
  %714 = load ptr, ptr %8, align 8, !tbaa !5
  %715 = load i32, ptr %17, align 4, !tbaa !9
  %716 = load i32, ptr %18, align 4, !tbaa !9
  %717 = load i32, ptr %19, align 4, !tbaa !9
  %718 = call i32 @w2c_hermes_0x5F_memset(ptr noundef %714, i32 noundef %715, i32 noundef %716, i32 noundef %717)
  store i32 %718, ptr %17, align 4, !tbaa !9
  %719 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %719, ptr %17, align 4, !tbaa !9
  %720 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %720, ptr %18, align 4, !tbaa !9
  %721 = load ptr, ptr %8, align 8, !tbaa !5
  %722 = getelementptr inbounds %struct.w2c_hermes, ptr %721, i32 0, i32 6
  %723 = load i32, ptr %18, align 4, !tbaa !9
  %724 = zext i32 %723 to i64
  %725 = add i64 %724, 72
  %726 = call i32 @i32_load(ptr noundef %722, i64 noundef %725)
  store i32 %726, ptr %18, align 4, !tbaa !9
  %727 = load ptr, ptr %8, align 8, !tbaa !5
  %728 = getelementptr inbounds %struct.w2c_hermes, ptr %727, i32 0, i32 6
  %729 = load i32, ptr %17, align 4, !tbaa !9
  %730 = zext i32 %729 to i64
  %731 = add i64 %730, 16
  %732 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %728, i64 noundef %731, i32 noundef %732)
  %733 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %733, ptr %17, align 4, !tbaa !9
  %734 = load ptr, ptr %8, align 8, !tbaa !5
  %735 = getelementptr inbounds %struct.w2c_hermes, ptr %734, i32 0, i32 6
  %736 = load i32, ptr %17, align 4, !tbaa !9
  %737 = zext i32 %736 to i64
  %738 = add i64 %737, 96
  %739 = call i32 @i32_load(ptr noundef %735, i64 noundef %738)
  store i32 %739, ptr %17, align 4, !tbaa !9
  %740 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %740, ptr %11, align 4, !tbaa !9
  %741 = load i32, ptr %17, align 4, !tbaa !9
  %742 = icmp ne i32 %741, 0
  br i1 %742, label %743, label %945

743:                                              ; preds = %622
  %744 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %744, ptr %17, align 4, !tbaa !9
  store i32 24, ptr %18, align 4, !tbaa !9
  %745 = load i32, ptr %18, align 4, !tbaa !9
  %746 = load i32, ptr %17, align 4, !tbaa !9
  %747 = add i32 %746, %745
  store i32 %747, ptr %17, align 4, !tbaa !9
  %748 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %748, ptr %10, align 4, !tbaa !9
  %749 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %749, ptr %17, align 4, !tbaa !9
  store i32 80, ptr %18, align 4, !tbaa !9
  %750 = load i32, ptr %18, align 4, !tbaa !9
  %751 = load i32, ptr %17, align 4, !tbaa !9
  %752 = add i32 %751, %750
  store i32 %752, ptr %17, align 4, !tbaa !9
  %753 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %753, ptr %18, align 4, !tbaa !9
  %754 = load i32, ptr %17, align 4, !tbaa !9
  %755 = load i32, ptr %18, align 4, !tbaa !9
  %756 = icmp eq i32 %754, %755
  %757 = zext i1 %756 to i32
  store i32 %757, ptr %17, align 4, !tbaa !9
  %758 = load i32, ptr %17, align 4, !tbaa !9
  %759 = icmp ne i32 %758, 0
  br i1 %759, label %760, label %855

760:                                              ; preds = %743
  %761 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %761, ptr %17, align 4, !tbaa !9
  store i32 40, ptr %18, align 4, !tbaa !9
  %762 = load i32, ptr %18, align 4, !tbaa !9
  %763 = load i32, ptr %17, align 4, !tbaa !9
  %764 = add i32 %763, %762
  store i32 %764, ptr %17, align 4, !tbaa !9
  %765 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %765, ptr %14, align 4, !tbaa !9
  %766 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %766, ptr %18, align 4, !tbaa !9
  %767 = load ptr, ptr %8, align 8, !tbaa !5
  %768 = getelementptr inbounds %struct.w2c_hermes, ptr %767, i32 0, i32 6
  %769 = load i32, ptr %17, align 4, !tbaa !9
  %770 = zext i32 %769 to i64
  %771 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %768, i64 noundef %770, i32 noundef %771)
  %772 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %772, ptr %17, align 4, !tbaa !9
  %773 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %773, ptr %18, align 4, !tbaa !9
  %774 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %774, ptr %19, align 4, !tbaa !9
  %775 = load ptr, ptr %8, align 8, !tbaa !5
  %776 = getelementptr inbounds %struct.w2c_hermes, ptr %775, i32 0, i32 6
  %777 = load i32, ptr %19, align 4, !tbaa !9
  %778 = zext i32 %777 to i64
  %779 = call i32 @i32_load(ptr noundef %776, i64 noundef %778)
  store i32 %779, ptr %19, align 4, !tbaa !9
  %780 = load ptr, ptr %8, align 8, !tbaa !5
  %781 = getelementptr inbounds %struct.w2c_hermes, ptr %780, i32 0, i32 6
  %782 = load i32, ptr %19, align 4, !tbaa !9
  %783 = zext i32 %782 to i64
  %784 = add i64 %783, 12
  %785 = call i32 @i32_load(ptr noundef %781, i64 noundef %784)
  store i32 %785, ptr %19, align 4, !tbaa !9
  %786 = load i32, ptr %19, align 4, !tbaa !9
  %787 = load ptr, ptr %8, align 8, !tbaa !5
  %788 = getelementptr inbounds %struct.w2c_hermes, ptr %787, i32 0, i32 7
  %789 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %788, i32 0, i32 2
  %790 = load i32, ptr %789, align 4, !tbaa !20
  %791 = icmp ult i32 %786, %790
  br i1 %791, label %792, label %815

792:                                              ; preds = %760
  %793 = load ptr, ptr %8, align 8, !tbaa !5
  %794 = getelementptr inbounds %struct.w2c_hermes, ptr %793, i32 0, i32 7
  %795 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %794, i32 0, i32 0
  %796 = load ptr, ptr %795, align 8, !tbaa !21
  %797 = load i32, ptr %19, align 4, !tbaa !9
  %798 = zext i32 %797 to i64
  %799 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %796, i64 %798
  %800 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %799, i32 0, i32 1
  %801 = load ptr, ptr %800, align 8, !tbaa !22
  %802 = icmp ne ptr %801, null
  br i1 %802, label %803, label %815

803:                                              ; preds = %792
  %804 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %805 = load ptr, ptr %8, align 8, !tbaa !5
  %806 = getelementptr inbounds %struct.w2c_hermes, ptr %805, i32 0, i32 7
  %807 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %806, i32 0, i32 0
  %808 = load ptr, ptr %807, align 8, !tbaa !21
  %809 = load i32, ptr %19, align 4, !tbaa !9
  %810 = zext i32 %809 to i64
  %811 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %808, i64 %810
  %812 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %811, i32 0, i32 0
  %813 = load ptr, ptr %812, align 8, !tbaa !24
  %814 = call zeroext i1 @func_types_eq(ptr noundef %804, ptr noundef %813)
  br label %815

815:                                              ; preds = %803, %792, %760
  %816 = phi i1 [ false, %792 ], [ false, %760 ], [ %814, %803 ]
  %817 = xor i1 %816, true
  %818 = xor i1 %817, true
  %819 = zext i1 %818 to i32
  %820 = sext i32 %819 to i64
  %821 = call i64 @llvm.expect.i64(i64 %820, i64 1)
  %822 = icmp ne i64 %821, 0
  br i1 %822, label %825, label %823

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

824:                                              ; No predecessors!
  br label %825

825:                                              ; preds = %824, %815
  %826 = phi i1 [ true, %815 ], [ false, %824 ]
  %827 = zext i1 %826 to i32
  %828 = load ptr, ptr %8, align 8, !tbaa !5
  %829 = getelementptr inbounds %struct.w2c_hermes, ptr %828, i32 0, i32 7
  %830 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %829, i32 0, i32 0
  %831 = load ptr, ptr %830, align 8, !tbaa !21
  %832 = load i32, ptr %19, align 4, !tbaa !9
  %833 = zext i32 %832 to i64
  %834 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %831, i64 %833
  %835 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %834, i32 0, i32 1
  %836 = load ptr, ptr %835, align 8, !tbaa !22
  %837 = load ptr, ptr %8, align 8, !tbaa !5
  %838 = getelementptr inbounds %struct.w2c_hermes, ptr %837, i32 0, i32 7
  %839 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %838, i32 0, i32 0
  %840 = load ptr, ptr %839, align 8, !tbaa !21
  %841 = load i32, ptr %19, align 4, !tbaa !9
  %842 = zext i32 %841 to i64
  %843 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %840, i64 %842
  %844 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %843, i32 0, i32 2
  %845 = load ptr, ptr %844, align 8, !tbaa !25
  %846 = load i32, ptr %17, align 4, !tbaa !9
  %847 = load i32, ptr %18, align 4, !tbaa !9
  call void %836(ptr noundef %845, i32 noundef %846, i32 noundef %847)
  %848 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %848, ptr %17, align 4, !tbaa !9
  %849 = load ptr, ptr %8, align 8, !tbaa !5
  %850 = getelementptr inbounds %struct.w2c_hermes, ptr %849, i32 0, i32 6
  %851 = load i32, ptr %17, align 4, !tbaa !9
  %852 = zext i32 %851 to i64
  %853 = call i32 @i32_load(ptr noundef %850, i64 noundef %852)
  store i32 %853, ptr %17, align 4, !tbaa !9
  %854 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %854, ptr %11, align 4, !tbaa !9
  br label %939

855:                                              ; preds = %743
  %856 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %856, ptr %17, align 4, !tbaa !9
  %857 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %857, ptr %18, align 4, !tbaa !9
  %858 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %858, ptr %19, align 4, !tbaa !9
  %859 = load ptr, ptr %8, align 8, !tbaa !5
  %860 = getelementptr inbounds %struct.w2c_hermes, ptr %859, i32 0, i32 6
  %861 = load i32, ptr %19, align 4, !tbaa !9
  %862 = zext i32 %861 to i64
  %863 = call i32 @i32_load(ptr noundef %860, i64 noundef %862)
  store i32 %863, ptr %19, align 4, !tbaa !9
  %864 = load ptr, ptr %8, align 8, !tbaa !5
  %865 = getelementptr inbounds %struct.w2c_hermes, ptr %864, i32 0, i32 6
  %866 = load i32, ptr %19, align 4, !tbaa !9
  %867 = zext i32 %866 to i64
  %868 = add i64 %867, 8
  %869 = call i32 @i32_load(ptr noundef %865, i64 noundef %868)
  store i32 %869, ptr %19, align 4, !tbaa !9
  %870 = load i32, ptr %19, align 4, !tbaa !9
  %871 = load ptr, ptr %8, align 8, !tbaa !5
  %872 = getelementptr inbounds %struct.w2c_hermes, ptr %871, i32 0, i32 7
  %873 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %872, i32 0, i32 2
  %874 = load i32, ptr %873, align 4, !tbaa !20
  %875 = icmp ult i32 %870, %874
  br i1 %875, label %876, label %899

876:                                              ; preds = %855
  %877 = load ptr, ptr %8, align 8, !tbaa !5
  %878 = getelementptr inbounds %struct.w2c_hermes, ptr %877, i32 0, i32 7
  %879 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %878, i32 0, i32 0
  %880 = load ptr, ptr %879, align 8, !tbaa !21
  %881 = load i32, ptr %19, align 4, !tbaa !9
  %882 = zext i32 %881 to i64
  %883 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %880, i64 %882
  %884 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %883, i32 0, i32 1
  %885 = load ptr, ptr %884, align 8, !tbaa !22
  %886 = icmp ne ptr %885, null
  br i1 %886, label %887, label %899

887:                                              ; preds = %876
  %888 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %889 = load ptr, ptr %8, align 8, !tbaa !5
  %890 = getelementptr inbounds %struct.w2c_hermes, ptr %889, i32 0, i32 7
  %891 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %890, i32 0, i32 0
  %892 = load ptr, ptr %891, align 8, !tbaa !21
  %893 = load i32, ptr %19, align 4, !tbaa !9
  %894 = zext i32 %893 to i64
  %895 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %892, i64 %894
  %896 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %895, i32 0, i32 0
  %897 = load ptr, ptr %896, align 8, !tbaa !24
  %898 = call zeroext i1 @func_types_eq(ptr noundef %888, ptr noundef %897)
  br label %899

899:                                              ; preds = %887, %876, %855
  %900 = phi i1 [ false, %876 ], [ false, %855 ], [ %898, %887 ]
  %901 = xor i1 %900, true
  %902 = xor i1 %901, true
  %903 = zext i1 %902 to i32
  %904 = sext i32 %903 to i64
  %905 = call i64 @llvm.expect.i64(i64 %904, i64 1)
  %906 = icmp ne i64 %905, 0
  br i1 %906, label %909, label %907

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

908:                                              ; No predecessors!
  br label %909

909:                                              ; preds = %908, %899
  %910 = phi i1 [ true, %899 ], [ false, %908 ]
  %911 = zext i1 %910 to i32
  %912 = load ptr, ptr %8, align 8, !tbaa !5
  %913 = getelementptr inbounds %struct.w2c_hermes, ptr %912, i32 0, i32 7
  %914 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %913, i32 0, i32 0
  %915 = load ptr, ptr %914, align 8, !tbaa !21
  %916 = load i32, ptr %19, align 4, !tbaa !9
  %917 = zext i32 %916 to i64
  %918 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %915, i64 %917
  %919 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %918, i32 0, i32 1
  %920 = load ptr, ptr %919, align 8, !tbaa !22
  %921 = load ptr, ptr %8, align 8, !tbaa !5
  %922 = getelementptr inbounds %struct.w2c_hermes, ptr %921, i32 0, i32 7
  %923 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %922, i32 0, i32 0
  %924 = load ptr, ptr %923, align 8, !tbaa !21
  %925 = load i32, ptr %19, align 4, !tbaa !9
  %926 = zext i32 %925 to i64
  %927 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %924, i64 %926
  %928 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %927, i32 0, i32 2
  %929 = load ptr, ptr %928, align 8, !tbaa !25
  %930 = load i32, ptr %18, align 4, !tbaa !9
  %931 = call i32 %920(ptr noundef %929, i32 noundef %930)
  store i32 %931, ptr %18, align 4, !tbaa !9
  %932 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %932, ptr %11, align 4, !tbaa !9
  %933 = load ptr, ptr %8, align 8, !tbaa !5
  %934 = getelementptr inbounds %struct.w2c_hermes, ptr %933, i32 0, i32 6
  %935 = load i32, ptr %17, align 4, !tbaa !9
  %936 = zext i32 %935 to i64
  %937 = add i64 %936, 40
  %938 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %934, i64 noundef %937, i32 noundef %938)
  br label %939

939:                                              ; preds = %909, %825
  %940 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %940, ptr %17, align 4, !tbaa !9
  %941 = load i32, ptr %17, align 4, !tbaa !9
  %942 = icmp ne i32 %941, 0
  br i1 %942, label %943, label %944

943:                                              ; preds = %939
  br label %953

944:                                              ; preds = %939
  br label %945

945:                                              ; preds = %944, %622
  %946 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %946, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %947 = load ptr, ptr %8, align 8, !tbaa !5
  %948 = getelementptr inbounds %struct.w2c_hermes, ptr %947, i32 0, i32 6
  %949 = load i32, ptr %17, align 4, !tbaa !9
  %950 = zext i32 %949 to i64
  %951 = add i64 %950, 536
  %952 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %948, i64 noundef %951, i32 noundef %952)
  br label %1253

953:                                              ; preds = %943
  %954 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %954, ptr %17, align 4, !tbaa !9
  %955 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %955, ptr %18, align 4, !tbaa !9
  %956 = load i32, ptr %17, align 4, !tbaa !9
  %957 = load i32, ptr %18, align 4, !tbaa !9
  %958 = icmp eq i32 %956, %957
  %959 = zext i1 %958 to i32
  store i32 %959, ptr %17, align 4, !tbaa !9
  %960 = load i32, ptr %17, align 4, !tbaa !9
  %961 = icmp ne i32 %960, 0
  br i1 %961, label %962, label %1052

962:                                              ; preds = %953
  %963 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %963, ptr %17, align 4, !tbaa !9
  %964 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %964, ptr %18, align 4, !tbaa !9
  store i32 520, ptr %19, align 4, !tbaa !9
  %965 = load i32, ptr %19, align 4, !tbaa !9
  %966 = load i32, ptr %18, align 4, !tbaa !9
  %967 = add i32 %966, %965
  store i32 %967, ptr %18, align 4, !tbaa !9
  %968 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %968, ptr %11, align 4, !tbaa !9
  %969 = load ptr, ptr %8, align 8, !tbaa !5
  %970 = getelementptr inbounds %struct.w2c_hermes, ptr %969, i32 0, i32 6
  %971 = load i32, ptr %17, align 4, !tbaa !9
  %972 = zext i32 %971 to i64
  %973 = add i64 %972, 536
  %974 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %970, i64 noundef %973, i32 noundef %974)
  %975 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %975, ptr %17, align 4, !tbaa !9
  %976 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %976, ptr %18, align 4, !tbaa !9
  %977 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %977, ptr %19, align 4, !tbaa !9
  %978 = load ptr, ptr %8, align 8, !tbaa !5
  %979 = getelementptr inbounds %struct.w2c_hermes, ptr %978, i32 0, i32 6
  %980 = load i32, ptr %19, align 4, !tbaa !9
  %981 = zext i32 %980 to i64
  %982 = add i64 %981, 24
  %983 = call i32 @i32_load(ptr noundef %979, i64 noundef %982)
  store i32 %983, ptr %19, align 4, !tbaa !9
  %984 = load ptr, ptr %8, align 8, !tbaa !5
  %985 = getelementptr inbounds %struct.w2c_hermes, ptr %984, i32 0, i32 6
  %986 = load i32, ptr %19, align 4, !tbaa !9
  %987 = zext i32 %986 to i64
  %988 = add i64 %987, 12
  %989 = call i32 @i32_load(ptr noundef %985, i64 noundef %988)
  store i32 %989, ptr %19, align 4, !tbaa !9
  %990 = load i32, ptr %19, align 4, !tbaa !9
  %991 = load ptr, ptr %8, align 8, !tbaa !5
  %992 = getelementptr inbounds %struct.w2c_hermes, ptr %991, i32 0, i32 7
  %993 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %992, i32 0, i32 2
  %994 = load i32, ptr %993, align 4, !tbaa !20
  %995 = icmp ult i32 %990, %994
  br i1 %995, label %996, label %1019

996:                                              ; preds = %962
  %997 = load ptr, ptr %8, align 8, !tbaa !5
  %998 = getelementptr inbounds %struct.w2c_hermes, ptr %997, i32 0, i32 7
  %999 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %998, i32 0, i32 0
  %1000 = load ptr, ptr %999, align 8, !tbaa !21
  %1001 = load i32, ptr %19, align 4, !tbaa !9
  %1002 = zext i32 %1001 to i64
  %1003 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1000, i64 %1002
  %1004 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1003, i32 0, i32 1
  %1005 = load ptr, ptr %1004, align 8, !tbaa !22
  %1006 = icmp ne ptr %1005, null
  br i1 %1006, label %1007, label %1019

1007:                                             ; preds = %996
  %1008 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %1009 = load ptr, ptr %8, align 8, !tbaa !5
  %1010 = getelementptr inbounds %struct.w2c_hermes, ptr %1009, i32 0, i32 7
  %1011 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1010, i32 0, i32 0
  %1012 = load ptr, ptr %1011, align 8, !tbaa !21
  %1013 = load i32, ptr %19, align 4, !tbaa !9
  %1014 = zext i32 %1013 to i64
  %1015 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1012, i64 %1014
  %1016 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1015, i32 0, i32 0
  %1017 = load ptr, ptr %1016, align 8, !tbaa !24
  %1018 = call zeroext i1 @func_types_eq(ptr noundef %1008, ptr noundef %1017)
  br label %1019

1019:                                             ; preds = %1007, %996, %962
  %1020 = phi i1 [ false, %996 ], [ false, %962 ], [ %1018, %1007 ]
  %1021 = xor i1 %1020, true
  %1022 = xor i1 %1021, true
  %1023 = zext i1 %1022 to i32
  %1024 = sext i32 %1023 to i64
  %1025 = call i64 @llvm.expect.i64(i64 %1024, i64 1)
  %1026 = icmp ne i64 %1025, 0
  br i1 %1026, label %1029, label %1027

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

1028:                                             ; No predecessors!
  br label %1029

1029:                                             ; preds = %1028, %1019
  %1030 = phi i1 [ true, %1019 ], [ false, %1028 ]
  %1031 = zext i1 %1030 to i32
  %1032 = load ptr, ptr %8, align 8, !tbaa !5
  %1033 = getelementptr inbounds %struct.w2c_hermes, ptr %1032, i32 0, i32 7
  %1034 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1033, i32 0, i32 0
  %1035 = load ptr, ptr %1034, align 8, !tbaa !21
  %1036 = load i32, ptr %19, align 4, !tbaa !9
  %1037 = zext i32 %1036 to i64
  %1038 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1035, i64 %1037
  %1039 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1038, i32 0, i32 1
  %1040 = load ptr, ptr %1039, align 8, !tbaa !22
  %1041 = load ptr, ptr %8, align 8, !tbaa !5
  %1042 = getelementptr inbounds %struct.w2c_hermes, ptr %1041, i32 0, i32 7
  %1043 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1042, i32 0, i32 0
  %1044 = load ptr, ptr %1043, align 8, !tbaa !21
  %1045 = load i32, ptr %19, align 4, !tbaa !9
  %1046 = zext i32 %1045 to i64
  %1047 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1044, i64 %1046
  %1048 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1047, i32 0, i32 2
  %1049 = load ptr, ptr %1048, align 8, !tbaa !25
  %1050 = load i32, ptr %17, align 4, !tbaa !9
  %1051 = load i32, ptr %18, align 4, !tbaa !9
  call void %1040(ptr noundef %1049, i32 noundef %1050, i32 noundef %1051)
  br label %1135

1052:                                             ; preds = %953
  %1053 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1053, ptr %17, align 4, !tbaa !9
  %1054 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1054, ptr %18, align 4, !tbaa !9
  %1055 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1055, ptr %19, align 4, !tbaa !9
  %1056 = load ptr, ptr %8, align 8, !tbaa !5
  %1057 = getelementptr inbounds %struct.w2c_hermes, ptr %1056, i32 0, i32 6
  %1058 = load i32, ptr %19, align 4, !tbaa !9
  %1059 = zext i32 %1058 to i64
  %1060 = call i32 @i32_load(ptr noundef %1057, i64 noundef %1059)
  store i32 %1060, ptr %19, align 4, !tbaa !9
  %1061 = load ptr, ptr %8, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.w2c_hermes, ptr %1061, i32 0, i32 6
  %1063 = load i32, ptr %19, align 4, !tbaa !9
  %1064 = zext i32 %1063 to i64
  %1065 = add i64 %1064, 8
  %1066 = call i32 @i32_load(ptr noundef %1062, i64 noundef %1065)
  store i32 %1066, ptr %19, align 4, !tbaa !9
  %1067 = load i32, ptr %19, align 4, !tbaa !9
  %1068 = load ptr, ptr %8, align 8, !tbaa !5
  %1069 = getelementptr inbounds %struct.w2c_hermes, ptr %1068, i32 0, i32 7
  %1070 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1069, i32 0, i32 2
  %1071 = load i32, ptr %1070, align 4, !tbaa !20
  %1072 = icmp ult i32 %1067, %1071
  br i1 %1072, label %1073, label %1096

1073:                                             ; preds = %1052
  %1074 = load ptr, ptr %8, align 8, !tbaa !5
  %1075 = getelementptr inbounds %struct.w2c_hermes, ptr %1074, i32 0, i32 7
  %1076 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1075, i32 0, i32 0
  %1077 = load ptr, ptr %1076, align 8, !tbaa !21
  %1078 = load i32, ptr %19, align 4, !tbaa !9
  %1079 = zext i32 %1078 to i64
  %1080 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1077, i64 %1079
  %1081 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1080, i32 0, i32 1
  %1082 = load ptr, ptr %1081, align 8, !tbaa !22
  %1083 = icmp ne ptr %1082, null
  br i1 %1083, label %1084, label %1096

1084:                                             ; preds = %1073
  %1085 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1086 = load ptr, ptr %8, align 8, !tbaa !5
  %1087 = getelementptr inbounds %struct.w2c_hermes, ptr %1086, i32 0, i32 7
  %1088 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1087, i32 0, i32 0
  %1089 = load ptr, ptr %1088, align 8, !tbaa !21
  %1090 = load i32, ptr %19, align 4, !tbaa !9
  %1091 = zext i32 %1090 to i64
  %1092 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1089, i64 %1091
  %1093 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1092, i32 0, i32 0
  %1094 = load ptr, ptr %1093, align 8, !tbaa !24
  %1095 = call zeroext i1 @func_types_eq(ptr noundef %1085, ptr noundef %1094)
  br label %1096

1096:                                             ; preds = %1084, %1073, %1052
  %1097 = phi i1 [ false, %1073 ], [ false, %1052 ], [ %1095, %1084 ]
  %1098 = xor i1 %1097, true
  %1099 = xor i1 %1098, true
  %1100 = zext i1 %1099 to i32
  %1101 = sext i32 %1100 to i64
  %1102 = call i64 @llvm.expect.i64(i64 %1101, i64 1)
  %1103 = icmp ne i64 %1102, 0
  br i1 %1103, label %1106, label %1104

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

1105:                                             ; No predecessors!
  br label %1106

1106:                                             ; preds = %1105, %1096
  %1107 = phi i1 [ true, %1096 ], [ false, %1105 ]
  %1108 = zext i1 %1107 to i32
  %1109 = load ptr, ptr %8, align 8, !tbaa !5
  %1110 = getelementptr inbounds %struct.w2c_hermes, ptr %1109, i32 0, i32 7
  %1111 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1110, i32 0, i32 0
  %1112 = load ptr, ptr %1111, align 8, !tbaa !21
  %1113 = load i32, ptr %19, align 4, !tbaa !9
  %1114 = zext i32 %1113 to i64
  %1115 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1112, i64 %1114
  %1116 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1115, i32 0, i32 1
  %1117 = load ptr, ptr %1116, align 8, !tbaa !22
  %1118 = load ptr, ptr %8, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.w2c_hermes, ptr %1118, i32 0, i32 7
  %1120 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1119, i32 0, i32 0
  %1121 = load ptr, ptr %1120, align 8, !tbaa !21
  %1122 = load i32, ptr %19, align 4, !tbaa !9
  %1123 = zext i32 %1122 to i64
  %1124 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1121, i64 %1123
  %1125 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1124, i32 0, i32 2
  %1126 = load ptr, ptr %1125, align 8, !tbaa !25
  %1127 = load i32, ptr %18, align 4, !tbaa !9
  %1128 = call i32 %1117(ptr noundef %1126, i32 noundef %1127)
  store i32 %1128, ptr %18, align 4, !tbaa !9
  %1129 = load ptr, ptr %8, align 8, !tbaa !5
  %1130 = getelementptr inbounds %struct.w2c_hermes, ptr %1129, i32 0, i32 6
  %1131 = load i32, ptr %17, align 4, !tbaa !9
  %1132 = zext i32 %1131 to i64
  %1133 = add i64 %1132, 536
  %1134 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1130, i64 noundef %1133, i32 noundef %1134)
  br label %1135

1135:                                             ; preds = %1106, %1029
  %1136 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1136, ptr %17, align 4, !tbaa !9
  %1137 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1137, ptr %18, align 4, !tbaa !9
  %1138 = load ptr, ptr %8, align 8, !tbaa !5
  %1139 = getelementptr inbounds %struct.w2c_hermes, ptr %1138, i32 0, i32 6
  %1140 = load i32, ptr %18, align 4, !tbaa !9
  %1141 = zext i32 %1140 to i64
  %1142 = add i64 %1141, 40
  %1143 = call i32 @i32_load(ptr noundef %1139, i64 noundef %1142)
  store i32 %1143, ptr %18, align 4, !tbaa !9
  %1144 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1144, ptr %11, align 4, !tbaa !9
  %1145 = load i32, ptr %17, align 4, !tbaa !9
  %1146 = load i32, ptr %18, align 4, !tbaa !9
  %1147 = icmp eq i32 %1145, %1146
  %1148 = zext i1 %1147 to i32
  store i32 %1148, ptr %17, align 4, !tbaa !9
  %1149 = load i32, ptr %17, align 4, !tbaa !9
  %1150 = icmp ne i32 %1149, 0
  br i1 %1150, label %1151, label %1162

1151:                                             ; preds = %1135
  %1152 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1152, ptr %17, align 4, !tbaa !9
  %1153 = load ptr, ptr %8, align 8, !tbaa !5
  %1154 = getelementptr inbounds %struct.w2c_hermes, ptr %1153, i32 0, i32 6
  %1155 = load i32, ptr %17, align 4, !tbaa !9
  %1156 = zext i32 %1155 to i64
  %1157 = add i64 %1156, 24
  %1158 = call i32 @i32_load(ptr noundef %1154, i64 noundef %1157)
  store i32 %1158, ptr %17, align 4, !tbaa !9
  store i32 16, ptr %18, align 4, !tbaa !9
  %1159 = load i32, ptr %18, align 4, !tbaa !9
  %1160 = load i32, ptr %17, align 4, !tbaa !9
  %1161 = add i32 %1160, %1159
  store i32 %1161, ptr %17, align 4, !tbaa !9
  br label %1183

1162:                                             ; preds = %1135
  %1163 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1163, ptr %17, align 4, !tbaa !9
  %1164 = load i32, ptr %17, align 4, !tbaa !9
  %1165 = icmp ne i32 %1164, 0
  %1166 = xor i1 %1165, true
  %1167 = zext i1 %1166 to i32
  store i32 %1167, ptr %17, align 4, !tbaa !9
  %1168 = load i32, ptr %17, align 4, !tbaa !9
  %1169 = icmp ne i32 %1168, 0
  br i1 %1169, label %1170, label %1171

1170:                                             ; preds = %1162
  br label %1253

1171:                                             ; preds = %1162
  %1172 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1172, ptr %17, align 4, !tbaa !9
  %1173 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1173, ptr %10, align 4, !tbaa !9
  %1174 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1174, ptr %17, align 4, !tbaa !9
  %1175 = load ptr, ptr %8, align 8, !tbaa !5
  %1176 = getelementptr inbounds %struct.w2c_hermes, ptr %1175, i32 0, i32 6
  %1177 = load i32, ptr %17, align 4, !tbaa !9
  %1178 = zext i32 %1177 to i64
  %1179 = call i32 @i32_load(ptr noundef %1176, i64 noundef %1178)
  store i32 %1179, ptr %17, align 4, !tbaa !9
  store i32 20, ptr %18, align 4, !tbaa !9
  %1180 = load i32, ptr %18, align 4, !tbaa !9
  %1181 = load i32, ptr %17, align 4, !tbaa !9
  %1182 = add i32 %1181, %1180
  store i32 %1182, ptr %17, align 4, !tbaa !9
  br label %1183

1183:                                             ; preds = %1171, %1151
  %1184 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1184, ptr %14, align 4, !tbaa !9
  %1185 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1185, ptr %17, align 4, !tbaa !9
  %1186 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1186, ptr %18, align 4, !tbaa !9
  %1187 = load ptr, ptr %8, align 8, !tbaa !5
  %1188 = getelementptr inbounds %struct.w2c_hermes, ptr %1187, i32 0, i32 6
  %1189 = load i32, ptr %18, align 4, !tbaa !9
  %1190 = zext i32 %1189 to i64
  %1191 = call i32 @i32_load(ptr noundef %1188, i64 noundef %1190)
  store i32 %1191, ptr %18, align 4, !tbaa !9
  %1192 = load i32, ptr %18, align 4, !tbaa !9
  %1193 = load ptr, ptr %8, align 8, !tbaa !5
  %1194 = getelementptr inbounds %struct.w2c_hermes, ptr %1193, i32 0, i32 7
  %1195 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1194, i32 0, i32 2
  %1196 = load i32, ptr %1195, align 4, !tbaa !20
  %1197 = icmp ult i32 %1192, %1196
  br i1 %1197, label %1198, label %1221

1198:                                             ; preds = %1183
  %1199 = load ptr, ptr %8, align 8, !tbaa !5
  %1200 = getelementptr inbounds %struct.w2c_hermes, ptr %1199, i32 0, i32 7
  %1201 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1200, i32 0, i32 0
  %1202 = load ptr, ptr %1201, align 8, !tbaa !21
  %1203 = load i32, ptr %18, align 4, !tbaa !9
  %1204 = zext i32 %1203 to i64
  %1205 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1202, i64 %1204
  %1206 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1205, i32 0, i32 1
  %1207 = load ptr, ptr %1206, align 8, !tbaa !22
  %1208 = icmp ne ptr %1207, null
  br i1 %1208, label %1209, label %1221

1209:                                             ; preds = %1198
  %1210 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %1211 = load ptr, ptr %8, align 8, !tbaa !5
  %1212 = getelementptr inbounds %struct.w2c_hermes, ptr %1211, i32 0, i32 7
  %1213 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1212, i32 0, i32 0
  %1214 = load ptr, ptr %1213, align 8, !tbaa !21
  %1215 = load i32, ptr %18, align 4, !tbaa !9
  %1216 = zext i32 %1215 to i64
  %1217 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1214, i64 %1216
  %1218 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1217, i32 0, i32 0
  %1219 = load ptr, ptr %1218, align 8, !tbaa !24
  %1220 = call zeroext i1 @func_types_eq(ptr noundef %1210, ptr noundef %1219)
  br label %1221

1221:                                             ; preds = %1209, %1198, %1183
  %1222 = phi i1 [ false, %1198 ], [ false, %1183 ], [ %1220, %1209 ]
  %1223 = xor i1 %1222, true
  %1224 = xor i1 %1223, true
  %1225 = zext i1 %1224 to i32
  %1226 = sext i32 %1225 to i64
  %1227 = call i64 @llvm.expect.i64(i64 %1226, i64 1)
  %1228 = icmp ne i64 %1227, 0
  br i1 %1228, label %1231, label %1229

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

1230:                                             ; No predecessors!
  br label %1231

1231:                                             ; preds = %1230, %1221
  %1232 = phi i1 [ true, %1221 ], [ false, %1230 ]
  %1233 = zext i1 %1232 to i32
  %1234 = load ptr, ptr %8, align 8, !tbaa !5
  %1235 = getelementptr inbounds %struct.w2c_hermes, ptr %1234, i32 0, i32 7
  %1236 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1235, i32 0, i32 0
  %1237 = load ptr, ptr %1236, align 8, !tbaa !21
  %1238 = load i32, ptr %18, align 4, !tbaa !9
  %1239 = zext i32 %1238 to i64
  %1240 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1237, i64 %1239
  %1241 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1240, i32 0, i32 1
  %1242 = load ptr, ptr %1241, align 8, !tbaa !22
  %1243 = load ptr, ptr %8, align 8, !tbaa !5
  %1244 = getelementptr inbounds %struct.w2c_hermes, ptr %1243, i32 0, i32 7
  %1245 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1244, i32 0, i32 0
  %1246 = load ptr, ptr %1245, align 8, !tbaa !21
  %1247 = load i32, ptr %18, align 4, !tbaa !9
  %1248 = zext i32 %1247 to i64
  %1249 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1246, i64 %1248
  %1250 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1249, i32 0, i32 2
  %1251 = load ptr, ptr %1250, align 8, !tbaa !25
  %1252 = load i32, ptr %17, align 4, !tbaa !9
  call void %1242(ptr noundef %1251, i32 noundef %1252)
  br label %1253

1253:                                             ; preds = %1231, %1170, %945
  %1254 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1254, ptr %17, align 4, !tbaa !9
  %1255 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1255, ptr %18, align 4, !tbaa !9
  %1256 = load ptr, ptr %8, align 8, !tbaa !5
  %1257 = getelementptr inbounds %struct.w2c_hermes, ptr %1256, i32 0, i32 6
  %1258 = load i32, ptr %18, align 4, !tbaa !9
  %1259 = zext i32 %1258 to i64
  %1260 = add i64 %1259, 72
  %1261 = call i32 @i32_load(ptr noundef %1257, i64 noundef %1260)
  store i32 %1261, ptr %18, align 4, !tbaa !9
  %1262 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1262, ptr %14, align 4, !tbaa !9
  %1263 = load ptr, ptr %8, align 8, !tbaa !5
  %1264 = getelementptr inbounds %struct.w2c_hermes, ptr %1263, i32 0, i32 6
  %1265 = load i32, ptr %17, align 4, !tbaa !9
  %1266 = zext i32 %1265 to i64
  %1267 = add i64 %1266, 16
  %1268 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1264, i64 noundef %1267, i32 noundef %1268)
  %1269 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1269, ptr %17, align 4, !tbaa !9
  %1270 = load ptr, ptr %8, align 8, !tbaa !5
  %1271 = getelementptr inbounds %struct.w2c_hermes, ptr %1270, i32 0, i32 6
  %1272 = load i32, ptr %17, align 4, !tbaa !9
  %1273 = zext i32 %1272 to i64
  %1274 = add i64 %1273, 96
  %1275 = call i32 @i32_load(ptr noundef %1271, i64 noundef %1274)
  store i32 %1275, ptr %17, align 4, !tbaa !9
  %1276 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1276, ptr %10, align 4, !tbaa !9
  %1277 = load i32, ptr %17, align 4, !tbaa !9
  %1278 = icmp ne i32 %1277, 0
  %1279 = xor i1 %1278, true
  %1280 = zext i1 %1279 to i32
  store i32 %1280, ptr %17, align 4, !tbaa !9
  %1281 = load i32, ptr %17, align 4, !tbaa !9
  %1282 = icmp ne i32 %1281, 0
  br i1 %1282, label %1283, label %1284

1283:                                             ; preds = %1253
  br label %1600

1284:                                             ; preds = %1253
  %1285 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1285, ptr %17, align 4, !tbaa !9
  store i32 24, ptr %18, align 4, !tbaa !9
  %1286 = load i32, ptr %18, align 4, !tbaa !9
  %1287 = load i32, ptr %17, align 4, !tbaa !9
  %1288 = add i32 %1287, %1286
  store i32 %1288, ptr %17, align 4, !tbaa !9
  %1289 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1289, ptr %11, align 4, !tbaa !9
  %1290 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1290, ptr %17, align 4, !tbaa !9
  store i32 80, ptr %18, align 4, !tbaa !9
  %1291 = load i32, ptr %18, align 4, !tbaa !9
  %1292 = load i32, ptr %17, align 4, !tbaa !9
  %1293 = add i32 %1292, %1291
  store i32 %1293, ptr %17, align 4, !tbaa !9
  %1294 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1294, ptr %12, align 4, !tbaa !9
  %1295 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1295, ptr %18, align 4, !tbaa !9
  %1296 = load i32, ptr %17, align 4, !tbaa !9
  %1297 = load i32, ptr %18, align 4, !tbaa !9
  %1298 = icmp eq i32 %1296, %1297
  %1299 = zext i1 %1298 to i32
  store i32 %1299, ptr %17, align 4, !tbaa !9
  %1300 = load i32, ptr %17, align 4, !tbaa !9
  %1301 = icmp ne i32 %1300, 0
  br i1 %1301, label %1302, label %1405

1302:                                             ; preds = %1284
  %1303 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1303, ptr %17, align 4, !tbaa !9
  store i32 40, ptr %18, align 4, !tbaa !9
  %1304 = load i32, ptr %18, align 4, !tbaa !9
  %1305 = load i32, ptr %17, align 4, !tbaa !9
  %1306 = add i32 %1305, %1304
  store i32 %1306, ptr %17, align 4, !tbaa !9
  %1307 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1307, ptr %10, align 4, !tbaa !9
  %1308 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1308, ptr %18, align 4, !tbaa !9
  %1309 = load ptr, ptr %8, align 8, !tbaa !5
  %1310 = getelementptr inbounds %struct.w2c_hermes, ptr %1309, i32 0, i32 6
  %1311 = load i32, ptr %17, align 4, !tbaa !9
  %1312 = zext i32 %1311 to i64
  %1313 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1310, i64 noundef %1312, i32 noundef %1313)
  %1314 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1314, ptr %17, align 4, !tbaa !9
  %1315 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1315, ptr %18, align 4, !tbaa !9
  %1316 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1316, ptr %19, align 4, !tbaa !9
  %1317 = load ptr, ptr %8, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.w2c_hermes, ptr %1317, i32 0, i32 6
  %1319 = load i32, ptr %19, align 4, !tbaa !9
  %1320 = zext i32 %1319 to i64
  %1321 = call i32 @i32_load(ptr noundef %1318, i64 noundef %1320)
  store i32 %1321, ptr %19, align 4, !tbaa !9
  %1322 = load ptr, ptr %8, align 8, !tbaa !5
  %1323 = getelementptr inbounds %struct.w2c_hermes, ptr %1322, i32 0, i32 6
  %1324 = load i32, ptr %19, align 4, !tbaa !9
  %1325 = zext i32 %1324 to i64
  %1326 = add i64 %1325, 12
  %1327 = call i32 @i32_load(ptr noundef %1323, i64 noundef %1326)
  store i32 %1327, ptr %19, align 4, !tbaa !9
  %1328 = load i32, ptr %19, align 4, !tbaa !9
  %1329 = load ptr, ptr %8, align 8, !tbaa !5
  %1330 = getelementptr inbounds %struct.w2c_hermes, ptr %1329, i32 0, i32 7
  %1331 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1330, i32 0, i32 2
  %1332 = load i32, ptr %1331, align 4, !tbaa !20
  %1333 = icmp ult i32 %1328, %1332
  br i1 %1333, label %1334, label %1357

1334:                                             ; preds = %1302
  %1335 = load ptr, ptr %8, align 8, !tbaa !5
  %1336 = getelementptr inbounds %struct.w2c_hermes, ptr %1335, i32 0, i32 7
  %1337 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1336, i32 0, i32 0
  %1338 = load ptr, ptr %1337, align 8, !tbaa !21
  %1339 = load i32, ptr %19, align 4, !tbaa !9
  %1340 = zext i32 %1339 to i64
  %1341 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1338, i64 %1340
  %1342 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1341, i32 0, i32 1
  %1343 = load ptr, ptr %1342, align 8, !tbaa !22
  %1344 = icmp ne ptr %1343, null
  br i1 %1344, label %1345, label %1357

1345:                                             ; preds = %1334
  %1346 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !5
  %1347 = load ptr, ptr %8, align 8, !tbaa !5
  %1348 = getelementptr inbounds %struct.w2c_hermes, ptr %1347, i32 0, i32 7
  %1349 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1348, i32 0, i32 0
  %1350 = load ptr, ptr %1349, align 8, !tbaa !21
  %1351 = load i32, ptr %19, align 4, !tbaa !9
  %1352 = zext i32 %1351 to i64
  %1353 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1350, i64 %1352
  %1354 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1353, i32 0, i32 0
  %1355 = load ptr, ptr %1354, align 8, !tbaa !24
  %1356 = call zeroext i1 @func_types_eq(ptr noundef %1346, ptr noundef %1355)
  br label %1357

1357:                                             ; preds = %1345, %1334, %1302
  %1358 = phi i1 [ false, %1334 ], [ false, %1302 ], [ %1356, %1345 ]
  %1359 = xor i1 %1358, true
  %1360 = xor i1 %1359, true
  %1361 = zext i1 %1360 to i32
  %1362 = sext i32 %1361 to i64
  %1363 = call i64 @llvm.expect.i64(i64 %1362, i64 1)
  %1364 = icmp ne i64 %1363, 0
  br i1 %1364, label %1367, label %1365

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

1366:                                             ; No predecessors!
  br label %1367

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

1405:                                             ; preds = %1284
  %1406 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1406, ptr %17, align 4, !tbaa !9
  %1407 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1407, ptr %18, align 4, !tbaa !9
  %1408 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1408, ptr %19, align 4, !tbaa !9
  %1409 = load ptr, ptr %8, align 8, !tbaa !5
  %1410 = getelementptr inbounds %struct.w2c_hermes, ptr %1409, i32 0, i32 6
  %1411 = load i32, ptr %19, align 4, !tbaa !9
  %1412 = zext i32 %1411 to i64
  %1413 = call i32 @i32_load(ptr noundef %1410, i64 noundef %1412)
  store i32 %1413, ptr %19, align 4, !tbaa !9
  %1414 = load ptr, ptr %8, align 8, !tbaa !5
  %1415 = getelementptr inbounds %struct.w2c_hermes, ptr %1414, i32 0, i32 6
  %1416 = load i32, ptr %19, align 4, !tbaa !9
  %1417 = zext i32 %1416 to i64
  %1418 = add i64 %1417, 8
  %1419 = call i32 @i32_load(ptr noundef %1415, i64 noundef %1418)
  store i32 %1419, ptr %19, align 4, !tbaa !9
  %1420 = load i32, ptr %19, align 4, !tbaa !9
  %1421 = load ptr, ptr %8, align 8, !tbaa !5
  %1422 = getelementptr inbounds %struct.w2c_hermes, ptr %1421, i32 0, i32 7
  %1423 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1422, i32 0, i32 2
  %1424 = load i32, ptr %1423, align 4, !tbaa !20
  %1425 = icmp ult i32 %1420, %1424
  br i1 %1425, label %1426, label %1449

1426:                                             ; preds = %1405
  %1427 = load ptr, ptr %8, align 8, !tbaa !5
  %1428 = getelementptr inbounds %struct.w2c_hermes, ptr %1427, i32 0, i32 7
  %1429 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1428, i32 0, i32 0
  %1430 = load ptr, ptr %1429, align 8, !tbaa !21
  %1431 = load i32, ptr %19, align 4, !tbaa !9
  %1432 = zext i32 %1431 to i64
  %1433 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1430, i64 %1432
  %1434 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1433, i32 0, i32 1
  %1435 = load ptr, ptr %1434, align 8, !tbaa !22
  %1436 = icmp ne ptr %1435, null
  br i1 %1436, label %1437, label %1449

1437:                                             ; preds = %1426
  %1438 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !5
  %1439 = load ptr, ptr %8, 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 !21
  %1443 = load i32, ptr %19, 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 0
  %1447 = load ptr, ptr %1446, align 8, !tbaa !24
  %1448 = call zeroext i1 @func_types_eq(ptr noundef %1438, ptr noundef %1447)
  br label %1449

1449:                                             ; preds = %1437, %1426, %1405
  %1450 = phi i1 [ false, %1426 ], [ false, %1405 ], [ %1448, %1437 ]
  %1451 = xor i1 %1450, true
  %1452 = xor i1 %1451, true
  %1453 = zext i1 %1452 to i32
  %1454 = sext i32 %1453 to i64
  %1455 = call i64 @llvm.expect.i64(i64 %1454, i64 1)
  %1456 = icmp ne i64 %1455, 0
  br i1 %1456, label %1459, label %1457

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

1458:                                             ; No predecessors!
  br label %1459

1459:                                             ; preds = %1458, %1449
  %1460 = phi i1 [ true, %1449 ], [ false, %1458 ]
  %1461 = zext i1 %1460 to i32
  %1462 = load ptr, ptr %8, align 8, !tbaa !5
  %1463 = getelementptr inbounds %struct.w2c_hermes, ptr %1462, i32 0, i32 7
  %1464 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1463, i32 0, i32 0
  %1465 = load ptr, ptr %1464, align 8, !tbaa !21
  %1466 = load i32, ptr %19, align 4, !tbaa !9
  %1467 = zext i32 %1466 to i64
  %1468 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1465, i64 %1467
  %1469 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1468, i32 0, i32 1
  %1470 = load ptr, ptr %1469, align 8, !tbaa !22
  %1471 = load ptr, ptr %8, align 8, !tbaa !5
  %1472 = getelementptr inbounds %struct.w2c_hermes, ptr %1471, i32 0, i32 7
  %1473 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1472, i32 0, i32 0
  %1474 = load ptr, ptr %1473, align 8, !tbaa !21
  %1475 = load i32, ptr %19, align 4, !tbaa !9
  %1476 = zext i32 %1475 to i64
  %1477 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1474, i64 %1476
  %1478 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1477, i32 0, i32 2
  %1479 = load ptr, ptr %1478, align 8, !tbaa !25
  %1480 = load i32, ptr %18, align 4, !tbaa !9
  %1481 = call i32 %1470(ptr noundef %1479, i32 noundef %1480)
  store i32 %1481, ptr %18, align 4, !tbaa !9
  %1482 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1482, ptr %12, align 4, !tbaa !9
  %1483 = load ptr, ptr %8, align 8, !tbaa !5
  %1484 = getelementptr inbounds %struct.w2c_hermes, ptr %1483, i32 0, i32 6
  %1485 = load i32, ptr %17, align 4, !tbaa !9
  %1486 = zext i32 %1485 to i64
  %1487 = add i64 %1486, 40
  %1488 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1484, i64 noundef %1487, i32 noundef %1488)
  br label %1489

1489:                                             ; preds = %1459, %1367
  %1490 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1490, ptr %17, align 4, !tbaa !9
  %1491 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1491, ptr %18, align 4, !tbaa !9
  %1492 = load i32, ptr %17, align 4, !tbaa !9
  %1493 = load i32, ptr %18, align 4, !tbaa !9
  %1494 = icmp eq i32 %1492, %1493
  %1495 = zext i1 %1494 to i32
  store i32 %1495, ptr %17, align 4, !tbaa !9
  %1496 = load i32, ptr %17, align 4, !tbaa !9
  %1497 = icmp ne i32 %1496, 0
  br i1 %1497, label %1498, label %1509

1498:                                             ; preds = %1489
  %1499 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1499, ptr %17, align 4, !tbaa !9
  %1500 = load ptr, ptr %8, align 8, !tbaa !5
  %1501 = getelementptr inbounds %struct.w2c_hermes, ptr %1500, i32 0, i32 6
  %1502 = load i32, ptr %17, align 4, !tbaa !9
  %1503 = zext i32 %1502 to i64
  %1504 = add i64 %1503, 24
  %1505 = call i32 @i32_load(ptr noundef %1501, i64 noundef %1504)
  store i32 %1505, ptr %17, align 4, !tbaa !9
  store i32 16, ptr %18, align 4, !tbaa !9
  %1506 = load i32, ptr %18, align 4, !tbaa !9
  %1507 = load i32, ptr %17, align 4, !tbaa !9
  %1508 = add i32 %1507, %1506
  store i32 %1508, ptr %17, align 4, !tbaa !9
  br label %1530

1509:                                             ; preds = %1489
  %1510 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1510, ptr %17, align 4, !tbaa !9
  %1511 = load i32, ptr %17, align 4, !tbaa !9
  %1512 = icmp ne i32 %1511, 0
  %1513 = xor i1 %1512, true
  %1514 = zext i1 %1513 to i32
  store i32 %1514, ptr %17, align 4, !tbaa !9
  %1515 = load i32, ptr %17, align 4, !tbaa !9
  %1516 = icmp ne i32 %1515, 0
  br i1 %1516, label %1517, label %1518

1517:                                             ; preds = %1509
  br label %1600

1518:                                             ; preds = %1509
  %1519 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1519, ptr %17, align 4, !tbaa !9
  %1520 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1520, ptr %11, align 4, !tbaa !9
  %1521 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1521, ptr %17, align 4, !tbaa !9
  %1522 = load ptr, ptr %8, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.w2c_hermes, ptr %1522, i32 0, i32 6
  %1524 = load i32, ptr %17, align 4, !tbaa !9
  %1525 = zext i32 %1524 to i64
  %1526 = call i32 @i32_load(ptr noundef %1523, i64 noundef %1525)
  store i32 %1526, ptr %17, align 4, !tbaa !9
  store i32 20, ptr %18, align 4, !tbaa !9
  %1527 = load i32, ptr %18, align 4, !tbaa !9
  %1528 = load i32, ptr %17, align 4, !tbaa !9
  %1529 = add i32 %1528, %1527
  store i32 %1529, ptr %17, align 4, !tbaa !9
  br label %1530

1530:                                             ; preds = %1518, %1498
  %1531 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1531, ptr %10, align 4, !tbaa !9
  %1532 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1532, ptr %17, align 4, !tbaa !9
  %1533 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1533, ptr %18, align 4, !tbaa !9
  %1534 = load ptr, ptr %8, align 8, !tbaa !5
  %1535 = getelementptr inbounds %struct.w2c_hermes, ptr %1534, i32 0, i32 6
  %1536 = load i32, ptr %18, align 4, !tbaa !9
  %1537 = zext i32 %1536 to i64
  %1538 = call i32 @i32_load(ptr noundef %1535, i64 noundef %1537)
  store i32 %1538, ptr %18, align 4, !tbaa !9
  %1539 = load i32, ptr %18, align 4, !tbaa !9
  %1540 = load ptr, ptr %8, align 8, !tbaa !5
  %1541 = getelementptr inbounds %struct.w2c_hermes, ptr %1540, i32 0, i32 7
  %1542 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1541, i32 0, i32 2
  %1543 = load i32, ptr %1542, align 4, !tbaa !20
  %1544 = icmp ult i32 %1539, %1543
  br i1 %1544, label %1545, label %1568

1545:                                             ; preds = %1530
  %1546 = load ptr, ptr %8, align 8, !tbaa !5
  %1547 = getelementptr inbounds %struct.w2c_hermes, ptr %1546, i32 0, i32 7
  %1548 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1547, i32 0, i32 0
  %1549 = load ptr, ptr %1548, align 8, !tbaa !21
  %1550 = load i32, ptr %18, align 4, !tbaa !9
  %1551 = zext i32 %1550 to i64
  %1552 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1549, i64 %1551
  %1553 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1552, i32 0, i32 1
  %1554 = load ptr, ptr %1553, align 8, !tbaa !22
  %1555 = icmp ne ptr %1554, null
  br i1 %1555, label %1556, label %1568

1556:                                             ; preds = %1545
  %1557 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %1558 = load ptr, ptr %8, align 8, !tbaa !5
  %1559 = getelementptr inbounds %struct.w2c_hermes, ptr %1558, i32 0, i32 7
  %1560 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1559, i32 0, i32 0
  %1561 = load ptr, ptr %1560, align 8, !tbaa !21
  %1562 = load i32, ptr %18, align 4, !tbaa !9
  %1563 = zext i32 %1562 to i64
  %1564 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1561, i64 %1563
  %1565 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1564, i32 0, i32 0
  %1566 = load ptr, ptr %1565, align 8, !tbaa !24
  %1567 = call zeroext i1 @func_types_eq(ptr noundef %1557, ptr noundef %1566)
  br label %1568

1568:                                             ; preds = %1556, %1545, %1530
  %1569 = phi i1 [ false, %1545 ], [ false, %1530 ], [ %1567, %1556 ]
  %1570 = xor i1 %1569, true
  %1571 = xor i1 %1570, true
  %1572 = zext i1 %1571 to i32
  %1573 = sext i32 %1572 to i64
  %1574 = call i64 @llvm.expect.i64(i64 %1573, i64 1)
  %1575 = icmp ne i64 %1574, 0
  br i1 %1575, label %1578, label %1576

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

1577:                                             ; No predecessors!
  br label %1578

1578:                                             ; preds = %1577, %1568
  %1579 = phi i1 [ true, %1568 ], [ false, %1577 ]
  %1580 = zext i1 %1579 to i32
  %1581 = load ptr, ptr %8, align 8, !tbaa !5
  %1582 = getelementptr inbounds %struct.w2c_hermes, ptr %1581, i32 0, i32 7
  %1583 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1582, i32 0, i32 0
  %1584 = load ptr, ptr %1583, align 8, !tbaa !21
  %1585 = load i32, ptr %18, align 4, !tbaa !9
  %1586 = zext i32 %1585 to i64
  %1587 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1584, i64 %1586
  %1588 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1587, i32 0, i32 1
  %1589 = load ptr, ptr %1588, align 8, !tbaa !22
  %1590 = load ptr, ptr %8, align 8, !tbaa !5
  %1591 = getelementptr inbounds %struct.w2c_hermes, ptr %1590, i32 0, i32 7
  %1592 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1591, i32 0, i32 0
  %1593 = load ptr, ptr %1592, align 8, !tbaa !21
  %1594 = load i32, ptr %18, align 4, !tbaa !9
  %1595 = zext i32 %1594 to i64
  %1596 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1593, i64 %1595
  %1597 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1596, i32 0, i32 2
  %1598 = load ptr, ptr %1597, align 8, !tbaa !25
  %1599 = load i32, ptr %17, align 4, !tbaa !9
  call void %1589(ptr noundef %1598, i32 noundef %1599)
  br label %1600

1600:                                             ; preds = %1578, %1517, %1283
  %1601 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1601, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1602 = load ptr, ptr %8, align 8, !tbaa !5
  %1603 = getelementptr inbounds %struct.w2c_hermes, ptr %1602, i32 0, i32 6
  %1604 = load i32, ptr %17, align 4, !tbaa !9
  %1605 = zext i32 %1604 to i64
  %1606 = add i64 %1605, 548
  %1607 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1603, i64 noundef %1606, i32 noundef %1607)
  %1608 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1608, ptr %17, align 4, !tbaa !9
  %1609 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1609, ptr %18, align 4, !tbaa !9
  %1610 = load ptr, ptr %8, align 8, !tbaa !5
  %1611 = getelementptr inbounds %struct.w2c_hermes, ptr %1610, i32 0, i32 6
  %1612 = load i32, ptr %17, align 4, !tbaa !9
  %1613 = zext i32 %1612 to i64
  %1614 = add i64 %1613, 544
  %1615 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1611, i64 noundef %1614, i32 noundef %1615)
  %1616 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1616, ptr %17, align 4, !tbaa !9
  store i32 16, ptr %18, align 4, !tbaa !9
  %1617 = load ptr, ptr %8, align 8, !tbaa !5
  %1618 = load i32, ptr %18, align 4, !tbaa !9
  %1619 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %1617, i32 noundef %1618)
  store i32 %1619, ptr %18, align 4, !tbaa !9
  %1620 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1620, ptr %12, align 4, !tbaa !9
  %1621 = load ptr, ptr %8, align 8, !tbaa !5
  %1622 = getelementptr inbounds %struct.w2c_hermes, ptr %1621, i32 0, i32 6
  %1623 = load i32, ptr %17, align 4, !tbaa !9
  %1624 = zext i32 %1623 to i64
  %1625 = add i64 %1624, 16
  %1626 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1622, i64 noundef %1625, i32 noundef %1626)
  %1627 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1627, ptr %17, align 4, !tbaa !9
  store i64 -9223371968135299060, ptr %20, align 8, !tbaa !19
  %1628 = load ptr, ptr %8, align 8, !tbaa !5
  %1629 = getelementptr inbounds %struct.w2c_hermes, ptr %1628, i32 0, i32 6
  %1630 = load i32, ptr %17, align 4, !tbaa !9
  %1631 = zext i32 %1630 to i64
  %1632 = add i64 %1631, 20
  %1633 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %1629, i64 noundef %1632, i64 noundef %1633)
  %1634 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1634, ptr %17, align 4, !tbaa !9
  store i32 71495, ptr %18, align 4, !tbaa !9
  %1635 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1635, ptr %11, align 4, !tbaa !9
  %1636 = load ptr, ptr %8, align 8, !tbaa !5
  %1637 = getelementptr inbounds %struct.w2c_hermes, ptr %1636, i32 0, i32 6
  %1638 = load i32, ptr %18, align 4, !tbaa !9
  %1639 = zext i32 %1638 to i64
  %1640 = add i64 %1639, 8
  %1641 = call i32 @i32_load(ptr noundef %1637, i64 noundef %1640)
  store i32 %1641, ptr %18, align 4, !tbaa !9
  %1642 = load ptr, ptr %8, align 8, !tbaa !5
  %1643 = getelementptr inbounds %struct.w2c_hermes, ptr %1642, i32 0, i32 6
  %1644 = load i32, ptr %17, align 4, !tbaa !9
  %1645 = zext i32 %1644 to i64
  %1646 = add i64 %1645, 8
  %1647 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1643, i64 noundef %1646, i32 noundef %1647)
  %1648 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1648, ptr %17, align 4, !tbaa !9
  %1649 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1649, ptr %18, align 4, !tbaa !9
  %1650 = load ptr, ptr %8, align 8, !tbaa !5
  %1651 = getelementptr inbounds %struct.w2c_hermes, ptr %1650, i32 0, i32 6
  %1652 = load i32, ptr %18, align 4, !tbaa !9
  %1653 = zext i32 %1652 to i64
  %1654 = call i64 @i64_load(ptr noundef %1651, i64 noundef %1653)
  store i64 %1654, ptr %20, align 8, !tbaa !19
  %1655 = load ptr, ptr %8, align 8, !tbaa !5
  %1656 = getelementptr inbounds %struct.w2c_hermes, ptr %1655, i32 0, i32 6
  %1657 = load i32, ptr %17, align 4, !tbaa !9
  %1658 = zext i32 %1657 to i64
  %1659 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %1656, i64 noundef %1658, i64 noundef %1659)
  %1660 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1660, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1661 = load ptr, ptr %8, align 8, !tbaa !5
  %1662 = getelementptr inbounds %struct.w2c_hermes, ptr %1661, i32 0, i32 6
  %1663 = load i32, ptr %17, align 4, !tbaa !9
  %1664 = zext i32 %1663 to i64
  %1665 = add i64 %1664, 12
  %1666 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1662, i64 noundef %1665, i32 noundef %1666)
  %1667 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1667, ptr %17, align 4, !tbaa !9
  store i32 15, ptr %18, align 4, !tbaa !9
  %1668 = load i32, ptr %18, align 4, !tbaa !9
  %1669 = load i32, ptr %17, align 4, !tbaa !9
  %1670 = add i32 %1669, %1668
  store i32 %1670, ptr %17, align 4, !tbaa !9
  %1671 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1671, ptr %18, align 4, !tbaa !9
  store i32 16, ptr %19, align 4, !tbaa !9
  %1672 = load i32, ptr %19, align 4, !tbaa !9
  %1673 = load i32, ptr %18, align 4, !tbaa !9
  %1674 = add i32 %1673, %1672
  store i32 %1674, ptr %18, align 4, !tbaa !9
  %1675 = load ptr, ptr %8, align 8, !tbaa !5
  %1676 = load i32, ptr %17, align 4, !tbaa !9
  %1677 = load i32, ptr %18, align 4, !tbaa !9
  %1678 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef %1675, i32 noundef %1676, i32 noundef %1677)
  store i32 %1678, ptr %17, align 4, !tbaa !9
  %1679 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1679, ptr %12, align 4, !tbaa !9
  %1680 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1680, ptr %17, align 4, !tbaa !9
  %1681 = load ptr, ptr %8, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.w2c_hermes, ptr %1681, i32 0, i32 6
  %1683 = load i32, ptr %17, align 4, !tbaa !9
  %1684 = zext i32 %1683 to i64
  %1685 = add i64 %1684, 27
  %1686 = call i32 @i32_load8_s(ptr noundef %1682, i64 noundef %1685)
  store i32 %1686, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1687 = load i32, ptr %17, align 4, !tbaa !9
  %1688 = load i32, ptr %18, align 4, !tbaa !9
  %1689 = icmp slt i32 %1687, %1688
  %1690 = zext i1 %1689 to i32
  store i32 %1690, ptr %17, align 4, !tbaa !9
  %1691 = load i32, ptr %17, align 4, !tbaa !9
  %1692 = icmp ne i32 %1691, 0
  br i1 %1692, label %1693, label %1703

1693:                                             ; preds = %1600
  %1694 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1694, ptr %17, align 4, !tbaa !9
  %1695 = load ptr, ptr %8, align 8, !tbaa !5
  %1696 = getelementptr inbounds %struct.w2c_hermes, ptr %1695, i32 0, i32 6
  %1697 = load i32, ptr %17, align 4, !tbaa !9
  %1698 = zext i32 %1697 to i64
  %1699 = add i64 %1698, 16
  %1700 = call i32 @i32_load(ptr noundef %1696, i64 noundef %1699)
  store i32 %1700, ptr %17, align 4, !tbaa !9
  %1701 = load ptr, ptr %8, align 8, !tbaa !5
  %1702 = load i32, ptr %17, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1701, i32 noundef %1702)
  br label %1703

1703:                                             ; preds = %1693, %1600
  %1704 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1704, ptr %17, align 4, !tbaa !9
  %1705 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1705, ptr %18, align 4, !tbaa !9
  %1706 = load ptr, ptr %8, align 8, !tbaa !5
  %1707 = load i32, ptr %18, align 4, !tbaa !9
  %1708 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef %1706, i32 noundef %1707)
  store i32 %1708, ptr %18, align 4, !tbaa !9
  %1709 = load ptr, ptr %8, align 8, !tbaa !5
  %1710 = getelementptr inbounds %struct.w2c_hermes, ptr %1709, i32 0, i32 6
  %1711 = load i32, ptr %17, align 4, !tbaa !9
  %1712 = zext i32 %1711 to i64
  %1713 = add i64 %1712, 508
  %1714 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1710, i64 noundef %1713, i32 noundef %1714)
  %1715 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1715, ptr %17, align 4, !tbaa !9
  %1716 = load ptr, ptr %8, align 8, !tbaa !5
  %1717 = load i32, ptr %17, align 4, !tbaa !9
  %1718 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef %1716, i32 noundef %1717)
  store i32 %1718, ptr %17, align 4, !tbaa !9
  %1719 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1719, ptr %11, align 4, !tbaa !9
  %1720 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1720, ptr %17, align 4, !tbaa !9
  store i32 16, ptr %18, align 4, !tbaa !9
  %1721 = load ptr, ptr %8, align 8, !tbaa !5
  %1722 = load i32, ptr %18, align 4, !tbaa !9
  %1723 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %1721, i32 noundef %1722)
  store i32 %1723, ptr %18, align 4, !tbaa !9
  %1724 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1724, ptr %12, align 4, !tbaa !9
  %1725 = load ptr, ptr %8, align 8, !tbaa !5
  %1726 = getelementptr inbounds %struct.w2c_hermes, ptr %1725, i32 0, i32 6
  %1727 = load i32, ptr %17, align 4, !tbaa !9
  %1728 = zext i32 %1727 to i64
  %1729 = add i64 %1728, 16
  %1730 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1726, i64 noundef %1729, i32 noundef %1730)
  %1731 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1731, ptr %17, align 4, !tbaa !9
  store i64 -9223371968135299060, ptr %20, align 8, !tbaa !19
  %1732 = load ptr, ptr %8, align 8, !tbaa !5
  %1733 = getelementptr inbounds %struct.w2c_hermes, ptr %1732, i32 0, i32 6
  %1734 = load i32, ptr %17, align 4, !tbaa !9
  %1735 = zext i32 %1734 to i64
  %1736 = add i64 %1735, 20
  %1737 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %1733, i64 noundef %1736, i64 noundef %1737)
  %1738 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1738, ptr %17, align 4, !tbaa !9
  store i32 71495, ptr %18, align 4, !tbaa !9
  %1739 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1739, ptr %10, align 4, !tbaa !9
  %1740 = load ptr, ptr %8, align 8, !tbaa !5
  %1741 = getelementptr inbounds %struct.w2c_hermes, ptr %1740, i32 0, i32 6
  %1742 = load i32, ptr %18, align 4, !tbaa !9
  %1743 = zext i32 %1742 to i64
  %1744 = add i64 %1743, 8
  %1745 = call i32 @i32_load(ptr noundef %1741, i64 noundef %1744)
  store i32 %1745, ptr %18, align 4, !tbaa !9
  %1746 = load ptr, ptr %8, align 8, !tbaa !5
  %1747 = getelementptr inbounds %struct.w2c_hermes, ptr %1746, i32 0, i32 6
  %1748 = load i32, ptr %17, align 4, !tbaa !9
  %1749 = zext i32 %1748 to i64
  %1750 = add i64 %1749, 8
  %1751 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1747, i64 noundef %1750, i32 noundef %1751)
  %1752 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1752, ptr %17, align 4, !tbaa !9
  %1753 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1753, ptr %18, align 4, !tbaa !9
  %1754 = load ptr, ptr %8, align 8, !tbaa !5
  %1755 = getelementptr inbounds %struct.w2c_hermes, ptr %1754, i32 0, i32 6
  %1756 = load i32, ptr %18, align 4, !tbaa !9
  %1757 = zext i32 %1756 to i64
  %1758 = call i64 @i64_load(ptr noundef %1755, i64 noundef %1757)
  store i64 %1758, ptr %20, align 8, !tbaa !19
  %1759 = load ptr, ptr %8, align 8, !tbaa !5
  %1760 = getelementptr inbounds %struct.w2c_hermes, ptr %1759, i32 0, i32 6
  %1761 = load i32, ptr %17, align 4, !tbaa !9
  %1762 = zext i32 %1761 to i64
  %1763 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %1760, i64 noundef %1762, i64 noundef %1763)
  %1764 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1764, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1765 = load ptr, ptr %8, align 8, !tbaa !5
  %1766 = getelementptr inbounds %struct.w2c_hermes, ptr %1765, i32 0, i32 6
  %1767 = load i32, ptr %17, align 4, !tbaa !9
  %1768 = zext i32 %1767 to i64
  %1769 = add i64 %1768, 12
  %1770 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1766, i64 noundef %1769, i32 noundef %1770)
  %1771 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1771, ptr %17, align 4, !tbaa !9
  %1772 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1772, ptr %18, align 4, !tbaa !9
  store i32 16, ptr %19, align 4, !tbaa !9
  %1773 = load i32, ptr %19, align 4, !tbaa !9
  %1774 = load i32, ptr %18, align 4, !tbaa !9
  %1775 = add i32 %1774, %1773
  store i32 %1775, ptr %18, align 4, !tbaa !9
  %1776 = load ptr, ptr %8, align 8, !tbaa !5
  %1777 = load i32, ptr %17, align 4, !tbaa !9
  %1778 = load i32, ptr %18, align 4, !tbaa !9
  %1779 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef %1776, i32 noundef %1777, i32 noundef %1778)
  store i32 %1779, ptr %17, align 4, !tbaa !9
  %1780 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1780, ptr %12, align 4, !tbaa !9
  %1781 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1781, ptr %17, align 4, !tbaa !9
  %1782 = load ptr, ptr %8, align 8, !tbaa !5
  %1783 = getelementptr inbounds %struct.w2c_hermes, ptr %1782, i32 0, i32 6
  %1784 = load i32, ptr %17, align 4, !tbaa !9
  %1785 = zext i32 %1784 to i64
  %1786 = add i64 %1785, 27
  %1787 = call i32 @i32_load8_s(ptr noundef %1783, i64 noundef %1786)
  store i32 %1787, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1788 = load i32, ptr %17, align 4, !tbaa !9
  %1789 = load i32, ptr %18, align 4, !tbaa !9
  %1790 = icmp slt i32 %1788, %1789
  %1791 = zext i1 %1790 to i32
  store i32 %1791, ptr %17, align 4, !tbaa !9
  %1792 = load i32, ptr %17, align 4, !tbaa !9
  %1793 = icmp ne i32 %1792, 0
  br i1 %1793, label %1794, label %1804

1794:                                             ; preds = %1703
  %1795 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1795, ptr %17, align 4, !tbaa !9
  %1796 = load ptr, ptr %8, align 8, !tbaa !5
  %1797 = getelementptr inbounds %struct.w2c_hermes, ptr %1796, i32 0, i32 6
  %1798 = load i32, ptr %17, align 4, !tbaa !9
  %1799 = zext i32 %1798 to i64
  %1800 = add i64 %1799, 16
  %1801 = call i32 @i32_load(ptr noundef %1797, i64 noundef %1800)
  store i32 %1801, ptr %17, align 4, !tbaa !9
  %1802 = load ptr, ptr %8, align 8, !tbaa !5
  %1803 = load i32, ptr %17, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1802, i32 noundef %1803)
  br label %1804

1804:                                             ; preds = %1794, %1703
  %1805 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1805, ptr %17, align 4, !tbaa !9
  %1806 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1806, ptr %18, align 4, !tbaa !9
  %1807 = load ptr, ptr %8, align 8, !tbaa !5
  %1808 = load i32, ptr %18, align 4, !tbaa !9
  %1809 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef %1807, i32 noundef %1808)
  store i32 %1809, ptr %18, align 4, !tbaa !9
  %1810 = load ptr, ptr %8, align 8, !tbaa !5
  %1811 = getelementptr inbounds %struct.w2c_hermes, ptr %1810, i32 0, i32 6
  %1812 = load i32, ptr %17, align 4, !tbaa !9
  %1813 = zext i32 %1812 to i64
  %1814 = add i64 %1813, 512
  %1815 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1811, i64 noundef %1814, i32 noundef %1815)
  %1816 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1816, ptr %17, align 4, !tbaa !9
  %1817 = load ptr, ptr %8, align 8, !tbaa !5
  %1818 = load i32, ptr %17, align 4, !tbaa !9
  %1819 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef %1817, i32 noundef %1818)
  store i32 %1819, ptr %17, align 4, !tbaa !9
  %1820 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1820, ptr %11, align 4, !tbaa !9
  %1821 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1821, ptr %17, align 4, !tbaa !9
  store i32 16, ptr %18, align 4, !tbaa !9
  %1822 = load ptr, ptr %8, align 8, !tbaa !5
  %1823 = load i32, ptr %18, align 4, !tbaa !9
  %1824 = call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef %1822, i32 noundef %1823)
  store i32 %1824, ptr %18, align 4, !tbaa !9
  %1825 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1825, ptr %12, align 4, !tbaa !9
  %1826 = load ptr, ptr %8, align 8, !tbaa !5
  %1827 = getelementptr inbounds %struct.w2c_hermes, ptr %1826, i32 0, i32 6
  %1828 = load i32, ptr %17, align 4, !tbaa !9
  %1829 = zext i32 %1828 to i64
  %1830 = add i64 %1829, 16
  %1831 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1827, i64 noundef %1830, i32 noundef %1831)
  %1832 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1832, ptr %17, align 4, !tbaa !9
  store i64 -9223371968135299060, ptr %20, align 8, !tbaa !19
  %1833 = load ptr, ptr %8, align 8, !tbaa !5
  %1834 = getelementptr inbounds %struct.w2c_hermes, ptr %1833, i32 0, i32 6
  %1835 = load i32, ptr %17, align 4, !tbaa !9
  %1836 = zext i32 %1835 to i64
  %1837 = add i64 %1836, 20
  %1838 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %1834, i64 noundef %1837, i64 noundef %1838)
  %1839 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1839, ptr %17, align 4, !tbaa !9
  store i32 71495, ptr %18, align 4, !tbaa !9
  %1840 = load ptr, ptr %8, align 8, !tbaa !5
  %1841 = getelementptr inbounds %struct.w2c_hermes, ptr %1840, i32 0, i32 6
  %1842 = load i32, ptr %18, align 4, !tbaa !9
  %1843 = zext i32 %1842 to i64
  %1844 = add i64 %1843, 8
  %1845 = call i32 @i32_load(ptr noundef %1841, i64 noundef %1844)
  store i32 %1845, ptr %18, align 4, !tbaa !9
  %1846 = load ptr, ptr %8, align 8, !tbaa !5
  %1847 = getelementptr inbounds %struct.w2c_hermes, ptr %1846, i32 0, i32 6
  %1848 = load i32, ptr %17, align 4, !tbaa !9
  %1849 = zext i32 %1848 to i64
  %1850 = add i64 %1849, 8
  %1851 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1847, i64 noundef %1850, i32 noundef %1851)
  %1852 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1852, ptr %17, align 4, !tbaa !9
  %1853 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1853, ptr %18, align 4, !tbaa !9
  %1854 = load ptr, ptr %8, align 8, !tbaa !5
  %1855 = getelementptr inbounds %struct.w2c_hermes, ptr %1854, i32 0, i32 6
  %1856 = load i32, ptr %18, align 4, !tbaa !9
  %1857 = zext i32 %1856 to i64
  %1858 = call i64 @i64_load(ptr noundef %1855, i64 noundef %1857)
  store i64 %1858, ptr %20, align 8, !tbaa !19
  %1859 = load ptr, ptr %8, align 8, !tbaa !5
  %1860 = getelementptr inbounds %struct.w2c_hermes, ptr %1859, i32 0, i32 6
  %1861 = load i32, ptr %17, align 4, !tbaa !9
  %1862 = zext i32 %1861 to i64
  %1863 = load i64, ptr %20, align 8, !tbaa !19
  call void @i64_store(ptr noundef %1860, i64 noundef %1862, i64 noundef %1863)
  %1864 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1864, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1865 = load ptr, ptr %8, align 8, !tbaa !5
  %1866 = getelementptr inbounds %struct.w2c_hermes, ptr %1865, i32 0, i32 6
  %1867 = load i32, ptr %17, align 4, !tbaa !9
  %1868 = zext i32 %1867 to i64
  %1869 = add i64 %1868, 12
  %1870 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store8(ptr noundef %1866, i64 noundef %1869, i32 noundef %1870)
  %1871 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1871, ptr %17, align 4, !tbaa !9
  %1872 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1872, ptr %18, align 4, !tbaa !9
  store i32 16, ptr %19, align 4, !tbaa !9
  %1873 = load i32, ptr %19, align 4, !tbaa !9
  %1874 = load i32, ptr %18, align 4, !tbaa !9
  %1875 = add i32 %1874, %1873
  store i32 %1875, ptr %18, align 4, !tbaa !9
  %1876 = load ptr, ptr %8, align 8, !tbaa !5
  %1877 = load i32, ptr %17, align 4, !tbaa !9
  %1878 = load i32, ptr %18, align 4, !tbaa !9
  %1879 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef %1876, i32 noundef %1877, i32 noundef %1878)
  store i32 %1879, ptr %17, align 4, !tbaa !9
  %1880 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1880, ptr %12, align 4, !tbaa !9
  %1881 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1881, ptr %17, align 4, !tbaa !9
  %1882 = load ptr, ptr %8, align 8, !tbaa !5
  %1883 = getelementptr inbounds %struct.w2c_hermes, ptr %1882, i32 0, i32 6
  %1884 = load i32, ptr %17, align 4, !tbaa !9
  %1885 = zext i32 %1884 to i64
  %1886 = add i64 %1885, 27
  %1887 = call i32 @i32_load8_s(ptr noundef %1883, i64 noundef %1886)
  store i32 %1887, ptr %17, align 4, !tbaa !9
  store i32 0, ptr %18, align 4, !tbaa !9
  %1888 = load i32, ptr %17, align 4, !tbaa !9
  %1889 = load i32, ptr %18, align 4, !tbaa !9
  %1890 = icmp slt i32 %1888, %1889
  %1891 = zext i1 %1890 to i32
  store i32 %1891, ptr %17, align 4, !tbaa !9
  %1892 = load i32, ptr %17, align 4, !tbaa !9
  %1893 = icmp ne i32 %1892, 0
  br i1 %1893, label %1894, label %1904

1894:                                             ; preds = %1804
  %1895 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1895, ptr %17, align 4, !tbaa !9
  %1896 = load ptr, ptr %8, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.w2c_hermes, ptr %1896, i32 0, i32 6
  %1898 = load i32, ptr %17, align 4, !tbaa !9
  %1899 = zext i32 %1898 to i64
  %1900 = add i64 %1899, 16
  %1901 = call i32 @i32_load(ptr noundef %1897, i64 noundef %1900)
  store i32 %1901, ptr %17, align 4, !tbaa !9
  %1902 = load ptr, ptr %8, align 8, !tbaa !5
  %1903 = load i32, ptr %17, align 4, !tbaa !9
  call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef %1902, i32 noundef %1903)
  br label %1904

1904:                                             ; preds = %1894, %1804
  %1905 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1905, ptr %17, align 4, !tbaa !9
  %1906 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1906, ptr %18, align 4, !tbaa !9
  %1907 = load ptr, ptr %8, align 8, !tbaa !5
  %1908 = load i32, ptr %18, align 4, !tbaa !9
  %1909 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef %1907, i32 noundef %1908)
  store i32 %1909, ptr %18, align 4, !tbaa !9
  %1910 = load ptr, ptr %8, align 8, !tbaa !5
  %1911 = getelementptr inbounds %struct.w2c_hermes, ptr %1910, i32 0, i32 6
  %1912 = load i32, ptr %17, align 4, !tbaa !9
  %1913 = zext i32 %1912 to i64
  %1914 = add i64 %1913, 516
  %1915 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1911, i64 noundef %1914, i32 noundef %1915)
  %1916 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1916, ptr %17, align 4, !tbaa !9
  %1917 = load ptr, ptr %8, align 8, !tbaa !5
  %1918 = load i32, ptr %17, align 4, !tbaa !9
  %1919 = call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef %1917, i32 noundef %1918)
  store i32 %1919, ptr %17, align 4, !tbaa !9
  %1920 = load ptr, ptr %8, align 8, !tbaa !5
  call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AbuildMetadataTable0x280x29(ptr noundef %1920)
  %1921 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1921, ptr %17, align 4, !tbaa !9
  %1922 = load i32, ptr %17, align 4, !tbaa !9
  %1923 = icmp ne i32 %1922, 0
  %1924 = xor i1 %1923, true
  %1925 = zext i1 %1924 to i32
  store i32 %1925, ptr %17, align 4, !tbaa !9
  %1926 = load i32, ptr %17, align 4, !tbaa !9
  %1927 = icmp ne i32 %1926, 0
  br i1 %1927, label %1928, label %1929

1928:                                             ; preds = %1904
  br label %2030

1929:                                             ; preds = %1904
  %1930 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1930, ptr %17, align 4, !tbaa !9
  %1931 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1931, ptr %18, align 4, !tbaa !9
  %1932 = load ptr, ptr %8, align 8, !tbaa !5
  %1933 = getelementptr inbounds %struct.w2c_hermes, ptr %1932, i32 0, i32 6
  %1934 = load i32, ptr %18, align 4, !tbaa !9
  %1935 = zext i32 %1934 to i64
  %1936 = add i64 %1935, 4
  %1937 = call i32 @i32_load(ptr noundef %1933, i64 noundef %1936)
  store i32 %1937, ptr %18, align 4, !tbaa !9
  %1938 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1938, ptr %12, align 4, !tbaa !9
  store i32 1, ptr %19, align 4, !tbaa !9
  %1939 = load i32, ptr %19, align 4, !tbaa !9
  %1940 = load i32, ptr %18, align 4, !tbaa !9
  %1941 = sub i32 %1940, %1939
  store i32 %1941, ptr %18, align 4, !tbaa !9
  %1942 = load ptr, ptr %8, align 8, !tbaa !5
  %1943 = getelementptr inbounds %struct.w2c_hermes, ptr %1942, i32 0, i32 6
  %1944 = load i32, ptr %17, align 4, !tbaa !9
  %1945 = zext i32 %1944 to i64
  %1946 = add i64 %1945, 4
  %1947 = load i32, ptr %18, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1943, i64 noundef %1946, i32 noundef %1947)
  %1948 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1948, ptr %17, align 4, !tbaa !9
  %1949 = load i32, ptr %17, align 4, !tbaa !9
  %1950 = icmp ne i32 %1949, 0
  br i1 %1950, label %1951, label %1952

1951:                                             ; preds = %1929
  br label %2030

1952:                                             ; preds = %1929
  %1953 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1953, ptr %17, align 4, !tbaa !9
  %1954 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1954, ptr %18, align 4, !tbaa !9
  %1955 = load ptr, ptr %8, align 8, !tbaa !5
  %1956 = getelementptr inbounds %struct.w2c_hermes, ptr %1955, i32 0, i32 6
  %1957 = load i32, ptr %18, align 4, !tbaa !9
  %1958 = zext i32 %1957 to i64
  %1959 = call i32 @i32_load(ptr noundef %1956, i64 noundef %1958)
  store i32 %1959, ptr %18, align 4, !tbaa !9
  %1960 = load ptr, ptr %8, align 8, !tbaa !5
  %1961 = getelementptr inbounds %struct.w2c_hermes, ptr %1960, i32 0, i32 6
  %1962 = load i32, ptr %18, align 4, !tbaa !9
  %1963 = zext i32 %1962 to i64
  %1964 = add i64 %1963, 8
  %1965 = call i32 @i32_load(ptr noundef %1961, i64 noundef %1964)
  store i32 %1965, ptr %18, align 4, !tbaa !9
  %1966 = load i32, ptr %18, align 4, !tbaa !9
  %1967 = load ptr, ptr %8, align 8, !tbaa !5
  %1968 = getelementptr inbounds %struct.w2c_hermes, ptr %1967, i32 0, i32 7
  %1969 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1968, i32 0, i32 2
  %1970 = load i32, ptr %1969, align 4, !tbaa !20
  %1971 = icmp ult i32 %1966, %1970
  br i1 %1971, label %1972, label %1995

1972:                                             ; preds = %1952
  %1973 = load ptr, ptr %8, align 8, !tbaa !5
  %1974 = getelementptr inbounds %struct.w2c_hermes, ptr %1973, i32 0, i32 7
  %1975 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1974, i32 0, i32 0
  %1976 = load ptr, ptr %1975, align 8, !tbaa !21
  %1977 = load i32, ptr %18, align 4, !tbaa !9
  %1978 = zext i32 %1977 to i64
  %1979 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1976, i64 %1978
  %1980 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1979, i32 0, i32 1
  %1981 = load ptr, ptr %1980, align 8, !tbaa !22
  %1982 = icmp ne ptr %1981, null
  br i1 %1982, label %1983, label %1995

1983:                                             ; preds = %1972
  %1984 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !5
  %1985 = load ptr, ptr %8, align 8, !tbaa !5
  %1986 = getelementptr inbounds %struct.w2c_hermes, ptr %1985, i32 0, i32 7
  %1987 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %1986, i32 0, i32 0
  %1988 = load ptr, ptr %1987, align 8, !tbaa !21
  %1989 = load i32, ptr %18, align 4, !tbaa !9
  %1990 = zext i32 %1989 to i64
  %1991 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1988, i64 %1990
  %1992 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %1991, i32 0, i32 0
  %1993 = load ptr, ptr %1992, align 8, !tbaa !24
  %1994 = call zeroext i1 @func_types_eq(ptr noundef %1984, ptr noundef %1993)
  br label %1995

1995:                                             ; preds = %1983, %1972, %1952
  %1996 = phi i1 [ false, %1972 ], [ false, %1952 ], [ %1994, %1983 ]
  %1997 = xor i1 %1996, true
  %1998 = xor i1 %1997, true
  %1999 = zext i1 %1998 to i32
  %2000 = sext i32 %1999 to i64
  %2001 = call i64 @llvm.expect.i64(i64 %2000, i64 1)
  %2002 = icmp ne i64 %2001, 0
  br i1 %2002, label %2005, label %2003

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

2004:                                             ; No predecessors!
  br label %2005

2005:                                             ; preds = %2004, %1995
  %2006 = phi i1 [ true, %1995 ], [ false, %2004 ]
  %2007 = zext i1 %2006 to i32
  %2008 = load ptr, ptr %8, align 8, !tbaa !5
  %2009 = getelementptr inbounds %struct.w2c_hermes, ptr %2008, i32 0, i32 7
  %2010 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2009, i32 0, i32 0
  %2011 = load ptr, ptr %2010, align 8, !tbaa !21
  %2012 = load i32, ptr %18, align 4, !tbaa !9
  %2013 = zext i32 %2012 to i64
  %2014 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2011, i64 %2013
  %2015 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2014, i32 0, i32 1
  %2016 = load ptr, ptr %2015, align 8, !tbaa !22
  %2017 = load ptr, ptr %8, align 8, !tbaa !5
  %2018 = getelementptr inbounds %struct.w2c_hermes, ptr %2017, i32 0, i32 7
  %2019 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %2018, i32 0, i32 0
  %2020 = load ptr, ptr %2019, align 8, !tbaa !21
  %2021 = load i32, ptr %18, align 4, !tbaa !9
  %2022 = zext i32 %2021 to i64
  %2023 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2020, i64 %2022
  %2024 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %2023, i32 0, i32 2
  %2025 = load ptr, ptr %2024, align 8, !tbaa !25
  %2026 = load i32, ptr %17, align 4, !tbaa !9
  call void %2016(ptr noundef %2025, i32 noundef %2026)
  %2027 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %2027, ptr %17, align 4, !tbaa !9
  %2028 = load ptr, ptr %8, align 8, !tbaa !5
  %2029 = load i32, ptr %17, align 4, !tbaa !9
  call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fshared_weak_count0x3A0x3A_0x5Frelease_weak0x280x29(ptr noundef %2028, i32 noundef %2029)
  br label %2030

2030:                                             ; preds = %2005, %1951, %1928
  %2031 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %2031, ptr %17, align 4, !tbaa !9
  store i32 48, ptr %18, align 4, !tbaa !9
  %2032 = load i32, ptr %18, align 4, !tbaa !9
  %2033 = load i32, ptr %17, align 4, !tbaa !9
  %2034 = add i32 %2033, %2032
  store i32 %2034, ptr %17, align 4, !tbaa !9
  %2035 = load i32, ptr %17, align 4, !tbaa !9
  %2036 = load ptr, ptr %8, align 8, !tbaa !5
  %2037 = getelementptr inbounds %struct.w2c_hermes, ptr %2036, i32 0, i32 3
  store i32 %2035, ptr %2037, align 8, !tbaa !13
  %2038 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %2038, ptr %17, align 4, !tbaa !9
  %2039 = load i32, ptr %17, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  ret i32 %2039
}

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x3A0x3A_0x5Finit_copy_ctor_external0x28char0x20const0x2A0x2C0x20unsigned0x20long0x29(ptr noundef, i32 noundef, i32 noundef, i32 noundef) #1

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef, i32 noundef, i32 noundef) #1

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef, i32 noundef) #1

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef, i32 noundef) #1

declare void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AbuildMetadataTable0x280x29(ptr noundef) #1

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

attributes #0 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #3 = { 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 #4 = { nocallback nofree nosync nounwind willreturn memory(none) }
attributes #5 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #6 = { 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 = !{!"double", !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, !18, i64 80}
!15 = !{!"", !6, i64 0, !16, i64 8, !16, i64 16, !16, i64 24, !17, i64 32}
!16 = !{!"long", !7, i64 0}
!17 = !{!"_Bool", !7, i64 0}
!18 = !{!"", !6, i64 0, !10, i64 8, !10, i64 12}
!19 = !{!16, !16, i64 0}
!20 = !{!14, !10, i64 92}
!21 = !{!14, !6, i64 80}
!22 = !{!23, !6, i64 8}
!23 = !{!"", !6, i64 0, !6, i64 8, !6, i64 16}
!24 = !{!23, !6, i64 0}
!25 = !{!23, !6, i64 16}


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

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

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

declare i32 @w2c_hermes_0x5F_memset(ptr noundef, i32 noundef, i32 noundef, i32 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 i32 @i32_load8_u(ptr noundef, i64 noundef) local_unnamed_addr #2

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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
define dso_local noundef i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AGCBase0x3A0x3AGCBase0x28hermes0x3A0x3Avm0x3A0x3AGCBase0x3A0x3AGCCallbacks0x260x2C0x20hermes0x3A0x3Avm0x3A0x3APointerBase0x260x2C0x20hermes0x3A0x3Avm0x3A0x3AGCConfig0x20const0x260x2C0x20std0x3A0x3A_0x5F20x3A0x3Ashared_ptr0x3Chermes0x3A0x3Avm0x3A0x3ACrashManager0x3E0x2C0x20hermes0x3A0x3Avm0x3A0x3AGCBase0x3A0x3AHeapKind0x29(ptr noundef %0, i32 noundef returned %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6) local_unnamed_addr #3 {
  %8 = getelementptr inbounds i8, ptr %0, i64 24
  %9 = load i32, ptr %8, align 8, !tbaa !5
  %10 = add i32 %9, -48
  store i32 %10, ptr %8, align 8, !tbaa !5
  %11 = getelementptr inbounds i8, ptr %0, i64 40
  %12 = zext i32 %1 to i64
  %13 = add nuw nsw i64 %12, 48
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %13, i64 noundef 0)
  %14 = add nuw nsw i64 %12, 8
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %14, i64 noundef 0)
  %15 = add nuw nsw i64 %12, 4
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %15, i32 noundef 0)
  %16 = add nuw nsw i64 %12, 20
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %16, i64 noundef 0)
  %17 = add nuw nsw i64 %12, 60
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %17, i32 noundef %3)
  %18 = add nuw nsw i64 %12, 56
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %18, i32 noundef %2)
  %19 = add nuw nsw i64 %12, 28
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %19, i64 noundef 0)
  %20 = add nuw nsw i64 %12, 36
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %20, i64 noundef 0)
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %12, i32 noundef 276400)
  %21 = zext i32 %5 to i64
  %22 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %21)
  %23 = add nuw nsw i64 %12, 64
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %23, i32 noundef %22)
  %24 = add nuw nsw i64 %21, 4
  %25 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %24)
  %26 = add nuw nsw i64 %12, 68
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %26, i32 noundef %25)
  %.not = icmp eq i32 %25, 0
  br i1 %.not, label %32, label %27

27:                                               ; preds = %7
  %28 = zext i32 %25 to i64
  %29 = add nuw nsw i64 %28, 4
  %30 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %29)
  %31 = add i32 %30, 1
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %29, i32 noundef %31)
  br label %32

32:                                               ; preds = %27, %7
  %33 = add nuw nsw i64 %12, 72
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %33, i32 noundef %6)
  %34 = zext i32 %4 to i64
  %35 = add nuw nsw i64 %34, 128
  %36 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %35)
  %.not892 = icmp eq i32 %36, 0
  br i1 %.not892, label %37, label %39

37:                                               ; preds = %32
  %38 = add nuw nsw i64 %12, 96
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %38, i32 noundef 0)
  br label %100

39:                                               ; preds = %32
  %40 = add i32 %4, 112
  %41 = icmp eq i32 %40, %36
  br i1 %41, label %42, label %71

42:                                               ; preds = %39
  %43 = add i32 %1, 80
  %44 = add nuw nsw i64 %12, 96
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %44, i32 noundef %43)
  %45 = zext i32 %36 to i64
  %46 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %45)
  %47 = zext i32 %46 to i64
  %48 = add nuw nsw i64 %47, 12
  %49 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %48)
  %50 = getelementptr inbounds i8, ptr %0, i64 80
  %51 = getelementptr inbounds i8, ptr %0, i64 92
  %52 = load i32, ptr %51, align 4, !tbaa !15
  %53 = icmp ult i32 %49, %52
  br i1 %53, label %54, label %.critedge, !prof !16

54:                                               ; preds = %42
  %55 = load ptr, ptr %50, align 8, !tbaa !17
  %56 = zext i32 %49 to i64
  %57 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %55, i64 %56
  %58 = getelementptr inbounds i8, ptr %57, i64 8
  %59 = load ptr, ptr %58, align 8, !tbaa !18
  %.not894 = icmp eq ptr %59, null
  br i1 %.not894, label %.critedge, label %60, !prof !20

60:                                               ; preds = %54
  %61 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !21
  %62 = load ptr, ptr %57, align 8, !tbaa !22
  %63 = tail call zeroext i1 @func_types_eq(ptr noundef %61, ptr noundef %62)
  br i1 %63, label %64, label %.critedge, !prof !16

.critedge:                                        ; preds = %54, %42, %60
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

64:                                               ; preds = %60
  %65 = load ptr, ptr %50, align 8, !tbaa !17
  %66 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %65, i64 %56
  %67 = getelementptr inbounds i8, ptr %66, i64 8
  %68 = load ptr, ptr %67, align 8, !tbaa !18
  %69 = getelementptr inbounds i8, ptr %66, i64 16
  %70 = load ptr, ptr %69, align 8, !tbaa !23
  tail call void %68(ptr noundef %70, i32 noundef %36, i32 noundef %43) #5
  br label %100

71:                                               ; preds = %39
  %72 = zext i32 %36 to i64
  %73 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %72)
  %74 = zext i32 %73 to i64
  %75 = add nuw nsw i64 %74, 8
  %76 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %75)
  %77 = getelementptr inbounds i8, ptr %0, i64 80
  %78 = getelementptr inbounds i8, ptr %0, i64 92
  %79 = load i32, ptr %78, align 4, !tbaa !15
  %80 = icmp ult i32 %76, %79
  br i1 %80, label %81, label %.critedge911, !prof !16

81:                                               ; preds = %71
  %82 = load ptr, ptr %77, align 8, !tbaa !17
  %83 = zext i32 %76 to i64
  %84 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %82, i64 %83
  %85 = getelementptr inbounds i8, ptr %84, i64 8
  %86 = load ptr, ptr %85, align 8, !tbaa !18
  %.not893 = icmp eq ptr %86, null
  br i1 %.not893, label %.critedge911, label %87, !prof !20

87:                                               ; preds = %81
  %88 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !21
  %89 = load ptr, ptr %84, align 8, !tbaa !22
  %90 = tail call zeroext i1 @func_types_eq(ptr noundef %88, ptr noundef %89)
  br i1 %90, label %91, label %.critedge911, !prof !16

.critedge911:                                     ; preds = %81, %71, %87
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

91:                                               ; preds = %87
  %92 = load ptr, ptr %77, align 8, !tbaa !17
  %93 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %92, i64 %83
  %94 = getelementptr inbounds i8, ptr %93, i64 8
  %95 = load ptr, ptr %94, align 8, !tbaa !18
  %96 = getelementptr inbounds i8, ptr %93, i64 16
  %97 = load ptr, ptr %96, align 8, !tbaa !23
  %98 = tail call i32 %95(ptr noundef %97, i32 noundef %36) #5
  %99 = add nuw nsw i64 %12, 96
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %99, i32 noundef %98)
  br label %100

100:                                              ; preds = %91, %64, %37
  %101 = add nuw nsw i64 %12, 104
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %101, i64 noundef 0)
  %102 = add nuw nsw i64 %12, 112
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %102, i32 noundef 0)
  %103 = add nuw nsw i64 %34, 48
  %104 = tail call i32 @i32_load8_u(ptr noundef nonnull %11, i64 noundef %103)
  %105 = add nuw nsw i64 %12, 280
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %105, i64 noundef 0)
  %106 = add nuw nsw i64 %12, 240
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %106, i32 noundef 0)
  %107 = add nuw nsw i64 %12, 152
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %107, i32 noundef 0)
  %108 = add nuw nsw i64 %12, 144
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %108, i32 noundef 0)
  %109 = add nuw nsw i64 %12, 136
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %109, i64 noundef 0)
  %110 = add nuw nsw i64 %12, 116
  tail call void @i32_store8(ptr noundef nonnull %11, i64 noundef %110, i32 noundef %104)
  %111 = add nuw nsw i64 %12, 288
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %111, i64 noundef 0)
  %112 = add nuw nsw i64 %12, 296
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %112, i64 noundef 0)
  %113 = add nuw nsw i64 %12, 160
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %113, i64 noundef 0)
  %114 = add nuw nsw i64 %12, 168
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %114, i64 noundef 0)
  %115 = add nuw nsw i64 %12, 176
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %115, i64 noundef 0)
  %116 = add nuw nsw i64 %12, 184
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %116, i64 noundef 0)
  %117 = add nuw nsw i64 %12, 192
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %117, i32 noundef 0)
  %118 = add nuw nsw i64 %12, 200
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %118, i64 noundef 0)
  %119 = add nuw nsw i64 %12, 208
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %119, i64 noundef 0)
  %120 = add nuw nsw i64 %12, 216
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %120, i64 noundef 0)
  %121 = add nuw nsw i64 %12, 224
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %121, i64 noundef 0)
  %122 = add nuw nsw i64 %12, 232
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %122, i32 noundef 0)
  %123 = add nuw nsw i64 %12, 272
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %123, i32 noundef 0)
  %124 = add nuw nsw i64 %12, 264
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %124, i64 noundef 0)
  %125 = add nuw nsw i64 %12, 256
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %125, i64 noundef 0)
  %126 = add nuw nsw i64 %12, 248
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %126, i64 noundef 0)
  %127 = add nuw nsw i64 %12, 117
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %127, i64 noundef 0)
  %128 = add nuw nsw i64 %12, 124
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %128, i32 noundef 0)
  %129 = add i32 %1, 304
  %130 = add nuw nsw i64 %34, 67
  %131 = tail call i32 @i32_load8_s(ptr noundef nonnull %11, i64 noundef %130)
  %132 = icmp sgt i32 %131, -1
  br i1 %132, label %133, label %141

133:                                              ; preds = %100
  %134 = add i32 %4, 56
  %135 = zext i32 %134 to i64
  %136 = tail call i64 @i64_load(ptr noundef nonnull %11, i64 noundef %135)
  %137 = zext i32 %129 to i64
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %137, i64 noundef %136)
  %138 = add nuw nsw i64 %135, 8
  %139 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %138)
  %140 = add nuw nsw i64 %137, 8
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %140, i32 noundef %139)
  br label %146

141:                                              ; preds = %100
  %142 = add nuw nsw i64 %34, 56
  %143 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %142)
  %144 = add nuw nsw i64 %34, 60
  %145 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %144)
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x3A0x3A_0x5Finit_copy_ctor_external0x28char0x20const0x2A0x2C0x20unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef %129, i32 noundef %143, i32 noundef %145) #5
  br label %146

146:                                              ; preds = %141, %133
  %147 = add nuw nsw i64 %34, 16
  %148 = tail call double @f64_load(ptr noundef nonnull %11, i64 noundef %147)
  %149 = add nuw nsw i64 %12, 404
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %149, i32 noundef 59)
  %150 = add nuw nsw i64 %12, 392
  tail call void @f64_store(ptr noundef nonnull %11, i64 noundef %150, double noundef %148)
  %151 = add nuw nsw i64 %12, 384
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %151, i32 noundef 0)
  %152 = add nuw nsw i64 %12, 376
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %152, i64 noundef 0)
  %153 = add nuw nsw i64 %12, 368
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %153, i64 noundef 4602678819172646912)
  %154 = add nuw nsw i64 %12, 360
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %154, i64 noundef 0)
  %155 = add nuw nsw i64 %12, 352
  tail call void @f64_store(ptr noundef nonnull %11, i64 noundef %155, double noundef %148)
  %156 = add nuw nsw i64 %12, 344
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %156, i32 noundef 0)
  %157 = add nuw nsw i64 %12, 336
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %157, i64 noundef 0)
  %158 = add nuw nsw i64 %12, 328
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %158, i64 noundef 4602678819172646912)
  %159 = add nuw nsw i64 %12, 320
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %159, i64 noundef 0)
  %160 = add i32 %1, 408
  %161 = tail call i32 @w2c_hermes_0x5F_memset(ptr noundef nonnull %0, i32 noundef %160, i32 noundef 0, i32 noundef 100) #5
  %162 = add nuw nsw i64 %34, 72
  %163 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %162)
  %164 = zext i32 %10 to i64
  %165 = add nuw nsw i64 %164, 16
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %165, i32 noundef %163)
  %166 = add nuw nsw i64 %34, 96
  %167 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %166)
  %.not895 = icmp eq i32 %167, 0
  br i1 %.not895, label %232, label %168

168:                                              ; preds = %146
  %169 = add i32 %9, -24
  %170 = add i32 %4, 80
  %171 = icmp eq i32 %170, %167
  br i1 %171, label %172, label %202

172:                                              ; preds = %168
  %173 = add i32 %9, -8
  %174 = zext i32 %173 to i64
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %174, i32 noundef %169)
  %175 = zext i32 %167 to i64
  %176 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %175)
  %177 = zext i32 %176 to i64
  %178 = add nuw nsw i64 %177, 12
  %179 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %178)
  %180 = getelementptr inbounds i8, ptr %0, i64 80
  %181 = getelementptr inbounds i8, ptr %0, i64 92
  %182 = load i32, ptr %181, align 4, !tbaa !15
  %183 = icmp ult i32 %179, %182
  br i1 %183, label %184, label %.critedge913, !prof !16

184:                                              ; preds = %172
  %185 = load ptr, ptr %180, align 8, !tbaa !17
  %186 = zext i32 %179 to i64
  %187 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %185, i64 %186
  %188 = getelementptr inbounds i8, ptr %187, i64 8
  %189 = load ptr, ptr %188, align 8, !tbaa !18
  %.not897 = icmp eq ptr %189, null
  br i1 %.not897, label %.critedge913, label %190, !prof !20

190:                                              ; preds = %184
  %191 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !21
  %192 = load ptr, ptr %187, align 8, !tbaa !22
  %193 = tail call zeroext i1 @func_types_eq(ptr noundef %191, ptr noundef %192)
  br i1 %193, label %194, label %.critedge913, !prof !16

.critedge913:                                     ; preds = %184, %172, %190
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

194:                                              ; preds = %190
  %195 = load ptr, ptr %180, align 8, !tbaa !17
  %196 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %195, i64 %186
  %197 = getelementptr inbounds i8, ptr %196, i64 8
  %198 = load ptr, ptr %197, align 8, !tbaa !18
  %199 = getelementptr inbounds i8, ptr %196, i64 16
  %200 = load ptr, ptr %199, align 8, !tbaa !23
  tail call void %198(ptr noundef %200, i32 noundef %167, i32 noundef %169) #5
  %201 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %174)
  br label %231

202:                                              ; preds = %168
  %203 = zext i32 %167 to i64
  %204 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %203)
  %205 = zext i32 %204 to i64
  %206 = add nuw nsw i64 %205, 8
  %207 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %206)
  %208 = getelementptr inbounds i8, ptr %0, i64 80
  %209 = getelementptr inbounds i8, ptr %0, i64 92
  %210 = load i32, ptr %209, align 4, !tbaa !15
  %211 = icmp ult i32 %207, %210
  br i1 %211, label %212, label %.critedge915, !prof !16

212:                                              ; preds = %202
  %213 = load ptr, ptr %208, align 8, !tbaa !17
  %214 = zext i32 %207 to i64
  %215 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %213, i64 %214
  %216 = getelementptr inbounds i8, ptr %215, i64 8
  %217 = load ptr, ptr %216, align 8, !tbaa !18
  %.not896 = icmp eq ptr %217, null
  br i1 %.not896, label %.critedge915, label %218, !prof !20

218:                                              ; preds = %212
  %219 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !21
  %220 = load ptr, ptr %215, align 8, !tbaa !22
  %221 = tail call zeroext i1 @func_types_eq(ptr noundef %219, ptr noundef %220)
  br i1 %221, label %222, label %.critedge915, !prof !16

.critedge915:                                     ; preds = %212, %202, %218
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

222:                                              ; preds = %218
  %223 = load ptr, ptr %208, align 8, !tbaa !17
  %224 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %223, i64 %214
  %225 = getelementptr inbounds i8, ptr %224, i64 8
  %226 = load ptr, ptr %225, align 8, !tbaa !18
  %227 = getelementptr inbounds i8, ptr %224, i64 16
  %228 = load ptr, ptr %227, align 8, !tbaa !23
  %229 = tail call i32 %226(ptr noundef %228, i32 noundef %167) #5
  %230 = add nuw nsw i64 %164, 40
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %230, i32 noundef %229)
  br label %231

231:                                              ; preds = %222, %194
  %.0865 = phi i32 [ %201, %194 ], [ %229, %222 ]
  %.not898 = icmp eq i32 %.0865, 0
  br i1 %.not898, label %232, label %234

232:                                              ; preds = %231, %146
  %233 = add nuw nsw i64 %12, 536
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %233, i32 noundef 0)
  br label %329

234:                                              ; preds = %231
  %235 = icmp eq i32 %169, %.0865
  br i1 %235, label %236, label %265

236:                                              ; preds = %234
  %237 = add i32 %1, 520
  %238 = add nuw nsw i64 %12, 536
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %238, i32 noundef %237)
  %239 = add nuw nsw i64 %164, 24
  %240 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %239)
  %241 = zext i32 %240 to i64
  %242 = add nuw nsw i64 %241, 12
  %243 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %242)
  %244 = getelementptr inbounds i8, ptr %0, i64 80
  %245 = getelementptr inbounds i8, ptr %0, i64 92
  %246 = load i32, ptr %245, align 4, !tbaa !15
  %247 = icmp ult i32 %243, %246
  br i1 %247, label %248, label %.critedge917, !prof !16

248:                                              ; preds = %236
  %249 = load ptr, ptr %244, align 8, !tbaa !17
  %250 = zext i32 %243 to i64
  %251 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %249, i64 %250
  %252 = getelementptr inbounds i8, ptr %251, i64 8
  %253 = load ptr, ptr %252, align 8, !tbaa !18
  %.not900 = icmp eq ptr %253, null
  br i1 %.not900, label %.critedge917, label %254, !prof !20

254:                                              ; preds = %248
  %255 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !21
  %256 = load ptr, ptr %251, align 8, !tbaa !22
  %257 = tail call zeroext i1 @func_types_eq(ptr noundef %255, ptr noundef %256)
  br i1 %257, label %258, label %.critedge917, !prof !16

.critedge917:                                     ; preds = %248, %236, %254
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

258:                                              ; preds = %254
  %259 = load ptr, ptr %244, align 8, !tbaa !17
  %260 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %259, i64 %250
  %261 = getelementptr inbounds i8, ptr %260, i64 8
  %262 = load ptr, ptr %261, align 8, !tbaa !18
  %263 = getelementptr inbounds i8, ptr %260, i64 16
  %264 = load ptr, ptr %263, align 8, !tbaa !23
  tail call void %262(ptr noundef %264, i32 noundef %169, i32 noundef %237) #5
  br label %294

265:                                              ; preds = %234
  %266 = zext i32 %.0865 to i64
  %267 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %266)
  %268 = zext i32 %267 to i64
  %269 = add nuw nsw i64 %268, 8
  %270 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %269)
  %271 = getelementptr inbounds i8, ptr %0, i64 80
  %272 = getelementptr inbounds i8, ptr %0, i64 92
  %273 = load i32, ptr %272, align 4, !tbaa !15
  %274 = icmp ult i32 %270, %273
  br i1 %274, label %275, label %.critedge919, !prof !16

275:                                              ; preds = %265
  %276 = load ptr, ptr %271, align 8, !tbaa !17
  %277 = zext i32 %270 to i64
  %278 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %276, i64 %277
  %279 = getelementptr inbounds i8, ptr %278, i64 8
  %280 = load ptr, ptr %279, align 8, !tbaa !18
  %.not899 = icmp eq ptr %280, null
  br i1 %.not899, label %.critedge919, label %281, !prof !20

281:                                              ; preds = %275
  %282 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !21
  %283 = load ptr, ptr %278, align 8, !tbaa !22
  %284 = tail call zeroext i1 @func_types_eq(ptr noundef %282, ptr noundef %283)
  br i1 %284, label %285, label %.critedge919, !prof !16

.critedge919:                                     ; preds = %275, %265, %281
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

285:                                              ; preds = %281
  %286 = load ptr, ptr %271, align 8, !tbaa !17
  %287 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %286, i64 %277
  %288 = getelementptr inbounds i8, ptr %287, i64 8
  %289 = load ptr, ptr %288, align 8, !tbaa !18
  %290 = getelementptr inbounds i8, ptr %287, i64 16
  %291 = load ptr, ptr %290, align 8, !tbaa !23
  %292 = tail call i32 %289(ptr noundef %291, i32 noundef %.0865) #5
  %293 = add nuw nsw i64 %12, 536
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %293, i32 noundef %292)
  br label %294

294:                                              ; preds = %285, %258
  %295 = add nuw nsw i64 %164, 40
  %296 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %295)
  %297 = icmp eq i32 %169, %296
  br i1 %297, label %298, label %300

298:                                              ; preds = %294
  %299 = add nuw nsw i64 %164, 24
  br label %303

300:                                              ; preds = %294
  %.not901 = icmp eq i32 %296, 0
  br i1 %.not901, label %329, label %301

301:                                              ; preds = %300
  %302 = zext i32 %296 to i64
  br label %303

303:                                              ; preds = %301, %298
  %.sink931 = phi i64 [ %302, %301 ], [ %299, %298 ]
  %.sink930 = phi i32 [ 20, %301 ], [ 16, %298 ]
  %.0 = phi i32 [ %296, %301 ], [ %169, %298 ]
  %304 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %.sink931)
  %305 = add i32 %304, %.sink930
  %306 = zext i32 %305 to i64
  %307 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %306)
  %308 = getelementptr inbounds i8, ptr %0, i64 80
  %309 = getelementptr inbounds i8, ptr %0, i64 92
  %310 = load i32, ptr %309, align 4, !tbaa !15
  %311 = icmp ult i32 %307, %310
  br i1 %311, label %312, label %.critedge921, !prof !16

312:                                              ; preds = %303
  %313 = load ptr, ptr %308, align 8, !tbaa !17
  %314 = zext i32 %307 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
  %.not902 = icmp eq ptr %317, null
  br i1 %.not902, label %.critedge921, label %318, !prof !20

318:                                              ; preds = %312
  %319 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !21
  %320 = load ptr, ptr %315, align 8, !tbaa !22
  %321 = tail call zeroext i1 @func_types_eq(ptr noundef %319, ptr noundef %320)
  br i1 %321, label %322, label %.critedge921, !prof !16

.critedge921:                                     ; preds = %312, %303, %318
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

322:                                              ; preds = %318
  %323 = load ptr, ptr %308, align 8, !tbaa !17
  %324 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %323, i64 %314
  %325 = getelementptr inbounds i8, ptr %324, i64 8
  %326 = load ptr, ptr %325, align 8, !tbaa !18
  %327 = getelementptr inbounds i8, ptr %324, i64 16
  %328 = load ptr, ptr %327, align 8, !tbaa !23
  tail call void %326(ptr noundef %328, i32 noundef %.0) #5
  br label %329

329:                                              ; preds = %300, %322, %232
  %330 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %162)
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %165, i32 noundef %330)
  %331 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %166)
  %.not903 = icmp eq i32 %331, 0
  br i1 %.not903, label %429, label %332

332:                                              ; preds = %329
  %333 = add i32 %9, -24
  %334 = add i32 %4, 80
  %335 = icmp eq i32 %334, %331
  br i1 %335, label %336, label %367

336:                                              ; preds = %332
  %337 = add i32 %9, -8
  %338 = zext i32 %337 to i64
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %338, i32 noundef %333)
  %339 = zext i32 %334 to i64
  %340 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %339)
  %341 = zext i32 %340 to i64
  %342 = add nuw nsw i64 %341, 12
  %343 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %342)
  %344 = getelementptr inbounds i8, ptr %0, i64 80
  %345 = getelementptr inbounds i8, ptr %0, i64 92
  %346 = load i32, ptr %345, align 4, !tbaa !15
  %347 = icmp ult i32 %343, %346
  br i1 %347, label %348, label %.critedge923, !prof !16

348:                                              ; preds = %336
  %349 = load ptr, ptr %344, align 8, !tbaa !17
  %350 = zext i32 %343 to i64
  %351 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %349, i64 %350
  %352 = getelementptr inbounds i8, ptr %351, i64 8
  %353 = load ptr, ptr %352, align 8, !tbaa !18
  %.not905 = icmp eq ptr %353, null
  br i1 %.not905, label %.critedge923, label %354, !prof !20

354:                                              ; preds = %348
  %355 = load ptr, ptr @w2c_hermes_t0, align 8, !tbaa !21
  %356 = load ptr, ptr %351, align 8, !tbaa !22
  %357 = tail call zeroext i1 @func_types_eq(ptr noundef %355, ptr noundef %356)
  br i1 %357, label %358, label %.critedge923, !prof !16

.critedge923:                                     ; preds = %348, %336, %354
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

358:                                              ; preds = %354
  %359 = load ptr, ptr %344, align 8, !tbaa !17
  %360 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %359, i64 %350
  %361 = getelementptr inbounds i8, ptr %360, i64 8
  %362 = load ptr, ptr %361, align 8, !tbaa !18
  %363 = getelementptr inbounds i8, ptr %360, i64 16
  %364 = load ptr, ptr %363, align 8, !tbaa !23
  tail call void %362(ptr noundef %364, i32 noundef %334, i32 noundef %333) #5
  %365 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %338)
  %366 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %165)
  br label %396

367:                                              ; preds = %332
  %368 = zext i32 %331 to i64
  %369 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %368)
  %370 = zext i32 %369 to i64
  %371 = add nuw nsw i64 %370, 8
  %372 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %371)
  %373 = getelementptr inbounds i8, ptr %0, i64 80
  %374 = getelementptr inbounds i8, ptr %0, i64 92
  %375 = load i32, ptr %374, align 4, !tbaa !15
  %376 = icmp ult i32 %372, %375
  br i1 %376, label %377, label %.critedge925, !prof !16

377:                                              ; preds = %367
  %378 = load ptr, ptr %373, align 8, !tbaa !17
  %379 = zext i32 %372 to i64
  %380 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %378, i64 %379
  %381 = getelementptr inbounds i8, ptr %380, i64 8
  %382 = load ptr, ptr %381, align 8, !tbaa !18
  %.not904 = icmp eq ptr %382, null
  br i1 %.not904, label %.critedge925, label %383, !prof !20

383:                                              ; preds = %377
  %384 = load ptr, ptr @w2c_hermes_t2, align 8, !tbaa !21
  %385 = load ptr, ptr %380, align 8, !tbaa !22
  %386 = tail call zeroext i1 @func_types_eq(ptr noundef %384, ptr noundef %385)
  br i1 %386, label %387, label %.critedge925, !prof !16

.critedge925:                                     ; preds = %377, %367, %383
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

387:                                              ; preds = %383
  %388 = load ptr, ptr %373, align 8, !tbaa !17
  %389 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %388, i64 %379
  %390 = getelementptr inbounds i8, ptr %389, i64 8
  %391 = load ptr, ptr %390, align 8, !tbaa !18
  %392 = getelementptr inbounds i8, ptr %389, i64 16
  %393 = load ptr, ptr %392, align 8, !tbaa !23
  %394 = tail call i32 %391(ptr noundef %393, i32 noundef %331) #5
  %395 = add nuw nsw i64 %164, 40
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %395, i32 noundef %394)
  br label %396

396:                                              ; preds = %387, %358
  %.0870 = phi i32 [ %365, %358 ], [ %394, %387 ]
  %.0868 = phi i32 [ %366, %358 ], [ %330, %387 ]
  %397 = icmp eq i32 %333, %.0870
  br i1 %397, label %398, label %400

398:                                              ; preds = %396
  %399 = add nuw nsw i64 %164, 24
  br label %403

400:                                              ; preds = %396
  %.not906 = icmp eq i32 %.0870, 0
  br i1 %.not906, label %429, label %401

401:                                              ; preds = %400
  %402 = zext i32 %.0870 to i64
  br label %403

403:                                              ; preds = %401, %398
  %.sink933 = phi i64 [ %402, %401 ], [ %399, %398 ]
  %.sink932 = phi i32 [ 20, %401 ], [ 16, %398 ]
  %.1 = phi i32 [ %.0870, %401 ], [ %333, %398 ]
  %404 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %.sink933)
  %405 = add i32 %404, %.sink932
  %406 = zext i32 %405 to i64
  %407 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %406)
  %408 = getelementptr inbounds i8, ptr %0, i64 80
  %409 = getelementptr inbounds i8, ptr %0, i64 92
  %410 = load i32, ptr %409, align 4, !tbaa !15
  %411 = icmp ult i32 %407, %410
  br i1 %411, label %412, label %.critedge927, !prof !16

412:                                              ; preds = %403
  %413 = load ptr, ptr %408, align 8, !tbaa !17
  %414 = zext i32 %407 to i64
  %415 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %413, i64 %414
  %416 = getelementptr inbounds i8, ptr %415, i64 8
  %417 = load ptr, ptr %416, align 8, !tbaa !18
  %.not907 = icmp eq ptr %417, null
  br i1 %.not907, label %.critedge927, label %418, !prof !20

418:                                              ; preds = %412
  %419 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !21
  %420 = load ptr, ptr %415, align 8, !tbaa !22
  %421 = tail call zeroext i1 @func_types_eq(ptr noundef %419, ptr noundef %420)
  br i1 %421, label %422, label %.critedge927, !prof !16

.critedge927:                                     ; preds = %412, %403, %418
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

422:                                              ; preds = %418
  %423 = load ptr, ptr %408, align 8, !tbaa !17
  %424 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %423, i64 %414
  %425 = getelementptr inbounds i8, ptr %424, i64 8
  %426 = load ptr, ptr %425, align 8, !tbaa !18
  %427 = getelementptr inbounds i8, ptr %424, i64 16
  %428 = load ptr, ptr %427, align 8, !tbaa !23
  tail call void %426(ptr noundef %428, i32 noundef %.1) #5
  br label %429

429:                                              ; preds = %400, %329, %422
  %.1869 = phi i32 [ %330, %329 ], [ %.0868, %422 ], [ %.0868, %400 ]
  %430 = add nuw nsw i64 %12, 548
  tail call void @i32_store8(ptr noundef nonnull %11, i64 noundef %430, i32 noundef 0)
  %431 = add nuw nsw i64 %12, 544
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %431, i32 noundef %.1869)
  %432 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 16) #5
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %165, i32 noundef %432)
  %433 = add nuw nsw i64 %164, 20
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %433, i64 noundef -9223371968135299060)
  %434 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef 71503)
  %435 = zext i32 %432 to i64
  %436 = add nuw nsw i64 %435, 8
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %436, i32 noundef %434)
  %437 = tail call i64 @i64_load(ptr noundef nonnull %11, i64 noundef 71495)
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %435, i64 noundef %437)
  %438 = add nuw nsw i64 %435, 12
  tail call void @i32_store8(ptr noundef nonnull %11, i64 noundef %438, i32 noundef 0)
  %439 = add i32 %9, -33
  %440 = add i32 %9, -32
  %441 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef nonnull %0, i32 noundef %439, i32 noundef %440) #5
  %442 = add nuw nsw i64 %164, 27
  %443 = tail call i32 @i32_load8_s(ptr noundef nonnull %11, i64 noundef %442)
  %444 = icmp slt i32 %443, 0
  br i1 %444, label %445, label %447

445:                                              ; preds = %429
  %446 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %165)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef nonnull %0, i32 noundef %446) #5
  br label %447

447:                                              ; preds = %445, %429
  %448 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef nonnull %0, i32 noundef %441) #5
  %449 = add nuw nsw i64 %12, 508
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %449, i32 noundef %448)
  %450 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef nonnull %0, i32 noundef %441) #5
  %451 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 16) #5
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %165, i32 noundef %451)
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %433, i64 noundef -9223371968135299060)
  %452 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef 71503)
  %453 = zext i32 %451 to i64
  %454 = add nuw nsw i64 %453, 8
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %454, i32 noundef %452)
  %455 = tail call i64 @i64_load(ptr noundef nonnull %11, i64 noundef 71495)
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %453, i64 noundef %455)
  %456 = add nuw nsw i64 %453, 12
  tail call void @i32_store8(ptr noundef nonnull %11, i64 noundef %456, i32 noundef 0)
  %457 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef nonnull %0, i32 noundef %450, i32 noundef %440) #5
  %458 = tail call i32 @i32_load8_s(ptr noundef nonnull %11, i64 noundef %442)
  %459 = icmp slt i32 %458, 0
  br i1 %459, label %460, label %462

460:                                              ; preds = %447
  %461 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %165)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef nonnull %0, i32 noundef %461) #5
  br label %462

462:                                              ; preds = %460, %447
  %463 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef nonnull %0, i32 noundef %457) #5
  %464 = add nuw nsw i64 %12, 512
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %464, i32 noundef %463)
  %465 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef nonnull %0, i32 noundef %457) #5
  %466 = tail call i32 @w2c_hermes_operator0x20new0x28unsigned0x20long0x29(ptr noundef nonnull %0, i32 noundef 16) #5
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %165, i32 noundef %466)
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %433, i64 noundef -9223371968135299060)
  %467 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef 71503)
  %468 = zext i32 %466 to i64
  %469 = add nuw nsw i64 %468, 8
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %469, i32 noundef %467)
  %470 = tail call i64 @i64_load(ptr noundef nonnull %11, i64 noundef 71495)
  tail call void @i64_store(ptr noundef nonnull %11, i64 noundef %468, i64 noundef %470)
  %471 = add nuw nsw i64 %468, 12
  tail call void @i32_store8(ptr noundef nonnull %11, i64 noundef %471, i32 noundef 0)
  %472 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef nonnull %0, i32 noundef %465, i32 noundef %440) #5
  %473 = tail call i32 @i32_load8_s(ptr noundef nonnull %11, i64 noundef %442)
  %474 = icmp slt i32 %473, 0
  br i1 %474, label %475, label %477

475:                                              ; preds = %462
  %476 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %165)
  tail call void @w2c_hermes_operator0x20delete0x28void0x2A0x29(ptr noundef nonnull %0, i32 noundef %476) #5
  br label %477

477:                                              ; preds = %475, %462
  %478 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef nonnull %0, i32 noundef %472) #5
  %479 = add nuw nsw i64 %12, 516
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %479, i32 noundef %478)
  %480 = tail call i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef nonnull %0, i32 noundef %472) #5
  tail call void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AbuildMetadataTable0x280x29(ptr noundef nonnull %0) #5
  br i1 %.not, label %512, label %481

481:                                              ; preds = %477
  %482 = zext i32 %25 to i64
  %483 = add nuw nsw i64 %482, 4
  %484 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %483)
  %485 = add i32 %484, -1
  tail call void @i32_store(ptr noundef nonnull %11, i64 noundef %483, i32 noundef %485)
  %.not908 = icmp eq i32 %484, 0
  br i1 %.not908, label %486, label %512

486:                                              ; preds = %481
  %487 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %482)
  %488 = zext i32 %487 to i64
  %489 = add nuw nsw i64 %488, 8
  %490 = tail call i32 @i32_load(ptr noundef nonnull %11, i64 noundef %489)
  %491 = getelementptr inbounds i8, ptr %0, i64 80
  %492 = getelementptr inbounds i8, ptr %0, i64 92
  %493 = load i32, ptr %492, align 4, !tbaa !15
  %494 = icmp ult i32 %490, %493
  br i1 %494, label %495, label %.critedge929, !prof !16

495:                                              ; preds = %486
  %496 = load ptr, ptr %491, align 8, !tbaa !17
  %497 = zext i32 %490 to i64
  %498 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %496, i64 %497
  %499 = getelementptr inbounds i8, ptr %498, i64 8
  %500 = load ptr, ptr %499, align 8, !tbaa !18
  %.not909 = icmp eq ptr %500, null
  br i1 %.not909, label %.critedge929, label %501, !prof !20

501:                                              ; preds = %495
  %502 = load ptr, ptr @w2c_hermes_t3, align 8, !tbaa !21
  %503 = load ptr, ptr %498, align 8, !tbaa !22
  %504 = tail call zeroext i1 @func_types_eq(ptr noundef %502, ptr noundef %503)
  br i1 %504, label %505, label %.critedge929, !prof !16

.critedge929:                                     ; preds = %495, %486, %501
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

505:                                              ; preds = %501
  %506 = load ptr, ptr %491, align 8, !tbaa !17
  %507 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %506, i64 %497
  %508 = getelementptr inbounds i8, ptr %507, i64 8
  %509 = load ptr, ptr %508, align 8, !tbaa !18
  %510 = getelementptr inbounds i8, ptr %507, i64 16
  %511 = load ptr, ptr %510, align 8, !tbaa !23
  tail call void %509(ptr noundef %511, i32 noundef %25) #5
  tail call void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3A_0x5Fshared_weak_count0x3A0x3A_0x5Frelease_weak0x280x29(ptr noundef nonnull %0, i32 noundef %25) #5
  br label %512

512:                                              ; preds = %481, %477, %505
  store i32 %9, ptr %8, align 8, !tbaa !5
  ret i32 %1
}

declare void @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x3A0x3A_0x5Finit_copy_ctor_external0x28char0x20const0x2A0x2C0x20unsigned0x20long0x29(ptr noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Arandom_device0x28std0x3A0x3A_0x5F20x3A0x3Abasic_string0x3Cchar0x2C0x20std0x3A0x3A_0x5F20x3A0x3Achar_traits0x3Cchar0x3E0x2C0x20std0x3A0x3A_0x5F20x3A0x3Aallocator0x3Cchar0x3E0x3E0x20const0x260x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #0

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3Aoperator0x280x290x280x29(ptr noundef, i32 noundef) local_unnamed_addr #0

declare i32 @w2c_hermes_std0x3A0x3A_0x5F20x3A0x3Arandom_device0x3A0x3A0x7Erandom_device0x280x29(ptr noundef, i32 noundef) local_unnamed_addr #0

declare void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AbuildMetadataTable0x280x29(ptr noundef) local_unnamed_addr #0

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

attributes #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 = { 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 #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 = { noreturn nounwind }
attributes #5 = { 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,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,LowerExpectIntrinsicPass,PostOrderFunctionAttrsPass,SROAPass,SimplifyCFGPass,TailCallElimPass