// (top-level-begin 0 21100005)
        mov    x10, x8
        mov    x4, 62949
        movk   x4, 321, lsl 16
        mov    x4, x4, lsl 2
        add    x3, x10, x4
// (call __main)
        bl     __main
// (exit)
        b      _cleanup
__put4chars:
// (function-proc-begin 1 2 1)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 4
        add    x3, x10, 12
        add    x0, x10, 4
        str    x1, [x0]
// (expr #f 0 #f (putchar (shr x 24)))
// (imm)
// (push 24)
        mov    w5, 24
        str    w5, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (shr)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        asr    w4, w7, w5
        str    w4, [x3, -4]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (putchar (bitwise-and (shr x 16) 255)))
// (imm)
// (push 255)
        mov    w5, 255
        str    w5, [x3], 4
// (imm)
// (push 16)
        mov    w5, 16
        str    w5, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (shr)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        asr    w4, w7, w5
        str    w4, [x3, -4]
// (bitand)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        and    w4, w7, w5
        str    w4, [x3, -4]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (putchar (bitwise-and (shr x 8) 255)))
// (imm)
// (push 255)
        mov    w5, 255
        str    w5, [x3], 4
// (imm)
// (push 8)
        mov    w5, 8
        str    w5, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (shr)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        asr    w4, w7, w5
        str    w4, [x3, -4]
// (bitand)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        and    w4, w7, w5
        str    w4, [x3, -4]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (putchar (bitwise-and x 255)))
// (imm)
// (push 255)
        mov    w5, 255
        str    w5, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (bitand)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        and    w4, w7, w5
        str    w4, [x3, -4]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (return-from-procedure))
// (proc-end 1)
        mov    x3, x10
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
__write_int_digit:
// (function-proc-begin 1 2 1)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 4
        add    x3, x10, 12
        add    x0, x10, 4
        str    x1, [x0]
// (expr #t 2 > (> n 0))
// (imm)
// (push 0)
// (stack-ref-n 0)
        ldr    w2, [x10]
// (gt)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l0)
        ble    .l0
// (expr #f 0 #f (__write_int_digit (quotient n 10)))
// (push 10)
        mov    w5, 10
        str    w5, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (div)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_quotient
        str    w0, [x3, -4]
// (call __write_int_digit)
        bl     __write_int_digit
// (expr #f 0 #f (putchar (+ (remainder n 10) 48)))
// (imm)
// (push 48)
        mov    w5, 48
        str    w5, [x3], 4
// (push 10)
        mov    w5, 10
        str    w5, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (mod)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_remainder
        str    w0, [x3, -4]
// (add)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        add    w4, w7, w5
        str    w4, [x3, -4]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
.l0:
// (expr #f 0 #f (return-from-procedure))
// (proc-end 1)
        mov    x3, x10
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
__write_integer:
// (function-proc-begin 1 2 1)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 4
        add    x3, x10, 12
        add    x0, x10, 4
        str    x1, [x0]
// (expr #t 2 = (= n 0))
// (imm)
// (push 0)
// (stack-ref-n 0)
        ldr    w2, [x10]
// (eq)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l1)
        bne    .l1
// (expr #f 0 #f (putchar 48))
// (push 48)
        mov    w5, 48
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (return-from-procedure))
// (proc-end 1)
        mov    x3, x10
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
.l1:
// (expr #t 2 < (< n 0))
// (imm)
// (push 0)
// (stack-ref-n 0)
        ldr    w2, [x10]
// (lt)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l2)
        bge    .l2
// (expr #f 0 #f (putchar 45))
// (push 45)
        mov    w5, 45
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #t 4 #f (&& (= (bitwise-and n 65535) 0) (= (shr n 16) (- 32768))))
// (push 32768)
        mov   w0, 32768
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (imm)
// (push 16)
// (stack-ref-n 0)
        ldr    w4, [x10]
// (shr)
// * use immediate constant 16
        asr    w2, w4, 16
// (eq)
        cmp    w2, w0
        cset   w0, eq
// (imm)
// (push 0)
// (push 65535)
        mov    w4, 1
        mov    w4, w4, lsl 16
        sub    w4, w4, 1
// (stack-ref-n 0)
        ldr    w5, [x10]
// (bitand)
        and    w4, w5, w4
// (eq)
// * use immediate constant 0
        cmp    w4, 0
        cset   w2, eq
// (and)
        and    w0, w2, w0
// (bfl l4)
        cmp    w0, 0
        beq    .l4
// (expr #f 0 #f (__put4chars 842085431))
// (push 842085431)
        mov   w5, 13367
        movk  w5, 12849, lsl 16
        str    w5, [x3], 4
// (call __put4chars)
        bl     __put4chars
// (expr #f 0 #f (__put4chars 876098358))
// (push 876098358)
        mov   w5, 13110
        movk  w5, 13368, lsl 16
        str    w5, [x3], 4
// (call __put4chars)
        bl     __put4chars
// (expr #f 0 #f (putchar 52))
// (push 52)
        mov    w5, 52
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (putchar 56))
// (push 56)
        mov    w5, 56
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (return-from-procedure))
// (proc-end 1)
        mov    x3, x10
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
.l4:
// (expr #f 0 #f (__write_int_digit (- n)))
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (negate)
        sub    x4, x3, 4
        ldr    w5, [x4]
        mov    w0, 0
        sub    w5, w0, w5
        str    w5, [x4]
