Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ROM:0052E184 ; =============== S U B R O U T I N E =======================================
- ROM:0052E184
- ROM:0052E184
- ROM:0052E184 Unit__GetExpDestroy ; CODE XREF: map__SequenceBattle__anonymous_namespace__ProcSequence__Grow+598p
- ROM:0052E184
- ROM:0052E184 var_48 = -0x48
- ROM:0052E184 var_44 = -0x44
- ROM:0052E184 var_40 = -0x40
- ROM:0052E184 var_3C = -0x3C
- ROM:0052E184
- ROM:0052E184 STMFD SP!, {R4-R11,LR}
- ROM:0052E188 MOV R5, R0
- ROM:0052E18C SUB SP, SP, #0x24
- ROM:0052E190 MOV R6, R1
- ROM:0052E194 MOV R4, R2
- ROM:0052E198 LDR R7, =word_6D9628
- ROM:0052E19C MOV R8, R3
- ROM:0052E1A0 ADD R9, R7, #0x400
- ROM:0052E1A4 LDR R0, [R7,#(dword_6D994C - 0x6D9628)]
- ROM:0052E1A8 TST R0, #1
- ROM:0052E1AC BNE loc_52E1EC
- ROM:0052E1B0 SUB R0, R9, #0xDC
- ROM:0052E1B4 BLX __cxa_guard_acquire
- ROM:0052E1B8 CMP R0, #0
- ROM:0052E1BC BEQ loc_52E1EC
- ROM:0052E1C0 ADR R0, dword_52E538
- ROM:0052E1C4 BL PrivateSkill__Get
- ROM:0052E1C8 MOV R2, R0
- ROM:0052E1CC MOV R0, #1
- ROM:0052E1D0 LDR R2, [R2]
- ROM:0052E1D4 MOV R1, #0
- ROM:0052E1D8 BL sub_300654
- ROM:0052E1DC ADD R2, R9, #0x268
- ROM:0052E1E0 STMIA R2, {R0,R1}
- ROM:0052E1E4 SUB R0, R9, #0xDC
- ROM:0052E1E8 NOP
- ROM:0052E1EC
- ROM:0052E1EC loc_52E1EC ; CODE XREF: Unit__GetExpDestroy+28j
- ROM:0052E1EC ; Unit__GetExpDestroy+38j
- ROM:0052E1EC LDR R0, [R7,#0x320]
- ROM:0052E1F0 TST R0, #1
- ROM:0052E1F4 BNE loc_52E238
- ROM:0052E1F8 LDR R0, =dword_6D9948
- ROM:0052E1FC BLX __cxa_guard_acquire
- ROM:0052E200 CMP R0, #0
- ROM:0052E204 NOP
- ROM:0052E208 BEQ loc_52E238
- ROM:0052E20C ADR R0, aSpid_mvfjmomTl ; "SPID_撃破経験値×2"
- ROM:0052E210 BL PrivateSkill__Get
- ROM:0052E214 MOV R2, R0
- ROM:0052E218 MOV R0, #1
- ROM:0052E21C LDR R2, [R2]
- ROM:0052E220 MOV R1, #0
- ROM:0052E224 BL sub_300654
- ROM:0052E228 ADD R2, R9, #0x270
- ROM:0052E22C STMIA R2, {R0,R1}
- ROM:0052E230 LDR R0, =dword_6D9948
- ROM:0052E234 NOP
- ROM:0052E238
- ROM:0052E238 loc_52E238 ; CODE XREF: Unit__GetExpDestroy+70j
- ROM:0052E238 ; Unit__GetExpDestroy+84j
- ROM:0052E238 LDR R0, [R7,#0x31C]
- ROM:0052E23C TST R0, #1
- ROM:0052E240 BNE loc_52E284
- ROM:0052E244 LDR R0, =dword_6D9944
- ROM:0052E248 BLX __cxa_guard_acquire
- ROM:0052E24C CMP R0, #0
- ROM:0052E250 NOP
- ROM:0052E254 BEQ loc_52E284
- ROM:0052E258 ADR R0, aSpid_mvfjmom_0 ; "SPID_撃破経験値÷2"
- ROM:0052E25C BL PrivateSkill__Get
- ROM:0052E260 MOV R2, R0
- ROM:0052E264 MOV R0, #1
- ROM:0052E268 LDR R2, [R2]
- ROM:0052E26C MOV R1, #0
- ROM:0052E270 BL sub_300654
- ROM:0052E274 ADD R2, R9, #0x278
- ROM:0052E278 STMIA R2, {R0,R1}
- ROM:0052E27C LDR R0, =dword_6D9944
- ROM:0052E280 NOP
- ROM:0052E284
- ROM:0052E284 loc_52E284 ; CODE XREF: Unit__GetExpDestroy+BCj
- ROM:0052E284 ; Unit__GetExpDestroy+D0j
- ROM:0052E284 LDR R0, [R7,#0x318]
- ROM:0052E288 TST R0, #1
- ROM:0052E28C BNE loc_52E2D0
- ROM:0052E290 LDR R0, =dword_6D9940
- ROM:0052E294 BLX __cxa_guard_acquire
- ROM:0052E298 CMP R0, #0
- ROM:0052E29C NOP
- ROM:0052E2A0 BEQ loc_52E2D0
- ROM:0052E2A4 ADR R0, dword_52E57C
- ROM:0052E2A8 BL PrivateSkill__Get
- ROM:0052E2AC MOV R2, R0
- ROM:0052E2B0 MOV R0, #1
- ROM:0052E2B4 LDR R2, [R2]
- ROM:0052E2B8 MOV R1, #0
- ROM:0052E2BC BL sub_300654
- ROM:0052E2C0 ADD R2, R9, #0x280
- ROM:0052E2C4 STMIA R2, {R0,R1}
- ROM:0052E2C8 LDR R0, =dword_6D9940
- ROM:0052E2CC NOP
- ROM:0052E2D0
- ROM:0052E2D0 loc_52E2D0 ; CODE XREF: Unit__GetExpDestroy+108j
- ROM:0052E2D0 ; Unit__GetExpDestroy+11Cj
- ROM:0052E2D0 MOV R0, R5
- ROM:0052E2D4 BL Unit__GetLevelForCalculateExp
- ROM:0052E2D8 MOV R7, R0
- ROM:0052E2DC MOV R0, R4
- ROM:0052E2E0 BL Unit__GetLevelForCalculateExp
- ROM:0052E2E4 CMP R6, #2
- ROM:0052E2E8 CMPNE R6, #3
- ROM:0052E2EC STR R0, [SP,#0x48+var_44]
- ROM:0052E2F0 BNE loc_52E334
- ROM:0052E2F4 SUB R0, R0, #2
- ROM:0052E2F8 STR R0, [SP,#0x48+var_44]
- ROM:0052E2FC LDR R2, [SP,#0x48+var_44]
- ROM:0052E300 SUB R1, R7, #2
- ROM:0052E304 ADD R0, SP, #0x48+var_40
- ROM:0052E308 CMP R1, R2
- ROM:0052E30C ADDGE R0, SP, #0x48+var_44
- ROM:0052E310 STR R1, [SP,#0x48+var_40]
- ROM:0052E314 LDR R0, [R0]
- ROM:0052E318 CMP R0, #1
- ROM:0052E31C STR R0, [SP,#0x48+var_44]
- ROM:0052E320 MOVLT R0, #1
- ROM:0052E324 BLT loc_52E330
- ROM:0052E328 CMP R0, #0x26
- ROM:0052E32C MOVGT R0, #0x26
- ROM:0052E330
- ROM:0052E330 loc_52E330 ; CODE XREF: Unit__GetExpDestroy+1A0j
- ROM:0052E330 STR R0, [SP,#0x48+var_44]
- ROM:0052E334
- ROM:0052E334 loc_52E334 ; CODE XREF: Unit__GetExpDestroy+16Cj
- ROM:0052E334 MOV R5, R0
- ROM:0052E338 BL GameUserData__Get
- ROM:0052E33C LDRB R0, [R0,#0x2D]
- ROM:0052E340 NOP
- ROM:0052E344 BL ExpTable__GetBattle
- ROM:0052E348 MOV R1, R0
- ROM:0052E34C SUB R0, R5, R7
- ROM:0052E350 ADD R0, R0, #0xA
- ROM:0052E354 CMP R0, #0
- ROM:0052E358 MOVLT R0, #0
- ROM:0052E35C BLT loc_52E368
- ROM:0052E360 CMP R0, #0x21
- ROM:0052E364 MOVGT R0, #0x21
- ROM:0052E368
- ROM:0052E368 loc_52E368 ; CODE XREF: Unit__GetExpDestroy+1D8j
- ROM:0052E368 ADD R0, R0, R1
- ROM:0052E36C LDRSB R0, [R0,#0x24]
- ROM:0052E370 STR R0, [SP,#0x48+var_48]
- ROM:0052E374 BL GameUserData__Get
- ROM:0052E378 LDRB R0, [R0,#0x2D]
- ROM:0052E37C NOP
- ROM:0052E380 BL ExpTable__GetBattleThreshold
- ROM:0052E384 MOV R1, R0
- ROM:0052E388 SUB R0, R5, #0x1F
- ROM:0052E38C CMP R0, #0
- ROM:0052E390 MOVLT R0, #0
- ROM:0052E394 BLT loc_52E3A0
- ROM:0052E398 CMP R0, #9
- ROM:0052E39C MOVGT R0, #9
- ROM:0052E3A0
- ROM:0052E3A0 loc_52E3A0 ; CODE XREF: Unit__GetExpDestroy+210j
- ROM:0052E3A0 ADD R0, R0, R1
- ROM:0052E3A4 LDR R1, [SP,#0x48+var_48]
- ROM:0052E3A8 LDRSB R0, [R0,#0xC]
- ROM:0052E3AC CMP R1, R0
- ROM:0052E3B0 STR R0, [SP,#0x48+var_3C]
- ROM:0052E3B4 ADDLT R0, SP, #0x48+var_3C
- ROM:0052E3B8 MOVGE R0, SP
- ROM:0052E3BC CMP R8, #0
- ROM:0052E3C0 LDR R0, [R0,#0x48+var_48]
- ROM:0052E3C4 STR R0, [SP,#0x48+var_48]
- ROM:0052E3C8 BEQ loc_52E3DC
- ROM:0052E3CC CMP R0, #0x14
- ROM:0052E3D0 ADDLT R1, R0, R0,ASR#1
- ROM:0052E3D4 ADDGE R1, R0, #0xA
- ROM:0052E3D8 STR R1, [SP,#0x48+var_48]
- ROM:0052E3DC
- ROM:0052E3DC loc_52E3DC ; CODE XREF: Unit__GetExpDestroy+244j
- ROM:0052E3DC ADD R3, R9, #0x26C
- ROM:0052E3E0 ADD R1, R9, #0x280
- ROM:0052E3E4 LDMIA R3, {R3,R12}
- ROM:0052E3E8 LDR R5, [R9,#0x274]
- ROM:0052E3EC LDR R7, [R9,#0x268]
- ROM:0052E3F0 LDMIA R1, {R1,R2}
- ROM:0052E3F4 ORR R3, R3, R5
- ROM:0052E3F8 ORR R12, R12, R7
- ROM:0052E3FC ORR R5, R12, R1
- ROM:0052E400 ORR R7, R3, R2
- ROM:0052E404 LDR R3, [R4,#0x9C]
- ROM:0052E408 LDMIA R4, {R8,R12}
- ROM:0052E40C LDRD R10, [R3]
- ROM:0052E410 ORR R3, R8, R10
- ROM:0052E414 LDR R8, [R4,#0xA0]
- ROM:0052E418 ORR R12, R12, R11
- ROM:0052E41C LDR R10, [R8]
- ROM:0052E420 LDR R8, [R8,#4]
- ROM:0052E424 ORR R3, R3, R10
- ROM:0052E428 ORR R12, R12, R8
- ROM:0052E42C AND R3, R3, R5
- ROM:0052E430 AND R12, R12, R7
- ROM:0052E434 ORRS R3, R3, R12
- ROM:0052E438 BEQ loc_52E450
- ROM:0052E43C LDR R3, [SP,#0x48+var_48]
- ROM:0052E440 CMP R0, #0x14
- ROM:0052E444 ADDLT R3, R3, R0
- ROM:0052E448 ADDGE R3, R3, #0x14
- ROM:0052E44C STR R3, [SP,#0x48+var_48]
- ROM:0052E450
- ROM:0052E450 loc_52E450 ; CODE XREF: Unit__GetExpDestroy+2B4j
- ROM:0052E450 LDR R5, [R4,#0x9C]
- ROM:0052E454 LDR R12, [R9,#0x278]!
- ROM:0052E458 LDR R8, [R4]
- ROM:0052E45C LDR R3, [R9,#4]
- ROM:0052E460 LDMIA R5, {R9,R10}
- ROM:0052E464 LDR R7, [R4,#4]
- ROM:0052E468 ORR R5, R8, R9
- ROM:0052E46C LDR R8, [R4,#0xA0]
- ROM:0052E470 ORR R7, R7, R10
- ROM:0052E474 LDR R9, [R8]
- ROM:0052E478 LDR R8, [R8,#4]
- ROM:0052E47C ORR R5, R5, R9
- ROM:0052E480 ORR R7, R7, R8
- ROM:0052E484 AND R12, R12, R5
- ROM:0052E488 AND R3, R3, R7
- ROM:0052E48C ORRS R3, R3, R12
- ROM:0052E490 BEQ loc_52E4AC
- ROM:0052E494 CMP R0, #2
- ROM:0052E498 BLT loc_52E4AC
- ROM:0052E49C LDR R3, [SP,#0x48+var_48]
- ROM:0052E4A0 ADD R0, R0, #1
- ROM:0052E4A4 SUB R0, R3, R0,LSR#1
- ROM:0052E4A8 STR R0, [SP,#0x48+var_48]
- ROM:0052E4AC
- ROM:0052E4AC loc_52E4AC ; CODE XREF: Unit__GetExpDestroy+30Cj
- ROM:0052E4AC ; Unit__GetExpDestroy+314j
- ROM:0052E4AC LDR R0, [R4,#0x9C]
- ROM:0052E4B0 LDR R12, [R4]
- ROM:0052E4B4 LDR R3, [R4,#4]
- ROM:0052E4B8 LDMIA R0, {R5,R7}
- ROM:0052E4BC ORR R0, R12, R5
- ROM:0052E4C0 LDR R12, [R4,#0xA0]
- ROM:0052E4C4 ORR R3, R3, R7
- ROM:0052E4C8 LDMIA R12, {R5,R12}
- ROM:0052E4CC ORR R0, R0, R5
- ROM:0052E4D0 ORR R3, R3, R12
- ROM:0052E4D4 AND R0, R0, R1
- ROM:0052E4D8 AND R1, R3, R2
- ROM:0052E4DC ORRS R0, R0, R1
- ROM:0052E4E0 BEQ loc_52E4F4
- ROM:0052E4E4 LDR R0, [SP,#0x48+var_48]
- ROM:0052E4E8 CMP R0, #0x14
- ROM:0052E4EC MOVLT R0, #0x14
- ROM:0052E4F0 STR R0, [SP,#0x48+var_48]
- ROM:0052E4F4
- ROM:0052E4F4 loc_52E4F4 ; CODE XREF: Unit__GetExpDestroy+35Cj
- ROM:0052E4F4 LDR R2, [SP,#0x48+var_48]
- ROM:0052E4F8 CMP R6, #3
- ROM:0052E4FC MOV R0, R4
- ROM:0052E500 MOVEQ R2, R2,ASR#1
- ROM:0052E504 CMP R0, #0
- ROM:0052E508 BEQ loc_52E524
- ROM:0052E50C CMP R6, #2
- ROM:0052E510 CMPNE R6, #3
- ROM:0052E514 BNE loc_52E524
- ROM:0052E518 BL Unit__GetItemIndexEquipped
- ROM:0052E51C CMP R0, #0
- ROM:0052E520 MOVLT R2, #0
- ROM:0052E524
- ROM:0052E524 loc_52E524 ; CODE XREF: Unit__GetExpDestroy+384j
- ROM:0052E524 ; Unit__GetExpDestroy+390j
- ROM:0052E524 STR R2, [SP,#0x48+var_48]
- ROM:0052E528 ADD SP, SP, #0x24
- ROM:0052E52C MOV R0, R2
- ROM:0052E530 LDMFD SP!, {R4-R11,PC}
- ROM:0052E530 ; End of function Unit__GetExpDestroy
- ROM:0052E530
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement