pues no lo se, es posible que haya alguna bifurcacion, de todas formas yo solo veo que se carga el pointer en hl, se guarda un valor en bc y despues se llama a una rutina corta que hace una and a, pero ni idea de lo que lleva a en ese momento. Luego se carga el valor de la bank en a segun dices tu, luego hay un jump a 0xdcd por lo que desde aquí no deberia seguir avanzando al segundo ld, a,10 que comentas tu; seguramente alguna otra rutina lleve un jump a ese segundo ld a,10 , que luego sigue con un jump a 0x3128, rutina muy similar a 0xdcd a simple vista.
En fin ahi me canse de mirar ya... Si quieres descubrir mas podrias intentar descrifar 0xdcd y 0x3128 para ver que hace cada rutina y de que va la cosa.
Pero seamos sinceros, lo mas facil es que testees un combate cambiando los dos '10' por separado y ver que es lo que le ocurre al juego, pero seguramente, los dos ld a,10 tengan algo que ver.