// (call __write_int_digit)
        bl     __write_int_digit
// (br l3)
        b      .l3
.ltorg
.l2:
// (expr #f 0 #f (__write_int_digit n))
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (call __write_int_digit)
        bl     __write_int_digit
.l3:
// (expr #f 0 #f (return-from-procedure))
// (proc-end 1)
        mov    x3, x10
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
__mult:
// (function-proc-begin 2 4 3)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 8
        add    x3, x10, 20
        add    x0, x10, 12
        str    x1, [x0]
// (expr #t 2 #f (return (* x y)))
// (stack-ref-n 1)
        ldr    w0, [x10, 4]
// (stack-ref-n 0)
        ldr    w2, [x10]
// (mul)
        mul    w0, w2, w0
// (stack-set-n 0)
        str    w0, [x10]
// (function-end 3)
        add    x3, x10, 4
        ldr    x10, [x10, 12]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
__div:
// (function-proc-begin 2 4 3)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 8
        add    x3, x10, 20
        add    x0, x10, 12
        str    x1, [x0]
// (expr #f 0 #f (return (quotient x y)))
// (stack-ref-n 1)
        ldr    w0, [x10, 4]
        str    w0, [x3], 4
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (div)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_quotient
        str    w0, [x3, -4]
// (stack-set-n 0)
        ldr    w0, [x3, -4]!
        str    w0, [x10]
// (function-end 3)
        add    x3, x10, 4
        ldr    x10, [x10, 12]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
my_putchar:
// (function-proc-begin 1 2 1)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 4
        add    x3, x10, 12
        add    x0, x10, 4
        str    x1, [x0]
// (expr #f 0 #f (putchar ch))
// (stack-ref-n 0)
        ldr    w0, [x10]
        str    w0, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (return-from-procedure))
// (proc-end 1)
        mov    x3, x10
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
my_fgetc:
// (function-proc-begin 0 2 1)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 0
        add    x3, x10, 12
        add    x0, x10, 4
        str    x1, [x0]
// (expr #f 0 #f (return (getchar)))
// (read-char)
        bl     _read_char
        str    w0, [x3], 4
// (stack-set-n 0)
        ldr    w0, [x3, -4]!
        str    w0, [x10]
// (function-end 1)
        add    x3, x10, 4
        ldr    x10, [x10, 4]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
read_char_:
// (function-proc-begin 0 1 0)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 0
        add    x3, x10, 8
        add    x0, x10, 0
        str    x1, [x0]
// (expr #t 2 = (= ch (- 1)))
// (push 1)
        mov    w0, 1
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (push 21100000)
        mov   w2, 62944
        movk  w2, 321, lsl 16
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (eq)
        cmp    w2, w0
// (bfl l5)
        bne    .l5
// (expr #f 0 #f (return-from-procedure))
// (proc-end 0)
        mov    x3, x10
        ldr    x10, [x10]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
.l5:
// (expr #f 0 #f (set! ch (getchar)))
// (read-char)
        bl     _read_char
        str    w0, [x3], 4
// (push 21100000)
        mov   w5, 62944
        movk  w5, 321, lsl 16
        str    w5, [x3], 4
// (stack-set)
        ldr    w4, [x3, -8]!
        ldr    w6, [x3, 4]
        lsl    w6, w6, 2
        str    w4, [x8, x6]
// (expr #f 0 #f (return-from-procedure))
// (proc-end 0)
        mov    x3, x10
        ldr    x10, [x10]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
.l6:
skip_blanks:
// (function-proc-begin 0 1 0)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 0
        add    x3, x10, 8
        add    x0, x10, 0
        str    x1, [x0]
.l7:
// (expr #t 4 #f (|| (|| (= ch 32) (= ch 10)) (= ch 13)))
// (imm)
// (push 13)
// (push 21100000)
        mov   w2, 62944
        movk  w2, 321, lsl 16
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (eq)
// * use immediate constant 13
        cmp    w2, 13
        cset   w0, eq
// (imm)
// (push 10)
// (push 21100000)
        mov   w4, 62944
        movk  w4, 321, lsl 16
// (stack-ref)
        lsl    w4, w4, 2
        ldr    w4, [x8, x4]
// (eq)
// * use immediate constant 10
        cmp    w4, 10
        cset   w2, eq
// (imm)
// (push 32)
// (push 21100000)
        mov   w5, 62944
        movk  w5, 321, lsl 16
// (stack-ref)
        lsl    w5, w5, 2
        ldr    w5, [x8, x5]
// (eq)
// * use immediate constant 32
        cmp    w5, 32
        cset   w4, eq
// (or)
        orr    w2, w4, w2
// (or)
        orr    w0, w2, w0
// (bfl l8)
        cmp    w0, 0
        beq    .l8
// (expr #f 0 #f (set! ch (getchar)))
// (read-char)
        bl     _read_char
        str    w0, [x3], 4
// (push 21100000)
        mov   w5, 62944
        movk  w5, 321, lsl 16
        str    w5, [x3], 4
