Los JMPs son relativos a la posición donde están ubicados.
La solucion sencilla para evitar ese problema es usar PUSH + RET, pero esto ocupa un byte mas.
Por ej.:
Código
00412C32 E9 87000000 JMP 00412CBE
podrías reemplazarlo con:
Código
00412C32 68 BE2C4100 PUSH 00412CBE 00412C37 C3 RET
pero, como ves, ocupa 1 byte más.
Si quieres usar un JMP, tendrás que calcular la distancia del salto antes de escribirlo.
Saludos!