(module
 (type $FUNCSIG$id (func (param f64) (result i32)))
 (type $FUNCSIG$ddd (func (param f64 f64) (result f64)))
 (type $FUNCSIG$vf (func (param f32)))
 (type $FUNCSIG$vi (func (param i32)))
 (type $FUNCSIG$v (func))
 (type $FUNCSIG$idi (func (param f64 i32) (result i32)))
 (type $FUNCSIG$ii (func (param i32) (result i32)))
 (type $FUNCSIG$dd (func (param f64) (result f64)))
 (type $FUNCSIG$i (func (result i32)))
 (import "env" "gb" (global $n$asm2wasm$import i32))
 (import "env" "setTempRet0" (func $setTempRet0 (param i32) (result i32)))
 (import "env" "abort" (func $abort (param f64) (result f64)))
 (import "env" "print" (func $print (param i32)))
 (import "env" "h" (func $h (param i32)))
 (import "env" "return_int" (func $return_int (result i32)))
 (import "asm2wasm" "f64-to-int" (func $f64-to-int (param f64) (result i32)))
 (import "asm2wasm" "f64-rem" (func $f64-rem (param f64 f64) (result f64)))
 (import "env" "memory" (memory $0 256 256))
 (import "env" "table" (table 24 24 anyfunc))
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (global $Int (mut i32) (i32.const 0))
 (global $Double (mut f64) (f64.const 0))
 (global $n (mut i32) (get_global $n$asm2wasm$import))
 (global $exportedNumber i32 (i32.const 42))
 (elem (get_global $tableBase) $big_negative $big_negative $big_negative $big_negative $w $w $importedDoubles $w $fr $cneg $fr $fr $fr $fr $fr $fr $vi $vi $vi $vi $vi $vi $vi $vi)
 (data (get_global $memoryBase) "unit.asm.js")
 (export "big_negative" (func $big_negative))
 (export "pick" (func $big_negative))
 (export "doubleCompares" (func $doubleCompares))
 (export "intOps" (func $intOps))
 (export "conversions" (func $conversions))
 (export "switcher" (func $switcher))
 (export "frem" (func $frem))
 (export "big_uint_div_u" (func $big_uint_div_u))
 (export "fr" (func $legalstub$fr))
 (export "negZero" (func $negZero))
 (export "neg" (func $neg))
 (export "smallCompare" (func $smallCompare))
 (export "cneg_nosemicolon" (func $cneg_nosemicolon))
 (export "forLoop" (func $forLoop))
 (export "ceiling_32_64" (func $legalstub$ceiling_32_64))
 (export "aborts" (func $aborts))
 (export "continues" (func $continues))
 (export "bitcasts" (func $legalstub$bitcasts))
 (export "recursiveBlockMerging" (func $recursiveBlockMerging))
 (export "lb" (func $lb))
 (export "zeroInit" (func $zeroInit))
 (export "phi" (func $phi))
 (export "smallIf" (func $smallIf))
 (export "dropCall" (func $dropCall))
 (export "useSetGlobal" (func $useSetGlobal))
 (export "usesSetGlobal2" (func $usesSetGlobal2))
 (export "breakThroughMany" (func $breakThroughMany))
 (export "ifChainEmpty" (func $ifChainEmpty))
 (export "heap8NoShift" (func $heap8NoShift))
 (export "conditionalTypeFun" (func $conditionalTypeFun))
 (export "loadSigned" (func $loadSigned))
 (export "globalOpts" (func $globalOpts))
 (export "dropCallImport" (func $dropCallImport))
 (export "loophi" (func $loophi))
 (export "loophi2" (func $loophi2))
 (export "relooperJumpThreading" (func $relooperJumpThreading))
 (export "relooperJumpThreading__ZN4game14preloadweaponsEv" (func $relooperJumpThreading__ZN4game14preloadweaponsEv))
 (export "__Z12multi_varargiz" (func $__Z12multi_varargiz))
 (export "jumpThreadDrop" (func $jumpThreadDrop))
 (export "dropIgnoredImportInIf" (func $dropIgnoredImportInIf))
 (export "dropIgnoredImportsInIf" (func $dropIgnoredImportsInIf))
 (export "relooperJumpThreading_irreducible" (func $relooperJumpThreading_irreducible))
 (export "store_fround" (func $store_fround))
 (export "exportedNumber" (global $exportedNumber))
 (export "relocatableAndModules" (func $relocatableAndModules))
 (export "exported_f32_user" (func $legalstub$exported_f32_user))
 (export "keepAlive" (func $keepAlive))
 (func $big_negative
  (nop)
 )
 (func $importedDoubles (result f64)
  (if
   (i32.gt_s
    (get_global $Int)
    (i32.const 0)
   )
   (return
    (f64.const -3.4)
   )
  )
  (if
   (f64.gt
    (get_global $Double)
    (f64.const 0)
   )
   (return
    (f64.const 5.6)
   )
  )
  (f64.const 1.2)
 )
 (func $doubleCompares (param $0 f64) (param $1 f64) (result f64)
  (local $2 f64)
  (local $3 i32)
  (if
   (f64.gt
    (get_local $0)
    (f64.const 0)
   )
   (return
    (f64.const 1.2)
   )
  )
  (if
   (f64.gt
    (get_local $2)
    (f64.const 0)
   )
   (return
    (f64.const -3.4)
   )
  )
  (if
   (i32.gt_s
    (get_local $3)
    (i32.const 0)
   )
   (return
    (f64.const 5.6)
   )
  )
  (if
   (f64.lt
    (get_local $0)
    (get_local $1)
   )
   (return
    (get_local $0)
   )
  )
  (get_local $1)
 )
 (func $intOps (result i32)
  (local $0 i32)
  (i32.eqz
   (get_local $0)
  )
 )
 (func $conversions
  (local $0 f64)
  (local $1 f32)
  (drop
   (call $f64-to-int
    (get_local $0)
   )
  )
  (drop
   (call $f64-to-int
    (f64.promote/f32
     (get_local $1)
    )
   )
  )
 )
 (func $switcher (param $0 i32) (result i32)
  (block $switch
   (block $switch-case0
    (block $switch-case
     (br_table $switch-case $switch-case0 $switch
      (i32.sub
       (get_local $0)
       (i32.const 1)
      )
     )
    )
    (return
     (i32.const 1)
    )
   )
   (return
    (i32.const 2)
   )
  )
  (block $switch1
   (block $switch-case3
    (block $switch-case2
     (br_table $switch-case3 $switch1 $switch1 $switch1 $switch1 $switch1 $switch1 $switch-case2 $switch1
      (i32.sub
       (get_local $0)
       (i32.const 5)
      )
     )
    )
    (return
     (i32.const 121)
    )
   )
   (return
    (i32.const 51)
   )
  )
  (block $label$break$Lout
   (block $switch-case9
    (block $switch-case6
     (block $switch-case5
      (block $switch-case4
       (br_table $switch-case9 $label$break$Lout $label$break$Lout $switch-case6 $label$break$Lout $label$break$Lout $label$break$Lout $label$break$Lout $switch-case5 $label$break$Lout $switch-case4 $label$break$Lout
        (i32.sub
         (get_local $0)
         (i32.const 2)
        )
       )
      )
     )
    )
   )
  )
  (loop $label$continue$L1
   (block $label$break$L1
    (loop $label$continue$L3
     (block $label$break$L3
      (block $switch-default
       (block $switch-case13
        (block $switch-case12
         (block $switch-case11
          (br_table $switch-case11 $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-default $switch-case13 $switch-default $switch-default $switch-default $switch-default $switch-default $switch-case12 $switch-default
           (i32.sub
            (get_local $0)
            (i32.const -1)
           )
          )
         )
         (br $label$break$L1)
        )
        (br $label$continue$L3)
       )
       (br $label$break$L3)
      )
      (br $label$break$L1)
     )
    )
    (call $h
     (i32.const 120)
    )
    (br $label$continue$L1)
   )
  )
  (i32.const 0)
 )
 (func $frem (result f64)
  (call $f64-rem
   (f64.const 5.5)
   (f64.const 1.2)
  )
 )
 (func $i32u-div (param $0 i32) (param $1 i32) (result i32)
  (if i32
   (get_local $1)
   (i32.div_u
    (get_local $0)
    (get_local $1)
   )
   (i32.const 0)
  )
 )
 (func $big_uint_div_u (result i32)
  (call $i32u-div
   (i32.const -1)
   (i32.const 2)
  )
 )
 (func $fr (param $0 f32)
  (nop)
 )
 (func $negZero (result f64)
  (f64.const -0)
 )
 (func $neg
  (local $0 f32)
  (call_indirect $FUNCSIG$vf
   (f32.neg
    (get_local $0)
   )
   (i32.const 9)
  )
 )
 (func $cneg (param $0 f32)
  (call_indirect $FUNCSIG$vf
   (get_local $0)
   (i32.const 9)
  )
 )
 (func $smallCompare (result i32)
  (local $0 i32)
  (local $1 i32)
  (if
   (i32.lt_s
    (get_local $0)
    (get_local $1)
   )
   (set_local $0
    (i32.add
     (get_local $0)
     (i32.const 1)
    )
   )
  )
  (if
   (i32.lt_u
    (get_local $0)
    (get_local $1)
   )
   (set_local $0
    (i32.add
     (get_local $0)
     (i32.const 1)
    )
   )
  )
  (get_local $0)
 )
 (func $cneg_nosemicolon
  (call_indirect $FUNCSIG$vi
   (i32.const 1)
   (i32.const 17)
  )
 )
 (func $forLoop
  (local $0 i32)
  (set_local $0
   (i32.const 1)
  )
  (loop $for-in
   (if
    (i32.lt_s
     (get_local $0)
     (i32.const 200)
    )
    (block
     (call $h
      (get_local $0)
     )
     (set_local $0
      (i32.add
       (get_local $0)
       (i32.const 1)
      )
     )
     (br $for-in)
    )
   )
  )
 )
 (func $ceiling_32_64 (param $0 f32) (param $1 f64)
  (nop)
 )
 (func $aborts
  (drop
   (call $abort
    (f64.const 0)
   )
  )
  (drop
   (call $abort
    (f64.convert_s/i32
     (i32.const 55)
    )
   )
  )
  (drop
   (call $abort
    (f64.const 0)
   )
  )
  (drop
   (call $abort
    (f64.const 12.34)
   )
  )
  (drop
   (call $abort
    (f64.const 56.779998779296875)
   )
  )
 )
 (func $continues
  (loop $while-in
   (call $print
    (i32.const 1)
   )
   (loop $unlikely-continue
    (call $print
     (i32.const 5)
    )
    (br_if $unlikely-continue
     (call $return_int)
    )
   )
   (call $print
    (i32.const 2)
   )
   (br $while-in)
  )
 )
 (func $bitcasts (param $0 i32) (param $1 f32)
  (nop)
 )
 (func $recursiveBlockMerging (param $0 i32) (result i32)
  (drop
   (call $lb
    (i32.add
     (get_local $0)
     (i32.const 22)
    )
   )
  )
  (drop
   (call $lb
    (i32.const 1)
   )
  )
  (drop
   (call $lb
    (i32.const 2)
   )
  )
  (i32.add
   (i32.add
    (i32.add
     (get_local $0)
     (call $lb
      (i32.const 3)
     )
    )
    (block i32
     (drop
      (call $lb
       (i32.const 4)
      )
     )
     (drop
      (call $lb
       (i32.const 5)
      )
     )
     (drop
      (call $lb
       (i32.const 6)
      )
     )
     (call $lb
      (i32.const 7)
     )
    )
   )
   (block i32
    (drop
     (call $lb
      (i32.const 8)
     )
    )
    (drop
     (call $lb
      (i32.const 9)
     )
    )
    (drop
     (call $lb
      (i32.const 10)
     )
    )
    (drop
     (call $lb
      (i32.const 11)
     )
    )
    (call $lb
     (i32.const 12)
    )
   )
  )
 )
 (func $lb (param $0 i32) (result i32)
  (i32.store
   (get_local $0)
   (i32.add
    (get_global $n)
    (i32.const 144)
   )
  )
  (i32.const 0)
 )
 (func $zeroInit (param $0 i32)
  (local $1 i32)
  (if
   (call $lb
    (i32.const 0)
   )
   (if
    (call $lb
     (i32.const 1)
    )
    (set_local $1
     (i32.const 3)
    )
   )
   (set_local $1
    (i32.const 3)
   )
  )
  (if
   (i32.eq
    (get_local $1)
    (i32.const 3)
   )
   (drop
    (call $lb
     (i32.const 2)
    )
   )
  )
 )
 (func $phi (result i32)
  (block $do-once i32
   (drop
    (br_if $do-once
     (i32.const 0)
     (call $lb
      (i32.const 1)
     )
    )
   )
   (i32.const 1)
  )
 )
 (func $smallIf
  (if
   (call $return_int)
   (drop
    (call $lb
     (i32.const 3)
    )
   )
  )
 )
 (func $dropCall (result i32)
  (if
   (call $return_int)
   (block
    (drop
     (call $phi)
    )
    (drop
     (call $setTempRet0
      (i32.const 10)
     )
    )
    (call $zeroInit
     (call $setTempRet0
      (i32.const 10)
     )
    )
   )
  )
  (call $phi)
 )
 (func $useSetGlobal (result i32)
  (set_global $Int
   (i32.const 10)
  )
  (set_global $Int
   (i32.const 20)
  )
  (set_global $Int
   (i32.const 30)
  )
  (get_global $Int)
 )
 (func $usesSetGlobal2 (result i32)
  (set_global $Int
   (i32.const 40)
  )
  (i32.const 50)
 )
 (func $breakThroughMany (param $0 i32)
  (block $label$break$L1
   (if
    (get_local $0)
    (loop $while-in
     (br_if $label$break$L1
      (i32.eqz
       (get_local $0)
      )
     )
     (call $zeroInit
      (i32.const 0)
     )
     (br $while-in)
    )
   )
  )
 )
 (func $ifChainEmpty (param $0 i32) (result i32)
  (if
   (i32.eq
    (get_local $0)
    (i32.const 4)
   )
   (return
    (i32.const 0)
   )
  )
  (i32.const 0)
 )
 (func $heap8NoShift (param $0 i32) (result i32)
  (i32.load8_s
   (get_local $0)
  )
 )
 (func $conditionalTypeFun
  (drop
   (if i32
    (call $return_int)
    (i32.trunc_s/f64
     (call $abort
      (f64.convert_s/i32
       (i32.const 5)
      )
     )
    )
    (i32.const 2)
   )
  )
  (drop
   (if f64
    (call $return_int)
    (call $abort
     (f64.convert_s/i32
      (i32.const 7)
     )
    )
    (f64.const 4.5)
   )
  )
 )
 (func $loadSigned (param $0 i32)
  (call $loadSigned
   (i32.load8_s
    (get_local $0)
   )
  )
  (call $loadSigned
   (i32.load8_s
    (get_local $0)
   )
  )
  (call $loadSigned
   (i32.load16_s
    (get_local $0)
   )
  )
  (call $loadSigned
   (i32.load16_s
    (get_local $0)
   )
  )
  (call $loadSigned
   (i32.shr_s
    (i32.shl
     (i32.load8_s
      (get_local $0)
     )
     (i32.const 24)
    )
    (i32.const 16)
   )
  )
  (call $loadSigned
   (i32.shr_s
    (i32.shl
     (i32.load8_u
      (get_local $0)
     )
     (i32.const 16)
    )
    (i32.const 24)
   )
  )
  (call $loadSigned
   (i32.shr_s
    (i32.shl
     (i32.load16_s
      (get_local $0)
     )
     (i32.const 16)
    )
    (i32.const 24)
   )
  )
  (call $loadSigned
   (i32.shl
    (i32.load16_s
     (get_local $0)
    )
    (i32.const 8)
   )
  )
 )
 (func $w (result f64)
  (f64.const 0)
 )
 (func $globalOpts
  (local $0 i32)
  (i32.store8
   (i32.const 13)
   (i32.load
    (i32.const 12)
   )
  )
  (call $globalOpts)
  (set_local $0
   (get_global $Int)
  )
  (if
   (call $return_int)
   (set_global $Int
    (i32.const 20)
   )
  )
  (set_global $Int
   (get_local $0)
  )
  (call $globalOpts)
  (set_local $0
   (get_global $Int)
  )
  (call $globalOpts)
  (set_global $Int
   (get_local $0)
  )
 )
 (func $dropCallImport
  (if
   (call $return_int)
   (drop
    (call $return_int)
   )
  )
 )
 (func $loophi (param $0 i32) (param $1 i32)
  (local $2 i32)
  (loop $while-in
   (block $while-out
    (call $loophi
     (get_local $0)
     (i32.const 0)
    )
    (if
     (tee_local $2
      (get_local $0)
     )
     (br_if $while-out
      (get_local $2)
     )
    )
    (br_if $while-in
     (i32.eq
      (tee_local $0
       (i32.add
        (get_local $0)
        (i32.const 1)
       )
      )
      (get_local $1)
     )
    )
   )
  )
 )
 (func $loophi2 (result i32)
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (set_local $1
   (i32.const 0)
  )
  (loop $label$continue$L7
   (block $label$break$L7
    (set_local $0
     (i32.const 0)
    )
    (loop $while-in
     (set_local $2
      (get_local $0)
     )
     (if
      (call $return_int)
      (br_if $label$break$L7
       (get_local $2)
      )
     )
     (br_if $while-in
      (tee_local $0
       (i32.add
        (get_local $0)
        (i32.const 1)
       )
      )
     )
    )
    (br $label$continue$L7)
   )
  )
  (get_local $1)
 )
 (func $relooperJumpThreading (param $0 i32) (result i32)
  (block $__rjto$0
   (block $__rjti$0
    (if
     (get_local $0)
     (block
      (call $h
       (i32.const 0)
      )
      (br $__rjti$0)
     )
    )
    (br $__rjto$0)
   )
   (call $h
    (i32.const 1)
   )
  )
  (call $h
   (i32.const -1)
  )
  (block $__rjti$1
   (loop $while-in
    (br_if $while-in
     (i32.eqz
      (tee_local $0
       (i32.add
        (get_local $0)
        (i32.const 1)
       )
      )
     )
    )
    (call $h
     (i32.const 2)
    )
    (br $__rjti$1)
   )
  )
  (call $h
   (i32.const 3)
  )
  (call $h
   (i32.const -2)
  )
  (block $__rjto$3
   (block $__rjti$3
    (block $__rjti$2
     (if
      (get_local $0)
      (block
       (call $h
        (i32.const 4)
       )
       (br_if $__rjti$2
        (i32.eq
         (get_local $0)
         (i32.const 3)
        )
       )
       (br $__rjti$3)
      )
     )
     (br $__rjto$3)
    )
    (call $h
     (i32.const 5)
    )
    (br $__rjto$3)
   )
   (call $h
    (i32.const 6)
   )
  )
  (call $h
   (i32.const -3)
  )
  (block $__rjto$5
   (block $__rjti$5
    (block $__rjti$4
     (if
      (get_local $0)
      (block
       (call $h
        (i32.const 7)
       )
       (br_if $__rjti$4
        (i32.eq
         (get_local $0)
         (i32.const 5)
        )
       )
       (br $__rjti$5)
      )
     )
     (br $__rjto$5)
    )
    (call $h
     (i32.const 8)
    )
    (br_if $__rjti$5
     (i32.eq
      (get_local $0)
      (i32.const 6)
     )
    )
    (br $__rjto$5)
   )
   (call $h
    (i32.const 9)
   )
  )
  (call $h
   (i32.const -4)
  )
  (block $label$break$L1
   (block $__rjti$6
    (if
     (get_local $0)
     (block
      (call $h
       (i32.const 10)
      )
      (br $__rjti$6)
     )
    )
    (br $label$break$L1)
   )
   (call $h
    (i32.const 11)
   )
  )
  (call $h
   (i32.const -5)
  )
  (block $label$break$L10
   (block $__rjti$8
    (block $__rjti$7
     (if
      (get_local $0)
      (block
       (call $h
        (i32.const 12)
       )
       (br_if $__rjti$7
        (i32.eq
         (get_local $0)
         (i32.const 8)
        )
       )
       (br $__rjti$8)
      )
     )
     (br $label$break$L10)
    )
    (call $h
     (i32.const 13)
    )
    (br_if $__rjti$8
     (get_local $0)
    )
    (br $label$break$L10)
   )
   (call $h
    (i32.const 14)
   )
  )
  (call $h
   (i32.const -6)
  )
  (get_local $0)
 )
 (func $relooperJumpThreading__ZN4game14preloadweaponsEv
  (local $0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (loop $while-in
   (block $__rjto$1
    (block $__rjti$1
     (if
      (get_local $0)
      (br_if $__rjti$1
       (i32.eqz
        (get_local $1)
       )
      )
      (br_if $__rjti$1
       (i32.eqz
        (get_local $2)
       )
      )
     )
     (br $while-in)
    )
    (i32.store
     (get_local $3)
     (get_local $4)
    )
   )
   (br $while-in)
  )
 )
 (func $relooperJumpThreading_irreducible (param $0 i32)
  (local $1 i32)
  (if
   (i32.eq
    (get_local $0)
    (i32.const 100)
   )
   (loop $while-in
    (call $relooperJumpThreading_irreducible
     (i32.const 1337)
    )
    (br $while-in)
   )
  )
  (set_local $1
   (select
    (i32.const 2)
    (i32.const 10)
    (i32.eq
     (get_local $0)
     (i32.const 200)
    )
   )
  )
  (if
   (i32.eq
    (get_local $0)
    (i32.const 300)
   )
   (set_local $1
    (i32.const 2)
   )
  )
  (if
   (i32.eq
    (get_local $1)
    (i32.const 2)
   )
   (call $relooperJumpThreading_irreducible
    (i32.const 1448)
   )
  )
  (if
   (i32.eq
    (get_local $1)
    (i32.const 10)
   )
   (call $relooperJumpThreading_irreducible
    (i32.const 2000)
   )
  )
 )
 (func $__Z12multi_varargiz (param $0 i32)
  (local $1 i32)
  (local $2 i32)
  (if
   (get_local $1)
   (loop $while-in
    (br_if $while-in
     (i32.eqz
      (get_local $2)
     )
    )
   )
   (drop
    (call $lb
     (i32.const 1)
    )
   )
  )
 )
 (func $jumpThreadDrop (result i32)
  (call $return_int)
 )
 (func $dropIgnoredImportInIf (param $0 i32) (param $1 i32) (param $2 i32)
  (if
   (get_local $0)
   (drop
    (call $lb
     (get_local $2)
    )
   )
  )
 )
 (func $dropIgnoredImportsInIf (param $0 i32) (param $1 i32) (param $2 i32)
  (drop
   (if i32
    (get_local $0)
    (call $lb
     (get_local $1)
    )
    (call $lb
     (get_local $2)
    )
   )
  )
 )
 (func $store_fround (param $0 i32)
  (f64.store
   (i32.const 80)
   (f64.promote/f32
    (f32.convert_s/i32
     (get_local $0)
    )
   )
  )
 )
 (func $relocatableAndModules (result i32)
  (call_indirect $FUNCSIG$v
   (i32.const 10)
  )
  (call_indirect $FUNCSIG$v
   (i32.const 20)
  )
  (call_indirect $FUNCSIG$idi
   (f64.const 1.5)
   (i32.const 200)
   (i32.const 30)
  )
 )
 (func $exported_f32_user (param $0 i32) (param $1 f32) (param $2 f64) (result f32)
  (get_local $1)
 )
 (func $sqrts (param $0 f64) (result f64)
  (f64.add
   (f64.sqrt
    (get_local $0)
   )
   (f64.promote/f32
    (f32.sqrt
     (f32.demote/f64
      (get_local $0)
     )
    )
   )
  )
 )
 (func $keepAlive
  (drop
   (call $sqrts
    (f64.const 3.14159)
   )
  )
 )
 (func $vi (param $0 i32)
  (nop)
 )
 (func $legalstub$fr (param $0 f64)
  (call $fr
   (f32.demote/f64
    (get_local $0)
   )
  )
 )
 (func $legalstub$ceiling_32_64 (param $0 f64) (param $1 f64)
  (call $ceiling_32_64
   (f32.demote/f64
    (get_local $0)
   )
   (get_local $1)
  )
 )
 (func $legalstub$bitcasts (param $0 i32) (param $1 f64)
  (call $bitcasts
   (get_local $0)
   (f32.demote/f64
    (get_local $1)
   )
  )
 )
 (func $legalstub$exported_f32_user (param $0 i32) (param $1 f64) (param $2 f64) (result f64)
  (f64.promote/f32
   (call $exported_f32_user
    (get_local $0)
    (f32.demote/f64
     (get_local $1)
    )
    (get_local $2)
   )
  )
 )
)