// (stack-set)
        ldr    w4, [x3, -8]!
        ldr    w6, [x3, 4]
        lsl    w6, w6, 2
        str    w4, [x8, x6]
// (br l7)
        b      .l7
.ltorg
.l8:
// (expr #f 0 #f (return-from-procedure))
// (proc-end 0)
        mov    x3, x10
        ldr    x10, [x10]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
my_scan_int:
// (function-proc-begin 0 4 3)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 0
        add    x3, x10, 20
        add    x0, x10, 12
        str    x1, [x0]
// (expr #t 1 #f (set! sum 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 0)
        str    w0, [x10]
// (expr #t 1 #f (set! negative 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 1)
        str    w0, [x10, 4]
// (expr #f 0 #f (skip_blanks))
// (call skip_blanks)
        bl     skip_blanks
// (expr #t 2 = (= ch 45))
// (imm)
// (push 45)
// (push 21100000)
        mov   w2, 62944
        movk  w2, 321, lsl 16
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (eq)
// * use immediate constant 45
        cmp    w2, 45
// (bfl l9)
        bne    .l9
// (expr #t 1 #f (set! negative 1))
// (push 1)
        mov    w0, 1
// (stack-set-n 1)
        str    w0, [x10, 4]
// (expr #f 0 #f (read_char_))
// (call read_char_)
        bl     read_char_
.l9:
.l10:
// (expr #t 3 #f (&& (>= ch 48) (<= ch 57)))
// (imm)
// (push 57)
// (push 21100000)
        mov   w2, 62944
        movk  w2, 321, lsl 16
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (le)
// * use immediate constant 57
        cmp    w2, 57
        cset   w0, le
// (imm)
// (push 48)
// (push 21100000)
        mov   w4, 62944
        movk  w4, 321, lsl 16
// (stack-ref)
        lsl    w4, w4, 2
        ldr    w4, [x8, x4]
// (ge)
// * use immediate constant 48
        cmp    w4, 48
        cset   w2, ge
// (and)
        and    w0, w2, w0
// (bfl l11)
        cmp    w0, 0
        beq    .l11
// (expr #t 4 #f (set! sum (- (+ (* sum 10) ch) 48)))
// (imm)
// (push 48)
// (push 21100000)
        mov   w2, 62944
        movk  w2, 321, lsl 16
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (push 10)
        mov    w4, 10
// (stack-ref-n 0)
        ldr    w5, [x10]
// (mul)
        mul    w4, w5, w4
// (add)
        add    w2, w4, w2
// (sub)
// * use immediate constant 48
        sub    w0, w2, 48
// (stack-set-n 0)
        str    w0, [x10]
// (expr #f 0 #f (read_char_))
// (call read_char_)
        bl     read_char_
// (br l10)
        b      .l10
.ltorg
.l11:
// (expr #t 2 = (= negative 1))
// (imm)
// (push 1)
// (stack-ref-n 1)
        ldr    w2, [x10, 4]
// (eq)
// * use immediate constant 1
        cmp    w2, 1
// (bfl l12)
        bne    .l12
// (expr #t 1 #f (set! sum (- sum)))
// (stack-ref-n 0)
        ldr    w0, [x10]
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (stack-set-n 0)
        str    w0, [x10]
.l12:
// (expr #f 0 #f (return sum))
// (function-end 3)
        add    x3, x10, 4
        ldr    x10, [x10, 12]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
__main:
// (function-proc-begin 0 20 19)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 0
        add    x3, x10, 84
        add    x0, x10, 76
        str    x1, [x0]
// (expr #t 2 #f (set! ch 32))
// (push 32)
        mov    w0, 32
// (push 21100000)
        mov   w2, 62944
        movk  w2, 321, lsl 16
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx 1))
// (push 1)
        mov    w0, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 1 #f (set! return_stack_idx 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 6)
        str    w0, [x10, 24]
// (expr #t 1 #f (set! eof_reached 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 17)
        str    w0, [x10, 68]
// (expr #t 1 #f (set! frame_start 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 5)
        str    w0, [x10, 20]
// (expr #f 0 #f (set! temp (my_scan_int)))
// (call my_scan_int)
        bl     my_scan_int
// (stack-set-n 13)
        ldr    w0, [x3, -4]!
        str    w0, [x10, 52]
// (expr #t 1 #f (set! idx 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 0)
        str    w0, [x10]
.l13:
// (expr #t 2 < (< idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref-n 0)
        ldr    w2, [x10]
// (lt)
        cmp    w2, w0
// (bfl l14)
        bge    .l14
// (expr #f 0 #f (set! word (my_scan_int)))
// (call my_scan_int)
        bl     my_scan_int
// (stack-set-n 1)
        ldr    w0, [x3, -4]!
        str    w0, [x10, 4]
// (expr #t 3 #f (vector-set! code idx word))
// (stack-ref-n 1)
        ldr    w0, [x10, 4]
// (stack-ref-n 0)
        ldr    w2, [x10]
// (push 21000000)
        mov   w4, 28480
        movk  w4, 320, lsl 16
// (add)
        add    w2, w4, w2
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! idx (+ idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 0)
        ldr    w2, [x10]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 0)
        str    w0, [x10]
// (br l13)
        b      .l13
