Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Platinum - 0x0201D30C routine (Great Marsh) study
- --------------------------
- ARM7 code :
- 0201:D30C LDR R1, [PC, #4] | Load the value PC+4 into R1
- 0201:D30E MUL R1, R0 | R1 = R1*R0
- 0201:D310 ADD R0, R1, #1 | R0 = R1 + 1
- 0201:D312 BX LR | Branch to adress in LR and LR[0] indicates the operating mode (ARM or Thumb)
- 0201:D314 LDRH R5, [R4, #A] | Load register from memory (halfword)
- 0201:D316 LDR R7, [R0, #40] | Load register from memory
- 0201:D318 PUSH {R4-R5} | Push in stack
- 0201:D31A LDR R1, [PC, #30] | Load register from memory
- 0201:D31C MOV R4, #27 | Move register or constant
- 0201:D31E STR R0, [R1, #8] | Store register to memory
- 0201:D320 LDR R1, [PC, #2C] | Load register from memory
- 0201:D322 MOV R0, #1 | Move register or constant
- 0201:D324 STR R0, [R1, #0] | Store register to memory
- 0201:D326 LDR R1, [PC, #2C] | Load register from memory
- 0201:D328 LDR R3, [PC, #2C] | Load register from memory
- 0201:D32A LSL R4, R4, #4 | Logical shift left
- 0201:D32C SUB R2, R1, #4 | Subtract
- 0201:D32E LDR R5, [R2, #0] | Load register from memory
- 0201:D330 LSR R2, R5, #1E | Logical shift right
- 0201:D332 EOR R2, R5 | Exclusive OR
- 0201:D334 ADD R5, R2, #0 | Add
- 0201:D336 MUL R5, R3 | Multiply
- 0201:D338 ADD R2, R0, R5 | Add
- 0201:D33A ADD R0, R0, #1 | Add
- 0201:D33C STMIA R1!, {R2} | Store multiple, increment after
- 0201:D33E CMP R0, R4 | Compare
- 0201:D340 BLT #0201D32C | Branch lower than
- 0201:D342 LDR R1, [PC, #C] | Load register from memory
- 0201:D344 STR R0, [R1, #0] | Store register to memory
- 0201:D346 POP {R4-R5} | Pop from stack
- 0201:D348 BX LR
- Registers (before) :
- R0 = 00000E0B R4 = 00000000 R8 = 0000FFFF R12 = 038008CF
- R1 = 03806BF0 R5 = 00000070 R9 = 00000002 SP = 0380F944
- R2 = 027FFC3C R6 = 00000002 R10 = 00000000 LR = 037F8434
- R3 = 04000004 R7 = 0380F954 R11 = 00000000 PC = 037F8484
- Registers (after) :
- R0 = 00000E0C R4 = 00000000 R8 = 0000FFFF R12 = 038008CF
- R1 = 03806BF0 R5 = 00000070 R9 = 00000002 SP = 0380F944
- R2 = 027FFC3C R6 = 00000002 R10 = 00000000 LR = 037F8434
- R3 = 04000004 R7 = 0380F954 R11 = 00000000 PC = 037F8484
Add Comment
Please, Sign In to add comment