No Description

new_move_second.S 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. .text
  2. .align 2
  3. .thumb
  4. .thumb_func
  5. .global new_move_second
  6. new_move_second:
  7. ldrb r1, [r0, #0x2]
  8. mov r2, #0xFF
  9. cmp r1, r2
  10. beq exit2
  11. lsl r2, #0x8
  12. add r2, #0xFF
  13. mov r9, r2
  14. mov r3, #0x0
  15. loop: lsl r0, r3, #0x1
  16. add r0, r0, r3
  17. ldr r1, =moveset_table
  18. add r1, r1, r6
  19. ldr r1, [r1, #0x0]
  20. add r7, r0, r1
  21. ldrb r0, [r7, #0x2]
  22. mov r4, r10
  23. cmp r0, r4
  24. bgt exit2
  25. ldrb r1, [r7, #0x1]
  26. ldrb r0, [r7, #0x0]
  27. lsl r1, r1, #0x8
  28. orr r1, r0
  29. mov r0, r8
  30. str r3, [sp, #0x0]
  31. mov r4, r1
  32. bl branchone
  33. mov r5, #0xFF
  34. ldr r3, [sp, #0x0]
  35. cmp r0, r9
  36. bne exit
  37. mov r0, r8
  38. add r1, r4, #0x0
  39. bl branchtwo
  40. ldr r3, [sp, #0x0]
  41. exit: add r3, #0x1
  42. # lsl r1, r3, #0x1
  43. # add r1, r1, r3
  44. # add r0, r7, r1
  45. mov r1, #0x3
  46. add r0, r7, r1
  47. ldrb r0, [r0, #0x2]
  48. cmp r0, r5
  49. bne loop
  50. exit2: add sp, #0x4
  51. pop {r3-r5}
  52. mov r8, r3
  53. mov r9, r4
  54. mov r10, r5
  55. pop {r4-r7}
  56. pop {r0}
  57. bx r0
  58. branchone: push {r4-r7,lr}
  59. add sp, #-0x4
  60. ldr r7, gothere
  61. bx r7
  62. branchtwo: push {r4-r7,lr}
  63. ldr r7, gothere2
  64. bx r7
  65. .align
  66. gothere: .word 0x0803E8B5
  67. gothere2: .word 0x0803EC43