Hello.
I would really love to write this program for you. I'm still really young, but I have a lot of free time, which I use to improve my C++ programming skills. That is the reason why i would love to work for you!
My AutoPatcher would work like that:
It would have an SQL database somewhere on the server, which would have table, with two collumns: File's name & path and File's hash. Then AutoPatcher upon execution, would select all the rows from the database. Then it would try to find the files, specified in the table. If it wouldn't find file. It would add this file's name to download queue. If it would find the file it would try to hash file. And then it would try to check, if hashes do match. If they don't file is going to be deleted. And it would add this file's name to download queue. And then AutoPatcher would download all the files, that are in the download queue.
I could also make use from multi threading, which would speed things up a lot.
I think, that i would use MD6 algorithm to create hashes.
Feel free to contact me to discuss further details.