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