memset32:
// (function-proc-begin 4 6 5)
        str    x30, [sp, -16]!
        mov    x1, x10
        sub    x10, x3, 16
        add    x3, x10, 28
        add    x0, x10, 20
        str    x1, [x0]
// (expr #t 1 #f (set! i 0))
        mov    w5, 0
// w4 = mem
        ldr    w4, [x10]
// w6 = mem_offset
        ldr    w6, [x10, 4]
// w7 = val
        ldr    w7, [x10, 8]
// w9 = n_words
        ldr    w9, [x10, 12]
.memset_l10:
// (expr #t 2 < (< i n_words))
// (lt)
        cmp    w5, w9
// (bfl l11)
        bge    .memset_l11
// (expr #t 3 #f (vector-set! mem (+ i mem_offset) val))
// (add)
        add    w2, w5, w6
// (add)
        add    w2, w4, w2
// (stack-set)
        lsl    w2, w2, 2
        str    w7, [x8, x2]
// (expr #t 2 #f (set! i (+ i 1)))
        add    w5, w5, 1
// (br l10)
        b      .memset_l10
.ltorg
.memset_l11:
// (expr #f 0 #f (return-from-procedure))
// (proc-end 5)
        mov    x3, x10
        ldr    x10, [x10, 20]
// (return)
        ldr    x30, [sp], 16
        ret
.ltorg
