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

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

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

@w2c_hermes_t5 = external constant ptr, align 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

67:                                               ; preds = %3
  %68 = load ptr, ptr %4, align 8, !tbaa !5
  %69 = getelementptr inbounds %struct.w2c_hermes, ptr %68, i32 0, i32 7
  %70 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %69, i32 0, i32 0
  %71 = load ptr, ptr %70, align 8, !tbaa !18
  %72 = load i32, ptr %26, align 4, !tbaa !9
  %73 = zext i32 %72 to i64
  %74 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %71, i64 %73
  %75 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %74, i32 0, i32 1
  %76 = load ptr, ptr %75, align 8, !tbaa !19
  %77 = icmp ne ptr %76, null
  br i1 %77, label %78, label %90

78:                                               ; preds = %67
  %79 = load ptr, ptr @w2c_hermes_t5, align 8, !tbaa !5
  %80 = load ptr, ptr %4, align 8, !tbaa !5
  %81 = getelementptr inbounds %struct.w2c_hermes, ptr %80, i32 0, i32 7
  %82 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %81, i32 0, i32 0
  %83 = load ptr, ptr %82, align 8, !tbaa !18
  %84 = load i32, ptr %26, align 4, !tbaa !9
  %85 = zext i32 %84 to i64
  %86 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %83, i64 %85
  %87 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %86, i32 0, i32 0
  %88 = load ptr, ptr %87, align 8, !tbaa !21
  %89 = call zeroext i1 @func_types_eq(ptr noundef %79, ptr noundef %88)
  br label %90

90:                                               ; preds = %78, %67, %3
  %91 = phi i1 [ false, %67 ], [ false, %3 ], [ %89, %78 ]
  %92 = xor i1 %91, true
  %93 = xor i1 %92, true
  %94 = zext i1 %93 to i32
  %95 = sext i32 %94 to i64
  %96 = call i64 @llvm.expect.i64(i64 %95, i64 1)
  %97 = icmp ne i64 %96, 0
  br i1 %97, label %100, label %98

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

99:                                               ; No predecessors!
  br label %100

100:                                              ; preds = %99, %90
  %101 = phi i1 [ true, %90 ], [ false, %99 ]
  %102 = zext i1 %101 to i32
  %103 = load ptr, ptr %4, align 8, !tbaa !5
  %104 = getelementptr inbounds %struct.w2c_hermes, ptr %103, i32 0, i32 7
  %105 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %104, i32 0, i32 0
  %106 = load ptr, ptr %105, align 8, !tbaa !18
  %107 = load i32, ptr %26, align 4, !tbaa !9
  %108 = zext i32 %107 to i64
  %109 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %106, i64 %108
  %110 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %109, i32 0, i32 1
  %111 = load ptr, ptr %110, align 8, !tbaa !19
  %112 = load ptr, ptr %4, align 8, !tbaa !5
  %113 = getelementptr inbounds %struct.w2c_hermes, ptr %112, i32 0, i32 7
  %114 = getelementptr inbounds %struct.wasm_rt_funcref_table_t, ptr %113, i32 0, i32 0
  %115 = load ptr, ptr %114, align 8, !tbaa !18
  %116 = load i32, ptr %26, align 4, !tbaa !9
  %117 = zext i32 %116 to i64
  %118 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %115, i64 %117
  %119 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %118, i32 0, i32 2
  %120 = load ptr, ptr %119, align 8, !tbaa !22
  %121 = load i32, ptr %25, align 4, !tbaa !9
  %122 = call i32 %111(ptr noundef %120, i32 noundef %121)
  store i32 %122, ptr %25, align 4, !tbaa !9
  %123 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %123, ptr %21, align 4, !tbaa !9
  store i32 256, ptr %26, align 4, !tbaa !9
  %124 = load i32, ptr %25, align 4, !tbaa !9
  %125 = load i32, ptr %26, align 4, !tbaa !9
  %126 = icmp ult i32 %124, %125
  %127 = zext i1 %126 to i32
  store i32 %127, ptr %25, align 4, !tbaa !9
  %128 = load i32, ptr %25, align 4, !tbaa !9
  %129 = icmp ne i32 %128, 0
  br i1 %129, label %130, label %131

130:                                              ; preds = %100
  br label %1950

131:                                              ; preds = %100
  %132 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %132, ptr %25, align 4, !tbaa !9
  %133 = load ptr, ptr %4, align 8, !tbaa !5
  %134 = getelementptr inbounds %struct.w2c_hermes, ptr %133, i32 0, i32 6
  %135 = load i32, ptr %25, align 4, !tbaa !9
  %136 = zext i32 %135 to i64
  %137 = add i64 %136, 16
  %138 = call i32 @i32_load(ptr noundef %134, i64 noundef %137)
  store i32 %138, ptr %25, align 4, !tbaa !9
  store i32 6, ptr %26, align 4, !tbaa !9
  %139 = load ptr, ptr %4, align 8, !tbaa !5
  %140 = getelementptr inbounds %struct.w2c_hermes, ptr %139, i32 0, i32 6
  %141 = load i32, ptr %25, align 4, !tbaa !9
  %142 = zext i32 %141 to i64
  %143 = add i64 %142, 1136
  %144 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %140, i64 noundef %143, i32 noundef %144)
  %145 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %145, ptr %25, align 4, !tbaa !9
  store i32 48, ptr %26, align 4, !tbaa !9
  %146 = load i32, ptr %26, align 4, !tbaa !9
  %147 = load i32, ptr %25, align 4, !tbaa !9
  %148 = add i32 %147, %146
  store i32 %148, ptr %25, align 4, !tbaa !9
  %149 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %149, ptr %17, align 4, !tbaa !9
  %150 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %150, ptr %13, align 4, !tbaa !9
  %151 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %151, ptr %25, align 4, !tbaa !9
  %152 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %152, ptr %26, align 4, !tbaa !9
  %153 = load ptr, ptr %4, align 8, !tbaa !5
  %154 = getelementptr inbounds %struct.w2c_hermes, ptr %153, i32 0, i32 6
  %155 = load i32, ptr %26, align 4, !tbaa !9
  %156 = zext i32 %155 to i64
  %157 = add i64 %156, 52
  %158 = call i32 @i32_load(ptr noundef %154, i64 noundef %157)
  store i32 %158, ptr %26, align 4, !tbaa !9
  %159 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %159, ptr %9, align 4, !tbaa !9
  %160 = load i32, ptr %25, align 4, !tbaa !9
  %161 = load i32, ptr %26, align 4, !tbaa !9
  %162 = icmp ne i32 %160, %161
  %163 = zext i1 %162 to i32
  store i32 %163, ptr %25, align 4, !tbaa !9
  %164 = load i32, ptr %25, align 4, !tbaa !9
  %165 = icmp ne i32 %164, 0
  br i1 %165, label %166, label %281

166:                                              ; preds = %131
  br label %167

167:                                              ; preds = %271, %166
  %168 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %168, ptr %25, align 4, !tbaa !9
  %169 = load ptr, ptr %4, align 8, !tbaa !5
  %170 = getelementptr inbounds %struct.w2c_hermes, ptr %169, i32 0, i32 6
  %171 = load i32, ptr %25, align 4, !tbaa !9
  %172 = zext i32 %171 to i64
  %173 = add i64 %172, 40
  %174 = call i32 @i32_load(ptr noundef %170, i64 noundef %173)
  store i32 %174, ptr %25, align 4, !tbaa !9
  %175 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %175, ptr %8, align 4, !tbaa !9
  %176 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %176, ptr %26, align 4, !tbaa !9
  store i32 36, ptr %27, align 4, !tbaa !9
  %177 = load i32, ptr %27, align 4, !tbaa !9
  %178 = load i32, ptr %26, align 4, !tbaa !9
  %179 = add i32 %178, %177
  store i32 %179, ptr %26, align 4, !tbaa !9
  %180 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %180, ptr %10, align 4, !tbaa !9
  %181 = load i32, ptr %25, align 4, !tbaa !9
  %182 = load i32, ptr %26, align 4, !tbaa !9
  %183 = icmp ne i32 %181, %182
  %184 = zext i1 %183 to i32
  store i32 %184, ptr %25, align 4, !tbaa !9
  %185 = load i32, ptr %25, align 4, !tbaa !9
  %186 = icmp ne i32 %185, 0
  br i1 %186, label %187, label %255

187:                                              ; preds = %167
  br label %188

188:                                              ; preds = %253, %187
  %189 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %189, ptr %25, align 4, !tbaa !9
  %190 = load ptr, ptr %4, align 8, !tbaa !5
  %191 = getelementptr inbounds %struct.w2c_hermes, ptr %190, i32 0, i32 6
  %192 = load i32, ptr %25, align 4, !tbaa !9
  %193 = zext i32 %192 to i64
  %194 = add i64 %193, 16
  %195 = call i32 @i32_load(ptr noundef %191, i64 noundef %194)
  store i32 %195, ptr %25, align 4, !tbaa !9
  %196 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %196, ptr %26, align 4, !tbaa !9
  store i32 8, ptr %27, align 4, !tbaa !9
  %197 = load i32, ptr %27, align 4, !tbaa !9
  %198 = load i32, ptr %26, align 4, !tbaa !9
  %199 = add i32 %198, %197
  store i32 %199, ptr %26, align 4, !tbaa !9
  %200 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %200, ptr %11, align 4, !tbaa !9
  %201 = load ptr, ptr %4, align 8, !tbaa !5
  %202 = load i32, ptr %25, align 4, !tbaa !9
  %203 = load i32, ptr %26, align 4, !tbaa !9
  %204 = call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %201, i32 noundef %202, i32 noundef %203)
  store i32 %204, ptr %25, align 4, !tbaa !9
  %205 = load i32, ptr %25, align 4, !tbaa !9
  %206 = icmp ne i32 %205, 0
  br i1 %206, label %207, label %237

207:                                              ; preds = %188
  %208 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %208, ptr %25, align 4, !tbaa !9
  %209 = load ptr, ptr %4, align 8, !tbaa !5
  %210 = getelementptr inbounds %struct.w2c_hermes, ptr %209, i32 0, i32 6
  %211 = load i32, ptr %25, align 4, !tbaa !9
  %212 = zext i32 %211 to i64
  %213 = add i64 %212, 16
  %214 = call i32 @i32_load(ptr noundef %210, i64 noundef %213)
  store i32 %214, ptr %25, align 4, !tbaa !9
  %215 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %215, ptr %26, align 4, !tbaa !9
  %216 = load ptr, ptr %4, align 8, !tbaa !5
  %217 = load i32, ptr %25, align 4, !tbaa !9
  %218 = load i32, ptr %26, align 4, !tbaa !9
  %219 = call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %216, i32 noundef %217, i32 noundef %218)
  store i32 %219, ptr %25, align 4, !tbaa !9
  %220 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %220, ptr %13, align 4, !tbaa !9
  %221 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %221, ptr %25, align 4, !tbaa !9
  %222 = load ptr, ptr %4, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.w2c_hermes, ptr %222, i32 0, i32 6
  %224 = load i32, ptr %25, align 4, !tbaa !9
  %225 = zext i32 %224 to i64
  %226 = add i64 %225, 16
  %227 = call i32 @i32_load(ptr noundef %223, i64 noundef %226)
  store i32 %227, ptr %25, align 4, !tbaa !9
  %228 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %228, ptr %26, align 4, !tbaa !9
  %229 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %229, ptr %27, align 4, !tbaa !9
  store i32 6, ptr %28, align 4, !tbaa !9
  %230 = load i32, ptr %28, align 4, !tbaa !9
  %231 = load i32, ptr %27, align 4, !tbaa !9
  %232 = add i32 %231, %230
  store i32 %232, ptr %27, align 4, !tbaa !9
  %233 = load ptr, ptr %4, align 8, !tbaa !5
  %234 = load i32, ptr %25, align 4, !tbaa !9
  %235 = load i32, ptr %26, align 4, !tbaa !9
  %236 = load i32, ptr %27, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %233, i32 noundef %234, i32 noundef %235, i32 noundef %236)
  br label %237

237:                                              ; preds = %207, %188
  %238 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %238, ptr %25, align 4, !tbaa !9
  %239 = load ptr, ptr %4, align 8, !tbaa !5
  %240 = getelementptr inbounds %struct.w2c_hermes, ptr %239, i32 0, i32 6
  %241 = load i32, ptr %25, align 4, !tbaa !9
  %242 = zext i32 %241 to i64
  %243 = add i64 %242, 4
  %244 = call i32 @i32_load(ptr noundef %240, i64 noundef %243)
  store i32 %244, ptr %25, align 4, !tbaa !9
  %245 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %245, ptr %8, align 4, !tbaa !9
  %246 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %246, ptr %26, align 4, !tbaa !9
  %247 = load i32, ptr %25, align 4, !tbaa !9
  %248 = load i32, ptr %26, align 4, !tbaa !9
  %249 = icmp ne i32 %247, %248
  %250 = zext i1 %249 to i32
  store i32 %250, ptr %25, align 4, !tbaa !9
  %251 = load i32, ptr %25, align 4, !tbaa !9
  %252 = icmp ne i32 %251, 0
  br i1 %252, label %253, label %254

253:                                              ; preds = %237
  br label %188

254:                                              ; preds = %237
  br label %255

255:                                              ; preds = %254, %167
  %256 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %256, ptr %25, align 4, !tbaa !9
  %257 = load ptr, ptr %4, align 8, !tbaa !5
  %258 = getelementptr inbounds %struct.w2c_hermes, ptr %257, i32 0, i32 6
  %259 = load i32, ptr %25, align 4, !tbaa !9
  %260 = zext i32 %259 to i64
  %261 = add i64 %260, 4
  %262 = call i32 @i32_load(ptr noundef %258, i64 noundef %261)
  store i32 %262, ptr %25, align 4, !tbaa !9
  %263 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %263, ptr %9, align 4, !tbaa !9
  %264 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %264, ptr %26, align 4, !tbaa !9
  %265 = load i32, ptr %25, align 4, !tbaa !9
  %266 = load i32, ptr %26, align 4, !tbaa !9
  %267 = icmp ne i32 %265, %266
  %268 = zext i1 %267 to i32
  store i32 %268, ptr %25, align 4, !tbaa !9
  %269 = load i32, ptr %25, align 4, !tbaa !9
  %270 = icmp ne i32 %269, 0
  br i1 %270, label %271, label %272

271:                                              ; preds = %255
  br label %167

272:                                              ; preds = %255
  %273 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %273, ptr %25, align 4, !tbaa !9
  %274 = load ptr, ptr %4, align 8, !tbaa !5
  %275 = getelementptr inbounds %struct.w2c_hermes, ptr %274, i32 0, i32 6
  %276 = load i32, ptr %25, align 4, !tbaa !9
  %277 = zext i32 %276 to i64
  %278 = add i64 %277, 52
  %279 = call i32 @i32_load(ptr noundef %275, i64 noundef %278)
  store i32 %279, ptr %25, align 4, !tbaa !9
  %280 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %280, ptr %13, align 4, !tbaa !9
  br label %281

281:                                              ; preds = %272, %131
  %282 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %282, ptr %25, align 4, !tbaa !9
  %283 = load ptr, ptr %4, align 8, !tbaa !5
  %284 = getelementptr inbounds %struct.w2c_hermes, ptr %283, i32 0, i32 6
  %285 = load i32, ptr %25, align 4, !tbaa !9
  %286 = zext i32 %285 to i64
  %287 = add i64 %286, 36
  %288 = call i32 @i32_load(ptr noundef %284, i64 noundef %287)
  store i32 %288, ptr %25, align 4, !tbaa !9
  %289 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %289, ptr %6, align 4, !tbaa !9
  %290 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %290, ptr %25, align 4, !tbaa !9
  store i64 0, ptr %30, align 8, !tbaa !23
  %291 = load ptr, ptr %4, align 8, !tbaa !5
  %292 = getelementptr inbounds %struct.w2c_hermes, ptr %291, i32 0, i32 6
  %293 = load i32, ptr %25, align 4, !tbaa !9
  %294 = zext i32 %293 to i64
  %295 = add i64 %294, 80
  %296 = load i64, ptr %30, align 8, !tbaa !23
  call void @i64_store(ptr noundef %292, i64 noundef %295, i64 noundef %296)
  %297 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %297, ptr %25, align 4, !tbaa !9
  store i64 0, ptr %30, align 8, !tbaa !23
  %298 = load ptr, ptr %4, align 8, !tbaa !5
  %299 = getelementptr inbounds %struct.w2c_hermes, ptr %298, i32 0, i32 6
  %300 = load i32, ptr %25, align 4, !tbaa !9
  %301 = zext i32 %300 to i64
  %302 = add i64 %301, 72
  %303 = load i64, ptr %30, align 8, !tbaa !23
  call void @i64_store(ptr noundef %299, i64 noundef %302, i64 noundef %303)
  %304 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %304, ptr %25, align 4, !tbaa !9
  %305 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %305, ptr %26, align 4, !tbaa !9
  %306 = load ptr, ptr %4, align 8, !tbaa !5
  %307 = getelementptr inbounds %struct.w2c_hermes, ptr %306, i32 0, i32 6
  %308 = load i32, ptr %25, align 4, !tbaa !9
  %309 = zext i32 %308 to i64
  %310 = add i64 %309, 68
  %311 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %307, i64 noundef %310, i32 noundef %311)
  %312 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %312, ptr %25, align 4, !tbaa !9
  store i64 8589934592, ptr %30, align 8, !tbaa !23
  %313 = load ptr, ptr %4, align 8, !tbaa !5
  %314 = getelementptr inbounds %struct.w2c_hermes, ptr %313, i32 0, i32 6
  %315 = load i32, ptr %25, align 4, !tbaa !9
  %316 = zext i32 %315 to i64
  %317 = add i64 %316, 44
  %318 = load i64, ptr %30, align 8, !tbaa !23
  call void @i64_store(ptr noundef %314, i64 noundef %317, i64 noundef %318)
  %319 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %319, ptr %25, align 4, !tbaa !9
  %320 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %320, ptr %26, align 4, !tbaa !9
  store i32 52, ptr %27, align 4, !tbaa !9
  %321 = load i32, ptr %27, align 4, !tbaa !9
  %322 = load i32, ptr %26, align 4, !tbaa !9
  %323 = add i32 %322, %321
  store i32 %323, ptr %26, align 4, !tbaa !9
  %324 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %324, ptr %18, align 4, !tbaa !9
  %325 = load ptr, ptr %4, align 8, !tbaa !5
  %326 = getelementptr inbounds %struct.w2c_hermes, ptr %325, i32 0, i32 6
  %327 = load i32, ptr %25, align 4, !tbaa !9
  %328 = zext i32 %327 to i64
  %329 = add i64 %328, 40
  %330 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %326, i64 noundef %329, i32 noundef %330)
  %331 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %331, ptr %25, align 4, !tbaa !9
  %332 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %332, ptr %26, align 4, !tbaa !9
  %333 = load i32, ptr %25, align 4, !tbaa !9
  %334 = load i32, ptr %26, align 4, !tbaa !9
  %335 = icmp eq i32 %333, %334
  %336 = zext i1 %335 to i32
  store i32 %336, ptr %25, align 4, !tbaa !9
  %337 = load i32, ptr %25, align 4, !tbaa !9
  %338 = icmp ne i32 %337, 0
  br i1 %338, label %339, label %340

339:                                              ; preds = %281
  br label %1950

340:                                              ; preds = %281
  %341 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %341, ptr %25, align 4, !tbaa !9
  store i32 24, ptr %26, align 4, !tbaa !9
  %342 = load i32, ptr %26, align 4, !tbaa !9
  %343 = load i32, ptr %25, align 4, !tbaa !9
  %344 = add i32 %343, %342
  store i32 %344, ptr %25, align 4, !tbaa !9
  %345 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %345, ptr %19, align 4, !tbaa !9
  br label %346

346:                                              ; preds = %1928, %340
  %347 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %347, ptr %25, align 4, !tbaa !9
  %348 = load ptr, ptr %4, align 8, !tbaa !5
  %349 = getelementptr inbounds %struct.w2c_hermes, ptr %348, i32 0, i32 6
  %350 = load i32, ptr %25, align 4, !tbaa !9
  %351 = zext i32 %350 to i64
  %352 = add i64 %351, 40
  %353 = call i32 @i32_load(ptr noundef %349, i64 noundef %352)
  store i32 %353, ptr %25, align 4, !tbaa !9
  %354 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %354, ptr %11, align 4, !tbaa !9
  %355 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %355, ptr %26, align 4, !tbaa !9
  store i32 36, ptr %27, align 4, !tbaa !9
  %356 = load i32, ptr %27, align 4, !tbaa !9
  %357 = load i32, ptr %26, align 4, !tbaa !9
  %358 = add i32 %357, %356
  store i32 %358, ptr %26, align 4, !tbaa !9
  %359 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %359, ptr %22, align 4, !tbaa !9
  %360 = load i32, ptr %25, align 4, !tbaa !9
  %361 = load i32, ptr %26, align 4, !tbaa !9
  %362 = icmp ne i32 %360, %361
  %363 = zext i1 %362 to i32
  store i32 %363, ptr %25, align 4, !tbaa !9
  %364 = load i32, ptr %25, align 4, !tbaa !9
  %365 = icmp ne i32 %364, 0
  br i1 %365, label %366, label %1912

366:                                              ; preds = %346
  br label %367

