implementação do memmove em C

Alguém pode me ajudar a entender como o memmove é implementado em C. Eu tenho apenas uma condição especial, certo?

if((src<dst)&&((src+sz) > dst))

copy from the back

Também depende da maneira como a pilha cresce?