#include <string.h>
void *memmove(void *vdest, const void *vsrc, size_t count)
{
	const char *src = vsrc;
	char *dest = vdest;

	if (dest <= src) {
		while (count--) {
			*dest++ = *src++;
		}
	} else {
		src  += count - 1;
		dest += count - 1;
		while(count--) {
			*dest-- = *src--;
		}
	}
	return vdest;
}