367:                                              ; preds = %1910, %366
  %368 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %368, ptr %25, align 4, !tbaa !9
  %369 = load ptr, ptr %4, align 8, !tbaa !5
  %370 = getelementptr inbounds %struct.w2c_hermes, ptr %369, i32 0, i32 6
  %371 = load i32, ptr %25, align 4, !tbaa !9
  %372 = zext i32 %371 to i64
  %373 = add i64 %372, 16
  %374 = call i32 @i32_load(ptr noundef %370, i64 noundef %373)
  store i32 %374, ptr %25, align 4, !tbaa !9
  %375 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %375, ptr %26, align 4, !tbaa !9
  store i32 8, ptr %27, align 4, !tbaa !9
  %376 = load i32, ptr %27, align 4, !tbaa !9
  %377 = load i32, ptr %26, align 4, !tbaa !9
  %378 = add i32 %377, %376
  store i32 %378, ptr %26, align 4, !tbaa !9
  %379 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %379, ptr %16, align 4, !tbaa !9
  %380 = load ptr, ptr %4, align 8, !tbaa !5
  %381 = load i32, ptr %25, align 4, !tbaa !9
  %382 = load i32, ptr %26, align 4, !tbaa !9
  %383 = call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %380, i32 noundef %381, i32 noundef %382)
  store i32 %383, ptr %25, align 4, !tbaa !9
  %384 = load i32, ptr %25, align 4, !tbaa !9
  %385 = icmp ne i32 %384, 0
  %386 = xor i1 %385, true
  %387 = zext i1 %386 to i32
  store i32 %387, ptr %25, align 4, !tbaa !9
  %388 = load i32, ptr %25, align 4, !tbaa !9
  %389 = icmp ne i32 %388, 0
  br i1 %389, label %390, label %391

390:                                              ; preds = %367
  br label %1894

391:                                              ; preds = %367
  store i32 0, ptr %25, align 4, !tbaa !9
  %392 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %392, ptr %8, align 4, !tbaa !9
  %393 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %393, ptr %25, align 4, !tbaa !9
  store i32 0, ptr %26, align 4, !tbaa !9
  %394 = load ptr, ptr %4, align 8, !tbaa !5
  %395 = getelementptr inbounds %struct.w2c_hermes, ptr %394, i32 0, i32 6
  %396 = load i32, ptr %25, align 4, !tbaa !9
  %397 = zext i32 %396 to i64
  %398 = add i64 %397, 44
  %399 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %395, i64 noundef %398, i32 noundef %399)
  %400 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %400, ptr %25, align 4, !tbaa !9
  %401 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %401, ptr %26, align 4, !tbaa !9
  %402 = load ptr, ptr %4, align 8, !tbaa !5
  %403 = getelementptr inbounds %struct.w2c_hermes, ptr %402, i32 0, i32 6
  %404 = load i32, ptr %26, align 4, !tbaa !9
  %405 = zext i32 %404 to i64
  %406 = add i64 %405, 72
  %407 = call i32 @i32_load(ptr noundef %403, i64 noundef %406)
  store i32 %407, ptr %26, align 4, !tbaa !9
  %408 = load ptr, ptr %4, align 8, !tbaa !5
  %409 = getelementptr inbounds %struct.w2c_hermes, ptr %408, i32 0, i32 6
  %410 = load i32, ptr %25, align 4, !tbaa !9
  %411 = zext i32 %410 to i64
  %412 = add i64 %411, 80
  %413 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %409, i64 noundef %412, i32 noundef %413)
  %414 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %414, ptr %25, align 4, !tbaa !9
  %415 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %415, ptr %26, align 4, !tbaa !9
  %416 = load ptr, ptr %4, align 8, !tbaa !5
  %417 = getelementptr inbounds %struct.w2c_hermes, ptr %416, i32 0, i32 6
  %418 = load i32, ptr %26, align 4, !tbaa !9
  %419 = zext i32 %418 to i64
  %420 = add i64 %419, 68
  %421 = call i32 @i32_load(ptr noundef %417, i64 noundef %420)
  store i32 %421, ptr %26, align 4, !tbaa !9
  %422 = load ptr, ptr %4, align 8, !tbaa !5
  %423 = getelementptr inbounds %struct.w2c_hermes, ptr %422, i32 0, i32 6
  %424 = load i32, ptr %25, align 4, !tbaa !9
  %425 = zext i32 %424 to i64
  %426 = add i64 %425, 84
  %427 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %423, i64 noundef %426, i32 noundef %427)
  %428 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %428, ptr %25, align 4, !tbaa !9
  %429 = load ptr, ptr %4, align 8, !tbaa !5
  %430 = getelementptr inbounds %struct.w2c_hermes, ptr %429, i32 0, i32 6
  %431 = load i32, ptr %25, align 4, !tbaa !9
  %432 = zext i32 %431 to i64
  %433 = add i64 %432, 16
  %434 = call i32 @i32_load(ptr noundef %430, i64 noundef %433)
  store i32 %434, ptr %25, align 4, !tbaa !9
  %435 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %435, ptr %26, align 4, !tbaa !9
  %436 = load ptr, ptr %4, align 8, !tbaa !5
  %437 = load i32, ptr %25, align 4, !tbaa !9
  %438 = load i32, ptr %26, align 4, !tbaa !9
  %439 = call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %436, i32 noundef %437, i32 noundef %438)
  store i32 %439, ptr %25, align 4, !tbaa !9
  %440 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %440, ptr %10, align 4, !tbaa !9
  store i32 0, ptr %25, align 4, !tbaa !9
  %441 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %441, ptr %6, align 4, !tbaa !9
  store i32 0, ptr %25, align 4, !tbaa !9
  %442 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %442, ptr %9, align 4, !tbaa !9
  %443 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %443, ptr %25, align 4, !tbaa !9
  %444 = load ptr, ptr %4, align 8, !tbaa !5
  %445 = getelementptr inbounds %struct.w2c_hermes, ptr %444, i32 0, i32 6
  %446 = load i32, ptr %25, align 4, !tbaa !9
  %447 = zext i32 %446 to i64
  %448 = add i64 %447, 8
  %449 = call i32 @i32_load8_u(ptr noundef %445, i64 noundef %448)
  store i32 %449, ptr %25, align 4, !tbaa !9
  %450 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %450, ptr %12, align 4, !tbaa !9
  store i32 75, ptr %26, align 4, !tbaa !9
  %451 = load i32, ptr %26, align 4, !tbaa !9
  %452 = load i32, ptr %25, align 4, !tbaa !9
  %453 = sub i32 %452, %451
  store i32 %453, ptr %25, align 4, !tbaa !9
  store i32 255, ptr %26, align 4, !tbaa !9
  %454 = load i32, ptr %26, align 4, !tbaa !9
  %455 = load i32, ptr %25, align 4, !tbaa !9
  %456 = and i32 %455, %454
  store i32 %456, ptr %25, align 4, !tbaa !9
  store i32 15, ptr %26, align 4, !tbaa !9
  %457 = load i32, ptr %25, align 4, !tbaa !9
  %458 = load i32, ptr %26, align 4, !tbaa !9
  %459 = icmp ult i32 %457, %458
  %460 = zext i1 %459 to i32
  store i32 %460, ptr %25, align 4, !tbaa !9
  %461 = load i32, ptr %25, align 4, !tbaa !9
  %462 = icmp ne i32 %461, 0
  br i1 %462, label %463, label %464

463:                                              ; preds = %391
  br label %637

464:                                              ; preds = %391
  %465 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %465, ptr %25, align 4, !tbaa !9
  %466 = load ptr, ptr %4, align 8, !tbaa !5
  %467 = getelementptr inbounds %struct.w2c_hermes, ptr %466, i32 0, i32 6
  %468 = load i32, ptr %25, align 4, !tbaa !9
  %469 = zext i32 %468 to i64
  %470 = add i64 %469, 10
  %471 = call i32 @i32_load16_u(ptr noundef %467, i64 noundef %470)
  store i32 %471, ptr %25, align 4, !tbaa !9
  %472 = load i32, ptr %25, align 4, !tbaa !9
  %473 = icmp ne i32 %472, 0
  %474 = xor i1 %473, true
  %475 = zext i1 %474 to i32
  store i32 %475, ptr %25, align 4, !tbaa !9
  %476 = load i32, ptr %25, align 4, !tbaa !9
  %477 = icmp ne i32 %476, 0
  br i1 %477, label %478, label %479

478:                                              ; preds = %464
  br label %637

479:                                              ; preds = %464
  %480 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %480, ptr %25, align 4, !tbaa !9
  store i32 22, ptr %26, align 4, !tbaa !9
  %481 = load i32, ptr %26, align 4, !tbaa !9
  %482 = load i32, ptr %25, align 4, !tbaa !9
  %483 = sub i32 %482, %481
  store i32 %483, ptr %25, align 4, !tbaa !9
  %484 = load i32, ptr %25, align 4, !tbaa !9
  switch i32 %484, label %524 [
    i32 0, label %485
    i32 1, label %486
    i32 2, label %487
    i32 3, label %488
    i32 4, label %489
    i32 5, label %490
    i32 6, label %491
    i32 7, label %492
    i32 8, label %493
    i32 9, label %494
    i32 10, label %495
    i32 11, label %496
    i32 12, label %497
    i32 13, label %498
    i32 14, label %499
    i32 15, label %500
    i32 16, label %501
    i32 17, label %502
    i32 18, label %503
    i32 19, label %504
    i32 20, label %505
    i32 21, label %506
    i32 22, label %507
    i32 23, label %508
    i32 24, label %509
    i32 25, label %510
    i32 26, label %511
    i32 27, label %512
    i32 28, label %513
    i32 29, label %514
    i32 30, label %515
    i32 31, label %516
    i32 32, label %517
    i32 33, label %518
    i32 34, label %519
    i32 35, label %520
    i32 36, label %521
    i32 37, label %522
    i32 38, label %523
  ]

485:                                              ; preds = %479
  br label %637

486:                                              ; preds = %479
  br label %637

487:                                              ; preds = %479
  br label %525

488:                                              ; preds = %479
  br label %525

489:                                              ; preds = %479
  br label %525

490:                                              ; preds = %479
  br label %525

491:                                              ; preds = %479
  br label %525

492:                                              ; preds = %479
  br label %525

493:                                              ; preds = %479
  br label %525

494:                                              ; preds = %479
  br label %637

495:                                              ; preds = %479
  br label %525

496:                                              ; preds = %479
  br label %637

497:                                              ; preds = %479
  br label %525

498:                                              ; preds = %479
  br label %525

499:                                              ; preds = %479
  br label %525

500:                                              ; preds = %479
  br label %525

501:                                              ; preds = %479
  br label %525

502:                                              ; preds = %479
  br label %525

503:                                              ; preds = %479
  br label %525

504:                                              ; preds = %479
  br label %525

505:                                              ; preds = %479
  br label %525

506:                                              ; preds = %479
  br label %525

507:                                              ; preds = %479
  br label %525

508:                                              ; preds = %479
  br label %525

509:                                              ; preds = %479
  br label %525

510:                                              ; preds = %479
  br label %525

511:                                              ; preds = %479
  br label %525

512:                                              ; preds = %479
  br label %525

513:                                              ; preds = %479
  br label %525

514:                                              ; preds = %479
  br label %525

515:                                              ; preds = %479
  br label %637

516:                                              ; preds = %479
  br label %525

517:                                              ; preds = %479
  br label %525

518:                                              ; preds = %479
  br label %525

519:                                              ; preds = %479
  br label %525

520:                                              ; preds = %479
  br label %525

521:                                              ; preds = %479
  br label %525

522:                                              ; preds = %479
  br label %525

523:                                              ; preds = %479
  br label %637

524:                                              ; preds = %479
  br label %525

525:                                              ; preds = %524, %522, %521, %520, %519, %518, %517, %516, %514, %513, %512, %511, %510, %509, %508, %507, %506, %505, %504, %503, %502, %501, %500, %499, %498, %497, %495, %493, %492, %491, %490, %489, %488, %487
  %526 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %526, ptr %25, align 4, !tbaa !9
  store i32 256, ptr %26, align 4, !tbaa !9
  %527 = load i32, ptr %25, align 4, !tbaa !9
  %528 = load i32, ptr %26, align 4, !tbaa !9
  %529 = icmp ult i32 %527, %528
  %530 = zext i1 %529 to i32
  store i32 %530, ptr %25, align 4, !tbaa !9
  %531 = load i32, ptr %25, align 4, !tbaa !9
  %532 = icmp ne i32 %531, 0
  br i1 %532, label %533, label %534

533:                                              ; preds = %525
  br label %637

534:                                              ; preds = %525
  %535 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %535, ptr %25, align 4, !tbaa !9
  %536 = load ptr, ptr %4, align 8, !tbaa !5
  %537 = getelementptr inbounds %struct.w2c_hermes, ptr %536, i32 0, i32 6
  %538 = load i32, ptr %25, align 4, !tbaa !9
  %539 = zext i32 %538 to i64
  %540 = add i64 %539, 16
  %541 = call i32 @i32_load(ptr noundef %537, i64 noundef %540)
  store i32 %541, ptr %25, align 4, !tbaa !9
  %542 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %542, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %27, align 4, !tbaa !9
  %543 = load ptr, ptr %4, align 8, !tbaa !5
  %544 = load i32, ptr %25, align 4, !tbaa !9
  %545 = load i32, ptr %26, align 4, !tbaa !9
  %546 = load i32, ptr %27, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %543, i32 noundef %544, i32 noundef %545, i32 noundef %546)
  %547 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %547, ptr %25, align 4, !tbaa !9
  %548 = load ptr, ptr %4, align 8, !tbaa !5
  %549 = getelementptr inbounds %struct.w2c_hermes, ptr %548, i32 0, i32 6
  %550 = load i32, ptr %25, align 4, !tbaa !9
  %551 = zext i32 %550 to i64
  %552 = add i64 %551, 44
  %553 = call i32 @i32_load(ptr noundef %549, i64 noundef %552)
  store i32 %553, ptr %25, align 4, !tbaa !9
  %554 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %554, ptr %9, align 4, !tbaa !9
  %555 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %555, ptr %26, align 4, !tbaa !9
  %556 = load ptr, ptr %4, align 8, !tbaa !5
  %557 = getelementptr inbounds %struct.w2c_hermes, ptr %556, i32 0, i32 6
  %558 = load i32, ptr %26, align 4, !tbaa !9
  %559 = zext i32 %558 to i64
  %560 = add i64 %559, 48
  %561 = call i32 @i32_load(ptr noundef %557, i64 noundef %560)
  store i32 %561, ptr %26, align 4, !tbaa !9
  %562 = load i32, ptr %25, align 4, !tbaa !9
  %563 = load i32, ptr %26, align 4, !tbaa !9
  %564 = icmp uge i32 %562, %563
  %565 = zext i1 %564 to i32
  store i32 %565, ptr %25, align 4, !tbaa !9
  %566 = load i32, ptr %25, align 4, !tbaa !9
  %567 = icmp ne i32 %566, 0
  br i1 %567, label %568, label %587

568:                                              ; preds = %534
  %569 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %569, ptr %25, align 4, !tbaa !9
  store i32 40, ptr %26, align 4, !tbaa !9
  %570 = load i32, ptr %26, align 4, !tbaa !9
  %571 = load i32, ptr %25, align 4, !tbaa !9
  %572 = add i32 %571, %570
  store i32 %572, ptr %25, align 4, !tbaa !9
  %573 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %573, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %574 = load ptr, ptr %4, align 8, !tbaa !5
  %575 = load i32, ptr %25, align 4, !tbaa !9
  %576 = load i32, ptr %26, align 4, !tbaa !9
  %577 = load i32, ptr %27, align 4, !tbaa !9
  %578 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %574, i32 noundef %575, i32 noundef %576, i32 noundef %577, i32 noundef %578)
  %579 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %579, ptr %25, align 4, !tbaa !9
  %580 = load ptr, ptr %4, align 8, !tbaa !5
  %581 = getelementptr inbounds %struct.w2c_hermes, ptr %580, i32 0, i32 6
  %582 = load i32, ptr %25, align 4, !tbaa !9
  %583 = zext i32 %582 to i64
  %584 = add i64 %583, 44
  %585 = call i32 @i32_load(ptr noundef %581, i64 noundef %584)
  store i32 %585, ptr %25, align 4, !tbaa !9
  %586 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %586, ptr %9, align 4, !tbaa !9
  br label %587

587:                                              ; preds = %568, %534
  %588 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %588, ptr %25, align 4, !tbaa !9
  %589 = load ptr, ptr %4, align 8, !tbaa !5
  %590 = getelementptr inbounds %struct.w2c_hermes, ptr %589, i32 0, i32 6
  %591 = load i32, ptr %25, align 4, !tbaa !9
  %592 = zext i32 %591 to i64
  %593 = add i64 %592, 40
  %594 = call i32 @i32_load(ptr noundef %590, i64 noundef %593)
  store i32 %594, ptr %25, align 4, !tbaa !9
  %595 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %595, ptr %26, align 4, !tbaa !9
  store i32 3, ptr %27, align 4, !tbaa !9
  %596 = load i32, ptr %27, align 4, !tbaa !9
  %597 = and i32 %596, 31
  %598 = load i32, ptr %26, align 4, !tbaa !9
  %599 = shl i32 %598, %597
  store i32 %599, ptr %26, align 4, !tbaa !9
  %600 = load i32, ptr %26, align 4, !tbaa !9
  %601 = load i32, ptr %25, align 4, !tbaa !9
  %602 = add i32 %601, %600
  store i32 %602, ptr %25, align 4, !tbaa !9
  %603 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %603, ptr %6, align 4, !tbaa !9
  %604 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %604, ptr %26, align 4, !tbaa !9
  %605 = load ptr, ptr %4, align 8, !tbaa !5
  %606 = getelementptr inbounds %struct.w2c_hermes, ptr %605, i32 0, i32 6
  %607 = load i32, ptr %25, align 4, !tbaa !9
  %608 = zext i32 %607 to i64
  %609 = add i64 %608, 4
  %610 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %606, i64 noundef %609, i32 noundef %610)
  %611 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %611, ptr %25, align 4, !tbaa !9
  %612 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %612, ptr %26, align 4, !tbaa !9
  %613 = load ptr, ptr %4, align 8, !tbaa !5
  %614 = getelementptr inbounds %struct.w2c_hermes, ptr %613, i32 0, i32 6
  %615 = load i32, ptr %25, align 4, !tbaa !9
  %616 = zext i32 %615 to i64
  %617 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %614, i64 noundef %616, i32 noundef %617)
  store i32 1, ptr %25, align 4, !tbaa !9
  %618 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %618, ptr %6, align 4, !tbaa !9
  %619 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %619, ptr %25, align 4, !tbaa !9
  %620 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %620, ptr %26, align 4, !tbaa !9
  %621 = load ptr, ptr %4, align 8, !tbaa !5
  %622 = getelementptr inbounds %struct.w2c_hermes, ptr %621, i32 0, i32 6
  %623 = load i32, ptr %26, align 4, !tbaa !9
  %624 = zext i32 %623 to i64
  %625 = add i64 %624, 44
  %626 = call i32 @i32_load(ptr noundef %622, i64 noundef %625)
  store i32 %626, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %627 = load i32, ptr %27, align 4, !tbaa !9
  %628 = load i32, ptr %26, align 4, !tbaa !9
  %629 = add i32 %628, %627
  store i32 %629, ptr %26, align 4, !tbaa !9
  %630 = load ptr, ptr %4, align 8, !tbaa !5
  %631 = getelementptr inbounds %struct.w2c_hermes, ptr %630, i32 0, i32 6
  %632 = load i32, ptr %25, align 4, !tbaa !9
  %633 = zext i32 %632 to i64
  %634 = add i64 %633, 44
  %635 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %631, i64 noundef %634, i32 noundef %635)
  store i32 1, ptr %25, align 4, !tbaa !9
  %636 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %636, ptr %9, align 4, !tbaa !9
  br label %637

637:                                              ; preds = %587, %533, %523, %515, %496, %494, %486, %485, %478, %463
  %638 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %638, ptr %25, align 4, !tbaa !9
  %639 = load ptr, ptr %4, align 8, !tbaa !5
  %640 = getelementptr inbounds %struct.w2c_hermes, ptr %639, i32 0, i32 6
  %641 = load i32, ptr %25, align 4, !tbaa !9
  %642 = zext i32 %641 to i64
  %643 = add i64 %642, 44
  %644 = call i32 @i32_load(ptr noundef %640, i64 noundef %643)
  store i32 %644, ptr %25, align 4, !tbaa !9
  %645 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %645, ptr %15, align 4, !tbaa !9
  store i32 0, ptr %26, align 4, !tbaa !9
  %646 = load i32, ptr %25, align 4, !tbaa !9
  %647 = load i32, ptr %26, align 4, !tbaa !9
  %648 = icmp sgt i32 %646, %647
  %649 = zext i1 %648 to i32
  store i32 %649, ptr %25, align 4, !tbaa !9
  %650 = load i32, ptr %25, align 4, !tbaa !9
  %651 = icmp ne i32 %650, 0
  br i1 %651, label %652, label %1163

652:                                              ; preds = %637
  br label %653

