Veamos
Te explico a grandes rasgos lo que hace la función. Luego buscamos en la ayuda las funciones de Delphi que no conozcamos (como dice el amigo Juan Antonio) y, si te queda alguna duda, lo volvemos a hablar
Básicamente es una función recursiva, es decir, es una función que se llama a si misma si fuera necesario.
Qué es lo que hace? Bien, es sencillo. Lo que hace es leer todos los archivos que hay en una carpeta (directorio) mediante un bucle (while). Si el archivo leido es otra carpeta (exceptualdo el '.' (que es el propio directorio) y '..' (que es el directorio padre)), vuelve a hacer la llamada a la función pasándole como parámetro la nueva carpeta
Si es un archivo normal, simplemente copia el archivo de la carpeta origen a la destino.
Es así de sencillo. Te aconsejo que mires en la ayuda sobre TSearchRect, FindFirst, FindNext y FindClose y si tienes más dudas..... vuelve por aquí
Espero te sirva la explicación