...
void memset(int value, int count) {
-- register lr holds return value
mov r0, value
mov r3, count
loop:
movle pc,lr -- return if r3 is below or equal zero
str r0,[r12],#0x4 -- store r0 at address r12, increment r12 by 4
subs r3,r3,#0x4 -- signed subtract 4 from r3 and store into r3
b loop -- jump to loop
}