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

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

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

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

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

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

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden double @wasm_floor(double noundef) #4

declare void @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3ASetBufferAndMode0x28char0x2A0x2C0x20unsigned0x20long0x2C0x20llvh0x3A0x3Araw_ostream0x3A0x3ABufferKind0x29(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) #5

declare i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3A0x7Eraw_ostream0x280x290x2E1(ptr noundef, i32 noundef) #5

; Function Attrs: nounwind uwtable
declare dso_local double @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AdateFromTime0x28double0x29(ptr noundef, double noundef) #4

declare double @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AyearFromTime0x28double0x29(ptr noundef, double noundef) #5

declare double @w2c_hermes_fmod(ptr noundef, double noundef, double noundef) #5

declare i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AmonthFromTime0x28double0x29(ptr noundef, double noundef) #5

declare i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3Aoperator0x3C0x3C0x28llvh0x3A0x3Aformat_object_base0x20const0x260x29(ptr noundef, i32 noundef, i32 noundef) #5

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

107:                                              ; preds = %4
  %108 = load double, ptr %13, align 8, !tbaa !9
  store double %108, ptr %23, align 8, !tbaa !9
  %109 = load double, ptr %23, align 8, !tbaa !9
  %110 = load double, ptr %23, align 8, !tbaa !9
  %111 = fcmp une double %109, %110
  %112 = xor i1 %111, true
  %113 = xor i1 %112, true
  %114 = zext i1 %113 to i32
  %115 = sext i32 %114 to i64
  %116 = call i64 @llvm.expect.i64(i64 %115, i64 0)
  %117 = icmp ne i64 %116, 0
  br i1 %117, label %118, label %120

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

119:                                              ; No predecessors!
  br label %142

120:                                              ; preds = %107
  %121 = load double, ptr %23, align 8, !tbaa !9
  %122 = fcmp ogt double %121, 0xC1E0000000200000
  br i1 %122, label %123, label %126

123:                                              ; preds = %120
  %124 = load double, ptr %23, align 8, !tbaa !9
  %125 = fcmp olt double %124, 0x41E0000000000000
  br label %126

126:                                              ; preds = %123, %120
  %127 = phi i1 [ false, %120 ], [ %125, %123 ]
  %128 = xor i1 %127, true
  %129 = xor i1 %128, true
  %130 = xor i1 %129, true
  %131 = zext i1 %130 to i32
  %132 = sext i32 %131 to i64
  %133 = call i64 @llvm.expect.i64(i64 %132, i64 0)
  %134 = icmp ne i64 %133, 0
  br i1 %134, label %135, label %137

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

136:                                              ; No predecessors!
  br label %140

137:                                              ; preds = %126
  %138 = load double, ptr %23, align 8, !tbaa !9
  %139 = fptosi double %138 to i32
  br label %140

140:                                              ; preds = %137, %136
  %141 = phi i32 [ 0, %136 ], [ %139, %137 ]
  br label %142

142:                                              ; preds = %140, %119
  %143 = phi i32 [ 0, %119 ], [ %141, %140 ]
  store i32 %143, ptr %16, align 4, !tbaa !11
  br label %145

144:                                              ; preds = %4
  store i32 -2147483648, ptr %16, align 4, !tbaa !11
  br label %145

145:                                              ; preds = %144, %142
  %146 = load ptr, ptr %5, align 8, !tbaa !5
  %147 = getelementptr inbounds %struct.w2c_hermes, ptr %146, i32 0, i32 6
  %148 = load i32, ptr %15, align 4, !tbaa !11
  %149 = zext i32 %148 to i64
  %150 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %147, i64 noundef %149, i32 noundef %150)
  %151 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %151, ptr %15, align 4, !tbaa !11
  store i32 68, ptr %16, align 4, !tbaa !11
  %152 = load i32, ptr %16, align 4, !tbaa !11
  %153 = load i32, ptr %15, align 4, !tbaa !11
  %154 = add i32 %153, %152
  store i32 %154, ptr %15, align 4, !tbaa !11
  %155 = load i32, ptr %15, align 4, !tbaa !11
  store i32 %155, ptr %10, align 4, !tbaa !11
  %156 = load double, ptr %14, align 8, !tbaa !9
  store double %156, ptr %23, align 8, !tbaa !9
  %157 = load double, ptr %23, align 8, !tbaa !9
  %158 = call double @wasm_fabs(double noundef %157)
  store double %158, ptr %23, align 8, !tbaa !9
  store double 0x41E0000000000000, ptr %24, align 8, !tbaa !9
  %159 = load double, ptr %23, align 8, !tbaa !9
  %160 = load double, ptr %24, align 8, !tbaa !9
  %161 = fcmp olt double %159, %160
  %162 = zext i1 %161 to i32
  store i32 %162, ptr %16, align 4, !tbaa !11
  %163 = load i32, ptr %16, align 4, !tbaa !11
  %164 = icmp ne i32 %163, 0
  br i1 %164, label %165, label %202

165:                                              ; preds = %145
  %166 = load double, ptr %14, align 8, !tbaa !9
  store double %166, ptr %23, align 8, !tbaa !9
  %167 = load double, ptr %23, align 8, !tbaa !9
  %168 = load double, ptr %23, align 8, !tbaa !9
  %169 = fcmp une double %167, %168
  %170 = xor i1 %169, true
  %171 = xor i1 %170, true
  %172 = zext i1 %171 to i32
  %173 = sext i32 %172 to i64
  %174 = call i64 @llvm.expect.i64(i64 %173, i64 0)
  %175 = icmp ne i64 %174, 0
  br i1 %175, label %176, label %178

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

177:                                              ; No predecessors!
  br label %200

178:                                              ; preds = %165
  %179 = load double, ptr %23, align 8, !tbaa !9
  %180 = fcmp ogt double %179, 0xC1E0000000200000
  br i1 %180, label %181, label %184

181:                                              ; preds = %178
  %182 = load double, ptr %23, align 8, !tbaa !9
  %183 = fcmp olt double %182, 0x41E0000000000000
  br label %184

184:                                              ; preds = %181, %178
  %185 = phi i1 [ false, %178 ], [ %183, %181 ]
  %186 = xor i1 %185, true
  %187 = xor i1 %186, true
  %188 = xor i1 %187, true
  %189 = zext i1 %188 to i32
  %190 = sext i32 %189 to i64
  %191 = call i64 @llvm.expect.i64(i64 %190, i64 0)
  %192 = icmp ne i64 %191, 0
  br i1 %192, label %193, label %195

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

194:                                              ; No predecessors!
  br label %198

195:                                              ; preds = %184
  %196 = load double, ptr %23, align 8, !tbaa !9
  %197 = fptosi double %196 to i32
  br label %198

198:                                              ; preds = %195, %194
  %199 = phi i32 [ 0, %194 ], [ %197, %195 ]
  br label %200

200:                                              ; preds = %198, %177
  %201 = phi i32 [ 0, %177 ], [ %199, %198 ]
  store i32 %201, ptr %16, align 4, !tbaa !11
  br label %203

202:                                              ; preds = %145
  store i32 -2147483648, ptr %16, align 4, !tbaa !11
  br label %203