.ltorg
.l14:
// (expr #t 1 #f (set! pc 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
.l15:
// (expr #f 0 #f opcode)
// (stack-ref-n 3)
        ldr    w0, [x10, 12]
        str    w0, [x3], 4
// (br l17)
        b      .l17
.ltorg
.l19:
// (expr #t 2 #f (set! frame_start (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 5)
        str    w0, [x10, 20]
// (expr #t 2 #f (set! stack_idx (+ frame_start (vector-ref code (+ pc 2)))))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 5)
        ldr    w2, [x10, 20]
// (add)
        add    w0, w2, w0
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 3)))
// (imm)
// (push 3)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 3
        add    w0, w2, 3
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l20:
// (expr #t 2 #f (set! formals_offset (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 10)
        str    w0, [x10, 40]
// (expr #t 2 #f (set! all_vars_size (vector-ref code (+ pc 2))))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 11)
        str    w0, [x10, 44]
// (expr #t 2 #f (set! dynamic_link (vector-ref code (+ pc 3))))
// (imm)
// (push 3)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 3
        add    w0, w2, 3
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 12)
        str    w0, [x10, 48]
// (expr #t 1 #f (set! temp frame_start))
// (stack-ref-n 5)
        ldr    w0, [x10, 20]
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! frame_start (- stack_idx formals_offset)))
// (stack-ref-n 10)
        ldr    w0, [x10, 40]
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
        sub    w0, w2, w0
// (stack-set-n 5)
        str    w0, [x10, 20]
// (expr #t 2 #f (set! stack_idx (+ frame_start all_vars_size)))
// (stack-ref-n 11)
        ldr    w0, [x10, 44]
// (stack-ref-n 5)
        ldr    w2, [x10, 20]
// (add)
        add    w0, w2, w0
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 3 #f (vector-set! stack (+ frame_start dynamic_link) temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref-n 12)
        ldr    w2, [x10, 48]
// (stack-ref-n 5)
        ldr    w4, [x10, 20]
// (add)
        add    w2, w4, w2
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! pc (+ pc 4)))
// (imm)
// (push 4)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 4
        add    w0, w2, 4
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l21:
// (expr #t 2 #f (set! dynamic_link (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 12)
        str    w0, [x10, 48]
// (expr #t 1 #f (set! temp (vector-ref stack frame_start)))
// (stack-ref-n 5)
        ldr    w0, [x10, 20]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 1 #f (set! stack_idx frame_start))
// (stack-ref-n 5)
        ldr    w0, [x10, 20]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! frame_start (vector-ref stack (+ frame_start dynamic_link))))
// (stack-ref-n 12)
        ldr    w0, [x10, 48]
// (stack-ref-n 5)
        ldr    w2, [x10, 20]
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 5)
        str    w0, [x10, 20]
// (expr #t 2 #f (vector-set! stack stack_idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l22:
// (expr #t 2 #f (set! dynamic_link (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 12)
        str    w0, [x10, 48]
// (expr #t 1 #f (set! stack_idx frame_start))
// (stack-ref-n 5)
        ldr    w0, [x10, 20]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! frame_start (vector-ref stack (+ frame_start dynamic_link))))
// (stack-ref-n 12)
        ldr    w0, [x10, 48]
// (stack-ref-n 5)
        ldr    w2, [x10, 20]
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 5)
        str    w0, [x10, 20]
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l23:
// (expr #t 2 #f (vector-set! stack stack_idx (+ frame_start (vector-ref code (+ pc 1)))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 5)
        ldr    w2, [x10, 20]