653:                                              ; preds = %1161, %652
  %654 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %654, ptr %25, align 4, !tbaa !9
  %655 = load ptr, ptr %4, align 8, !tbaa !5
  %656 = getelementptr inbounds %struct.w2c_hermes, ptr %655, i32 0, i32 6
  %657 = load i32, ptr %25, align 4, !tbaa !9
  %658 = zext i32 %657 to i64
  %659 = add i64 %658, 40
  %660 = call i32 @i32_load(ptr noundef %656, i64 noundef %659)
  store i32 %660, ptr %25, align 4, !tbaa !9
  %661 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %661, ptr %26, align 4, !tbaa !9
  store i32 3, ptr %27, align 4, !tbaa !9
  %662 = load i32, ptr %27, align 4, !tbaa !9
  %663 = and i32 %662, 31
  %664 = load i32, ptr %26, align 4, !tbaa !9
  %665 = shl i32 %664, %663
  store i32 %665, ptr %26, align 4, !tbaa !9
  %666 = load i32, ptr %26, align 4, !tbaa !9
  %667 = load i32, ptr %25, align 4, !tbaa !9
  %668 = add i32 %667, %666
  store i32 %668, ptr %25, align 4, !tbaa !9
  %669 = load ptr, ptr %4, align 8, !tbaa !5
  %670 = getelementptr inbounds %struct.w2c_hermes, ptr %669, i32 0, i32 6
  %671 = load i32, ptr %25, align 4, !tbaa !9
  %672 = zext i32 %671 to i64
  %673 = call i32 @i32_load(ptr noundef %670, i64 noundef %672)
  store i32 %673, ptr %25, align 4, !tbaa !9
  %674 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %674, ptr %10, align 4, !tbaa !9
  %675 = load ptr, ptr %4, align 8, !tbaa !5
  %676 = getelementptr inbounds %struct.w2c_hermes, ptr %675, i32 0, i32 6
  %677 = load i32, ptr %25, align 4, !tbaa !9
  %678 = zext i32 %677 to i64
  %679 = call i32 @i32_load8_u(ptr noundef %676, i64 noundef %678)
  store i32 %679, ptr %25, align 4, !tbaa !9
  store i32 109, ptr %26, align 4, !tbaa !9
  %680 = load i32, ptr %26, align 4, !tbaa !9
  %681 = load i32, ptr %25, align 4, !tbaa !9
  %682 = sub i32 %681, %680
  store i32 %682, ptr %25, align 4, !tbaa !9
  store i32 255, ptr %26, align 4, !tbaa !9
  %683 = load i32, ptr %26, align 4, !tbaa !9
  %684 = load i32, ptr %25, align 4, !tbaa !9
  %685 = and i32 %684, %683
  store i32 %685, ptr %25, align 4, !tbaa !9
  store i32 149, ptr %26, align 4, !tbaa !9
  %686 = load i32, ptr %25, align 4, !tbaa !9
  %687 = load i32, ptr %26, align 4, !tbaa !9
  %688 = icmp ult i32 %686, %687
  %689 = zext i1 %688 to i32
  store i32 %689, ptr %25, align 4, !tbaa !9
  %690 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %690, ptr %12, align 4, !tbaa !9
  %691 = load i32, ptr %25, align 4, !tbaa !9
  %692 = icmp ne i32 %691, 0
  br i1 %692, label %693, label %694

693:                                              ; preds = %653
  br label %1148

694:                                              ; preds = %653
  %695 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %695, ptr %25, align 4, !tbaa !9
  %696 = load ptr, ptr %4, align 8, !tbaa !5
  %697 = getelementptr inbounds %struct.w2c_hermes, ptr %696, i32 0, i32 6
  %698 = load i32, ptr %25, align 4, !tbaa !9
  %699 = zext i32 %698 to i64
  %700 = add i64 %699, 16
  %701 = call i32 @i32_load(ptr noundef %697, i64 noundef %700)
  store i32 %701, ptr %25, align 4, !tbaa !9
  store i32 0, ptr %26, align 4, !tbaa !9
  %702 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %702, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %703 = load i32, ptr %28, align 4, !tbaa !9
  %704 = load i32, ptr %27, align 4, !tbaa !9
  %705 = sub i32 %704, %703
  store i32 %705, ptr %27, align 4, !tbaa !9
  %706 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %706, ptr %28, align 4, !tbaa !9
  %707 = load i32, ptr %28, align 4, !tbaa !9
  %708 = icmp ne i32 %707, 0
  br i1 %708, label %709, label %711

709:                                              ; preds = %694
  %710 = load i32, ptr %26, align 4, !tbaa !9
  br label %713

711:                                              ; preds = %694
  %712 = load i32, ptr %27, align 4, !tbaa !9
  br label %713

713:                                              ; preds = %711, %709
  %714 = phi i32 [ %710, %709 ], [ %712, %711 ]
  store i32 %714, ptr %26, align 4, !tbaa !9
  %715 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %715, ptr %14, align 4, !tbaa !9
  store i32 8, ptr %27, align 4, !tbaa !9
  %716 = load i32, ptr %27, align 4, !tbaa !9
  %717 = load i32, ptr %26, align 4, !tbaa !9
  %718 = add i32 %717, %716
  store i32 %718, ptr %26, align 4, !tbaa !9
  %719 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %719, ptr %10, align 4, !tbaa !9
  %720 = load ptr, ptr %4, align 8, !tbaa !5
  %721 = load i32, ptr %25, align 4, !tbaa !9
  %722 = load i32, ptr %26, align 4, !tbaa !9
  %723 = call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %720, i32 noundef %721, i32 noundef %722)
  store i32 %723, ptr %25, align 4, !tbaa !9
  %724 = load i32, ptr %25, align 4, !tbaa !9
  %725 = icmp ne i32 %724, 0
  %726 = xor i1 %725, true
  %727 = zext i1 %726 to i32
  store i32 %727, ptr %25, align 4, !tbaa !9
  %728 = load i32, ptr %25, align 4, !tbaa !9
  %729 = icmp ne i32 %728, 0
  br i1 %729, label %730, label %731

730:                                              ; preds = %713
  br label %1148

731:                                              ; preds = %713
  %732 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %732, ptr %25, align 4, !tbaa !9
  %733 = load ptr, ptr %4, align 8, !tbaa !5
  %734 = getelementptr inbounds %struct.w2c_hermes, ptr %733, i32 0, i32 6
  %735 = load i32, ptr %25, align 4, !tbaa !9
  %736 = zext i32 %735 to i64
  %737 = add i64 %736, 16
  %738 = call i32 @i32_load(ptr noundef %734, i64 noundef %737)
  store i32 %738, ptr %25, align 4, !tbaa !9
  %739 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %739, ptr %26, align 4, !tbaa !9
  %740 = load ptr, ptr %4, align 8, !tbaa !5
  %741 = load i32, ptr %25, align 4, !tbaa !9
  %742 = load i32, ptr %26, align 4, !tbaa !9
  %743 = call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %740, i32 noundef %741, i32 noundef %742)
  store i32 %743, ptr %25, align 4, !tbaa !9
  %744 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %744, ptr %12, align 4, !tbaa !9
  %745 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %745, ptr %25, align 4, !tbaa !9
  %746 = load ptr, ptr %4, align 8, !tbaa !5
  %747 = getelementptr inbounds %struct.w2c_hermes, ptr %746, i32 0, i32 6
  %748 = load i32, ptr %25, align 4, !tbaa !9
  %749 = zext i32 %748 to i64
  %750 = call i32 @i32_load8_u(ptr noundef %747, i64 noundef %749)
  store i32 %750, ptr %25, align 4, !tbaa !9
  store i32 22, ptr %26, align 4, !tbaa !9
  %751 = load i32, ptr %26, align 4, !tbaa !9
  %752 = load i32, ptr %25, align 4, !tbaa !9
  %753 = sub i32 %752, %751
  store i32 %753, ptr %25, align 4, !tbaa !9
  %754 = load i32, ptr %25, align 4, !tbaa !9
  switch i32 %754, label %829 [
    i32 0, label %755
    i32 1, label %756
    i32 2, label %757
    i32 3, label %758
    i32 4, label %759
    i32 5, label %760
    i32 6, label %761
    i32 7, label %762
    i32 8, label %763
    i32 9, label %764
    i32 10, label %765
    i32 11, label %766
    i32 12, label %767
    i32 13, label %768
    i32 14, label %769
    i32 15, label %770
    i32 16, label %771
    i32 17, label %772
    i32 18, label %773
    i32 19, label %774
    i32 20, label %775
    i32 21, label %776
    i32 22, label %777
    i32 23, label %778
    i32 24, label %779
    i32 25, label %780
    i32 26, label %781
    i32 27, label %782
    i32 28, label %783
    i32 29, label %784
    i32 30, label %785
    i32 31, label %786
    i32 32, label %787
    i32 33, label %788
    i32 34, label %789
    i32 35, label %790
    i32 36, label %791
    i32 37, label %792
    i32 38, label %793
    i32 39, label %794
    i32 40, label %795
    i32 41, label %796
    i32 42, label %797
    i32 43, label %798
    i32 44, label %799
    i32 45, label %800
    i32 46, label %801
    i32 47, label %802
    i32 48, label %803
    i32 49, label %804
    i32 50, label %805
    i32 51, label %806
    i32 52, label %807
    i32 53, label %808
    i32 54, label %809
    i32 55, label %810
    i32 56, label %811
    i32 57, label %812
    i32 58, label %813
    i32 59, label %814
    i32 60, label %815
    i32 61, label %816
    i32 62, label %817
    i32 63, label %818
    i32 64, label %819
    i32 65, label %820
    i32 66, label %821
    i32 67, label %822
    i32 68, label %823
    i32 69, label %824
    i32 70, label %825
    i32 71, label %826
    i32 72, label %827
    i32 73, label %828
  ]

755:                                              ; preds = %731
  br label %1148

756:                                              ; preds = %731
  br label %1148

757:                                              ; preds = %731
  br label %845

758:                                              ; preds = %731
  br label %845

759:                                              ; preds = %731
  br label %845

760:                                              ; preds = %731
  br label %845

761:                                              ; preds = %731
  br label %845

762:                                              ; preds = %731
  br label %845

763:                                              ; preds = %731
  br label %845

764:                                              ; preds = %731
  br label %1148

765:                                              ; preds = %731
  br label %845

766:                                              ; preds = %731
  br label %1148

767:                                              ; preds = %731
  br label %845

768:                                              ; preds = %731
  br label %845

769:                                              ; preds = %731
  br label %845

770:                                              ; preds = %731
  br label %845

771:                                              ; preds = %731
  br label %845

772:                                              ; preds = %731
  br label %845

773:                                              ; preds = %731
  br label %845

774:                                              ; preds = %731
  br label %845

775:                                              ; preds = %731
  br label %845

776:                                              ; preds = %731
  br label %845

777:                                              ; preds = %731
  br label %845

778:                                              ; preds = %731
  br label %845

779:                                              ; preds = %731
  br label %845

780:                                              ; preds = %731
  br label %845

781:                                              ; preds = %731
  br label %845

782:                                              ; preds = %731
  br label %845

783:                                              ; preds = %731
  br label %1148

784:                                              ; preds = %731
  br label %845

785:                                              ; preds = %731
  br label %845

786:                                              ; preds = %731
  br label %845

787:                                              ; preds = %731
  br label %845

788:                                              ; preds = %731
  br label %845

789:                                              ; preds = %731
  br label %845

790:                                              ; preds = %731
  br label %845

791:                                              ; preds = %731
  br label %845

792:                                              ; preds = %731
  br label %845

793:                                              ; preds = %731
  br label %845

794:                                              ; preds = %731
  br label %845

795:                                              ; preds = %731
  br label %845

796:                                              ; preds = %731
  br label %845

797:                                              ; preds = %731
  br label %845

798:                                              ; preds = %731
  br label %845

799:                                              ; preds = %731
  br label %845

800:                                              ; preds = %731
  br label %845

801:                                              ; preds = %731
  br label %845

802:                                              ; preds = %731
  br label %845

803:                                              ; preds = %731
  br label %845

804:                                              ; preds = %731
  br label %845

805:                                              ; preds = %731
  br label %845

806:                                              ; preds = %731
  br label %845

807:                                              ; preds = %731
  br label %845

808:                                              ; preds = %731
  br label %845

809:                                              ; preds = %731
  br label %845

810:                                              ; preds = %731
  br label %845

811:                                              ; preds = %731
  br label %845

812:                                              ; preds = %731
  br label %845

813:                                              ; preds = %731
  br label %845

814:                                              ; preds = %731
  br label %845

815:                                              ; preds = %731
  br label %845

816:                                              ; preds = %731
  br label %845

817:                                              ; preds = %731
  br label %845

818:                                              ; preds = %731
  br label %845

819:                                              ; preds = %731
  br label %845

820:                                              ; preds = %731
  br label %845

821:                                              ; preds = %731
  br label %845

822:                                              ; preds = %731
  br label %845

823:                                              ; preds = %731
  br label %845

824:                                              ; preds = %731
  br label %830

825:                                              ; preds = %731
  br label %830

826:                                              ; preds = %731
  br label %830

827:                                              ; preds = %731
  br label %830

828:                                              ; preds = %731
  br label %830

829:                                              ; preds = %731
  br label %845

830:                                              ; preds = %828, %827, %826, %825, %824
  %831 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %831, ptr %25, align 4, !tbaa !9
  %832 = load i32, ptr %25, align 4, !tbaa !9
  %833 = icmp ne i32 %832, 0
  br i1 %833, label %834, label %835

834:                                              ; preds = %830
  br label %1148

835:                                              ; preds = %830
  %836 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %836, ptr %25, align 4, !tbaa !9
  store i32 256, ptr %26, align 4, !tbaa !9
  %837 = load i32, ptr %25, align 4, !tbaa !9
  %838 = load i32, ptr %26, align 4, !tbaa !9
  %839 = icmp uge i32 %837, %838
  %840 = zext i1 %839 to i32
  store i32 %840, ptr %25, align 4, !tbaa !9
  %841 = load i32, ptr %25, align 4, !tbaa !9
  %842 = icmp ne i32 %841, 0
  br i1 %842, label %843, label %844

843:                                              ; preds = %835
  br label %855

844:                                              ; preds = %835
  br label %1148

845:                                              ; preds = %829, %823, %822, %821, %820, %819, %818, %817, %816, %815, %814, %813, %812, %811, %810, %809, %808, %807, %806, %805, %804, %803, %802, %801, %800, %799, %798, %797, %796, %795, %794, %793, %792, %791, %790, %789, %788, %787, %786, %785, %784, %782, %781, %780, %779, %778, %777, %776, %775, %774, %773, %772, %771, %770, %769, %768, %767, %765, %763, %762, %761, %760, %759, %758, %757
  %846 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %846, ptr %25, align 4, !tbaa !9
  store i32 256, ptr %26, align 4, !tbaa !9
  %847 = load i32, ptr %25, align 4, !tbaa !9
  %848 = load i32, ptr %26, align 4, !tbaa !9
  %849 = icmp ult i32 %847, %848
  %850 = zext i1 %849 to i32
  store i32 %850, ptr %25, align 4, !tbaa !9
  %851 = load i32, ptr %25, align 4, !tbaa !9
  %852 = icmp ne i32 %851, 0
  br i1 %852, label %853, label %854

853:                                              ; preds = %845
  br label %1148

854:                                              ; preds = %845
  br label %855

855:                                              ; preds = %854, %843
  %856 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %856, ptr %25, align 4, !tbaa !9
  store i32 68, ptr %26, align 4, !tbaa !9
  %857 = load i32, ptr %26, align 4, !tbaa !9
  %858 = load i32, ptr %25, align 4, !tbaa !9
  %859 = add i32 %858, %857
  store i32 %859, ptr %25, align 4, !tbaa !9
  %860 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %860, ptr %10, align 4, !tbaa !9
  %861 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %861, ptr %26, align 4, !tbaa !9
  %862 = load ptr, ptr %4, align 8, !tbaa !5
  %863 = getelementptr inbounds %struct.w2c_hermes, ptr %862, i32 0, i32 6
  %864 = load i32, ptr %25, align 4, !tbaa !9
  %865 = zext i32 %864 to i64
  %866 = add i64 %865, 4
  %867 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %863, i64 noundef %866, i32 noundef %867)
  %868 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %868, ptr %25, align 4, !tbaa !9
  %869 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %869, ptr %26, align 4, !tbaa !9
  %870 = load ptr, ptr %4, align 8, !tbaa !5
  %871 = getelementptr inbounds %struct.w2c_hermes, ptr %870, i32 0, i32 6
  %872 = load i32, ptr %26, align 4, !tbaa !9
  %873 = zext i32 %872 to i64
  %874 = add i64 %873, 36
  %875 = call i32 @i32_load(ptr noundef %871, i64 noundef %874)
  store i32 %875, ptr %26, align 4, !tbaa !9
  %876 = load ptr, ptr %4, align 8, !tbaa !5
  %877 = getelementptr inbounds %struct.w2c_hermes, ptr %876, i32 0, i32 6
  %878 = load i32, ptr %25, align 4, !tbaa !9
  %879 = zext i32 %878 to i64
  %880 = add i64 %879, 8
  %881 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %877, i64 noundef %880, i32 noundef %881)
  %882 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %882, ptr %25, align 4, !tbaa !9
  %883 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %883, ptr %26, align 4, !tbaa !9
  %884 = load ptr, ptr %4, align 8, !tbaa !5
  %885 = load i32, ptr %25, align 4, !tbaa !9
  %886 = load i32, ptr %26, align 4, !tbaa !9
  %887 = call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %884, i32 noundef %885, i32 noundef %886)
  store i32 %887, ptr %25, align 4, !tbaa !9
  %888 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %888, ptr %14, align 4, !tbaa !9
  %889 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %889, ptr %25, align 4, !tbaa !9
  %890 = load ptr, ptr %4, align 8, !tbaa !5
  %891 = getelementptr inbounds %struct.w2c_hermes, ptr %890, i32 0, i32 6
  %892 = load i32, ptr %25, align 4, !tbaa !9
  %893 = zext i32 %892 to i64
  %894 = add i64 %893, 16
  %895 = call i32 @i32_load(ptr noundef %891, i64 noundef %894)
  store i32 %895, ptr %25, align 4, !tbaa !9
  %896 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %896, ptr %26, align 4, !tbaa !9
  store i32 8, ptr %27, align 4, !tbaa !9
  %897 = load i32, ptr %27, align 4, !tbaa !9
  %898 = load i32, ptr %26, align 4, !tbaa !9
  %899 = add i32 %898, %897
  store i32 %899, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %27, align 4, !tbaa !9
  %900 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %900, ptr %28, align 4, !tbaa !9
  %901 = load i32, ptr %28, align 4, !tbaa !9
  %902 = icmp ne i32 %901, 0
  br i1 %902, label %903, label %905

903:                                              ; preds = %855
  %904 = load i32, ptr %26, align 4, !tbaa !9
  br label %907

905:                                              ; preds = %855
  %906 = load i32, ptr %27, align 4, !tbaa !9
  br label %907

907:                                              ; preds = %905, %903
  %908 = phi i32 [ %904, %903 ], [ %906, %905 ]
  store i32 %908, ptr %26, align 4, !tbaa !9
  %909 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %909, ptr %10, align 4, !tbaa !9
  %910 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %910, ptr %27, align 4, !tbaa !9
  %911 = load ptr, ptr %4, align 8, !tbaa !5
  %912 = load i32, ptr %25, align 4, !tbaa !9
  %913 = load i32, ptr %26, align 4, !tbaa !9
  %914 = load i32, ptr %27, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %911, i32 noundef %912, i32 noundef %913, i32 noundef %914)
  %915 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %915, ptr %25, align 4, !tbaa !9
  %916 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %916, ptr %26, align 4, !tbaa !9
  %917 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %917, ptr %27, align 4, !tbaa !9
  %918 = load ptr, ptr %4, align 8, !tbaa !5
  %919 = load i32, ptr %25, align 4, !tbaa !9
  %920 = load i32, ptr %26, align 4, !tbaa !9
  %921 = load i32, ptr %27, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %918, i32 noundef %919, i32 noundef %920, i32 noundef %921)
  %922 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %922, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  %923 = load i32, ptr %26, align 4, !tbaa !9
  %924 = load i32, ptr %25, align 4, !tbaa !9
  %925 = add i32 %924, %923
  store i32 %925, ptr %25, align 4, !tbaa !9
  %926 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %926, ptr %9, align 4, !tbaa !9
  store i32 0, ptr %25, align 4, !tbaa !9
  %927 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %927, ptr %10, align 4, !tbaa !9
  %928 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %928, ptr %25, align 4, !tbaa !9
  %929 = load ptr, ptr %4, align 8, !tbaa !5
  %930 = getelementptr inbounds %struct.w2c_hermes, ptr %929, i32 0, i32 6
  %931 = load i32, ptr %25, align 4, !tbaa !9
  %932 = zext i32 %931 to i64
  %933 = add i64 %932, 8
  %934 = call i32 @i32_load8_u(ptr noundef %930, i64 noundef %933)
  store i32 %934, ptr %25, align 4, !tbaa !9
  store i32 5, ptr %26, align 4, !tbaa !9
  %935 = load i32, ptr %26, align 4, !tbaa !9
  %936 = load i32, ptr %25, align 4, !tbaa !9
  %937 = sub i32 %936, %935
  store i32 %937, ptr %25, align 4, !tbaa !9
  %938 = load i32, ptr %25, align 4, !tbaa !9
  switch i32 %938, label %1035 [
    i32 0, label %939
    i32 1, label %940
    i32 2, label %941
    i32 3, label %942
    i32 4, label %943
    i32 5, label %944
    i32 6, label %945
    i32 7, label %946
    i32 8, label %947
    i32 9, label %948
    i32 10, label %949
    i32 11, label %950
    i32 12, label %951
    i32 13, label %952
    i32 14, label %953
    i32 15, label %954
    i32 16, label %955
    i32 17, label %956
    i32 18, label %957
    i32 19, label %958
    i32 20, label %959
    i32 21, label %960
    i32 22, label %961
    i32 23, label %962
    i32 24, label %963
    i32 25, label %964
    i32 26, label %965
    i32 27, label %966
    i32 28, label %967
    i32 29, label %968
    i32 30, label %969
    i32 31, label %970
    i32 32, label %971
    i32 33, label %972
    i32 34, label %973
    i32 35, label %974
    i32 36, label %975
    i32 37, label %976
    i32 38, label %977
    i32 39, label %978
    i32 40, label %979
    i32 41, label %980
    i32 42, label %981
    i32 43, label %982
    i32 44, label %983
    i32 45, label %984
    i32 46, label %985
    i32 47, label %986
    i32 48, label %987
    i32 49, label %988
    i32 50, label %989
    i32 51, label %990
    i32 52, label %991
    i32 53, label %992
    i32 54, label %993
    i32 55, label %994
    i32 56, label %995
    i32 57, label %996
    i32 58, label %997
    i32 59, label %998
    i32 60, label %999
    i32 61, label %1000
    i32 62, label %1001
    i32 63, label %1002
    i32 64, label %1003
    i32 65, label %1004
    i32 66, label %1005
    i32 67, label %1006
    i32 68, label %1007
    i32 69, label %1008
    i32 70, label %1009
    i32 71, label %1010
    i32 72, label %1011
    i32 73, label %1012
    i32 74, label %1013
    i32 75, label %1014
    i32 76, label %1015
    i32 77, label %1016
    i32 78, label %1017
    i32 79, label %1018
    i32 80, label %1019
    i32 81, label %1020
    i32 82, label %1021
    i32 83, label %1022
    i32 84, label %1023
    i32 85, label %1024
    i32 86, label %1025
    i32 87, label %1026
    i32 88, label %1027
    i32 89, label %1028
    i32 90, label %1029
    i32 91, label %1030
    i32 92, label %1031
    i32 93, label %1032
    i32 94, label %1033
    i32 95, label %1034
  ]

