add address check before calling memmove, since the penalty would be big if there were not such comparison in memmove