(module
 (type $none_=>_none (func))
 (type $none_=>_i64 (func (result i64)))
 (type $none_=>_i32 (func (result i32)))
 (type $i64_=>_none (func (param i64)))
 (type $i64_=>_i32 (func (param i64) (result i32)))
 (type $i64_=>_i64 (func (param i64) (result i64)))
 (type $i32_=>_none (func (param i32)))
 (type $i32_i32_i32_=>_none (func (param i32 i32 i32)))
 (type $i32_i32_i32_f64_=>_none (func (param i32 i32 i32 f64)))
 (type $i32_i64_f64_=>_none (func (param i32 i64 f64)))
 (type $f64_i32_i32_i32_=>_none (func (param f64 i32 i32 i32)))
 (type $f64_i64_i32_=>_none (func (param f64 i64 i32)))
 (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
 (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
 (type $i64_i64_=>_i64 (func (param i64 i64) (result i64)))
 (type $f32_=>_f32 (func (param f32) (result f32)))
 (import "env" "memory" (memory $memory 256 256))
 (import "env" "table" (table $table 3 3 funcref))
 (elem (global.get $__table_base) $legalfunc$illegalImport $_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" "_fabsf" (func $_fabsf (param f32) (result f32)))
 (import "env" "abort" (func $abort))
 (import "env" "setTempRet0" (func $setTempRet0 (param i32)))
 (import "env" "illegalImport" (func $legalimport$illegalImport (param f64 i32 i32 i32)))
 (import "env" "getTempRet0" (func $getTempRet0 (result i32)))
 (import "env" "illegalImportResult" (func $legalimport$illegalImportResult (result i32)))
 (import "env" "do_i64" (func $legalimport$do_i64 (result i32)))
 (global $STACKTOP (mut i32) (global.get $STACKTOP$asm2wasm$import))
 (export "test64" (func $test64))
 (export "illegalParam" (func $legalstub$illegalParam))
 (export "illegalResult" (func $legalstub$illegalResult))
 (export "keepAlive" (func $keepAlive))
 (func $loads
  (local $i i32)
  (local $f f32)
  (local $d f64)
  (local.set $i
   (i32.load8_s
    (i32.const 100)
   )
  )
  (local.set $i
   (i32.load8_s
    (i32.const 101)
   )
  )
  (local.set $i
   (i32.load16_s
    (i32.const 102)
   )
  )
  (local.set $i
   (i32.load16_s
    (i32.const 103)
   )
  )
  (local.set $i
   (i32.load16_s align=1
    (i32.const 104)
   )
  )
  (local.set $i
   (i32.load16_s
    (i32.const 105)
   )
  )
  (local.set $i
   (i32.load
    (i32.const 106)
   )
  )
  (local.set $i
   (i32.load
    (i32.const 107)
   )
  )
  (local.set $i
   (i32.load align=1
    (i32.const 108)
   )
  )
  (local.set $i
   (i32.load align=2
    (i32.const 109)
   )
  )
  (local.set $i
   (i32.load
    (i32.const 110)
   )
  )
  (local.set $f
   (f32.load
    (i32.const 111)
   )
  )
  (local.set $f
   (f32.load
    (i32.const 112)
   )
  )
  (local.set $f
   (f32.load align=1
    (i32.const 113)
   )
  )
  (local.set $f
   (f32.load align=2
    (i32.const 114)
   )
  )
  (local.set $f
   (f32.load
    (i32.const 115)
   )
  )
  (local.set $d
   (f64.load
    (i32.const 116)
   )
  )
  (local.set $d
   (f64.load
    (i32.const 117)
   )
  )
  (local.set $d
   (f64.load align=1
    (i32.const 118)
   )
  )
  (local.set $d
   (f64.load align=2
    (i32.const 119)
   )
  )
  (local.set $d
   (f64.load align=4
    (i32.const 120)
   )
  )
  (local.set $d
   (f64.load
    (i32.const 121)
   )
  )
 )
 (func $stores
  (local $i i32)
  (local $f f32)
  (local $d f64)
  (i32.store8
   (i32.const 100)
   (local.get $i)
  )
  (i32.store8
   (i32.const 101)
   (local.get $i)
  )
  (i32.store16
   (i32.const 102)
   (local.get $i)
  )
  (i32.store16
   (i32.const 103)
   (local.get $i)
  )
  (i32.store16 align=1
   (i32.const 104)
   (local.get $i)
  )
  (i32.store16
   (i32.const 105)
   (local.get $i)
  )
  (i32.store
   (i32.const 106)
   (local.get $i)
  )
  (i32.store
   (i32.const 107)
   (local.get $i)
  )
  (i32.store align=1
   (i32.const 108)
   (local.get $i)
  )
  (i32.store align=2
   (i32.const 109)
   (local.get $i)
  )
  (i32.store
   (i32.const 110)
   (local.get $i)
  )
  (f32.store
   (i32.const 111)
   (local.get $f)
  )
  (f32.store
   (i32.const 112)
   (local.get $f)
  )
  (f32.store align=1
   (i32.const 113)
   (local.get $f)
  )
  (f32.store align=2
   (i32.const 114)
   (local.get $f)
  )
  (f32.store
   (i32.const 115)
   (local.get $f)
  )
  (f64.store
   (i32.const 116)
   (local.get $d)
  )
  (f64.store
   (i32.const 117)
   (local.get $d)
  )
  (f64.store align=1
   (i32.const 118)
   (local.get $d)
  )
  (f64.store align=2
   (i32.const 119)
   (local.get $d)
  )
  (f64.store align=4
   (i32.const 120)
   (local.get $d)
  )
  (f64.store
   (i32.const 121)
   (local.get $d)
  )
 )
 (func $test
  (local $i i32)
  (local $j i64)
  (local $f f32)
  (local $f1 f32)
  (local $f2 f32)
  (local $d1 f64)
  (local $d2 f64)
  (local.set $i
   (i32.reinterpret_f32
    (local.get $f)
   )
  )
  (local.set $f
   (f32.reinterpret_i32
    (local.get $i)
   )
  )
  (local.set $i
   (i32.ctz
    (local.get $i)
   )
  )
  (local.set $i
   (i32.popcnt
    (local.get $i)
   )
  )
  (local.set $j
   (i64.popcnt
    (local.get $j)
   )
  )
  (local.set $f1
   (f32.copysign
    (local.get $f1)
    (local.get $f2)
   )
  )
  (local.set $d1
   (f64.copysign
    (local.get $d1)
    (local.get $d2)
   )
  )
 )
 (func $test64
  (local $x i64)
  (local $y i64)
  (local $z i32)
  (local $int32 i32)
  (local $float32 f32)
  (local $float64 f64)
  (local.set $x
   (i64.const 100)
  )
  (local.set $y
   (i64.const 128849018897)
  )
  (local.set $x
   (i64.add
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.sub
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.mul
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.div_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.div_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.rem_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.rem_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.and
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.or
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.xor
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.shl
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.shr_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.shr_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $x
   (i64.load
    (i32.const 120)
   )
  )
  (local.set $x
   (i64.load
    (i32.const 120)
   )
  )
  (local.set $x
   (i64.load align=2
    (i32.const 120)
   )
  )
  (local.set $x
   (i64.load align=4
    (i32.const 120)
   )
  )
  (local.set $x
   (i64.load
    (i32.const 120)
   )
  )
  (i64.store
   (i32.const 120)
   (local.get $x)
  )
  (i64.store
   (i32.const 120)
   (local.get $x)
  )
  (i64.store align=2
   (i32.const 120)
   (local.get $x)
  )
  (i64.store align=4
   (i32.const 120)
   (local.get $x)
  )
  (i64.store
   (i32.const 120)
   (local.get $x)
  )
  (local.set $z
   (i64.eq
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.ne
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.le_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.le_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.ge_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.ge_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.lt_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.lt_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.gt_u
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $z
   (i64.gt_s
    (local.get $x)
    (local.get $y)
   )
  )
  (local.set $int32
   (i32.wrap_i64
    (local.get $x)
   )
  )
  (local.set $x
   (i64.extend_i32_s
    (local.get $int32)
   )
  )
  (local.set $x
   (i64.extend_i32_u
    (local.get $int32)
   )
  )
  (local.set $float32
   (f32.convert_i64_s
    (local.get $x)
   )
  )
  (local.set $float64
   (f64.convert_i64_s
    (local.get $x)
   )
  )
  (local.set $float32
   (f32.convert_i64_u
    (local.get $x)
   )
  )
  (local.set $float64
   (f64.convert_i64_u
    (local.get $x)
   )
  )
  (local.set $x
   (i64.trunc_f32_s
    (local.get $float32)
   )
  )
  (local.set $x
   (i64.trunc_f64_s
    (local.get $float64)
   )
  )
  (local.set $x
   (i64.trunc_f32_u
    (local.get $float32)
   )
  )
  (local.set $x
   (i64.trunc_f64_u
    (local.get $float64)
   )
  )
  (local.set $x
   (i64.reinterpret_f64
    (local.get $float64)
   )
  )
  (local.set $float64
   (f64.reinterpret_i64
    (local.get $x)
   )
  )
  (local.set $x
   (i64.clz
    (local.get $y)
   )
  )
  (local.set $y
   (i64.ctz
    (local.get $x)
   )
  )
 )
 (func $imports (result i64)
  (call $legalfunc$illegalImport
   (f64.const -3.13159)
   (i64.const 94489280523)
   (i32.const -33)
  )
  (return
   (call $legalfunc$illegalImportResult)
  )
 )
 (func $arg (param $x i64)
  (i64.store
   (i32.const 100)
   (local.get $x)
  )
  (call $arg
   (local.get $x)
  )
 )
 (func $illegalParam (param $a i32) (param $x i64) (param $b f64)
  (i32.store
   (i32.const 50)
   (local.get $a)
  )
  (i64.store
   (i32.const 100)
   (local.get $x)
  )
  (f64.store
   (i32.const 200)
   (local.get $b)
  )
  (call $illegalParam
   (i32.const 0)
   (local.get $x)
   (f64.const 12.34)
  )
 )
 (func $result (result i64)
  (return
   (i64.const 8589934593)
  )
 )
 (func $illegalResult (result i64)
  (return
   (i64.const 8589934593)
  )
 )
 (func $call1 (param $x i64) (result i64)
  (local $y i64)
  (local.set $y
   (call $call1
    (local.get $x)
   )
  )
  (return
   (local.get $y)
  )
 )
 (func $call2 (param $x i64) (result i64)
  (drop
   (call $call2
    (call $call2
     (local.get $x)
    )
   )
  )
  (return
   (i64.const 245127260211081)
  )
 )
 (func $returnCastConst (result i64)
  (return
   (i64.const 0)
  )
 )
 (func $ifValue64 (param $$4 i64) (param $$6 i64) (result i64)
  (local $$$0 i64)
  (local $$9 i64)
  (local $$10 i64)
  (if
   (i32.wrap_i64
    (local.get $$6)
   )
   (block
    (local.set $$9
     (call $call2
      (local.get $$4)
     )
    )
    (local.set $$$0
     (local.get $$9)
    )
   )
   (block
    (local.set $$10
     (call $call2
      (local.get $$4)
     )
    )
    (local.set $$$0
     (local.get $$10)
    )
   )
  )
  (return
   (local.get $$$0)
  )
 )
 (func $ifValue32 (param $$4 i32) (param $$6 i32) (result i32)
  (local $$$0 i32)
  (local $$9 i32)
  (local $$10 i32)
  (if
   (local.get $$6)
   (block
    (local.set $$9
     (call $ifValue32
      (local.get $$4)
      (local.get $$6)
     )
    )
    (local.set $$$0
     (local.get $$9)
    )
   )
   (block
    (local.set $$10
     (call $ifValue32
      (local.get $$4)
      (local.get $$6)
     )
    )
    (local.set $$$0
     (local.get $$10)
    )
   )
  )
  (return
   (local.get $$$0)
  )
 )
 (func $switch64 (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)
         (local.set $2
          (i64.sub
           (local.get $$a444)
           (i64.const 42949672965)
          )
         )
         (br_if $switch-default
          (i32.wrap_i64
           (i64.shr_u
            (local.get $2)
            (i64.const 32)
           )
          )
         )
         (local.get $2)
        )
       )
      )
     )
     (block
      (local.set $$waka
       (i32.const 11000)
      )
      (br $switch)
     )
    )
    (block
     (local.set $$waka
      (i32.const 10)
     )
     (br $switch)
    )
   )
   (local.set $$waka
    (i32.const 1)
   )
  )
  (return
   (local.get $$waka)
  )
 )
 (func $unreachable_leftovers (param $$0 i32) (param $$1 i32) (param $$2 i32)
  (local $label i32)
  (block $label$break$L1
   (if
    (local.get $$1)
    (local.set $label
     (i32.const 10)
    )
    (block
     (if
      (local.get $$2)
      (block
       (br $label$break$L1)
       (return)
      )
     )
     (i32.store
      (local.get $$0)
      (i32.const -2)
     )
     (return)
    )
   )
  )
  (if
   (i32.eq
    (local.get $label)
    (i32.const 10)
   )
   (i32.store
    (local.get $$0)
    (i32.const -1)
   )
  )
  (return)
 )
 (func $switch64TOOMUCH (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
      (local.set $2
       (local.get $$a444)
      )
      (if
       (i64.eq
        (local.get $2)
        (i64.const -9223372036854775808)
       )
       (br $switch-case0)
       (if
        (i64.eq
         (local.get $2)
         (i64.const 4611686018427387904)
        )
        (br $switch-case)
        (br $switch-default)
       )
      )
     )
     (nop)
    )
    (return
     (i32.const 40)
    )
   )
   (local.set $$waka
    (i32.const 1)
   )
  )
  (block $switch1
   (block $switch-default4
    (block $switch-case3
     (block $switch-case2
      (local.set $3
       (i32.const 100)
      )
      (if
       (i32.eq
        (local.get $3)
        (i32.const 214748364)
       )
       (br $switch-case3)
       (if
        (i32.eq
         (local.get $3)
         (i32.const 107374182)
        )
        (br $switch-case2)
        (br $switch-default4)
       )
      )
     )
     (nop)
    )
    (return
     (i32.const 41)
    )
   )
   (local.set $$waka
    (i32.const 1001)
   )
  )
  (block $switch5
   (block $switch-case7
    (block $switch-case6
     (local.set $4
      (local.get $$a444)
     )
     (if
      (i64.eq
       (local.get $4)
       (i64.const -9223372036854775808)
      )
      (br $switch-case7)
      (if
       (i64.eq
        (local.get $4)
        (i64.const 4611686018427387904)
       )
       (br $switch-case6)
       (br $switch5)
      )
     )
    )
    (nop)
   )
   (return
    (i32.const 42)
   )
  )
  (block $switch8
   (block $switch-case10
    (block $switch-case9
     (local.set $5
      (i32.const 100)
     )
     (if
      (i32.eq
       (local.get $5)
       (i32.const 214748364)
      )
      (br $switch-case10)
      (if
       (i32.eq
        (local.get $5)
        (i32.const 107374182)
       )
       (br $switch-case9)
       (br $switch8)
      )
     )
    )
    (nop)
   )
   (return
    (i32.const 43)
   )
  )
  (return
   (i32.const 44)
  )
 )
 (func $_memchr (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)
  (local.set $sp
   (global.get $STACKTOP)
  )
  (local.set $$conv1
   (i32.and
    (local.get $$c)
    (i32.const 255)
   )
  )
  (local.set $$0
   (local.get $$src)
  )
  (local.set $$and39
   (i32.and
    (local.get $$0)
    (i32.const 3)
   )
  )
  (local.set $$tobool40
   (i32.ne
    (local.get $$and39)
    (i32.const 0)
   )
  )
  (local.set $$tobool241
   (i32.ne
    (local.get $$n)
    (i32.const 0)
   )
  )
  (local.set $$or$cond42
   (i32.and
    (local.get $$tobool241)
    (local.get $$tobool40)
   )
  )
  (block $label$break$L1
   (if
    (local.get $$or$cond42)
    (block
     (local.set $$1
      (i32.and
       (local.get $$c)
       (i32.const 255)
      )
     )
     (local.set $$n$addr$043
      (local.get $$n)
     )
     (local.set $$s$044
      (local.get $$src)
     )
     (loop $while-in
      (block $while-out
       (local.set $$2
        (i32.load8_s
         (local.get $$s$044)
        )
       )
       (local.set $$cmp
        (i32.eq
         (i32.shr_s
          (i32.shl
           (local.get $$2)
           (i32.const 24)
          )
          (i32.const 24)
         )
         (i32.shr_s
          (i32.shl
           (local.get $$1)
           (i32.const 24)
          )
          (i32.const 24)
         )
        )
       )
       (if
        (local.get $$cmp)
        (block
         (local.set $$n$addr$0$lcssa52
          (local.get $$n$addr$043)
         )
         (local.set $$s$0$lcssa53
          (local.get $$s$044)
         )
         (local.set $label
          (i32.const 6)
         )
         (br $label$break$L1)
        )
       )
       (local.set $$incdec$ptr
        (i32.add
         (local.get $$s$044)
         (i32.const 1)
        )
       )
       (local.set $$dec
        (i32.add
         (local.get $$n$addr$043)
         (i32.const -1)
        )
       )
       (local.set $$3
        (local.get $$incdec$ptr)
       )
       (local.set $$and
        (i32.and
         (local.get $$3)
         (i32.const 3)
        )
       )
       (local.set $$tobool
        (i32.ne
         (local.get $$and)
         (i32.const 0)
        )
       )
       (local.set $$tobool2
        (i32.ne
         (local.get $$dec)
         (i32.const 0)
        )
       )
       (local.set $$or$cond
        (i32.and
         (local.get $$tobool2)
         (local.get $$tobool)
        )
       )
       (if
        (local.get $$or$cond)
        (block
         (local.set $$n$addr$043
          (local.get $$dec)
         )
         (local.set $$s$044
          (local.get $$incdec$ptr)
         )
        )
        (block
         (local.set $$n$addr$0$lcssa
          (local.get $$dec)
         )
         (local.set $$s$0$lcssa
          (local.get $$incdec$ptr)
         )
         (local.set $$tobool2$lcssa
          (local.get $$tobool2)
         )
         (local.set $label
          (i32.const 5)
         )
         (br $while-out)
        )
       )
       (br $while-in)
      )
     )
    )
    (block
     (local.set $$n$addr$0$lcssa
      (local.get $$n)
     )
     (local.set $$s$0$lcssa
      (local.get $$src)
     )
     (local.set $$tobool2$lcssa
      (local.get $$tobool241)
     )
     (local.set $label
      (i32.const 5)
     )
    )
   )
  )
  (if
   (i32.eq
    (local.get $label)
    (i32.const 5)
   )
   (if
    (local.get $$tobool2$lcssa)
    (block
     (local.set $$n$addr$0$lcssa52
      (local.get $$n$addr$0$lcssa)
     )
     (local.set $$s$0$lcssa53
      (local.get $$s$0$lcssa)
     )
     (local.set $label
      (i32.const 6)
     )
    )
    (block
     (local.set $$n$addr$3
      (i32.const 0)
     )
     (local.set $$s$2
      (local.get $$s$0$lcssa)
     )
    )
   )
  )
  (block $label$break$L8
   (if
    (i32.eq
     (local.get $label)
     (i32.const 6)
    )
    (block
     (local.set $$4
      (i32.load8_s
       (local.get $$s$0$lcssa53)
      )
     )
     (local.set $$5
      (i32.and
       (local.get $$c)
       (i32.const 255)
      )
     )
     (local.set $$cmp8
      (i32.eq
       (i32.shr_s
        (i32.shl
         (local.get $$4)
         (i32.const 24)
        )
        (i32.const 24)
       )
       (i32.shr_s
        (i32.shl
         (local.get $$5)
         (i32.const 24)
        )
        (i32.const 24)
       )
      )
     )
     (if
      (local.get $$cmp8)
      (block
       (local.set $$n$addr$3
        (local.get $$n$addr$0$lcssa52)
       )
       (local.set $$s$2
        (local.get $$s$0$lcssa53)
       )
      )
      (block
       (local.set $$mul
        (i32.mul
         (local.get $$conv1)
         (i32.const 16843009)
        )
       )
       (local.set $$cmp1132
        (i32.gt_u
         (local.get $$n$addr$0$lcssa52)
         (i32.const 3)
        )
       )
       (block $label$break$L11
        (if
         (local.get $$cmp1132)
         (block
          (local.set $$n$addr$133
           (local.get $$n$addr$0$lcssa52)
          )
          (local.set $$w$034
           (local.get $$s$0$lcssa53)
          )
          (loop $while-in3
           (block $while-out2
            (local.set $$6
             (i32.load
              (local.get $$w$034)
             )
            )
            (local.set $$xor
             (i32.xor
              (local.get $$6)
              (local.get $$mul)
             )
            )
            (local.set $$sub
             (i32.add
              (local.get $$xor)
              (i32.const -16843009)
             )
            )
            (local.set $$neg
             (i32.and
              (local.get $$xor)
              (i32.const -2139062144)
             )
            )
            (local.set $$and15
             (i32.xor
              (local.get $$neg)
              (i32.const -2139062144)
             )
            )
            (local.set $$and16
             (i32.and
              (local.get $$and15)
              (local.get $$sub)
             )
            )
            (local.set $$lnot
             (i32.eq
              (local.get $$and16)
              (i32.const 0)
             )
            )
            (if
             (i32.eqz
              (local.get $$lnot)
             )
             (br $while-out2)
            )
            (local.set $$incdec$ptr21
             (i32.add
              (local.get $$w$034)
              (i32.const 4)
             )
            )
            (local.set $$sub22
             (i32.add
              (local.get $$n$addr$133)
              (i32.const -4)
             )
            )
            (local.set $$cmp11
             (i32.gt_u
              (local.get $$sub22)
              (i32.const 3)
             )
            )
            (if
             (local.get $$cmp11)
             (block
              (local.set $$n$addr$133
               (local.get $$sub22)
              )
              (local.set $$w$034
               (local.get $$incdec$ptr21)
              )
             )
             (block
              (local.set $$n$addr$1$lcssa
               (local.get $$sub22)
              )
              (local.set $$w$0$lcssa
               (local.get $$incdec$ptr21)
              )
              (local.set $label
               (i32.const 11)
              )
              (br $label$break$L11)
             )
            )
            (br $while-in3)
           )
          )
          (local.set $$n$addr$227
           (local.get $$n$addr$133)
          )
          (local.set $$s$128
           (local.get $$w$034)
          )
         )
         (block
          (local.set $$n$addr$1$lcssa
           (local.get $$n$addr$0$lcssa52)
          )
          (local.set $$w$0$lcssa
           (local.get $$s$0$lcssa53)
          )
          (local.set $label
           (i32.const 11)
          )
         )
        )
       )
       (if
        (i32.eq
         (local.get $label)
         (i32.const 11)
        )
        (block
         (local.set $$tobool2526
          (i32.eq
           (local.get $$n$addr$1$lcssa)
           (i32.const 0)
          )
         )
         (if
          (local.get $$tobool2526)
          (block
           (local.set $$n$addr$3
            (i32.const 0)
           )
           (local.set $$s$2
            (local.get $$w$0$lcssa)
           )
           (br $label$break$L8)
          )
          (block
           (local.set $$n$addr$227
            (local.get $$n$addr$1$lcssa)
           )
           (local.set $$s$128
            (local.get $$w$0$lcssa)
           )
          )
         )
        )
       )
       (loop $while-in5
        (block $while-out4
         (local.set $$7
          (i32.load8_s
           (local.get $$s$128)
          )
         )
         (local.set $$cmp28
          (i32.eq
           (i32.shr_s
            (i32.shl
             (local.get $$7)
             (i32.const 24)
            )
            (i32.const 24)
           )
           (i32.shr_s
            (i32.shl
             (local.get $$5)
             (i32.const 24)
            )
            (i32.const 24)
           )
          )
         )
         (if
          (local.get $$cmp28)
          (block
           (local.set $$n$addr$3
            (local.get $$n$addr$227)
           )
           (local.set $$s$2
            (local.get $$s$128)
           )
           (br $label$break$L8)
          )
         )
         (local.set $$incdec$ptr33
          (i32.add
           (local.get $$s$128)
           (i32.const 1)
          )
         )
         (local.set $$dec34
          (i32.add
           (local.get $$n$addr$227)
           (i32.const -1)
          )
         )
         (local.set $$tobool25
          (i32.eq
           (local.get $$dec34)
           (i32.const 0)
          )
         )
         (if
          (local.get $$tobool25)
          (block
           (local.set $$n$addr$3
            (i32.const 0)
           )
           (local.set $$s$2
            (local.get $$incdec$ptr33)
           )
           (br $while-out4)
          )
          (block
           (local.set $$n$addr$227
            (local.get $$dec34)
           )
           (local.set $$s$128
            (local.get $$incdec$ptr33)
           )
          )
         )
         (br $while-in5)
        )
       )
      )
     )
    )
   )
  )
  (local.set $$tobool36
   (i32.ne
    (local.get $$n$addr$3)
    (i32.const 0)
   )
  )
  (local.set $$cond
   (if (result i32)
    (local.get $$tobool36)
    (local.get $$s$2)
    (i32.const 0)
   )
  )
  (return
   (local.get $$cond)
  )
 )
 (func $switch64_big_condition1 (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)
        (local.set $1
         (i64.sub
          (local.get $$x)
          (i64.const 9218868437227405312)
         )
        )
        (br_if $switch-default
         (i32.wrap_i64
          (i64.shr_u
           (local.get $1)
           (i64.const 32)
          )
         )
        )
        (local.get $1)
       )
      )
     )
    )
    (block
     (call $abort)
     (br $switch)
    )
   )
   (return)
  )
 )
 (func $switch64_big_condition2 (param $$x i64)
  (local $1 i64)
  (block $switch
   (block $switch-case
    (br_table $switch-case $switch
     (i32.wrap_i64
      (block (result i64)
       (local.set $1
        (i64.sub
         (local.get $$x)
         (i64.const 9218868437227405312)
        )
       )
       (br_if $switch
        (i32.wrap_i64
         (i64.shr_u
          (local.get $1)
          (i64.const 32)
         )
        )
       )
       (local.get $1)
      )
     )
    )
   )
   (block
    (call $abort)
    (br $switch)
   )
  )
 )
 (func $keepAlive
  (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
  (drop
   (call $_fabsf
    (f32.const 0)
   )
  )
  (drop
   (call $legalfunc$do_i64)
  )
 )
 (func $legalstub$illegalParam (param $0 i32) (param $1 i32) (param $2 i32) (param $3 f64)
  (call $illegalParam
   (local.get $0)
   (i64.or
    (i64.extend_i32_u
     (local.get $1)
    )
    (i64.shl
     (i64.extend_i32_u
      (local.get $2)
     )
     (i64.const 32)
    )
   )
   (local.get $3)
  )
 )
 (func $legalstub$illegalResult (result i32)
  (local $0 i64)
  (local.set $0
   (call $illegalResult)
  )
  (call $setTempRet0
   (i32.wrap_i64
    (i64.shr_u
     (local.get $0)
     (i64.const 32)
    )
   )
  )
  (i32.wrap_i64
   (local.get $0)
  )
 )
 (func $legalfunc$illegalImport (param $0 f64) (param $1 i64) (param $2 i32)
  (call $legalimport$illegalImport
   (local.get $0)
   (i32.wrap_i64
    (local.get $1)
   )
   (i32.wrap_i64
    (i64.shr_u
     (local.get $1)
     (i64.const 32)
    )
   )
   (local.get $2)
  )
 )
 (func $legalfunc$illegalImportResult (result i64)
  (i64.or
   (i64.extend_i32_u
    (call $legalimport$illegalImportResult)
   )
   (i64.shl
    (i64.extend_i32_u
     (call $getTempRet0)
    )
    (i64.const 32)
   )
  )
 )
 (func $legalfunc$do_i64 (result i64)
  (i64.or
   (i64.extend_i32_u
    (call $legalimport$do_i64)
   )
   (i64.shl
    (i64.extend_i32_u
     (call $getTempRet0)
    )
    (i64.const 32)
   )
  )
 )
)