939:                                              ; preds = %907
  br label %1036

940:                                              ; preds = %907
  br label %1036

941:                                              ; preds = %907
  br label %1041

942:                                              ; preds = %907
  br label %1041

943:                                              ; preds = %907
  br label %1041

944:                                              ; preds = %907
  br label %1036

945:                                              ; preds = %907
  br label %1036

946:                                              ; preds = %907
  br label %1041

947:                                              ; preds = %907
  br label %1041

948:                                              ; preds = %907
  br label %1036

949:                                              ; preds = %907
  br label %1036

950:                                              ; preds = %907
  br label %1036

951:                                              ; preds = %907
  br label %1036

952:                                              ; preds = %907
  br label %1041

953:                                              ; preds = %907
  br label %1041

954:                                              ; preds = %907
  br label %1041

955:                                              ; preds = %907
  br label %1041

956:                                              ; preds = %907
  br label %1041

957:                                              ; preds = %907
  br label %1041

958:                                              ; preds = %907
  br label %1041

959:                                              ; preds = %907
  br label %1041

960:                                              ; preds = %907
  br label %1041

961:                                              ; preds = %907
  br label %1041

962:                                              ; preds = %907
  br label %1041

963:                                              ; preds = %907
  br label %1041

964:                                              ; preds = %907
  br label %1039

965:                                              ; preds = %907
  br label %1041

966:                                              ; preds = %907
  br label %1036

967:                                              ; preds = %907
  br label %1041

968:                                              ; preds = %907
  br label %1041

969:                                              ; preds = %907
  br label %1036

970:                                              ; preds = %907
  br label %1041

971:                                              ; preds = %907
  br label %1041

972:                                              ; preds = %907
  br label %1036

973:                                              ; preds = %907
  br label %1036

974:                                              ; preds = %907
  br label %1041

975:                                              ; preds = %907
  br label %1041

976:                                              ; preds = %907
  br label %1036

977:                                              ; preds = %907
  br label %1041

978:                                              ; preds = %907
  br label %1041

979:                                              ; preds = %907
  br label %1036

980:                                              ; preds = %907
  br label %1041

981:                                              ; preds = %907
  br label %1041

982:                                              ; preds = %907
  br label %1036

983:                                              ; preds = %907
  br label %1041

984:                                              ; preds = %907
  br label %1041

985:                                              ; preds = %907
  br label %1041

986:                                              ; preds = %907
  br label %1041

987:                                              ; preds = %907
  br label %1041

988:                                              ; preds = %907
  br label %1041

989:                                              ; preds = %907
  br label %1041

990:                                              ; preds = %907
  br label %1041

991:                                              ; preds = %907
  br label %1041

992:                                              ; preds = %907
  br label %1041

993:                                              ; preds = %907
  br label %1041

994:                                              ; preds = %907
  br label %1041

995:                                              ; preds = %907
  br label %1041

996:                                              ; preds = %907
  br label %1041

997:                                              ; preds = %907
  br label %1039

998:                                              ; preds = %907
  br label %1039

999:                                              ; preds = %907
  br label %1041

1000:                                             ; preds = %907
  br label %1041

1001:                                             ; preds = %907
  br label %1041

1002:                                             ; preds = %907
  br label %1041

1003:                                             ; preds = %907
  br label %1036

1004:                                             ; preds = %907
  br label %1041

1005:                                             ; preds = %907
  br label %1041

1006:                                             ; preds = %907
  br label %1041

1007:                                             ; preds = %907
  br label %1041

1008:                                             ; preds = %907
  br label %1036

1009:                                             ; preds = %907
  br label %1036

1010:                                             ; preds = %907
  br label %1036

1011:                                             ; preds = %907
  br label %1041

1012:                                             ; preds = %907
  br label %1041

1013:                                             ; preds = %907
  br label %1041

1014:                                             ; preds = %907
  br label %1041

1015:                                             ; preds = %907
  br label %1041

1016:                                             ; preds = %907
  br label %1037

1017:                                             ; preds = %907
  br label %1038

1018:                                             ; preds = %907
  br label %1041

1019:                                             ; preds = %907
  br label %1041

1020:                                             ; preds = %907
  br label %1041

1021:                                             ; preds = %907
  br label %1041

1022:                                             ; preds = %907
  br label %1041

1023:                                             ; preds = %907
  br label %1036

1024:                                             ; preds = %907
  br label %1036

1025:                                             ; preds = %907
  br label %1041

1026:                                             ; preds = %907
  br label %1041

1027:                                             ; preds = %907
  br label %1041

1028:                                             ; preds = %907
  br label %1041

1029:                                             ; preds = %907
  br label %1041

1030:                                             ; preds = %907
  br label %1041

1031:                                             ; preds = %907
  br label %1036

1032:                                             ; preds = %907
  br label %1041

1033:                                             ; preds = %907
  br label %1041

1034:                                             ; preds = %907
  br label %1039

1035:                                             ; preds = %907
  br label %1041

1036:                                             ; preds = %1031, %1024, %1023, %1010, %1009, %1008, %1003, %982, %979, %976, %973, %972, %969, %966, %951, %950, %949, %948, %945, %944, %940, %939
  call void @wasm_rt_trap(i32 noundef 5) #7
  unreachable

1037:                                             ; preds = %1016
  store i32 15, ptr %25, align 4, !tbaa !9
  br label %1043

1038:                                             ; preds = %1017
  store i32 31, ptr %25, align 4, !tbaa !9
  br label %1043

1039:                                             ; preds = %1034, %998, %997, %964
  store i32 1, ptr %25, align 4, !tbaa !9
  %1040 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1040, ptr %10, align 4, !tbaa !9
  br label %1041

1041:                                             ; preds = %1039, %1035, %1033, %1032, %1030, %1029, %1028, %1027, %1026, %1025, %1022, %1021, %1020, %1019, %1018, %1015, %1014, %1013, %1012, %1011, %1007, %1006, %1005, %1004, %1002, %1001, %1000, %999, %996, %995, %994, %993, %992, %991, %990, %989, %988, %987, %986, %985, %984, %983, %981, %980, %978, %977, %975, %974, %971, %970, %968, %967, %965, %963, %962, %961, %960, %959, %958, %957, %956, %955, %954, %953, %952, %947, %946, %943, %942, %941
  %1042 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1042, ptr %25, align 4, !tbaa !9
  br label %1043

1043:                                             ; preds = %1041, %1038, %1037
  %1044 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1044, ptr %26, align 4, !tbaa !9
  %1045 = load i32, ptr %26, align 4, !tbaa !9
  %1046 = and i32 %1045, 31
  %1047 = load i32, ptr %25, align 4, !tbaa !9
  %1048 = lshr i32 %1047, %1046
  store i32 %1048, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  %1049 = load i32, ptr %26, align 4, !tbaa !9
  %1050 = load i32, ptr %25, align 4, !tbaa !9
  %1051 = and i32 %1050, %1049
  store i32 %1051, ptr %25, align 4, !tbaa !9
  %1052 = load i32, ptr %25, align 4, !tbaa !9
  %1053 = icmp ne i32 %1052, 0
  %1054 = xor i1 %1053, true
  %1055 = zext i1 %1054 to i32
  store i32 %1055, ptr %25, align 4, !tbaa !9
  %1056 = load i32, ptr %25, align 4, !tbaa !9
  %1057 = icmp ne i32 %1056, 0
  br i1 %1057, label %1058, label %1059

1058:                                             ; preds = %1043
  br label %1148

1059:                                             ; preds = %1043
  %1060 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1060, ptr %25, align 4, !tbaa !9
  %1061 = load ptr, ptr %4, align 8, !tbaa !5
  %1062 = getelementptr inbounds %struct.w2c_hermes, ptr %1061, i32 0, i32 6
  %1063 = load i32, ptr %25, align 4, !tbaa !9
  %1064 = zext i32 %1063 to i64
  %1065 = add i64 %1064, 44
  %1066 = call i32 @i32_load(ptr noundef %1062, i64 noundef %1065)
  store i32 %1066, ptr %25, align 4, !tbaa !9
  %1067 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1067, ptr %10, align 4, !tbaa !9
  %1068 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1068, ptr %26, align 4, !tbaa !9
  %1069 = load ptr, ptr %4, align 8, !tbaa !5
  %1070 = getelementptr inbounds %struct.w2c_hermes, ptr %1069, i32 0, i32 6
  %1071 = load i32, ptr %26, align 4, !tbaa !9
  %1072 = zext i32 %1071 to i64
  %1073 = add i64 %1072, 48
  %1074 = call i32 @i32_load(ptr noundef %1070, i64 noundef %1073)
  store i32 %1074, ptr %26, align 4, !tbaa !9
  %1075 = load i32, ptr %25, align 4, !tbaa !9
  %1076 = load i32, ptr %26, align 4, !tbaa !9
  %1077 = icmp uge i32 %1075, %1076
  %1078 = zext i1 %1077 to i32
  store i32 %1078, ptr %25, align 4, !tbaa !9
  %1079 = load i32, ptr %25, align 4, !tbaa !9
  %1080 = icmp ne i32 %1079, 0
  br i1 %1080, label %1081, label %1100

1081:                                             ; preds = %1059
  %1082 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1082, ptr %25, align 4, !tbaa !9
  store i32 40, ptr %26, align 4, !tbaa !9
  %1083 = load i32, ptr %26, align 4, !tbaa !9
  %1084 = load i32, ptr %25, align 4, !tbaa !9
  %1085 = add i32 %1084, %1083
  store i32 %1085, ptr %25, align 4, !tbaa !9
  %1086 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1086, ptr %26, align 4, !tbaa !9
  store i32 0, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %1087 = load ptr, ptr %4, align 8, !tbaa !5
  %1088 = load i32, ptr %25, align 4, !tbaa !9
  %1089 = load i32, ptr %26, align 4, !tbaa !9
  %1090 = load i32, ptr %27, align 4, !tbaa !9
  %1091 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %1087, i32 noundef %1088, i32 noundef %1089, i32 noundef %1090, i32 noundef %1091)
  %1092 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1092, ptr %25, align 4, !tbaa !9
  %1093 = load ptr, ptr %4, align 8, !tbaa !5
  %1094 = getelementptr inbounds %struct.w2c_hermes, ptr %1093, i32 0, i32 6
  %1095 = load i32, ptr %25, align 4, !tbaa !9
  %1096 = zext i32 %1095 to i64
  %1097 = add i64 %1096, 44
  %1098 = call i32 @i32_load(ptr noundef %1094, i64 noundef %1097)
  store i32 %1098, ptr %25, align 4, !tbaa !9
  %1099 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1099, ptr %10, align 4, !tbaa !9
  br label %1100

1100:                                             ; preds = %1081, %1059
  %1101 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1101, ptr %25, align 4, !tbaa !9
  %1102 = load ptr, ptr %4, align 8, !tbaa !5
  %1103 = getelementptr inbounds %struct.w2c_hermes, ptr %1102, i32 0, i32 6
  %1104 = load i32, ptr %25, align 4, !tbaa !9
  %1105 = zext i32 %1104 to i64
  %1106 = add i64 %1105, 40
  %1107 = call i32 @i32_load(ptr noundef %1103, i64 noundef %1106)
  store i32 %1107, ptr %25, align 4, !tbaa !9
  %1108 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1108, ptr %26, align 4, !tbaa !9
  store i32 3, ptr %27, align 4, !tbaa !9
  %1109 = load i32, ptr %27, align 4, !tbaa !9
  %1110 = and i32 %1109, 31
  %1111 = load i32, ptr %26, align 4, !tbaa !9
  %1112 = shl i32 %1111, %1110
  store i32 %1112, ptr %26, align 4, !tbaa !9
  %1113 = load i32, ptr %26, align 4, !tbaa !9
  %1114 = load i32, ptr %25, align 4, !tbaa !9
  %1115 = add i32 %1114, %1113
  store i32 %1115, ptr %25, align 4, !tbaa !9
  %1116 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1116, ptr %10, align 4, !tbaa !9
  %1117 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1117, ptr %26, align 4, !tbaa !9
  %1118 = load ptr, ptr %4, align 8, !tbaa !5
  %1119 = getelementptr inbounds %struct.w2c_hermes, ptr %1118, i32 0, i32 6
  %1120 = load i32, ptr %25, align 4, !tbaa !9
  %1121 = zext i32 %1120 to i64
  %1122 = add i64 %1121, 4
  %1123 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1119, i64 noundef %1122, i32 noundef %1123)
  %1124 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1124, ptr %25, align 4, !tbaa !9
  %1125 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1125, ptr %26, align 4, !tbaa !9
  %1126 = load ptr, ptr %4, align 8, !tbaa !5
  %1127 = getelementptr inbounds %struct.w2c_hermes, ptr %1126, i32 0, i32 6
  %1128 = load i32, ptr %25, align 4, !tbaa !9
  %1129 = zext i32 %1128 to i64
  %1130 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1127, i64 noundef %1129, i32 noundef %1130)
  %1131 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1131, ptr %25, align 4, !tbaa !9
  %1132 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1132, ptr %26, align 4, !tbaa !9
  %1133 = load ptr, ptr %4, align 8, !tbaa !5
  %1134 = getelementptr inbounds %struct.w2c_hermes, ptr %1133, i32 0, i32 6
  %1135 = load i32, ptr %26, align 4, !tbaa !9
  %1136 = zext i32 %1135 to i64
  %1137 = add i64 %1136, 44
  %1138 = call i32 @i32_load(ptr noundef %1134, i64 noundef %1137)
  store i32 %1138, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1139 = load i32, ptr %27, align 4, !tbaa !9
  %1140 = load i32, ptr %26, align 4, !tbaa !9
  %1141 = add i32 %1140, %1139
  store i32 %1141, ptr %26, align 4, !tbaa !9
  %1142 = load ptr, ptr %4, align 8, !tbaa !5
  %1143 = getelementptr inbounds %struct.w2c_hermes, ptr %1142, i32 0, i32 6
  %1144 = load i32, ptr %25, align 4, !tbaa !9
  %1145 = zext i32 %1144 to i64
  %1146 = add i64 %1145, 44
  %1147 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1143, i64 noundef %1146, i32 noundef %1147)
  br label %1148

1148:                                             ; preds = %1100, %1058, %853, %844, %834, %783, %766, %764, %756, %755, %730, %693
  %1149 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1149, ptr %25, align 4, !tbaa !9
  store i32 1, ptr %26, align 4, !tbaa !9
  %1150 = load i32, ptr %26, align 4, !tbaa !9
  %1151 = load i32, ptr %25, align 4, !tbaa !9
  %1152 = add i32 %1151, %1150
  store i32 %1152, ptr %25, align 4, !tbaa !9
  %1153 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1153, ptr %8, align 4, !tbaa !9
  %1154 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1154, ptr %26, align 4, !tbaa !9
  %1155 = load i32, ptr %25, align 4, !tbaa !9
  %1156 = load i32, ptr %26, align 4, !tbaa !9
  %1157 = icmp ne i32 %1155, %1156
  %1158 = zext i1 %1157 to i32
  store i32 %1158, ptr %25, align 4, !tbaa !9
  %1159 = load i32, ptr %25, align 4, !tbaa !9
  %1160 = icmp ne i32 %1159, 0
  br i1 %1160, label %1161, label %1162

1161:                                             ; preds = %1148
  br label %653

1162:                                             ; preds = %1148
  br label %1163

1163:                                             ; preds = %1162, %637
  %1164 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1164, ptr %25, align 4, !tbaa !9
  %1165 = load ptr, ptr %4, align 8, !tbaa !5
  %1166 = getelementptr inbounds %struct.w2c_hermes, ptr %1165, i32 0, i32 6
  %1167 = load i32, ptr %25, align 4, !tbaa !9
  %1168 = zext i32 %1167 to i64
  %1169 = add i64 %1168, 44
  %1170 = call i32 @i32_load(ptr noundef %1166, i64 noundef %1169)
  store i32 %1170, ptr %25, align 4, !tbaa !9
  %1171 = load i32, ptr %25, align 4, !tbaa !9
  %1172 = icmp ne i32 %1171, 0
  %1173 = xor i1 %1172, true
  %1174 = zext i1 %1173 to i32
  store i32 %1174, ptr %25, align 4, !tbaa !9
  %1175 = load i32, ptr %25, align 4, !tbaa !9
  %1176 = icmp ne i32 %1175, 0
  br i1 %1176, label %1177, label %1178

1177:                                             ; preds = %1163
  br label %1894

1178:                                             ; preds = %1163
  %1179 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1179, ptr %25, align 4, !tbaa !9
  store i64 17179869184, ptr %30, align 8, !tbaa !23
  %1180 = load ptr, ptr %4, align 8, !tbaa !5
  %1181 = getelementptr inbounds %struct.w2c_hermes, ptr %1180, i32 0, i32 6
  %1182 = load i32, ptr %25, align 4, !tbaa !9
  %1183 = zext i32 %1182 to i64
  %1184 = add i64 %1183, 16
  %1185 = load i64, ptr %30, align 8, !tbaa !23
  call void @i64_store(ptr noundef %1181, i64 noundef %1184, i64 noundef %1185)
  %1186 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1186, ptr %25, align 4, !tbaa !9
  %1187 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1187, ptr %26, align 4, !tbaa !9
  %1188 = load ptr, ptr %4, align 8, !tbaa !5
  %1189 = getelementptr inbounds %struct.w2c_hermes, ptr %1188, i32 0, i32 6
  %1190 = load i32, ptr %25, align 4, !tbaa !9
  %1191 = zext i32 %1190 to i64
  %1192 = add i64 %1191, 12
  %1193 = load i32, ptr %26, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1189, i64 noundef %1192, i32 noundef %1193)
  %1194 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1194, ptr %25, align 4, !tbaa !9
  %1195 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1195, ptr %26, align 4, !tbaa !9
  %1196 = load ptr, ptr %4, align 8, !tbaa !5
  %1197 = getelementptr inbounds %struct.w2c_hermes, ptr %1196, i32 0, i32 6
  %1198 = load i32, ptr %26, align 4, !tbaa !9
  %1199 = zext i32 %1198 to i64
  %1200 = call i32 @i32_load8_u(ptr noundef %1197, i64 noundef %1199)
  store i32 %1200, ptr %26, align 4, !tbaa !9
  store i32 75, ptr %27, align 4, !tbaa !9
  %1201 = load i32, ptr %27, align 4, !tbaa !9
  %1202 = load i32, ptr %26, align 4, !tbaa !9
  %1203 = sub i32 %1202, %1201
  store i32 %1203, ptr %26, align 4, !tbaa !9
  store i32 255, ptr %27, align 4, !tbaa !9
  %1204 = load i32, ptr %27, align 4, !tbaa !9
  %1205 = load i32, ptr %26, align 4, !tbaa !9
  %1206 = and i32 %1205, %1204
  store i32 %1206, ptr %26, align 4, !tbaa !9
  store i32 15, ptr %27, align 4, !tbaa !9
  %1207 = load i32, ptr %26, align 4, !tbaa !9
  %1208 = load i32, ptr %27, align 4, !tbaa !9
  %1209 = icmp uge i32 %1207, %1208
  %1210 = zext i1 %1209 to i32
  store i32 %1210, ptr %26, align 4, !tbaa !9
  %1211 = load i32, ptr %26, align 4, !tbaa !9
  %1212 = icmp ne i32 %1211, 0
  br i1 %1212, label %1213, label %1248

1213:                                             ; preds = %1178
  %1214 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1214, ptr %26, align 4, !tbaa !9
  %1215 = load ptr, ptr %4, align 8, !tbaa !5
  %1216 = getelementptr inbounds %struct.w2c_hermes, ptr %1215, i32 0, i32 6
  %1217 = load i32, ptr %26, align 4, !tbaa !9
  %1218 = zext i32 %1217 to i64
  %1219 = add i64 %1218, 4
  %1220 = call i32 @i32_load(ptr noundef %1216, i64 noundef %1219)
  store i32 %1220, ptr %26, align 4, !tbaa !9
  %1221 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1221, ptr %9, align 4, !tbaa !9
  %1222 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1222, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1223 = load ptr, ptr %4, align 8, !tbaa !5
  %1224 = getelementptr inbounds %struct.w2c_hermes, ptr %1223, i32 0, i32 6
  %1225 = load i32, ptr %26, align 4, !tbaa !9
  %1226 = zext i32 %1225 to i64
  %1227 = add i64 %1226, 16
  %1228 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1224, i64 noundef %1227, i32 noundef %1228)
  %1229 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1229, ptr %26, align 4, !tbaa !9
  %1230 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1230, ptr %27, align 4, !tbaa !9
  %1231 = load ptr, ptr %4, align 8, !tbaa !5
  %1232 = getelementptr inbounds %struct.w2c_hermes, ptr %1231, i32 0, i32 6
  %1233 = load i32, ptr %26, align 4, !tbaa !9
  %1234 = zext i32 %1233 to i64
  %1235 = add i64 %1234, 24
  %1236 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1232, i64 noundef %1235, i32 noundef %1236)
  %1237 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1237, ptr %26, align 4, !tbaa !9
  %1238 = load ptr, ptr %4, align 8, !tbaa !5
  %1239 = getelementptr inbounds %struct.w2c_hermes, ptr %1238, i32 0, i32 6
  %1240 = load i32, ptr %26, align 4, !tbaa !9
  %1241 = zext i32 %1240 to i64
  %1242 = add i64 %1241, 12
  %1243 = call i32 @i32_load(ptr noundef %1239, i64 noundef %1242)
  store i32 %1243, ptr %26, align 4, !tbaa !9
  %1244 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1244, ptr %9, align 4, !tbaa !9
  store i32 4, ptr %27, align 4, !tbaa !9
  %1245 = load i32, ptr %27, align 4, !tbaa !9
  %1246 = load i32, ptr %26, align 4, !tbaa !9
  %1247 = add i32 %1246, %1245
  store i32 %1247, ptr %26, align 4, !tbaa !9
  br label %1649