203:                                              ; preds = %202, %200
  %204 = load ptr, ptr %5, align 8, !tbaa !5
  %205 = getelementptr inbounds %struct.w2c_hermes, ptr %204, i32 0, i32 6
  %206 = load i32, ptr %15, align 4, !tbaa !11
  %207 = zext i32 %206 to i64
  %208 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %205, i64 noundef %207, i32 noundef %208)
  %209 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %209, ptr %15, align 4, !tbaa !11
  store i32 0, ptr %16, align 4, !tbaa !11
  %210 = load i32, ptr %16, align 4, !tbaa !11
  store i32 %210, ptr %10, align 4, !tbaa !11
  store i32 275520, ptr %17, align 4, !tbaa !11
  %211 = load i32, ptr %17, align 4, !tbaa !11
  %212 = load i32, ptr %16, align 4, !tbaa !11
  %213 = add i32 %212, %211
  store i32 %213, ptr %16, align 4, !tbaa !11
  %214 = load i32, ptr %11, align 4, !tbaa !11
  store i32 %214, ptr %17, align 4, !tbaa !11
  store i32 2, ptr %18, align 4, !tbaa !11
  %215 = load i32, ptr %18, align 4, !tbaa !11
  %216 = and i32 %215, 31
  %217 = load i32, ptr %17, align 4, !tbaa !11
  %218 = shl i32 %217, %216
  store i32 %218, ptr %17, align 4, !tbaa !11
  %219 = load i32, ptr %17, align 4, !tbaa !11
  %220 = load i32, ptr %16, align 4, !tbaa !11
  %221 = add i32 %220, %219
  store i32 %221, ptr %16, align 4, !tbaa !11
  %222 = load ptr, ptr %5, align 8, !tbaa !5
  %223 = getelementptr inbounds %struct.w2c_hermes, ptr %222, i32 0, i32 6
  %224 = load i32, ptr %16, align 4, !tbaa !11
  %225 = zext i32 %224 to i64
  %226 = call i32 @i32_load(ptr noundef %223, i64 noundef %225)
  store i32 %226, ptr %16, align 4, !tbaa !11
  %227 = load ptr, ptr %5, align 8, !tbaa !5
  %228 = getelementptr inbounds %struct.w2c_hermes, ptr %227, i32 0, i32 6
  %229 = load i32, ptr %15, align 4, !tbaa !11
  %230 = zext i32 %229 to i64
  %231 = add i64 %230, 72
  %232 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %228, i64 noundef %231, i32 noundef %232)
  %233 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %233, ptr %15, align 4, !tbaa !11
  %234 = load i32, ptr %10, align 4, !tbaa !11
  store i32 %234, ptr %16, align 4, !tbaa !11
  store i32 275728, ptr %17, align 4, !tbaa !11
  %235 = load i32, ptr %17, align 4, !tbaa !11
  %236 = load i32, ptr %16, align 4, !tbaa !11
  %237 = add i32 %236, %235
  store i32 %237, ptr %16, align 4, !tbaa !11
  %238 = load ptr, ptr %5, align 8, !tbaa !5
  %239 = getelementptr inbounds %struct.w2c_hermes, ptr %238, i32 0, i32 6
  %240 = load i32, ptr %15, align 4, !tbaa !11
  %241 = zext i32 %240 to i64
  %242 = add i64 %241, 56
  %243 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %239, i64 noundef %242, i32 noundef %243)
  %244 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %244, ptr %15, align 4, !tbaa !11
  %245 = load i32, ptr %10, align 4, !tbaa !11
  store i32 %245, ptr %16, align 4, !tbaa !11
  store i32 210354, ptr %17, align 4, !tbaa !11
  %246 = load i32, ptr %17, align 4, !tbaa !11
  %247 = load i32, ptr %16, align 4, !tbaa !11
  %248 = add i32 %247, %246
  store i32 %248, ptr %16, align 4, !tbaa !11
  %249 = load ptr, ptr %5, align 8, !tbaa !5
  %250 = getelementptr inbounds %struct.w2c_hermes, ptr %249, i32 0, i32 6
  %251 = load i32, ptr %15, align 4, !tbaa !11
  %252 = zext i32 %251 to i64
  %253 = add i64 %252, 60
  %254 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %250, i64 noundef %253, i32 noundef %254)
  %255 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %255, ptr %15, align 4, !tbaa !11
  %256 = load i32, ptr %10, align 4, !tbaa !11
  store i32 %256, ptr %16, align 4, !tbaa !11
  store i32 275488, ptr %17, align 4, !tbaa !11
  %257 = load i32, ptr %17, align 4, !tbaa !11
  %258 = load i32, ptr %16, align 4, !tbaa !11
  %259 = add i32 %258, %257
  store i32 %259, ptr %16, align 4, !tbaa !11
  %260 = load double, ptr %6, align 8, !tbaa !9
  store double %260, ptr %24, align 8, !tbaa !9
  store double 8.640000e+07, ptr %25, align 8, !tbaa !9
  %261 = load double, ptr %25, align 8, !tbaa !9
  %262 = load double, ptr %24, align 8, !tbaa !9
  %263 = fdiv double %262, %261
  store double %263, ptr %24, align 8, !tbaa !9
  %264 = load double, ptr %24, align 8, !tbaa !9
  %265 = call double @wasm_floor(double noundef %264)
  store double %265, ptr %24, align 8, !tbaa !9
  store double 4.000000e+00, ptr %25, align 8, !tbaa !9
  %266 = load double, ptr %25, align 8, !tbaa !9
  %267 = load double, ptr %24, align 8, !tbaa !9
  %268 = fadd double %267, %266
  store double %268, ptr %24, align 8, !tbaa !9
  store double 7.000000e+00, ptr %25, align 8, !tbaa !9
  %269 = load ptr, ptr %5, align 8, !tbaa !5
  %270 = load double, ptr %24, align 8, !tbaa !9
  %271 = load double, ptr %25, align 8, !tbaa !9
  %272 = call double @w2c_hermes_fmod(ptr noundef %269, double noundef %270, double noundef %271)
  store double %272, ptr %24, align 8, !tbaa !9
  %273 = load double, ptr %24, align 8, !tbaa !9
  store double %273, ptr %13, align 8, !tbaa !9
  store double 7.000000e+00, ptr %25, align 8, !tbaa !9
  store double -0.000000e+00, ptr %26, align 8, !tbaa !9
  %274 = load double, ptr %13, align 8, !tbaa !9
  store double %274, ptr %27, align 8, !tbaa !9
  store double 0.000000e+00, ptr %28, align 8, !tbaa !9
  %275 = load double, ptr %27, align 8, !tbaa !9
  %276 = load double, ptr %28, align 8, !tbaa !9
  %277 = fcmp olt double %275, %276
  %278 = zext i1 %277 to i32
  store i32 %278, ptr %20, align 4, !tbaa !11
  %279 = load i32, ptr %20, align 4, !tbaa !11
  %280 = icmp ne i32 %279, 0
  br i1 %280, label %281, label %283

281:                                              ; preds = %203
  %282 = load double, ptr %25, align 8, !tbaa !9
  br label %285

283:                                              ; preds = %203
  %284 = load double, ptr %26, align 8, !tbaa !9
  br label %285

285:                                              ; preds = %283, %281
  %286 = phi double [ %282, %281 ], [ %284, %283 ]
  store double %286, ptr %25, align 8, !tbaa !9
  %287 = load double, ptr %25, align 8, !tbaa !9
  %288 = load double, ptr %24, align 8, !tbaa !9
  %289 = fadd double %288, %287
  store double %289, ptr %24, align 8, !tbaa !9
  %290 = load double, ptr %24, align 8, !tbaa !9
  store double %290, ptr %13, align 8, !tbaa !9
  %291 = load double, ptr %24, align 8, !tbaa !9
  %292 = call double @wasm_fabs(double noundef %291)
  store double %292, ptr %24, align 8, !tbaa !9
  store double 0x41E0000000000000, ptr %25, align 8, !tbaa !9
  %293 = load double, ptr %24, align 8, !tbaa !9
  %294 = load double, ptr %25, align 8, !tbaa !9
  %295 = fcmp olt double %293, %294
  %296 = zext i1 %295 to i32
  store i32 %296, ptr %17, align 4, !tbaa !11
  %297 = load i32, ptr %17, align 4, !tbaa !11
  %298 = icmp ne i32 %297, 0
  br i1 %298, label %299, label %336

