Yo lo primero particularmente no pondría el nombre del programa.
Yo veo lo siguiente:
1- Ese programa está compilado en Visual Basic, fíjate cómo llama a las funciones de Visual Basic (a la librería MSVBVM60.dll).
2- Fíjate una cosa muy importante. Ese salto que hace o no hace según, lo realiza o no tras comparar que en una zona de la memoria sea el valor = cero: CMP DWORD PTR SS[EBP-58], 0
Ya te está dando un dato importante. Y ese valor de EBP-58 en la linea anterior te pone el valor de EAX. En definitiva JGE salta si el valor es mayor o igual, es decir, si EAX es menor que 0 (FFFFFFFF) NO saltará.
Podrías intentar averiguar porqué EAX tiene ese valor poniendo BP.
Eso de poner directamente un salto a vba__End no está bien, porque VB va liberando de memoria variables que utiliza.. si no hubiese otra opción pues vale pero no en este caso. Si dices que ya todo lo tienes arreglado pues ahí puedes poner un simple JMP sustituyendo al JGE y ya está arreglado.
Pero yo analizaría porqué EAX te da un valor menor que 0.
Yo no tengo experiencia en este tema ya que nunca me enfrentado a eso pero sé que otras personas que lo han intentado lo han hecho efectivamente como tú dices con un emulador y con debugger incorporado. El hecho es que hace unos meses lei un tute sobre crackear ese tipo de programas(juegos...) y no lo encuentro.. si consigo más información ya te lo haré saber.
Intenta buscar algún emulador a ver.. Un saludo
Oye aguml.. pon un link si quieres con unos de los juegos, que le echo un vistazo.
Si aún así con el enlace q te da tena, no consigues nada, yo la solución más sencilla q veo es que pongas la mochila(espero q la tengas) y que lo trates como un packer más.
Sobre este ej. te pongo un tute q hize yo sobre un Hasp HL: ENLACE TUTE
Pedir el crack directamente es incumplir las normas de este foro. Si tienes alguna duda en concreto postéala pero no pidas el crack, para esto último ya existen muchas páginas.