(module
 (type $FUNCSIG$vdji (func (param f64 i64 i32)))
 (type $FUNCSIG$j (func (result i64)))
 (type $FUNCSIG$ff (func (param f32) (result f32)))
 (type $FUNCSIG$v (func))
 (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" "memory" (memory $memory 256 256))
 (import "env" "table" (table $table 3 3 anyfunc))
 (elem (get_global $__table_base) $legalfunc$illegalImport $legalfunc$_fabsf $legalfunc$do_i64)
 (import "env" "__memory_base" (global $__memory_base i32))
 (import "env" "__table_base" (global $__table_base i32))
 (import "env" "STACKTOP" (global $STACKTOP$asm2wasm$import i32))
 (import "env" "abort" (func $abort))
 (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)))
 (global $STACKTOP (mut i32) (get_global $STACKTOP$asm2wasm$import))
 (global $tempRet0 (mut i32) (i32.const 0))
 (export "test64" (func $test64))
 (export "illegalParam" (func $legalstub$illegalParam))
 (export "illegalResult" (func $legalstub$illegalResult))
 (export "keepAlive" (func $keepAlive))
 (export "getTempRet0" (func $getTempRet0))
 (export "setTempRet0" (func $setTempRet0))
 (func $loads (; 5 ;)
  (local $i i32)
  (local $f f32)
  (local $d f64)
  (set_local $i
   (i32.load8_s
    (i32.const 100)
   )
  )
  (set_local $i
   (i32.load8_s
    (i32.const 101)
   )
  )
  (set_local $i
   (i32.load16_s
    (i32.const 102)
   )
  )
  (set_local $i
   (i32.load16_s
    (i32.const 103)
   )
  )
  (set_local $i
   (i32.load16_s align=1
    (i32.const 104)
   )
  )
  (set_local $i
   (i32.load16_s
    (i32.const 105)
   )
  )
  (set_local $i
   (i32.load
    (i32.const 106)
   )
  )
  (set_local $i
   (i32.load
    (i32.const 107)
   )
  )
  (set_local $i
   (i32.load align=1
    (i32.const 108)
   )
  )
  (set_local $i
   (i32.load align=2
    (i32.const 109)
   )
  )
  (set_local $i
   (i32.load
    (i32.const 110)
   )
  )
  (set_local $f
   (f32.load
    (i32.const 111)
   )
  )
  (set_local $f
   (f32.load
    (i32.const 112)
   )
  )
  (set_local $f
   (f32.load align=1
    (i32.const 113)
   )
  )
  (set_local $f
   (f32.load align=2
    (i32.const 114)
   )
  )
  (set_local $f
   (f32.load
    (i32.const 115)
   )
  )
  (set_local $d
   (f64.load
    (i32.const 116)
   )
  )
  (set_local $d
   (f64.load
    (i32.const 117)
   )
  )
  (set_local $d
   (f64.load align=1
    (i32.const 118)
   )
  )
  (set_local $d
   (f64.load align=2
    (i32.const 119)
   )
  )
  (set_local $d
   (f64.load align=4
    (i32.const 120)
   )
  )
  (set_local $d
   (f64.load
    (i32.const 121)
   )
  )
 )
 (func $stores (; 6 ;)
  (local $i i32)
  (local $f f32)
  (local $d f64)
  (i32.store8
   (i32.const 100)
   (get_local $i)
  )
  (i32.store8
   (i32.const 101)
   (get_local $i)
  )
  (i32.store16
   (i32.const 102)
   (get_local $i)
  )
  (i32.store16
   (i32.const 103)
   (get_local $i)
  )
  (i32.store16 align=1
   (i32.const 104)
   (get_local $i)
  )
  (i32.store16
   (i32.const 105)
   (get_local $i)
  )
  (i32.store
   (i32.const 106)
   (get_local $i)
  )
  (i32.store
   (i32.const 107)
   (get_local $i)
  )
  (i32.store align=1
   (i32.const 108)
   (get_local $i)
  )
  (i32.store align=2
   (i32.const 109)
   (get_local $i)
  )
  (i32.store
   (i32.const 110)
   (get_local $i)
  )
  (f32.store
   (i32.const 111)
   (get_local $f)
  )
  (f32.store
   (i32.const 112)
   (get_local $f)
  )
  (f32.store align=1
   (i32.const 113)
   (get_local $f)
  )
  (f32.store align=2
   (i32.const 114)
   (get_local $f)
  )
  (f32.store
   (i32.const 115)
   (get_local $f)
  )
  (f64.store
   (i32.const 116)
   (get_local $d)
  )
  (f64.store
   (i32.const 117)
   (get_local $d)
  )
  (f64.store align=1
   (i32.const 118)
   (get_local $d)
  )
  (f64.store align=2
   (i32.const 119)
   (get_local $d)
  )
  (f64.store align=4
   (i32.const 120)
   (get_local $d)
  )
  (f64.store
   (i32.const 121)
   (get_local $d)
  )
 )
 (func $test (; 7 ;)
  (local $i i32)
  (local $j i64)
  (local $f f32)
  (local $f1 f32)
  (local $f2 f32)
  (local $d1 f64)
  (local $d2 f64)
  (set_local $i
   (i32.reinterpret/f32
    (get_local $f)
   )
  )
  (set_local $f
   (f32.reinterpret/i32
    (get_local $i)
   )
  )
  (set_local $i
   (i32.ctz
    (get_local $i)
   )
  )
  (set_local $i
   (i32.popcnt
    (get_local $i)
   )
  )
  (set_local $j
   (i64.popcnt
    (get_local $j)
   )
  )
  (set_local $f1
   (f32.copysign
    (get_local $f1)
    (get_local $f2)
   )
  )
  (set_local $d1
   (f64.copysign
    (get_local $d1)
    (get_local $d2)
   )
  )
 )
 (func $i64u-div (; 8 ;) (param $0 i64) (param $1 i64) (result i64)
  (if (result i64)
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (i64.div_u
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $i64s-div (; 9 ;) (param $0 i64) (param $1 i64) (result i64)
  (if (result i64)
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (if (result 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 (; 10 ;) (param $0 i64) (param $1 i64) (result i64)
  (if (result i64)
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (i64.rem_u
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $i64s-rem (; 11 ;) (param $0 i64) (param $1 i64) (result i64)
  (if (result i64)
   (i64.eqz
    (get_local $1)
   )
   (i64.const 0)
   (i64.rem_s
    (get_local $0)
    (get_local $1)
   )
  )
 )
 (func $f32-to-int64 (; 12 ;) (param $0 f32) (result i64)
  (if (result i64)
   (f32.ne
    (get_local $0)
    (get_local $0)
   )
   (i64.const -9223372036854775808)
   (if (result i64)
    (f32.ge
     (get_local $0)
     (f32.const 9223372036854775808)
    )
    (i64.const -9223372036854775808)
    (if (result i64)
     (f32.le
      (get_local $0)
      (f32.const -9223372036854775808)
     )
     (i64.const -9223372036854775808)
     (i64.trunc_s/f32
      (get_local $0)
     )
    )
   )
  )
 )
 (func $f64-to-int64 (; 13 ;) (param $0 f64) (result i64)
  (if (result i64)
   (f64.ne
    (get_local $0)
    (get_local $0)
   )
   (i64.const -9223372036854775808)
   (if (result i64)
    (f64.ge
     (get_local $0)
     (f64.const 9223372036854775808)
    )
    (i64.const -9223372036854775808)
    (if (result i64)
     (f64.le
      (get_local $0)
      (f64.const -9223372036854775808)
     )
     (i64.const -9223372036854775808)
     (i64.trunc_s/f64
      (get_local $0)
     )
    )
   )
  )
 )
 (func $f32-to-uint64 (; 14 ;) (param $0 f32) (result i64)
  (if (result i64)
   (f32.ne
    (get_local $0)
    (get_local $0)
   )
   (i64.const 0)
   (if (result i64)
    (f32.ge
     (get_local $0)
     (f32.const 18446744073709551615)
    )
    (i64.const 0)
    (if (result i64)
     (f32.le
      (get_local $0)
      (f32.const -1)
     )
     (i64.const 0)
     (i64.trunc_u/f32
      (get_local $0)
     )
    )
   )
  )
 )
 (func $f64-to-uint64 (; 15 ;) (param $0 f64) (result i64)
  (if (result i64)
   (f64.ne
    (get_local $0)
    (get_local $0)
   )
   (i64.const 0)
   (if (result i64)
    (f64.ge
     (get_local $0)
     (f64.const 18446744073709551615)
    )
    (i64.const 0)
    (if (result i64)
     (f64.le
      (get_local $0)
      (f64.const -1)
     )
     (i64.const 0)
     (i64.trunc_u/f64
      (get_local $0)
     )
    )
   )
  )
 )
 (func $test64 (; 16 ;)
  (local $x i64)
  (local $y i64)
  (local $z i32)
  (local $int32 i32)
  (local $float32 f32)
  (local $float64 f64)
  (set_local $x
   (i64.const 100)
  )
  (set_local $y
   (i64.const 128849018897)
  )
  (set_local $x
   (i64.add
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.sub
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.mul
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (call $i64u-div
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (call $i64s-div
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (call $i64u-rem
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (call $i64s-rem
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.and
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.or
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.xor
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.shl
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.shr_s
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.shr_u
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $x
   (i64.load
    (i32.const 120)
   )
  )
  (set_local $x
   (i64.load
    (i32.const 120)
   )
  )
  (set_local $x
   (i64.load align=2
    (i32.const 120)
   )
  )
  (set_local $x
   (i64.load align=4
    (i32.const 120)
   )
  )
  (set_local $x
   (i64.load
    (i32.const 120)
   )
  )
  (i64.store
   (i32.const 120)
   (get_local $x)
  )
  (i64.store
   (i32.const 120)
   (get_local $x)
  )
  (i64.store align=2
   (i32.const 120)
   (get_local $x)
  )
  (i64.store align=4
   (i32.const 120)
   (get_local $x)
  )
  (i64.store
   (i32.const 120)
   (get_local $x)
  )
  (set_local $z
   (i64.eq
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.ne
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.le_u
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.le_s
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.ge_u
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.ge_s
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.lt_u
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.lt_s
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.gt_u
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $z
   (i64.gt_s
    (get_local $x)
    (get_local $y)
   )
  )
  (set_local $int32
   (i32.wrap/i64
    (get_local $x)
   )
  )
  (set_local $x
   (i64.extend_s/i32
    (get_local $int32)
   )
  )
  (set_local $x
   (i64.extend_u/i32
    (get_local $int32)
   )
  )
  (set_local $float32
   (f32.convert_s/i64
    (get_local $x)
   )
  )
  (set_local $float64
   (f64.convert_s/i64
    (get_local $x)
   )
  )
  (set_local $float32
   (f32.convert_u/i64
    (get_local $x)
   )
  )
  (set_local $float64
   (f64.convert_u/i64
    (get_local $x)
   )
  )
  (set_local $x
   (call $f32-to-int64
    (get_local $float32)
   )
  )
  (set_local $x
   (call $f64-to-int64
    (get_local $float64)
   )
  )
  (set_local $x
   (call $f32-to-uint64
    (get_local $float32)
   )
  )
  (set_local $x
   (call $f64-to-uint64
    (get_local $float64)
   )
  )
  (set_local $x
   (i64.reinterpret/f64
    (get_local $float64)
   )
  )
  (set_local $float64
   (f64.reinterpret/i64
    (get_local $x)
   )
  )
  (set_local $x
   (i64.clz
    (get_local $y)
   )
  )
  (set_local $y
   (i64.ctz
    (get_local $x)
   )
  )
 )
 (func $imports (; 17 ;) (result i64)
  (call $legalfunc$illegalImport
   (f64.const -3.13159)
   (i64.const 94489280523)
   (i32.const -33)
  )
  (return
   (call $legalfunc$illegalImportResult)
  )
 )
 (func $arg (; 18 ;) (param $x i64)
  (i64.store
   (i32.const 100)
   (get_local $x)
  )
  (call $arg
   (get_local $x)
  )
 )
 (func $illegalParam (; 19 ;) (param $a i32) (param $x i64) (param $b f64)
  (i32.store
   (i32.const 50)
   (get_local $a)
  )
  (i64.store
   (i32.const 100)
   (get_local $x)
  )
  (f64.store
   (i32.const 200)
   (get_local $b)
  )
  (call $illegalParam
   (i32.const 0)
   (get_local $x)
   (f64.const 12.34)
  )
 )
 (func $result (; 20 ;) (result i64)
  (return
   (i64.const 8589934593)
  )
 )
 (func $illegalResult (; 21 ;) (result i64)
  (return
   (i64.const 8589934593)
  )
 )
 (func $call1 (; 22 ;) (param $x i64) (result i64)
  (local $y i64)
  (set_local $y
   (call $call1
    (get_local $x)
   )
  )
  (return
   (get_local $y)
  )
 )
 (func $call2 (; 23 ;) (param $x i64) (result i64)
  (drop
   (call $call2
    (call $call2
     (get_local $x)
    )
   )
  )
  (return
   (i64.const 245127260211081)
  )
 )
 (func $returnCastConst (; 24 ;) (result i64)
  (return
   (i64.const 0)
  )
 )
 (func $ifValue64 (; 25 ;) (param $$4 i64) (param $$6 i64) (result i64)
  (local $$$0 i64)
  (local $$9 i64)
  (local $$10 i64)
  (if
   (i32.wrap/i64
    (get_local $$6)
   )
   (block
    (set_local $$9
     (call $call2
      (get_local $$4)
     )
    )
    (set_local $$$0
     (get_local $$9)
    )
   )
   (block
    (set_local $$10
     (call $call2
      (get_local $$4)
     )
    )
    (set_local $$$0
     (get_local $$10)
    )
   )
  )
  (return
   (get_local $$$0)
  )
 )
 (func $ifValue32 (; 26 ;) (param $$4 i32) (param $$6 i32) (result i32)
  (local $$$0 i32)
  (local $$9 i32)
  (local $$10 i32)
  (if
   (get_local $$6)
   (block
    (set_local $$9
     (call $ifValue32
      (get_local $$4)
      (get_local $$6)
     )
    )
    (set_local $$$0
     (get_local $$9)
    )
   )
   (block
    (set_local $$10
     (call $ifValue32
      (get_local $$4)
      (get_local $$6)
     )
    )
    (set_local $$$0
     (get_local $$10)
    )
   )
  )
  (return
   (get_local $$$0)
  )
 )
 (func $switch64 (; 27 ;) (param $$a444 i64) (result i32)
  (local $$waka i32)
  (local $2 i64)
  (block $switch
   (block $switch-default
    (block $switch-case0
     (block $switch-case
      (br_table $switch-case0 $switch-default $switch-case $switch-default
       (i32.wrap/i64
        (block (result i64)
         (set_local $2
          (i64.sub
           (get_local $$a444)
           (i64.const 42949672965)
          )
         )
         (br_if $switch-default
          (i32.wrap/i64
           (i64.shr_u
            (get_local $2)
            (i64.const 32)
           )
          )
         )
         (get_local $2)
        )
       )
      )
     )
     (block
      (set_local $$waka
       (i32.const 11000)
      )
      (br $switch)
     )
    )
    (block
     (set_local $$waka
      (i32.const 10)
     )
     (br $switch)
    )
   )
   (set_local $$waka
    (i32.const 1)
   )
  )
  (return
   (get_local $$waka)
  )
 )
 (func $unreachable_leftovers (; 28 ;) (param $$0 i32) (param $$1 i32) (param $$2 i32)
  (local $label i32)
  (block $label$break$L1
   (if
    (get_local $$1)
    (set_local $label
     (i32.const 10)
    )
    (block
     (if
      (get_local $$2)
      (block
       (br $label$break$L1)
       (return)
      )
     )
     (i32.store
      (get_local $$0)
      (i32.const -2)
     )
     (return)
    )
   )
  )
  (if
   (i32.eq
    (get_local $label)
    (i32.const 10)
   )
   (i32.store
    (get_local $$0)
    (i32.const -1)
   )
  )
  (return)
 )
 (func $switch64TOOMUCH (; 29 ;) (param $$a444 i64) (result i32)
  (local $$waka i32)
  (local $2 i64)
  (local $3 i32)
  (local $4 i64)
  (local $5 i32)
  (block $switch
   (block $switch-default
    (block $switch-case0
     (block $switch-case
      (set_local $2
       (get_local $$a444)
      )
      (if
       (i64.eq
        (get_local $2)
        (i64.const -9223372036854775808)
       )
       (br $switch-case0)
       (if
        (i64.eq
         (get_local $2)
         (i64.const 4611686018427387904)
        )
        (br $switch-case)
        (br $switch-default)
       )
      )
     )
     (nop)
    )
    (return
     (i32.const 40)
    )
   )
   (set_local $$waka
    (i32.const 1)
   )
  )
  (block $switch1
   (block $switch-default4
    (block $switch-case3
     (block $switch-case2
      (set_local $3
       (i32.const 100)
      )
      (if
       (i32.eq
        (get_local $3)
        (i32.const 214748364)
       )
       (br $switch-case3)
       (if
        (i32.eq
         (get_local $3)
         (i32.const 107374182)
        )
        (br $switch-case2)
        (br $switch-default4)
       )
      )
     )
     (nop)
    )
    (return
     (i32.const 41)
    )
   )
   (set_local $$waka
    (i32.const 1001)
   )
  )
  (block $switch5
   (block $switch-case7
    (block $switch-case6
     (set_local $4
      (get_local $$a444)
     )
     (if
      (i64.eq
       (get_local $4)
       (i64.const -9223372036854775808)
      )
      (br $switch-case7)
      (if
       (i64.eq
        (get_local $4)
        (i64.const 4611686018427387904)
       )
       (br $switch-case6)
       (br $switch5)
      )
     )
    )
    (nop)
   )
   (return
    (i32.const 42)
   )
  )
  (block $switch8
   (block $switch-case10
    (block $switch-case9
     (set_local $5
      (i32.const 100)
     )
     (if
      (i32.eq
       (get_local $5)
       (i32.const 214748364)
      )
      (br $switch-case10)
      (if
       (i32.eq
        (get_local $5)
        (i32.const 107374182)
       )
       (br $switch-case9)
       (br $switch8)
      )
     )
    )
    (nop)
   )
   (return
    (i32.const 43)
   )
  )
  (return
   (i32.const 44)
  )
 )
 (func $_memchr (; 30 ;) (param $$src i32) (param $$c i32) (param $$n i32) (result i32)
  (local $$0 i32)
  (local $$1 i32)
  (local $$2 i32)
  (local $$3 i32)
  (local $$4 i32)
  (local $$5 i32)
  (local $$6 i32)
  (local $$7 i32)
  (local $$and i32)
  (local $$and15 i32)
  (local $$and16 i32)
  (local $$and39 i32)
  (local $$cmp i32)
  (local $$cmp11 i32)
  (local $$cmp1132 i32)
  (local $$cmp28 i32)
  (local $$cmp8 i32)
  (local $$cond i32)
  (local $$conv1 i32)
  (local $$dec i32)
  (local $$dec34 i32)
  (local $$incdec$ptr i32)
  (local $$incdec$ptr21 i32)
  (local $$incdec$ptr33 i32)
  (local $$lnot i32)
  (local $$mul i32)
  (local $$n$addr$0$lcssa i32)
  (local $$n$addr$0$lcssa52 i32)
  (local $$n$addr$043 i32)
  (local $$n$addr$1$lcssa i32)
  (local $$n$addr$133 i32)
  (local $$n$addr$227 i32)
  (local $$n$addr$3 i32)
  (local $$neg i32)
  (local $$or$cond i32)
  (local $$or$cond42 i32)
  (local $$s$0$lcssa i32)
  (local $$s$0$lcssa53 i32)
  (local $$s$044 i32)
  (local $$s$128 i32)
  (local $$s$2 i32)
  (local $$sub i32)
  (local $$sub22 i32)
  (local $$tobool i32)
  (local $$tobool2 i32)
  (local $$tobool2$lcssa i32)
  (local $$tobool241 i32)
  (local $$tobool25 i32)
  (local $$tobool2526 i32)
  (local $$tobool36 i32)
  (local $$tobool40 i32)
  (local $$w$0$lcssa i32)
  (local $$w$034 i32)
  (local $$xor i32)
  (local $label i32)
  (local $sp i32)
  (set_local $sp
   (get_global $STACKTOP)
  )
  (set_local $$conv1
   (i32.and
    (get_local $$c)
    (i32.const 255)
   )
  )
  (set_local $$0
   (get_local $$src)
  )
  (set_local $$and39
   (i32.and
    (get_local $$0)
    (i32.const 3)
   )
  )
  (set_local $$tobool40
   (i32.ne
    (get_local $$and39)
    (i32.const 0)
   )
  )
  (set_local $$tobool241
   (i32.ne
    (get_local $$n)
    (i32.const 0)
   )
  )
  (set_local $$or$cond42
   (i32.and
    (get_local $$tobool241)
    (get_local $$tobool40)
   )
  )
  (block $label$break$L1
   (if
    (get_local $$or$cond42)
    (block
     (set_local $$1
      (i32.and
       (get_local $$c)
       (i32.const 255)
      )
     )
     (set_local $$n$addr$043
      (get_local $$n)
     )
     (set_local $$s$044
      (get_local $$src)
     )
     (loop $while-in
      (block $while-out
       (set_local $$2
        (i32.load8_s
         (get_local $$s$044)
        )
       )
       (set_local $$cmp
        (i32.eq
         (i32.shr_s
          (i32.shl
           (get_local $$2)
           (i32.const 24)
          )
          (i32.const 24)
         )
         (i32.shr_s
          (i32.shl
           (get_local $$1)
           (i32.const 24)
          )
          (i32.const 24)
         )
        )
       )
       (if
        (get_local $$cmp)
        (block
         (set_local $$n$addr$0$lcssa52
          (get_local $$n$addr$043)
         )
         (set_local $$s$0$lcssa53
          (get_local $$s$044)
         )
         (set_local $label
          (i32.const 6)
         )
         (br $label$break$L1)
        )
       )
       (set_local $$incdec$ptr
        (i32.add
         (get_local $$s$044)
         (i32.const 1)
        )
       )
       (set_local $$dec
        (i32.add
         (get_local $$n$addr$043)
         (i32.const -1)
        )
       )
       (set_local $$3
        (get_local $$incdec$ptr)
       )
       (set_local $$and
        (i32.and
         (get_local $$3)
         (i32.const 3)
        )
       )
       (set_local $$tobool
        (i32.ne
         (get_local $$and)
         (i32.const 0)
        )
       )
       (set_local $$tobool2
        (i32.ne
         (get_local $$dec)
         (i32.const 0)
        )
       )
       (set_local $$or$cond
        (i32.and
         (get_local $$tobool2)
         (get_local $$tobool)
        )
       )
       (if
        (get_local $$or$cond)
        (block
         (set_local $$n$addr$043
          (get_local $$dec)
         )
         (set_local $$s$044
          (get_local $$incdec$ptr)
         )
        )
        (block
         (set_local $$n$addr$0$lcssa
          (get_local $$dec)
         )
         (set_local $$s$0$lcssa
          (get_local $$incdec$ptr)
         )
         (set_local $$tobool2$lcssa
          (get_local $$tobool2)
         )
         (set_local $label
          (i32.const 5)
         )
         (br $while-out)
        )
       )
       (br $while-in)
      )
     )
    )
    (block
     (set_local $$n$addr$0$lcssa
      (get_local $$n)
     )
     (set_local $$s$0$lcssa
      (get_local $$src)
     )
     (set_local $$tobool2$lcssa
      (get_local $$tobool241)
     )
     (set_local $label
      (i32.const 5)
     )
    )
   )
  )
  (if
   (i32.eq
    (get_local $label)
    (i32.const 5)
   )
   (if
    (get_local $$tobool2$lcssa)
    (block
     (set_local $$n$addr$0$lcssa52
      (get_local $$n$addr$0$lcssa)
     )
     (set_local $$s$0$lcssa53
      (get_local $$s$0$lcssa)
     )
     (set_local $label
      (i32.const 6)
     )
    )
    (block
     (set_local $$n$addr$3
      (i32.const 0)
     )
     (set_local $$s$2
      (get_local $$s$0$lcssa)
     )
    )
   )
  )
  (block $label$break$L8
   (if
    (i32.eq
     (get_local $label)
     (i32.const 6)
    )
    (block
     (set_local $$4
      (i32.load8_s
       (get_local $$s$0$lcssa53)
      )
     )
     (set_local $$5
      (i32.and
       (get_local $$c)
       (i32.const 255)
      )
     )
     (set_local $$cmp8
      (i32.eq
       (i32.shr_s
        (i32.shl
         (get_local $$4)
         (i32.const 24)
        )
        (i32.const 24)
       )
       (i32.shr_s
        (i32.shl
         (get_local $$5)
         (i32.const 24)
        )
        (i32.const 24)
       )
      )
     )
     (if
      (get_local $$cmp8)
      (block
       (set_local $$n$addr$3
        (get_local $$n$addr$0$lcssa52)
       )
       (set_local $$s$2
        (get_local $$s$0$lcssa53)
       )
      )
      (block
       (set_local $$mul
        (i32.mul
         (get_local $$conv1)
         (i32.const 16843009)
        )
       )
       (set_local $$cmp1132
        (i32.gt_u
         (get_local $$n$addr$0$lcssa52)
         (i32.const 3)
        )
       )
       (block $label$break$L11
        (if
         (get_local $$cmp1132)
         (block
          (set_local $$n$addr$133
           (get_local $$n$addr$0$lcssa52)
          )
          (set_local $$w$034
           (get_local $$s$0$lcssa53)
          )
          (loop $while-in3
           (block $while-out2
            (set_local $$6
             (i32.load
              (get_local $$w$034)
             )
            )
            (set_local $$xor
             (i32.xor
              (get_local $$6)
              (get_local $$mul)
             )
            )
            (set_local $$sub
             (i32.add
              (get_local $$xor)
              (i32.const -16843009)
             )
            )
            (set_local $$neg
             (i32.and
              (get_local $$xor)
              (i32.const -2139062144)
             )
            )
            (set_local $$and15
             (i32.xor
              (get_local $$neg)
              (i32.const -2139062144)
             )
            )
            (set_local $$and16
             (i32.and
              (get_local $$and15)
              (get_local $$sub)
             )
            )
            (set_local $$lnot
             (i32.eq
              (get_local $$and16)
              (i32.const 0)
             )
            )
            (if
             (i32.eqz
              (get_local $$lnot)
             )
             (br $while-out2)
            )
            (set_local $$incdec$ptr21
             (i32.add
              (get_local $$w$034)
              (i32.const 4)
             )
            )
            (set_local $$sub22
             (i32.add
              (get_local $$n$addr$133)
              (i32.const -4)
             )
            )
            (set_local $$cmp11
             (i32.gt_u
              (get_local $$sub22)
              (i32.const 3)
             )
            )
            (if
             (get_local $$cmp11)
             (block
              (set_local $$n$addr$133
               (get_local $$sub22)
              )
              (set_local $$w$034
               (get_local $$incdec$ptr21)
              )
             )
             (block
              (set_local $$n$addr$1$lcssa
               (get_local $$sub22)
              )
              (set_local $$w$0$lcssa
               (get_local $$incdec$ptr21)
              )
              (set_local $label
               (i32.const 11)
              )
              (br $label$break$L11)
             )
            )
            (br $while-in3)
           )
          )
          (set_local $$n$addr$227
           (get_local $$n$addr$133)
          )
          (set_local $$s$128
           (get_local $$w$034)
          )
         )
         (block
          (set_local $$n$addr$1$lcssa
           (get_local $$n$addr$0$lcssa52)
          )
          (set_local $$w$0$lcssa
           (get_local $$s$0$lcssa53)
          )
          (set_local $label
           (i32.const 11)
          )
         )
        )
       )
       (if
        (i32.eq
         (get_local $label)
         (i32.const 11)
        )
        (block
         (set_local $$tobool2526
          (i32.eq
           (get_local $$n$addr$1$lcssa)
           (i32.const 0)
          )
         )
         (if
          (get_local $$tobool2526)
          (block
           (set_local $$n$addr$3
            (i32.const 0)
           )
           (set_local $$s$2
            (get_local $$w$0$lcssa)
           )
           (br $label$break$L8)
          )
          (block
           (set_local $$n$addr$227
            (get_local $$n$addr$1$lcssa)
           )
           (set_local $$s$128
            (get_local $$w$0$lcssa)
           )
          )
         )
        )
       )
       (loop $while-in5
        (block $while-out4
         (set_local $$7
          (i32.load8_s
           (get_local $$s$128)
          )
         )
         (set_local $$cmp28
          (i32.eq
           (i32.shr_s
            (i32.shl
             (get_local $$7)
             (i32.const 24)
            )
            (i32.const 24)
           )
           (i32.shr_s
            (i32.shl
             (get_local $$5)
             (i32.const 24)
            )
            (i32.const 24)
           )
          )
         )
         (if
          (get_local $$cmp28)
          (block
           (set_local $$n$addr$3
            (get_local $$n$addr$227)
           )
           (set_local $$s$2
            (get_local $$s$128)
           )
           (br $label$break$L8)
          )
         )
         (set_local $$incdec$ptr33
          (i32.add
           (get_local $$s$128)
           (i32.const 1)
          )
         )
         (set_local $$dec34
          (i32.add
           (get_local $$n$addr$227)
           (i32.const -1)
          )
         )
         (set_local $$tobool25
          (i32.eq
           (get_local $$dec34)
           (i32.const 0)
          )
         )
         (if
          (get_local $$tobool25)
          (block
           (set_local $$n$addr$3
            (i32.const 0)
           )
           (set_local $$s$2
            (get_local $$incdec$ptr33)
           )
           (br $while-out4)
          )
          (block
           (set_local $$n$addr$227
            (get_local $$dec34)
           )
           (set_local $$s$128
            (get_local $$incdec$ptr33)
           )
          )
         )
         (br $while-in5)
        )
       )
      )
     )
    )
   )
  )
  (set_local $$tobool36
   (i32.ne
    (get_local $$n$addr$3)
    (i32.const 0)
   )
  )
  (set_local $$cond
   (if (result i32)
    (get_local $$tobool36)
    (get_local $$s$2)
    (i32.const 0)
   )
  )
  (return
   (get_local $$cond)
  )
 )
 (func $switch64_big_condition1 (; 31 ;) (param $$x i64)
  (local $1 i64)
  (block $switch
   (block $switch-default
    (block $switch-case
     (br_table $switch-case $switch-default
      (i32.wrap/i64
       (block (result i64)
        (set_local $1
         (i64.sub
          (get_local $$x)
          (i64.const 9218868437227405312)
         )
        )
        (br_if $switch-default
         (i32.wrap/i64
          (i64.shr_u
           (get_local $1)
           (i64.const 32)
          )
         )
        )
        (get_local $1)
       )
      )
     )
    )
    (block
     (call $abort)
     (br $switch)
    )
   )
   (return)
  )
 )
 (func $switch64_big_condition2 (; 32 ;) (param $$x i64)
  (local $1 i64)
  (block $switch
   (block $switch-case
    (br_table $switch-case $switch
     (i32.wrap/i64
      (block (result i64)
       (set_local $1
        (i64.sub
         (get_local $$x)
         (i64.const 9218868437227405312)
        )
       )
       (br_if $switch
        (i32.wrap/i64
         (i64.shr_u
          (get_local $1)
          (i64.const 32)
         )
        )
       )
       (get_local $1)
      )
     )
    )
   )
   (block
    (call $abort)
    (br $switch)
   )
  )
 )
 (func $keepAlive (; 33 ;)
  (call $loads)
  (call $loads)
  (call $stores)
  (call $stores)
  (call $test)
  (call $test)
  (drop
   (call $imports)
  )
  (drop
   (call $imports)
  )
  (call $arg
   (i64.const 0)
  )
  (call $arg
   (i64.const 0)
  )
  (drop
   (call $call1
    (i64.const 0)
   )
  )
  (drop
   (call $call1
    (i64.const 0)
   )
  )
  (drop
   (call $call2
    (i64.const 0)
   )
  )
  (drop
   (call $call2
    (i64.const 0)
   )
  )
  (drop
   (call $returnCastConst)
  )
  (drop
   (call $returnCastConst)
  )
  (drop
   (call $ifValue64
    (i64.const 0)
    (i64.const 0)
   )
  )
  (drop
   (call $ifValue64
    (i64.const 0)
    (i64.const 0)
   )
  )
  (drop
   (call $ifValue32
    (i32.const 0)
    (i32.const 0)
   )
  )
  (drop
   (call $ifValue32
    (i32.const 0)
    (i32.const 0)
   )
  )
  (drop
   (call $switch64
    (i64.const 0)
   )
  )
  (drop
   (call $switch64
    (i64.const 0)
   )
  )
  (call $unreachable_leftovers
   (i32.const 0)
   (i32.const 0)
   (i32.const 0)
  )
  (call $unreachable_leftovers
   (i32.const 0)
   (i32.const 0)
   (i32.const 0)
  )
  (drop
   (call $_memchr
    (i32.const 0)
    (i32.const 0)
    (i32.const 0)
   )
  )
  (drop
   (call $switch64TOOMUCH
    (i64.const 0)
   )
  )
  (call $switch64_big_condition1
   (i64.const 0)
  )
  (call $switch64_big_condition2
   (i64.const 0)
  )
 )
 (func $__emscripten_dceable_type_decls (; 34 ;)
  (drop
   (call $legalfunc$_fabsf
    (f32.const 0)
   )
  )
  (drop
   (call $legalfunc$do_i64)
  )
 )
 (func $legalstub$illegalParam (; 35 ;) (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$illegalResult (; 36 ;) (result i32)
  (local $0 i64)
  (set_local $0
   (call $illegalResult)
  )
  (set_global $tempRet0
   (i32.wrap/i64
    (i64.shr_u
     (get_local $0)
     (i64.const 32)
    )
   )
  )
  (i32.wrap/i64
   (get_local $0)
  )
 )
 (func $legalfunc$illegalImport (; 37 ;) (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 (; 38 ;) (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 (; 39 ;) (param $0 f32) (result f32)
  (f32.demote/f64
   (call $legalimport$_fabsf
    (f64.promote/f32
     (get_local $0)
    )
   )
  )
 )
 (func $legalfunc$do_i64 (; 40 ;) (result i64)
  (i64.or
   (i64.extend_u/i32
    (call $legalimport$do_i64)
   )
   (i64.shl
    (i64.extend_u/i32
     (get_global $tempRet0)
    )
    (i64.const 32)
   )
  )
 )
 (func $getTempRet0 (; 41 ;) (result i32)
  (get_global $tempRet0)
 )
 (func $setTempRet0 (; 42 ;) (param $0 i32)
  (set_global $tempRet0
   (get_local $0)
  )
 )
)
