void * memcpy(void * dst, const void * src, size_t length)
{
size_t x = length / 4;
size_t y = length % 4;
size_t i;
unsigned long * mSrc, * mDst;
mSrc = (unsigned long *) src;
mDst = (unsigned long *) dst;
for (i = 0; i < x; i++)
((unsigned long *)dst)[i] = ((unsigned long *)src)[i];
for (i = 0; i < y; i++)
((char *) dst)[length-y+i] = ((char *) dst)[lenght-y+i];
return dst;
}