299:                                              ; preds = %285
  %300 = load double, ptr %13, align 8, !tbaa !9
  store double %300, ptr %24, align 8, !tbaa !9
  %301 = load double, ptr %24, align 8, !tbaa !9
  %302 = load double, ptr %24, align 8, !tbaa !9
  %303 = fcmp une double %301, %302
  %304 = xor i1 %303, true
  %305 = xor i1 %304, true
  %306 = zext i1 %305 to i32
  %307 = sext i32 %306 to i64
  %308 = call i64 @llvm.expect.i64(i64 %307, i64 0)
  %309 = icmp ne i64 %308, 0
  br i1 %309, label %310, label %312

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

311:                                              ; No predecessors!
  br label %334

312:                                              ; preds = %299
  %313 = load double, ptr %24, align 8, !tbaa !9
  %314 = fcmp ogt double %313, 0xC1E0000000200000
  br i1 %314, label %315, label %318

315:                                              ; preds = %312
  %316 = load double, ptr %24, align 8, !tbaa !9
  %317 = fcmp olt double %316, 0x41E0000000000000
  br label %318

318:                                              ; preds = %315, %312
  %319 = phi i1 [ false, %312 ], [ %317, %315 ]
  %320 = xor i1 %319, true
  %321 = xor i1 %320, true
  %322 = xor i1 %321, true
  %323 = zext i1 %322 to i32
  %324 = sext i32 %323 to i64
  %325 = call i64 @llvm.expect.i64(i64 %324, i64 0)
  %326 = icmp ne i64 %325, 0
  br i1 %326, label %327, label %329

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

328:                                              ; No predecessors!
  br label %332

329:                                              ; preds = %318
  %330 = load double, ptr %24, align 8, !tbaa !9
  %331 = fptosi double %330 to i32
  br label %332

332:                                              ; preds = %329, %328
  %333 = phi i32 [ 0, %328 ], [ %331, %329 ]
  br label %334

334:                                              ; preds = %332, %311
  %335 = phi i32 [ 0, %311 ], [ %333, %332 ]
  store i32 %335, ptr %17, align 4, !tbaa !11
  br label %337

336:                                              ; preds = %285
  store i32 -2147483648, ptr %17, align 4, !tbaa !11
  br label %337

337:                                              ; preds = %336, %334
  %338 = load i32, ptr %17, align 4, !tbaa !11
  store i32 %338, ptr %11, align 4, !tbaa !11
  store i32 2, ptr %18, align 4, !tbaa !11
  %339 = load i32, ptr %18, align 4, !tbaa !11
  %340 = and i32 %339, 31
  %341 = load i32, ptr %17, align 4, !tbaa !11
  %342 = shl i32 %341, %340
  store i32 %342, ptr %17, align 4, !tbaa !11
  %343 = load i32, ptr %17, align 4, !tbaa !11
  %344 = load i32, ptr %16, align 4, !tbaa !11
  %345 = add i32 %344, %343
  store i32 %345, ptr %16, align 4, !tbaa !11
  %346 = load ptr, ptr %5, align 8, !tbaa !5
  %347 = getelementptr inbounds %struct.w2c_hermes, ptr %346, i32 0, i32 6
  %348 = load i32, ptr %16, align 4, !tbaa !11
  %349 = zext i32 %348 to i64
  %350 = call i32 @i32_load(ptr noundef %347, i64 noundef %349)
  store i32 %350, ptr %16, align 4, !tbaa !11
  %351 = load ptr, ptr %5, align 8, !tbaa !5
  %352 = getelementptr inbounds %struct.w2c_hermes, ptr %351, i32 0, i32 6
  %353 = load i32, ptr %15, align 4, !tbaa !11
  %354 = zext i32 %353 to i64
  %355 = add i64 %354, 64
  %356 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %352, i64 noundef %355, i32 noundef %356)
  %357 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %357, ptr %15, align 4, !tbaa !11
  store i32 12, ptr %16, align 4, !tbaa !11
  %358 = load i32, ptr %16, align 4, !tbaa !11
  %359 = load i32, ptr %15, align 4, !tbaa !11
  %360 = add i32 %359, %358
  store i32 %360, ptr %15, align 4, !tbaa !11
  %361 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %361, ptr %16, align 4, !tbaa !11
  store i32 56, ptr %17, align 4, !tbaa !11
  %362 = load i32, ptr %17, align 4, !tbaa !11
  %363 = load i32, ptr %16, align 4, !tbaa !11
  %364 = add i32 %363, %362
  store i32 %364, ptr %16, align 4, !tbaa !11
  %365 = load ptr, ptr %5, align 8, !tbaa !5
  %366 = load i32, ptr %15, align 4, !tbaa !11
  %367 = load i32, ptr %16, align 4, !tbaa !11
  %368 = call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3Aoperator0x3C0x3C0x28llvh0x3A0x3Aformat_object_base0x20const0x260x29(ptr noundef %365, i32 noundef %366, i32 noundef %367)
  store i32 %368, ptr %15, align 4, !tbaa !11
  %369 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %369, ptr %15, align 4, !tbaa !11
  store i64 4294967296, ptr %21, align 8, !tbaa !19
  %370 = load ptr, ptr %5, align 8, !tbaa !5
  %371 = getelementptr inbounds %struct.w2c_hermes, ptr %370, i32 0, i32 6
  %372 = load i32, ptr %15, align 4, !tbaa !11
  %373 = zext i32 %372 to i64
  %374 = add i64 %373, 68
  %375 = load i64, ptr %21, align 8, !tbaa !19
  call void @i64_store(ptr noundef %371, i64 noundef %374, i64 noundef %375)
  %376 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %376, ptr %15, align 4, !tbaa !11
  store i64 0, ptr %21, align 8, !tbaa !19
  %377 = load ptr, ptr %5, align 8, !tbaa !5
  %378 = getelementptr inbounds %struct.w2c_hermes, ptr %377, i32 0, i32 6
  %379 = load i32, ptr %15, align 4, !tbaa !11
  %380 = zext i32 %379 to i64
  %381 = add i64 %380, 60
  %382 = load i64, ptr %21, align 8, !tbaa !19
  call void @i64_store(ptr noundef %378, i64 noundef %381, i64 noundef %382)
  %383 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %383, ptr %15, align 4, !tbaa !11
  %384 = load i32, ptr %8, align 4, !tbaa !11
  store i32 %384, ptr %16, align 4, !tbaa !11
  %385 = load ptr, ptr %5, align 8, !tbaa !5
  %386 = getelementptr inbounds %struct.w2c_hermes, ptr %385, i32 0, i32 6
  %387 = load i32, ptr %15, align 4, !tbaa !11
  %388 = zext i32 %387 to i64
  %389 = add i64 %388, 76
  %390 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %386, i64 noundef %389, i32 noundef %390)
  %391 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %391, ptr %15, align 4, !tbaa !11
  %392 = load i32, ptr %12, align 4, !tbaa !11
  store i32 %392, ptr %16, align 4, !tbaa !11
  %393 = load ptr, ptr %5, align 8, !tbaa !5
  %394 = getelementptr inbounds %struct.w2c_hermes, ptr %393, i32 0, i32 6
  %395 = load i32, ptr %15, align 4, !tbaa !11
  %396 = zext i32 %395 to i64
  %397 = add i64 %396, 56
  %398 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %394, i64 noundef %397, i32 noundef %398)
  %399 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %399, ptr %15, align 4, !tbaa !11
  store i32 56, ptr %16, align 4, !tbaa !11
  %400 = load i32, ptr %16, align 4, !tbaa !11
  %401 = load i32, ptr %15, align 4, !tbaa !11
  %402 = add i32 %401, %400
  store i32 %402, ptr %15, align 4, !tbaa !11
  store i32 0, ptr %16, align 4, !tbaa !11
  store i32 0, ptr %17, align 4, !tbaa !11
  store i32 0, ptr %18, align 4, !tbaa !11
  %403 = load ptr, ptr %5, align 8, !tbaa !5
  %404 = load i32, ptr %15, align 4, !tbaa !11
  %405 = load i32, ptr %16, align 4, !tbaa !11
  %406 = load i32, ptr %17, align 4, !tbaa !11
  %407 = load i32, ptr %18, align 4, !tbaa !11
  call void @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3ASetBufferAndMode0x28char0x2A0x2C0x20unsigned0x20long0x2C0x20llvh0x3A0x3Araw_ostream0x3A0x3ABufferKind0x29(ptr noundef %403, i32 noundef %404, i32 noundef %405, i32 noundef %406, i32 noundef %407)
  %408 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %408, ptr %15, align 4, !tbaa !11
  %409 = load double, ptr %6, align 8, !tbaa !9
  store double %409, ptr %23, align 8, !tbaa !9
  store double 1.000000e+03, ptr %24, align 8, !tbaa !9
  %410 = load double, ptr %24, align 8, !tbaa !9
  %411 = load double, ptr %23, align 8, !tbaa !9
  %412 = fdiv double %411, %410
  store double %412, ptr %23, align 8, !tbaa !9
  %413 = load double, ptr %23, align 8, !tbaa !9
  %414 = call double @wasm_floor(double noundef %413)
  store double %414, ptr %23, align 8, !tbaa !9
  store double 6.000000e+01, ptr %24, align 8, !tbaa !9
  %415 = load ptr, ptr %5, align 8, !tbaa !5
  %416 = load double, ptr %23, align 8, !tbaa !9
  %417 = load double, ptr %24, align 8, !tbaa !9
  %418 = call double @w2c_hermes_fmod(ptr noundef %415, double noundef %416, double noundef %417)
  store double %418, ptr %23, align 8, !tbaa !9
  %419 = load double, ptr %23, align 8, !tbaa !9
  store double %419, ptr %13, align 8, !tbaa !9
  store double 6.000000e+01, ptr %24, align 8, !tbaa !9
  store double -0.000000e+00, ptr %25, align 8, !tbaa !9
  %420 = load double, ptr %13, align 8, !tbaa !9
  store double %420, ptr %26, align 8, !tbaa !9
  store double 0.000000e+00, ptr %27, align 8, !tbaa !9
  %421 = load double, ptr %26, align 8, !tbaa !9
  %422 = load double, ptr %27, align 8, !tbaa !9
  %423 = fcmp olt double %421, %422
  %424 = zext i1 %423 to i32
  store i32 %424, ptr %19, align 4, !tbaa !11
  %425 = load i32, ptr %19, align 4, !tbaa !11
  %426 = icmp ne i32 %425, 0
  br i1 %426, label %427, label %429