1248:                                             ; preds = %1178
  %1249 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1249, ptr %26, align 4, !tbaa !9
  %1250 = load ptr, ptr %4, align 8, !tbaa !5
  %1251 = getelementptr inbounds %struct.w2c_hermes, ptr %1250, i32 0, i32 6
  %1252 = load i32, ptr %26, align 4, !tbaa !9
  %1253 = zext i32 %1252 to i64
  %1254 = add i64 %1253, 44
  %1255 = call i32 @i32_load(ptr noundef %1251, i64 noundef %1254)
  store i32 %1255, ptr %26, align 4, !tbaa !9
  %1256 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1256, ptr %14, align 4, !tbaa !9
  store i32 0, ptr %27, align 4, !tbaa !9
  %1257 = load i32, ptr %26, align 4, !tbaa !9
  %1258 = load i32, ptr %27, align 4, !tbaa !9
  %1259 = icmp sgt i32 %1257, %1258
  %1260 = zext i1 %1259 to i32
  store i32 %1260, ptr %26, align 4, !tbaa !9
  %1261 = load i32, ptr %26, align 4, !tbaa !9
  %1262 = icmp ne i32 %1261, 0
  br i1 %1262, label %1263, label %1615

1263:                                             ; preds = %1248
  store i32 0, ptr %26, align 4, !tbaa !9
  %1264 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1264, ptr %10, align 4, !tbaa !9
  br label %1265

1265:                                             ; preds = %1613, %1263
  %1266 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1266, ptr %26, align 4, !tbaa !9
  %1267 = load ptr, ptr %4, align 8, !tbaa !5
  %1268 = getelementptr inbounds %struct.w2c_hermes, ptr %1267, i32 0, i32 6
  %1269 = load i32, ptr %26, align 4, !tbaa !9
  %1270 = zext i32 %1269 to i64
  %1271 = add i64 %1270, 40
  %1272 = call i32 @i32_load(ptr noundef %1268, i64 noundef %1271)
  store i32 %1272, ptr %26, align 4, !tbaa !9
  %1273 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1273, ptr %27, align 4, !tbaa !9
  store i32 3, ptr %28, align 4, !tbaa !9
  %1274 = load i32, ptr %28, align 4, !tbaa !9
  %1275 = and i32 %1274, 31
  %1276 = load i32, ptr %27, align 4, !tbaa !9
  %1277 = shl i32 %1276, %1275
  store i32 %1277, ptr %27, align 4, !tbaa !9
  %1278 = load i32, ptr %27, align 4, !tbaa !9
  %1279 = load i32, ptr %26, align 4, !tbaa !9
  %1280 = add i32 %1279, %1278
  store i32 %1280, ptr %26, align 4, !tbaa !9
  %1281 = load ptr, ptr %4, align 8, !tbaa !5
  %1282 = getelementptr inbounds %struct.w2c_hermes, ptr %1281, i32 0, i32 6
  %1283 = load i32, ptr %26, align 4, !tbaa !9
  %1284 = zext i32 %1283 to i64
  %1285 = call i32 @i32_load(ptr noundef %1282, i64 noundef %1284)
  store i32 %1285, ptr %26, align 4, !tbaa !9
  %1286 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1286, ptr %8, align 4, !tbaa !9
  %1287 = load ptr, ptr %4, align 8, !tbaa !5
  %1288 = getelementptr inbounds %struct.w2c_hermes, ptr %1287, i32 0, i32 6
  %1289 = load i32, ptr %26, align 4, !tbaa !9
  %1290 = zext i32 %1289 to i64
  %1291 = call i32 @i32_load8_u(ptr noundef %1288, i64 noundef %1290)
  store i32 %1291, ptr %26, align 4, !tbaa !9
  store i32 126, ptr %27, align 4, !tbaa !9
  %1292 = load i32, ptr %26, align 4, !tbaa !9
  %1293 = load i32, ptr %27, align 4, !tbaa !9
  %1294 = icmp eq i32 %1292, %1293
  %1295 = zext i1 %1294 to i32
  store i32 %1295, ptr %26, align 4, !tbaa !9
  %1296 = load i32, ptr %26, align 4, !tbaa !9
  %1297 = icmp ne i32 %1296, 0
  br i1 %1297, label %1298, label %1600

1298:                                             ; preds = %1265
  %1299 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1299, ptr %26, align 4, !tbaa !9
  store i32 68, ptr %27, align 4, !tbaa !9
  %1300 = load i32, ptr %27, align 4, !tbaa !9
  %1301 = load i32, ptr %26, align 4, !tbaa !9
  %1302 = add i32 %1301, %1300
  store i32 %1302, ptr %26, align 4, !tbaa !9
  %1303 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1303, ptr %9, align 4, !tbaa !9
  %1304 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1304, ptr %27, align 4, !tbaa !9
  %1305 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1305, ptr %28, align 4, !tbaa !9
  %1306 = load ptr, ptr %4, align 8, !tbaa !5
  %1307 = getelementptr inbounds %struct.w2c_hermes, ptr %1306, i32 0, i32 6
  %1308 = load i32, ptr %28, align 4, !tbaa !9
  %1309 = zext i32 %1308 to i64
  %1310 = add i64 %1309, 36
  %1311 = call i32 @i32_load(ptr noundef %1307, i64 noundef %1310)
  store i32 %1311, ptr %28, align 4, !tbaa !9
  %1312 = load ptr, ptr %4, align 8, !tbaa !5
  %1313 = load i32, ptr %27, align 4, !tbaa !9
  %1314 = load i32, ptr %28, align 4, !tbaa !9
  %1315 = call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateBasicBlock0x28hermes0x3A0x3AFunction0x2A0x29(ptr noundef %1312, i32 noundef %1313, i32 noundef %1314)
  store i32 %1315, ptr %27, align 4, !tbaa !9
  %1316 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %1316, ptr %12, align 4, !tbaa !9
  %1317 = load ptr, ptr %4, align 8, !tbaa !5
  %1318 = getelementptr inbounds %struct.w2c_hermes, ptr %1317, i32 0, i32 6
  %1319 = load i32, ptr %26, align 4, !tbaa !9
  %1320 = zext i32 %1319 to i64
  %1321 = add i64 %1320, 8
  %1322 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1318, i64 noundef %1321, i32 noundef %1322)
  %1323 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1323, ptr %26, align 4, !tbaa !9
  %1324 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1324, ptr %27, align 4, !tbaa !9
  store i32 36, ptr %28, align 4, !tbaa !9
  %1325 = load i32, ptr %28, align 4, !tbaa !9
  %1326 = load i32, ptr %27, align 4, !tbaa !9
  %1327 = add i32 %1326, %1325
  store i32 %1327, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %28, align 4, !tbaa !9
  %1328 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1328, ptr %29, align 4, !tbaa !9
  %1329 = load i32, ptr %29, align 4, !tbaa !9
  %1330 = icmp ne i32 %1329, 0
  br i1 %1330, label %1331, label %1333

1331:                                             ; preds = %1298
  %1332 = load i32, ptr %27, align 4, !tbaa !9
  br label %1335

1333:                                             ; preds = %1298
  %1334 = load i32, ptr %28, align 4, !tbaa !9
  br label %1335

1335:                                             ; preds = %1333, %1331
  %1336 = phi i32 [ %1332, %1331 ], [ %1334, %1333 ]
  store i32 %1336, ptr %27, align 4, !tbaa !9
  %1337 = load ptr, ptr %4, align 8, !tbaa !5
  %1338 = getelementptr inbounds %struct.w2c_hermes, ptr %1337, i32 0, i32 6
  %1339 = load i32, ptr %26, align 4, !tbaa !9
  %1340 = zext i32 %1339 to i64
  %1341 = add i64 %1340, 4
  %1342 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1338, i64 noundef %1341, i32 noundef %1342)
  %1343 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1343, ptr %26, align 4, !tbaa !9
  %1344 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1344, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %1345 = load i32, ptr %28, align 4, !tbaa !9
  %1346 = load i32, ptr %27, align 4, !tbaa !9
  %1347 = sub i32 %1346, %1345
  store i32 %1347, ptr %27, align 4, !tbaa !9
  %1348 = load ptr, ptr %4, align 8, !tbaa !5
  %1349 = load i32, ptr %26, align 4, !tbaa !9
  %1350 = load i32, ptr %27, align 4, !tbaa !9
  %1351 = call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateBranchInst0x28hermes0x3A0x3ABasicBlock0x2A0x29(ptr noundef %1348, i32 noundef %1349, i32 noundef %1350)
  store i32 %1351, ptr %26, align 4, !tbaa !9
  %1352 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1352, ptr %15, align 4, !tbaa !9
  %1353 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1353, ptr %26, align 4, !tbaa !9
  %1354 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1354, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %1355 = load i32, ptr %28, align 4, !tbaa !9
  %1356 = load i32, ptr %27, align 4, !tbaa !9
  %1357 = add i32 %1356, %1355
  store i32 %1357, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %28, align 4, !tbaa !9
  %1358 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1358, ptr %29, align 4, !tbaa !9
  %1359 = load i32, ptr %29, align 4, !tbaa !9
  %1360 = icmp ne i32 %1359, 0
  br i1 %1360, label %1361, label %1363

1361:                                             ; preds = %1335
  %1362 = load i32, ptr %27, align 4, !tbaa !9
  br label %1365

1363:                                             ; preds = %1335
  %1364 = load i32, ptr %28, align 4, !tbaa !9
  br label %1365

1365:                                             ; preds = %1363, %1361
  %1366 = phi i32 [ %1362, %1361 ], [ %1364, %1363 ]
  store i32 %1366, ptr %27, align 4, !tbaa !9
  %1367 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1367, ptr %28, align 4, !tbaa !9
  %1368 = load ptr, ptr %4, align 8, !tbaa !5
  %1369 = load i32, ptr %26, align 4, !tbaa !9
  %1370 = load i32, ptr %27, align 4, !tbaa !9
  %1371 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %1368, i32 noundef %1369, i32 noundef %1370, i32 noundef %1371)
  %1372 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1372, ptr %26, align 4, !tbaa !9
  %1373 = load ptr, ptr %4, align 8, !tbaa !5
  %1374 = getelementptr inbounds %struct.w2c_hermes, ptr %1373, i32 0, i32 6
  %1375 = load i32, ptr %26, align 4, !tbaa !9
  %1376 = zext i32 %1375 to i64
  %1377 = add i64 %1376, 32
  %1378 = call i32 @i32_load(ptr noundef %1374, i64 noundef %1377)
  store i32 %1378, ptr %26, align 4, !tbaa !9
  %1379 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1379, ptr %9, align 4, !tbaa !9
  %1380 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1380, ptr %27, align 4, !tbaa !9
  store i32 28, ptr %28, align 4, !tbaa !9
  %1381 = load i32, ptr %28, align 4, !tbaa !9
  %1382 = load i32, ptr %27, align 4, !tbaa !9
  %1383 = add i32 %1382, %1381
  store i32 %1383, ptr %27, align 4, !tbaa !9
  %1384 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %1384, ptr %20, align 4, !tbaa !9
  %1385 = load i32, ptr %26, align 4, !tbaa !9
  %1386 = load i32, ptr %27, align 4, !tbaa !9
  %1387 = icmp eq i32 %1385, %1386
  %1388 = zext i1 %1387 to i32
  store i32 %1388, ptr %26, align 4, !tbaa !9
  %1389 = load i32, ptr %26, align 4, !tbaa !9
  %1390 = icmp ne i32 %1389, 0
  br i1 %1390, label %1391, label %1392

1391:                                             ; preds = %1365
  br label %1520

1392:                                             ; preds = %1365
  %1393 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1393, ptr %26, align 4, !tbaa !9
  %1394 = load ptr, ptr %4, align 8, !tbaa !5
  %1395 = getelementptr inbounds %struct.w2c_hermes, ptr %1394, i32 0, i32 6
  %1396 = load i32, ptr %26, align 4, !tbaa !9
  %1397 = zext i32 %1396 to i64
  %1398 = add i64 %1397, 36
  %1399 = call i32 @i32_load(ptr noundef %1395, i64 noundef %1398)
  store i32 %1399, ptr %26, align 4, !tbaa !9
  %1400 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1400, ptr %23, align 4, !tbaa !9
  br label %1401

1401:                                             ; preds = %1518, %1392
  %1402 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1402, ptr %26, align 4, !tbaa !9
  %1403 = load i32, ptr %26, align 4, !tbaa !9
  %1404 = icmp ne i32 %1403, 0
  %1405 = xor i1 %1404, true
  %1406 = zext i1 %1405 to i32
  store i32 %1406, ptr %26, align 4, !tbaa !9
  %1407 = load i32, ptr %26, align 4, !tbaa !9
  %1408 = icmp ne i32 %1407, 0
  br i1 %1408, label %1409, label %1410

1409:                                             ; preds = %1401
  br label %1520

1410:                                             ; preds = %1401
  %1411 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1411, ptr %26, align 4, !tbaa !9
  %1412 = load ptr, ptr %4, align 8, !tbaa !5
  %1413 = getelementptr inbounds %struct.w2c_hermes, ptr %1412, i32 0, i32 6
  %1414 = load i32, ptr %26, align 4, !tbaa !9
  %1415 = zext i32 %1414 to i64
  %1416 = add i64 %1415, 8
  %1417 = call i32 @i32_load8_u(ptr noundef %1413, i64 noundef %1416)
  store i32 %1417, ptr %26, align 4, !tbaa !9
  store i32 33, ptr %27, align 4, !tbaa !9
  %1418 = load i32, ptr %26, align 4, !tbaa !9
  %1419 = load i32, ptr %27, align 4, !tbaa !9
  %1420 = icmp ne i32 %1418, %1419
  %1421 = zext i1 %1420 to i32
  store i32 %1421, ptr %26, align 4, !tbaa !9
  %1422 = load i32, ptr %26, align 4, !tbaa !9
  %1423 = icmp ne i32 %1422, 0
  br i1 %1423, label %1424, label %1425

1424:                                             ; preds = %1410
  br label %1520

1425:                                             ; preds = %1410
  store i32 0, ptr %26, align 4, !tbaa !9
  %1426 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1426, ptr %8, align 4, !tbaa !9
  %1427 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1427, ptr %26, align 4, !tbaa !9
  %1428 = load ptr, ptr %4, align 8, !tbaa !5
  %1429 = getelementptr inbounds %struct.w2c_hermes, ptr %1428, i32 0, i32 6
  %1430 = load i32, ptr %26, align 4, !tbaa !9
  %1431 = zext i32 %1430 to i64
  %1432 = add i64 %1431, 44
  %1433 = call i32 @i32_load(ptr noundef %1429, i64 noundef %1432)
  store i32 %1433, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1434 = load i32, ptr %27, align 4, !tbaa !9
  %1435 = and i32 %1434, 31
  %1436 = load i32, ptr %26, align 4, !tbaa !9
  %1437 = lshr i32 %1436, %1435
  store i32 %1437, ptr %26, align 4, !tbaa !9
  %1438 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1438, ptr %24, align 4, !tbaa !9
  store i32 0, ptr %27, align 4, !tbaa !9
  %1439 = load i32, ptr %26, align 4, !tbaa !9
  %1440 = load i32, ptr %27, align 4, !tbaa !9
  %1441 = icmp ugt i32 %1439, %1440
  %1442 = zext i1 %1441 to i32
  store i32 %1442, ptr %26, align 4, !tbaa !9
  %1443 = load i32, ptr %26, align 4, !tbaa !9
  %1444 = icmp ne i32 %1443, 0
  br i1 %1444, label %1445, label %1502

1445:                                             ; preds = %1425
  br label %1446

1446:                                             ; preds = %1500, %1445
  %1447 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1447, ptr %26, align 4, !tbaa !9
  store i32 88, ptr %27, align 4, !tbaa !9
  %1448 = load i32, ptr %27, align 4, !tbaa !9
  %1449 = load i32, ptr %26, align 4, !tbaa !9
  %1450 = add i32 %1449, %1448
  store i32 %1450, ptr %26, align 4, !tbaa !9
  %1451 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1451, ptr %27, align 4, !tbaa !9
  %1452 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1452, ptr %28, align 4, !tbaa !9
  %1453 = load ptr, ptr %4, align 8, !tbaa !5
  %1454 = load i32, ptr %26, align 4, !tbaa !9
  %1455 = load i32, ptr %27, align 4, !tbaa !9
  %1456 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3APhiInst0x3A0x3AgetEntry0x28unsigned0x20int0x290x20const(ptr noundef %1453, i32 noundef %1454, i32 noundef %1455, i32 noundef %1456)
  %1457 = load i32, ptr %23, align 4, !tbaa !9
  store i32 %1457, ptr %26, align 4, !tbaa !9
  %1458 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1458, ptr %27, align 4, !tbaa !9
  %1459 = load ptr, ptr %4, align 8, !tbaa !5
  %1460 = getelementptr inbounds %struct.w2c_hermes, ptr %1459, i32 0, i32 6
  %1461 = load i32, ptr %27, align 4, !tbaa !9
  %1462 = zext i32 %1461 to i64
  %1463 = add i64 %1462, 92
  %1464 = call i32 @i32_load(ptr noundef %1460, i64 noundef %1463)
  store i32 %1464, ptr %27, align 4, !tbaa !9
  %1465 = load i32, ptr %26, align 4, !tbaa !9
  %1466 = load i32, ptr %27, align 4, !tbaa !9
  %1467 = icmp eq i32 %1465, %1466
  %1468 = zext i1 %1467 to i32
  store i32 %1468, ptr %26, align 4, !tbaa !9
  %1469 = load i32, ptr %26, align 4, !tbaa !9
  %1470 = icmp ne i32 %1469, 0
  br i1 %1470, label %1471, label %1487

1471:                                             ; preds = %1446
  %1472 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1472, ptr %26, align 4, !tbaa !9
  %1473 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1473, ptr %27, align 4, !tbaa !9
  %1474 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1474, ptr %28, align 4, !tbaa !9
  %1475 = load ptr, ptr %4, align 8, !tbaa !5
  %1476 = getelementptr inbounds %struct.w2c_hermes, ptr %1475, i32 0, i32 6
  %1477 = load i32, ptr %28, align 4, !tbaa !9
  %1478 = zext i32 %1477 to i64
  %1479 = add i64 %1478, 88
  %1480 = call i32 @i32_load(ptr noundef %1476, i64 noundef %1479)
  store i32 %1480, ptr %28, align 4, !tbaa !9
  %1481 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1481, ptr %29, align 4, !tbaa !9
  %1482 = load ptr, ptr %4, align 8, !tbaa !5
  %1483 = load i32, ptr %26, align 4, !tbaa !9
  %1484 = load i32, ptr %27, align 4, !tbaa !9
  %1485 = load i32, ptr %28, align 4, !tbaa !9
  %1486 = load i32, ptr %29, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3APhiInst0x3A0x3AupdateEntry0x28unsigned0x20int0x2C0x20hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ABasicBlock0x2A0x29(ptr noundef %1482, i32 noundef %1483, i32 noundef %1484, i32 noundef %1485, i32 noundef %1486)
  br label %1487

1487:                                             ; preds = %1471, %1446
  %1488 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1488, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1489 = load i32, ptr %27, align 4, !tbaa !9
  %1490 = load i32, ptr %26, align 4, !tbaa !9
  %1491 = add i32 %1490, %1489
  store i32 %1491, ptr %26, align 4, !tbaa !9
  %1492 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1492, ptr %8, align 4, !tbaa !9
  %1493 = load i32, ptr %24, align 4, !tbaa !9
  store i32 %1493, ptr %27, align 4, !tbaa !9
  %1494 = load i32, ptr %26, align 4, !tbaa !9
  %1495 = load i32, ptr %27, align 4, !tbaa !9
  %1496 = icmp ne i32 %1494, %1495
  %1497 = zext i1 %1496 to i32
  store i32 %1497, ptr %26, align 4, !tbaa !9
  %1498 = load i32, ptr %26, align 4, !tbaa !9
  %1499 = icmp ne i32 %1498, 0
  br i1 %1499, label %1500, label %1501

1500:                                             ; preds = %1487
  br label %1446

1501:                                             ; preds = %1487
  br label %1502

1502:                                             ; preds = %1501, %1425
  %1503 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1503, ptr %26, align 4, !tbaa !9
  %1504 = load ptr, ptr %4, align 8, !tbaa !5
  %1505 = getelementptr inbounds %struct.w2c_hermes, ptr %1504, i32 0, i32 6
  %1506 = load i32, ptr %26, align 4, !tbaa !9
  %1507 = zext i32 %1506 to i64
  %1508 = add i64 %1507, 4
  %1509 = call i32 @i32_load(ptr noundef %1505, i64 noundef %1508)
  store i32 %1509, ptr %26, align 4, !tbaa !9
  %1510 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1510, ptr %9, align 4, !tbaa !9
  %1511 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1511, ptr %27, align 4, !tbaa !9
  %1512 = load i32, ptr %26, align 4, !tbaa !9
  %1513 = load i32, ptr %27, align 4, !tbaa !9
  %1514 = icmp ne i32 %1512, %1513
  %1515 = zext i1 %1514 to i32
  store i32 %1515, ptr %26, align 4, !tbaa !9
  %1516 = load i32, ptr %26, align 4, !tbaa !9
  %1517 = icmp ne i32 %1516, 0
  br i1 %1517, label %1518, label %1519

1518:                                             ; preds = %1502
  br label %1401

1519:                                             ; preds = %1502
  br label %1520

