ref: 40dcd63f5b1583af346e7d241211b2bf7026638a
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; }