(module
 (type $FUNCSIG$id (func (param f64) (result i32)))
 (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
 (import "env" "memory" (memory $0 256 256))
 (import "env" "table" (table 0 0 anyfunc))
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (data (get_global $memoryBase) "two_sides.asm.js")
 (export "_test" (func $_test))
 (func $_test (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
  (local $5 f64)
  (if i32
   (get_local $4)
   (call $f64-to-int
    (f64.mul
     (f64.add
      (f64.convert_s/i32
       (get_local $2)
      )
      (tee_local $5
       (f64.convert_s/i32
        (i32.mul
         (get_local $1)
         (get_local $0)
        )
       )
      )
     )
     (f64.add
      (get_local $5)
      (f64.convert_s/i32
       (get_local $3)
      )
     )
    )
   )
   (call $f64-to-int
    (f64.mul
     (f64.add
      (f64.convert_s/i32
       (get_local $2)
      )
      (tee_local $5
       (f64.convert_s/i32
        (i32.mul
         (get_local $3)
         (get_local $2)
        )
       )
      )
     )
     (f64.add
      (f64.convert_s/i32
       (get_local $3)
      )
      (get_local $5)
     )
    )
   )
  )
 )
)
