(module
 (type $none_=>_none (func))
 (type $none_=>_i32 (func (result i32)))
 (type $i64_=>_none (func (param i64)))
 (type $i32_=>_none (func (param i32)))
 (type $f32_=>_none (func (param f32)))
 (type $f64_=>_none (func (param f64)))
 (type $v128_=>_none (func (param v128)))
 (type $exnref_=>_none (func (param exnref)))
 (type $funcref_f64_=>_i32 (func (param funcref f64) (result i32)))
 (type $none_=>_f32 (func (result f32)))
 (type $eqref_i32_=>_funcref (func (param eqref i32) (result funcref)))
 (type $i32_i32_f32_exnref_=>_externref (func (param i32 i32 f32 exnref) (result externref)))
 (type $externref_f64_f32_eqref_i31ref_anyref_=>_externref (func (param externref f64 f32 eqref i31ref anyref) (result externref)))
 (type $exnref_f32_i31ref_externref_funcref_i31ref_i64_=>_exnref (func (param exnref f32 i31ref externref funcref i31ref i64) (result exnref)))
 (type $none_=>_eqref_i31ref_i64_v128_eqref (func (result eqref i31ref i64 v128 eqref)))
 (type $v128_i31ref_=>_eqref_i31ref_i64_v128_eqref (func (param v128 i31ref) (result eqref i31ref i64 v128 eqref)))
 (type $none_=>_i31ref (func (result i31ref)))
 (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-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 5 5 funcref)
 (elem (i32.const 0) $func_9 $func_9 $func_9 $func_10 $func_14)
 (global $global$5 (mut eqref) (ref.null eq))
 (global $global$4 (mut i32) (i32.const 470177031))
 (global $global$3 (mut f64) (f64.const 2147483647))
 (global $global$2 (mut (eqref f32 eqref funcref funcref i64)) (tuple.make
  (ref.null eq)
  (f32.const -2147483648)
  (ref.null eq)
  (ref.null func)
  (ref.null func)
  (i64.const -32)
 ))
 (global $global$1 (mut f32) (f32.const -32769))
 (global $hangLimit (mut i32) (i32.const 10))
 (export "hashMemory" (func $hashMemory))
 (export "memory" (memory $0))
 (export "func_7_invoker" (func $func_7_invoker))
 (export "func_9" (func $func_9))
 (export "func_11_invoker" (func $func_11_invoker))
 (export "func_14" (func $func_14))
 (export "func_18" (func $func_18))
 (export "func_19" (func $func_19))
 (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_7 (param $0 i32) (param $1 i32) (param $2 f32) (param $3 exnref) (result externref)
  (local $4 i32)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (ref.null extern)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (ref.null extern)
 )
 (func $func_7_invoker
  (drop
   (call $func_7
    (i32.const -127)
    (i32.const -268435456)
    (f32.const 1179405440)
    (ref.null exn)
   )
  )
  (call $log-i32
   (call $hashMemory)
  )
 )
 (func $func_9 (result f32)
  (local $0 anyref)
  (local $1 f64)
  (local $2 (anyref anyref))
  (local $3 eqref)
  (local $4 externref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (f32.const 1.4949444621624858e-31)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (block $label$0
   (nop)
   (block $label$1
    (nop)
    (return
     (f32.const 7.396028525772014e-24)
    )
   )
  )
 )
 (func $func_10 (param $0 externref) (param $1 f64) (param $2 f32) (param $3 eqref) (param $4 i31ref) (param $5 anyref) (result externref)
  (local $6 i64)
  (local $7 (anyref exnref f32 f64 f64))
  (local $8 eqref)
  (local $9 exnref)
  (local $10 i64)
  (local $11 f64)
  (local $12 f32)
  (local $13 v128)
  (local $14 exnref)
  (local $15 (funcref funcref v128 i31ref v128))
  (local $16 anyref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (ref.null extern)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (ref.null extern)
 )
 (func $func_11 (param $0 exnref) (param $1 f32) (param $2 i31ref) (param $3 externref) (param $4 funcref) (param $5 i31ref) (param $6 i64) (result exnref)
  (local $7 (i32 i64 anyref externref externref eqref))
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (ref.null exn)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (ref.null exn)
 )
 (func $func_11_invoker
  (drop
   (call $func_11
    (ref.null exn)
    (f32.const -1022.1400146484375)
    (i31.new
     (i32.const -32766)
    )
    (ref.null extern)
    (ref.null func)
    (i31.new
     (i32.const -65535)
    )
    (i64.const 3)
   )
  )
  (call $log-i32
   (call $hashMemory)
  )
 )
 (func $func_13 (result i31ref)
  (local $0 i31ref)
  (local $1 (funcref f32 anyref f32 externref))
  (local $2 f64)
  (local $3 f64)
  (local $4 (i32 v128))
  (local $5 (anyref i64 v128 eqref funcref exnref))
  (local $6 i32)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (i31.new
      (i32.const -28)
     )
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (i31.new
   (i32.const 64)
  )
 )
 (func $func_14 (result i32)
  (local $0 i32)
  (local $1 funcref)
  (local $2 (anyref externref))
  (local $3 funcref)
  (local $4 i64)
  (local $5 externref)
  (local $6 (exnref f64))
  (local $7 (anyref f64 f64))
  (local $8 (i64 i32 eqref exnref))
  (local $9 (v128 i64 funcref i32 anyref anyref))
  (local $10 (i32 eqref f64 funcref))
  (local $11 eqref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (local.get $0)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (block $label$0 (result i32)
   (nop)
   (local.get $0)
  )
 )
 (func $func_15 (result i32)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (i32.const 32768)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (global.get $global$4)
 )
 (func $func_16 (param $0 eqref) (param $1 i32) (result funcref)
  (local $2 v128)
  (local $3 funcref)
  (local $4 eqref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (local.get $3)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (loop $label$1 (result funcref)
   (block
    (if
     (i32.eqz
      (global.get $hangLimit)
     )
     (return
      (local.get $3)
     )
    )
    (global.set $hangLimit
     (i32.sub
      (global.get $hangLimit)
      (i32.const 1)
     )
    )
   )
   (block (result funcref)
    (block $label$2
     (br_if $label$2
      (i32.eqz
       (block $label$3
        (global.set $global$4
         (local.tee $1
          (local.get $1)
         )
        )
        (block $label$4
         (nop)
         (br_if $label$1
          (i32.eqz
           (i31.get_u
            (i31.new
             (i32.const -90)
            )
           )
          )
         )
        )
        (br $label$1)
       )
      )
     )
     (memory.init 0
      (i32.and
       (local.get $1)
       (i32.const 15)
      )
      (i32.const 16)
      (i32.const 3)
     )
    )
    (br_if $label$1
     (i32.const 131071)
    )
    (local.get $3)
   )
  )
 )
 (func $func_17 (param $0 i64)
  (local $1 externref)
  (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)
   )
   (if
    (i32.eqz
     (f64.gt
      (f64.const 103)
      (f64.max
       (f64.const 8388607.124)
       (if
        (i32.eqz
         (global.get $global$4)
        )
        (block $label$1
         (call $log-v128
          (f64x2.replace_lane 0
           (f32x4.neg
            (i8x16.shr_u
             (v128.load offset=3
              (i32.const 65535)
             )
             (loop $label$2 (result i32)
              (block
               (if
                (i32.eqz
                 (global.get $hangLimit)
                )
                (return)
               )
               (global.set $hangLimit
                (i32.sub
                 (global.get $hangLimit)
                 (i32.const 1)
                )
               )
              )
              (block (result i32)
               (block $label$3
                (call $log-exnref
                 (ref.null exn)
                )
                (call $log-i32
                 (i32.atomic.rmw8.sub_u offset=22
                  (i32.and
                   (i32.const 6)
                   (i32.const 15)
                  )
                  (i32.const 1852667194)
                 )
                )
               )
               (br_if $label$2
                (tuple.extract 0
                 (tuple.make
                  (i32.const -2147483648)
                  (i31.new
                   (i32.const -32767)
                  )
                 )
                )
               )
               (i32.const -2147483648)
              )
             )
            )
           )
           (f64.const -nan:0xffffffffffff3)
          )
         )
         (br $label$0)
        )
        (block $label$4
         (br_if $label$0
          (i32.eqz
           (tuple.extract 2
            (block $label$5
             (call $log-i32
              (call $hashMemory)
             )
             (br $label$0)
            )
           )
          )
         )
         (br $label$0)
        )
       )
      )
     )
    )
    (block $label$6
     (call $log-i32
      (call $hashMemory)
     )
     (call $log-i32
      (call $hashMemory)
     )
    )
    (if
     (i32.eqz
      (i32.or
       (i32.const 65535)
       (i32.const 8)
      )
     )
     (call $log-i32
      (i32.const 608321884)
     )
     (atomic.fence)
    )
   )
  )
 )
 (func $func_18 (param $0 v128) (param $1 i31ref) (result eqref i31ref i64 v128 eqref)
  (local $2 i64)
  (local $3 v128)
  (local $4 f32)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (tuple.make
      (ref.null eq)
      (i31.new
       (i32.const -2147483648)
      )
      (i64.const 369041285507055655)
      (v128.const i32x4 0xffffffd1 0xffffffff 0x25312936 0x5455263f)
      (ref.null eq)
     )
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (tuple.make
   (ref.null eq)
   (local.get $1)
   (i64.const -32766)
   (v128.bitselect
    (local.get $3)
    (block $label$2
     (atomic.fence)
     (return
      (tuple.make
       (ref.null eq)
       (i31.new
        (i32.const 19521)
       )
       (i64.const -32766)
       (v128.const i32x4 0x4f800000 0x3e116873 0x46ca0800 0x54000000)
       (ref.null eq)
      )
     )
    )
    (tuple.extract 2
     (tuple.make
      (i31.new
       (i32.const 1684216173)
      )
      (ref.null eq)
      (v128.const i32x4 0xffa20004 0x00000000 0x2b25ffa6 0x005b0080)
      (ref.null eq)
     )
    )
   )
   (global.get $global$5)
  )
 )
 (func $func_19 (param $0 funcref) (param $1 f64) (result i32)
  (local $2 (funcref f32 exnref exnref externref))
  (local $3 externref)
  (local $4 v128)
  (local $5 f64)
  (local $6 i32)
  (local $7 (f64 i31ref eqref eqref))
  (local $8 anyref)
  (local $9 (eqref i31ref i32 i31ref anyref))
  (local $10 eqref)
  (local $11 exnref)
  (local $12 externref)
  (local $13 externref)
  (local $14 externref)
  (local $15 i31ref)
  (block
   (if
    (i32.eqz
     (global.get $hangLimit)
    )
    (return
     (i32.const -131072)
    )
   )
   (global.set $hangLimit
    (i32.sub
     (global.get $hangLimit)
     (i32.const 1)
    )
   )
  )
  (select
   (i32.atomic.load8_u offset=22
    (i32.and
     (local.get $6)
     (i32.const 15)
    )
   )
   (local.tee $6
    (select
     (i16x8.extract_lane_s 4
      (v128.const i32x4 0xfffffff8 0x00008001 0xffffffa0 0x180b1217)
     )
     (if (result i32)
      (if (result i32)
       (i32.eqz
        (i32.const 524287)
       )
       (block $label$1
        (memory.init 0
         (i32.and
          (f32.ge
           (block $label$2 (result f32)
            (call $log-i32
             (call $hashMemory)
            )
            (if (result f32)
             (if (result i32)
              (i32.eqz
               (loop $label$3 (result i32)
                (block
                 (if
                  (i32.eqz
                   (global.get $hangLimit)
                  )
                  (return
                   (i32.const -83)
                  )
                 )
                 (global.set $hangLimit
                  (i32.sub
                   (global.get $hangLimit)
                   (i32.const 1)
                  )
                 )
                )
                (block (result i32)
                 (br_if $label$3
                  (local.get $6)
                 )
                 (br_if $label$3
                  (local.get $6)
                 )
                 (i32.const -33)
                )
               )
              )
              (i32.const 2147483647)
              (if (result i32)
               (i32.eqz
                (i32.const 32768)
               )
               (i32.const 16404)
               (i32.const -1024)
              )
             )
             (f32.const -nan:0x7fffa8)
             (block $label$4 (result f32)
              (call $log-i32
               (call $hashMemory)
              )
              (f32.const 18446744073709551615)
             )
            )
           )
           (if (result f32)
            (i32.eqz
             (ref.is_null
              (if (result externref)
               (i32.eqz
                (i32.const -65535)
               )
               (ref.null extern)
               (local.get $12)
              )
             )
            )
            (block $label$5 (result f32)
             (call $log-f32
              (select
               (f32.const 4096)
               (f32.const -nan:0x7fffa1)
               (i32.const 2097640319)
              )
             )
             (f32.const 8192)
            )
            (f32.const -1125899906842624)
           )
          )
          (i32.const 15)
         )
         (i32.const 1)
         (i32.const 2)
        )
        (return
         (local.get $6)
        )
       )
       (block $label$6 (result i32)
        (loop $label$7
         (block
          (if
           (i32.eqz
            (global.get $hangLimit)
           )
           (return
            (i32.const -4096)
           )
          )
          (global.set $hangLimit
           (i32.sub
            (global.get $hangLimit)
            (i32.const 1)
           )
          )
         )
         (block $label$8
          (nop)
          (memory.fill
           (i32.and
            (i8x16.extract_lane_s 11
             (i8x16.max_s
              (local.get $4)
              (i16x8.add_saturate_u
               (v128.const i32x4 0xffea0f4a 0xfdffffec 0xdfff0512 0x1910ffff)
               (local.get $4)
              )
             )
            )
            (i32.const 15)
           )
           (i32.const 1326258715)
           (local.get $6)
          )
         )
        )
        (local.get $6)
       )
      )
      (block $label$9 (result i32)
       (i32.const 10353)
      )
      (local.get $6)
     )
     (select
      (i32.const 33554433)
      (i32.trunc_f64_s
       (f64.const 3402823466385288598117041e14)
      )
      (local.tee $6
       (select
        (local.get $6)
        (ref.eq
         (loop $label$0 (result i31ref)
          (block
           (if
            (i32.eqz
             (global.get $hangLimit)
            )
            (return
             (i32.const -32768)
            )
           )
           (global.set $hangLimit
            (i32.sub
             (global.get $hangLimit)
             (i32.const 1)
            )
           )
          )
          (block (result i31ref)
           (local.set $5
            (f64.const 371920655)
           )
           (br_if $label$0
            (i32.eqz
             (local.tee $6
              (local.tee $6
               (local.tee $6
                (local.tee $6
                 (local.get $6)
                )
               )
              )
             )
            )
           )
           (local.get $15)
          )
         )
         (local.get $10)
        )
        (local.get $6)
       )
      )
     )
    )
   )
   (global.get $global$4)
  )
 )
 (func $hangLimitInitializer
  (global.set $hangLimit
   (i32.const 10)
  )
 )
)