427:                                              ; preds = %337
  %428 = load double, ptr %24, align 8, !tbaa !9
  br label %431

429:                                              ; preds = %337
  %430 = load double, ptr %25, align 8, !tbaa !9
  br label %431

431:                                              ; preds = %429, %427
  %432 = phi double [ %428, %427 ], [ %430, %429 ]
  store double %432, ptr %24, align 8, !tbaa !9
  %433 = load double, ptr %24, align 8, !tbaa !9
  %434 = load double, ptr %23, align 8, !tbaa !9
  %435 = fadd double %434, %433
  store double %435, ptr %23, align 8, !tbaa !9
  %436 = load double, ptr %23, align 8, !tbaa !9
  store double %436, ptr %13, align 8, !tbaa !9
  %437 = load double, ptr %23, align 8, !tbaa !9
  %438 = call double @wasm_fabs(double noundef %437)
  store double %438, ptr %23, align 8, !tbaa !9
  store double 0x41E0000000000000, ptr %24, align 8, !tbaa !9
  %439 = load double, ptr %23, align 8, !tbaa !9
  %440 = load double, ptr %24, align 8, !tbaa !9
  %441 = fcmp olt double %439, %440
  %442 = zext i1 %441 to i32
  store i32 %442, ptr %16, align 4, !tbaa !11
  %443 = load i32, ptr %16, align 4, !tbaa !11
  %444 = icmp ne i32 %443, 0
  br i1 %444, label %445, label %482

445:                                              ; preds = %431
  %446 = load double, ptr %13, align 8, !tbaa !9
  store double %446, ptr %23, align 8, !tbaa !9
  %447 = load double, ptr %23, align 8, !tbaa !9
  %448 = load double, ptr %23, align 8, !tbaa !9
  %449 = fcmp une double %447, %448
  %450 = xor i1 %449, true
  %451 = xor i1 %450, true
  %452 = zext i1 %451 to i32
  %453 = sext i32 %452 to i64
  %454 = call i64 @llvm.expect.i64(i64 %453, i64 0)
  %455 = icmp ne i64 %454, 0
  br i1 %455, label %456, label %458

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

457:                                              ; No predecessors!
  br label %480

458:                                              ; preds = %445
  %459 = load double, ptr %23, align 8, !tbaa !9
  %460 = fcmp ogt double %459, 0xC1E0000000200000
  br i1 %460, label %461, label %464

461:                                              ; preds = %458
  %462 = load double, ptr %23, align 8, !tbaa !9
  %463 = fcmp olt double %462, 0x41E0000000000000
  br label %464

464:                                              ; preds = %461, %458
  %465 = phi i1 [ false, %458 ], [ %463, %461 ]
  %466 = xor i1 %465, true
  %467 = xor i1 %466, true
  %468 = xor i1 %467, true
  %469 = zext i1 %468 to i32
  %470 = sext i32 %469 to i64
  %471 = call i64 @llvm.expect.i64(i64 %470, i64 0)
  %472 = icmp ne i64 %471, 0
  br i1 %472, label %473, label %475

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

474:                                              ; No predecessors!
  br label %478

475:                                              ; preds = %464
  %476 = load double, ptr %23, align 8, !tbaa !9
  %477 = fptosi double %476 to i32
  br label %478

478:                                              ; preds = %475, %474
  %479 = phi i32 [ 0, %474 ], [ %477, %475 ]
  br label %480

480:                                              ; preds = %478, %457
  %481 = phi i32 [ 0, %457 ], [ %479, %478 ]
  store i32 %481, ptr %16, align 4, !tbaa !11
  br label %483

482:                                              ; preds = %431
  store i32 -2147483648, ptr %16, align 4, !tbaa !11
  br label %483