// (add)
        add    w0, w2, w0
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l24:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (vector-set! stack temp (vector-ref stack (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l25:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 3 #f (vector-set! stack (vector-ref stack (- stack_idx 1)) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w4, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w2, w4, 1
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l26:
// (expr #t 2 #f (vector-set! stack stack_idx (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l27:
// (expr #t 2 #f (set! stack_idx (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l28:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (+ (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (add)
        add    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l29:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (- (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (sub)
        sub    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l30:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (* (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (mul)
        mul    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l31:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #f 0 #f (vector-set! stack temp (quotient (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
        str    w0, [x3], 4
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (div)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_quotient
        str    w0, [x3, -4]
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-set)
        ldr    w4, [x3, -8]!
        ldr    w6, [x3, 4]
        lsl    w6, w6, 2
        str    w4, [x8, x6]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l32:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #f 0 #f (vector-set! stack temp (remainder (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
        str    w0, [x3], 4
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (mod)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_remainder
        str    w0, [x3, -4]
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-set)
        ldr    w4, [x3, -8]!
        ldr    w6, [x3, 4]
        lsl    w6, w6, 2
        str    w4, [x8, x6]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l33:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #f 0 #f (vector-set! stack temp (abs (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (abs)
        sub    x4, x3, 4
        ldr    w5, [x4]
        cmp    w5, 0
        bge    .l104
        mov    w0, 0
        sub    w5, w0, w5
        str    w5, [x4]
.l104:
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-set)
        ldr    w4, [x3, -8]!
        ldr    w6, [x3, 4]
        lsl    w6, w6, 2
        str    w4, [x8, x6]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l34:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (vector-set! stack temp (- (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l35:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (shl (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (shl)
        lsl    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l36:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (shr (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (shr)
        asr    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l37:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (bitwise-or (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (bitor)
        orr    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l38:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (bitwise-and (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (bitand)
        and    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l39:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (vector-set! stack temp (bitwise-not (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (bitnot)
        mvn    w0, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l40:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 1 #f (set! cc (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 8)
        str    w0, [x10, 32]
// (expr #t 1 #f (set! stack_idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 != (!= cc 0))
// (imm)
// (push 0)
// (stack-ref-n 8)
        ldr    w2, [x10, 32]
// (ne)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l68)
        beq    .l68
// (expr #t 2 #f (set! pc (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 2)
        str    w0, [x10, 8]
// (br l69)
        b      .l69
.ltorg
.l68:
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
.l69:
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l41:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 1 #f (set! cc (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 8)
        str    w0, [x10, 32]
// (expr #t 1 #f (set! stack_idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 = (= cc 0))
// (imm)
// (push 0)
// (stack-ref-n 8)
        ldr    w2, [x10, 32]
// (eq)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l70)
        bne    .l70
// (expr #t 2 #f (set! pc (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 2)
        str    w0, [x10, 8]
// (br l71)
        b      .l71
.ltorg
.l70:
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
.l71:
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l42:
// (expr #t 2 #f (set! pc (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l43:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 = (= (vector-ref stack temp2) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (eq)
        cmp    w2, w0
// (bfl l72)
        bne    .l72
// (expr #t 2 #f (vector-set! stack temp 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l73)
        b      .l73
.ltorg
.l72:
// (expr #t 2 #f (vector-set! stack temp 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l73:
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l44:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 < (< (vector-ref stack temp2) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (lt)
        cmp    w2, w0
// (bfl l74)
        bge    .l74
// (expr #t 2 #f (vector-set! stack temp 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l75)
        b      .l75
.ltorg
.l74:
// (expr #t 2 #f (vector-set! stack temp 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l75:
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l45:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 > (> (vector-ref stack temp2) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (gt)
        cmp    w2, w0
// (bfl l76)
        ble    .l76
// (expr #t 2 #f (vector-set! stack temp 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l77)
        b      .l77
.ltorg
.l76:
// (expr #t 2 #f (vector-set! stack temp 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l77:
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l46:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 <= (<= (vector-ref stack temp2) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (le)
        cmp    w2, w0
// (bfl l79)
        bgt    .l79
// (expr #t 2 #f (vector-set! stack temp 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l80)
        b      .l80
.ltorg
.l79:
// (expr #t 2 #f (vector-set! stack temp 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l80:
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l47:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 >= (>= (vector-ref stack temp2) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (ge)
        cmp    w2, w0
// (bfl l81)
        blt    .l81
// (expr #t 2 #f (vector-set! stack temp 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l82)
        b      .l82
.ltorg
.l81:
// (expr #t 2 #f (vector-set! stack temp 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l82:
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l48:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 != (!= (vector-ref stack temp2) (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (ne)
        cmp    w2, w0
// (bfl l83)
        beq    .l83
// (expr #t 2 #f (vector-set! stack temp 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l84)
        b      .l84
.ltorg
.l83:
// (expr #t 2 #f (vector-set! stack temp 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l84:
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l49:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (vector-set! stack temp (bitwise-and (bitwise-not (vector-ref stack temp)) 1)))
// (imm)
// (push 1)
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (bitnot)
        mvn    w2, w2
// (bitand)
// * use immediate constant 1
        and    w0, w2, 1
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l50:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (bitwise-and (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (bitand)
        and    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l51:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (bitwise-or (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (bitor)
        orr    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l52:
// (expr #t 3 #f (vector-set! return_stack return_stack_idx (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-ref-n 6)
        ldr    w2, [x10, 24]
// (push 21050000)
        mov   w4, 12944
        movk  w4, 321, lsl 16
// (add)
        add    w2, w4, w2
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! pc (vector-ref code (+ pc 1))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! return_stack_idx (+ return_stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 6)
        ldr    w2, [x10, 24]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 6)
        str    w0, [x10, 24]
// (expr #t 2 = (= return_stack_idx 50000))
// (push 50000)
        mov   w0, 50000
// (stack-ref-n 6)
        ldr    w2, [x10, 24]
// (eq)
        cmp    w2, w0
// (bfl l86)
        bne    .l86
// (expr #f 0 #f (__put4chars 1937006947))
// (push 1937006947)
        mov   w5, 24931
        movk  w5, 29556, lsl 16
        str    w5, [x3], 4
// (call __put4chars)
        bl     __put4chars
// (expr #f 0 #f (__put4chars 1797287798))
// (push 1797287798)
        mov   w5, 28534
        movk  w5, 27424, lsl 16
        str    w5, [x3], 4
// (call __put4chars)
        bl     __put4chars
// (expr #f 0 #f (__put4chars 1701996140))
// (push 1701996140)
        mov   w5, 26220
        movk  w5, 25970, lsl 16
        str    w5, [x3], 4
// (call __put4chars)
        bl     __put4chars
// (expr #f 0 #f (putchar 111))
// (push 111)
        mov    w5, 111
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (putchar 119))
// (push 119)
        mov    w5, 119
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (putchar 10))
// (push 10)
        mov    w5, 10
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #f 0 #f (exit 0))
// (push 0)
        mov    w5, 0
        str    w5, [x3], 4
// (exit)
        b      _cleanup
.l86:
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l53:
// (expr #t 2 #f (set! pc (vector-ref return_stack (- return_stack_idx 1))))
// (imm)
// (push 1)
// (stack-ref-n 6)
        ldr    w2, [x10, 24]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (push 21050000)
        mov   w2, 12944
        movk  w2, 321, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! return_stack_idx (- return_stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 6)
        ldr    w2, [x10, 24]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 6)
        str    w0, [x10, 24]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l54:
// (expr #t 1 #f (set! val_ 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 7)
        str    w0, [x10, 28]
// (expr #t 2 = (= eof_reached 0))
// (imm)
// (push 0)
// (stack-ref-n 17)
        ldr    w2, [x10, 68]
// (eq)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l87)
        bne    .l87
// (expr #f 0 #f (set! val_ (getchar)))
// (read-char)
        bl     _read_char
        str    w0, [x3], 4
// (stack-set-n 7)
        ldr    w0, [x3, -4]!
        str    w0, [x10, 28]
// (expr #t 2 = (= val_ (- 1)))
// (push 1)
        mov    w0, 1
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (stack-ref-n 7)
        ldr    w2, [x10, 28]
// (eq)
        cmp    w2, w0
// (bfl l88)
        bne    .l88
// (expr #t 1 #f (set! eof_reached 1))
// (push 1)
        mov    w0, 1
// (stack-set-n 17)
        str    w0, [x10, 68]
// (br l89)
        b      .l89
.ltorg
.l88:
// (expr #t 2 #f (set! val_ (bitwise-and val_ 255)))
// (imm)
// (push 255)
// (stack-ref-n 7)
        ldr    w2, [x10, 28]
// (bitand)
// * use immediate constant 255
        and    w0, w2, 255
// (stack-set-n 7)
        str    w0, [x10, 28]
.l89:
.l87:
// (expr #t 2 #f (vector-set! stack stack_idx val_))
// (stack-ref-n 7)
        ldr    w0, [x10, 28]
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l55:
// (expr #t 2 = (= eof_reached 1))
// (imm)
// (push 1)
// (stack-ref-n 17)
        ldr    w2, [x10, 68]
// (eq)
// * use immediate constant 1
        cmp    w2, 1
// (bfl l90)
        bne    .l90
// (expr #t 2 #f (vector-set! stack stack_idx 1))
// (push 1)
        mov    w0, 1
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (br l91)
        b      .l91
.ltorg
.l90:
// (expr #t 2 #f (vector-set! stack stack_idx 0))
// (push 0)
        mov    w0, 0
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
.l91:
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l56:
// (expr #t 2 #f (set! temp (vector-ref stack (- stack_idx 1))))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 1 #f (set! done_displaying_int 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 16)
        str    w0, [x10, 64]
// (expr #t 2 < (< temp 0))
// (imm)
// (push 0)
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (lt)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l92)
        bge    .l92
// (expr #f 0 #f (putchar 45))
// (push 45)
        mov    w5, 45
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #t 4 #f (&& (= (bitwise-and temp 65535) 0) (= (shr temp 16) (- 32768))))
// (push 32768)
        mov   w0, 32768
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (imm)
// (push 16)
// (stack-ref-n 13)
        ldr    w4, [x10, 52]
// (shr)
// * use immediate constant 16
        asr    w2, w4, 16
// (eq)
        cmp    w2, w0
        cset   w0, eq
// (imm)
// (push 0)
// (push 65535)
        mov    w4, 1
        mov    w4, w4, lsl 16
        sub    w4, w4, 1
// (stack-ref-n 13)
        ldr    w5, [x10, 52]
// (bitand)
        and    w4, w5, w4
// (eq)
// * use immediate constant 0
        cmp    w4, 0
        cset   w2, eq
// (and)
        and    w0, w2, w0
// (bfl l93)
        cmp    w0, 0
        beq    .l93
// (expr #t 2 #f (vector-set! stack stack_idx 56))
// (push 56)
        mov    w0, 56
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 52))
// (push 52)
        mov    w0, 52
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 54))
// (push 54)
        mov    w0, 54
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 51))
// (push 51)
        mov    w0, 51
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 56))
// (push 56)
        mov    w0, 56
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 52))
// (push 52)
        mov    w0, 52
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 55))
// (push 55)
        mov    w0, 55
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 52))
// (push 52)
        mov    w0, 52
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 49))
// (push 49)
        mov    w0, 49
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (vector-set! stack stack_idx 50))
// (push 50)
        mov    w0, 50
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 1 #f (set! count 10))
// (push 10)
        mov    w0, 10
// (stack-set-n 15)
        str    w0, [x10, 60]
// (expr #t 1 #f (set! temp 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 13)
        str    w0, [x10, 52]
.l95:
// (expr #f 0 #f (putchar (vector-ref stack (- stack_idx 1))))
// (imm)
// (push 1)
        mov    w5, 1
        str    w5, [x3], 4
// (stack-ref-n 4)
        ldr    w0, [x10, 16]
        str    w0, [x3], 4
// (sub)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        sub    w4, w7, w5
        str    w4, [x3, -4]
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #t 2 #f (set! stack_idx (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! temp (+ temp 1)))
// (imm)
// (push 1)
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 < (< temp count))
// (stack-ref-n 15)
        ldr    w0, [x10, 60]
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (lt)
        cmp    w2, w0
// (bfl l96)
        bge    .l96
// (br l95)
        b      .l95
.ltorg
.l96:
// (expr #t 1 #f (set! done_displaying_int 1))
// (push 1)
        mov    w0, 1
// (stack-set-n 16)
        str    w0, [x10, 64]
.l93:
// (expr #t 1 #f (! done_displaying_int))
// (stack-ref-n 16)
        ldr    w0, [x10, 64]
// (not)
        cmp    w0, 0
        cset   w0, eq
// (bfl l97)
        cmp    w0, 0
        beq    .l97
// (expr #t 1 #f (set! temp (- temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (negate)
        mov    w1, 0
        sub    w0, w1, w0
// (stack-set-n 13)
        str    w0, [x10, 52]
.l97:
.l92:
// (expr #t 1 #f (! done_displaying_int))
// (stack-ref-n 16)
        ldr    w0, [x10, 64]
// (not)
        cmp    w0, 0
        cset   w0, eq
// (bfl l98)
        cmp    w0, 0
        beq    .l98
// (expr #t 1 #f (set! count 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 15)
        str    w0, [x10, 60]
.l99:
// (expr #f 0 #f (vector-set! stack stack_idx (+ (remainder temp 10) 48)))
// (imm)
// (push 48)
        mov    w5, 48
        str    w5, [x3], 4
// (push 10)
        mov    w5, 10
        str    w5, [x3], 4
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (mod)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_remainder
        str    w0, [x3, -4]
// (add)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        add    w4, w7, w5
        str    w4, [x3, -4]
// (stack-ref-n 4)
        ldr    w0, [x10, 16]
        str    w0, [x3], 4
// (stack-set)
        ldr    w4, [x3, -8]!
        ldr    w6, [x3, 4]
        lsl    w6, w6, 2
        str    w4, [x8, x6]
// (expr #f 0 #f (set! temp (quotient temp 10)))
// (push 10)
        mov    w5, 10
        str    w5, [x3], 4
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (div)
        ldr    w0, [x3, -4]!
        ldr    w1, [x3, -4]
        bl     signed_quotient
        str    w0, [x3, -4]
// (stack-set-n 13)
        ldr    w0, [x3, -4]!
        str    w0, [x10, 52]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! count (+ count 1)))
// (imm)
// (push 1)
// (stack-ref-n 15)
        ldr    w2, [x10, 60]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 15)
        str    w0, [x10, 60]
// (expr #t 2 != (!= temp 0))
// (imm)
// (push 0)
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (ne)
// * use immediate constant 0
        cmp    w2, 0
// (bfl l100)
        beq    .l100
// (br l99)
        b      .l99
.ltorg
.l100:
// (expr #t 1 #f (set! temp 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 13)
        str    w0, [x10, 52]
.l101:
// (expr #f 0 #f (putchar (vector-ref stack (- stack_idx 1))))
// (imm)
// (push 1)
        mov    w5, 1
        str    w5, [x3], 4
// (stack-ref-n 4)
        ldr    w0, [x10, 16]
        str    w0, [x3], 4
// (sub)
        ldr    w7, [x3, -4]!
        ldr    w5, [x3, -4]
        sub    w4, w7, w5
        str    w4, [x3, -4]
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #t 2 #f (set! stack_idx (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! temp (+ temp 1)))
// (imm)
// (push 1)
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 < (< temp count))
// (stack-ref-n 15)
        ldr    w0, [x10, 60]
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (lt)
        cmp    w2, w0
