(module $bsort.wasm
  (type (;0;) (func (param i32 i32)))
  (type (;1;) (func))
  (type (;2;) (func (result i32)))
  (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
  (func $__wasm_apply_data_relocs (type 1))
  (func $bsort_main (type 1)
    (local i32 i32 i32 i32 i32 i32 i32 i32)
    i32.const 99
    i32.const 99
    call $__pragma_loopbound
    i32.const 0
    local.set 0
    loop  ;; label = @1
      i32.const 3
      i32.const 99
      call $__pragma_loopbound
      i32.const 100
      local.get 0
      i32.sub
      local.set 1
      i32.const 0
      i32.load offset=1024
      local.set 2
      i32.const 0
      local.set 3
      i32.const 1
      local.set 4
      block  ;; label = @2
        block  ;; label = @3
          loop  ;; label = @4
            block  ;; label = @5
              block  ;; label = @6
                local.get 2
                local.get 3
                i32.const 1
                i32.add
                local.tee 5
                i32.const 2
                i32.shl
                i32.const 1024
                i32.add
                i32.load
                local.tee 6
                i32.gt_s
                br_if 0 (;@6;)
                local.get 3
                local.set 7
                local.get 5
                local.set 3
                br 1 (;@5;)
              end
              local.get 3
              i32.const 2
              i32.shl
              i32.const 1024
              i32.add
              local.set 7
              loop  ;; label = @6
                local.get 7
                local.get 6
                i32.store
                local.get 7
                i32.const 4
                i32.add
                local.tee 6
                local.get 2
                i32.store
                local.get 3
                i32.const 97
                i32.gt_u
                br_if 3 (;@3;)
                local.get 3
                local.get 1
                i32.ge_u
                br_if 3 (;@3;)
                local.get 3
                i32.const 1
                i32.add
                local.set 3
                local.get 7
                i32.const 8
                i32.add
                local.set 5
                local.get 6
                local.set 7
                local.get 2
                local.get 5
                i32.load
                local.tee 6
                i32.gt_s
                br_if 0 (;@6;)
              end
              i32.const 0
              local.set 4
              local.get 3
              local.set 7
              local.get 3
              i32.const 1
              i32.add
              local.set 3
            end
            local.get 6
            local.set 2
            block  ;; label = @5
              local.get 7
              i32.const 97
              i32.gt_u
              br_if 0 (;@5;)
              local.get 7
              local.get 1
              i32.lt_u
              br_if 1 (;@4;)
            end
          end
          local.get 4
          br_if 1 (;@2;)
          local.get 0
          i32.const 1
          i32.add
          local.tee 0
          i32.const 99
          i32.ne
          br_if 2 (;@1;)
          br 1 (;@2;)
        end
        local.get 0
        i32.const 1
        i32.add
        local.tee 0
        i32.const 99
        i32.ne
        br_if 1 (;@1;)
      end
    end)
  (func $__original_main (type 2) (result i32)
    (local i32 i32)
    i32.const 100
    i32.const 100
    call $__pragma_loopbound
    i32.const 1024
    local.set 0
    i32.const -5
    local.set 1
    loop  ;; label = @1
      local.get 0
      i32.const 16
      i32.add
      local.get 1
      i32.store
      local.get 0
      i32.const 12
      i32.add
      local.get 1
      i32.const 1
      i32.add
      i32.store
      local.get 0
      i32.const 8
      i32.add
      local.get 1
      i32.const 2
      i32.add
      i32.store
      local.get 0
      i32.const 4
      i32.add
      local.get 1
      i32.const 3
      i32.add
      i32.store
      local.get 0
      local.get 1
      i32.const 4
      i32.add
      i32.store
      local.get 0
      i32.const 20
      i32.add
      local.set 0
      local.get 1
      i32.const -5
      i32.add
      local.tee 1
      i32.const -105
      i32.ne
      br_if 0 (;@1;)
    end
    call $bsort_main
    i32.const 99
    i32.const 99
    call $__pragma_loopbound
    i32.const 0
    local.set 0
    i32.const 1
    local.set 1
    loop  ;; label = @1
      block  ;; label = @2
        block  ;; label = @3
          local.get 1
          br_if 0 (;@3;)
          local.get 0
          i32.const 1
          i32.add
          local.set 0
          i32.const 0
          local.set 1
          br 1 (;@2;)
        end
        local.get 0
        i32.const 2
        i32.shl
        i32.const 1024
        i32.add
        i32.load
        local.get 0
        i32.const 1
        i32.add
        local.tee 0
        i32.const 2
        i32.shl
        i32.const 1024
        i32.add
        i32.load
        i32.lt_s
        local.set 1
      end
      local.get 0
      i32.const 99
      i32.ne
      br_if 0 (;@1;)
    end
    local.get 1
    i32.const 1
    i32.xor)
  (table (;0;) 1 1 funcref)
  (memory (;0;) 1)
  (global $__stack_pointer (mut i32) (i32.const 5520))
  (global (;1;) i32 (i32.const 1424))
  (global (;2;) i32 (i32.const 5520))
  (export "memory" (memory 0))
  (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
  (export "entrypoint" (func $bsort_main))
  (export "main" (func $__original_main))
  (export "__data_end" (global 1))
  (export "__heap_base" (global 2)))
