ref: 82985457cab187b4e4b2f6706cdea31a2f3fa879
dir: /src/libc/string/memmove.c/
#include <string.h> #undef memmove void * memmove(void *s1, const void *s2, size_t n) { char *d = s1; const char *s = s2; if (d < s) { while (n-- > 0) *d++ = *s++; } else { s += n-1, d += n-1; while (n-- > 0) *d-- = *s--; } return s1; }