(module
 (type $none_=>_none (func))
 (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32)))
 (type $i32_=>_i32 (func (param i32) (result i32)))
 (type $i32_i32_=>_i32 (func (param i32 i32) (result i32)))
 (type $f64_f64_i32_=>_f32 (func (param f64 f64 i32) (result f32)))
 (memory $0 100 100)
 (func $basics (; 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)
  (local.set $2
   (i32.add
    (i32.const 1)
    (i32.const 2)
   )
  )
  (drop
   (local.get $2)
  )
  (local.set $3
   (local.get $2)
  )
  (drop
   (local.get $2)
  )
  (if
   (i32.const 0)
   (nop)
  )
  (local.set $4
   (i32.add
    (i32.const 1)
    (i32.const 2)
   )
  )
  (drop
   (local.get $4)
  )
  (local.set $5
   (local.get $x)
  )
  (local.set $6
   (local.get $y)
  )
  (local.set $7
   (i32.add
    (local.get $x)
    (local.get $y)
   )
  )
  (drop
   (local.get $7)
  )
  (local.set $8
   (local.get $x)
  )
  (local.set $9
   (local.get $y)
  )
  (local.set $10
   (local.get $7)
  )
  (drop
   (local.get $7)
  )
  (local.set $11
   (local.get $x)
  )
  (local.set $12
   (local.get $y)
  )
  (local.set $13
   (local.get $7)
  )
  (drop
   (local.get $7)
  )
  (call $basics)
  (local.set $14
   (local.get $x)
  )
  (local.set $15
   (local.get $y)
  )
  (local.set $16
   (local.get $7)
  )
  (drop
   (local.get $7)
  )
  (local.set $x
   (i32.const 100)
  )
  (local.set $17
   (local.get $x)
  )
  (local.set $18
   (local.get $y)
  )
  (local.set $19
   (i32.add
    (local.get $x)
    (local.get $y)
   )
  )
  (drop
   (local.get $19)
  )
 )
 (func $recursive1 (; 1 ;)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local.set $2
   (i32.add
    (i32.const 2)
    (i32.const 3)
   )
  )
  (local.set $3
   (i32.add
    (i32.const 1)
    (local.get $2)
   )
  )
  (drop
   (local.get $3)
  )
  (local.set $4
   (local.get $2)
  )
  (local.set $5
   (local.get $3)
  )
  (drop
   (local.get $3)
  )
  (local.set $6
   (local.get $2)
  )
  (drop
   (local.get $2)
  )
 )
 (func $recursive2 (; 2 ;)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local $6 i32)
  (local.set $2
   (i32.add
    (i32.const 2)
    (i32.const 3)
   )
  )
  (local.set $3
   (i32.add
    (i32.const 1)
    (local.get $2)
   )
  )
  (drop
   (local.get $3)
  )
  (local.set $4
   (local.get $2)
  )
  (drop
   (local.get $2)
  )
  (local.set $5
   (local.get $2)
  )
  (local.set $6
   (local.get $3)
  )
  (drop
   (local.get $3)
  )
 )
 (func $self (; 3 ;)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local $5 i32)
  (local.set $2
   (i32.add
    (i32.const 2)
    (i32.const 3)
   )
  )
  (local.set $3
   (local.get $2)
  )
  (local.set $4
   (i32.add
    (local.get $2)
    (local.get $2)
   )
  )
  (drop
   (local.get $4)
  )
  (local.set $5
   (local.get $2)
  )
  (drop
   (local.get $2)
  )
 )
 (func $loads (; 4 ;)
  (local $0 i32)
  (local $1 i32)
  (local.set $0
   (i32.load
    (i32.const 10)
   )
  )
  (drop
   (local.get $0)
  )
  (local.set $1
   (i32.load
    (i32.const 10)
   )
  )
  (drop
   (local.get $1)
  )
 )
 (func $8 (; 5 ;) (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
   (local.set $4
    (local.get $var$1)
   )
   (local.set $5
    (i32.add
     (local.get $var$1)
     (i32.const 4)
    )
   )
   (local.set $var$2
    (local.get $5)
   )
   (local.set $6
    (local.get $var$2)
   )
   (local.set $7
    (local.get $var$2)
   )
   (local.set $8
    (i32.load
     (local.get $var$2)
    )
   )
   (local.set $var$2
    (i32.const 74)
   )
   (local.set $9
    (local.get $var$2)
   )
   (local.set $10
    (i32.xor
     (local.get $var$2)
     (i32.const -1)
    )
   )
   (local.set $11
    (i32.and
     (local.get $8)
     (local.get $10)
    )
   )
   (i32.store
    (local.get $5)
    (local.get $11)
   )
   (local.set $12
    (local.get $var$1)
   )
   (local.set $13
    (local.get $5)
   )
   (local.set $var$1
    (local.get $5)
   )
   (local.set $14
    (local.get $var$1)
   )
   (local.set $15
    (local.get $var$1)
   )
   (local.set $16
    (i32.load
     (local.get $var$1)
    )
   )
   (local.set $17
    (local.get $var$2)
   )
   (local.set $18
    (i32.and
     (local.get $var$2)
     (i32.const 8)
    )
   )
   (local.set $19
    (i32.or
     (local.get $16)
     (local.get $18)
    )
   )
   (i32.store
    (local.get $var$1)
    (local.get $19)
   )
   (local.set $20
    (i32.const 0)
   )
  )
  (local.set $21
   (local.get $20)
  )
  (return
   (local.get $20)
  )
 )
 (func $loop1 (; 6 ;) (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
   (local.set $2
    (local.get $y)
   )
   (local.set $x
    (local.get $y)
   )
   (local.set $3
    (local.get $x)
   )
   (local.set $y
    (local.get $x)
   )
   (local.set $4
    (local.get $x)
   )
   (local.set $x
    (local.get $x)
   )
   (local.set $5
    (local.get $x)
   )
   (local.set $y
    (local.get $x)
   )
   (local.set $6
    (local.get $x)
   )
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (local.set $8
   (local.get $7)
  )
  (return
   (local.get $7)
  )
 )
 (func $loop2 (; 7 ;) (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
   (local.set $3
    (local.get $y)
   )
   (local.set $x
    (local.get $y)
   )
   (local.set $4
    (local.get $z)
   )
   (local.set $y
    (local.get $z)
   )
   (local.set $5
    (local.get $x)
   )
   (local.set $z
    (local.get $x)
   )
   (local.set $6
    (local.get $y)
   )
   (local.set $x
    (local.get $y)
   )
   (local.set $7
    (local.get $z)
   )
   (local.set $y
    (local.get $z)
   )
   (local.set $8
    (local.get $x)
   )
   (local.set $z
    (local.get $x)
   )
   (local.set $9
    (local.get $x)
   )
   (return
    (local.get $x)
   )
   (unreachable)
  )
  (local.set $11
   (local.get $10)
  )
  (return
   (local.get $10)
  )
 )
 (func $loop3 (; 8 ;) (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
   (local.set $3
    (local.get $y)
   )
   (local.set $x
    (local.get $y)
   )
   (local.set $4
    (local.get $z)
   )
   (local.set $y
    (local.get $z)
   )
   (local.set $5
    (local.get $y)
   )
   (local.set $z
    (local.get $y)
   )
   (local.set $6
    (local.get $y)
   )
   (local.set $y
    (local.get $y)
   )
   (local.set $7
    (local.get $y)
   )
   (local.set $z
    (local.get $y)
   )
   (local.set $8
    (local.get $y)
   )
   (return
    (local.get $y)
   )
   (unreachable)
  )
  (local.set $10
   (local.get $9)
  )
  (return
   (local.get $9)
  )
 )
 (func $handle-removing (; 9 ;) (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
   (local.set $var$2
    (i32.const 32767)
   )
   (local.set $3
    (local.get $var$2)
   )
   (local.set $var$2
    (i32.const 1024)
   )
   (local.set $4
    (local.get $var$2)
   )
   (local.set $5
    (select
     (local.get $3)
     (local.get $var$2)
     (i32.const -2147483648)
    )
   )
   (local.set $var$2
    (local.get $5)
   )
   (local.set $6
    (f32.const 1)
   )
  )
  (local.set $7
   (local.get $6)
  )
  (return
   (local.get $6)
  )
 )
)
(module
 (type $none_=>_none (func))
 (type $i64_f32_i32_=>_none (func (param i64 f32 i32)))
 (type $i32_f64_=>_i32 (func (param i32 f64) (result i32)))
 (table $0 23 23 funcref)
 (global $global$0 (mut i32) (i32.const 10))
 (export "func_1_invoker" (func $1))
 (export "func_6" (func $2))
 (func $0 (; 0 ;) (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 $label$1
   (local.set $3
    (i32.const 128)
   )
   (br_if $label$1
    (i32.const 0)
   )
   (local.set $4
    (local.get $3)
   )
   (local.set $3
    (i32.const 0)
   )
   (br_if $label$1
    (local.get $4)
   )
   (local.set $5
    (local.get $3)
   )
   (drop
    (local.get $3)
   )
   (local.set $3
    (i32.const -14051)
   )
  )
  (local.set $6
   (local.get $3)
  )
  (if
   (local.get $3)
   (global.set $global$0
    (i32.const 0)
   )
  )
 )
 (func $1 (; 1 ;)
  (call $0
   (i64.const 1125899906842624)
   (f32.const -nan:0x7fc91a)
   (i32.const -46)
  )
 )
 (func $2 (; 2 ;) (param $var$0 i32) (param $var$1 f64) (result i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (block
   (block
    (local.set $2
     (global.get $global$0)
    )
    (if
     (local.get $2)
     (unreachable)
    )
   )
   (local.set $3
    (i32.const 0)
   )
  )
  (local.set $4
   (local.get $3)
  )
  (return
   (local.get $3)
  )
 )
)
(module
 (type $i32_=>_none (func (param i32)))
 (import "env" "out" (func $out (param i32)))
 (func $each-pass-must-clear (; 1 ;) (param $var$0 i32)
  (local $1 i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local.set $1
   (local.get $var$0)
  )
  (local.set $2
   (i32.eqz
    (local.get $var$0)
   )
  )
  (call $out
   (local.get $2)
  )
  (local.set $3
   (local.get $var$0)
  )
  (local.set $4
   (local.get $2)
  )
  (call $out
   (local.get $2)
  )
 )
)
(module
 (type $none_=>_none (func))
 (type $none_=>_i64 (func (result i64)))
 (global $glob (mut i32) (i32.const 1))
 (func $i64-shifts (; 0 ;) (result i64)
  (local $temp i64)
  (local $1 i64)
  (local $2 i64)
  (local $3 i64)
  (local $4 i64)
  (local $5 i64)
  (block
   (local.set $1
    (i64.add
     (i64.const 1)
     (i64.const 2)
    )
   )
   (local.set $temp
    (local.get $1)
   )
   (local.set $temp
    (i64.const 9999)
   )
   (local.set $2
    (local.get $1)
   )
   (local.set $temp
    (local.get $1)
   )
   (local.set $3
    (local.get $temp)
   )
   (local.set $4
    (local.get $temp)
   )
  )
  (local.set $5
   (local.get $temp)
  )
  (return
   (local.get $temp)
  )
 )
 (func $global (; 1 ;)
  (local $x i32)
  (local $y i32)
  (local $2 i32)
  (local $3 i32)
  (local $4 i32)
  (local.set $2
   (global.get $glob)
  )
  (local.set $x
   (local.get $2)
  )
  (local.set $3
   (local.get $x)
  )
  (local.set $y
   (local.get $x)
  )
  (local.set $4
   (local.get $x)
  )
  (local.set $y
   (local.get $x)
  )
 )
)
(module
 (type $none_=>_none (func))
 (type $none_=>_funcref (func (result funcref)))
 (func $subtype-test (; 0 ;) (result funcref)
  (local $0 nullref)
  (local $1 nullref)
  (local $2 funcref)
  (local $3 funcref)
  (block
   (nop)
   (loop $label$1
    (local.set $0
     (ref.null)
    )
   )
   (local.set $1
    (local.get $0)
   )
   (local.set $2
    (local.get $0)
   )
  )
  (local.set $3
   (local.get $2)
  )
  (return
   (local.get $2)
  )
 )
 (func $test (; 1 ;)
  (local $0 anyref)
  (local $1 nullref)
  (local $2 nullref)
  (block $label$1
   (local.set $0
    (ref.null)
   )
   (local.set $1
    (ref.null)
   )
  )
  (local.set $2
   (local.get $1)
  )
  (drop
   (local.get $1)
  )
 )
)
