(module
 (type $none_=>_none (func))
 (type $f32_=>_none (func (param f32)))
 (type $nullref_=>_none (func (param nullref)))
 (type $none_=>_externref_exnref_exnref_exnref (func (result externref exnref exnref exnref)))
 (type $none_=>_exnref (func (result exnref)))
 (type $i32_=>_none (func (param i32)))
 (type $i64_=>_none (func (param i64)))
 (type $f64_=>_none (func (param f64)))
 (type $f64_i32_i64_f64_v128_=>_none (func (param f64 i32 i64 f64 v128)))
 (type $v128_=>_none (func (param v128)))
 (type $exnref_=>_none (func (param exnref)))
 (type $none_=>_i32 (func (result i32)))
 (type $funcref_f64_f32_v128_exnref_f32_=>_i64 (func (param funcref f64 f32 v128 exnref f32) (result i64)))
 (type $externref_externref_f32_v128_funcref_funcref_=>_v128 (func (param externref externref f32 v128 funcref funcref) (result v128)))
 (type $v128_=>_funcref (func (param v128) (result funcref)))
 (import "fuzzing-support" "log-i32" (func $log-i32 (param i32)))
 (import "fuzzing-support" "log-i64" (func $log-i64 (param i64)))
 (import "fuzzing-support" "log-f32" (func $log-f32 (param f32)))
 (import "fuzzing-support" "log-f64" (func $log-f64 (param f64)))
 (import "fuzzing-support" "log-v128" (func $log-v128 (param v128)))
 (import "fuzzing-support" "log-nullref" (func $log-nullref (param nullref)))
 (import "fuzzing-support" "log-exnref" (func $log-exnref (param exnref)))
 (memory $0 (shared 1 1))
 (data (i32.const 0) "N\0fN\f5\f9\b1\ff\fa\eb\e5\fe\a7\ec\fb\fc\f4\a6\e4\ea\f0\ae\e3")
 (table $0 2 2 funcref)
 (elem (i32.const 0) $func_8 $func_12)
 (global $global$5 (mut f32) (f32.const 74))
 (global $global$4 (mut nullref) (ref.null))
 (global $global$3 (mut i32) (i32.const 1263230471))
 (global $global$2 (mut i32) (i32.const -131072))
 (global $global$1 (mut (funcref nullref nullref externref exnref f64)) (tuple.make
  (ref.null)
  (ref.null)
  (ref.null)
  (ref.null)
  (ref.null)
  (f64.const 1.1754943508222875e-38)
 ))
 (global $hangLimit (mut i32) (i32.const 10))
 (event $event$0 (attr 0) (param nullref))
 (event $event$1 (attr 0) (param f32))
 (export "hashMemory" (func $hashMemory))
 (export "memory" (memory $0))
 (export "func_8" (func $func_8))
 (export "func_8_invoker" (func $func_8_invoker))
 (export "func_11" (func $func_11))
 (export "func_12" (func $func_12))
 (export "func_12_invoker" (func $func_12_invoker))
 (export "func_14" (func $func_14))
 (export "func_15" (func $func_15))
 (export "hangLimitInitializer" (func $hangLimitInitializer))
 (func $hashMemory (result i32)
  (local $0 i32)
  (local.set $0
   (i32.const 5381)
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=1
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=2
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=3
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=4
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=5
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=6
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=7
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=8
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=9
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=10
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=11
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=12
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=13
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=14
     (i32.const 0)
    )
   )
  )
  (local.set $0
   (i32.xor
    (i32.add
     (i32.shl
      (local.get $0)
      (i32.const 5)
     )
     (local.get $0)
    )
    (i32.load8_u offset=15
     (i32.const 0)
    )
   )
  )
  (local.get $0)
 )
 (func $func_8 (result exnref)
  (local $0 i64)
  (local $1 i64)
  (local $2 exnref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (ref.null)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (ref.null)
 )
 (func $func_8_invoker
  (drop
   (call $func_8)
  )
  (drop
   (call $func_8)
  )
  (call $log-i32
   (call $hashMemory)
  )
  (drop
   (call $func_8)
  )
  (call $log-i32
   (call $hashMemory)
  )
 )
 (func $func_10 (result externref exnref exnref exnref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (tuple.make
      (ref.null)
      (ref.null)
      (ref.null)
      (ref.null)
     )
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (tuple.make
   (ref.null)
   (ref.null)
   (ref.null)
   (ref.null)
  )
 )
 (func $func_11 (param $0 f64) (param $1 i32) (param $2 i64) (param $3 f64) (param $4 v128)
  (local $5 nullref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return)
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (block $label$0
   (call $log-i32
    (call $hashMemory)
   )
   (call $log-exnref
    (ref.null)
   )
  )
 )
 (func $func_12 (param $0 funcref) (param $1 f64) (param $2 f32) (param $3 v128) (param $4 exnref) (param $5 f32) (result i64)
  (local $6 nullref)
  (local $7 f32)
  (local $8 exnref)
  (local $9 f32)
  (local $10 f64)
  (local $11 i64)
  (local $12 i32)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (local.get $11)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (block $label$0
   (call $log-f32
    (f32.const -nan:0x7fffe0)
   )
   (return
    (local.get $11)
   )
  )
 )
 (func $func_12_invoker
  (drop
   (call $func_12
    (ref.null)
    (f64.const -nan:0xfffffffffffec)
    (f32.const 244)
    (v128.const i32x4 0x5e58601d 0x5e555c53 0xffff0001 0xffffffff)
    (ref.null)
    (f32.const 72)
   )
  )
  (drop
   (call $func_12
    (ref.func $log-v128)
    (f64.const 32)
    (f32.const 18014398509481984)
    (v128.const i32x4 0x367f7324 0x5f000000 0x4e80108b 0xcf000000)
    (ref.null)
    (f32.const -549755813888)
   )
  )
  (drop
   (call $func_12
    (ref.func $func_12)
    (f64.const 4294967295.799)
    (f32.const 1279937664)
    (v128.const i32x4 0xffffffb6 0x00000000 0x4041414b 0x4478405c)
    (ref.null)
    (f32.const 10284)
   )
  )
 )
 (func $func_14 (param $0 externref) (param $1 externref) (param $2 f32) (param $3 v128) (param $4 funcref) (param $5 funcref) (result v128)
  (local $6 (i64 i32 i32 i64 funcref))
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (local.get $3)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (block $label$0 (result v128)
   (i32.atomic.store8 offset=3
    (i32.and
     (if (result i32)
      (global.get $global$3)
      (i32.const 15)
      (i32.const 1)
     )
     (i32.const 15)
    )
    (i32.load offset=3 align=2
     (i32.and
      (i32.const 15)
      (i32.const 15)
     )
    )
   )
   (local.tee $3
    (block $label$16 (result v128)
     (loop $label$17
      (block
       (if
        (i32.eqz
         (global.get $hangLimit)
        )
        (return
         (v128.const i32x4 0xffff0009 0xfffeffff 0x00005a18 0xffff7fff)
        )
       )
       (global.set $hangLimit
        (i32.sub
         (global.get $hangLimit)
         (i32.const 1)
        )
       )
      )
      (block
       (local.set $5
        (tuple.extract 2
         (tuple.make
          (f32.const 3366576023666688)
          (f32.const 1897033472)
          (ref.null)
          (ref.func $log-exnref)
          (ref.null)
         )
        )
       )
       (local.set $5
        (tuple.extract 2
         (tuple.make
          (f32.const 3366576023666688)
          (f32.const 1897033472)
          (ref.null)
          (ref.func $log-exnref)
          (ref.null)
         )
        )
       )
       (if
        (i32.eqz
         (i8x16.extract_lane_u 13
          (i16x8.neg
           (local.get $3)
          )
         )
        )
        (block $label$18
         (loop $label$19
          (block
           (if
            (i32.eqz
             (global.get $hangLimit)
            )
            (return
             (v128.const i32x4 0x2a230007 0x24000cff 0x01000405 0xe6abf412)
            )
           )
           (global.set $hangLimit
            (i32.sub
             (global.get $hangLimit)
             (i32.const 1)
            )
           )
          )
          (drop
           (v128.const i32x4 0xffff8001 0xffffffff 0xfc000000 0xffffffff)
          )
         )
         (call $func_12_invoker)
        )
        (drop
         (local.tee $0
          (local.get $1)
         )
        )
       )
      )
     )
     (local.get $3)
    )
   )
  )
 )
 (func $func_15 (param $0 v128) (result funcref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (ref.null)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (select (result nullref)
   (if (result nullref)
    (loop $label$10 (result i32)
     (block
      (if
       (i32.eqz
        (global.get $hangLimit)
       )
       (return
        (ref.func $log-f64)
       )
      )
      (global.set $hangLimit
       (i32.sub
        (global.get $hangLimit)
        (i32.const 1)
       )
      )
     )
     (block (result i32)
      (block $label$11
       (i32.atomic.store8 offset=4
        (i32.and
         (i32.load8_s offset=3
          (i32.and
           (i32.const 1026044209)
           (i32.const 15)
          )
         )
         (i32.const 15)
        )
        (i32.const 0)
       )
       (drop
        (local.get $0)
       )
      )
      (br_if $label$10
       (i32.const 128)
      )
      (select
       (select
        (i32.const -127)
        (i32.const -65537)
        (i32.const -254)
       )
       (i32.const 102650628)
       (i32.const 810034249)
      )
     )
    )
    (ref.null)
    (block $label$13 (result nullref)
     (loop $label$14
      (block
       (if
        (i32.eqz
         (global.get $hangLimit)
        )
        (return
         (ref.func $func_8)
        )
       )
       (global.set $hangLimit
        (i32.sub
         (global.get $hangLimit)
         (i32.const 1)
        )
       )
      )
      (nop)
     )
     (ref.null)
    )
   )
   (ref.null)
   (i32.atomic.load8_u offset=1
    (ref.is_null
     (call_indirect (type $none_=>_exnref)
      (i32.const 0)
     )
    )
   )
  )
 )
 (func $hangLimitInitializer
  (global.set $hangLimit
   (i32.const 10)
  )
 )
)
