ldr r3,numbytes
ldr r2,realtraineraddress
add r1,r15,#0x20
trainercopyloop:
ldr r0,[r1],#0x4
str r0,[r2],#0x4
subs r3,r3,#0x1
bne trainercopyloop
.long 0xDEADBEEF,0xDEADBEEF
ldr r15,armstart
realtraineraddress: .long 0x23FF090
armstart: .long 0x2380008
trainerstart:
str r0,swap
ldr r0,irqjump0
stmdb r13!,{r0}
ldr r0,swap
b start
str r0,swap
ldr r0,irqjump1
stmdb r13!,{r0}
ldr r0,swap
start:
stmdb r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldr r5,address0
ldrh r5,[r5]
ldr r2,lval0
mov r0,#0xFF
and r5,r5,r2
cmp r5,r0
bne label0
ldr r0,lval1
ldr r1,address1
str r0,[r1]
ldr r0,lval2
ldr r1,address2
strh r0,[r1]
ldr r0,lval2
ldr r1,address3
strh r0,[r1]
ldr r0,lval2
ldr r1,address4
strh r0,[r1]
ldr r0,lval2
ldr r1,address5
strh r0,[r1]
ldr r0,lval2
ldr r1,address6
strh r0,[r1]
ldr r0,lval2
ldr r1,address7
strh r0,[r1]
ldr r0,lval2
ldr r1,address8
strh r0,[r1]
ldr r0,lval2
ldr r1,address9
strh r0,[r1]
ldr r0,lval2
ldr r1,address10
strh r0,[r1]
ldr r0,lval2
ldr r1,address11
strh r0,[r1]
ldr r0,lval2
ldr r1,address12
strh r0,[r1]
ldr r0,lval2
ldr r1,address13
strh r0,[r1]
ldr r0,lval2
ldr r1,address14
strh r0,[r1]
ldr r0,lval2
ldr r1,address15
strh r0,[r1]
ldr r0,lval2
ldr r1,address16
strh r0,[r1]
label0:
label1:
ldmia r13!,{r0,r1,r2,r3,r4,r5,r6,r7,r8,r9,r10,r11,r12,r14}
ldmia r13!,{r15}
address0: .long 0x4000130
address1: .long 0x21D891C
address2: .long 0x21D88FE
address3: .long 0x21D8900
address4: .long 0x21D8902
address5: .long 0x21D8904
address6: .long 0x21D8906
address7: .long 0x21D8908
address8: .long 0x21D890A
address9: .long 0x21D890C
address10: .long 0x21D890F
address11: .long 0x21D8911
address12: .long 0x21D8913
address13: .long 0x21D8915
address14: .long 0x21D8917
address15: .long 0x21D8919
address16: .long 0x21D891A
lval0: .long 0xFFFF
lval1: .long 0x1869F
lval2: .long 0x14FD
swap: .long 0x0
irqjump0: .long 0x37F8534
irqjump1: .long 0x3803700
trainerend:
numbytes: .long (trainerend-trainerstart)/4