(module
 (type $0 (func))
 (type $1 (func (param i32) (result i32)))
 (type $2 (func (param i32 i32) (result i32)))
 (type $3 (func (param i32 i32 i32) (result i32)))
 (type $4 (func (param f64 f64 i32) (result f32)))
 (memory $0 100 100)
 (func $basics (; 0 ;) (type $0)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (local $18 i32)
  (local $19 i32)
  (block
   (set_local $2
    (i32.add
     (i32.const 1)
     (i32.const 2)
    )
   )
   (drop
    (get_local $2)
   )
   (nop)
   (set_local $3
    (get_local $2)
   )
   (drop
    (get_local $2)
   )
   (nop)
   (if
    (i32.const 0)
    (nop)
   )
   (nop)
   (set_local $4
    (i32.add
     (i32.const 1)
     (i32.const 2)
    )
   )
   (drop
    (get_local $4)
   )
   (nop)
   (set_local $5
    (get_local $x)
   )
   (set_local $6
    (get_local $y)
   )
   (set_local $7
    (i32.add
     (get_local $x)
     (get_local $y)
    )
   )
   (drop
    (get_local $7)
   )
   (nop)
   (set_local $8
    (get_local $x)
   )
   (set_local $9
    (get_local $y)
   )
   (set_local $10
    (get_local $7)
   )
   (drop
    (get_local $7)
   )
   (nop)
   (set_local $11
    (get_local $x)
   )
   (set_local $12
    (get_local $y)
   )
   (set_local $13
    (get_local $7)
   )
   (drop
    (get_local $7)
   )
   (nop)
   (call $basics)
   (nop)
   (set_local $14
    (get_local $x)
   )
   (set_local $15
    (get_local $y)
   )
   (set_local $16
    (get_local $7)
   )
   (drop
    (get_local $7)
   )
   (nop)
   (set_local $x
    (i32.const 100)
   )
   (nop)
   (set_local $17
    (get_local $x)
   )
   (set_local $18
    (get_local $y)
   )
   (set_local $19
    (i32.add
     (get_local $x)
     (get_local $y)
    )
   )
   (drop
    (get_local $19)
   )
   (nop)
  )
  (nop)
 )
 (func $recursive1 (; 1 ;) (type $0)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (set_local $2
    (i32.add
     (i32.const 2)
     (i32.const 3)
    )
   )
   (set_local $3
    (i32.add
     (i32.const 1)
     (get_local $2)
    )
   )
   (drop
    (get_local $3)
   )
   (nop)
   (set_local $4
    (get_local $2)
   )
   (set_local $5
    (get_local $3)
   )
   (drop
    (get_local $3)
   )
   (nop)
   (set_local $6
    (get_local $2)
   )
   (drop
    (get_local $2)
   )
   (nop)
  )
  (nop)
 )
 (func $recursive2 (; 2 ;) (type $0)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (set_local $2
    (i32.add
     (i32.const 2)
     (i32.const 3)
    )
   )
   (set_local $3
    (i32.add
     (i32.const 1)
     (get_local $2)
    )
   )
   (drop
    (get_local $3)
   )
   (nop)
   (set_local $4
    (get_local $2)
   )
   (drop
    (get_local $2)
   )
   (nop)
   (set_local $5
    (get_local $2)
   )
   (set_local $6
    (get_local $3)
   )
   (drop
    (get_local $3)
   )
   (nop)
  )
  (nop)
 )
 (func $self (; 3 ;) (type $0)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (block
   (set_local $2
    (i32.add
     (i32.const 2)
     (i32.const 3)
    )
   )
   (set_local $3
    (get_local $2)
   )
   (set_local $4
    (i32.add
     (get_local $2)
     (get_local $2)
    )
   )
   (drop
    (get_local $4)
   )
   (nop)
   (set_local $5
    (get_local $2)
   )
   (drop
    (get_local $2)
   )
   (nop)
  )
  (nop)
 )
 (func $loads (; 4 ;) (type $0)
  (local $0 i32)
  (local $1 i32)
  (block
   (set_local $0
    (i32.load
     (i32.const 10)
    )
   )
   (drop
    (get_local $0)
   )
   (nop)
   (set_local $1
    (i32.load
     (i32.const 10)
    )
   )
   (drop
    (get_local $1)
   )
   (nop)
  )
  (nop)
 )
 (func $8 (; 5 ;) (type $1) (param $var$0 i32) (result i32)
  (local $var$1 i32)
  (local $var$2 i32)
  (local $var$3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (local $12 i32)
  (local $13 i32)
  (local $14 i32)
  (local $15 i32)
  (local $16 i32)
  (local $17 i32)
  (local $18 i32)
  (local $19 i32)
  (local $20 i32)
  (local $21 i32)
  (block $label$0
   (set_local $4
    (get_local $var$1)
   )
   (set_local $5
    (i32.add
     (get_local $var$1)
     (i32.const 4)
    )
   )
   (set_local $var$2
    (get_local $5)
   )
   (set_local $6
    (get_local $var$2)
   )
   (set_local $7
    (get_local $var$2)
   )
   (set_local $8
    (i32.load
     (get_local $var$2)
    )
   )
   (set_local $var$2
    (i32.const 74)
   )
   (set_local $9
    (get_local $var$2)
   )
   (set_local $10
    (i32.xor
     (get_local $var$2)
     (i32.const -1)
    )
   )
   (set_local $11
    (i32.and
     (get_local $8)
     (get_local $10)
    )
   )
   (i32.store
    (get_local $5)
    (get_local $11)
   )
   (nop)
   (set_local $12
    (get_local $var$1)
   )
   (set_local $13
    (get_local $5)
   )
   (set_local $var$1
    (get_local $5)
   )
   (set_local $14
    (get_local $var$1)
   )
   (set_local $15
    (get_local $var$1)
   )
   (set_local $16
    (i32.load
     (get_local $var$1)
    )
   )
   (set_local $17
    (get_local $var$2)
   )
   (set_local $18
    (i32.and
     (get_local $var$2)
     (i32.const 8)
    )
   )
   (set_local $19
    (i32.or
     (get_local $16)
     (get_local $18)
    )
   )
   (i32.store
    (get_local $var$1)
    (get_local $19)
   )
   (nop)
   (set_local $20
    (i32.const 0)
   )
  )
  (set_local $21
   (get_local $20)
  )
  (return
   (get_local $20)
  )
 )
 (func $loop1 (; 6 ;) (type $2) (param $x i32) (param $y i32) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (block
   (set_local $2
    (get_local $y)
   )
   (set_local $x
    (get_local $y)
   )
   (nop)
   (set_local $3
    (get_local $x)
   )
   (set_local $y
    (get_local $x)
   )
   (nop)
   (set_local $4
    (get_local $x)
   )
   (set_local $x
    (get_local $x)
   )
   (nop)
   (set_local $5
    (get_local $x)
   )
   (set_local $y
    (get_local $x)
   )
   (nop)
   (set_local $6
    (get_local $x)
   )
   (return
    (get_local $x)
   )
   (unreachable)
  )
  (set_local $8
   (get_local $7)
  )
  (return
   (get_local $7)
  )
 )
 (func $loop2 (; 7 ;) (type $3) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (local $11 i32)
  (block
   (set_local $3
    (get_local $y)
   )
   (set_local $x
    (get_local $y)
   )
   (nop)
   (set_local $4
    (get_local $z)
   )
   (set_local $y
    (get_local $z)
   )
   (nop)
   (set_local $5
    (get_local $x)
   )
   (set_local $z
    (get_local $x)
   )
   (nop)
   (set_local $6
    (get_local $y)
   )
   (set_local $x
    (get_local $y)
   )
   (nop)
   (set_local $7
    (get_local $z)
   )
   (set_local $y
    (get_local $z)
   )
   (nop)
   (set_local $8
    (get_local $x)
   )
   (set_local $z
    (get_local $x)
   )
   (nop)
   (set_local $9
    (get_local $x)
   )
   (return
    (get_local $x)
   )
   (unreachable)
  )
  (set_local $11
   (get_local $10)
  )
  (return
   (get_local $10)
  )
 )
 (func $loop3 (; 8 ;) (type $3) (param $x i32) (param $y i32) (param $z i32) (result i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local $7 i32)
  (local $8 i32)
  (local $9 i32)
  (local $10 i32)
  (block
   (set_local $3
    (get_local $y)
   )
   (set_local $x
    (get_local $y)
   )
   (nop)
   (set_local $4
    (get_local $z)
   )
   (set_local $y
    (get_local $z)
   )
   (nop)
   (set_local $5
    (get_local $y)
   )
   (set_local $z
    (get_local $y)
   )
   (nop)
   (set_local $6
    (get_local $y)
   )
   (set_local $y
    (get_local $y)
   )
   (nop)
   (set_local $7
    (get_local $y)
   )
   (set_local $z
    (get_local $y)
   )
   (nop)
   (set_local $8
    (get_local $y)
   )
   (return
    (get_local $y)
   )
   (unreachable)
  )
  (set_local $10
   (get_local $9)
  )
  (return
   (get_local $9)
  )
 )
 (func $handle-removing (; 9 ;) (type $4) (param $var$0 f64) (param $var$1 f64) (param $var$2 i32) (result f32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 f32)
  (local $7 f32)
  (block
   (set_local $var$2
    (i32.const 32767)
   )
   (set_local $3
    (get_local $var$2)
   )
   (set_local $var$2
    (i32.const 1024)
   )
   (set_local $4
    (get_local $var$2)
   )
   (set_local $5
    (select
     (get_local $3)
     (get_local $var$2)
     (i32.const -2147483648)
    )
   )
   (set_local $var$2
    (get_local $5)
   )
   (nop)
   (set_local $6
    (f32.const 1)
   )
  )
  (set_local $7
   (get_local $6)
  )
  (return
   (get_local $6)
  )
 )
)
(module
 (type $0 (func))
 (type $1 (func (param i32 f64) (result i32)))
 (type $2 (func (param i64 f32 i32)))
 (table $0 23 23 anyfunc)
 (global $global$0 (mut i32) (i32.const 10))
 (export "func_1_invoker" (func $1))
 (export "func_6" (func $2))
 (func $0 (; 0 ;) (type $2) (param $var$0 i64) (param $var$1 f32) (param $var$2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (block
   (block $label$1
    (set_local $3
     (i32.const 128)
    )
    (br_if $label$1
     (i32.const 0)
    )
    (set_local $4
     (get_local $3)
    )
    (set_local $3
     (i32.const 0)
    )
    (br_if $label$1
     (get_local $4)
    )
    (set_local $5
     (get_local $3)
    )
    (drop
     (get_local $3)
    )
    (nop)
    (set_local $3
     (i32.const -14051)
    )
   )
   (set_local $6
    (get_local $3)
   )
   (if
    (get_local $3)
    (block
     (set_global $global$0
      (i32.const 0)
     )
     (nop)
    )
   )
  )
  (nop)
 )
 (func $1 (; 1 ;) (type $0)
  (call $0
   (i64.const 1125899906842624)
   (f32.const -nan:0x7fc91a)
   (i32.const -46)
  )
  (nop)
 )
 (func $2 (; 2 ;) (type $1) (param $var$0 i32) (param $var$1 f64) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (block
   (block
    (set_local $2
     (get_global $global$0)
    )
    (if
     (get_local $2)
     (block
      (unreachable)
      (unreachable)
     )
    )
   )
   (nop)
   (set_local $3
    (i32.const 0)
   )
  )
  (set_local $4
   (get_local $3)
  )
  (return
   (get_local $3)
  )
 )
)
(module
 (type $FUNCSIG$vi (func (param i32)))
 (import "env" "out" (func $out (param i32)))
 (func $each-pass-must-clear (; 1 ;) (type $FUNCSIG$vi) (param $var$0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (block
   (set_local $1
    (get_local $var$0)
   )
   (set_local $2
    (i32.eqz
     (get_local $var$0)
    )
   )
   (call $out
    (get_local $2)
   )
   (nop)
   (set_local $3
    (get_local $var$0)
   )
   (set_local $4
    (get_local $2)
   )
   (call $out
    (get_local $2)
   )
   (nop)
  )
  (nop)
 )
)