// (bfl l102)
        bge    .l102
// (br l101)
        b      .l101
.ltorg
.l102:
.l98:
// (expr #t 2 #f (set! stack_idx (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l57:
// (expr #f 0 #f (putchar 10))
// (push 10)
        mov    w5, 10
        str    w5, [x3], 4
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l58:
// (expr #f 0 #f (exit 0))
// (push 0)
        mov    w5, 0
        str    w5, [x3], 4
// (exit)
        b      _cleanup
// (br l15)
        b      .l15
.ltorg
.l59:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #f 0 #f (putchar (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
        str    w0, [x3], 4
// (stack-ref)
        sub    x0, x3, 4
        ldr    w5, [x0]
        lsl    w5, w5, 2
        ldr    w6, [x8, x5]
        str    w6, [x0]
// (write-char)
        ldr    w2, [x3, -4]!
        bl     _print_character
// (expr #t 1 #f (set! stack_idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l60:
// (expr #t 2 #f (set! temp (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 1 #f (set! n (vector-ref stack temp)))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 9)
        str    w0, [x10, 36]
// (expr #t 1 #f (set! stack_idx temp))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 3 #f (set! pc (vector-ref code (+ (+ pc n) 1))))
// (imm)
// (push 1)
// (stack-ref-n 9)
        ldr    w2, [x10, 36]