1520:                                             ; preds = %1519, %1424, %1409, %1391
  %1521 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1521, ptr %26, align 4, !tbaa !9
  %1522 = load ptr, ptr %4, align 8, !tbaa !5
  %1523 = getelementptr inbounds %struct.w2c_hermes, ptr %1522, i32 0, i32 6
  %1524 = load i32, ptr %26, align 4, !tbaa !9
  %1525 = zext i32 %1524 to i64
  %1526 = add i64 %1525, 16
  %1527 = call i32 @i32_load(ptr noundef %1523, i64 noundef %1526)
  store i32 %1527, ptr %26, align 4, !tbaa !9
  %1528 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1528, ptr %8, align 4, !tbaa !9
  %1529 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1529, ptr %27, align 4, !tbaa !9
  %1530 = load ptr, ptr %4, align 8, !tbaa !5
  %1531 = getelementptr inbounds %struct.w2c_hermes, ptr %1530, i32 0, i32 6
  %1532 = load i32, ptr %27, align 4, !tbaa !9
  %1533 = zext i32 %1532 to i64
  %1534 = add i64 %1533, 20
  %1535 = call i32 @i32_load(ptr noundef %1531, i64 noundef %1534)
  store i32 %1535, ptr %27, align 4, !tbaa !9
  %1536 = load i32, ptr %26, align 4, !tbaa !9
  %1537 = load i32, ptr %27, align 4, !tbaa !9
  %1538 = icmp uge i32 %1536, %1537
  %1539 = zext i1 %1538 to i32
  store i32 %1539, ptr %26, align 4, !tbaa !9
  %1540 = load i32, ptr %26, align 4, !tbaa !9
  %1541 = icmp ne i32 %1540, 0
  br i1 %1541, label %1542, label %1561

1542:                                             ; preds = %1520
  %1543 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1543, ptr %26, align 4, !tbaa !9
  store i32 12, ptr %27, align 4, !tbaa !9
  %1544 = load i32, ptr %27, align 4, !tbaa !9
  %1545 = load i32, ptr %26, align 4, !tbaa !9
  %1546 = add i32 %1545, %1544
  store i32 %1546, ptr %26, align 4, !tbaa !9
  %1547 = load i32, ptr %19, align 4, !tbaa !9
  store i32 %1547, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %28, align 4, !tbaa !9
  store i32 4, ptr %29, align 4, !tbaa !9
  %1548 = load ptr, ptr %4, align 8, !tbaa !5
  %1549 = load i32, ptr %26, align 4, !tbaa !9
  %1550 = load i32, ptr %27, align 4, !tbaa !9
  %1551 = load i32, ptr %28, align 4, !tbaa !9
  %1552 = load i32, ptr %29, align 4, !tbaa !9
  call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %1548, i32 noundef %1549, i32 noundef %1550, i32 noundef %1551, i32 noundef %1552)
  %1553 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1553, ptr %26, align 4, !tbaa !9
  %1554 = load ptr, ptr %4, align 8, !tbaa !5
  %1555 = getelementptr inbounds %struct.w2c_hermes, ptr %1554, i32 0, i32 6
  %1556 = load i32, ptr %26, align 4, !tbaa !9
  %1557 = zext i32 %1556 to i64
  %1558 = add i64 %1557, 16
  %1559 = call i32 @i32_load(ptr noundef %1555, i64 noundef %1558)
  store i32 %1559, ptr %26, align 4, !tbaa !9
  %1560 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1560, ptr %8, align 4, !tbaa !9
  br label %1561

1561:                                             ; preds = %1542, %1520
  %1562 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1562, ptr %26, align 4, !tbaa !9
  %1563 = load ptr, ptr %4, align 8, !tbaa !5
  %1564 = getelementptr inbounds %struct.w2c_hermes, ptr %1563, i32 0, i32 6
  %1565 = load i32, ptr %26, align 4, !tbaa !9
  %1566 = zext i32 %1565 to i64
  %1567 = add i64 %1566, 12
  %1568 = call i32 @i32_load(ptr noundef %1564, i64 noundef %1567)
  store i32 %1568, ptr %26, align 4, !tbaa !9
  %1569 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1569, ptr %27, align 4, !tbaa !9
  store i32 2, ptr %28, align 4, !tbaa !9
  %1570 = load i32, ptr %28, align 4, !tbaa !9
  %1571 = and i32 %1570, 31
  %1572 = load i32, ptr %27, align 4, !tbaa !9
  %1573 = shl i32 %1572, %1571
  store i32 %1573, ptr %27, align 4, !tbaa !9
  %1574 = load i32, ptr %27, align 4, !tbaa !9
  %1575 = load i32, ptr %26, align 4, !tbaa !9
  %1576 = add i32 %1575, %1574
  store i32 %1576, ptr %26, align 4, !tbaa !9
  %1577 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1577, ptr %27, align 4, !tbaa !9
  %1578 = load ptr, ptr %4, align 8, !tbaa !5
  %1579 = getelementptr inbounds %struct.w2c_hermes, ptr %1578, i32 0, i32 6
  %1580 = load i32, ptr %26, align 4, !tbaa !9
  %1581 = zext i32 %1580 to i64
  %1582 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1579, i64 noundef %1581, i32 noundef %1582)
  %1583 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1583, ptr %26, align 4, !tbaa !9
  %1584 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1584, ptr %27, align 4, !tbaa !9
  %1585 = load ptr, ptr %4, align 8, !tbaa !5
  %1586 = getelementptr inbounds %struct.w2c_hermes, ptr %1585, i32 0, i32 6
  %1587 = load i32, ptr %27, align 4, !tbaa !9
  %1588 = zext i32 %1587 to i64
  %1589 = add i64 %1588, 16
  %1590 = call i32 @i32_load(ptr noundef %1586, i64 noundef %1589)
  store i32 %1590, ptr %27, align 4, !tbaa !9
  store i32 1, ptr %28, align 4, !tbaa !9
  %1591 = load i32, ptr %28, align 4, !tbaa !9
  %1592 = load i32, ptr %27, align 4, !tbaa !9
  %1593 = add i32 %1592, %1591
  store i32 %1593, ptr %27, align 4, !tbaa !9
  %1594 = load ptr, ptr %4, align 8, !tbaa !5
  %1595 = getelementptr inbounds %struct.w2c_hermes, ptr %1594, i32 0, i32 6
  %1596 = load i32, ptr %26, align 4, !tbaa !9
  %1597 = zext i32 %1596 to i64
  %1598 = add i64 %1597, 16
  %1599 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1595, i64 noundef %1598, i32 noundef %1599)
  br label %1600

1600:                                             ; preds = %1561, %1265
  %1601 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1601, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1602 = load i32, ptr %27, align 4, !tbaa !9
  %1603 = load i32, ptr %26, align 4, !tbaa !9
  %1604 = add i32 %1603, %1602
  store i32 %1604, ptr %26, align 4, !tbaa !9
  %1605 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1605, ptr %10, align 4, !tbaa !9
  %1606 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1606, ptr %27, align 4, !tbaa !9
  %1607 = load i32, ptr %26, align 4, !tbaa !9
  %1608 = load i32, ptr %27, align 4, !tbaa !9
  %1609 = icmp ne i32 %1607, %1608
  %1610 = zext i1 %1609 to i32
  store i32 %1610, ptr %26, align 4, !tbaa !9
  %1611 = load i32, ptr %26, align 4, !tbaa !9
  %1612 = icmp ne i32 %1611, 0
  br i1 %1612, label %1613, label %1614

1613:                                             ; preds = %1600
  br label %1265

1614:                                             ; preds = %1600
  br label %1615

1615:                                             ; preds = %1614, %1248
  %1616 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1616, ptr %26, align 4, !tbaa !9
  %1617 = load ptr, ptr %4, align 8, !tbaa !5
  %1618 = getelementptr inbounds %struct.w2c_hermes, ptr %1617, i32 0, i32 6
  %1619 = load i32, ptr %26, align 4, !tbaa !9
  %1620 = zext i32 %1619 to i64
  %1621 = add i64 %1620, 12
  %1622 = call i32 @i32_load(ptr noundef %1618, i64 noundef %1621)
  store i32 %1622, ptr %26, align 4, !tbaa !9
  %1623 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1623, ptr %9, align 4, !tbaa !9
  %1624 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1624, ptr %27, align 4, !tbaa !9
  %1625 = load ptr, ptr %4, align 8, !tbaa !5
  %1626 = getelementptr inbounds %struct.w2c_hermes, ptr %1625, i32 0, i32 6
  %1627 = load i32, ptr %27, align 4, !tbaa !9
  %1628 = zext i32 %1627 to i64
  %1629 = add i64 %1628, 16
  %1630 = call i32 @i32_load(ptr noundef %1626, i64 noundef %1629)
  store i32 %1630, ptr %27, align 4, !tbaa !9
  %1631 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %1631, ptr %8, align 4, !tbaa !9
  %1632 = load i32, ptr %27, align 4, !tbaa !9
  %1633 = icmp ne i32 %1632, 0
  %1634 = xor i1 %1633, true
  %1635 = zext i1 %1634 to i32
  store i32 %1635, ptr %27, align 4, !tbaa !9
  %1636 = load i32, ptr %27, align 4, !tbaa !9
  %1637 = icmp ne i32 %1636, 0
  br i1 %1637, label %1638, label %1639

1638:                                             ; preds = %1615
  br label %1881

1639:                                             ; preds = %1615
  %1640 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1640, ptr %26, align 4, !tbaa !9
  %1641 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1641, ptr %27, align 4, !tbaa !9
  store i32 2, ptr %28, align 4, !tbaa !9
  %1642 = load i32, ptr %28, align 4, !tbaa !9
  %1643 = and i32 %1642, 31
  %1644 = load i32, ptr %27, align 4, !tbaa !9
  %1645 = shl i32 %1644, %1643
  store i32 %1645, ptr %27, align 4, !tbaa !9
  %1646 = load i32, ptr %27, align 4, !tbaa !9
  %1647 = load i32, ptr %26, align 4, !tbaa !9
  %1648 = add i32 %1647, %1646
  store i32 %1648, ptr %26, align 4, !tbaa !9
  br label %1649

1649:                                             ; preds = %1639, %1213
  %1650 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1650, ptr %14, align 4, !tbaa !9
  br label %1651

1651:                                             ; preds = %1872, %1649
  %1652 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1652, ptr %26, align 4, !tbaa !9
  %1653 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1653, ptr %27, align 4, !tbaa !9
  %1654 = load ptr, ptr %4, align 8, !tbaa !5
  %1655 = getelementptr inbounds %struct.w2c_hermes, ptr %1654, i32 0, i32 6
  %1656 = load i32, ptr %27, align 4, !tbaa !9
  %1657 = zext i32 %1656 to i64
  %1658 = call i32 @i32_load(ptr noundef %1655, i64 noundef %1657)
  store i32 %1658, ptr %27, align 4, !tbaa !9
  %1659 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %1659, ptr %8, align 4, !tbaa !9
  %1660 = load ptr, ptr %4, align 8, !tbaa !5
  %1661 = getelementptr inbounds %struct.w2c_hermes, ptr %1660, i32 0, i32 6
  %1662 = load i32, ptr %26, align 4, !tbaa !9
  %1663 = zext i32 %1662 to i64
  %1664 = add i64 %1663, 72
  %1665 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1661, i64 noundef %1664, i32 noundef %1665)
  %1666 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1666, ptr %26, align 4, !tbaa !9
  %1667 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1667, ptr %27, align 4, !tbaa !9
  %1668 = load ptr, ptr %4, align 8, !tbaa !5
  %1669 = getelementptr inbounds %struct.w2c_hermes, ptr %1668, i32 0, i32 6
  %1670 = load i32, ptr %27, align 4, !tbaa !9
  %1671 = zext i32 %1670 to i64
  %1672 = add i64 %1671, 36
  %1673 = call i32 @i32_load(ptr noundef %1669, i64 noundef %1672)
  store i32 %1673, ptr %27, align 4, !tbaa !9
  %1674 = load ptr, ptr %4, align 8, !tbaa !5
  %1675 = getelementptr inbounds %struct.w2c_hermes, ptr %1674, i32 0, i32 6
  %1676 = load i32, ptr %26, align 4, !tbaa !9
  %1677 = zext i32 %1676 to i64
  %1678 = add i64 %1677, 76
  %1679 = load i32, ptr %27, align 4, !tbaa !9
  call void @i32_store(ptr noundef %1675, i64 noundef %1678, i32 noundef %1679)
  %1680 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1680, ptr %26, align 4, !tbaa !9
  %1681 = load ptr, ptr %4, align 8, !tbaa !5
  %1682 = getelementptr inbounds %struct.w2c_hermes, ptr %1681, i32 0, i32 6
  %1683 = load i32, ptr %26, align 4, !tbaa !9
  %1684 = zext i32 %1683 to i64
  %1685 = add i64 %1684, 44
  %1686 = call i32 @i32_load(ptr noundef %1682, i64 noundef %1685)
  store i32 %1686, ptr %26, align 4, !tbaa !9
  %1687 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1687, ptr %12, align 4, !tbaa !9
  %1688 = load i32, ptr %26, align 4, !tbaa !9
  %1689 = icmp ne i32 %1688, 0
  %1690 = xor i1 %1689, true
  %1691 = zext i1 %1690 to i32
  store i32 %1691, ptr %26, align 4, !tbaa !9
  %1692 = load i32, ptr %26, align 4, !tbaa !9
  %1693 = icmp ne i32 %1692, 0
  br i1 %1693, label %1694, label %1695

1694:                                             ; preds = %1651
  br label %1859

1695:                                             ; preds = %1651
  %1696 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1696, ptr %26, align 4, !tbaa !9
  %1697 = load ptr, ptr %4, align 8, !tbaa !5
  %1698 = getelementptr inbounds %struct.w2c_hermes, ptr %1697, i32 0, i32 6
  %1699 = load i32, ptr %26, align 4, !tbaa !9
  %1700 = zext i32 %1699 to i64
  %1701 = add i64 %1700, 40
  %1702 = call i32 @i32_load(ptr noundef %1698, i64 noundef %1701)
  store i32 %1702, ptr %26, align 4, !tbaa !9
  %1703 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1703, ptr %8, align 4, !tbaa !9
  %1704 = load ptr, ptr %4, align 8, !tbaa !5
  %1705 = getelementptr inbounds %struct.w2c_hermes, ptr %1704, i32 0, i32 6
  %1706 = load i32, ptr %26, align 4, !tbaa !9
  %1707 = zext i32 %1706 to i64
  %1708 = add i64 %1707, 4
  %1709 = call i32 @i32_load(ptr noundef %1705, i64 noundef %1708)
  store i32 %1709, ptr %26, align 4, !tbaa !9
  %1710 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1710, ptr %15, align 4, !tbaa !9
  %1711 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1711, ptr %26, align 4, !tbaa !9
  store i32 68, ptr %27, align 4, !tbaa !9
  %1712 = load i32, ptr %27, align 4, !tbaa !9
  %1713 = load i32, ptr %26, align 4, !tbaa !9
  %1714 = add i32 %1713, %1712
  store i32 %1714, ptr %26, align 4, !tbaa !9
  %1715 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1715, ptr %27, align 4, !tbaa !9
  %1716 = load ptr, ptr %4, align 8, !tbaa !5
  %1717 = getelementptr inbounds %struct.w2c_hermes, ptr %1716, i32 0, i32 6
  %1718 = load i32, ptr %27, align 4, !tbaa !9
  %1719 = zext i32 %1718 to i64
  %1720 = call i32 @i32_load(ptr noundef %1717, i64 noundef %1719)
  store i32 %1720, ptr %27, align 4, !tbaa !9
  %1721 = load ptr, ptr %4, align 8, !tbaa !5
  %1722 = load i32, ptr %26, align 4, !tbaa !9
  %1723 = load i32, ptr %27, align 4, !tbaa !9
  %1724 = call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %1721, i32 noundef %1722, i32 noundef %1723)
  store i32 %1724, ptr %26, align 4, !tbaa !9
  %1725 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1725, ptr %10, align 4, !tbaa !9
  %1726 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1726, ptr %26, align 4, !tbaa !9
  %1727 = load ptr, ptr %4, align 8, !tbaa !5
  %1728 = getelementptr inbounds %struct.w2c_hermes, ptr %1727, i32 0, i32 6
  %1729 = load i32, ptr %26, align 4, !tbaa !9
  %1730 = zext i32 %1729 to i64
  %1731 = add i64 %1730, 16
  %1732 = call i32 @i32_load(ptr noundef %1728, i64 noundef %1731)
  store i32 %1732, ptr %26, align 4, !tbaa !9
  %1733 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1733, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %1734 = load i32, ptr %28, align 4, !tbaa !9
  %1735 = load i32, ptr %27, align 4, !tbaa !9
  %1736 = add i32 %1735, %1734
  store i32 %1736, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %28, align 4, !tbaa !9
  %1737 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1737, ptr %29, align 4, !tbaa !9
  %1738 = load i32, ptr %29, align 4, !tbaa !9
  %1739 = icmp ne i32 %1738, 0
  br i1 %1739, label %1740, label %1742

1740:                                             ; preds = %1695
  %1741 = load i32, ptr %27, align 4, !tbaa !9
  br label %1744

1742:                                             ; preds = %1695
  %1743 = load i32, ptr %28, align 4, !tbaa !9
  br label %1744

1744:                                             ; preds = %1742, %1740
  %1745 = phi i32 [ %1741, %1740 ], [ %1743, %1742 ]
  store i32 %1745, ptr %27, align 4, !tbaa !9
  %1746 = load i32, ptr %27, align 4, !tbaa !9
  store i32 %1746, ptr %20, align 4, !tbaa !9
  %1747 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1747, ptr %28, align 4, !tbaa !9
  %1748 = load ptr, ptr %4, align 8, !tbaa !5
  %1749 = load i32, ptr %26, align 4, !tbaa !9
  %1750 = load i32, ptr %27, align 4, !tbaa !9
  %1751 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %1748, i32 noundef %1749, i32 noundef %1750, i32 noundef %1751)
  %1752 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1752, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1753 = load i32, ptr %27, align 4, !tbaa !9
  %1754 = load i32, ptr %26, align 4, !tbaa !9
  %1755 = and i32 %1754, %1753
  store i32 %1755, ptr %26, align 4, !tbaa !9
  %1756 = load i32, ptr %26, align 4, !tbaa !9
  %1757 = icmp ne i32 %1756, 0
  br i1 %1757, label %1758, label %1770

1758:                                             ; preds = %1744
  %1759 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1759, ptr %26, align 4, !tbaa !9
  %1760 = load i32, ptr %20, align 4, !tbaa !9
  store i32 %1760, ptr %27, align 4, !tbaa !9
  %1761 = load ptr, ptr %4, align 8, !tbaa !5
  %1762 = load i32, ptr %26, align 4, !tbaa !9
  %1763 = load i32, ptr %27, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3AreplaceAllUsesWith0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %1761, i32 noundef %1762, i32 noundef %1763)
  %1764 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1764, ptr %26, align 4, !tbaa !9
  %1765 = load i32, ptr %16, align 4, !tbaa !9
  store i32 %1765, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %28, align 4, !tbaa !9
  %1766 = load ptr, ptr %4, align 8, !tbaa !5
  %1767 = load i32, ptr %26, align 4, !tbaa !9
  %1768 = load i32, ptr %27, align 4, !tbaa !9
  %1769 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %1766, i32 noundef %1767, i32 noundef %1768, i32 noundef %1769)
  br label %1770

1770:                                             ; preds = %1758, %1744
  store i32 0, ptr %26, align 4, !tbaa !9
  %1771 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1771, ptr %6, align 4, !tbaa !9
  %1772 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1772, ptr %26, align 4, !tbaa !9
  store i32 1, ptr %27, align 4, !tbaa !9
  %1773 = load i32, ptr %26, align 4, !tbaa !9
  %1774 = load i32, ptr %27, align 4, !tbaa !9
  %1775 = icmp eq i32 %1773, %1774
  %1776 = zext i1 %1775 to i32
  store i32 %1776, ptr %26, align 4, !tbaa !9
  %1777 = load i32, ptr %26, align 4, !tbaa !9
  %1778 = icmp ne i32 %1777, 0
  br i1 %1778, label %1779, label %1780

1779:                                             ; preds = %1770
  br label %1859

1780:                                             ; preds = %1770
  %1781 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1781, ptr %26, align 4, !tbaa !9
  %1782 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1782, ptr %27, align 4, !tbaa !9
  store i32 3, ptr %28, align 4, !tbaa !9
  %1783 = load i32, ptr %28, align 4, !tbaa !9
  %1784 = and i32 %1783, 31
  %1785 = load i32, ptr %27, align 4, !tbaa !9
  %1786 = shl i32 %1785, %1784
  store i32 %1786, ptr %27, align 4, !tbaa !9
  %1787 = load i32, ptr %27, align 4, !tbaa !9
  %1788 = load i32, ptr %26, align 4, !tbaa !9
  %1789 = add i32 %1788, %1787
  store i32 %1789, ptr %26, align 4, !tbaa !9
  %1790 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1790, ptr %12, align 4, !tbaa !9
  %1791 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1791, ptr %26, align 4, !tbaa !9
  store i32 8, ptr %27, align 4, !tbaa !9
  %1792 = load i32, ptr %27, align 4, !tbaa !9
  %1793 = load i32, ptr %26, align 4, !tbaa !9
  %1794 = add i32 %1793, %1792
  store i32 %1794, ptr %26, align 4, !tbaa !9
  %1795 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1795, ptr %8, align 4, !tbaa !9
  br label %1796

