(module
 (type $ii (func (param i32 i32)))
 (type $FUNCSIG$v (func))
 (import "env" "memory" (memory $0 256))
 (data (get_global $memoryBase) "hello, A!\n\00\00\00\00\00\00hello, B!\n")
 (import "env" "table" (table $0 10 anyfunc))
 (elem (get_global $tableBase) $only-a $willCollide $some-func $some-collide $only-a $some-func $only-b $willCollide$0 $some-func-b $some-collide$0)
 (import "env" "memoryBase" (global $memoryBase i32))
 (import "env" "tableBase" (global $tableBase i32))
 (import "env" "memoryBase" (global $memoryBase$0 i32))
 (import "env" "tableBase" (global $tableBase$0 i32))
 (import "env" "some-func" (func $some-func))
 (import "env" "some-collide" (func $some-collide))
 (import "env" "some-func-b" (func $some-func-b))
 (import "env" "some-collide" (func $some-collide$0))
 (global $global-collide-mut (mut i32) (i32.const 0))
 (global $global-a-mut (mut i32) (i32.const 1))
 (global $global-collide-mut$0 (mut i32) (i32.const 0))
 (global $global-b-mut (mut i32) (i32.const 1))
 (export "exp-a" (func $only-a))
 (export "exp-collide" (func $only-a))
 (export "exp-collide2" (func $willCollide))
 (export "exp-b" (func $only-b))
 (export "exp-b-nameCollided" (func $willCollide$0))
 (func $only-a (; 4 ;) (type $FUNCSIG$v)
  (nop)
  (call $only-a)
  (call $some-func)
  (call $some-collide)
  (call_indirect (type $ii)
   (i32.const 123)
   (i32.const 456)
   (i32.const 789)
  )
  (nop)
  (nop)
  (drop
   (get_global $global-a-mut)
  )
  (drop
   (get_global $memoryBase)
  )
  (drop
   (get_global $tableBase)
  )
  (set_global $global-collide-mut
   (i32.const 1234)
  )
 )
 (func $willCollide (; 5 ;) (type $FUNCSIG$v)
  (nop)
  (call $willCollide)
 )
 (func $only-b (; 6 ;) (type $FUNCSIG$v)
  (nop)
  (call $only-b)
  (call $some-func-b)
  (call $some-collide$0)
  (call_indirect (type $ii)
   (i32.const 12)
   (i32.const 34)
   (i32.const 56)
  )
  (nop)
  (nop)
  (drop
   (get_global $global-b-mut)
  )
  (drop
   (get_global $memoryBase$0)
  )
  (drop
   (get_global $tableBase$0)
  )
  (drop
   (i32.add
    (get_global $memoryBase$0)
    (i32.const 1000)
   )
  )
  (drop
   (i32.add
    (get_global $tableBase$0)
    (i32.const 1000)
   )
  )
  (drop
   (i32.add
    (get_global $tableBase$0)
    (unreachable)
   )
  )
  (drop
   (i32.sub
    (get_global $tableBase$0)
    (i32.const 1000)
   )
  )
  (set_global $global-collide-mut$0
   (i32.const 5678)
  )
 )
 (func $willCollide$0 (; 7 ;) (type $FUNCSIG$v)
  (nop)
  (call $willCollide$0)
 )
)