// (stack-ref-n 2)
        ldr    w4, [x10, 8]
// (add)
        add    w2, w4, w2
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l61:
// (expr #t 2 #f (vector-set! stack stack_idx (vector-ref stack (+ frame_start (vector-ref code (+ pc 1))))))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 5)
        ldr    w2, [x10, 20]
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (+ stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l62:
// (expr #t 3 #f (vector-set! stack (+ frame_start (vector-ref code (+ pc 1))) (vector-ref stack (- stack_idx 1))))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w4, [x10, 8]
// (add)
// * use immediate constant 1
        add    w2, w4, 1
// (push 21000000)
        mov   w4, 28480
        movk  w4, 320, lsl 16
// (add)
        add    w2, w4, w2
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (stack-ref-n 5)
        ldr    w4, [x10, 20]
// (add)
        add    w2, w4, w2
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 2 #f (set! stack_idx (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 2)))
// (imm)
// (push 2)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 2
        add    w0, w2, 2
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l63:
// (expr #f 0 #f (exit 0))
// (push 0)
        mov    w5, 0
        str    w5, [x3], 4
// (exit)
        b      _cleanup
// (br l15)
        b      .l15
.ltorg
.l64:
// (expr #t 2 #f (set! temp (- stack_idx 2)))
// (imm)
// (push 2)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 2
        sub    w0, w2, 2
// (stack-set-n 13)
        str    w0, [x10, 52]
// (expr #t 2 #f (set! temp2 (- stack_idx 1)))
// (imm)
// (push 1)
// (stack-ref-n 4)
        ldr    w2, [x10, 16]
// (sub)
// * use immediate constant 1
        sub    w0, w2, 1
// (stack-set-n 14)
        str    w0, [x10, 56]
// (expr #t 2 #f (vector-set! stack temp (bitwise-xor (vector-ref stack temp2) (vector-ref stack temp))))
// (stack-ref-n 13)
        ldr    w0, [x10, 52]
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-ref-n 14)
        ldr    w2, [x10, 56]