1796:                                             ; preds = %1857, %1780
  %1797 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1797, ptr %26, align 4, !tbaa !9
  %1798 = load ptr, ptr %4, align 8, !tbaa !5
  %1799 = getelementptr inbounds %struct.w2c_hermes, ptr %1798, i32 0, i32 6
  %1800 = load i32, ptr %26, align 4, !tbaa !9
  %1801 = zext i32 %1800 to i64
  %1802 = add i64 %1801, 4
  %1803 = call i32 @i32_load(ptr noundef %1799, i64 noundef %1802)
  store i32 %1803, ptr %26, align 4, !tbaa !9
  %1804 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1804, ptr %15, align 4, !tbaa !9
  %1805 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1805, ptr %26, align 4, !tbaa !9
  store i32 68, ptr %27, align 4, !tbaa !9
  %1806 = load i32, ptr %27, align 4, !tbaa !9
  %1807 = load i32, ptr %26, align 4, !tbaa !9
  %1808 = add i32 %1807, %1806
  store i32 %1808, ptr %26, align 4, !tbaa !9
  %1809 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1809, ptr %27, align 4, !tbaa !9
  %1810 = load ptr, ptr %4, align 8, !tbaa !5
  %1811 = getelementptr inbounds %struct.w2c_hermes, ptr %1810, i32 0, i32 6
  %1812 = load i32, ptr %27, align 4, !tbaa !9
  %1813 = zext i32 %1812 to i64
  %1814 = call i32 @i32_load(ptr noundef %1811, i64 noundef %1813)
  store i32 %1814, ptr %27, align 4, !tbaa !9
  %1815 = load ptr, ptr %4, align 8, !tbaa !5
  %1816 = load i32, ptr %26, align 4, !tbaa !9
  %1817 = load i32, ptr %27, align 4, !tbaa !9
  %1818 = call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %1815, i32 noundef %1816, i32 noundef %1817)
  store i32 %1818, ptr %26, align 4, !tbaa !9
  %1819 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1819, ptr %10, align 4, !tbaa !9
  %1820 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1820, ptr %26, align 4, !tbaa !9
  %1821 = load ptr, ptr %4, align 8, !tbaa !5
  %1822 = getelementptr inbounds %struct.w2c_hermes, ptr %1821, i32 0, i32 6
  %1823 = load i32, ptr %26, align 4, !tbaa !9
  %1824 = zext i32 %1823 to i64
  %1825 = add i64 %1824, 16
  %1826 = call i32 @i32_load(ptr noundef %1822, i64 noundef %1825)
  store i32 %1826, ptr %26, align 4, !tbaa !9
  %1827 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1827, ptr %27, align 4, !tbaa !9
  store i32 8, ptr %28, align 4, !tbaa !9
  %1828 = load i32, ptr %28, align 4, !tbaa !9
  %1829 = load i32, ptr %27, align 4, !tbaa !9
  %1830 = add i32 %1829, %1828
  store i32 %1830, ptr %27, align 4, !tbaa !9
  store i32 0, ptr %28, align 4, !tbaa !9
  %1831 = load i32, ptr %10, align 4, !tbaa !9
  store i32 %1831, ptr %29, align 4, !tbaa !9
  %1832 = load i32, ptr %29, align 4, !tbaa !9
  %1833 = icmp ne i32 %1832, 0
  br i1 %1833, label %1834, label %1836

1834:                                             ; preds = %1796
  %1835 = load i32, ptr %27, align 4, !tbaa !9
  br label %1838

1836:                                             ; preds = %1796
  %1837 = load i32, ptr %28, align 4, !tbaa !9
  br label %1838

1838:                                             ; preds = %1836, %1834
  %1839 = phi i32 [ %1835, %1834 ], [ %1837, %1836 ]
  store i32 %1839, ptr %27, align 4, !tbaa !9
  %1840 = load i32, ptr %15, align 4, !tbaa !9
  store i32 %1840, ptr %28, align 4, !tbaa !9
  %1841 = load ptr, ptr %4, align 8, !tbaa !5
  %1842 = load i32, ptr %26, align 4, !tbaa !9
  %1843 = load i32, ptr %27, align 4, !tbaa !9
  %1844 = load i32, ptr %28, align 4, !tbaa !9
  call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %1841, i32 noundef %1842, i32 noundef %1843, i32 noundef %1844)
  %1845 = load i32, ptr %8, align 4, !tbaa !9
  store i32 %1845, ptr %26, align 4, !tbaa !9
  store i32 8, ptr %27, align 4, !tbaa !9
  %1846 = load i32, ptr %27, align 4, !tbaa !9
  %1847 = load i32, ptr %26, align 4, !tbaa !9
  %1848 = add i32 %1847, %1846
  store i32 %1848, ptr %26, align 4, !tbaa !9
  %1849 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1849, ptr %8, align 4, !tbaa !9
  %1850 = load i32, ptr %12, align 4, !tbaa !9
  store i32 %1850, ptr %27, align 4, !tbaa !9
  %1851 = load i32, ptr %26, align 4, !tbaa !9
  %1852 = load i32, ptr %27, align 4, !tbaa !9
  %1853 = icmp ne i32 %1851, %1852
  %1854 = zext i1 %1853 to i32
  store i32 %1854, ptr %26, align 4, !tbaa !9
  %1855 = load i32, ptr %26, align 4, !tbaa !9
  %1856 = icmp ne i32 %1855, 0
  br i1 %1856, label %1857, label %1858

1857:                                             ; preds = %1838
  br label %1796

1858:                                             ; preds = %1838
  br label %1859

1859:                                             ; preds = %1858, %1779, %1694
  %1860 = load i32, ptr %9, align 4, !tbaa !9
  store i32 %1860, ptr %26, align 4, !tbaa !9
  store i32 4, ptr %27, align 4, !tbaa !9
  %1861 = load i32, ptr %27, align 4, !tbaa !9
  %1862 = load i32, ptr %26, align 4, !tbaa !9
  %1863 = add i32 %1862, %1861
  store i32 %1863, ptr %26, align 4, !tbaa !9
  %1864 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1864, ptr %9, align 4, !tbaa !9
  %1865 = load i32, ptr %14, align 4, !tbaa !9
  store i32 %1865, ptr %27, align 4, !tbaa !9
  %1866 = load i32, ptr %26, align 4, !tbaa !9
  %1867 = load i32, ptr %27, align 4, !tbaa !9
  %1868 = icmp ne i32 %1866, %1867
  %1869 = zext i1 %1868 to i32
  store i32 %1869, ptr %26, align 4, !tbaa !9
  %1870 = load i32, ptr %26, align 4, !tbaa !9
  %1871 = icmp ne i32 %1870, 0
  br i1 %1871, label %1872, label %1873

1872:                                             ; preds = %1859
  br label %1651

1873:                                             ; preds = %1859
  %1874 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1874, ptr %26, align 4, !tbaa !9
  %1875 = load ptr, ptr %4, align 8, !tbaa !5
  %1876 = getelementptr inbounds %struct.w2c_hermes, ptr %1875, i32 0, i32 6
  %1877 = load i32, ptr %26, align 4, !tbaa !9
  %1878 = zext i32 %1877 to i64
  %1879 = add i64 %1878, 12
  %1880 = call i32 @i32_load(ptr noundef %1876, i64 noundef %1879)
  store i32 %1880, ptr %26, align 4, !tbaa !9
  br label %1881

1881:                                             ; preds = %1873, %1638
  %1882 = load i32, ptr %26, align 4, !tbaa !9
  store i32 %1882, ptr %6, align 4, !tbaa !9
  %1883 = load i32, ptr %25, align 4, !tbaa !9
  %1884 = load i32, ptr %26, align 4, !tbaa !9
  %1885 = icmp eq i32 %1883, %1884
  %1886 = zext i1 %1885 to i32
  store i32 %1886, ptr %25, align 4, !tbaa !9
  %1887 = load i32, ptr %25, align 4, !tbaa !9
  %1888 = icmp ne i32 %1887, 0
  br i1 %1888, label %1889, label %1890

1889:                                             ; preds = %1881
  br label %1894

1890:                                             ; preds = %1881
  %1891 = load i32, ptr %6, align 4, !tbaa !9
  store i32 %1891, ptr %25, align 4, !tbaa !9
  %1892 = load ptr, ptr %4, align 8, !tbaa !5
  %1893 = load i32, ptr %25, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1892, i32 noundef %1893)
  br label %1894

1894:                                             ; preds = %1890, %1889, %1177, %390
  %1895 = load i32, ptr %11, align 4, !tbaa !9
  store i32 %1895, ptr %25, align 4, !tbaa !9
  %1896 = load ptr, ptr %4, align 8, !tbaa !5
  %1897 = getelementptr inbounds %struct.w2c_hermes, ptr %1896, i32 0, i32 6
  %1898 = load i32, ptr %25, align 4, !tbaa !9
  %1899 = zext i32 %1898 to i64
  %1900 = add i64 %1899, 4
  %1901 = call i32 @i32_load(ptr noundef %1897, i64 noundef %1900)
  store i32 %1901, ptr %25, align 4, !tbaa !9
  %1902 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1902, ptr %11, align 4, !tbaa !9
  %1903 = load i32, ptr %22, align 4, !tbaa !9
  store i32 %1903, ptr %26, align 4, !tbaa !9
  %1904 = load i32, ptr %25, align 4, !tbaa !9
  %1905 = load i32, ptr %26, align 4, !tbaa !9
  %1906 = icmp ne i32 %1904, %1905
  %1907 = zext i1 %1906 to i32
  store i32 %1907, ptr %25, align 4, !tbaa !9
  %1908 = load i32, ptr %25, align 4, !tbaa !9
  %1909 = icmp ne i32 %1908, 0
  br i1 %1909, label %1910, label %1911

1910:                                             ; preds = %1894
  br label %367

1911:                                             ; preds = %1894
  br label %1912

1912:                                             ; preds = %1911, %346
  %1913 = load i32, ptr %13, align 4, !tbaa !9
  store i32 %1913, ptr %25, align 4, !tbaa !9
  %1914 = load ptr, ptr %4, align 8, !tbaa !5
  %1915 = getelementptr inbounds %struct.w2c_hermes, ptr %1914, i32 0, i32 6
  %1916 = load i32, ptr %25, align 4, !tbaa !9
  %1917 = zext i32 %1916 to i64
  %1918 = add i64 %1917, 4
  %1919 = call i32 @i32_load(ptr noundef %1915, i64 noundef %1918)
  store i32 %1919, ptr %25, align 4, !tbaa !9
  %1920 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1920, ptr %13, align 4, !tbaa !9
  %1921 = load i32, ptr %17, align 4, !tbaa !9
  store i32 %1921, ptr %26, align 4, !tbaa !9
  %1922 = load i32, ptr %25, align 4, !tbaa !9
  %1923 = load i32, ptr %26, align 4, !tbaa !9
  %1924 = icmp ne i32 %1922, %1923
  %1925 = zext i1 %1924 to i32
  store i32 %1925, ptr %25, align 4, !tbaa !9
  %1926 = load i32, ptr %25, align 4, !tbaa !9
  %1927 = icmp ne i32 %1926, 0
  br i1 %1927, label %1928, label %1929

1928:                                             ; preds = %1912
  br label %346

1929:                                             ; preds = %1912
  %1930 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1930, ptr %25, align 4, !tbaa !9
  %1931 = load ptr, ptr %4, align 8, !tbaa !5
  %1932 = getelementptr inbounds %struct.w2c_hermes, ptr %1931, i32 0, i32 6
  %1933 = load i32, ptr %25, align 4, !tbaa !9
  %1934 = zext i32 %1933 to i64
  %1935 = add i64 %1934, 40
  %1936 = call i32 @i32_load(ptr noundef %1932, i64 noundef %1935)
  store i32 %1936, ptr %25, align 4, !tbaa !9
  %1937 = load i32, ptr %25, align 4, !tbaa !9
  store i32 %1937, ptr %5, align 4, !tbaa !9
  %1938 = load i32, ptr %18, align 4, !tbaa !9
  store i32 %1938, ptr %26, align 4, !tbaa !9
  %1939 = load i32, ptr %25, align 4, !tbaa !9
  %1940 = load i32, ptr %26, align 4, !tbaa !9
  %1941 = icmp eq i32 %1939, %1940
  %1942 = zext i1 %1941 to i32
  store i32 %1942, ptr %25, align 4, !tbaa !9
  %1943 = load i32, ptr %25, align 4, !tbaa !9
  %1944 = icmp ne i32 %1943, 0
  br i1 %1944, label %1945, label %1946

1945:                                             ; preds = %1929
  br label %1950

1946:                                             ; preds = %1929
  %1947 = load i32, ptr %5, align 4, !tbaa !9
  store i32 %1947, ptr %25, align 4, !tbaa !9
  %1948 = load ptr, ptr %4, align 8, !tbaa !5
  %1949 = load i32, ptr %25, align 4, !tbaa !9
  call void @w2c_hermes_dlfree(ptr noundef %1948, i32 noundef %1949)
  br label %1950

1950:                                             ; preds = %1946, %1945, %339, %130
  %1951 = load i32, ptr %7, align 4, !tbaa !9
  store i32 %1951, ptr %25, align 4, !tbaa !9
  store i32 96, ptr %26, align 4, !tbaa !9
  %1952 = load i32, ptr %26, align 4, !tbaa !9
  %1953 = load i32, ptr %25, align 4, !tbaa !9
  %1954 = add i32 %1953, %1952
  store i32 %1954, ptr %25, align 4, !tbaa !9
  %1955 = load i32, ptr %25, align 4, !tbaa !9
  %1956 = load ptr, ptr %4, align 8, !tbaa !5
  %1957 = getelementptr inbounds %struct.w2c_hermes, ptr %1956, i32 0, i32 3
  store i32 %1955, ptr %1957, align 8, !tbaa !11
  %1958 = load i32, ptr %21, align 4, !tbaa !9
  store i32 %1958, ptr %25, align 4, !tbaa !9
  store i32 255, ptr %26, align 4, !tbaa !9
  %1959 = load i32, ptr %25, align 4, !tbaa !9
  %1960 = load i32, ptr %26, align 4, !tbaa !9
  %1961 = icmp ugt i32 %1959, %1960
  %1962 = zext i1 %1961 to i32
  store i32 %1962, ptr %25, align 4, !tbaa !9
  %1963 = load i32, ptr %25, align 4, !tbaa !9
  call void @llvm.lifetime.end.p0(i64 8, ptr %30) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %29) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %20) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %19) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %18) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %17) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %16) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %15) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %8) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %7) #6
  ret i32 %1963
}

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

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

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

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


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

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

@w2c_hermes_t5 = external local_unnamed_addr constant ptr, align 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.critedge:                                        ; preds = %20, %3, %26
  tail call void @wasm_rt_trap(i32 noundef 6) #4
  unreachable

30:                                               ; preds = %26
  %31 = load ptr, ptr %16, align 8, !tbaa !17
  %32 = getelementptr inbounds %struct.wasm_rt_funcref_t, ptr %31, i64 %22
  %33 = getelementptr inbounds i8, ptr %32, i64 8
  %34 = load ptr, ptr %33, align 8, !tbaa !18
  %35 = getelementptr inbounds i8, ptr %32, i64 16
  %36 = load ptr, ptr %35, align 8, !tbaa !23
  %37 = tail call i32 %34(ptr noundef %36, i32 noundef %10) #5
  %38 = icmp ult i32 %37, 256
  br i1 %38, label %363, label %39

39:                                               ; preds = %30
  %40 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %41 = zext i32 %40 to i64
  %42 = add nuw nsw i64 %41, 1136
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %42, i32 noundef 6)
  %43 = add i32 %2, 48
  %44 = zext i32 %2 to i64
  %45 = add nuw nsw i64 %44, 52
  %46 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %45)
  %.not954 = icmp eq i32 %43, %46
  br i1 %.not954, label %67, label %.preheader997

.preheader997:                                    ; preds = %39, %.loopexit996
  %.0919 = phi i32 [ %64, %.loopexit996 ], [ %46, %39 ]
  %47 = zext i32 %.0919 to i64
  %48 = add nuw nsw i64 %47, 40
  %49 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %48)
  %50 = add i32 %.0919, 36
  %.not955 = icmp eq i32 %49, %50
  br i1 %.not955, label %.loopexit996, label %.preheader995

.preheader995:                                    ; preds = %.preheader997, %59
  %.0922 = phi i32 [ %62, %59 ], [ %49, %.preheader997 ]
  %51 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %52 = add i32 %.0922, 8
  %53 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %51, i32 noundef %52)
  %.not956 = icmp eq i32 %53, 0
  br i1 %.not956, label %59, label %54

54:                                               ; preds = %.preheader995
  %55 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %56 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %55, i32 noundef %52)
  %57 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %58 = add i32 %56, 6
  tail call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %0, i32 noundef %57, i32 noundef %52, i32 noundef %58)
  br label %59

59:                                               ; preds = %54, %.preheader995
  %60 = zext i32 %.0922 to i64
  %61 = add nuw nsw i64 %60, 4
  %62 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %61)
  %.not957 = icmp eq i32 %62, %50
  br i1 %.not957, label %.loopexit996, label %.preheader995

.loopexit996:                                     ; preds = %59, %.preheader997
  %63 = add nuw nsw i64 %47, 4
  %64 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %63)
  %.not958 = icmp eq i32 %64, %43
  br i1 %.not958, label %65, label %.preheader997

65:                                               ; preds = %.loopexit996
  %66 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %45)
  br label %67

67:                                               ; preds = %65, %39
  %.0914 = phi i32 [ %66, %65 ], [ %43, %39 ]
  %68 = add nuw nsw i64 %44, 36
  %69 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %68)
  %70 = zext i32 %6 to i64
  %71 = add nuw nsw i64 %70, 80
  tail call void @i64_store(ptr noundef nonnull %7, i64 noundef %71, i64 noundef 0)
  %72 = add nuw nsw i64 %70, 72
  tail call void @i64_store(ptr noundef nonnull %7, i64 noundef %72, i64 noundef 0)
  %73 = add nuw nsw i64 %70, 68
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %73, i32 noundef %69)
  %74 = add nuw nsw i64 %70, 44
  tail call void @i64_store(ptr noundef nonnull %7, i64 noundef %74, i64 noundef 8589934592)
  %75 = add i32 %5, -44
  %76 = add nuw nsw i64 %70, 40
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %76, i32 noundef %75)
  %77 = icmp eq i32 %.0914, %43
  br i1 %77, label %363, label %78

78:                                               ; preds = %67
  %79 = add i32 %5, -72
  %80 = add nuw nsw i64 %70, 84
  %81 = add nuw nsw i64 %70, 48
  %82 = add i32 %5, -56
  %83 = add i32 %5, -28
  %84 = zext i32 %83 to i64
  %85 = add nuw nsw i64 %84, 4
  %86 = add nuw nsw i64 %84, 8
  %87 = add nuw nsw i64 %70, 16
  %88 = add nuw nsw i64 %70, 12
  %89 = add i32 %5, -8
  %90 = add nuw nsw i64 %70, 92
  %91 = add nuw nsw i64 %70, 88
  %92 = add nuw nsw i64 %70, 20
  %93 = add i32 %5, -84
  %94 = add nuw nsw i64 %70, 24
  %95 = add nuw nsw i64 %70, 76
  br label %96

96:                                               ; preds = %.loopexit994, %78
  %.1915 = phi i32 [ %.0914, %78 ], [ %358, %.loopexit994 ]
  %97 = zext i32 %.1915 to i64
  %98 = add nuw nsw i64 %97, 40
  %99 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %98)
  %100 = add i32 %.1915, 36
  %.not959 = icmp eq i32 %99, %100
  br i1 %.not959, label %.loopexit994, label %.preheader993

.preheader993:                                    ; preds = %96, %354
  %.0916 = phi i32 [ %356, %354 ], [ %99, %96 ]
  %101 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %102 = add i32 %.0916, 8
  %103 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %101, i32 noundef %102)
  %.not960 = icmp eq i32 %103, 0
  br i1 %.not960, label %.preheader993._crit_edge, label %104

.preheader993._crit_edge:                         ; preds = %.preheader993
  %.pre = zext i32 %.0916 to i64
  br label %354

104:                                              ; preds = %.preheader993
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %74, i32 noundef 0)
  %105 = zext i32 %.0916 to i64
  %106 = add nuw nsw i64 %105, 72
  %107 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %106)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %71, i32 noundef %107)
  %108 = add nuw nsw i64 %105, 68
  %109 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %108)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %80, i32 noundef %109)
  %110 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %111 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %110, i32 noundef %102)
  %112 = add nuw nsw i64 %105, 8
  %113 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %112)
  %114 = add i32 %113, 181
  %115 = and i32 %114, 255
  %116 = icmp ult i32 %115, 15
  br i1 %116, label %137, label %117

117:                                              ; preds = %104
  %118 = add nuw nsw i64 %105, 10
  %119 = tail call i32 @i32_load16_u(ptr noundef nonnull %7, i64 noundef %118)
  %.not961 = icmp eq i32 %119, 0
  br i1 %.not961, label %137, label %120

120:                                              ; preds = %117
  switch i32 %113, label %121 [
    i32 22, label %137
    i32 23, label %137
    i32 60, label %137
    i32 52, label %137
    i32 33, label %137
    i32 31, label %137
  ]

121:                                              ; preds = %120
  %122 = icmp ult i32 %111, 256
  br i1 %122, label %137, label %123

123:                                              ; preds = %121
  %124 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  tail call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %0, i32 noundef %124, i32 noundef %102, i32 noundef 0)
  %125 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %126 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %81)
  %.not962 = icmp ult i32 %125, %126
  br i1 %.not962, label %129, label %127

127:                                              ; preds = %123
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %82, i32 noundef %75, i32 noundef 0, i32 noundef 8) #5
  %128 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  br label %129

129:                                              ; preds = %127, %123
  %.1920 = phi i32 [ %128, %127 ], [ %125, %123 ]
  %130 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %76)
  %131 = shl i32 %.1920, 3
  %132 = add i32 %130, %131
  %133 = zext i32 %132 to i64
  %134 = add nuw nsw i64 %133, 4
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %134, i32 noundef %111)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %133, i32 noundef %.0916)
  %135 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %136 = add i32 %135, 1
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %74, i32 noundef %136)
  br label %137

137:                                              ; preds = %120, %120, %120, %120, %121, %120, %120, %117, %104, %129
  %.2921 = phi i32 [ 0, %104 ], [ 0, %117 ], [ 0, %121 ], [ 1, %129 ], [ 0, %120 ], [ 0, %120 ], [ 0, %120 ], [ 0, %120 ], [ 0, %120 ], [ 0, %120 ]
  %138 = add nuw nsw i64 %105, 44
  %139 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %138)
  %140 = icmp sgt i32 %139, 0
  br i1 %140, label %.preheader991, label %.loopexit992