483:                                              ; preds = %482, %480
  %484 = load i32, ptr %16, align 4, !tbaa !11
  store i32 %484, ptr %8, align 4, !tbaa !11
  %485 = load ptr, ptr %5, align 8, !tbaa !5
  %486 = getelementptr inbounds %struct.w2c_hermes, ptr %485, i32 0, i32 6
  %487 = load i32, ptr %15, align 4, !tbaa !11
  %488 = zext i32 %487 to i64
  %489 = add i64 %488, 52
  %490 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %486, i64 noundef %489, i32 noundef %490)
  %491 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %491, ptr %15, align 4, !tbaa !11
  %492 = load double, ptr %6, align 8, !tbaa !9
  store double %492, ptr %23, align 8, !tbaa !9
  store double 6.000000e+04, ptr %24, align 8, !tbaa !9
  %493 = load double, ptr %24, align 8, !tbaa !9
  %494 = load double, ptr %23, align 8, !tbaa !9
  %495 = fdiv double %494, %493
  store double %495, ptr %23, align 8, !tbaa !9
  %496 = load double, ptr %23, align 8, !tbaa !9
  %497 = call double @wasm_floor(double noundef %496)
  store double %497, ptr %23, align 8, !tbaa !9
  store double 6.000000e+01, ptr %24, align 8, !tbaa !9
  %498 = load ptr, ptr %5, align 8, !tbaa !5
  %499 = load double, ptr %23, align 8, !tbaa !9
  %500 = load double, ptr %24, align 8, !tbaa !9
  %501 = call double @w2c_hermes_fmod(ptr noundef %498, double noundef %499, double noundef %500)
  store double %501, ptr %23, align 8, !tbaa !9
  %502 = load double, ptr %23, align 8, !tbaa !9
  store double %502, ptr %13, align 8, !tbaa !9
  store double 6.000000e+01, ptr %24, align 8, !tbaa !9
  store double -0.000000e+00, ptr %25, align 8, !tbaa !9
  %503 = load double, ptr %13, align 8, !tbaa !9
  store double %503, ptr %26, align 8, !tbaa !9
  store double 0.000000e+00, ptr %27, align 8, !tbaa !9
  %504 = load double, ptr %26, align 8, !tbaa !9
  %505 = load double, ptr %27, align 8, !tbaa !9
  %506 = fcmp olt double %504, %505
  %507 = zext i1 %506 to i32
  store i32 %507, ptr %19, align 4, !tbaa !11
  %508 = load i32, ptr %19, align 4, !tbaa !11
  %509 = icmp ne i32 %508, 0
  br i1 %509, label %510, label %512

510:                                              ; preds = %483
  %511 = load double, ptr %24, align 8, !tbaa !9
  br label %514

512:                                              ; preds = %483
  %513 = load double, ptr %25, align 8, !tbaa !9
  br label %514

514:                                              ; preds = %512, %510
  %515 = phi double [ %511, %510 ], [ %513, %512 ]
  store double %515, ptr %24, align 8, !tbaa !9
  %516 = load double, ptr %24, align 8, !tbaa !9
  %517 = load double, ptr %23, align 8, !tbaa !9
  %518 = fadd double %517, %516
  store double %518, ptr %23, align 8, !tbaa !9
  %519 = load double, ptr %23, align 8, !tbaa !9
  store double %519, ptr %13, align 8, !tbaa !9
  %520 = load double, ptr %23, align 8, !tbaa !9
  %521 = call double @wasm_fabs(double noundef %520)
  store double %521, ptr %23, align 8, !tbaa !9
  store double 0x41E0000000000000, ptr %24, align 8, !tbaa !9
  %522 = load double, ptr %23, align 8, !tbaa !9
  %523 = load double, ptr %24, align 8, !tbaa !9
  %524 = fcmp olt double %522, %523
  %525 = zext i1 %524 to i32
  store i32 %525, ptr %16, align 4, !tbaa !11
  %526 = load i32, ptr %16, align 4, !tbaa !11
  %527 = icmp ne i32 %526, 0
  br i1 %527, label %528, label %565

528:                                              ; preds = %514
  %529 = load double, ptr %13, align 8, !tbaa !9
  store double %529, ptr %23, align 8, !tbaa !9
  %530 = load double, ptr %23, align 8, !tbaa !9
  %531 = load double, ptr %23, align 8, !tbaa !9
  %532 = fcmp une double %530, %531
  %533 = xor i1 %532, true
  %534 = xor i1 %533, true
  %535 = zext i1 %534 to i32
  %536 = sext i32 %535 to i64
  %537 = call i64 @llvm.expect.i64(i64 %536, i64 0)
  %538 = icmp ne i64 %537, 0
  br i1 %538, label %539, label %541

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

540:                                              ; No predecessors!
  br label %563

541:                                              ; preds = %528
  %542 = load double, ptr %23, align 8, !tbaa !9
  %543 = fcmp ogt double %542, 0xC1E0000000200000
  br i1 %543, label %544, label %547

544:                                              ; preds = %541
  %545 = load double, ptr %23, align 8, !tbaa !9
  %546 = fcmp olt double %545, 0x41E0000000000000
  br label %547

547:                                              ; preds = %544, %541
  %548 = phi i1 [ false, %541 ], [ %546, %544 ]
  %549 = xor i1 %548, true
  %550 = xor i1 %549, true
  %551 = xor i1 %550, true
  %552 = zext i1 %551 to i32
  %553 = sext i32 %552 to i64
  %554 = call i64 @llvm.expect.i64(i64 %553, i64 0)
  %555 = icmp ne i64 %554, 0
  br i1 %555, label %556, label %558

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

557:                                              ; No predecessors!
  br label %561

558:                                              ; preds = %547
  %559 = load double, ptr %23, align 8, !tbaa !9
  %560 = fptosi double %559 to i32
  br label %561

561:                                              ; preds = %558, %557
  %562 = phi i32 [ 0, %557 ], [ %560, %558 ]
  br label %563

563:                                              ; preds = %561, %540
  %564 = phi i32 [ 0, %540 ], [ %562, %561 ]
  store i32 %564, ptr %16, align 4, !tbaa !11
  br label %566

565:                                              ; preds = %514
  store i32 -2147483648, ptr %16, align 4, !tbaa !11
  br label %566

566:                                              ; preds = %565, %563
  %567 = load i32, ptr %16, align 4, !tbaa !11
  store i32 %567, ptr %8, align 4, !tbaa !11
  %568 = load ptr, ptr %5, align 8, !tbaa !5
  %569 = getelementptr inbounds %struct.w2c_hermes, ptr %568, i32 0, i32 6
  %570 = load i32, ptr %15, align 4, !tbaa !11
  %571 = zext i32 %570 to i64
  %572 = add i64 %571, 48
  %573 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %569, i64 noundef %572, i32 noundef %573)
  %574 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %574, ptr %15, align 4, !tbaa !11
  %575 = load double, ptr %6, align 8, !tbaa !9
  store double %575, ptr %23, align 8, !tbaa !9
  store double 3.600000e+06, ptr %24, align 8, !tbaa !9
  %576 = load double, ptr %24, align 8, !tbaa !9
  %577 = load double, ptr %23, align 8, !tbaa !9
  %578 = fdiv double %577, %576
  store double %578, ptr %23, align 8, !tbaa !9
  %579 = load double, ptr %23, align 8, !tbaa !9
  %580 = call double @wasm_floor(double noundef %579)
  store double %580, ptr %23, align 8, !tbaa !9
  store double 2.400000e+01, ptr %24, align 8, !tbaa !9
  %581 = load ptr, ptr %5, align 8, !tbaa !5
  %582 = load double, ptr %23, align 8, !tbaa !9
  %583 = load double, ptr %24, align 8, !tbaa !9
  %584 = call double @w2c_hermes_fmod(ptr noundef %581, double noundef %582, double noundef %583)
  store double %584, ptr %23, align 8, !tbaa !9
  %585 = load double, ptr %23, align 8, !tbaa !9
  store double %585, ptr %6, align 8, !tbaa !9
  store double 2.400000e+01, ptr %24, align 8, !tbaa !9
  store double -0.000000e+00, ptr %25, align 8, !tbaa !9
  %586 = load double, ptr %6, align 8, !tbaa !9
  store double %586, ptr %26, align 8, !tbaa !9
  store double 0.000000e+00, ptr %27, align 8, !tbaa !9
  %587 = load double, ptr %26, align 8, !tbaa !9
  %588 = load double, ptr %27, align 8, !tbaa !9
  %589 = fcmp olt double %587, %588
  %590 = zext i1 %589 to i32
  store i32 %590, ptr %19, align 4, !tbaa !11
  %591 = load i32, ptr %19, align 4, !tbaa !11
  %592 = icmp ne i32 %591, 0
  br i1 %592, label %593, label %595

