#include void * memcpy(void * dst, void const * src, size_t len) { unsigned long int a,b,c,d; unsigned long int a1,b1,c1,d1; unsigned long int a2,b2,c2,d2; unsigned long int a3,b3,c3,d3; long * plDst = (long *) dst; long const * plSrc = (long const *) src; //if (!((unsigned long)src & 0xFFFFFFFC) && !((unsigned long)dst & 0xFFFFFFFC)) //{ while (len >= 64) { a = plSrc[0]; b = plSrc[1]; c = plSrc[2]; d = plSrc[3]; a1 = plSrc[4]; b1 = plSrc[5]; c1 = plSrc[6]; d1 = plSrc[7]; a2 = plSrc[8]; b2 = plSrc[9]; c2 = plSrc[10]; d2 = plSrc[11]; a3 = plSrc[12]; b3 = plSrc[13]; c3 = plSrc[14]; d3 = plSrc[15]; plSrc += 16; plDst[0] = a; plDst[1] = b; plDst[2] = c; plDst[3] = d; plDst[4] = a1; plDst[5] = b1; plDst[6] = c1; plDst[7] = d1; plDst[8] = a2; plDst[9] = b2; plDst[10] = c2; plDst[11] = d2; plDst[12] = a3; plDst[13] = b3; plDst[14] = c3; plDst[15] = d3; plDst += 16; len -= 64; } while(len >= 16) { a = plSrc[0]; b = plSrc[1]; c = plSrc[2]; d = plSrc[3]; plSrc += 4; plDst[0] = a; plDst[1] = b; plDst[2] = c; plDst[3] = d; plDst += 4; len -= 16; } //} char * pcDst = (char *) plDst; char const * pcSrc = (char const *) plSrc; while (len--) { *pcDst++ = *pcSrc++; } return (dst); }