Advertisement
DeathChaos25

Unit__GetExpDestroy

Dec 12th, 2017
241
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.76 KB | None | 0 0
  1. ROM:0052E184 ; =============== S U B R O U T I N E =======================================
  2. ROM:0052E184
  3. ROM:0052E184
  4. ROM:0052E184 Unit__GetExpDestroy ; CODE XREF: map__SequenceBattle__anonymous_namespace__ProcSequence__Grow+598p
  5. ROM:0052E184
  6. ROM:0052E184 var_48 = -0x48
  7. ROM:0052E184 var_44 = -0x44
  8. ROM:0052E184 var_40 = -0x40
  9. ROM:0052E184 var_3C = -0x3C
  10. ROM:0052E184
  11. ROM:0052E184 STMFD SP!, {R4-R11,LR}
  12. ROM:0052E188 MOV R5, R0
  13. ROM:0052E18C SUB SP, SP, #0x24
  14. ROM:0052E190 MOV R6, R1
  15. ROM:0052E194 MOV R4, R2
  16. ROM:0052E198 LDR R7, =word_6D9628
  17. ROM:0052E19C MOV R8, R3
  18. ROM:0052E1A0 ADD R9, R7, #0x400
  19. ROM:0052E1A4 LDR R0, [R7,#(dword_6D994C - 0x6D9628)]
  20. ROM:0052E1A8 TST R0, #1
  21. ROM:0052E1AC BNE loc_52E1EC
  22. ROM:0052E1B0 SUB R0, R9, #0xDC
  23. ROM:0052E1B4 BLX __cxa_guard_acquire
  24. ROM:0052E1B8 CMP R0, #0
  25. ROM:0052E1BC BEQ loc_52E1EC
  26. ROM:0052E1C0 ADR R0, dword_52E538
  27. ROM:0052E1C4 BL PrivateSkill__Get
  28. ROM:0052E1C8 MOV R2, R0
  29. ROM:0052E1CC MOV R0, #1
  30. ROM:0052E1D0 LDR R2, [R2]
  31. ROM:0052E1D4 MOV R1, #0
  32. ROM:0052E1D8 BL sub_300654
  33. ROM:0052E1DC ADD R2, R9, #0x268
  34. ROM:0052E1E0 STMIA R2, {R0,R1}
  35. ROM:0052E1E4 SUB R0, R9, #0xDC
  36. ROM:0052E1E8 NOP
  37. ROM:0052E1EC
  38. ROM:0052E1EC loc_52E1EC ; CODE XREF: Unit__GetExpDestroy+28j
  39. ROM:0052E1EC ; Unit__GetExpDestroy+38j
  40. ROM:0052E1EC LDR R0, [R7,#0x320]
  41. ROM:0052E1F0 TST R0, #1
  42. ROM:0052E1F4 BNE loc_52E238
  43. ROM:0052E1F8 LDR R0, =dword_6D9948
  44. ROM:0052E1FC BLX __cxa_guard_acquire
  45. ROM:0052E200 CMP R0, #0
  46. ROM:0052E204 NOP
  47. ROM:0052E208 BEQ loc_52E238
  48. ROM:0052E20C ADR R0, aSpid_mvfjmomTl ; "SPID_撃破経験値×2"
  49. ROM:0052E210 BL PrivateSkill__Get
  50. ROM:0052E214 MOV R2, R0
  51. ROM:0052E218 MOV R0, #1
  52. ROM:0052E21C LDR R2, [R2]
  53. ROM:0052E220 MOV R1, #0
  54. ROM:0052E224 BL sub_300654
  55. ROM:0052E228 ADD R2, R9, #0x270
  56. ROM:0052E22C STMIA R2, {R0,R1}
  57. ROM:0052E230 LDR R0, =dword_6D9948
  58. ROM:0052E234 NOP
  59. ROM:0052E238
  60. ROM:0052E238 loc_52E238 ; CODE XREF: Unit__GetExpDestroy+70j
  61. ROM:0052E238 ; Unit__GetExpDestroy+84j
  62. ROM:0052E238 LDR R0, [R7,#0x31C]
  63. ROM:0052E23C TST R0, #1
  64. ROM:0052E240 BNE loc_52E284
  65. ROM:0052E244 LDR R0, =dword_6D9944
  66. ROM:0052E248 BLX __cxa_guard_acquire
  67. ROM:0052E24C CMP R0, #0
  68. ROM:0052E250 NOP
  69. ROM:0052E254 BEQ loc_52E284
  70. ROM:0052E258 ADR R0, aSpid_mvfjmom_0 ; "SPID_撃破経験値÷2"
  71. ROM:0052E25C BL PrivateSkill__Get
  72. ROM:0052E260 MOV R2, R0
  73. ROM:0052E264 MOV R0, #1
  74. ROM:0052E268 LDR R2, [R2]
  75. ROM:0052E26C MOV R1, #0
  76. ROM:0052E270 BL sub_300654
  77. ROM:0052E274 ADD R2, R9, #0x278
  78. ROM:0052E278 STMIA R2, {R0,R1}
  79. ROM:0052E27C LDR R0, =dword_6D9944
  80. ROM:0052E280 NOP
  81. ROM:0052E284
  82. ROM:0052E284 loc_52E284 ; CODE XREF: Unit__GetExpDestroy+BCj
  83. ROM:0052E284 ; Unit__GetExpDestroy+D0j
  84. ROM:0052E284 LDR R0, [R7,#0x318]
  85. ROM:0052E288 TST R0, #1
  86. ROM:0052E28C BNE loc_52E2D0
  87. ROM:0052E290 LDR R0, =dword_6D9940
  88. ROM:0052E294 BLX __cxa_guard_acquire
  89. ROM:0052E298 CMP R0, #0
  90. ROM:0052E29C NOP
  91. ROM:0052E2A0 BEQ loc_52E2D0
  92. ROM:0052E2A4 ADR R0, dword_52E57C
  93. ROM:0052E2A8 BL PrivateSkill__Get
  94. ROM:0052E2AC MOV R2, R0
  95. ROM:0052E2B0 MOV R0, #1
  96. ROM:0052E2B4 LDR R2, [R2]
  97. ROM:0052E2B8 MOV R1, #0
  98. ROM:0052E2BC BL sub_300654
  99. ROM:0052E2C0 ADD R2, R9, #0x280
  100. ROM:0052E2C4 STMIA R2, {R0,R1}
  101. ROM:0052E2C8 LDR R0, =dword_6D9940
  102. ROM:0052E2CC NOP
  103. ROM:0052E2D0
  104. ROM:0052E2D0 loc_52E2D0 ; CODE XREF: Unit__GetExpDestroy+108j
  105. ROM:0052E2D0 ; Unit__GetExpDestroy+11Cj
  106. ROM:0052E2D0 MOV R0, R5
  107. ROM:0052E2D4 BL Unit__GetLevelForCalculateExp
  108. ROM:0052E2D8 MOV R7, R0
  109. ROM:0052E2DC MOV R0, R4
  110. ROM:0052E2E0 BL Unit__GetLevelForCalculateExp
  111. ROM:0052E2E4 CMP R6, #2
  112. ROM:0052E2E8 CMPNE R6, #3
  113. ROM:0052E2EC STR R0, [SP,#0x48+var_44]
  114. ROM:0052E2F0 BNE loc_52E334
  115. ROM:0052E2F4 SUB R0, R0, #2
  116. ROM:0052E2F8 STR R0, [SP,#0x48+var_44]
  117. ROM:0052E2FC LDR R2, [SP,#0x48+var_44]
  118. ROM:0052E300 SUB R1, R7, #2
  119. ROM:0052E304 ADD R0, SP, #0x48+var_40
  120. ROM:0052E308 CMP R1, R2
  121. ROM:0052E30C ADDGE R0, SP, #0x48+var_44
  122. ROM:0052E310 STR R1, [SP,#0x48+var_40]
  123. ROM:0052E314 LDR R0, [R0]
  124. ROM:0052E318 CMP R0, #1
  125. ROM:0052E31C STR R0, [SP,#0x48+var_44]
  126. ROM:0052E320 MOVLT R0, #1
  127. ROM:0052E324 BLT loc_52E330
  128. ROM:0052E328 CMP R0, #0x26
  129. ROM:0052E32C MOVGT R0, #0x26
  130. ROM:0052E330
  131. ROM:0052E330 loc_52E330 ; CODE XREF: Unit__GetExpDestroy+1A0j
  132. ROM:0052E330 STR R0, [SP,#0x48+var_44]
  133. ROM:0052E334
  134. ROM:0052E334 loc_52E334 ; CODE XREF: Unit__GetExpDestroy+16Cj
  135. ROM:0052E334 MOV R5, R0
  136. ROM:0052E338 BL GameUserData__Get
  137. ROM:0052E33C LDRB R0, [R0,#0x2D]
  138. ROM:0052E340 NOP
  139. ROM:0052E344 BL ExpTable__GetBattle
  140. ROM:0052E348 MOV R1, R0
  141. ROM:0052E34C SUB R0, R5, R7
  142. ROM:0052E350 ADD R0, R0, #0xA
  143. ROM:0052E354 CMP R0, #0
  144. ROM:0052E358 MOVLT R0, #0
  145. ROM:0052E35C BLT loc_52E368
  146. ROM:0052E360 CMP R0, #0x21
  147. ROM:0052E364 MOVGT R0, #0x21
  148. ROM:0052E368
  149. ROM:0052E368 loc_52E368 ; CODE XREF: Unit__GetExpDestroy+1D8j
  150. ROM:0052E368 ADD R0, R0, R1
  151. ROM:0052E36C LDRSB R0, [R0,#0x24]
  152. ROM:0052E370 STR R0, [SP,#0x48+var_48]
  153. ROM:0052E374 BL GameUserData__Get
  154. ROM:0052E378 LDRB R0, [R0,#0x2D]
  155. ROM:0052E37C NOP
  156. ROM:0052E380 BL ExpTable__GetBattleThreshold
  157. ROM:0052E384 MOV R1, R0
  158. ROM:0052E388 SUB R0, R5, #0x1F
  159. ROM:0052E38C CMP R0, #0
  160. ROM:0052E390 MOVLT R0, #0
  161. ROM:0052E394 BLT loc_52E3A0
  162. ROM:0052E398 CMP R0, #9
  163. ROM:0052E39C MOVGT R0, #9
  164. ROM:0052E3A0
  165. ROM:0052E3A0 loc_52E3A0 ; CODE XREF: Unit__GetExpDestroy+210j
  166. ROM:0052E3A0 ADD R0, R0, R1
  167. ROM:0052E3A4 LDR R1, [SP,#0x48+var_48]
  168. ROM:0052E3A8 LDRSB R0, [R0,#0xC]
  169. ROM:0052E3AC CMP R1, R0
  170. ROM:0052E3B0 STR R0, [SP,#0x48+var_3C]
  171. ROM:0052E3B4 ADDLT R0, SP, #0x48+var_3C
  172. ROM:0052E3B8 MOVGE R0, SP
  173. ROM:0052E3BC CMP R8, #0
  174. ROM:0052E3C0 LDR R0, [R0,#0x48+var_48]
  175. ROM:0052E3C4 STR R0, [SP,#0x48+var_48]
  176. ROM:0052E3C8 BEQ loc_52E3DC
  177. ROM:0052E3CC CMP R0, #0x14
  178. ROM:0052E3D0 ADDLT R1, R0, R0,ASR#1
  179. ROM:0052E3D4 ADDGE R1, R0, #0xA
  180. ROM:0052E3D8 STR R1, [SP,#0x48+var_48]
  181. ROM:0052E3DC
  182. ROM:0052E3DC loc_52E3DC ; CODE XREF: Unit__GetExpDestroy+244j
  183. ROM:0052E3DC ADD R3, R9, #0x26C
  184. ROM:0052E3E0 ADD R1, R9, #0x280
  185. ROM:0052E3E4 LDMIA R3, {R3,R12}
  186. ROM:0052E3E8 LDR R5, [R9,#0x274]
  187. ROM:0052E3EC LDR R7, [R9,#0x268]
  188. ROM:0052E3F0 LDMIA R1, {R1,R2}
  189. ROM:0052E3F4 ORR R3, R3, R5
  190. ROM:0052E3F8 ORR R12, R12, R7
  191. ROM:0052E3FC ORR R5, R12, R1
  192. ROM:0052E400 ORR R7, R3, R2
  193. ROM:0052E404 LDR R3, [R4,#0x9C]
  194. ROM:0052E408 LDMIA R4, {R8,R12}
  195. ROM:0052E40C LDRD R10, [R3]
  196. ROM:0052E410 ORR R3, R8, R10
  197. ROM:0052E414 LDR R8, [R4,#0xA0]
  198. ROM:0052E418 ORR R12, R12, R11
  199. ROM:0052E41C LDR R10, [R8]
  200. ROM:0052E420 LDR R8, [R8,#4]
  201. ROM:0052E424 ORR R3, R3, R10
  202. ROM:0052E428 ORR R12, R12, R8
  203. ROM:0052E42C AND R3, R3, R5
  204. ROM:0052E430 AND R12, R12, R7
  205. ROM:0052E434 ORRS R3, R3, R12
  206. ROM:0052E438 BEQ loc_52E450
  207. ROM:0052E43C LDR R3, [SP,#0x48+var_48]
  208. ROM:0052E440 CMP R0, #0x14
  209. ROM:0052E444 ADDLT R3, R3, R0
  210. ROM:0052E448 ADDGE R3, R3, #0x14
  211. ROM:0052E44C STR R3, [SP,#0x48+var_48]
  212. ROM:0052E450
  213. ROM:0052E450 loc_52E450 ; CODE XREF: Unit__GetExpDestroy+2B4j
  214. ROM:0052E450 LDR R5, [R4,#0x9C]
  215. ROM:0052E454 LDR R12, [R9,#0x278]!
  216. ROM:0052E458 LDR R8, [R4]
  217. ROM:0052E45C LDR R3, [R9,#4]
  218. ROM:0052E460 LDMIA R5, {R9,R10}
  219. ROM:0052E464 LDR R7, [R4,#4]
  220. ROM:0052E468 ORR R5, R8, R9
  221. ROM:0052E46C LDR R8, [R4,#0xA0]
  222. ROM:0052E470 ORR R7, R7, R10
  223. ROM:0052E474 LDR R9, [R8]
  224. ROM:0052E478 LDR R8, [R8,#4]
  225. ROM:0052E47C ORR R5, R5, R9
  226. ROM:0052E480 ORR R7, R7, R8
  227. ROM:0052E484 AND R12, R12, R5
  228. ROM:0052E488 AND R3, R3, R7
  229. ROM:0052E48C ORRS R3, R3, R12
  230. ROM:0052E490 BEQ loc_52E4AC
  231. ROM:0052E494 CMP R0, #2
  232. ROM:0052E498 BLT loc_52E4AC
  233. ROM:0052E49C LDR R3, [SP,#0x48+var_48]
  234. ROM:0052E4A0 ADD R0, R0, #1
  235. ROM:0052E4A4 SUB R0, R3, R0,LSR#1
  236. ROM:0052E4A8 STR R0, [SP,#0x48+var_48]
  237. ROM:0052E4AC
  238. ROM:0052E4AC loc_52E4AC ; CODE XREF: Unit__GetExpDestroy+30Cj
  239. ROM:0052E4AC ; Unit__GetExpDestroy+314j
  240. ROM:0052E4AC LDR R0, [R4,#0x9C]
  241. ROM:0052E4B0 LDR R12, [R4]
  242. ROM:0052E4B4 LDR R3, [R4,#4]
  243. ROM:0052E4B8 LDMIA R0, {R5,R7}
  244. ROM:0052E4BC ORR R0, R12, R5
  245. ROM:0052E4C0 LDR R12, [R4,#0xA0]
  246. ROM:0052E4C4 ORR R3, R3, R7
  247. ROM:0052E4C8 LDMIA R12, {R5,R12}
  248. ROM:0052E4CC ORR R0, R0, R5
  249. ROM:0052E4D0 ORR R3, R3, R12
  250. ROM:0052E4D4 AND R0, R0, R1
  251. ROM:0052E4D8 AND R1, R3, R2
  252. ROM:0052E4DC ORRS R0, R0, R1
  253. ROM:0052E4E0 BEQ loc_52E4F4
  254. ROM:0052E4E4 LDR R0, [SP,#0x48+var_48]
  255. ROM:0052E4E8 CMP R0, #0x14
  256. ROM:0052E4EC MOVLT R0, #0x14
  257. ROM:0052E4F0 STR R0, [SP,#0x48+var_48]
  258. ROM:0052E4F4
  259. ROM:0052E4F4 loc_52E4F4 ; CODE XREF: Unit__GetExpDestroy+35Cj
  260. ROM:0052E4F4 LDR R2, [SP,#0x48+var_48]
  261. ROM:0052E4F8 CMP R6, #3
  262. ROM:0052E4FC MOV R0, R4
  263. ROM:0052E500 MOVEQ R2, R2,ASR#1
  264. ROM:0052E504 CMP R0, #0
  265. ROM:0052E508 BEQ loc_52E524
  266. ROM:0052E50C CMP R6, #2
  267. ROM:0052E510 CMPNE R6, #3
  268. ROM:0052E514 BNE loc_52E524
  269. ROM:0052E518 BL Unit__GetItemIndexEquipped
  270. ROM:0052E51C CMP R0, #0
  271. ROM:0052E520 MOVLT R2, #0
  272. ROM:0052E524
  273. ROM:0052E524 loc_52E524 ; CODE XREF: Unit__GetExpDestroy+384j
  274. ROM:0052E524 ; Unit__GetExpDestroy+390j
  275. ROM:0052E524 STR R2, [SP,#0x48+var_48]
  276. ROM:0052E528 ADD SP, SP, #0x24
  277. ROM:0052E52C MOV R0, R2
  278. ROM:0052E530 LDMFD SP!, {R4-R11,PC}
  279. ROM:0052E530 ; End of function Unit__GetExpDestroy
  280. ROM:0052E530
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement