You could simplify your routine in this way. In practice, if the 200 flag is set, no pokemon will be registered. It saves space and a lot of time, in case a lot of pokemon are added.
.text
.align 2
.thumb
.thumb_func
main:
sub r1, #0x01
lsl r1, r1, #0x01
add r1, r1, r0
ldrh r0, [r1]
push {r0}...