593:                                              ; preds = %566
  %594 = load double, ptr %24, align 8, !tbaa !9
  br label %597

595:                                              ; preds = %566
  %596 = load double, ptr %25, align 8, !tbaa !9
  br label %597

597:                                              ; preds = %595, %593
  %598 = phi double [ %594, %593 ], [ %596, %595 ]
  store double %598, ptr %24, align 8, !tbaa !9
  %599 = load double, ptr %24, align 8, !tbaa !9
  %600 = load double, ptr %23, align 8, !tbaa !9
  %601 = fadd double %600, %599
  store double %601, ptr %23, align 8, !tbaa !9
  %602 = load double, ptr %23, align 8, !tbaa !9
  store double %602, ptr %6, align 8, !tbaa !9
  %603 = load double, ptr %23, align 8, !tbaa !9
  %604 = call double @wasm_fabs(double noundef %603)
  store double %604, ptr %23, align 8, !tbaa !9
  store double 0x41E0000000000000, ptr %24, align 8, !tbaa !9
  %605 = load double, ptr %23, align 8, !tbaa !9
  %606 = load double, ptr %24, align 8, !tbaa !9
  %607 = fcmp olt double %605, %606
  %608 = zext i1 %607 to i32
  store i32 %608, ptr %16, align 4, !tbaa !11
  %609 = load i32, ptr %16, align 4, !tbaa !11
  %610 = icmp ne i32 %609, 0
  br i1 %610, label %611, label %648

611:                                              ; preds = %597
  %612 = load double, ptr %6, align 8, !tbaa !9
  store double %612, ptr %23, align 8, !tbaa !9
  %613 = load double, ptr %23, align 8, !tbaa !9
  %614 = load double, ptr %23, align 8, !tbaa !9
  %615 = fcmp une double %613, %614
  %616 = xor i1 %615, true
  %617 = xor i1 %616, true
  %618 = zext i1 %617 to i32
  %619 = sext i32 %618 to i64
  %620 = call i64 @llvm.expect.i64(i64 %619, i64 0)
  %621 = icmp ne i64 %620, 0
  br i1 %621, label %622, label %624

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

623:                                              ; No predecessors!
  br label %646

624:                                              ; preds = %611
  %625 = load double, ptr %23, align 8, !tbaa !9
  %626 = fcmp ogt double %625, 0xC1E0000000200000
  br i1 %626, label %627, label %630

627:                                              ; preds = %624
  %628 = load double, ptr %23, align 8, !tbaa !9
  %629 = fcmp olt double %628, 0x41E0000000000000
  br label %630

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

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

640:                                              ; No predecessors!
  br label %644

641:                                              ; preds = %630
  %642 = load double, ptr %23, align 8, !tbaa !9
  %643 = fptosi double %642 to i32
  br label %644

644:                                              ; preds = %641, %640
  %645 = phi i32 [ 0, %640 ], [ %643, %641 ]
  br label %646

646:                                              ; preds = %644, %623
  %647 = phi i32 [ 0, %623 ], [ %645, %644 ]
  store i32 %647, ptr %16, align 4, !tbaa !11
  br label %649

648:                                              ; preds = %597
  store i32 -2147483648, ptr %16, align 4, !tbaa !11
  br label %649

649:                                              ; preds = %648, %646
  %650 = load i32, ptr %16, align 4, !tbaa !11
  store i32 %650, ptr %8, align 4, !tbaa !11
  %651 = load ptr, ptr %5, align 8, !tbaa !5
  %652 = getelementptr inbounds %struct.w2c_hermes, ptr %651, i32 0, i32 6
  %653 = load i32, ptr %15, align 4, !tbaa !11
  %654 = zext i32 %653 to i64
  %655 = add i64 %654, 44
  %656 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %652, i64 noundef %655, i32 noundef %656)
  %657 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %657, ptr %15, align 4, !tbaa !11
  %658 = load i32, ptr %10, align 4, !tbaa !11
  store i32 %658, ptr %16, align 4, !tbaa !11
  store i32 275648, ptr %17, align 4, !tbaa !11
  %659 = load i32, ptr %17, align 4, !tbaa !11
  %660 = load i32, ptr %16, align 4, !tbaa !11
  %661 = add i32 %660, %659
  store i32 %661, ptr %16, align 4, !tbaa !11
  %662 = load ptr, ptr %5, align 8, !tbaa !5
  %663 = getelementptr inbounds %struct.w2c_hermes, ptr %662, i32 0, i32 6
  %664 = load i32, ptr %15, align 4, !tbaa !11
  %665 = zext i32 %664 to i64
  %666 = add i64 %665, 36
  %667 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %663, i64 noundef %666, i32 noundef %667)
  %668 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %668, ptr %15, align 4, !tbaa !11
  %669 = load i32, ptr %10, align 4, !tbaa !11
  store i32 %669, ptr %16, align 4, !tbaa !11
  store i32 108567, ptr %17, align 4, !tbaa !11
  %670 = load i32, ptr %17, align 4, !tbaa !11
  %671 = load i32, ptr %16, align 4, !tbaa !11
  %672 = add i32 %671, %670
  store i32 %672, ptr %16, align 4, !tbaa !11
  %673 = load ptr, ptr %5, align 8, !tbaa !5
  %674 = getelementptr inbounds %struct.w2c_hermes, ptr %673, i32 0, i32 6
  %675 = load i32, ptr %15, align 4, !tbaa !11
  %676 = zext i32 %675 to i64
  %677 = add i64 %676, 40
  %678 = load i32, ptr %16, align 4, !tbaa !11
  call void @i32_store(ptr noundef %674, i64 noundef %677, i32 noundef %678)
  %679 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %679, ptr %15, align 4, !tbaa !11
  store i32 56, ptr %16, align 4, !tbaa !11
  %680 = load i32, ptr %16, align 4, !tbaa !11
  %681 = load i32, ptr %15, align 4, !tbaa !11
  %682 = add i32 %681, %680
  store i32 %682, ptr %15, align 4, !tbaa !11
  %683 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %683, ptr %16, align 4, !tbaa !11
  store i32 36, ptr %17, align 4, !tbaa !11
  %684 = load i32, ptr %17, align 4, !tbaa !11
  %685 = load i32, ptr %16, align 4, !tbaa !11
  %686 = add i32 %685, %684
  store i32 %686, ptr %16, align 4, !tbaa !11
  %687 = load ptr, ptr %5, align 8, !tbaa !5
  %688 = load i32, ptr %15, align 4, !tbaa !11
  %689 = load i32, ptr %16, align 4, !tbaa !11
  %690 = call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3Aoperator0x3C0x3C0x28llvh0x3A0x3Aformat_object_base0x20const0x260x29(ptr noundef %687, i32 noundef %688, i32 noundef %689)
  store i32 %690, ptr %15, align 4, !tbaa !11
  %691 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %691, ptr %15, align 4, !tbaa !11
  store i32 56, ptr %16, align 4, !tbaa !11
  %692 = load i32, ptr %16, align 4, !tbaa !11
  %693 = load i32, ptr %15, align 4, !tbaa !11
  %694 = add i32 %693, %692
  store i32 %694, ptr %15, align 4, !tbaa !11
  %695 = load ptr, ptr %5, align 8, !tbaa !5
  %696 = load i32, ptr %15, align 4, !tbaa !11
  %697 = call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3A0x7Eraw_ostream0x280x290x2E1(ptr noundef %695, i32 noundef %696)
  store i32 %697, ptr %15, align 4, !tbaa !11
  %698 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %698, ptr %15, align 4, !tbaa !11
  store i32 12, ptr %16, align 4, !tbaa !11
  %699 = load i32, ptr %16, align 4, !tbaa !11
  %700 = load i32, ptr %15, align 4, !tbaa !11
  %701 = add i32 %700, %699
  store i32 %701, ptr %15, align 4, !tbaa !11
  %702 = load ptr, ptr %5, align 8, !tbaa !5
  %703 = load i32, ptr %15, align 4, !tbaa !11
  %704 = call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3A0x7Eraw_ostream0x280x290x2E1(ptr noundef %702, i32 noundef %703)
  store i32 %704, ptr %15, align 4, !tbaa !11
  %705 = load i32, ptr %9, align 4, !tbaa !11
  store i32 %705, ptr %15, align 4, !tbaa !11
  store i32 80, ptr %16, align 4, !tbaa !11
  %706 = load i32, ptr %16, align 4, !tbaa !11
  %707 = load i32, ptr %15, align 4, !tbaa !11
  %708 = add i32 %707, %706
  store i32 %708, ptr %15, align 4, !tbaa !11
  %709 = load i32, ptr %15, align 4, !tbaa !11
  %710 = load ptr, ptr %5, align 8, !tbaa !5
  %711 = getelementptr inbounds %struct.w2c_hermes, ptr %710, i32 0, i32 3
  store i32 %709, ptr %711, align 8, !tbaa !13
  call void @llvm.lifetime.end.p0(i64 8, ptr %28) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %27) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %26) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %25) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %24) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %23) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %22) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %21) #6
  call void @llvm.lifetime.end.p0(i64 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 8, ptr %14) #6
  call void @llvm.lifetime.end.p0(i64 8, ptr %13) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %12) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %11) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %10) #6
  call void @llvm.lifetime.end.p0(i64 4, ptr %9) #6
  ret void
}

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

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

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


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

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

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

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

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

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

