I looked at this and what they do is store the MD5'd user password along with a random salt. Here's the code snippet that does that:
$salt = random(6);
$password = md5(md5($password).$salt);
First they create a random salt, then they append the salt to the password and MD5 it, then they MD5 the result again. Finally they do the insert into the DB, storing the salt:
INSERT INTO {$tablepre}members (username, password, salt, ..... etc
You can't really "undo" an MD5 function, but by using the same function with the stored salt value, you could create the same MD5 digest of the password for use in your system. The user could then login with the same password