small mistake made somewhere(marked in the source), but don't think it will affect any usernames shorter than 39 characters so i didn't bother to find it.
got pretty far but gave up on figuring out how to get ebx equal to 1 at beginning of the last part. give me an example password to have my mind at peace