; Function Attrs: nounwind uwtable
declare hidden double @wasm_floor(double noundef) local_unnamed_addr #2

declare void @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3ASetBufferAndMode0x28char0x2A0x2C0x20unsigned0x20long0x2C0x20llvh0x3A0x3Araw_ostream0x3A0x3ABufferKind0x29(ptr noundef, i32 noundef, i32 noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

declare i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3A0x7Eraw_ostream0x280x290x2E1(ptr noundef, i32 noundef) local_unnamed_addr #3

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

declare double @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AyearFromTime0x28double0x29(ptr noundef, double noundef) local_unnamed_addr #3

declare double @w2c_hermes_fmod(ptr noundef, double noundef, double noundef) local_unnamed_addr #3

declare i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AmonthFromTime0x28double0x29(ptr noundef, double noundef) local_unnamed_addr #3

declare i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3Aoperator0x3C0x3C0x28llvh0x3A0x3Aformat_object_base0x20const0x260x29(ptr noundef, i32 noundef, i32 noundef) local_unnamed_addr #3

; Function Attrs: nounwind uwtable
define dso_local void @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AdateTimeUTCString0x28double0x2C0x20double0x2C0x20llvh0x3A0x3ASmallVectorImpl0x3Cchar0x3E0x260x29(ptr noundef %0, double noundef %1, double noundef %2, i32 noundef %3) local_unnamed_addr #2 {
  %5 = getelementptr inbounds i8, ptr %0, i64 24
  %6 = load i32, ptr %5, align 8, !tbaa !5
  %7 = add i32 %6, -80
  store i32 %7, ptr %5, align 8, !tbaa !5
  %8 = getelementptr inbounds i8, ptr %0, i64 40
  %9 = zext i32 %7 to i64
  %10 = add nuw nsw i64 %9, 24
  tail call void @i64_store(ptr noundef nonnull %8, i64 noundef %10, i64 noundef 4294967296)
  %11 = add nuw nsw i64 %9, 16
  tail call void @i64_store(ptr noundef nonnull %8, i64 noundef %11, i64 noundef 0)
  %12 = add nuw nsw i64 %9, 32
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %12, i32 noundef %3)
  %13 = add nuw nsw i64 %9, 12
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %13, i32 noundef 267216)
  %14 = add i32 %6, -68
  tail call void @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3ASetBufferAndMode0x28char0x2A0x2C0x20unsigned0x20long0x2C0x20llvh0x3A0x3Araw_ostream0x3A0x3ABufferKind0x29(ptr noundef %0, i32 noundef %14, i32 noundef 0, i32 noundef 0, i32 noundef 0) #4
  %15 = tail call double @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AyearFromTime0x28double0x29(ptr noundef %0, double noundef %1) #4
  %16 = tail call i32 @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AmonthFromTime0x28double0x29(ptr noundef %0, double noundef %1) #4
  %17 = tail call double @w2c_hermes_hermes0x3A0x3Avm0x3A0x3AdateFromTime0x28double0x29(ptr noundef %0, double noundef %1)
  %18 = add i32 %6, -4
  %19 = tail call double @wasm_fabs(double noundef %15)
  %20 = fcmp olt double %19, 0x41E0000000000000
  br i1 %20, label %21, label %30

21:                                               ; preds = %4
  %22 = fcmp uno double %15, 0.000000e+00
  br i1 %22, label %23, label %24, !prof !15

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

24:                                               ; preds = %21
  %25 = fcmp ule double %15, 0xC1E0000000200000
  %26 = fcmp uge double %15, 0x41E0000000000000
  %.not321 = or i1 %25, %26
  br i1 %.not321, label %27, label %28, !prof !15

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

28:                                               ; preds = %24
  %29 = fptosi double %15 to i32
  br label %30

30:                                               ; preds = %4, %28
  %.0319 = phi i32 [ %29, %28 ], [ -2147483648, %4 ]
  %31 = zext i32 %18 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %31, i32 noundef %.0319)
  %32 = add i32 %6, -12
  %33 = tail call double @wasm_fabs(double noundef %17)
  %34 = fcmp olt double %33, 0x41E0000000000000
  br i1 %34, label %35, label %44

35:                                               ; preds = %30
  %36 = fcmp uno double %17, 0.000000e+00
  br i1 %36, label %37, label %38, !prof !15

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

38:                                               ; preds = %35
  %39 = fcmp ule double %17, 0xC1E0000000200000
  %40 = fcmp uge double %17, 0x41E0000000000000
  %.not323 = or i1 %39, %40
  br i1 %.not323, label %41, label %42, !prof !15

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

42:                                               ; preds = %38
  %43 = fptosi double %17 to i32
  br label %44

44:                                               ; preds = %30, %42
  %.1 = phi i32 [ %43, %42 ], [ -2147483648, %30 ]
  %45 = zext i32 %32 to i64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %45, i32 noundef %.1)
  %46 = shl i32 %16, 2
  %47 = add i32 %46, 275520
  %48 = zext i32 %47 to i64
  %49 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %48)
  %50 = add nuw nsw i64 %9, 72
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %50, i32 noundef %49)
  %51 = add nuw nsw i64 %9, 56
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %51, i32 noundef 275728)
  %52 = add nuw nsw i64 %9, 60
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %52, i32 noundef 210354)
  %53 = fdiv double %1, 8.640000e+07
  %54 = tail call double @wasm_floor(double noundef %53)
  %55 = fadd double %54, 4.000000e+00
  %56 = tail call double @w2c_hermes_fmod(ptr noundef nonnull %0, double noundef %55, double noundef 7.000000e+00) #4
  %57 = fcmp olt double %56, 0.000000e+00
  %58 = select i1 %57, double 7.000000e+00, double -0.000000e+00
  %59 = fadd double %56, %58
  %60 = tail call double @wasm_fabs(double noundef %59)
  %61 = fcmp olt double %60, 0x41E0000000000000
  br i1 %61, label %62, label %74

