Advertisement
Bond697

Battle Animation Scripting

Mar 8th, 2013
531
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 29.88 KB | None | 0 0
  1. OVL_168:021E1CB8             ; =============== S U B R O U T I N E =======================================
  2. OVL_168:021E1CB8
  3. OVL_168:021E1CB8
  4. OVL_168:021E1CB8             sub_21E1CB8                             ; DATA XREF: OVL_168:021F3110o
  5. OVL_168:021E1CB8
  6. OVL_168:021E1CB8             marker          = -0x20
  7. OVL_168:021E1CB8             var_1C          = -0x1C
  8. OVL_168:021E1CB8
  9. OVL_168:021E1CB8 F8 B5                       PUSH    {R3-R7,LR}
  10. OVL_168:021E1CBA 82 B0                       SUB     SP, SP, #8      ; marker
  11. OVL_168:021E1CBC 05 1C                       MOVS    R5, R0
  12. OVL_168:021E1CBE 2F 48                       LDR     R0, =0x7AD
  13. OVL_168:021E1CC0 0E 1C                       MOVS    R6, R1
  14. OVL_168:021E1CC2 00 90                       STR     R0, [SP,#0x20+marker] ; marker
  15. OVL_168:021E1CC4 8E 20 80 00                 MOVS    R0, 0x238
  16. OVL_168:021E1CC8 31 5A                       LDRH    R1, [R6,R0]
  17. OVL_168:021E1CCA 2D 48                       LDR     R0, =0x7FFF
  18. OVL_168:021E1CCC 2D 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
  19. OVL_168:021E1CCE 01 40                       ANDS    R1, R0
  20. OVL_168:021E1CD0 40 1C                       ADDS    R0, R0, #1
  21. OVL_168:021E1CD2 08 43                       ORRS    R0, R1
  22. OVL_168:021E1CD4 00 04                       LSLS    R0, R0, #0x10
  23. OVL_168:021E1CD6 00 0C                       LSRS    R0, R0, #0x10
  24. OVL_168:021E1CD8 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
  25. OVL_168:021E1CDA 01 22                       MOVS    R2, #1          ; clearBlock
  26. OVL_168:021E1CDC 58 F6 A4 FA                 BL      allocateBlockFromExpHeap
  27. OVL_168:021E1CE0 04 1C                       MOVS    R4, R0
  28. OVL_168:021E1CE2 28 1C                       MOVS    R0, R5          ; vm
  29. OVL_168:021E1CE4 33 F6 8E FE                 BL      scriptRead32
  30. OVL_168:021E1CE8 01 1C                       MOVS    R1, R0
  31. OVL_168:021E1CEA 30 1C                       MOVS    R0, R6
  32. OVL_168:021E1CEC 04 F0 5E F9                 BL      sub_21E5FAC
  33. OVL_168:021E1CF0 01 1C                       MOVS    R1, R0
  34. OVL_168:021E1CF2 30 1C                       MOVS    R0, R6
  35. OVL_168:021E1CF4 03 F0 22 F8                 BL      sub_21E4D3C
  36. OVL_168:021E1CF8 07 1C                       MOVS    R7, R0
  37. OVL_168:021E1CFA 28 1C                       MOVS    R0, R5          ; vm
  38. OVL_168:021E1CFC 33 F6 82 FE                 BL      scriptRead32
  39. OVL_168:021E1D00 01 90                       STR     R0, [SP,#0x20+var_1C]
  40. OVL_168:021E1D02 25 60                       STR     R5, [R4]
  41. OVL_168:021E1D04 28 1C                       MOVS    R0, R5          ; vm
  42. OVL_168:021E1D06 33 F6 7D FE                 BL      scriptRead32
  43. OVL_168:021E1D0A 60 60                       STR     R0, [R4,#4]
  44. OVL_168:021E1D0C 28 1C                       MOVS    R0, R5          ; vm
  45. OVL_168:021E1D0E 33 F6 79 FE                 BL      scriptRead32
  46. OVL_168:021E1D12 A0 60                       STR     R0, [R4,#8]
  47. OVL_168:021E1D14 00 20                       MOVS    R0, #0
  48. OVL_168:021E1D16 E0 60                       STR     R0, [R4,#0xC]
  49. OVL_168:021E1D18 28 1C                       MOVS    R0, R5          ; vm
  50. OVL_168:021E1D1A 33 F6 73 FE                 BL      scriptRead32
  51. OVL_168:021E1D1E 20 61                       STR     R0, [R4,#0x10]
  52. OVL_168:021E1D20 00 20                       MOVS    R0, #0
  53. OVL_168:021E1D22 60 61                       STR     R0, [R4,#0x14]
  54. OVL_168:021E1D24 28 1C                       MOVS    R0, R5          ; vm
  55. OVL_168:021E1D26 33 F6 6D FE                 BL      scriptRead32
  56. OVL_168:021E1D2A A0 61                       STR     R0, [R4,#0x18]
  57. OVL_168:021E1D2C 28 1C                       MOVS    R0, R5          ; vm
  58. OVL_168:021E1D2E 33 F6 69 FE                 BL      scriptRead32
  59. OVL_168:021E1D32 28 1C                       MOVS    R0, R5          ; vm
  60. OVL_168:021E1D34 33 F6 66 FE                 BL      scriptRead32
  61. OVL_168:021E1D38 60 64                       STR     R0, [R4,#0x44]
  62. OVL_168:021E1D3A 28 1C                       MOVS    R0, R5          ; vm
  63. OVL_168:021E1D3C 33 F6 62 FE                 BL      scriptRead32
  64. OVL_168:021E1D40 A0 64                       STR     R0, [R4,#0x48]
  65. OVL_168:021E1D42 28 1C                       MOVS    R0, R5          ; vm
  66. OVL_168:021E1D44 33 F6 5E FE                 BL      scriptRead32
  67. OVL_168:021E1D48 E0 64                       STR     R0, [R4,#0x4C]
  68. OVL_168:021E1D4A 28 1C                       MOVS    R0, R5          ; vm
  69. OVL_168:021E1D4C 33 F6 5A FE                 BL      scriptRead32
  70. OVL_168:021E1D50 20 65                       STR     R0, [R4,#0x50]
  71. OVL_168:021E1D52 A0 68                       LDR     R0, [R4,#8]
  72. OVL_168:021E1D54 08 28                       CMP     R0, #8
  73. OVL_168:021E1D56 01 D1                       BNE     loc_21E1D5C
  74. OVL_168:021E1D58 60 68                       LDR     R0, [R4,#4]
  75. OVL_168:021E1D5A A0 60                       STR     R0, [R4,#8]
  76. OVL_168:021E1D5C
  77. OVL_168:021E1D5C             loc_21E1D5C                             ; CODE XREF: sub_21E1CB8+9Ej
  78. OVL_168:021E1D5C 10 2F                       CMP     R7, #0x10
  79. OVL_168:021E1D5E 05 D0                       BEQ     loc_21E1D6C
  80. OVL_168:021E1D60 01 9B                       LDR     R3, [SP,#0x20+var_1C]
  81. OVL_168:021E1D62 30 1C                       MOVS    R0, R6
  82. OVL_168:021E1D64 21 1C                       MOVS    R1, R4
  83. OVL_168:021E1D66 3A 1C                       MOVS    R2, R7
  84. OVL_168:021E1D68 03 F0 0A FE                 BL      sub_21E5980
  85. OVL_168:021E1D6C
  86. OVL_168:021E1D6C             loc_21E1D6C                             ; CODE XREF: sub_21E1CB8+A6j
  87. OVL_168:021E1D6C 20 1C                       MOVS    R0, R4          ; pBlk
  88. OVL_168:021E1D6E 58 F6 83 FA                 BL      freeBlock
  89. OVL_168:021E1D72 8F 20 80 00                 MOVS    R0, 0x23C
  90. OVL_168:021E1D76 30 58                       LDR     R0, [R6,R0]
  91. OVL_168:021E1D78 02 B0                       ADD     SP, SP, #8
  92. OVL_168:021E1D7A F8 BD                       POP     {R3-R7,PC}
  93. OVL_168:021E1D7A             ; End of function sub_21E1CB8
  94. OVL_168:021E1D7A
  95. OVL_168:021E1D7A             ; ---------------------------------------------------------------------------
  96. OVL_168:021E1D7C             ; int dword_21E1D7C
  97. OVL_168:021E1D7C AD 07 00 00 dword_21E1D7C   DCD 0x7AD               ; DATA XREF: sub_21E1CB8+6r
  98. OVL_168:021E1D80 FF 7F 00 00 dword_21E1D80   DCD 0x7FFF              ; DATA XREF: sub_21E1CB8+12r
  99. OVL_168:021E1D84             ; char *off_21E1D84
  100. OVL_168:021E1D84 B4 41 1F 02 off_21E1D84     DCD aBtlv_effvm_c       ; DATA XREF: sub_21E1CB8+14r
  101. OVL_168:021E1D84                                                     ; "btlv_effvm.c"
  102.  
  103. OVL_168:021E5980
  104. OVL_168:021E5980             sub_21E5980                             ; CODE XREF: sub_21E1CB8+B0p
  105. OVL_168:021E5980                                                     ; sub_21E1E84+148p ...
  106. OVL_168:021E5980
  107. OVL_168:021E5980             marker          = -0x78
  108. OVL_168:021E5980             var_74          = -0x74
  109. OVL_168:021E5980             var_70          = -0x70
  110. OVL_168:021E5980             var_6C          = -0x6C
  111. OVL_168:021E5980             var_68          = -0x68
  112. OVL_168:021E5980             var_64          = -0x64
  113. OVL_168:021E5980             var_60          = -0x60
  114. OVL_168:021E5980             var_5C          = -0x5C
  115. OVL_168:021E5980             var_58          = -0x58
  116. OVL_168:021E5980             var_54          = -0x54
  117. OVL_168:021E5980             var_50          = -0x50
  118. OVL_168:021E5980             var_34          = -0x34
  119. OVL_168:021E5980
  120. OVL_168:021E5980 F0 B5                       PUSH    {R4-R7,LR}
  121. OVL_168:021E5982 99 B0                       SUB     SP, SP, #0x64   ; marker
  122. OVL_168:021E5984 07 1C                       MOVS    R7, R0
  123. OVL_168:021E5986 08 1C                       MOVS    R0, R1
  124. OVL_168:021E5988 15 1C                       MOVS    R5, R2
  125. OVL_168:021E598A 42 68                       LDR     R2, [R0,#4]
  126. OVL_168:021E598C 80 68                       LDR     R0, [R0,#8]
  127. OVL_168:021E598E 01 91                       STR     R1, [SP,#0x78+var_74]
  128. OVL_168:021E5990 02 93                       STR     R3, [SP,#0x78+var_70]
  129. OVL_168:021E5992 90 42                       CMP     R0, R2
  130. OVL_168:021E5994 50 D1                       BNE     loc_21E5A38
  131. OVL_168:021E5996 01 1C                       MOVS    R1, R0
  132. OVL_168:021E5998 0B 39                       SUBS    R1, #0xB
  133. OVL_168:021E599A 01 29                       CMP     R1, #1
  134. OVL_168:021E599C 4C D8                       BHI     loc_21E5A38
  135. OVL_168:021E599E 0C 28                       CMP     R0, #0xC
  136. OVL_168:021E59A0 02 D1                       BNE     loc_21E59A8
  137. OVL_168:021E59A2 01 98                       LDR     R0, [SP,#0x78+var_74]
  138. OVL_168:021E59A4 01 21                       MOVS    R1, #1
  139. OVL_168:021E59A6 81 65                       STR     R1, [R0,#0x58]
  140. OVL_168:021E59A8
  141. OVL_168:021E59A8             loc_21E59A8                             ; CODE XREF: sub_21E5980+20j
  142. OVL_168:021E59A8 38 1C                       MOVS    R0, R7
  143. OVL_168:021E59AA 10 21                       MOVS    R1, #0x10
  144. OVL_168:021E59AC 11 AA                       ADD     R2, SP, #0x78+var_34
  145. OVL_168:021E59AE FE F7 7B FF                 BL      sub_21E48A8
  146. OVL_168:021E59B2 06 90                       STR     R0, [SP,#0x78+var_60]
  147. OVL_168:021E59B4 00 28                       CMP     R0, #0
  148. OVL_168:021E59B6 02 D0                       BEQ     loc_21E59BE
  149. OVL_168:021E59B8 00 24                       MOVS    R4, #0
  150. OVL_168:021E59BA 00 28                       CMP     R0, #0
  151. OVL_168:021E59BC 00 DC                       BGT     loc_21E59C0
  152. OVL_168:021E59BE
  153. OVL_168:021E59BE             loc_21E59BE                             ; CODE XREF: sub_21E5980+36j
  154. OVL_168:021E59BE F0 E0                       B       loc_21E5BA2
  155. OVL_168:021E59C0             ; ---------------------------------------------------------------------------
  156. OVL_168:021E59C0
  157. OVL_168:021E59C0             loc_21E59C0                             ; CODE XREF: sub_21E5980+3Cj
  158. OVL_168:021E59C0 A8 00                       LSLS    R0, R5, #2
  159. OVL_168:021E59C2 38 18                       ADDS    R0, R7, R0
  160. OVL_168:021E59C4 03 90                       STR     R0, [SP,#0x78+var_6C]
  161. OVL_168:021E59C6 60 1E                       SUBS    R0, R4, #1
  162. OVL_168:021E59C8 40 0C                       LSRS    R0, R0, #0x11
  163. OVL_168:021E59CA 07 90                       STR     R0, [SP,#0x78+var_5C]
  164. OVL_168:021E59CC
  165. OVL_168:021E59CC             loc_21E59CC                             ; CODE XREF: sub_21E5980+B2j
  166. OVL_168:021E59CC 76 48                       LDR     R0, =0x1D0B
  167. OVL_168:021E59CE 77 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
  168. OVL_168:021E59D0 00 90                       STR     R0, [SP,#0x78+marker] ; marker
  169. OVL_168:021E59D2 8E 20 80 00                 MOVS    R0, 0x238
  170. OVL_168:021E59D6 39 5A                       LDRH    R1, [R7,R0]
  171. OVL_168:021E59D8 07 98                       LDR     R0, [SP,#0x78+var_5C]
  172. OVL_168:021E59DA 01 22                       MOVS    R2, #1          ; clearBlock
  173. OVL_168:021E59DC 01 40                       ANDS    R1, R0
  174. OVL_168:021E59DE 02 20 80 03                 MOVS    R0, 0x8000
  175. OVL_168:021E59E2 08 43                       ORRS    R0, R1
  176. OVL_168:021E59E4 00 04                       LSLS    R0, R0, #0x10
  177. OVL_168:021E59E6 00 0C                       LSRS    R0, R0, #0x10
  178. OVL_168:021E59E8 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
  179. OVL_168:021E59EA 54 F6 1D FC                 BL      allocateBlockFromExpHeap
  180. OVL_168:021E59EE 05 1C                       MOVS    R5, R0
  181. OVL_168:021E59F0 01 9E                       LDR     R6, [SP,#0x78+var_74]
  182. OVL_168:021E59F2 2B 1C                       MOVS    R3, R5
  183. OVL_168:021E59F4 0B 22                       MOVS    R2, #0xB
  184. OVL_168:021E59F6
  185. OVL_168:021E59F6             loc_21E59F6                             ; CODE XREF: sub_21E5980+7Cj
  186. OVL_168:021E59F6 03 CE                       LDMIA   R6!, {R0,R1}
  187. OVL_168:021E59F8 03 C3                       STMIA   R3!, {R0,R1}
  188. OVL_168:021E59FA 52 1E                       SUBS    R2, R2, #1
  189. OVL_168:021E59FC FB D1                       BNE     loc_21E59F6
  190. OVL_168:021E59FE 30 68                       LDR     R0, [R6]
  191. OVL_168:021E5A00 A1 00                       LSLS    R1, R4, #2
  192. OVL_168:021E5A02 18 60                       STR     R0, [R3]
  193. OVL_168:021E5A04 11 A8                       ADD     R0, SP, #0x78+var_34
  194. OVL_168:021E5A06 40 58                       LDR     R0, [R0,R1]
  195. OVL_168:021E5A08 69 4A                       LDR     R2, =(sub_21E4D60+1)
  196. OVL_168:021E5A0A 68 60                       STR     R0, [R5,#4]
  197. OVL_168:021E5A0C 11 A8                       ADD     R0, SP, #0x78+var_34
  198. OVL_168:021E5A0E 40 58                       LDR     R0, [R0,R1]
  199. OVL_168:021E5A10 02 99                       LDR     R1, [SP,#0x78+var_70]
  200. OVL_168:021E5A12 A8 60                       STR     R0, [R5,#8]
  201. OVL_168:021E5A14 03 98                       LDR     R0, [SP,#0x78+var_6C]
  202. OVL_168:021E5A16 2B 1C                       MOVS    R3, R5
  203. OVL_168:021E5A18 C0 68                       LDR     R0, [R0,#0xC]
  204. OVL_168:021E5A1A 6A F6 45 FB                 BL      sub_20500A8
  205. OVL_168:021E5A1E 00 21                       MOVS    R1, #0
  206. OVL_168:021E5A20 C9 43                       MVNS    R1, R1
  207. OVL_168:021E5A22 88 42                       CMP     R0, R1
  208. OVL_168:021E5A24 02 D1                       BNE     loc_21E5A2C
  209. OVL_168:021E5A26 28 1C                       MOVS    R0, R5          ; pBlk
  210. OVL_168:021E5A28 54 F6 26 FC                 BL      freeBlock
  211. OVL_168:021E5A2C
  212. OVL_168:021E5A2C             loc_21E5A2C                             ; CODE XREF: sub_21E5980+A4j
  213. OVL_168:021E5A2C 06 98                       LDR     R0, [SP,#0x78+var_60]
  214. OVL_168:021E5A2E 64 1C                       ADDS    R4, R4, #1
  215. OVL_168:021E5A30 84 42                       CMP     R4, R0
  216. OVL_168:021E5A32 CB DB                       BLT     loc_21E59CC
  217. OVL_168:021E5A34 19 B0                       ADD     SP, SP, #0x64
  218. OVL_168:021E5A36 F0 BD                       POP     {R4-R7,PC}      ; marker
  219. OVL_168:021E5A38             ; ---------------------------------------------------------------------------
  220. OVL_168:021E5A38
  221. OVL_168:021E5A38             loc_21E5A38                             ; CODE XREF: sub_21E5980+14j
  222. OVL_168:021E5A38                                                     ; sub_21E5980+1Cj
  223. OVL_168:021E5A38 90 42                       CMP     R0, R2
  224. OVL_168:021E5A3A 04 D1                       BNE     loc_21E5A46
  225. OVL_168:021E5A3C 92 22 92 00                 MOVS    R2, 0x248
  226. OVL_168:021E5A40 B9 5C                       LDRB    R1, [R7,R2]
  227. OVL_168:021E5A42 0C 29                       CMP     R1, #0xC
  228. OVL_168:021E5A44 00 D0                       BEQ     loc_21E5A48
  229. OVL_168:021E5A46
  230. OVL_168:021E5A46             loc_21E5A46                             ; CODE XREF: sub_21E5980+BAj
  231. OVL_168:021E5A46 81 E0                       B       loc_21E5B4C
  232. OVL_168:021E5A48             ; ---------------------------------------------------------------------------
  233. OVL_168:021E5A48
  234. OVL_168:021E5A48             loc_21E5A48                             ; CODE XREF: sub_21E5980+C4j
  235. OVL_168:021E5A48 39 68                       LDR     R1, [R7]
  236. OVL_168:021E5A4A 49 06                       LSLS    R1, R1, #0x19
  237. OVL_168:021E5A4C C9 0F                       LSRS    R1, R1, #0x1F
  238. OVL_168:021E5A4E 7D D1                       BNE     loc_21E5B4C
  239. OVL_168:021E5A50 11 1C                       MOVS    R1, R2
  240. OVL_168:021E5A52 10 31                       ADDS    R1, #0x10
  241. OVL_168:021E5A54 79 5A                       LDRH    R1, [R7,R1]
  242. OVL_168:021E5A56 DA 3A                       SUBS    R2, #0xDA ; '+'
  243. OVL_168:021E5A58 91 42                       CMP     R1, R2
  244. OVL_168:021E5A5A 77 D0                       BEQ     loc_21E5B4C
  245. OVL_168:021E5A5C 01 1C                       MOVS    R1, R0
  246. OVL_168:021E5A5E 09 39                       SUBS    R1, #9
  247. OVL_168:021E5A60 01 29                       CMP     R1, #1
  248. OVL_168:021E5A62 73 D8                       BHI     loc_21E5B4C
  249. OVL_168:021E5A64 0A 28                       CMP     R0, #0xA
  250. OVL_168:021E5A66 02 D1                       BNE     loc_21E5A6E
  251. OVL_168:021E5A68 01 98                       LDR     R0, [SP,#0x78+var_74]
  252. OVL_168:021E5A6A 01 21                       MOVS    R1, #1
  253. OVL_168:021E5A6C 81 65                       STR     R1, [R0,#0x58]
  254. OVL_168:021E5A6E
  255. OVL_168:021E5A6E             loc_21E5A6E                             ; CODE XREF: sub_21E5980+E6j
  256. OVL_168:021E5A6E FA F7 5B FB                 BL      sub_21E0128
  257. OVL_168:021E5A72 03 28                       CMP     R0, #3
  258. OVL_168:021E5A74 09 D8                       BHI     loc_21E5A8A
  259. OVL_168:021E5A76 00 18                       ADDS    R0, R0, R0
  260. OVL_168:021E5A78 78 44                       ADD     R0, PC
  261. OVL_168:021E5A7A C0 88                       LDRH    R0, [R0,#6]
  262. OVL_168:021E5A7C 00 04                       LSLS    R0, R0, #0x10
  263. OVL_168:021E5A7E 00 14                       ASRS    R0, R0, #0x10
  264. OVL_168:021E5A80 87 44                       ADD     PC, R0
  265. OVL_168:021E5A80             ; ---------------------------------------------------------------------------
  266. OVL_168:021E5A82 06 00                       DCW 6
  267. OVL_168:021E5A84 10 00                       DCW 0x10
  268. OVL_168:021E5A86 24 00                       DCW 0x24
  269. OVL_168:021E5A88 06 00                       DCW 6
  270. OVL_168:021E5A8A             ; ---------------------------------------------------------------------------
  271. OVL_168:021E5A8A
  272. OVL_168:021E5A8A             loc_21E5A8A                             ; CODE XREF: sub_21E5980+F4j
  273. OVL_168:021E5A8A 38 1C                       MOVS    R0, R7
  274. OVL_168:021E5A8C DC 30                       ADDS    R0, #0xDC ; '_'
  275. OVL_168:021E5A8E 00 68                       LDR     R0, [R0]
  276. OVL_168:021E5A90 09 90                       STR     R0, [SP,#0x78+var_54]
  277. OVL_168:021E5A92 07 E0                       B       loc_21E5AA4
  278. OVL_168:021E5A94             ; ---------------------------------------------------------------------------
  279. OVL_168:021E5A94 38 1C                       MOVS    R0, R7
  280. OVL_168:021E5A96 DC 30                       ADDS    R0, #0xDC ; '_'
  281. OVL_168:021E5A98 00 68                       LDR     R0, [R0]
  282. OVL_168:021E5A9A 01 21                       MOVS    R1, #1
  283. OVL_168:021E5A9C 08 42                       TST     R0, R1
  284. OVL_168:021E5A9E 00 D1                       BNE     loc_21E5AA2
  285. OVL_168:021E5AA0 00 21                       MOVS    R1, #0
  286. OVL_168:021E5AA2
  287. OVL_168:021E5AA2             loc_21E5AA2                             ; CODE XREF: sub_21E5980+11Ej
  288. OVL_168:021E5AA2 09 91                       STR     R1, [SP,#0x78+var_54]
  289. OVL_168:021E5AA4
  290. OVL_168:021E5AA4             loc_21E5AA4                             ; CODE XREF: sub_21E5980+112j
  291. OVL_168:021E5AA4 01 20                       MOVS    R0, #1
  292. OVL_168:021E5AA6 10 E0                       B       loc_21E5ACA
  293. OVL_168:021E5AA8             ; ---------------------------------------------------------------------------
  294. OVL_168:021E5AA8 38 1C                       MOVS    R0, R7
  295. OVL_168:021E5AAA DC 30                       ADDS    R0, #0xDC ; '_'
  296. OVL_168:021E5AAC 01 68                       LDR     R1, [R0]
  297. OVL_168:021E5AAE 01 20                       MOVS    R0, #1
  298. OVL_168:021E5AB0 08 40                       ANDS    R0, R1
  299. OVL_168:021E5AB2 01 D0                       BEQ     loc_21E5AB8
  300. OVL_168:021E5AB4 13 21                       MOVS    R1, #0x13
  301. OVL_168:021E5AB6 00 E0                       B       loc_21E5ABA
  302. OVL_168:021E5AB8             ; ---------------------------------------------------------------------------
  303. OVL_168:021E5AB8
  304. OVL_168:021E5AB8             loc_21E5AB8                             ; CODE XREF: sub_21E5980+132j
  305. OVL_168:021E5AB8 12 21                       MOVS    R1, #0x12
  306. OVL_168:021E5ABA
  307. OVL_168:021E5ABA             loc_21E5ABA                             ; CODE XREF: sub_21E5980+136j
  308. OVL_168:021E5ABA 09 91                       STR     R1, [SP,#0x78+var_54]
  309. OVL_168:021E5ABC 00 28                       CMP     R0, #0
  310. OVL_168:021E5ABE 01 D0                       BEQ     loc_21E5AC4
  311. OVL_168:021E5AC0 15 20                       MOVS    R0, #0x15
  312. OVL_168:021E5AC2 00 E0                       B       loc_21E5AC6
  313. OVL_168:021E5AC4             ; ---------------------------------------------------------------------------
  314. OVL_168:021E5AC4
  315. OVL_168:021E5AC4             loc_21E5AC4                             ; CODE XREF: sub_21E5980+13Ej
  316. OVL_168:021E5AC4 14 20                       MOVS    R0, #0x14
  317. OVL_168:021E5AC6
  318. OVL_168:021E5AC6             loc_21E5AC6                             ; CODE XREF: sub_21E5980+142j
  319. OVL_168:021E5AC6 0A 90                       STR     R0, [SP,#0x78+var_50]
  320. OVL_168:021E5AC8 02 20                       MOVS    R0, #2
  321. OVL_168:021E5ACA
  322. OVL_168:021E5ACA             loc_21E5ACA                             ; CODE XREF: sub_21E5980+126j
  323. OVL_168:021E5ACA 05 90                       STR     R0, [SP,#0x78+var_64]
  324. OVL_168:021E5ACC 05 98                       LDR     R0, [SP,#0x78+var_64]
  325. OVL_168:021E5ACE 00 28                       CMP     R0, #0
  326. OVL_168:021E5AD0 67 D0                       BEQ     loc_21E5BA2
  327. OVL_168:021E5AD2 00 24                       MOVS    R4, #0
  328. OVL_168:021E5AD4 00 28                       CMP     R0, #0
  329. OVL_168:021E5AD6 64 DD                       BLE     loc_21E5BA2
  330. OVL_168:021E5AD8 A8 00                       LSLS    R0, R5, #2
  331. OVL_168:021E5ADA 38 18                       ADDS    R0, R7, R0
  332. OVL_168:021E5ADC 04 90                       STR     R0, [SP,#0x78+var_68]
  333. OVL_168:021E5ADE 60 1E                       SUBS    R0, R4, #1
  334. OVL_168:021E5AE0 40 0C                       LSRS    R0, R0, #0x11
  335. OVL_168:021E5AE2 08 90                       STR     R0, [SP,#0x78+var_58]
  336. OVL_168:021E5AE4
  337. OVL_168:021E5AE4             loc_21E5AE4                             ; CODE XREF: sub_21E5980+1C6j
  338. OVL_168:021E5AE4 33 48                       LDR     R0, =0x1D42
  339. OVL_168:021E5AE6 31 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
  340. OVL_168:021E5AE8 00 90                       STR     R0, [SP,#0x78+marker] ; marker
  341. OVL_168:021E5AEA 8E 20 80 00                 MOVS    R0, 0x238
  342. OVL_168:021E5AEE 39 5A                       LDRH    R1, [R7,R0]
  343. OVL_168:021E5AF0 08 98                       LDR     R0, [SP,#0x78+var_58]
  344. OVL_168:021E5AF2 01 22                       MOVS    R2, #1          ; clearBlock
  345. OVL_168:021E5AF4 01 40                       ANDS    R1, R0
  346. OVL_168:021E5AF6 02 20 80 03                 MOVS    R0, 0x8000
  347. OVL_168:021E5AFA 08 43                       ORRS    R0, R1
  348. OVL_168:021E5AFC 00 04                       LSLS    R0, R0, #0x10
  349. OVL_168:021E5AFE 00 0C                       LSRS    R0, R0, #0x10
  350. OVL_168:021E5B00 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
  351. OVL_168:021E5B02 54 F6 91 FB                 BL      allocateBlockFromExpHeap
  352. OVL_168:021E5B06 05 1C                       MOVS    R5, R0
  353. OVL_168:021E5B08 01 9E                       LDR     R6, [SP,#0x78+var_74]
  354. OVL_168:021E5B0A 2B 1C                       MOVS    R3, R5
  355. OVL_168:021E5B0C 0B 22                       MOVS    R2, #0xB
  356. OVL_168:021E5B0E
  357. OVL_168:021E5B0E             loc_21E5B0E                             ; CODE XREF: sub_21E5980+194j
  358. OVL_168:021E5B0E 03 CE                       LDMIA   R6!, {R0,R1}
  359. OVL_168:021E5B10 03 C3                       STMIA   R3!, {R0,R1}
  360. OVL_168:021E5B12 52 1E                       SUBS    R2, R2, #1
  361. OVL_168:021E5B14 FB D1                       BNE     loc_21E5B0E
  362. OVL_168:021E5B16 30 68                       LDR     R0, [R6]
  363. OVL_168:021E5B18 A1 00                       LSLS    R1, R4, #2
  364. OVL_168:021E5B1A 18 60                       STR     R0, [R3]
  365. OVL_168:021E5B1C 09 A8                       ADD     R0, SP, #0x78+var_54
  366. OVL_168:021E5B1E 40 58                       LDR     R0, [R0,R1]
  367. OVL_168:021E5B20 02 99                       LDR     R1, [SP,#0x78+var_70]
  368. OVL_168:021E5B22 68 60                       STR     R0, [R5,#4]
  369. OVL_168:021E5B24 A8 60                       STR     R0, [R5,#8]
  370. OVL_168:021E5B26 04 98                       LDR     R0, [SP,#0x78+var_68]
  371. OVL_168:021E5B28 21 4A                       LDR     R2, =(sub_21E4D60+1)
  372. OVL_168:021E5B2A C0 68                       LDR     R0, [R0,#0xC]
  373. OVL_168:021E5B2C 2B 1C                       MOVS    R3, R5
  374. OVL_168:021E5B2E 6A F6 BB FA                 BL      sub_20500A8
  375. OVL_168:021E5B32 00 21                       MOVS    R1, #0
  376. OVL_168:021E5B34 C9 43                       MVNS    R1, R1
  377. OVL_168:021E5B36 88 42                       CMP     R0, R1
  378. OVL_168:021E5B38 02 D1                       BNE     loc_21E5B40
  379. OVL_168:021E5B3A 28 1C                       MOVS    R0, R5          ; pBlk
  380. OVL_168:021E5B3C 54 F6 9C FB                 BL      freeBlock
  381. OVL_168:021E5B40
  382. OVL_168:021E5B40             loc_21E5B40                             ; CODE XREF: sub_21E5980+1B8j
  383. OVL_168:021E5B40 05 98                       LDR     R0, [SP,#0x78+var_64]
  384. OVL_168:021E5B42 64 1C                       ADDS    R4, R4, #1
  385. OVL_168:021E5B44 84 42                       CMP     R4, R0
  386. OVL_168:021E5B46 CD DB                       BLT     loc_21E5AE4
  387. OVL_168:021E5B48 19 B0                       ADD     SP, SP, #0x64
  388. OVL_168:021E5B4A F0 BD                       POP     {R4-R7,PC}      ; marker
  389. OVL_168:021E5B4C             ; ---------------------------------------------------------------------------
  390. OVL_168:021E5B4C
  391. OVL_168:021E5B4C             loc_21E5B4C                             ; CODE XREF: sub_21E5980:loc_21E5A46j
  392. OVL_168:021E5B4C                                                     ; sub_21E5980+CEj ...
  393. OVL_168:021E5B4C 1A 48                       LDR     R0, =0x1D55
  394. OVL_168:021E5B4E 17 4B                       LDR     R3, =aBtlv_effvm_c ; "btlv_effvm.c"
  395. OVL_168:021E5B50 00 90                       STR     R0, [SP,#0x78+marker] ; marker
  396. OVL_168:021E5B52 8E 20 80 00                 MOVS    R0, 0x238
  397. OVL_168:021E5B56 39 5A                       LDRH    R1, [R7,R0]
  398. OVL_168:021E5B58 18 48                       LDR     R0, =0x7FFF
  399. OVL_168:021E5B5A 01 22                       MOVS    R2, #1          ; clearBlock
  400. OVL_168:021E5B5C 01 40                       ANDS    R1, R0
  401. OVL_168:021E5B5E 40 1C                       ADDS    R0, R0, #1
  402. OVL_168:021E5B60 08 43                       ORRS    R0, R1
  403. OVL_168:021E5B62 00 04                       LSLS    R0, R0, #0x10
  404. OVL_168:021E5B64 00 0C                       LSRS    R0, R0, #0x10
  405. OVL_168:021E5B66 5C 21                       MOVS    R1, #0x5C ; '\' ; blockLength
  406. OVL_168:021E5B68 54 F6 5E FB                 BL      allocateBlockFromExpHeap
  407. OVL_168:021E5B6C 06 1C                       MOVS    R6, R0
  408. OVL_168:021E5B6E 34 1C                       MOVS    R4, R6
  409. OVL_168:021E5B70 0B 23                       MOVS    R3, #0xB
  410. OVL_168:021E5B72
  411. OVL_168:021E5B72             loc_21E5B72                             ; CODE XREF: sub_21E5980+1FCj
  412. OVL_168:021E5B72 01 9A                       LDR     R2, [SP,#0x78+var_74]
  413. OVL_168:021E5B74 5B 1E                       SUBS    R3, R3, #1
  414. OVL_168:021E5B76 03 CA                       LDMIA   R2!, {R0,R1}
  415. OVL_168:021E5B78 01 92                       STR     R2, [SP,#0x78+var_74]
  416. OVL_168:021E5B7A 03 C4                       STMIA   R4!, {R0,R1}
  417. OVL_168:021E5B7C F9 D1                       BNE     loc_21E5B72
  418. OVL_168:021E5B7E 10 1C                       MOVS    R0, R2
  419. OVL_168:021E5B80 00 68                       LDR     R0, [R0]
  420. OVL_168:021E5B82 02 99                       LDR     R1, [SP,#0x78+var_70]
  421. OVL_168:021E5B84 20 60                       STR     R0, [R4]
  422. OVL_168:021E5B86 A8 00                       LSLS    R0, R5, #2
  423. OVL_168:021E5B88 38 18                       ADDS    R0, R7, R0
  424. OVL_168:021E5B8A C0 68                       LDR     R0, [R0,#0xC]
  425. OVL_168:021E5B8C 08 4A                       LDR     R2, =(sub_21E4D60+1)
  426. OVL_168:021E5B8E 33 1C                       MOVS    R3, R6
  427. OVL_168:021E5B90 6A F6 8A FA                 BL      sub_20500A8
  428. OVL_168:021E5B94 00 21                       MOVS    R1, #0
  429. OVL_168:021E5B96 C9 43                       MVNS    R1, R1
  430. OVL_168:021E5B98 88 42                       CMP     R0, R1
  431. OVL_168:021E5B9A 02 D1                       BNE     loc_21E5BA2
  432. OVL_168:021E5B9C 30 1C                       MOVS    R0, R6          ; pBlk
  433. OVL_168:021E5B9E 54 F6 6B FB                 BL      freeBlock
  434. OVL_168:021E5BA2
  435. OVL_168:021E5BA2             loc_21E5BA2                             ; CODE XREF: sub_21E5980:loc_21E59BEj
  436. OVL_168:021E5BA2                                                     ; sub_21E5980+150j ...
  437. OVL_168:021E5BA2 19 B0                       ADD     SP, SP, #0x64
  438. OVL_168:021E5BA4 F0 BD                       POP     {R4-R7,PC}
  439. OVL_168:021E5BA4             ; End of function sub_21E5980
  440. OVL_168:021E5BA4
  441. OVL_168:021E5BA4             ; ---------------------------------------------------------------------------
  442. OVL_168:021E5BA6 C0                          DCB 0xC0 ; +
  443. OVL_168:021E5BA7 46                          DCB 0x46 ; F
  444. OVL_168:021E5BA8             ; int dword_21E5BA8
  445. OVL_168:021E5BA8 0B 1D 00 00 dword_21E5BA8   DCD 0x1D0B              ; DATA XREF: sub_21E5980:loc_21E59CCr
  446. OVL_168:021E5BAC             ; char *off_21E5BAC
  447. OVL_168:021E5BAC B4 41 1F 02 off_21E5BAC     DCD aBtlv_effvm_c       ; DATA XREF: sub_21E5980+4Er
  448. OVL_168:021E5BAC                                                     ; sub_21E5980+166r ...
  449. OVL_168:021E5BAC                                                     ; "btlv_effvm.c"
  450. OVL_168:021E5BB0 61 4D 1E 02 off_21E5BB0     DCD sub_21E4D60+1       ; DATA XREF: sub_21E5980+88r
  451. OVL_168:021E5BB0                                                     ; sub_21E5980+1A8r ...
  452. OVL_168:021E5BB4             ; int dword_21E5BB4
  453. OVL_168:021E5BB4 42 1D 00 00 dword_21E5BB4   DCD 0x1D42              ; DATA XREF: sub_21E5980:loc_21E5AE4r
  454. OVL_168:021E5BB8             ; int dword_21E5BB8
  455. OVL_168:021E5BB8 55 1D 00 00 dword_21E5BB8   DCD 0x1D55              ; DATA XREF: sub_21E5980:loc_21E5B4Cr
  456. OVL_168:021E5BBC FF 7F 00 00 dword_21E5BBC   DCD 0x7FFF              ; DATA XREF: sub_21E5980+1D8r
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement