(module
  (import "wasi_snapshot_preview1" "fd_write" (func $fd_write (param i32 i32 i32 i32) (result i32)))
  (import "wasi_snapshot_preview1" "proc_exit" (func $proc_exit (param i32)))
  (data (i32.const 48) "\04\00\00\00true")
  (data (i32.const 56) "\05\00\00\00false")
  (data (i32.const 64) "\01\00\00\00-")
  (memory (export "memory") 2)
  (global $hp (mut i32) (i32.const 72))
  (func $method1 (param $v0 i32) (param $v1 f32) (result f32)
    (local $v2 i32)
    (local $v3 f32)
    (local $v4 i32)
    (local $t3 i32)
    (local $t4 f32)
    (loop $self
        (local.set $v2 (i32.sub (local.get $v0) (i32.const 1)))
        (local.set $v3 (f32.add (local.get $v1) (f32.const 1.5)))
        (local.set $v4 (i32.eq (local.get $v2) (i32.const 0)))
        (if (local.get $v4)
            (then
                (return (local.get $v3))
            )
            (else
                (local.set $t3 (local.get $v2))
                (local.set $t4 (local.get $v3))
                (local.set $v0 (local.get $t3))
                (local.set $v1 (local.get $t4))
                (br $self)
            ))
    )
    (unreachable)
  )
  (func $method0 (param $v0 i32) (param $v1 f32) (result f32)
    (local $v2 i32)
    (local.set $v2 (i32.eq (local.get $v0) (i32.const 0)))
    (if (local.get $v2)
        (then
            (return (local.get $v1))
        )
        (else
            (return (call $method1 (local.get $v0) (local.get $v1)))
        ))
    (unreachable)
  )
  (func $spiralMain (result i32)
    (local $v0 i32)
    (local $v1 f32)
    (local $v2 f32)
    (local $v3 i32)
    (local.set $v0 (i32.const 4))
    (local.set $v1 (f32.const 0))
    (local.set $v2 (call $method0 (local.get $v0) (local.get $v1)))
    (local.set $v3 (f32.eq (local.get $v2) (f32.const 6)))
    (if (local.get $v3)
        (then
            (return (i32.const 0))
        )
        (else
            (return (i32.const 1))
        ))
    (unreachable)
  )
  (func $_start (export "_start")
    (call $proc_exit (call $spiralMain)))
)
