ref: 7c7ce1f9c1bd9ddd7b381bb2dd0a84d6c66074f5
dir: /libc/memcpy.c/
void*
memcpy(void *a1, void *a2, unsigned int len)
{
char *s1, *s2;
s1 = a1;
s2 = a2;
if((s2 < s1) && (s2 + len > s1))
goto back;
while(len > 0) {
*s1++ = *s2++;
len--;
}
return a1;
back:
s1 += len;
s2 += len;
while(len > 0) {
*--s1 = *--s2;
len--;
}
return a1;
}