(module $fac.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 $fac_main (type 1)
    (local i32 i32 i32 i32 i32 i32 i32)
    i32.const 6
    i32.const 6
    call $__pragma_loopbound
    block  ;; label = @1
      i32.const 0
      i32.load offset=1028
      i32.const 0
      i32.lt_s
      br_if 0 (;@1;)
      i32.const 0
      i32.load offset=1024
      local.set 0
      i32.const 0
      local.set 1
      i32.const 0
      local.set 2
      loop  ;; label = @2
        i32.const 1
        local.set 3
        block  ;; label = @3
          local.get 2
          local.tee 4
          i32.eqz
          br_if 0 (;@3;)
          i32.const 1
          local.set 3
          local.get 4
          local.set 2
          block  ;; label = @4
            local.get 4
            i32.const 8
            i32.lt_u
            br_if 0 (;@4;)
            i32.const 0
            local.get 4
            i32.const -8
            i32.and
            i32.sub
            local.set 5
            i32.const 1
            local.set 3
            i32.const 0
            local.set 6
            loop  ;; label = @5
              local.get 3
              local.get 4
              local.get 6
              i32.add
              local.tee 2
              i32.mul
              local.get 2
              i32.const -1
              i32.add
              i32.mul
              local.get 2
              i32.const -2
              i32.add
              i32.mul
              local.get 2
              i32.const -3
              i32.add
              i32.mul
              local.get 2
              i32.const -4
              i32.add
              i32.mul
              local.get 2
              i32.const -5
              i32.add
              i32.mul
              local.get 2
              i32.const -6
              i32.add
              i32.mul
              local.get 2
              i32.const -7
              i32.add
              i32.mul
              local.set 3
              local.get 5
              local.get 6
              i32.const -8
              i32.add
              local.tee 6
              i32.ne
              br_if 0 (;@5;)
            end
            local.get 4
            local.get 6
            i32.add
            local.set 2
          end
          local.get 4
          i32.const 7
          i32.and
          i32.eqz
          br_if 0 (;@3;)
          local.get 1
          i32.const 7
          i32.and
          local.set 6
          loop  ;; label = @4
            local.get 3
            local.get 2
            i32.mul
            local.set 3
            local.get 2
            i32.const -1
            i32.add
            local.set 2
            local.get 6
            i32.const -1
            i32.add
            local.tee 6
            br_if 0 (;@4;)
          end
        end
        local.get 1
        i32.const 1
        i32.add
        local.set 1
        local.get 4
        i32.const 1
        i32.add
        local.set 2
        local.get 0
        local.get 3
        i32.add
        local.set 0
        local.get 4
        i32.const 0
        i32.load offset=1028
        i32.lt_s
        br_if 0 (;@2;)
      end
      i32.const 0
      local.get 0
      i32.store offset=1024
    end)
  (func $__original_main (type 2) (result i32)
    i32.const 0
    i32.const 5
    i32.store offset=1028
    i32.const 0
    i32.const 0
    i32.store offset=1024
    call $fac_main
    i32.const 0
    i32.load offset=1024
    i32.const -154
    i32.add)
  (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 $fac_main))
  (export "main" (func $__original_main))
  (export "__data_end" (global 1))
  (export "__heap_base" (global 2)))
