Taki proces nazywa się dekompilacją, i owszem, są takie programy, jednak wciąż tracone są dane na temat nazw zmiennych i metod, tracimy również komentarze.
Nie jest to chyba na tyle skomplikowany program i na Twoim miejscu napisałbym go od nowa, ewentualnie podpatrując oryginał pod kątem skomplikowanych wzorów :)