(module $isqrt.wasm
  (type (;0;) (func (param i32 i32)))
  (type (;1;) (func))
  (type (;2;) (func (result i32)))
  (type (;3;) (func (param i32 i32 i32)))
  (import "__pragma" "loopbound" (func $__pragma_loopbound (type 0)))
  (func $__wasm_apply_data_relocs (type 1))
  (func $isqrt_main (type 1)
    (local i32 i32 i32 i32 i32 i32)
    global.get $__stack_pointer
    i32.const 16
    i32.sub
    local.tee 0
    global.set $__stack_pointer
    i32.const 1000
    i32.const 1000
    call $__pragma_loopbound
    i32.const 0
    i32.const 1
    i32.store offset=1032
    i32.const 1
    local.set 1
    loop  ;; label = @1
      i32.const 32
      local.set 2
      i32.const 32
      i32.const 32
      call $__pragma_loopbound
      i32.const 0
      local.set 3
      i32.const 0
      local.set 4
      loop  ;; label = @2
        local.get 4
        i32.const 2
        i32.shl
        local.tee 5
        i32.const -1
        i32.xor
        i32.const 0
        local.get 3
        i32.const 2
        i32.shl
        local.get 1
        i32.const 30
        i32.shr_u
        i32.or
        local.tee 3
        local.get 5
        i32.gt_u
        local.tee 5
        select
        local.get 3
        i32.add
        local.set 3
        local.get 4
        i32.const 1
        i32.shl
        local.get 5
        i32.or
        local.set 4
        local.get 1
        i32.const 2
        i32.shl
        local.set 1
        local.get 2
        i32.const -1
        i32.add
        local.tee 2
        br_if 0 (;@2;)
      end
      local.get 0
      local.get 4
      i32.store offset=8
      i32.const 1036
      local.get 0
      i32.const 8
      i32.add
      i32.const 4
      call $basicmath_memcpy
      i32.const 0
      i32.const 0
      i32.load offset=1028
      i32.const 0
      i32.load16_u offset=1038
      i32.add
      i32.store offset=1028
      i32.const 0
      i32.const 0
      i32.load offset=1032
      local.tee 4
      i32.const 1
      i32.add
      local.tee 1
      i32.store offset=1032
      local.get 4
      i32.const 1000
      i32.lt_s
      br_if 0 (;@1;)
    end
    i32.const 0
    i32.load offset=1024
    local.set 1
    i32.const 32
    local.set 2
    i32.const 32
    i32.const 32
    call $__pragma_loopbound
    i32.const 0
    local.set 3
    i32.const 0
    local.set 4
    loop  ;; label = @1
      local.get 4
      i32.const 2
      i32.shl
      local.tee 5
      i32.const -1
      i32.xor
      i32.const 0
      local.get 3
      i32.const 2
      i32.shl
      local.get 1
      i32.const 30
      i32.shr_u
      i32.or
      local.tee 3
      local.get 5
      i32.gt_u
      local.tee 5
      select
      local.get 3
      i32.add
      local.set 3
      local.get 4
      i32.const 1
      i32.shl
      local.get 5
      i32.or
      local.set 4
      local.get 1
      i32.const 2
      i32.shl
      local.set 1
      local.get 2
      i32.const -1
      i32.add
      local.tee 2
      br_if 0 (;@1;)
    end
    local.get 0
    local.get 4
    i32.store offset=12
    i32.const 1036
    local.get 0
    i32.const 12
    i32.add
    i32.const 4
    call $basicmath_memcpy
    i32.const 0
    i32.const 0
    i32.load offset=1028
    i32.const 0
    i32.load16_u offset=1038
    i32.add
    i32.store offset=1028
    local.get 0
    i32.const 16
    i32.add
    global.set $__stack_pointer)
  (func $__original_main (type 2) (result i32)
    i32.const 0
    i32.const 1072497001
    i32.store offset=1024
    i32.const 0
    i32.const 0
    i32.store offset=1028
    call $isqrt_main
    i32.const -1
    i32.const 0
    i32.const 0
    i32.load offset=1028
    i32.const 53364
    i32.ne
    select)
  (func $basicmath_memcpy (type 3) (param i32 i32 i32)
    (local i32)
    i32.const 4
    i32.const 4
    call $__pragma_loopbound
    block  ;; label = @1
      local.get 2
      i32.const 1
      i32.lt_s
      br_if 0 (;@1;)
      local.get 2
      i32.const 7
      i32.and
      local.set 3
      block  ;; label = @2
        local.get 2
        i32.const 8
        i32.lt_u
        br_if 0 (;@2;)
        local.get 2
        i32.const 2147483640
        i32.and
        local.set 2
        loop  ;; label = @3
          local.get 0
          local.get 1
          i32.load8_u
          i32.store8
          local.get 0
          local.get 1
          i32.load8_u offset=1
          i32.store8 offset=1
          local.get 0
          local.get 1
          i32.load8_u offset=2
          i32.store8 offset=2
          local.get 0
          local.get 1
          i32.load8_u offset=3
          i32.store8 offset=3
          local.get 0
          local.get 1
          i32.load8_u offset=4
          i32.store8 offset=4
          local.get 0
          local.get 1
          i32.load8_u offset=5
          i32.store8 offset=5
          local.get 0
          local.get 1
          i32.load8_u offset=6
          i32.store8 offset=6
          local.get 0
          local.get 1
          i32.load8_u offset=7
          i32.store8 offset=7
          local.get 1
          i32.const 8
          i32.add
          local.set 1
          local.get 0
          i32.const 8
          i32.add
          local.set 0
          local.get 2
          i32.const -8
          i32.add
          local.tee 2
          br_if 0 (;@3;)
        end
      end
      local.get 3
      i32.eqz
      br_if 0 (;@1;)
      loop  ;; label = @2
        local.get 0
        local.get 1
        i32.load8_u
        i32.store8
        local.get 1
        i32.const 1
        i32.add
        local.set 1
        local.get 0
        i32.const 1
        i32.add
        local.set 0
        local.get 3
        i32.const -1
        i32.add
        local.tee 3
        br_if 0 (;@2;)
      end
    end)
  (table (;0;) 1 1 funcref)
  (memory (;0;) 1)
  (global $__stack_pointer (mut i32) (i32.const 5136))
  (global (;1;) i32 (i32.const 1040))
  (global (;2;) i32 (i32.const 5136))
  (export "memory" (memory 0))
  (export "__wasm_apply_data_relocs" (func $__wasm_apply_data_relocs))
  (export "entrypoint" (func $isqrt_main))
  (export "main" (func $__original_main))
  (export "__data_end" (global 1))
  (export "__heap_base" (global 2)))
