(module
 (type $FUNCSIG$vdji (func (param f64 i64 i32)))
 (type $FUNCSIG$j (func (result i64)))
 (type $FUNCSIG$ff (func (param f32) (result f32)))
 (type $legaltype$illegalImport (func (param f64 i32 i32 i32)))
 (type $legaltype$illegalImportResult (func (result i32)))
 (type $legaltype$_fabsf (func (param f64) (result f64)))
 (type $legaltype$do_i64 (func (result i32)))
 (import "env" "illegalImport" (func $illegalImport (param f64 i64 i32)))
 (import "env" "illegalImportResult" (func $illegalImportResult (result i64)))
 (import "env" "_fabsf" (func $_fabsf (param f32) (result f32)))
 (import "env" "do_i64" (func $do_i64 (result i64)))
 (import "env" "illegalImport" (func $legalimport$illegalImport (param f64 i32 i32 i32)))
 (import "env" "illegalImportResult" (func $legalimport$illegalImportResult (result i32)))
 (import "env" "_fabsf" (func $legalimport$_fabsf (param f64) (result f64)))
 (import "env" "do_i64" (func $legalimport$do_i64 (result i32)))
 (import "env" "memory" (memory $0 256 256))
 (import "env" "table" (table 3 3 anyfunc))
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (global $tempRet0 (mut i32) (i32.const 0))
 (elem (get_global $tableBase) $legalfunc$illegalImport $legalfunc$_fabsf $legalfunc$do_i64)
 (data (get_global $memoryBase) "wasm-only.asm.js")
 (export "test64" (func $test64))
 (export "illegalParam" (func $legalstub$illegalParam))
 (export "illegalResult" (func $legalstub$result))
 (export "keepAlive" (func $keepAlive))
 (func $loads
  (nop)
 )
 (func $stores
  (local $0 i32)
  (local $1 f64)
  (local $2 f32)
  (i32.store8
   (i32.const 100)
   (get_local $0)
  )
  (i32.store8
   (i32.const 101)
   (get_local $0)
  )
  (i32.store16
   (i32.const 102)
   (get_local $0)
  )
  (i32.store16
   (i32.const 103)
   (get_local $0)
  )
  (i32.store16 align=1
   (i32.const 104)
   (get_local $0)
  )
  (i32.store16
   (i32.const 105)
   (get_local $0)
  )
  (i32.store
   (i32.const 106)
   (get_local $0)
  )
  (i32.store
   (i32.const 107)
   (get_local $0)
  )
  (i32.store align=1
   (i32.const 108)
   (get_local $0)
  )
  (i32.store align=2
   (i32.const 109)
   (get_local $0)
  )
  (i32.store
   (i32.const 110)
   (get_local $0)
  )
  (f32.store
   (i32.const 111)
   (get_local $2)
  )
  (f32.store
   (i32.const 112)
   (get_local $2)
  )
  (f32.store align=1
   (i32.const 113)
   (get_local $2)
  )
  (f32.store align=2
   (i32.const 114)
   (get_local $2)
  )
  (f32.store
   (i32.const 115)
   (get_local $2)
  )
  (f64.store
   (i32.const 116)
   (get_local $1)
  )
  (f64.store
   (i32.const 117)
   (get_local $1)
  )
  (f64.store align=1
   (i32.const 118)
   (get_local $1)
  )
  (f64.store align=2
   (i32.const 119)
   (get_local $1)
  )
  (f64.store align=4
   (i32.const 120)
   (get_local $1)
  )
  (f64.store
   (i32.const 121)
   (get_local $1)
  )
 )
 (func $test
  (local $0 f32)
  (local $1 i32)
  (set_local $1
   (i32.reinterpret/f32
    (get_local $0)
   )
  )
 )
 (func $i64u-div (param $0 i64) (param $1 i64) (result i64)
  (if i64
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (i64.div_u
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $i64s-div (param $0 i64) (param $1 i64) (result i64)
  (if i64
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (if i64
    (i32.and
     (i64.eq
      (get_local $0)
      (i64.const -9223372036854775808)
     )
     (i64.eq
      (get_local $1)
      (i64.const -1)
     )
    )
    (i64.const 0)
    (i64.div_s
     (get_local $0)
     (get_local $1)
    )
   )
  )
 )
 (func $i64u-rem (param $0 i64) (param $1 i64) (result i64)
  (if i64
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (i64.rem_u
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $i64s-rem (param $0 i64) (param $1 i64) (result i64)
  (if i64
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (i64.rem_s
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $test64
  (local $0 i64)
  (local $1 i64)
  (local $2 i32)
  (drop
   (call $i64s-rem
    (call $i64u-rem
     (call $i64s-div
      (call $i64u-div
       (i64.mul
        (i64.sub
         (i64.add
          (tee_local $0
           (i64.const 128849018897)
          )
          (i64.const 100)
         )
         (get_local $0)
        )
        (get_local $0)
       )
       (get_local $0)
      )
      (get_local $0)
     )
     (get_local $0)
    )
    (get_local $0)
   )
  )
  (i64.store
   (i32.const 120)
   (tee_local $1
    (i64.load
     (i32.const 120)
    )
   )
  )
  (i64.store
   (i32.const 120)
   (get_local $1)
  )
  (i64.store align=2
   (i32.const 120)
   (get_local $1)
  )
  (i64.store align=4
   (i32.const 120)
   (get_local $1)
  )
  (i64.store
   (i32.const 120)
   (get_local $1)
  )
  (set_local $2
   (i32.wrap/i64
    (get_local $1)
   )
  )
  (set_local $1
   (i64.extend_u/i32
    (get_local $2)
   )
  )
 )
 (func $imports (result i64)
  (call $legalfunc$illegalImport
   (f64.const -3.13159)
   (i64.const 94489280523)
   (i32.const -33)
  )
  (call $legalfunc$illegalImportResult)
 )
 (func $arg (param $0 i64)
  (i64.store
   (i32.const 100)
   (get_local $0)
  )
  (call $arg
   (get_local $0)
  )
 )
 (func $illegalParam (param $0 i32) (param $1 i64) (param $2 f64)
  (i64.store
   (i32.const 100)
   (get_local $1)
  )
  (call $illegalParam
   (i32.const 0)
   (get_local $1)
   (f64.const 12.34)
  )
 )
 (func $result (result i64)
  (i64.const 8589934593)
 )
 (func $call1 (param $0 i64) (result i64)
  (call $call1
   (get_local $0)
  )
 )
 (func $call2 (param $0 i64) (result i64)
  (drop
   (call $call2
    (call $call2
     (get_local $0)
    )
   )
  )
  (i64.const 245127260211081)
 )
 (func $returnCastConst (result i64)
  (i64.const 0)
 )
 (func $ifValue64 (param $0 i64) (param $1 i64) (result i64)
  (if i64
   (i32.wrap/i64
    (get_local $1)
   )
   (call $call2
    (get_local $0)
   )
   (call $call2
    (get_local $0)
   )
  )
 )
 (func $ifValue32 (param $0 i32) (param $1 i32) (result i32)
  (if i32
   (get_local $1)
   (call $ifValue32
    (get_local $0)
    (get_local $1)
   )
   (call $ifValue32
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $switch64 (param $0 i64) (result i32)
  (block $switch i32
   (block $switch-default
    (block $switch-case0
     (block $switch-case
      (br_table $switch-case0 $switch-default $switch-case $switch-default
       (i32.wrap/i64
        (i64.sub
         (get_local $0)
         (i64.const 42949672965)
        )
       )
      )
     )
     (br $switch
      (i32.const 11000)
     )
    )
    (br $switch
     (i32.const 10)
    )
   )
   (i32.const 1)
  )
 )
 (func $unreachable_leftovers (param $0 i32) (param $1 i32) (param $2 i32)
  (block $__rjto$0
   (if
    (i32.eqz
     (get_local $1)
    )
    (block
     (nop)
     (br_if $__rjto$0
      (get_local $2)
     )
     (i32.store
      (get_local $0)
      (i32.const -2)
     )
     (return)
     (br $__rjto$0)
    )
   )
   (i32.store
    (get_local $0)
    (i32.const -1)
   )
  )
 )
 (func $keepAlive
  (call $loads)
  (call $stores)
  (call $test)
  (drop
   (call $imports)
  )
  (call $arg
   (i64.const 0)
  )
  (drop
   (call $call1
    (i64.const 0)
   )
  )
  (drop
   (call $call2
    (i64.const 0)
   )
  )
  (drop
   (call $returnCastConst)
  )
  (drop
   (call $ifValue64
    (i64.const 0)
    (i64.const 0)
   )
  )
  (drop
   (call $ifValue32
    (i32.const 0)
    (i32.const 0)
   )
  )
  (drop
   (call $switch64
    (i64.const 0)
   )
  )
  (call $unreachable_leftovers
   (i32.const 0)
   (i32.const 0)
   (i32.const 0)
  )
 )
 (func $legalstub$illegalParam (param $0 i32) (param $1 i32) (param $2 i32) (param $3 f64)
  (call $illegalParam
   (get_local $0)
   (i64.or
    (i64.extend_u/i32
     (get_local $1)
    )
    (i64.shl
     (i64.extend_u/i32
      (get_local $2)
     )
     (i64.const 32)
    )
   )
   (get_local $3)
  )
 )
 (func $legalstub$result (result i32)
  (local $0 i64)
  (set_local $0
   (call $result)
  )
  (set_global $tempRet0
   (i32.wrap/i64
    (i64.shr_u
     (get_local $0)
     (i64.const 32)
    )
   )
  )
  (i32.wrap/i64
   (get_local $0)
  )
 )
 (func $legalfunc$illegalImport (param $0 f64) (param $1 i64) (param $2 i32)
  (call $legalimport$illegalImport
   (get_local $0)
   (i32.wrap/i64
    (get_local $1)
   )
   (i32.wrap/i64
    (i64.shr_u
     (get_local $1)
     (i64.const 32)
    )
   )
   (get_local $2)
  )
 )
 (func $legalfunc$illegalImportResult (result i64)
  (i64.or
   (i64.extend_u/i32
    (call $legalimport$illegalImportResult)
   )
   (i64.shl
    (i64.extend_u/i32
     (get_global $tempRet0)
    )
    (i64.const 32)
   )
  )
 )
 (func $legalfunc$_fabsf (param $0 f32) (result f32)
  (f32.demote/f64
   (call $legalimport$_fabsf
    (f64.promote/f32
     (get_local $0)
    )
   )
  )
 )
 (func $legalfunc$do_i64 (result i64)
  (i64.or
   (i64.extend_u/i32
    (call $legalimport$do_i64)
   )
   (i64.shl
    (i64.extend_u/i32
     (get_global $tempRet0)
    )
    (i64.const 32)
   )
  )
 )
)