62:                                               ; preds = %44
  %63 = fcmp uno double %59, 0.000000e+00
  br i1 %63, label %64, label %65, !prof !15

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

65:                                               ; preds = %62
  %66 = fcmp ule double %59, 0xC1E0000000200000
  %67 = fcmp uge double %59, 0x41E0000000000000
  %.not325 = or i1 %66, %67
  br i1 %.not325, label %68, label %69, !prof !15

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

69:                                               ; preds = %65
  %70 = fptosi double %59 to i32
  %71 = shl i32 %70, 2
  %72 = add i32 %71, 275488
  %73 = zext i32 %72 to i64
  br label %74

74:                                               ; preds = %44, %69
  %.0 = phi i64 [ %73, %69 ], [ 275488, %44 ]
  %75 = tail call i32 @i32_load(ptr noundef nonnull %8, i64 noundef %.0)
  %76 = add nuw nsw i64 %9, 64
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %76, i32 noundef %75)
  %77 = add i32 %6, -24
  %78 = tail call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3Aoperator0x3C0x3C0x28llvh0x3A0x3Aformat_object_base0x20const0x260x29(ptr noundef nonnull %0, i32 noundef %14, i32 noundef %77) #4
  %79 = add nuw nsw i64 %9, 68
  tail call void @i64_store(ptr noundef nonnull %8, i64 noundef %79, i64 noundef 4294967296)
  tail call void @i64_store(ptr noundef nonnull %8, i64 noundef %52, i64 noundef 0)
  %80 = add nuw nsw i64 %9, 76
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %80, i32 noundef %3)
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %51, i32 noundef 267216)
  tail call void @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3ASetBufferAndMode0x28char0x2A0x2C0x20unsigned0x20long0x2C0x20llvh0x3A0x3Araw_ostream0x3A0x3ABufferKind0x29(ptr noundef nonnull %0, i32 noundef %77, i32 noundef 0, i32 noundef 0, i32 noundef 0) #4
  %81 = fdiv double %1, 1.000000e+03
  %82 = tail call double @wasm_floor(double noundef %81)
  %83 = tail call double @w2c_hermes_fmod(ptr noundef nonnull %0, double noundef %82, double noundef 6.000000e+01) #4
  %84 = fcmp olt double %83, 0.000000e+00
  %85 = select i1 %84, double 6.000000e+01, double -0.000000e+00
  %86 = fadd double %83, %85
  %87 = tail call double @wasm_fabs(double noundef %86)
  %88 = fcmp olt double %87, 0x41E0000000000000
  br i1 %88, label %89, label %98

89:                                               ; preds = %74
  %90 = fcmp uno double %86, 0.000000e+00
  br i1 %90, label %91, label %92, !prof !15

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

92:                                               ; preds = %89
  %93 = fcmp ule double %86, 0xC1E0000000200000
  %94 = fcmp uge double %86, 0x41E0000000000000
  %.not327 = or i1 %93, %94
  br i1 %.not327, label %95, label %96, !prof !15

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

96:                                               ; preds = %92
  %97 = fptosi double %86 to i32
  br label %98

98:                                               ; preds = %74, %96
  %.2 = phi i32 [ %97, %96 ], [ -2147483648, %74 ]
  %99 = add nuw nsw i64 %9, 52
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %99, i32 noundef %.2)
  %100 = fdiv double %1, 6.000000e+04
  %101 = tail call double @wasm_floor(double noundef %100)
  %102 = tail call double @w2c_hermes_fmod(ptr noundef nonnull %0, double noundef %101, double noundef 6.000000e+01) #4
  %103 = fcmp olt double %102, 0.000000e+00
  %104 = select i1 %103, double 6.000000e+01, double -0.000000e+00
  %105 = fadd double %102, %104
  %106 = tail call double @wasm_fabs(double noundef %105)
  %107 = fcmp olt double %106, 0x41E0000000000000
  br i1 %107, label %108, label %117

108:                                              ; preds = %98
  %109 = fcmp uno double %105, 0.000000e+00
  br i1 %109, label %110, label %111, !prof !15

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

111:                                              ; preds = %108
  %112 = fcmp ule double %105, 0xC1E0000000200000
  %113 = fcmp uge double %105, 0x41E0000000000000
  %.not329 = or i1 %112, %113
  br i1 %.not329, label %114, label %115, !prof !15

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

115:                                              ; preds = %111
  %116 = fptosi double %105 to i32
  br label %117

117:                                              ; preds = %98, %115
  %.3 = phi i32 [ %116, %115 ], [ -2147483648, %98 ]
  %118 = add nuw nsw i64 %9, 48
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %118, i32 noundef %.3)
  %119 = fdiv double %1, 3.600000e+06
  %120 = tail call double @wasm_floor(double noundef %119)
  %121 = tail call double @w2c_hermes_fmod(ptr noundef nonnull %0, double noundef %120, double noundef 2.400000e+01) #4
  %122 = fcmp olt double %121, 0.000000e+00
  %123 = select i1 %122, double 2.400000e+01, double -0.000000e+00
  %124 = fadd double %121, %123
  %125 = tail call double @wasm_fabs(double noundef %124)
  %126 = fcmp olt double %125, 0x41E0000000000000
  br i1 %126, label %127, label %136

127:                                              ; preds = %117
  %128 = fcmp uno double %124, 0.000000e+00
  br i1 %128, label %129, label %130, !prof !15

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

130:                                              ; preds = %127
  %131 = fcmp ule double %124, 0xC1E0000000200000
  %132 = fcmp uge double %124, 0x41E0000000000000
  %.not331 = or i1 %131, %132
  br i1 %.not331, label %133, label %134, !prof !15

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

134:                                              ; preds = %130
  %135 = fptosi double %124 to i32
  br label %136

136:                                              ; preds = %117, %134
  %.4 = phi i32 [ %135, %134 ], [ -2147483648, %117 ]
  %137 = add nuw nsw i64 %9, 44
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %137, i32 noundef %.4)
  %138 = add nuw nsw i64 %9, 36
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %138, i32 noundef 275648)
  %139 = add nuw nsw i64 %9, 40
  tail call void @i32_store(ptr noundef nonnull %8, i64 noundef %139, i32 noundef 108567)
  %140 = add i32 %6, -44
  %141 = tail call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3Aoperator0x3C0x3C0x28llvh0x3A0x3Aformat_object_base0x20const0x260x29(ptr noundef nonnull %0, i32 noundef %77, i32 noundef %140) #4
  %142 = tail call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3A0x7Eraw_ostream0x280x290x2E1(ptr noundef nonnull %0, i32 noundef %77) #4
  %143 = tail call i32 @w2c_hermes_llvh0x3A0x3Araw_ostream0x3A0x3A0x7Eraw_ostream0x280x290x2E1(ptr noundef nonnull %0, i32 noundef %14) #4
  store i32 %6, ptr %5, align 8, !tbaa !5
  ret void
}

attributes #0 = { 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 #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 = { 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 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" }
attributes #4 = { nounwind }
attributes #5 = { noreturn nounwind }

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

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


; Effective O3 passes: CorrelatedValuePropagationPass,EarlyCSEPass,GlobalOptPass,IPSCCPPass,InferFunctionAttrsPass,InstCombinePass,LowerExpectIntrinsicPass,ReassociatePass,SROAPass,SimplifyCFGPass,TailCallElimPass