Hola!
Pues, explicarlo es medio complicado porque debería hacerlo desde cero.
Básicamente, seguí la rutina de comprobación del serial y me dí cuenta que el programa primero carga el archivo este para identificar si ya está registrado.
El código lo puedes ver con Olly pero también puedes usar Dede para decompilarlo y verlo "estaticamente".
Por lo pronto, te paso unos BPs para Olly, donde puedes ver de que te estoy hablando:
En 419F1C se inicializa a cero la variable que tiene el valor que hemos cambiado en el archivo.
Y por ejemplo, si te fijas en 4114DA vas a ver cómo hace una comparación de un valor fijo con el valor cargado del archivo.
Si no has entendido nada, pues te recomiendo hacer el curso de Ricardo Narvaja: Olly desde cero.
Saludos!