Tienes analizados mal los entrypoint el asm te debe quedar de esta manera(solo codigo nuevo)

Código:
include "x.inc"
dir1    equ 0x456B55C6
dir2    equ    0x456B55C8
dir3    equ    0x456B55E2
dir4    equ    0x455F2464
dir5    equ    0x4564C288
dir6    equ    0x455F247C
dir7    equ    0x4564C288
dir8    equ    0x456B560A
dir9    equ    0x45206A81
dir10    equ    0x456B55EA
dir11    equ 0x456B55C8
ram        equ    0x4C022B40
patch    equ 0x456B55B0
org patch
loc_456B55B0:
        LDR    R0, [R4,0x30]
        LDR    R1, off_456B5610
        PUSH    {R0-R7,LR}
        LDR    R7, dword_456B560C
        LDRB    R6, [R7,1]
        CMP    R6, 1
        BEQ    dir1
        MOV    R1, 1
        STRB    R1, [R7,1]
        BL    dir2

loc_456B55C6:
        POP    {R0-R7,PC}

sub_456B55C8:
        PUSH    {R0-R7,LR}
        LDR    R7, dword_456B560C
        LDRB    R6, [R7]
        CMP    R6, 1
        BEQ    dir3
        MOV    R0, 0x1E
        BL    dir4
        MOV    R0, 0x32
        LDR    R1, off_456B5614
        BL    dir5
        POP    {R0-R7,PC}

loc_456B55E2:
        MOV    R6, 0
        STRB    R6, [R7]
        STRB    R6, [R7,1]
        POP    {R0-R7,PC}

loc_456B55EA:
        PUSH    {R0-R7,LR}
        BL    dir6
        MOV    R0, 0x32
        LDR    R1, off_456B5618
        BL    dir7
        POP    {R0-R7,PC}

        ADD    R4, 0x4C
        LDRB    R0, [R4,3]
        PUSH    {R0-R7,LR}
        LDR    R7, dword_456B560C
        LDRB    R6, [R7,1]
        CMP    R6, 1
        BNE    dir8
        STRB    R6, [R7]

loc_456B560A:
        POP    {R0-R7,PC}
align 4
dword_456B560C    DCD ram
off_456B5610    DCD dir9
off_456B5614    DCD dir10+1
off_456B5618    DCD dir11+1
saludos