// (stack-ref)
        lsl    w2, w2, 2
        ldr    w2, [x8, x2]
// (bitxor)
        eor    w0, w2, w0
// (stack-ref-n 13)
        ldr    w2, [x10, 52]
// (stack-set)
        lsl    w2, w2, 2
        str    w0, [x8, x2]
// (expr #t 1 #f (set! stack_idx temp2))
// (stack-ref-n 14)
        ldr    w0, [x10, 56]
// (stack-set-n 4)
        str    w0, [x10, 16]
// (expr #t 2 #f (set! pc (+ pc 1)))
// (imm)
// (push 1)
// (stack-ref-n 2)
        ldr    w2, [x10, 8]
// (add)
// * use immediate constant 1
        add    w0, w2, 1
// (stack-set-n 2)
        str    w0, [x10, 8]
// (expr #t 2 #f (set! opcode (vector-ref code pc)))
// (stack-ref-n 2)
        ldr    w0, [x10, 8]
// (push 21000000)
        mov   w2, 28480
        movk  w2, 320, lsl 16
// (add)
        add    w0, w2, w0
// (stack-ref)
        lsl    w0, w0, 2
        ldr    w0, [x8, x0]
// (stack-set-n 3)
        str    w0, [x10, 12]
// (br l15)
        b      .l15
.ltorg
.l17:
// (brtable (0 l19) (1 l20) (2 l21) (3 l22) (4 l23) (5 l24) (6 l25) (7 l26) (8 l27) (9 l28) (10 l29) (11 l30) (12 l31) (13 l32) (14 l33) (15 l34) (16 l35) (17 l36) (18 l37) (19 l38) (20 l39) (21 l40) (22 l41) (23 l42) (24 l43) (25 l44) (26 l45) (27 l46) (28 l47) (29 l48) (30 l49) (31 l50) (32 l51) (33 l52) (34 l53) (35 l54) (36 l55) (37 l56) (38 l57) (39 l58) (40 l59) (41 l60) (42 l61) (43 l62) (44 l63) (45 l64))
        ldr    w0, [x3, -4]!
        adr    x1, .l105
        add    x1, x1, x0, lsl 2
        br     x1
.l105:
        b      .l19
        b      .l20
        b      .l21
        b      .l22
        b      .l23
        b      .l24
        b      .l25
        b      .l26
        b      .l27
        b      .l28
        b      .l29
        b      .l30
        b      .l31
        b      .l32
        b      .l33
        b      .l34
        b      .l35
        b      .l36
        b      .l37
        b      .l38
        b      .l39
        b      .l40
        b      .l41
        b      .l42
        b      .l43
        b      .l44
        b      .l45
        b      .l46
        b      .l47
        b      .l48
        b      .l49
        b      .l50
        b      .l51
        b      .l52
        b      .l53
        b      .l54
        b      .l55
        b      .l56
        b      .l57
        b      .l58
        b      .l59
        b      .l60
        b      .l61
        b      .l62
        b      .l63
        b      .l64
.l18:
// (br l15)
        b      .l15
.ltorg
// (expr #t 1 #f (return 0))
// (push 0)
        mov    w0, 0
// (stack-set-n 0)
        str    w0, [x10]
// (function-end 19)
        add    x3, x10, 4
        ldr    x10, [x10, 76]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
