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
Marcadores