.preheader991:                                    ; preds = %137
  %141 = add nuw nsw i64 %105, 40
  %142 = zext i32 %102 to i64
  %143 = add nuw nsw i64 %105, 36
  %144 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %141)
  %145 = zext i32 %144 to i64
  %146 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %145)
  %147 = zext i32 %146 to i64
  %148 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %147)
  %149 = add i32 %148, 147
  %150 = and i32 %149, 255
  %151 = icmp ult i32 %150, 149
  br i1 %151, label %.thread, label %152

152:                                              ; preds = %.preheader991
  %153 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %154 = add i32 %146, -8
  %155 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %153, i32 noundef %146)
  %.not963.peel = icmp eq i32 %155, 0
  br i1 %.not963.peel, label %.thread, label %156

156:                                              ; preds = %152
  %157 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %158 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %157, i32 noundef %146)
  %159 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %142)
  switch i32 %159, label %162 [
    i32 22, label %.thread
    i32 23, label %.thread
    i32 95, label %160
    i32 94, label %160
    i32 93, label %160
    i32 92, label %160
    i32 91, label %160
    i32 50, label %.thread
    i32 33, label %.thread
    i32 31, label %.thread
  ]

160:                                              ; preds = %156, %156, %156, %156, %156
  %161 = icmp ugt i32 %158, 255
  br i1 %161, label %164, label %.thread

162:                                              ; preds = %156
  %163 = icmp ult i32 %158, 256
  br i1 %163, label %.thread, label %164

164:                                              ; preds = %162, %160
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %85, i32 noundef %.0916)
  %165 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %143)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %86, i32 noundef %165)
  %166 = tail call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %0, i32 noundef %83, i32 noundef %154) #5
  %167 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %168 = add i32 %166, 8
  %.not965.peel = icmp eq i32 %166, 0
  %169 = select i1 %.not965.peel, i32 0, i32 %168
  tail call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %0, i32 noundef %167, i32 noundef %169, i32 noundef %.2921)
  tail call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %0, i32 noundef %.0916, i32 noundef %169, i32 noundef 0)
  %170 = add nuw nsw i32 %.2921, 1
  %171 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %112)
  switch i32 %171, label %.thread [
    i32 5, label %.loopexit999
    i32 6, label %.loopexit999
    i32 100, label %172
    i32 97, label %.loopexit999
    i32 90, label %.loopexit999
    i32 10, label %.loopexit999
    i32 11, label %.loopexit999
    i32 89, label %.loopexit999
    i32 83, label %172
    i32 14, label %.loopexit999
    i32 15, label %.loopexit999
    i32 16, label %.loopexit999
    i32 17, label %.loopexit999
    i32 82, label %172
    i32 76, label %.loopexit999
    i32 75, label %.loopexit999
    i32 74, label %.loopexit999
    i32 69, label %.loopexit999
    i32 64, label %172
    i32 63, label %172
    i32 48, label %.loopexit999
    i32 45, label %.loopexit999
    i32 42, label %.loopexit999
    i32 39, label %.loopexit999
    i32 38, label %.loopexit999
    i32 30, label %172
    i32 35, label %.loopexit999
    i32 32, label %.loopexit999
  ]

172:                                              ; preds = %164, %164, %164, %164, %164, %164
  %173 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %174 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %81)
  %.not967.peel = icmp ult i32 %173, %174
  br i1 %.not967.peel, label %177, label %175

175:                                              ; preds = %172
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %82, i32 noundef %75, i32 noundef 0, i32 noundef 8) #5
  %176 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  br label %177

177:                                              ; preds = %175, %172
  %.1918.peel = phi i32 [ %176, %175 ], [ %173, %172 ]
  %178 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %76)
  %179 = shl i32 %.1918.peel, 3
  %180 = add i32 %178, %179
  %181 = zext i32 %180 to i64
  %182 = add nuw nsw i64 %181, 4
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %182, i32 noundef %158)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %181, i32 noundef %166)
  %183 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %184 = add i32 %183, 1
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %74, i32 noundef %184)
  br label %.thread

.thread:                                          ; preds = %164, %177, %162, %160, %156, %156, %156, %156, %156, %152, %.preheader991
  %.4.peel = phi i32 [ %.2921, %.preheader991 ], [ %.2921, %152 ], [ %.2921, %162 ], [ %170, %177 ], [ %.2921, %160 ], [ %.2921, %156 ], [ %.2921, %156 ], [ %.2921, %156 ], [ %.2921, %156 ], [ %.2921, %156 ], [ %170, %164 ]
  %.not968.peel = icmp eq i32 %139, 1
  br i1 %.not968.peel, label %.loopexit992, label %.peel.next

.peel.next:                                       ; preds = %.thread, %233
  %.1923 = phi i32 [ %234, %233 ], [ 1, %.thread ]
  %.3 = phi i32 [ %.4, %233 ], [ %.4.peel, %.thread ]
  %185 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %141)
  %186 = shl i32 %.1923, 3
  %187 = add i32 %185, %186
  %188 = zext i32 %187 to i64
  %189 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %188)
  %190 = zext i32 %189 to i64
  %191 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %190)
  %192 = add i32 %191, 147
  %193 = and i32 %192, 255
  %194 = icmp ult i32 %193, 149
  br i1 %194, label %233, label %195

195:                                              ; preds = %.peel.next
  %196 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %197 = add i32 %189, -8
  %198 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AisAllocated0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %196, i32 noundef %189)
  %.not963 = icmp eq i32 %198, 0
  br i1 %.not963, label %233, label %199

199:                                              ; preds = %195
  %200 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %201 = tail call i32 @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AgetRegister0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %200, i32 noundef %189)
  %202 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %142)
  switch i32 %202, label %203 [
    i32 22, label %233
    i32 23, label %233
    i32 95, label %233
    i32 94, label %233
    i32 93, label %233
    i32 92, label %233
    i32 91, label %233
    i32 50, label %233
    i32 33, label %233
    i32 31, label %233
  ]

203:                                              ; preds = %199
  %204 = icmp ult i32 %201, 256
  br i1 %204, label %233, label %205

205:                                              ; preds = %203
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %85, i32 noundef %.0916)
  %206 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %143)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %86, i32 noundef %206)
  %207 = tail call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %0, i32 noundef %83, i32 noundef %197) #5
  %208 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %209 = add i32 %207, 8
  %.not965 = icmp eq i32 %207, 0
  %210 = select i1 %.not965, i32 0, i32 %209
  tail call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %0, i32 noundef %208, i32 noundef %210, i32 noundef %.3)
  tail call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %0, i32 noundef %.0916, i32 noundef %210, i32 noundef %.1923)
  %211 = add i32 %.3, 1
  %212 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %112)
  switch i32 %212, label %215 [
    i32 5, label %.loopexit999
    i32 6, label %.loopexit999
    i32 100, label %214
    i32 97, label %.loopexit999
    i32 90, label %.loopexit999
    i32 10, label %.loopexit999
    i32 11, label %.loopexit999
    i32 89, label %.loopexit999
    i32 83, label %213
    i32 14, label %.loopexit999
    i32 15, label %.loopexit999
    i32 16, label %.loopexit999
    i32 17, label %.loopexit999
    i32 82, label %216
    i32 76, label %.loopexit999
    i32 75, label %.loopexit999
    i32 74, label %.loopexit999
    i32 69, label %.loopexit999
    i32 64, label %214
    i32 63, label %214
    i32 48, label %.loopexit999
    i32 45, label %.loopexit999
    i32 42, label %.loopexit999
    i32 39, label %.loopexit999
    i32 38, label %.loopexit999
    i32 30, label %214
    i32 35, label %.loopexit999
    i32 32, label %.loopexit999
  ]

.loopexit999:                                     ; preds = %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %164, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205, %205
  tail call void @wasm_rt_trap(i32 noundef 5) #4
  unreachable

213:                                              ; preds = %205
  br label %216

214:                                              ; preds = %205, %205, %205, %205
  br label %216

215:                                              ; preds = %205
  br label %216

216:                                              ; preds = %214, %205, %215, %213
  %.0913 = phi i32 [ 31, %213 ], [ 15, %205 ], [ 1, %214 ], [ 0, %215 ]
  %217 = and i32 %.1923, 31
  %218 = shl nuw i32 1, %217
  %219 = and i32 %.0913, %218
  %.not966 = icmp eq i32 %219, 0
  br i1 %.not966, label %233, label %220

220:                                              ; preds = %216
  %221 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %222 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %81)
  %.not967 = icmp ult i32 %221, %222
  br i1 %.not967, label %225, label %223

223:                                              ; preds = %220
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %82, i32 noundef %75, i32 noundef 0, i32 noundef 8) #5
  %224 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  br label %225

225:                                              ; preds = %223, %220
  %.1918 = phi i32 [ %224, %223 ], [ %221, %220 ]
  %226 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %76)
  %227 = shl i32 %.1918, 3
  %228 = add i32 %226, %227
  %229 = zext i32 %228 to i64
  %230 = add nuw nsw i64 %229, 4
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %230, i32 noundef %201)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %229, i32 noundef %207)
  %231 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %232 = add i32 %231, 1
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %74, i32 noundef %232)
  br label %233

233:                                              ; preds = %199, %199, %199, %199, %199, %199, %199, %216, %203, %199, %199, %199, %195, %.peel.next, %225
  %.4 = phi i32 [ %.3, %.peel.next ], [ %.3, %195 ], [ %.3, %203 ], [ %211, %216 ], [ %211, %225 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ], [ %.3, %199 ]
  %234 = add nuw nsw i32 %.1923, 1
  %.not968 = icmp eq i32 %234, %139
  br i1 %.not968, label %.loopexit992, label %.peel.next, !llvm.loop !24

.loopexit992:                                     ; preds = %233, %.thread, %137
  %235 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %.not969 = icmp eq i32 %235, 0
  br i1 %.not969, label %354, label %236

236:                                              ; preds = %.loopexit992
  tail call void @i64_store(ptr noundef nonnull %7, i64 noundef %87, i64 noundef 17179869184)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %88, i32 noundef %79)
  %237 = zext i32 %102 to i64
  %238 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %237)
  %239 = add i32 %238, 181
  %240 = and i32 %239, 255
  %241 = icmp ugt i32 %240, 14
  br i1 %241, label %242, label %247

242:                                              ; preds = %236
  %243 = add nuw nsw i64 %105, 4
  %244 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %243)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %87, i32 noundef 1)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %94, i32 noundef %244)
  %245 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %88)
  %246 = add i32 %245, 4
  br label %312

247:                                              ; preds = %236
  %248 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %138)
  %249 = icmp sgt i32 %248, 0
  br i1 %249, label %.preheader989, label %.loopexit990

.preheader989:                                    ; preds = %247
  %250 = add nuw nsw i64 %105, 40
  %251 = add nuw nsw i64 %105, 36
  br label %252

252:                                              ; preds = %.preheader989, %305
  %.2 = phi i32 [ %306, %305 ], [ 0, %.preheader989 ]
  %253 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %250)
  %254 = shl i32 %.2, 3
  %255 = add i32 %253, %254
  %256 = zext i32 %255 to i64
  %257 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %256)
  %258 = zext i32 %257 to i64
  %259 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %258)
  %260 = icmp eq i32 %259, 126
  br i1 %260, label %261, label %305

261:                                              ; preds = %252
  %262 = add nuw nsw i64 %258, 36
  %263 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %262)
  %264 = tail call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateBasicBlock0x28hermes0x3A0x3AFunction0x2A0x29(ptr noundef %0, i32 noundef %83, i32 noundef %263) #5
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %86, i32 noundef %264)
  %265 = add i32 %264, 36
  %.not970 = icmp eq i32 %264, 0
  %266 = select i1 %.not970, i32 0, i32 %265
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %85, i32 noundef %266)
  %267 = add i32 %257, -8
  %268 = tail call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateBranchInst0x28hermes0x3A0x3ABasicBlock0x2A0x29(ptr noundef %0, i32 noundef %83, i32 noundef %267) #5
  %269 = add i32 %264, 8
  %270 = select i1 %.not970, i32 0, i32 %269
  tail call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %0, i32 noundef %.0916, i32 noundef %270, i32 noundef %.2)
  %271 = add nuw nsw i64 %258, 32
  %272 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %271)
  %273 = add i32 %257, 28
  %274 = icmp eq i32 %272, %273
  br i1 %274, label %.loopexit988, label %275

275:                                              ; preds = %261
  %276 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %251)
  br label %277

277:                                              ; preds = %.loopexit, %275
  %.5 = phi i32 [ %272, %275 ], [ %293, %.loopexit ]
  %.not971 = icmp eq i32 %.5, 0
  br i1 %.not971, label %.loopexit988, label %278

278:                                              ; preds = %277
  %279 = zext i32 %.5 to i64
  %280 = add nuw nsw i64 %279, 8
  %281 = tail call i32 @i32_load8_u(ptr noundef nonnull %7, i64 noundef %280)
  %.not972 = icmp eq i32 %281, 33
  br i1 %.not972, label %282, label %.loopexit988

282:                                              ; preds = %278
  %283 = add nuw nsw i64 %279, 44
  %284 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %283)
  %285 = lshr i32 %284, 1
  %.not973 = icmp ult i32 %284, 2
  br i1 %.not973, label %.loopexit, label %.preheader

.preheader:                                       ; preds = %282, %290
  %.2924 = phi i32 [ %291, %290 ], [ 0, %282 ]
  tail call void @w2c_hermes_hermes0x3A0x3APhiInst0x3A0x3AgetEntry0x28unsigned0x20int0x290x20const(ptr noundef %0, i32 noundef %89, i32 noundef %.5, i32 noundef %.2924)
  %286 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %90)
  %287 = icmp eq i32 %276, %286
  br i1 %287, label %288, label %290

288:                                              ; preds = %.preheader
  %289 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %91)
  tail call void @w2c_hermes_hermes0x3A0x3APhiInst0x3A0x3AupdateEntry0x28unsigned0x20int0x2C0x20hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ABasicBlock0x2A0x29(ptr noundef %0, i32 noundef %.5, i32 noundef %.2924, i32 noundef %289, i32 noundef %264)
  br label %290

290:                                              ; preds = %288, %.preheader
  %291 = add nuw nsw i32 %.2924, 1
  %.not974 = icmp eq i32 %291, %285
  br i1 %.not974, label %.loopexit, label %.preheader

.loopexit:                                        ; preds = %290, %282
  %292 = add nuw nsw i64 %279, 4
  %293 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %292)
  %.not975 = icmp eq i32 %293, %273
  br i1 %.not975, label %.loopexit988, label %277

.loopexit988:                                     ; preds = %.loopexit, %278, %277, %261
  %294 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %87)
  %295 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %92)
  %.not976 = icmp ult i32 %294, %295
  br i1 %.not976, label %298, label %296

296:                                              ; preds = %.loopexit988
  tail call void @w2c_hermes_llvh0x3A0x3ASmallVectorBase0x3A0x3Agrow_pod0x28void0x2A0x2C0x20unsigned0x20long0x2C0x20unsigned0x20long0x29(ptr noundef %0, i32 noundef %93, i32 noundef %79, i32 noundef 0, i32 noundef 4) #5
  %297 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %87)
  br label %298

298:                                              ; preds = %296, %.loopexit988
  %.3925 = phi i32 [ %297, %296 ], [ %294, %.loopexit988 ]
  %299 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %88)
  %300 = shl i32 %.3925, 2
  %301 = add i32 %299, %300
  %302 = zext i32 %301 to i64
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %302, i32 noundef %268)
  %303 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %87)
  %304 = add i32 %303, 1
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %87, i32 noundef %304)
  br label %305

305:                                              ; preds = %298, %252
  %306 = add nuw nsw i32 %.2, 1
  %.not977 = icmp eq i32 %306, %248
  br i1 %.not977, label %.loopexit990, label %252

.loopexit990:                                     ; preds = %305, %247
  %307 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %88)
  %308 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %87)
  %.not978 = icmp eq i32 %308, 0
  br i1 %.not978, label %351, label %309

309:                                              ; preds = %.loopexit990
  %310 = shl i32 %308, 2
  %311 = add i32 %310, %307
  br label %312

312:                                              ; preds = %309, %242
  %.6 = phi i32 [ %245, %242 ], [ %307, %309 ]
  %.0 = phi i32 [ %246, %242 ], [ %311, %309 ]
  br label %313

313:                                              ; preds = %.loopexit987, %312
  %.1928 = phi i32 [ %.2921, %312 ], [ %.2929, %.loopexit987 ]
  %.7 = phi i32 [ %.6, %312 ], [ %348, %.loopexit987 ]
  %314 = zext i32 %.7 to i64
  %315 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %314)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %72, i32 noundef %315)
  %316 = zext i32 %315 to i64
  %317 = add nuw nsw i64 %316, 36
  %318 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %317)
  tail call void @i32_store(ptr noundef nonnull %7, i64 noundef %95, i32 noundef %318)
  %319 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %74)
  %.not979 = icmp eq i32 %319, 0
  br i1 %.not979, label %.loopexit987, label %320

320:                                              ; preds = %313
  %321 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %76)
  %322 = zext i32 %321 to i64
  %323 = add nuw nsw i64 %322, 4
  %324 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %323)
  %325 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %322)
  %326 = tail call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %0, i32 noundef %83, i32 noundef %325) #5
  %327 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %328 = add i32 %326, 8
  %.not980 = icmp eq i32 %326, 0
  %329 = select i1 %.not980, i32 0, i32 %328
  tail call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %0, i32 noundef %327, i32 noundef %329, i32 noundef %324)
  %330 = and i32 %.1928, 1
  %.not981 = icmp eq i32 %330, 0
  br i1 %.not981, label %332, label %331

331:                                              ; preds = %320
  tail call void @w2c_hermes_hermes0x3A0x3AValue0x3A0x3AreplaceAllUsesWith0x28hermes0x3A0x3AValue0x2A0x29(ptr noundef %0, i32 noundef %102, i32 noundef %329)
  tail call void @w2c_hermes_hermes0x3A0x3AInstruction0x3A0x3AsetOperand0x28hermes0x3A0x3AValue0x2A0x2C0x20unsigned0x20int0x29(ptr noundef %0, i32 noundef %326, i32 noundef %102, i32 noundef 0)
  br label %332

332:                                              ; preds = %331, %320
  %333 = icmp eq i32 %319, 1
  br i1 %333, label %.loopexit987, label %334

334:                                              ; preds = %332
  %335 = shl i32 %319, 3
  %336 = add i32 %321, %335
  %337 = add i32 %321, 8
  br label %338

338:                                              ; preds = %338, %334
  %.4926 = phi i32 [ %337, %334 ], [ %347, %338 ]
  %339 = zext i32 %.4926 to i64
  %340 = add nuw nsw i64 %339, 4
  %341 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %340)
  %342 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %339)
  %343 = tail call i32 @w2c_hermes_hermes0x3A0x3AIRBuilder0x3A0x3AcreateHBCSpillMovInst0x28hermes0x3A0x3AInstruction0x2A0x29(ptr noundef %0, i32 noundef %83, i32 noundef %342) #5
  %344 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %9)
  %345 = add i32 %343, 8
  %.not982 = icmp eq i32 %343, 0
  %346 = select i1 %.not982, i32 0, i32 %345
  tail call void @w2c_hermes_hermes0x3A0x3ARegisterAllocator0x3A0x3AupdateRegister0x28hermes0x3A0x3AValue0x2A0x2C0x20hermes0x3A0x3ARegister0x29(ptr noundef %0, i32 noundef %344, i32 noundef %346, i32 noundef %341)
  %347 = add i32 %.4926, 8
  %.not983 = icmp eq i32 %347, %336
  br i1 %.not983, label %.loopexit987, label %338

.loopexit987:                                     ; preds = %338, %332, %313
  %.2929 = phi i32 [ %.1928, %313 ], [ 0, %332 ], [ 0, %338 ]
  %348 = add i32 %.7, 4
  %.not984 = icmp eq i32 %348, %.0
  br i1 %.not984, label %349, label %313

349:                                              ; preds = %.loopexit987
  %350 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %88)
  br label %351

351:                                              ; preds = %.loopexit990, %349
  %.1 = phi i32 [ %350, %349 ], [ %307, %.loopexit990 ]
  %352 = icmp eq i32 %79, %.1
  br i1 %352, label %354, label %353

353:                                              ; preds = %351
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %.1) #5
  br label %354

354:                                              ; preds = %.preheader993._crit_edge, %351, %.loopexit992, %353
  %.pre-phi = phi i64 [ %.pre, %.preheader993._crit_edge ], [ %105, %351 ], [ %105, %.loopexit992 ], [ %105, %353 ]
  %355 = add nuw nsw i64 %.pre-phi, 4
  %356 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %355)
  %.not985 = icmp eq i32 %356, %100
  br i1 %.not985, label %.loopexit994, label %.preheader993

.loopexit994:                                     ; preds = %354, %96
  %357 = add nuw nsw i64 %97, 4
  %358 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %357)
  %.not986 = icmp eq i32 %358, %43
  br i1 %.not986, label %359, label %96

359:                                              ; preds = %.loopexit994
  %360 = tail call i32 @i32_load(ptr noundef nonnull %7, i64 noundef %76)
  %361 = icmp eq i32 %360, %75
  br i1 %361, label %363, label %362

362:                                              ; preds = %359
  tail call void @w2c_hermes_dlfree(ptr noundef %0, i32 noundef %360) #5
  br label %363

363:                                              ; preds = %359, %67, %30, %362
  store i32 %5, ptr %4, align 8, !tbaa !5
  %364 = icmp ugt i32 %37, 255
  %365 = zext i1 %364 to i32
  ret i32 %365
}

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

attributes #0 = { inlinehint nounwind uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #1 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #2 = { 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 = { noreturn "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { 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}
!24 = distinct !{!24, !25}
!25 = !{!"llvm.loop.peeled.count", i32 1}


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