(module $filterbank.wasm
  (type (;0;) (func (param i32 i32)))
  (type (;1;) (func))
  (type (;2;) (func (param i32 i32 i32 i32)))
  (type (;3;) (func (result i32)))
  (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
  (func $__wasm_apply_data_relocs (type 1))
  (func $filterbank_main (type 1)
    (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 f32)
    global.get $__stack_pointer
    i32.const 4096
    i32.sub
    local.tee 0
    global.set $__stack_pointer
    i32.const 256
    i32.const 256
    call $__pragma_loopbound
    local.get 0
    i32.const 3072
    i32.add
    local.set 1
    i32.const 4
    local.set 2
    loop  ;; label = @1
      local.get 1
      i32.const 12
      i32.add
      local.get 2
      f32.convert_i32_u
      f32.store
      local.get 1
      i32.const 8
      i32.add
      local.get 2
      i32.const -1
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 1
      i32.const 4
      i32.add
      local.get 2
      i32.const -2
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 1
      local.get 2
      i32.const -3
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 1
      i32.const 16
      i32.add
      local.set 1
      local.get 2
      i32.const 4
      i32.add
      local.tee 2
      i32.const 260
      i32.ne
      br_if 0 (;@1;)
    end
    i32.const 32
    i32.const 32
    call $__pragma_loopbound
    i32.const 56
    local.set 3
    i32.const 42
    local.set 4
    i32.const 30
    local.set 5
    i32.const 20
    local.set 6
    i32.const 0
    local.set 7
    i32.const 71
    local.set 1
    i32.const 2
    local.set 8
    i32.const 6
    local.set 9
    i32.const 0
    local.set 10
    loop  ;; label = @1
      i32.const 8
      i32.const 8
      call $__pragma_loopbound
      local.get 0
      local.get 7
      i32.add
      local.tee 2
      local.get 10
      f32.convert_i32_u
      f32.store
      local.get 0
      i32.const 1024
      i32.add
      local.get 7
      i32.add
      local.tee 11
      local.get 1
      i32.const -70
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 128
      i32.add
      local.get 1
      i32.const -60
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 128
      i32.add
      local.get 8
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 256
      i32.add
      local.get 1
      i32.const -50
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 256
      i32.add
      local.get 9
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 384
      i32.add
      local.get 1
      i32.const -40
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 384
      i32.add
      local.get 7
      i32.const 12
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 512
      i32.add
      local.get 1
      i32.const -30
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 512
      i32.add
      local.get 6
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 640
      i32.add
      local.get 1
      i32.const -20
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 640
      i32.add
      local.get 5
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 768
      i32.add
      local.get 1
      i32.const -10
      i32.add
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 768
      i32.add
      local.get 4
      f32.convert_i32_u
      f32.store
      local.get 11
      i32.const 896
      i32.add
      local.get 1
      f32.convert_i32_u
      f32.store
      local.get 2
      i32.const 896
      i32.add
      local.get 3
      f32.convert_i32_u
      f32.store
      local.get 1
      i32.const 33
      i32.add
      local.set 1
      local.get 8
      i32.const 2
      i32.add
      local.set 8
      local.get 9
      i32.const 3
      i32.add
      local.set 9
      local.get 6
      i32.const 5
      i32.add
      local.set 6
      local.get 5
      i32.const 6
      i32.add
      local.set 5
      local.get 4
      i32.const 7
      i32.add
      local.set 4
      local.get 10
      i32.const 1
      i32.add
      local.set 10
      local.get 3
      i32.const 8
      i32.add
      local.set 3
      local.get 7
      i32.const 4
      i32.add
      local.tee 7
      i32.const 128
      i32.ne
      br_if 0 (;@1;)
    end
    i32.const 2
    i32.const 2
    call $__pragma_loopbound
    i32.const 0
    i32.const 0
    i32.load offset=1024
    local.tee 1
    i32.const -1
    i32.add
    i32.store offset=1024
    block  ;; label = @1
      block  ;; label = @2
        local.get 1
        i32.const 1
        i32.ge_s
        br_if 0 (;@2;)
        br 1 (;@1;)
      end
      loop  ;; label = @2
        local.get 0
        i32.const 3072
        i32.add
        local.get 0
        i32.const 2048
        i32.add
        local.get 0
        i32.const 1024
        i32.add
        local.get 0
        call $filterbank_core
        i32.const 0
        i32.const 0
        i32.load offset=1024
        local.tee 1
        i32.const -1
        i32.add
        i32.store offset=1024
        local.get 1
        i32.const 0
        i32.gt_s
        br_if 0 (;@2;)
      end
      block  ;; label = @2
        block  ;; label = @3
          local.get 0
          f32.load offset=2048
          local.tee 12
          f32.abs
          f32.const 0x1p+31 (;=2.14748e+09;)
          f32.lt
          i32.eqz
          br_if 0 (;@3;)
          local.get 12
          i32.trunc_f32_s
          local.set 1
          br 1 (;@2;)
        end
        i32.const -2147483648
        local.set 1
      end
      local.get 1
      i32.const -9408
      i32.add
      local.set 1
    end
    i32.const 0
    local.get 1
    i32.store offset=1028
    local.get 0
    i32.const 4096
    i32.add
    global.set $__stack_pointer)
  (func $filterbank_core (type 2) (param i32 i32 i32 i32)
    (local i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 i32 f32 i32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32 f32)
    global.get $__stack_pointer
    i32.const 3072
    i32.sub
    local.tee 4
    global.set $__stack_pointer
    i32.const 256
    i32.const 256
    call $__pragma_loopbound
    i32.const -1024
    local.set 5
    loop  ;; label = @1
      local.get 1
      local.get 5
      i32.add
      local.tee 6
      i32.const 1048
      i32.add
      i64.const 0
      i64.store align=4
      local.get 6
      i32.const 1040
      i32.add
      i64.const 0
      i64.store align=4
      local.get 6
      i32.const 1032
      i32.add
      i64.const 0
      i64.store align=4
      local.get 6
      i32.const 1024
      i32.add
      i64.const 0
      i64.store align=4
      local.get 5
      i32.const 32
      i32.add
      local.tee 5
      br_if 0 (;@1;)
    end
    i32.const 8
    i32.const 8
    call $__pragma_loopbound
    local.get 0
    i32.const -4
    i32.add
    local.set 7
    local.get 4
    i32.const 1024
    i32.add
    i32.const -4
    i32.add
    local.set 8
    i32.const 0
    local.set 9
    local.get 3
    local.set 10
    local.get 2
    local.set 11
    loop  ;; label = @1
      i32.const 256
      i32.const 256
      call $__pragma_loopbound
      local.get 2
      local.get 9
      i32.const 7
      i32.shl
      local.tee 12
      i32.add
      local.set 13
      local.get 7
      local.set 14
      i32.const 0
      local.set 15
      loop  ;; label = @2
        i32.const 1
        i32.const 32
        call $__pragma_loopbound
        local.get 15
        i32.const 31
        local.get 15
        i32.const 31
        i32.lt_u
        select
        local.set 16
        block  ;; label = @3
          block  ;; label = @4
            local.get 15
            br_if 0 (;@4;)
            i32.const 0
            local.set 17
            f32.const 0x0p+0 (;=0;)
            local.set 18
            local.get 15
            local.set 5
            br 1 (;@3;)
          end
          local.get 16
          i32.const 1
          i32.add
          i32.const 62
          i32.and
          local.set 19
          i32.const 0
          local.set 17
          f32.const 0x0p+0 (;=0;)
          local.set 18
          local.get 11
          local.set 6
          local.get 14
          local.set 5
          loop  ;; label = @4
            local.get 6
            i32.const 4
            i32.add
            f32.load
            local.get 5
            f32.load
            f32.mul
            local.get 6
            f32.load
            local.get 5
            i32.const 4
            i32.add
            f32.load
            f32.mul
            local.get 18
            f32.add
            f32.add
            local.set 18
            local.get 6
            i32.const 8
            i32.add
            local.set 6
            local.get 5
            i32.const -8
            i32.add
            local.set 5
            local.get 19
            local.get 17
            i32.const 2
            i32.add
            local.tee 17
            i32.ne
            br_if 0 (;@4;)
          end
          local.get 15
          local.get 17
          i32.sub
          local.set 5
        end
        local.get 4
        i32.const 2048
        i32.add
        local.get 15
        i32.const 2
        i32.shl
        i32.add
        local.set 6
        block  ;; label = @3
          local.get 16
          i32.const 1
          i32.and
          br_if 0 (;@3;)
          local.get 13
          local.get 17
          i32.const 2
          i32.shl
          i32.add
          f32.load
          local.get 0
          local.get 5
          i32.const 2
          i32.shl
          i32.add
          f32.load
          f32.mul
          local.get 18
          f32.add
          local.set 18
        end
        local.get 6
        local.get 18
        f32.store
        local.get 14
        i32.const 4
        i32.add
        local.set 14
        local.get 15
        i32.const 1
        i32.add
        local.tee 15
        i32.const 256
        i32.ne
        br_if 0 (;@2;)
      end
      i32.const 32
      i32.const 32
      call $__pragma_loopbound
      local.get 4
      f32.load offset=3040
      local.set 18
      local.get 4
      f32.load offset=3008
      local.set 20
      local.get 4
      f32.load offset=2976
      local.set 21
      local.get 4
      f32.load offset=2944
      local.set 22
      local.get 4
      f32.load offset=2912
      local.set 23
      local.get 4
      f32.load offset=2880
      local.set 24
      local.get 4
      f32.load offset=2848
      local.set 25
      local.get 4
      f32.load offset=2816
      local.set 26
      local.get 4
      f32.load offset=2784
      local.set 27
      local.get 4
      f32.load offset=2752
      local.set 28
      local.get 4
      f32.load offset=2720
      local.set 29
      local.get 4
      f32.load offset=2688
      local.set 30
      local.get 4
      f32.load offset=2656
      local.set 31
      local.get 4
      f32.load offset=2624
      local.set 32
      local.get 4
      f32.load offset=2592
      local.set 33
      local.get 4
      f32.load offset=2560
      local.set 34
      local.get 4
      f32.load offset=2528
      local.set 35
      local.get 4
      f32.load offset=2496
      local.set 36
      local.get 4
      f32.load offset=2464
      local.set 37
      local.get 4
      f32.load offset=2432
      local.set 38
      local.get 4
      f32.load offset=2400
      local.set 39
      local.get 4
      f32.load offset=2368
      local.set 40
      local.get 4
      f32.load offset=2336
      local.set 41
      local.get 4
      f32.load offset=2304
      local.set 42
      local.get 4
      f32.load offset=2272
      local.set 43
      local.get 4
      f32.load offset=2240
      local.set 44
      local.get 4
      f32.load offset=2208
      local.set 45
      local.get 4
      f32.load offset=2176
      local.set 46
      local.get 4
      f32.load offset=2144
      local.set 47
      local.get 4
      f32.load offset=2112
      local.set 48
      local.get 4
      f32.load offset=2080
      local.set 49
      local.get 4
      f32.load offset=2048
      local.set 50
      i32.const 256
      i32.const 256
      call $__pragma_loopbound
      i32.const 0
      local.set 5
      loop  ;; label = @2
        local.get 4
        i32.const 1024
        i32.add
        local.get 5
        i32.add
        local.tee 6
        i64.const 0
        i64.store
        local.get 6
        i32.const 24
        i32.add
        i64.const 0
        i64.store
        local.get 6
        i32.const 16
        i32.add
        i64.const 0
        i64.store
        local.get 6
        i32.const 8
        i32.add
        i64.const 0
        i64.store
        local.get 5
        i32.const 32
        i32.add
        local.tee 5
        i32.const 1024
        i32.ne
        br_if 0 (;@2;)
      end
      i32.const 32
      i32.const 32
      call $__pragma_loopbound
      local.get 4
      local.get 18
      f32.store offset=2016
      local.get 4
      local.get 20
      f32.store offset=1984
      local.get 4
      local.get 21
      f32.store offset=1952
      local.get 4
      local.get 22
      f32.store offset=1920
      local.get 4
      local.get 23
      f32.store offset=1888
      local.get 4
      local.get 24
      f32.store offset=1856
      local.get 4
      local.get 25
      f32.store offset=1824
      local.get 4
      local.get 26
      f32.store offset=1792
      local.get 4
      local.get 27
      f32.store offset=1760
      local.get 4
      local.get 28
      f32.store offset=1728
      local.get 4
      local.get 29
      f32.store offset=1696
      local.get 4
      local.get 30
      f32.store offset=1664
      local.get 4
      local.get 31
      f32.store offset=1632
      local.get 4
      local.get 32
      f32.store offset=1600
      local.get 4
      local.get 33
      f32.store offset=1568
      local.get 4
      local.get 34
      f32.store offset=1536
      local.get 4
      local.get 35
      f32.store offset=1504
      local.get 4
      local.get 36
      f32.store offset=1472
      local.get 4
      local.get 37
      f32.store offset=1440
      local.get 4
      local.get 38
      f32.store offset=1408
      local.get 4
      local.get 39
      f32.store offset=1376
      local.get 4
      local.get 40
      f32.store offset=1344
      local.get 4
      local.get 41
      f32.store offset=1312
      local.get 4
      local.get 42
      f32.store offset=1280
      local.get 4
      local.get 43
      f32.store offset=1248
      local.get 4
      local.get 44
      f32.store offset=1216
      local.get 4
      local.get 45
      f32.store offset=1184
      local.get 4
      local.get 46
      f32.store offset=1152
      local.get 4
      local.get 47
      f32.store offset=1120
      local.get 4
      local.get 48
      f32.store offset=1088
      local.get 4
      local.get 49
      f32.store offset=1056
      local.get 4
      local.get 50
      f32.store offset=1024
      i32.const 256
      i32.const 256
      call $__pragma_loopbound
      i32.const 0
      local.set 15
      local.get 8
      local.set 14
      loop  ;; label = @2
        i32.const 1
        i32.const 32
        call $__pragma_loopbound
        local.get 15
        i32.const 31
        local.get 15
        i32.const 31
        i32.lt_u
        select
        local.set 16
        block  ;; label = @3
          block  ;; label = @4
            local.get 15
            br_if 0 (;@4;)
            f32.const 0x0p+0 (;=0;)
            local.set 18
            local.get 15
            local.set 5
            i32.const 0
            local.set 17
            br 1 (;@3;)
          end
          local.get 16
          i32.const 1
          i32.add
          i32.const 62
          i32.and
          local.set 19
          i32.const 0
          local.set 17
          f32.const 0x0p+0 (;=0;)
          local.set 18
          local.get 10
          local.set 6
          local.get 14
          local.set 5
          loop  ;; label = @4
            local.get 6
            i32.const 4
            i32.add
            f32.load
            local.get 5
            f32.load
            f32.mul
            local.get 6
            f32.load
            local.get 5
            i32.const 4
            i32.add
            f32.load
            f32.mul
            local.get 18
            f32.add
            f32.add
            local.set 18
            local.get 6
            i32.const 8
            i32.add
            local.set 6
            local.get 5
            i32.const -8
            i32.add
            local.set 5
            local.get 19
            local.get 17
            i32.const 2
            i32.add
            local.tee 17
            i32.ne
            br_if 0 (;@4;)
          end
          local.get 15
          local.get 17
          i32.sub
          local.set 5
        end
        local.get 4
        local.get 15
        i32.const 2
        i32.shl
        i32.add
        local.set 6
        block  ;; label = @3
          local.get 16
          i32.const 1
          i32.and
          br_if 0 (;@3;)
          local.get 3
          local.get 12
          i32.add
          local.get 17
          i32.const 2
          i32.shl
          i32.add
          f32.load
          local.get 4
          i32.const 1024
          i32.add
          local.get 5
          i32.const 2
          i32.shl
          i32.add
          f32.load
          f32.mul
          local.get 18
          f32.add
          local.set 18
        end
        local.get 6
        local.get 18
        f32.store
        local.get 14
        i32.const 4
        i32.add
        local.set 14
        local.get 15
        i32.const 1
        i32.add
        local.tee 15
        i32.const 256
        i32.ne
        br_if 0 (;@2;)
      end
      i32.const 256
      i32.const 256
      call $__pragma_loopbound
      i32.const -1024
      local.set 6
      loop  ;; label = @2
        local.get 1
        local.get 6
        i32.add
        local.tee 5
        i32.const 1024
        i32.add
        local.tee 19
        local.get 4
        local.get 6
        i32.add
        local.tee 17
        i32.const 1024
        i32.add
        f32.load
        local.get 19
        f32.load
        f32.add
        f32.store
        local.get 5
        i32.const 1028
        i32.add
        local.tee 19
        local.get 17
        i32.const 1028
        i32.add
        f32.load
        local.get 19
        f32.load
        f32.add
        f32.store
        local.get 5
        i32.const 1032
        i32.add
        local.tee 19
        local.get 17
        i32.const 1032
        i32.add
        f32.load
        local.get 19
        f32.load
        f32.add
        f32.store
        local.get 5
        i32.const 1036
        i32.add
        local.tee 5
        local.get 17
        i32.const 1036
        i32.add
        f32.load
        local.get 5
        f32.load
        f32.add
        f32.store
        local.get 6
        i32.const 16
        i32.add
        local.tee 6
        br_if 0 (;@2;)
      end
      local.get 10
      i32.const 128
      i32.add
      local.set 10
      local.get 11
      i32.const 128
      i32.add
      local.set 11
      local.get 9
      i32.const 1
      i32.add
      local.tee 9
      i32.const 8
      i32.ne
      br_if 0 (;@1;)
    end
    local.get 4
    i32.const 3072
    i32.add
    global.set $__stack_pointer)
  (func $__original_main (type 3) (result i32)
    i32.const 0
    i32.const 2
    i32.store offset=1024
    call $filterbank_main
    i32.const 0
    i32.load offset=1028)
  (table (;0;) 1 1 funcref)
  (memory (;0;) 1)
  (global $__stack_pointer (mut i32) (i32.const 5136))
  (global (;1;) i32 (i32.const 1032))
  (global (;2;) i32 (i32.const 5136))
  (export "memory" (memory 0))
  (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
  (export "entrypoint" (func $filterbank_main))
  (export "main" (func $__original_main))
  (export "__data_end" (global 1))
  (export "__heap_base" (global 2)))
