diff options
author | Akira Akashi <rubenru09@aol.com> | 2021-08-17 22:58:17 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-17 22:58:17 +0100 |
commit | 10ade922d3bbff121c57fe458e3d4966ca4c8fb9 (patch) | |
tree | b9d9ff0c84ac2fc935edf9ac7e656b3ebb2071fe | |
parent | cb2e82ca484a1ece6fa0e673c1998147fb3a1f7e (diff) | |
parent | 964dca06569f520af325d98b093f50196abb9da3 (diff) |
Merge pull request #449 from tgsm/split-mod20
Split module 20
-rw-r--r-- | arm9/arm9.lsf | 7 | ||||
-rw-r--r-- | arm9/global.inc | 13 | ||||
-rw-r--r-- | arm9/modules/20/asm/mod20_02252440.s | 1245 | ||||
-rw-r--r-- | arm9/modules/20/asm/mod20_02252C5C.s | 1400 | ||||
-rw-r--r-- | arm9/modules/20/asm/mod20_022536F4.s | 682 | ||||
-rw-r--r-- | arm9/modules/20/asm/mod20_02253BA4.s | 808 | ||||
-rw-r--r-- | arm9/modules/20/asm/mod20_02254130.s | 458 | ||||
-rw-r--r-- | arm9/modules/20/asm/mod20_02254420.s | 185 | ||||
-rw-r--r-- | arm9/modules/20/asm/module_20.s | 4748 |
9 files changed, 4797 insertions, 4749 deletions
diff --git a/arm9/arm9.lsf b/arm9/arm9.lsf index ea5e81ad..64944997 100644 --- a/arm9/arm9.lsf +++ b/arm9/arm9.lsf @@ -852,7 +852,12 @@ Overlay MODULE_20 { ##Pokétch## After MODULE_06 - Object module_20.o + Object mod20_02252440.o + Object mod20_02252C5C.o + Object mod20_022536F4.o + Object mod20_02253BA4.o + Object mod20_02254130.o + Object mod20_02254420.o } Overlay MODULE_21 diff --git a/arm9/global.inc b/arm9/global.inc index bb075cdf..f7cf43c0 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -7614,6 +7614,7 @@ .extern MOD20_0225298C .extern MOD20_022529A0 .extern MOD20_022529B4 +.extern MOD20_02252B1C .extern MOD20_02252B28 .extern MOD20_02252B48 .extern MOD20_02252B68 @@ -7625,11 +7626,17 @@ .extern MOD20_02252C38 .extern MOD20_02252C3C .extern MOD20_02252C40 +.extern MOD20_02252C44 +.extern MOD20_02252C5C .extern MOD20_02252D24 .extern MOD20_02252D34 .extern MOD20_02252D7C .extern MOD20_02252DB4 .extern MOD20_02252DEC +.extern MOD20_02252E18 +.extern MOD20_02252E80 +.extern MOD20_02252EA4 +.extern MOD20_02252EB0 .extern MOD20_022536F4 .extern MOD20_02253794 .extern MOD20_022537B8 @@ -7646,10 +7653,14 @@ .extern MOD20_022539C4 .extern MOD20_02253A04 .extern MOD20_02253AA4 +.extern MOD20_02253BA4 +.extern MOD20_02253C4C +.extern MOD20_02253C78 .extern MOD20_02253E74 .extern MOD20_02253F14 .extern MOD20_02253F28 .extern MOD20_02253F44 +.extern MOD20_02253F54 .extern MOD20_02253F64 .extern MOD20_02253F6C .extern MOD20_02253F78 @@ -7662,8 +7673,10 @@ .extern MOD20_02254014 .extern MOD20_02254130 .extern MOD20_02254198 +.extern MOD20_022541B4 .extern MOD20_022542AC .extern MOD20_022542C0 +.extern MOD20_022542CC .extern MOD20_02254420 .extern MOD20_02254460 .extern MOD20_02254488 diff --git a/arm9/modules/20/asm/mod20_02252440.s b/arm9/modules/20/asm/mod20_02252440.s new file mode 100644 index 00000000..1af1ac98 --- /dev/null +++ b/arm9/modules/20/asm/mod20_02252440.s @@ -0,0 +1,1245 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 2, 0 + + thumb_func_start MOD20_02252440 +MOD20_02252440: ; 0x02252440 + ldr r3, _02252444 ; =FUN_02037790 + bx r3 + .align 2, 0 +_02252444: .word FUN_02037790 + thumb_func_end MOD20_02252440 + + thumb_func_start MOD20_02252448 +MOD20_02252448: ; 0x02252448 + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r5, r1, #0 + mov r0, #3 + str r2, [sp] + mov r1, #7 + lsl r2, r0, #0xe + add r7, r3, #0 + bl CreateHeap + mov r0, #3 + mov r1, #8 + lsl r2, r0, #0xe + bl CreateHeap + mov r0, #7 + mov r1, #0x60 + bl AllocFromHeap + add r4, r0, #0 + beq _022524B2 + str r4, [r5] + ldr r0, [sp] + str r6, [r4, #0x5c] + str r0, [r4, #0x54] + bl Sav2_Poketch_get + str r0, [r4, #0x58] + ldr r0, [sp, #0x18] + str r7, [r4, #0x4c] + str r0, [r4, #0x50] + add r0, r4, #0 + bl MOD20_0225253C + cmp r0, #0 + beq _022524B2 + bl FUN_0201CC08 + mov r0, #4 + bl FUN_0201CC24 + ldr r0, _022524B4 ; =MOD20_022525F0 + str r5, [r4, #0x34] + add r1, r4, #0 + mov r2, #4 + bl FUN_0200CA44 + str r0, [r4, #0x38] + ldr r0, _022524B8 ; =MOD20_0225259C + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA44 +_022524B2: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_022524B4: .word MOD20_022525F0 +_022524B8: .word MOD20_0225259C + thumb_func_end MOD20_02252448 + + thumb_func_start MOD20_022524BC +MOD20_022524BC: ; 0x022524BC + push {r3, lr} + ldrb r1, [r0] + cmp r1, #3 + beq _022524CE + cmp r1, #4 + beq _022524CE + mov r1, #3 + bl MOD20_022525F8 +_022524CE: + pop {r3, pc} + thumb_func_end MOD20_022524BC + + thumb_func_start MOD20_022524D0 +MOD20_022524D0: ; 0x022524D0 + cmp r0, #0 + bne _022524D8 + mov r0, #1 + bx lr +_022524D8: + mov r0, #0 + bx lr + thumb_func_end MOD20_022524D0 + + thumb_func_start MOD20_022524DC +MOD20_022524DC: ; 0x022524DC + push {r4, lr} + add r4, r0, #0 + cmp r1, #5 + bhi _0225252E + add r0, r1, r1 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022524F0: ; jump table + .short _0225252E - _022524F0 - 2 ; case 0 + .short _022524FC - _022524F0 - 2 ; case 1 + .short _0225252E - _022524F0 - 2 ; case 2 + .short _0225252E - _022524F0 - 2 ; case 3 + .short _0225251E - _022524F0 - 2 ; case 4 + .short _02252502 - _022524F0 - 2 ; case 5 +_022524FC: + mov r0, #1 + strb r0, [r4, #4] + pop {r4, pc} +_02252502: + ldr r0, [r4, #0x58] + bl Sav2_Poketch_GetStepCounter + add r1, r0, #1 + ldr r0, _02252530 ; =0x0001869F + cmp r1, r0 + bls _02252512 + mov r1, #0 +_02252512: + ldr r0, [r4, #0x58] + bl Sav2_Poketch_SetStepCounter + mov r0, #1 + strb r0, [r4, #7] + pop {r4, pc} +_0225251E: + ldrb r0, [r4, #2] + cmp r0, #2 + bne _0225252E + ldr r1, [r4, #0x44] + cmp r1, #0 + beq _0225252E + ldr r0, [r4, #0x48] + blx r1 +_0225252E: + pop {r4, pc} + .align 2, 0 +_02252530: .word 0x0001869F + thumb_func_end MOD20_022524DC + + thumb_func_start MOD20_02252534 +MOD20_02252534: ; 0x02252534 + ldrb r0, [r0, #3] + bx lr + thumb_func_end MOD20_02252534 + + thumb_func_start MOD20_02252538 +MOD20_02252538: ; 0x02252538 + ldr r0, [r0, #0x14] + bx lr + thumb_func_end MOD20_02252538 + + thumb_func_start MOD20_0225253C +MOD20_0225253C: ; 0x0225253C + push {r4, lr} + add r4, r0, #0 + add r1, r4, #0 + ldr r2, [r4, #0x50] + add r0, #0x1c + add r1, #0x20 + add r3, r4, #0 + bl MOD20_02252C5C + cmp r0, #0 + beq _02252578 + mov r1, #0 + strb r1, [r4] + strb r1, [r4, #1] + strb r1, [r4, #3] + strb r1, [r4, #4] + strb r1, [r4, #7] + strb r1, [r4, #5] + strb r1, [r4, #6] + sub r0, r1, #1 + str r0, [r4, #0x14] + strb r1, [r4, #2] + add r0, r4, #0 + str r1, [r4, #8] + bl MOD20_022529C4 + cmp r0, #0 + beq _02252578 + mov r0, #1 + pop {r4, pc} +_02252578: + mov r0, #0 + pop {r4, pc} + thumb_func_end MOD20_0225253C + + thumb_func_start MOD20_0225257C +MOD20_0225257C: ; 0x0225257C + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #0x38] + bl FUN_0200CAB4 + add r0, r4, #0 + bl MOD20_02252A08 + add r0, r4, #0 + bl ClosePoketchApp + ldr r0, [r4, #0x1c] + bl MOD20_02252E18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD20_0225257C + + thumb_func_start MOD20_0225259C +MOD20_0225259C: ; 0x0225259C + push {r3, r4, r5, lr} + add r4, r1, #0 + add r5, r0, #0 + ldrb r0, [r4] + cmp r0, #4 + bhs _022525C0 + cmp r0, #0 + beq _022525B2 + add r0, r4, #0 + bl MOD20_02252A14 +_022525B2: + ldrb r1, [r4] + add r0, r4, #0 + lsl r2, r1, #2 + ldr r1, _022525EC ; =MOD20_022544CC + ldr r1, [r1, r2] + blx r1 + pop {r3, r4, r5, pc} +_022525C0: + beq _022525C6 + bl GF_AssertFail +_022525C6: + ldr r0, [r4, #0x34] + mov r1, #0 + str r1, [r0] + add r0, r4, #0 + bl MOD20_0225257C + add r0, r4, #0 + bl FreeToHeap + add r0, r5, #0 + bl FUN_0200CAB4 + mov r0, #7 + bl DestroyHeap + mov r0, #8 + bl DestroyHeap + pop {r3, r4, r5, pc} + .align 2, 0 +_022525EC: .word MOD20_022544CC + thumb_func_end MOD20_0225259C + + thumb_func_start MOD20_022525F0 +MOD20_022525F0: ; 0x022525F0 + mov r0, #0 + strb r0, [r1, #4] + strb r0, [r1, #7] + bx lr + thumb_func_end MOD20_022525F0 + + thumb_func_start MOD20_022525F8 +MOD20_022525F8: ; 0x022525F8 + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + thumb_func_end MOD20_022525F8 + + thumb_func_start MOD20_02252600 +MOD20_02252600: ; 0x02252600 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldrb r1, [r4, #1] + cmp r1, #3 + bhi _02252684 + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02252616: ; jump table + .short _0225261E - _02252616 - 2 ; case 0 + .short _0225262E - _02252616 - 2 ; case 1 + .short _0225265A - _02252616 - 2 ; case 2 + .short _02252670 - _02252616 - 2 ; case 3 +_0225261E: + ldr r0, [r4, #0x1c] + mov r1, #0 + bl MOD20_02252E80 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + pop {r3, r4, r5, pc} +_0225262E: + ldr r0, [r4, #0x1c] + mov r1, #0 + bl MOD20_02252EA4 + cmp r0, #0 + beq _02252684 + ldr r0, [r4, #0x58] + bl Sav2_Poketch_GetSelectedApp + add r5, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + bl LoadPoketchApp + add r0, r4, #0 + add r1, r5, #0 + bl MOD20_02252918 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + pop {r3, r4, r5, pc} +_0225265A: + bl MOD20_0225293C + cmp r0, #0 + beq _02252684 + ldr r0, [r4, #0x1c] + mov r1, #1 + bl MOD20_02252E80 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] +_02252670: + ldr r0, [r4, #0x1c] + mov r1, #1 + bl MOD20_02252EA4 + cmp r0, #0 + beq _02252684 + add r0, r4, #0 + mov r1, #1 + bl MOD20_022525F8 +_02252684: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD20_02252600 + + thumb_func_start MOD20_02252688 +MOD20_02252688: ; 0x02252688 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #1] + cmp r1, #4 + bls _02252694 + b _022527AA +_02252694: + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_022526A0: ; jump table + .short _022526AA - _022526A0 - 2 ; case 0 + .short _022526D4 - _022526A0 - 2 ; case 1 + .short _0225271A - _022526A0 - 2 ; case 2 + .short _02252750 - _022526A0 - 2 ; case 3 + .short _0225276C - _022526A0 - 2 ; case 4 +_022526AA: + bl MOD20_02252C08 + cmp r0, #0 + bne _022527AA + ldr r0, [r4, #8] + cmp r0, #3 + beq _022526BC + cmp r0, #5 + bne _022527AA +_022526BC: + mov r0, #0 + str r0, [r4, #0xc] + mov r0, #1 + strb r0, [r4, #5] + ldr r0, [r4, #0x1c] + mov r1, #4 + bl MOD20_02252E80 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + pop {r4, pc} +_022526D4: + ldr r0, [r4, #8] + cmp r0, #3 + beq _022526DE + cmp r0, #5 + bne _022526E2 +_022526DE: + mov r0, #1 + str r0, [r4, #0xc] +_022526E2: + ldr r0, [r4, #0x1c] + bl MOD20_02252EB0 + cmp r0, #0 + beq _022527AA + ldr r0, [r4, #0x58] + bl Sav2_Poketch_CycleNextApp + str r0, [r4, #0x20] + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _02252710 + ldr r0, [r4, #0x1c] + mov r1, #9 + bl MOD20_02252E80 + mov r0, #0x1e + str r0, [r4, #0x10] + mov r0, #0 + str r0, [r4, #0xc] + mov r0, #4 + strb r0, [r4, #1] + pop {r4, pc} +_02252710: + mov r0, #3 + str r0, [r4, #0x10] + mov r0, #2 + strb r0, [r4, #1] + pop {r4, pc} +_0225271A: + ldr r1, [r4, #8] + cmp r1, #3 + beq _02252724 + cmp r1, #5 + bne _0225273A +_02252724: + ldr r0, [r4, #0x1c] + mov r1, #9 + bl MOD20_02252E80 + mov r0, #0x1e + str r0, [r4, #0x10] + mov r0, #0 + str r0, [r4, #0xc] + mov r0, #4 + strb r0, [r4, #1] + pop {r4, pc} +_0225273A: + ldr r1, [r4, #0x10] + cmp r1, #0 + beq _02252746 + sub r0, r1, #1 + str r0, [r4, #0x10] + pop {r4, pc} +_02252746: + bl MOD20_0225294C + mov r0, #3 + strb r0, [r4, #1] + pop {r4, pc} +_02252750: + bl MOD20_02252968 + cmp r0, #0 + beq _022527AA + add r0, r4, #0 + bl ClosePoketchApp + bl FUN_020893E0 + add r0, r4, #0 + mov r1, #2 + bl MOD20_022525F8 + pop {r4, pc} +_0225276C: + ldr r0, [r4, #8] + cmp r0, #3 + beq _02252776 + cmp r0, #5 + bne _0225278C +_02252776: + ldr r0, [r4, #0x58] + bl Sav2_Poketch_CycleNextApp + str r0, [r4, #0x20] + mov r0, #0x1e + str r0, [r4, #0x10] + ldr r0, [r4, #0x1c] + mov r1, #0xa + bl MOD20_02252E80 + pop {r4, pc} +_0225278C: + ldr r0, [r4, #0x10] + cmp r0, #0 + beq _02252798 + sub r0, r0, #1 + str r0, [r4, #0x10] + pop {r4, pc} +_02252798: + ldr r0, [r4, #0x1c] + mov r1, #0xb + bl MOD20_02252E80 + add r0, r4, #0 + bl MOD20_0225294C + mov r0, #3 + strb r0, [r4, #1] +_022527AA: + pop {r4, pc} + thumb_func_end MOD20_02252688 + + thumb_func_start MOD20_022527AC +MOD20_022527AC: ; 0x022527AC + push {r3, r4, r5, lr} + add r4, r0, #0 + ldrb r1, [r4, #1] + cmp r1, #0 + beq _022527C0 + cmp r1, #1 + beq _022527E4 + cmp r1, #2 + beq _022527FC + pop {r3, r4, r5, pc} +_022527C0: + mov r0, #1 + strb r0, [r4, #6] + ldr r0, [r4, #0x58] + bl Sav2_Poketch_GetSelectedApp + add r5, r0, #0 + add r0, r4, #0 + add r1, r5, #0 + bl LoadPoketchApp + add r0, r4, #0 + add r1, r5, #0 + bl MOD20_02252918 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + pop {r3, r4, r5, pc} +_022527E4: + bl MOD20_0225293C + cmp r0, #0 + beq _02252816 + ldr r0, [r4, #0x1c] + mov r1, #2 + bl MOD20_02252E80 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + pop {r3, r4, r5, pc} +_022527FC: + ldr r0, [r4, #0x1c] + mov r1, #2 + bl MOD20_02252EA4 + cmp r0, #0 + beq _02252816 + mov r0, #0 + strb r0, [r4, #5] + strb r0, [r4, #6] + add r0, r4, #0 + mov r1, #1 + bl MOD20_022525F8 +_02252816: + pop {r3, r4, r5, pc} + thumb_func_end MOD20_022527AC + + thumb_func_start MOD20_02252818 +MOD20_02252818: ; 0x02252818 + push {r4, lr} + add r4, r0, #0 + ldrb r1, [r4, #1] + cmp r1, #3 + bhi _022528AC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_0225282E: ; jump table + .short _02252836 - _0225282E - 2 ; case 0 + .short _02252866 - _0225282E - 2 ; case 1 + .short _0225287A - _0225282E - 2 ; case 2 + .short _02252890 - _0225282E - 2 ; case 3 +_02252836: + ldrb r1, [r4, #2] + cmp r1, #3 + bhi _022528AC + add r1, r1, r1 + add r1, pc + ldrh r1, [r1, #6] + lsl r1, r1, #0x10 + asr r1, r1, #0x10 + add pc, r1 +_02252848: ; jump table + .short _02252860 - _02252848 - 2 ; case 0 + .short _02252850 - _02252848 - 2 ; case 1 + .short _02252856 - _02252848 - 2 ; case 2 + .short _02252860 - _02252848 - 2 ; case 3 +_02252850: + mov r0, #1 + strb r0, [r4, #1] + pop {r4, pc} +_02252856: + bl MOD20_0225294C + mov r0, #2 + strb r0, [r4, #1] + pop {r4, pc} +_02252860: + mov r0, #2 + strb r0, [r4, #1] + pop {r4, pc} +_02252866: + bl MOD20_0225293C + cmp r0, #0 + beq _022528AC + add r0, r4, #0 + bl MOD20_0225294C + mov r0, #2 + strb r0, [r4, #1] + pop {r4, pc} +_0225287A: + bl MOD20_02252968 + cmp r0, #0 + beq _022528AC + ldr r0, [r4, #0x1c] + mov r1, #0xe + bl MOD20_02252E80 + mov r0, #3 + strb r0, [r4, #1] + pop {r4, pc} +_02252890: + ldr r0, [r4, #0x1c] + bl MOD20_02252EB0 + cmp r0, #0 + beq _022528AC + add r0, r4, #0 + bl ClosePoketchApp + bl FUN_0201CD04 + add r0, r4, #0 + mov r1, #4 + bl MOD20_022525F8 +_022528AC: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD20_02252818 + + thumb_func_start LoadPoketchApp +LoadPoketchApp: ; 0x022528B0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + bmi _022528BC + cmp r4, #0x19 + blo _022528C0 +_022528BC: + bl GF_AssertFail +_022528C0: + mov r0, #0 + ldr r1, [r5, #0x14] + mvn r0, r0 + cmp r1, r0 + bne _022528F0 + ldr r2, _022528F4 ; =sPoketchAppOverlayMapping + mov r1, #0 +_022528CE: + ldr r0, [r2] + cmp r4, r0 + bne _022528E8 + ldr r0, _022528F8 ; =sPoketchAppOverlayMapping + 4 + lsl r1, r1, #3 + ldr r6, [r0, r1] + mov r1, #2 + add r0, r6, #0 + bl HandleLoadOverlay + str r4, [r5, #0x14] + str r6, [r5, #0x18] + pop {r4, r5, r6, pc} +_022528E8: + add r1, r1, #1 + add r2, #8 + cmp r1, #0x19 + blo _022528CE +_022528F0: + pop {r4, r5, r6, pc} + nop +_022528F4: .word sPoketchAppOverlayMapping +_022528F8: .word sPoketchAppOverlayMapping + 4 + thumb_func_end LoadPoketchApp + + thumb_func_start ClosePoketchApp +ClosePoketchApp: ; 0x022528FC + push {r4, lr} + add r4, r0, #0 + mov r0, #0 + ldr r1, [r4, #0x14] + mvn r0, r0 + cmp r1, r0 + beq _02252916 + ldr r0, [r4, #0x18] + bl UnloadOverlayByID + mov r0, #0 + mvn r0, r0 + str r0, [r4, #0x14] +_02252916: + pop {r4, pc} + thumb_func_end ClosePoketchApp + + thumb_func_start MOD20_02252918 +MOD20_02252918: ; 0x02252918 + push {r3, r4, r5, lr} + add r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #0 + beq _02252926 + bl GF_AssertFail +_02252926: + add r0, r4, #0 + ldr r2, [r4, #0x4c] + ldr r3, [r4, #0x14] + ldr r5, [r4, #0x3c] + add r0, #0x24 + add r1, r4, #0 + blx r5 + mov r0, #1 + strb r0, [r4, #2] + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD20_02252918 + + thumb_func_start MOD20_0225293C +MOD20_0225293C: ; 0x0225293C + ldrb r0, [r0, #2] + cmp r0, #2 + bne _02252946 + mov r0, #1 + bx lr +_02252946: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD20_0225293C + + thumb_func_start MOD20_0225294C +MOD20_0225294C: ; 0x0225294C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #2 + beq _0225295A + bl GF_AssertFail +_0225295A: + ldr r0, [r4, #0x24] + ldr r1, [r4, #0x40] + blx r1 + mov r0, #3 + strb r0, [r4, #2] + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD20_0225294C + + thumb_func_start MOD20_02252968 +MOD20_02252968: ; 0x02252968 + ldrb r0, [r0, #2] + cmp r0, #0 + bne _02252972 + mov r0, #1 + bx lr +_02252972: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD20_02252968 + + thumb_func_start Poketch_InitApp +Poketch_InitApp: ; 0x02252978 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_02252440 + str r5, [r0, #0x3c] + str r4, [r0, #0x40] + mov r1, #0 + str r1, [r0, #0x44] + pop {r3, r4, r5, pc} + thumb_func_end Poketch_InitApp + + thumb_func_start MOD20_0225298C +MOD20_0225298C: ; 0x0225298C + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #1 + beq _0225299A + bl GF_AssertFail +_0225299A: + mov r0, #2 + strb r0, [r4, #2] + pop {r4, pc} + thumb_func_end MOD20_0225298C + + thumb_func_start MOD20_022529A0 +MOD20_022529A0: ; 0x022529A0 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #2] + cmp r0, #3 + beq _022529AE + bl GF_AssertFail +_022529AE: + mov r0, #0 + strb r0, [r4, #2] + pop {r4, pc} + thumb_func_end MOD20_022529A0 + + thumb_func_start MOD20_022529B4 +MOD20_022529B4: ; 0x022529B4 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_02252440 + str r5, [r0, #0x44] + str r4, [r0, #0x48] + pop {r3, r4, r5, pc} + thumb_func_end MOD20_022529B4 + + thumb_func_start MOD20_022529C4 +MOD20_022529C4: ; 0x022529C4 + push {r3, r4, lr} + sub sp, #4 + add r4, r0, #0 + mov r0, #7 + str r0, [sp] + ldr r0, _02252A00 ; =MOD20_022544C4 + ldr r2, _02252A04 ; =MOD20_02252A24 + mov r1, #2 + add r3, r4, #0 + bl MOD20_02254130 + str r0, [r4, #0x28] + cmp r0, #0 + beq _022529F8 + mov r1, #0 + add r2, r1, #0 + mov r3, #7 + bl MOD20_022542AC + mov r0, #0 + mvn r0, r0 + str r0, [r4, #0x2c] + str r0, [r4, #0x30] + add sp, #4 + mov r0, #1 + pop {r3, r4, pc} +_022529F8: + mov r0, #0 + add sp, #4 + pop {r3, r4, pc} + nop +_02252A00: .word MOD20_022544C4 +_02252A04: .word MOD20_02252A24 + thumb_func_end MOD20_022529C4 + + thumb_func_start MOD20_02252A08 +MOD20_02252A08: ; 0x02252A08 + ldr r3, _02252A10 ; =MOD20_02254198 + ldr r0, [r0, #0x28] + bx r3 + nop +_02252A10: .word MOD20_02254198 + thumb_func_end MOD20_02252A08 + + thumb_func_start MOD20_02252A14 +MOD20_02252A14: ; 0x02252A14 + ldr r3, _02252A20 ; =MOD20_022541B4 + mov r1, #0 + str r1, [r0, #8] + ldr r0, [r0, #0x28] + bx r3 + nop +_02252A20: .word MOD20_022541B4 + thumb_func_end MOD20_02252A14 + + thumb_func_start MOD20_02252A24 +MOD20_02252A24: ; 0x02252A24 + push {r3, r4, r5, r6, r7, lr} + add r5, r3, #0 + add r4, r0, #0 + add r0, r5, #0 + add r6, r1, #0 + add r7, r2, #0 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252A4C + cmp r7, #0 + beq _02252A46 + cmp r7, #1 + bne _02252A50 + mov r0, #1 + strb r0, [r5, #3] + b _02252A50 +_02252A46: + mov r0, #0 + strb r0, [r5, #3] + b _02252A50 +_02252A4C: + mov r0, #0 + strb r0, [r5, #3] +_02252A50: + cmp r4, #1 + bne _02252A6A + add r0, r5, #0 + bl MOD20_02252C08 + cmp r0, #0 + beq _02252AEA + cmp r7, #1 + bne _02252AEA + ldr r0, _02252AEC ; =0x0000066E + bl PlaySE + pop {r3, r4, r5, r6, r7, pc} +_02252A6A: + mov r4, #0 + mvn r4, r4 + cmp r7, #0 + beq _02252A78 + cmp r7, #1 + beq _02252A7C + b _02252A94 +_02252A78: + mov r4, #8 + b _02252A94 +_02252A7C: + add r0, r5, #0 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252A8C + ldrb r0, [r5, #6] + cmp r0, #0 + beq _02252A92 +_02252A8C: + mov r4, #6 + mov r6, #0 + b _02252A94 +_02252A92: + mov r4, #7 +_02252A94: + mov r0, #0 + ldr r1, [r5, #0x2c] + mvn r0, r0 + cmp r1, r0 + beq _02252AA4 + add r0, r4, #0 + add r4, r1, #0 + str r0, [r5, #0x2c] +_02252AA4: + mov r0, #0 + mvn r0, r0 + cmp r4, r0 + beq _02252AC0 + ldr r0, [r5, #0x1c] + add r1, r4, #0 + bl MOD20_02252AF0 + cmp r0, #0 + beq _02252AC0 + sub r0, r4, #6 + cmp r0, #1 + bhi _02252AC0 + str r4, [r5, #0x30] +_02252AC0: + cmp r6, #2 + beq _02252AE0 + cmp r6, #3 + beq _02252AD6 + cmp r6, #5 + bne _02252AE8 + ldr r0, [r5, #0x28] + mov r1, #0 + bl MOD20_022542CC + b _02252AE8 +_02252AD6: + ldr r0, [r5, #0x30] + cmp r0, #6 + bne _02252AE8 + mov r6, #0 + b _02252AE8 +_02252AE0: + ldr r0, [r5, #0x30] + cmp r0, #7 + bne _02252AE8 + mov r6, #3 +_02252AE8: + str r6, [r5, #8] +_02252AEA: + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02252AEC: .word 0x0000066E + thumb_func_end MOD20_02252A24 + + thumb_func_start MOD20_02252AF0 +MOD20_02252AF0: ; 0x02252AF0 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r4, #0 +_02252AF8: + add r0, r5, #0 + add r1, r6, #0 + bl MOD20_02252EA4 + cmp r0, #0 + bne _02252B08 + mov r0, #0 + pop {r4, r5, r6, pc} +_02252B08: + add r4, r4, #1 + cmp r4, #3 + blo _02252AF8 + add r0, r5, #0 + add r1, r6, #0 + bl MOD20_02252E80 + mov r0, #1 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD20_02252AF0 + + thumb_func_start MOD20_02252B1C +MOD20_02252B1C: ; 0x02252B1C + push {r3, lr} + bl MOD20_02252440 + ldr r0, [r0, #0x1c] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD20_02252B1C + + thumb_func_start MOD20_02252B28 +MOD20_02252B28: ; 0x02252B28 + push {r4, lr} + add r4, r0, #0 + bl MOD20_02252440 + ldrb r1, [r0, #5] + cmp r1, #0 + bne _02252B46 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252B46 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl PlaySE +_02252B46: + pop {r4, pc} + thumb_func_end MOD20_02252B28 + + thumb_func_start MOD20_02252B48 +MOD20_02252B48: ; 0x02252B48 + push {r4, lr} + add r4, r0, #0 + bl MOD20_02252440 + ldrb r1, [r0, #5] + cmp r1, #0 + bne _02252B66 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252B66 + lsl r0, r4, #0x10 + lsr r0, r0, #0x10 + bl FUN_02005578 +_02252B66: + pop {r4, pc} + thumb_func_end MOD20_02252B48 + + thumb_func_start MOD20_02252B68 +MOD20_02252B68: ; 0x02252B68 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_02252440 + ldrb r1, [r0, #5] + cmp r1, #0 + bne _02252BB4 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252BB4 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_02020AB0 + cmp r0, #0 + beq _02252BB4 + ldr r0, [r5] + sub r0, #0x10 + cmp r0, #0xbf + bhs _02252B98 + mov r1, #1 + b _02252B9A +_02252B98: + mov r1, #0 +_02252B9A: + ldr r0, [r4] + sub r0, #0x10 + cmp r0, #0x9f + bhs _02252BA6 + mov r0, #1 + b _02252BA8 +_02252BA6: + mov r0, #0 +_02252BA8: + tst r0, r1 + beq _02252BB0 + mov r0, #1 + pop {r3, r4, r5, pc} +_02252BB0: + mov r0, #0 + pop {r3, r4, r5, pc} +_02252BB4: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02252B68 + + thumb_func_start MOD20_02252BB8 +MOD20_02252BB8: ; 0x02252BB8 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_02252440 + ldrb r1, [r0, #5] + cmp r1, #0 + bne _02252C04 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252C04 + add r0, r5, #0 + add r1, r4, #0 + bl FUN_02020ACC + cmp r0, #0 + beq _02252C04 + ldr r0, [r5] + sub r0, #0x10 + cmp r0, #0xbf + bhs _02252BE8 + mov r1, #1 + b _02252BEA +_02252BE8: + mov r1, #0 +_02252BEA: + ldr r0, [r4] + sub r0, #0x10 + cmp r0, #0x9f + bhs _02252BF6 + mov r0, #1 + b _02252BF8 +_02252BF6: + mov r0, #0 +_02252BF8: + tst r0, r1 + beq _02252C00 + mov r0, #1 + pop {r3, r4, r5, pc} +_02252C00: + mov r0, #0 + pop {r3, r4, r5, pc} +_02252C04: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02252BB8 + + thumb_func_start MOD20_02252C08 +MOD20_02252C08: ; 0x02252C08 + ldr r3, _02252C10 ; =FUN_0204646C + ldr r0, [r0, #0x5c] + bx r3 + nop +_02252C10: .word FUN_0204646C + thumb_func_end MOD20_02252C08 + + thumb_func_start MOD20_02252C14 +MOD20_02252C14: ; 0x02252C14 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_02252C08 + cmp r0, #0 + bne _02252C2E + ldrb r0, [r5, #5] + cmp r0, #0 + bne _02252C2E + add r0, r4, #0 + bl MOD20_022541B4 +_02252C2E: + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02252C14 + + thumb_func_start MOD20_02252C30 +MOD20_02252C30: ; 0x02252C30 + ldrb r0, [r0, #4] + bx lr + thumb_func_end MOD20_02252C30 + + thumb_func_start MOD20_02252C34 +MOD20_02252C34: ; 0x02252C34 + ldrb r0, [r0, #7] + bx lr + thumb_func_end MOD20_02252C34 + + thumb_func_start MOD20_02252C38 +MOD20_02252C38: ; 0x02252C38 + ldr r0, [r0, #0x5c] + bx lr + thumb_func_end MOD20_02252C38 + + thumb_func_start MOD20_02252C3C +MOD20_02252C3C: ; 0x02252C3C + ldr r0, [r0, #0x58] + bx lr + thumb_func_end MOD20_02252C3C + + thumb_func_start MOD20_02252C40 +MOD20_02252C40: ; 0x02252C40 + ldr r0, [r0, #0x54] + bx lr + thumb_func_end MOD20_02252C40 + + thumb_func_start MOD20_02252C44 +MOD20_02252C44: ; 0x02252C44 + push {r3, lr} + ldr r0, [r0, #0x54] + bl Sav2_PlayerData_GetProfileAddr + bl PlayerProfile_GetTrainerGender + cmp r0, #1 + beq _02252C58 + mov r0, #1 + pop {r3, pc} +_02252C58: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD20_02252C44 + + .section .rodata + + .global MOD20_022544C4 +MOD20_022544C4: ; 0x022544C4 + .byte 0x60, 0xAC, 0xDC, 0xF4, 0x10, 0xAF, 0x10, 0xCF + + .global MOD20_022544CC +MOD20_022544CC: ; 0x022544CC + .word MOD20_02252600, MOD20_02252688, MOD20_022527AC, MOD20_02252818 + + .global sPoketchAppOverlayMapping +sPoketchAppOverlayMapping: ; 0x022544DC + .word 0, SDK_OVERLAY_MODULE_21_ID + .word 23, SDK_OVERLAY_MODULE_22_ID + .word 1, SDK_OVERLAY_MODULE_23_ID + .word 2, SDK_OVERLAY_MODULE_24_ID + .word 11, SDK_OVERLAY_MODULE_25_ID + .word 17, SDK_OVERLAY_MODULE_26_ID + .word 4, SDK_OVERLAY_MODULE_27_ID + .word 5, SDK_OVERLAY_MODULE_28_ID + .word 6, SDK_OVERLAY_MODULE_29_ID + .word 10, SDK_OVERLAY_MODULE_30_ID + .word 3, SDK_OVERLAY_MODULE_31_ID + .word 8, SDK_OVERLAY_MODULE_35_ID + .word 18, SDK_OVERLAY_MODULE_36_ID + .word 14, SDK_OVERLAY_MODULE_37_ID + .word 15, SDK_OVERLAY_MODULE_38_ID + .word 22, SDK_OVERLAY_MODULE_39_ID + .word 24, SDK_OVERLAY_MODULE_40_ID + .word 20, SDK_OVERLAY_MODULE_41_ID + .word 12, SDK_OVERLAY_MODULE_42_ID + .word 7, SDK_OVERLAY_MODULE_43_ID + .word 21, SDK_OVERLAY_MODULE_44_ID + .word 16, SDK_OVERLAY_MODULE_45_ID + .word 13, SDK_OVERLAY_MODULE_47_ID + .word 19, SDK_OVERLAY_MODULE_48_ID + .word 9, SDK_OVERLAY_MODULE_49_ID + diff --git a/arm9/modules/20/asm/mod20_02252C5C.s b/arm9/modules/20/asm/mod20_02252C5C.s new file mode 100644 index 00000000..6cd2ee2e --- /dev/null +++ b/arm9/modules/20/asm/mod20_02252C5C.s @@ -0,0 +1,1400 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 2, 0 + + thumb_func_start MOD20_02252C5C +MOD20_02252C5C: ; 0x02252C5C + push {r3, r4, r5, r6, r7, lr} + add r6, r1, #0 + mov r1, #0xea + add r5, r0, #0 + mov r0, #7 + lsl r1, r1, #2 + add r7, r2, #0 + str r3, [sp] + bl AllocFromHeap + str r0, [r5] + add r4, r0, #0 + beq _02252D0A + mov r0, #0x15 + lsl r0, r0, #4 + str r7, [r4, r0] + ldr r0, [r4, r0] + bl NNS_G2dResetOamManagerBuffer + mov r0, #0x15 + lsl r0, r0, #4 + ldr r0, [r4, r0] + mov r1, #7 + bl MOD20_02253BA4 + mov r1, #0x55 + lsl r1, r1, #2 + str r0, [r4, r1] + ldr r0, [r4, r1] + cmp r0, #0 + bne _02252CA6 + ldr r0, [r5] + bl FreeToHeap + mov r0, #0 + str r0, [r5] + pop {r3, r4, r5, r6, r7, pc} +_02252CA6: + mov r0, #7 + str r6, [r4] + bl BgConfig_Alloc + mov r1, #6 + lsl r1, r1, #6 + str r0, [r4, r1] + ldr r0, [sp] + add r1, r1, #4 + str r0, [r4, r1] + add r0, r4, #0 + bl MOD20_02252D44 + mov r1, #0x57 + lsl r1, r1, #2 + add r0, r4, r1 + sub r1, #8 + ldr r1, [r4, r1] + bl MOD20_02253428 + ldr r0, [r5] + mov r1, #8 + add r0, r0, #4 + bl MOD20_022536F4 + ldr r0, [r5] + mov r1, #0x88 + add r0, #0x2c + bl MOD20_02252E5C + ldr r0, [r5] + mov r1, #0x8c + add r0, #0x84 + bl MOD20_02252E5C + ldr r0, [r5] + mov r1, #0x90 + add r0, #0xdc + bl MOD20_02252E5C + ldr r0, _02252D10 ; =MOD20_02252D14 + add r1, r4, #0 + mov r2, #0 + bl FUN_0200CA98 + mov r1, #0x56 + lsl r1, r1, #2 + str r0, [r4, r1] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_02252D0A: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02252D10: .word MOD20_02252D14 + thumb_func_end MOD20_02252C5C + + thumb_func_start MOD20_02252D14 +MOD20_02252D14: ; 0x02252D14 + mov r0, #0x55 + lsl r0, r0, #2 + ldr r3, _02252D20 ; =MOD20_02253C78 + ldr r0, [r1, r0] + bx r3 + nop +_02252D20: .word MOD20_02253C78 + thumb_func_end MOD20_02252D14 + + thumb_func_start MOD20_02252D24 +MOD20_02252D24: ; 0x02252D24 + push {r3, lr} + bl MOD20_02252B1C + mov r1, #0x55 + lsl r1, r1, #2 + ldr r0, [r0, r1] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD20_02252D24 + + thumb_func_start MOD20_02252D34 +MOD20_02252D34: ; 0x02252D34 + push {r3, lr} + bl MOD20_02252B1C + mov r1, #6 + lsl r1, r1, #6 + ldr r0, [r0, r1] + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD20_02252D34 + + thumb_func_start MOD20_02252D44 +MOD20_02252D44: ; 0x02252D44 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0xc + mov r1, #0 + add r2, sp, #0 + mov r3, #7 + bl GfGfxLoader_GetPlttData + add r4, r0, #0 + beq _02252D7A + ldr r0, [sp] + mov r2, #0x62 + lsl r2, r2, #2 + add r1, r5, r2 + ldr r0, [r0, #0xc] + add r2, #0x78 + bl MIi_CpuCopy32 + mov r1, #0x62 + lsl r1, r1, #2 + add r0, r5, r1 + add r1, #0x78 + bl DC_FlushRange + add r0, r4, #0 + bl FreeToHeap +_02252D7A: + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02252D44 + + thumb_func_start MOD20_02252D7C +MOD20_02252D7C: ; 0x02252D7C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + bl MOD20_02252B1C + add r4, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD20_02252C3C + bl Sav2_Poketch_GetScreenTint + mov r1, #0x62 + lsl r1, r1, #2 + add r5, r4, r1 + lsl r4, r0, #6 + add r0, r5, r4 + lsl r1, r6, #5 + mov r2, #0x20 + bl GXS_LoadBGPltt + add r0, r5, r4 + add r1, r7, #0 + mov r2, #0x20 + bl GXS_LoadOBJPltt + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD20_02252D7C + + thumb_func_start MOD20_02252DB4 +MOD20_02252DB4: ; 0x02252DB4 + push {r3, r4, r5, lr} + bl MOD20_02252B1C + add r4, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD20_02252C3C + bl Sav2_Poketch_GetScreenTint + mov r1, #0x62 + lsl r0, r0, #5 + lsl r1, r1, #2 + add r0, #0x10 + add r4, r4, r1 + lsl r5, r0, #1 + add r0, r4, r5 + mov r1, #0 + mov r2, #0x20 + bl GXS_LoadBGPltt + add r0, r4, r5 + mov r1, #0 + mov r2, #0x20 + bl GXS_LoadOBJPltt + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02252DB4 + + thumb_func_start MOD20_02252DEC +MOD20_02252DEC: ; 0x02252DEC + push {r3, r4, r5, lr} + add r5, r0, #0 + bl MOD20_02252B1C + add r4, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD20_02252C3C + bl Sav2_Poketch_GetScreenTint + mov r1, #0x62 + lsl r1, r1, #2 + add r1, r4, r1 + lsl r0, r0, #6 + add r0, r1, r0 + add r1, r5, #0 + mov r2, #0x20 + bl MIi_CpuCopy16 + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02252DEC + + thumb_func_start MOD20_02252E18 +MOD20_02252E18: ; 0x02252E18 + push {r4, lr} + add r4, r0, #0 + beq _02252E58 + mov r0, #0x57 + lsl r0, r0, #2 + add r0, r4, r0 + bl MOD20_022535A4 + mov r0, #0x55 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02252E36 + bl MOD20_02253C4C +_02252E36: + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02252E44 + bl FreeToHeap +_02252E44: + mov r0, #0x56 + lsl r0, r0, #2 + ldr r0, [r4, r0] + cmp r0, #0 + beq _02252E52 + bl FUN_0200CAB4 +_02252E52: + add r0, r4, #0 + bl FreeToHeap +_02252E58: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD20_02252E18 + + thumb_func_start MOD20_02252E5C +MOD20_02252E5C: ; 0x02252E5C + push {r4, r5} + mov r2, #0xf + ldr r5, _02252E7C ; =MOD20_022545EC + mov r4, #0 + lsl r2, r2, #0xc +_02252E66: + ldrh r3, [r5] + add r4, r4, #1 + add r5, r5, #2 + add r3, r1, r3 + orr r3, r2 + strh r3, [r0] + add r0, r0, #2 + cmp r4, #0x2c + blo _02252E66 + pop {r4, r5} + bx lr + .align 2, 0 +_02252E7C: .word MOD20_022545EC + thumb_func_end MOD20_02252E5C + + thumb_func_start MOD20_02252E80 +MOD20_02252E80: ; 0x02252E80 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, r2, #4 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + ldr r0, _02252EA0 ; =MOD20_02254644 + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02252EA0: .word MOD20_02254644 + thumb_func_end MOD20_02252E80 + + thumb_func_start MOD20_02252EA4 +MOD20_02252EA4: ; 0x02252EA4 + ldr r3, _02252EAC ; =MOD20_02253794 + add r0, r0, #4 + bx r3 + nop +_02252EAC: .word MOD20_02253794 + thumb_func_end MOD20_02252EA4 + + thumb_func_start MOD20_02252EB0 +MOD20_02252EB0: ; 0x02252EB0 + ldr r3, _02252EB8 ; =MOD20_022537B8 + add r0, r0, #4 + bx r3 + nop +_02252EB8: .word MOD20_022537B8 + thumb_func_end MOD20_02252EB0 + + thumb_func_start MOD20_02252EBC +MOD20_02252EBC: ; 0x02252EBC + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, r0, #4 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD20_02252EBC + + thumb_func_start MOD20_02252ED0 +MOD20_02252ED0: ; 0x02252ED0 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + mov r0, #0 + bl GXS_SetGraphicsMode + mov r0, #0x80 + bl GX_SetBankForSubBG + mov r0, #1 + lsl r0, r0, #8 + bl GX_SetBankForSubOBJ + ldr r2, _02252FD8 ; =0x04001000 + ldr r0, _02252FDC ; =0xFFCFFFEF + ldr r1, [r2] + and r1, r0 + mov r0, #0x10 + orr r0, r1 + str r0, [r2] + bl GX_DisableEngineBLayers + mov r0, #0x10 + mov r1, #1 + bl GX_EngineBToggleLayers + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + ldr r2, _02252FE0 ; =MOD20_022545B4 + mov r1, #4 + mov r3, #0 + bl InitBgFromTemplate + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + ldr r2, _02252FE4 ; =MOD20_022545D0 + mov r1, #5 + mov r3, #0 + bl InitBgFromTemplate + mov r0, #0x40 + str r0, [sp] + mov r0, #0 + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #7 + str r0, [sp, #0xc] + mov r0, #0xc + lsl r2, r0, #5 + ldr r2, [r4, r2] + mov r1, #0xe + mov r3, #4 + bl GfGfxLoader_LoadCharData + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #7 + str r0, [sp, #0xc] + mov r0, #0xc + lsl r2, r0, #5 + ldr r2, [r4, r2] + mov r1, #0xf + mov r3, #4 + bl GfGfxLoader_LoadScrnData + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r4, r0] + bl MOD20_02252C44 + add r3, r0, #0 + mov r0, #0x1e + lsl r0, r0, #4 + str r0, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #0xd + mov r2, #4 + lsl r3, r3, #5 + bl GfGfxLoader_GXLoadPalWithSrcOffset + mov r3, #0 + str r3, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r1, #0x18 + str r1, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r4, r0] + mov r1, #5 + mov r2, #0xd8 + bl FillBgTilemapRect + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + ldr r0, _02252FD8 ; =0x04001000 + ldr r1, _02252FE8 ; =0xFFFFE0FF + ldr r2, [r0] + and r2, r1 + mov r1, #0x13 + lsl r1, r1, #8 + orr r1, r2 + str r1, [r0] + ldr r2, [r0] + ldr r1, _02252FEC ; =0xFFFF1FFF + and r1, r2 + str r1, [r0] + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_02252FD8: .word 0x04001000 +_02252FDC: .word 0xFFCFFFEF +_02252FE0: .word MOD20_022545B4 +_02252FE4: .word MOD20_022545D0 +_02252FE8: .word 0xFFFFE0FF +_02252FEC: .word 0xFFFF1FFF + thumb_func_end MOD20_02252ED0 + + thumb_func_start MOD20_02252FF0 +MOD20_02252FF0: ; 0x02252FF0 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + add r0, r1, #0 + bl MOD20_022538A8 + add r4, r0, #0 + ldr r0, [sp, #0x10] + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [sp, #0x10] + bl MOD20_022538AC + cmp r0, #0 + beq _0225301C + cmp r0, #1 + beq _02253028 + cmp r0, #2 + beq _022530F6 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} +_0225301C: + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + ldr r0, [sp, #0x10] + bl MOD20_022538B0 +_02253028: + ldrh r0, [r4] + add r0, r0, #1 + strh r0, [r4] + ldrh r0, [r4] + cmp r0, #0 + beq _022530FC + mov r0, #0 + strh r0, [r4] + ldrh r0, [r4, #2] + add r0, #0xc + strh r0, [r4, #2] + ldrh r0, [r4, #2] + cmp r0, #0x28 + bls _02253048 + mov r0, #0x28 + strh r0, [r4, #2] +_02253048: + ldrh r1, [r4, #2] + lsr r3, r1, #0x1f + lsl r2, r1, #0x1e + lsr r0, r1, #2 + sub r2, r2, r3 + mov r1, #0x1e + ror r2, r1 + mov r1, #0xc + sub r6, r1, r0 + lsl r0, r0, #1 + str r0, [sp, #0x14] + lsl r0, r6, #0x18 + ldr r1, [sp, #0x14] + add r7, r3, r2 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x18 + lsl r1, r1, #0x18 + str r0, [sp, #4] + lsr r1, r1, #0x18 + str r1, [sp, #8] + mov r1, #0xf + str r1, [sp, #0xc] + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #5 + mov r2, #0x40 + mov r3, #2 + bl FillBgTilemapRect + cmp r7, #0 + beq _022530DA + sub r0, r6, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r1, #0x18 + add r2, r7, #0 + add r2, #0xd8 + lsl r2, r2, #0x10 + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r5, r0] + mov r1, #5 + lsr r2, r2, #0x10 + mov r3, #2 + bl FillBgTilemapRect + ldr r0, [sp, #0x14] + mov r2, #0xd8 + add r0, r6, r0 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r1, #0x18 + sub r2, r2, r7 + lsl r2, r2, #0x10 + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r5, r0] + mov r1, #5 + lsr r2, r2, #0x10 + mov r3, #2 + bl FillBgTilemapRect +_022530DA: + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + ldrh r0, [r4, #2] + cmp r0, #0x28 + bne _022530FC + ldr r0, [sp, #0x10] + bl MOD20_022538B0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} +_022530F6: + ldr r0, [sp, #0x10] + bl MOD20_02252EBC +_022530FC: + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD20_02252FF0 + + thumb_func_start MOD20_02253100 +MOD20_02253100: ; 0x02253100 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x18 + str r1, [sp, #0x10] + add r0, r1, #0 + bl MOD20_022538A8 + add r4, r0, #0 + ldr r0, [sp, #0x10] + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [sp, #0x10] + bl MOD20_022538AC + cmp r0, #0 + beq _0225312C + cmp r0, #1 + beq _02253138 + cmp r0, #2 + beq _0225321E + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} +_0225312C: + mov r0, #0 + strh r0, [r4] + strh r0, [r4, #2] + ldr r0, [sp, #0x10] + bl MOD20_022538B0 +_02253138: + ldrh r0, [r4] + add r0, r0, #1 + strh r0, [r4] + ldrh r0, [r4] + cmp r0, #0 + beq _02253224 + mov r0, #0 + strh r0, [r4] + ldrh r0, [r4, #2] + add r0, #8 + strh r0, [r4, #2] + ldrh r0, [r4, #2] + cmp r0, #0x28 + bls _02253158 + mov r0, #0x28 + strh r0, [r4, #2] +_02253158: + ldrh r0, [r4, #2] + mov r3, #2 + lsr r2, r0, #0x1f + lsl r1, r0, #0x1e + lsr r7, r0, #2 + sub r1, r1, r2 + mov r0, #0x1e + ror r1, r0 + add r6, r2, r1 + mov r0, #0x16 + sub r0, r0, r7 + str r0, [sp, #0x14] + lsl r1, r7, #0x18 + str r3, [sp] + mov r0, #0x18 + str r0, [sp, #4] + lsr r1, r1, #0x18 + str r1, [sp, #8] + mov r1, #0xf + str r1, [sp, #0xc] + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #5 + mov r2, #0xd8 + bl FillBgTilemapRect + ldr r0, [sp, #0x14] + lsl r1, r7, #0x18 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r0, #0x18 + str r0, [sp, #4] + lsr r1, r1, #0x18 + str r1, [sp, #8] + mov r1, #0xf + str r1, [sp, #0xc] + lsl r0, r0, #4 + ldr r0, [r5, r0] + mov r1, #5 + mov r2, #0xd8 + mov r3, #2 + bl FillBgTilemapRect + cmp r6, #0 + beq _02253202 + mov r0, #0 + str r0, [sp] + mov r1, #0x18 + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + sub r3, r6, #1 + mov r2, #0xdb + sub r2, r2, r3 + lsl r2, r2, #0x10 + ldr r0, [r5, r0] + mov r1, #5 + lsr r2, r2, #0x10 + mov r3, #2 + bl FillBgTilemapRect + ldr r0, [sp, #0x14] + add r6, #0xd4 + sub r0, r0, #1 + lsl r0, r0, #0x18 + lsr r0, r0, #0x18 + str r0, [sp] + mov r1, #0x18 + lsl r2, r6, #0x10 + str r1, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r5, r0] + mov r1, #5 + lsr r2, r2, #0x10 + mov r3, #2 + bl FillBgTilemapRect +_02253202: + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r5, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + ldrh r0, [r4, #2] + cmp r0, #0x28 + bne _02253224 + ldr r0, [sp, #0x10] + bl MOD20_022538B0 + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} +_0225321E: + ldr r0, [sp, #0x10] + bl MOD20_02252EBC +_02253224: + add sp, #0x18 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD20_02253100 + + thumb_func_start MOD20_02253228 +MOD20_02253228: ; 0x02253228 + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A8 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + add r2, r0, #0 + cmp r2, #4 + bhs _02253280 + mov r3, #2 + str r3, [sp] + mov r1, #0x18 + mov r6, #0xd7 + sub r2, r6, r2 + lsl r2, r2, #0x10 + str r1, [sp, #4] + mov r0, #0x14 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r4, r0] + mov r1, #5 + lsr r2, r2, #0x10 + bl FillBgTilemapRect + add r0, r6, #0 + add r0, #0xa9 + ldr r0, [r4, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + add r0, r5, #0 + bl MOD20_022538B0 + add sp, #0x10 + pop {r4, r5, r6, pc} +_02253280: + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD20_02253228 + + thumb_func_start MOD20_0225328C +MOD20_0225328C: ; 0x0225328C + push {r4, r5, r6, lr} + sub sp, #0x10 + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A8 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r5, #0 + bl MOD20_022538AC + add r2, r0, #0 + cmp r2, #4 + bhs _022532E4 + mov r3, #2 + str r3, [sp] + mov r1, #0x18 + mov r6, #0xdb + sub r2, r6, r2 + lsl r2, r2, #0x10 + str r1, [sp, #4] + mov r0, #0x14 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r4, r0] + mov r1, #5 + lsr r2, r2, #0x10 + bl FillBgTilemapRect + add r0, r6, #0 + add r0, #0xa5 + ldr r0, [r4, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + add r0, r5, #0 + bl MOD20_022538B0 + add sp, #0x10 + pop {r4, r5, r6, pc} +_022532E4: + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0x10 + pop {r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD20_0225328C + + thumb_func_start MOD20_022532F0 +MOD20_022532F0: ; 0x022532F0 + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + mov r0, #0xb + add r2, r4, #0 + str r0, [sp] + mov r1, #4 + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + add r2, #0x84 + mov r3, #0x1b + bl LoadRectToBgTilemapRect + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #4 + bl BgCommitTilemapBufferToVram + ldr r0, _02253334 ; =0x00000671 + bl PlaySE + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_02253334: .word 0x00000671 + thumb_func_end MOD20_022532F0 + + thumb_func_start MOD20_02253338 +MOD20_02253338: ; 0x02253338 + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + mov r0, #0xb + add r2, r4, #0 + str r0, [sp] + mov r1, #4 + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + add r2, #0x2c + mov r3, #0x1b + bl LoadRectToBgTilemapRect + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #4 + bl BgCommitTilemapBufferToVram + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 + thumb_func_end MOD20_02253338 + + thumb_func_start MOD20_02253378 +MOD20_02253378: ; 0x02253378 + push {r4, r5, lr} + sub sp, #0xc + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + mov r0, #0xb + add r2, r4, #0 + str r0, [sp] + mov r1, #4 + str r1, [sp, #4] + str r0, [sp, #8] + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + add r2, #0xdc + mov r3, #0x1b + bl LoadRectToBgTilemapRect + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #4 + bl BgCommitTilemapBufferToVram + ldr r0, _022533BC ; =0x0000066F + bl PlaySE + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022533BC: .word 0x0000066F + thumb_func_end MOD20_02253378 + + thumb_func_start MOD20_022533C0 +MOD20_022533C0: ; 0x022533C0 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + mov r1, #0x57 + add r4, r0, #0 + lsl r1, r1, #2 + add r1, r4, r1 + bl MOD20_02253430 + mov r0, #0x57 + lsl r0, r0, #2 + ldr r1, [r4] + add r0, r4, r0 + bl MOD20_0225354C + add r0, r5, #0 + bl MOD20_02252EBC + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD20_022533C0 + + thumb_func_start MOD20_022533EC +MOD20_022533EC: ; 0x022533EC + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r1, r0, #0 + mov r0, #0x57 + lsl r0, r0, #2 + add r0, r1, r0 + ldr r1, [r1] + bl MOD20_0225354C + add r0, r4, #0 + bl MOD20_02252EBC + pop {r4, pc} + thumb_func_end MOD20_022533EC + + thumb_func_start MOD20_0225340C +MOD20_0225340C: ; 0x0225340C + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + mov r1, #0x57 + lsl r1, r1, #2 + add r0, r0, r1 + bl MOD20_022535A4 + add r0, r4, #0 + bl MOD20_02252EBC + pop {r4, pc} + thumb_func_end MOD20_0225340C + + thumb_func_start MOD20_02253428 +MOD20_02253428: ; 0x02253428 + mov r2, #0 + str r2, [r0] + str r1, [r0, #4] + bx lr + thumb_func_end MOD20_02253428 + + thumb_func_start MOD20_02253430 +MOD20_02253430: ; 0x02253430 + push {r4, r5, lr} + sub sp, #0xc + add r5, r0, #0 + add r4, r1, #0 + mov r0, #7 + str r0, [sp] + add r0, r4, #0 + add r0, #8 + mov r1, #0xc + mov r2, #3 + mov r3, #4 + bl MOD20_02253FBC + cmp r0, #0 + beq _022534CC + mov r3, #0 + str r3, [sp] + mov r2, #1 + str r2, [sp, #4] + mov r0, #7 + str r0, [sp, #8] + mov r0, #0xc + mov r1, #2 + bl GfGfxLoader_LoadWholePalette + mov r0, #0x60 + str r0, [sp] + mov r0, #7 + mov r1, #0 + str r0, [sp, #4] + mov r0, #0xc + mov r2, #5 + add r3, r1, #0 + bl GfGfxLoader_GXLoadPal + add r0, r5, #0 + mov r1, #0xf + bl MOD20_022534D4 + add r2, r4, #0 + ldr r0, [r4, #4] + ldr r1, _022534D0 ; =MOD20_022545A4 + add r2, #8 + bl MOD20_02253E74 + str r0, [r4, #0x1c] + cmp r0, #0 + beq _022534CC + add r2, r4, #0 + ldr r0, [r4, #4] + ldr r1, _022534D0 ; =MOD20_022545A4 + add r2, #8 + bl MOD20_02253E74 + str r0, [r4, #0x20] + cmp r0, #0 + bne _022534AE + ldr r0, [r4, #4] + ldr r1, [r4, #0x1c] + bl MOD20_02253F14 + add sp, #0xc + pop {r4, r5, pc} +_022534AE: + mov r1, #1 + lsl r1, r1, #0x10 + mov r2, #0 + bl MOD20_02253F54 + ldr r0, [r4, #0x1c] + mov r1, #0xf + bl MOD20_02253F9C + ldr r0, [r4, #0x20] + mov r1, #0xf + bl MOD20_02253F9C + mov r0, #1 + str r0, [r4] +_022534CC: + add sp, #0xc + pop {r4, r5, pc} + .align 2, 0 +_022534D0: .word MOD20_022545A4 + thumb_func_end MOD20_02253430 + + thumb_func_start MOD20_022534D4 +MOD20_022534D4: ; 0x022534D4 + push {r3, r4, r5, lr} + add r5, r0, #0 + mov r0, #0x61 + lsl r0, r0, #2 + ldr r0, [r5, r0] + add r4, r1, #0 + bl MOD20_02252C3C + bl Sav2_Poketch_GetScreenTint + mov r1, #0x62 + lsl r0, r0, #5 + lsl r1, r1, #2 + add r0, r0, #1 + add r2, r5, r1 + lsl r0, r0, #1 + add r0, r2, r0 + add r1, #0x5a + mov r2, #2 + bl GXS_LoadBGPltt + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + bl MOD20_02252DEC + ldr r1, _02253548 ; =0x0000038A + add r0, r1, #6 + ldrh r2, [r5, r1] + ldrh r0, [r5, r0] + strh r0, [r5, r1] + add r0, r1, #6 + strh r2, [r5, r0] + add r0, r1, #0 + add r2, r1, #0 + add r0, #0xe + add r2, #0x1c + ldrh r3, [r5, r2] + add r2, r1, #0 + ldrh r0, [r5, r0] + add r2, #0xe + strh r3, [r5, r2] + add r2, r1, #0 + add r2, #0x1c + strh r0, [r5, r2] + sub r0, r1, #2 + add r0, r5, r0 + mov r1, #0x20 + bl DC_FlushRange + mov r0, #0xe2 + lsl r0, r0, #2 + add r0, r5, r0 + lsl r1, r4, #5 + mov r2, #0x20 + bl GXS_LoadOBJPltt + pop {r3, r4, r5, pc} + .align 2, 0 +_02253548: .word 0x0000038A + thumb_func_end MOD20_022534D4 + + thumb_func_start MOD20_0225354C +MOD20_0225354C: ; 0x0225354C + push {r3, r4, r5, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _02253596 + ldr r0, [r1] + ldr r2, _02253598 ; =0x04000280 + mov r3, #0 + add r0, r0, #1 + strh r3, [r2] + str r0, [r2, #0x10] + add r0, r2, #0 + mov r1, #0xa + add r0, #0x18 + str r1, [r0] + str r3, [r0, #4] + lsr r0, r2, #0xb +_0225356E: + ldrh r1, [r2] + tst r1, r0 + bne _0225356E + ldr r0, _0225359C ; =0x040002A0 + add r3, r0, #0 + ldr r1, [r0] + sub r3, #0x20 + lsr r0, r0, #0xb +_0225357E: + ldrh r2, [r3] + tst r2, r0 + bne _0225357E + ldr r0, _022535A0 ; =0x040002A8 + ldr r5, [r0] + ldr r0, [r4, #0x1c] + bl MOD20_02253F28 + ldr r0, [r4, #0x20] + add r1, r5, #0 + bl MOD20_02253F28 +_02253596: + pop {r3, r4, r5, pc} + .align 2, 0 +_02253598: .word 0x04000280 +_0225359C: .word 0x040002A0 +_022535A0: .word 0x040002A8 + thumb_func_end MOD20_0225354C + + thumb_func_start MOD20_022535A4 +MOD20_022535A4: ; 0x022535A4 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4] + cmp r0, #0 + beq _022535CA + ldr r0, [r4, #4] + ldr r1, [r4, #0x1c] + bl MOD20_02253F14 + ldr r0, [r4, #4] + ldr r1, [r4, #0x20] + bl MOD20_02253F14 + add r0, r4, #0 + add r0, #8 + bl MOD20_02254014 + mov r0, #0 + str r0, [r4] +_022535CA: + pop {r4, pc} + thumb_func_end MOD20_022535A4 + + thumb_func_start MOD20_022535CC +MOD20_022535CC: ; 0x022535CC + push {r4, r5, r6, lr} + sub sp, #0x10 + add r6, r1, #0 + add r0, r6, #0 + bl MOD20_022538A0 + add r4, r0, #0 + add r0, r6, #0 + bl MOD20_022538A8 + add r0, r6, #0 + bl MOD20_022538AC + add r5, r0, #0 + cmp r5, #3 + bhi _0225365E + add r0, r5, r5 + add r0, pc + ldrh r0, [r0, #6] + lsl r0, r0, #0x10 + asr r0, r0, #0x10 + add pc, r0 +_022535F8: ; jump table + .short _02253600 - _022535F8 - 2 ; case 0 + .short _0225361C - _022535F8 - 2 ; case 1 + .short _0225361C - _022535F8 - 2 ; case 2 + .short _0225361C - _022535F8 - 2 ; case 3 +_02253600: + mov r0, #6 + str r0, [sp] + ldr r0, _02253664 ; =0x04001050 + mov r1, #2 + mov r2, #0x1c + mov r3, #0x1a + bl G2x_SetBlendAlpha_ + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #4 + bl BgCommitTilemapBufferToVram +_0225361C: + mov r3, #2 + str r3, [sp] + mov r1, #0x18 + mov r2, #0xdb + sub r2, r2, r5 + lsl r2, r2, #0x10 + str r1, [sp, #4] + mov r0, #0x14 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r4, r0] + mov r1, #5 + lsr r2, r2, #0x10 + bl FillBgTilemapRect + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + cmp r5, #3 + bne _02253658 + add r0, r6, #0 + bl MOD20_02252EBC + add sp, #0x10 + pop {r4, r5, r6, pc} +_02253658: + add r0, r6, #0 + bl MOD20_022538B0 +_0225365E: + add sp, #0x10 + pop {r4, r5, r6, pc} + nop +_02253664: .word 0x04001050 + thumb_func_end MOD20_022535CC + + thumb_func_start MOD20_02253668 +MOD20_02253668: ; 0x02253668 + push {r3, r4, r5, lr} + sub sp, #0x10 + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + mov r3, #2 + add r4, r0, #0 + str r3, [sp] + mov r1, #0x18 + str r1, [sp, #4] + mov r0, #0x14 + str r0, [sp, #8] + mov r0, #0xf + str r0, [sp, #0xc] + lsl r0, r1, #4 + ldr r0, [r4, r0] + mov r1, #5 + mov r2, #0x40 + bl FillBgTilemapRect + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #4 + bl BgCommitTilemapBufferToVram + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #5 + bl BgCommitTilemapBufferToVram + mov r1, #0 + ldr r0, _022536C4 ; =0x04001050 + add r2, r1, #0 + mov r3, #0x1f + str r1, [sp] + bl G2x_SetBlendAlpha_ + add r0, r5, #0 + bl MOD20_02252EBC + add sp, #0x10 + pop {r3, r4, r5, pc} + nop +_022536C4: .word 0x04001050 + thumb_func_end MOD20_02253668 + + thumb_func_start MOD20_022536C8 +MOD20_022536C8: ; 0x022536C8 + push {r3, r4, r5, lr} + add r5, r1, #0 + add r0, r5, #0 + bl MOD20_022538A0 + add r4, r0, #0 + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #4 + bl FreeBgTilemapBuffer + mov r0, #6 + lsl r0, r0, #6 + ldr r0, [r4, r0] + mov r1, #5 + bl FreeBgTilemapBuffer + add r0, r5, #0 + bl MOD20_02252EBC + pop {r3, r4, r5, pc} + thumb_func_end MOD20_022536C8 + + .section .rodata + + .global MOD20_022545A4 +MOD20_022545A4: ; 0x022545A4 + .byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD20_022545B4 +MOD20_022545B4: ; 0x022545B4 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD20_022545D0 +MOD20_022545D0: ; 0x022545D0 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x01, 0x00, 0x0D, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + + .global MOD20_022545EC +MOD20_022545EC: ; 0x022545EC + .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0015, 0x0016, 0x0017, 0x0018 + .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D + .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D + .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D + .short 0x002A, 0x002B, 0x002C, 0x002D, 0x003F, 0x0040, 0x0041, 0x0042 + .short 0x0054, 0x0055, 0x0056, 0x0057 + + .global MOD20_02254644 +MOD20_02254644: ; 0x02254644 + .word 0x00000000, MOD20_02252ED0, 0x00000000 + .word 0x00000001, MOD20_02252FF0, 0x00000004 + .word 0x00000002, MOD20_02252FF0, 0x00000004 + .word 0x00000003, MOD20_02253228, 0x00000004 + .word 0x00000004, MOD20_02253100, 0x00000004 + .word 0x00000005, MOD20_0225328C, 0x00000004 + .word 0x00000006, MOD20_022532F0, 0x00000000 + .word 0x00000008, MOD20_02253338, 0x00000000 + .word 0x00000007, MOD20_02253378, 0x00000000 + .word 0x00000009, MOD20_022533C0, 0x00000000 + .word 0x0000000A, MOD20_022533EC, 0x00000000 + .word 0x0000000B, MOD20_0225340C, 0x00000000 + .word 0x0000000C, MOD20_022535CC, 0x00000000 + .word 0x0000000D, MOD20_02253668, 0x00000000 + .word 0x0000000E, MOD20_022536C8, 0x00000000 + .word 0xFFFFFFFF, 0x00000000, 0x00000000 diff --git a/arm9/modules/20/asm/mod20_022536F4.s b/arm9/modules/20/asm/mod20_022536F4.s new file mode 100644 index 00000000..1bd58d2b --- /dev/null +++ b/arm9/modules/20/asm/mod20_022536F4.s @@ -0,0 +1,682 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 2, 0 + + thumb_func_start MOD20_022536F4 +MOD20_022536F4: ; 0x022536F4 + ldr r2, _02253710 ; =0x12345678 + str r1, [r0] + mov r3, #0 + str r2, [r0, #4] + cmp r1, #0 + bls _0225370C + sub r2, r3, #1 +_02253702: + add r3, r3, #1 + str r2, [r0, #8] + add r0, r0, #4 + cmp r3, r1 + blo _02253702 +_0225370C: + bx lr + nop +_02253710: .word 0x12345678 + thumb_func_end MOD20_022536F4 + + thumb_func_start MOD20_02253714 +MOD20_02253714: ; 0x02253714 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #4] + ldr r0, _02253750 ; =0x12345678 + cmp r1, r0 + beq _02253726 + bl GF_AssertFail +_02253726: + ldr r6, [r5] + mov r2, #0 + cmp r6, #0 + bls _0225374A + add r3, r5, #0 + sub r0, r2, #1 +_02253732: + ldr r1, [r3, #8] + cmp r1, r0 + bne _02253742 + lsl r0, r2, #2 + add r0, r5, r0 + str r4, [r0, #8] + mov r0, #1 + pop {r4, r5, r6, pc} +_02253742: + add r2, r2, #1 + add r3, r3, #4 + cmp r2, r6 + blo _02253732 +_0225374A: + mov r0, #0 + pop {r4, r5, r6, pc} + nop +_02253750: .word 0x12345678 + thumb_func_end MOD20_02253714 + + thumb_func_start MOD20_02253754 +MOD20_02253754: ; 0x02253754 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + ldr r1, [r5, #4] + ldr r0, _02253790 ; =0x12345678 + cmp r1, r0 + beq _02253766 + bl GF_AssertFail +_02253766: + ldr r3, [r5] + mov r2, #0 + cmp r3, #0 + bls _0225378A + add r1, r5, #0 +_02253770: + ldr r0, [r1, #8] + cmp r4, r0 + bne _02253782 + mov r1, #0 + lsl r0, r2, #2 + mvn r1, r1 + add r0, r5, r0 + str r1, [r0, #8] + pop {r3, r4, r5, pc} +_02253782: + add r2, r2, #1 + add r1, r1, #4 + cmp r2, r3 + blo _02253770 +_0225378A: + bl GF_AssertFail + pop {r3, r4, r5, pc} + .align 2, 0 +_02253790: .word 0x12345678 + thumb_func_end MOD20_02253754 + + thumb_func_start MOD20_02253794 +MOD20_02253794: ; 0x02253794 + push {r3, r4} + ldr r4, [r0] + mov r3, #0 + cmp r4, #0 + bls _022537B2 +_0225379E: + ldr r2, [r0, #8] + cmp r1, r2 + bne _022537AA + mov r0, #0 + pop {r3, r4} + bx lr +_022537AA: + add r3, r3, #1 + add r0, r0, #4 + cmp r3, r4 + blo _0225379E +_022537B2: + mov r0, #1 + pop {r3, r4} + bx lr + thumb_func_end MOD20_02253794 + + thumb_func_start MOD20_022537B8 +MOD20_022537B8: ; 0x022537B8 + push {r3, r4} + ldr r4, [r0] + mov r3, #0 + cmp r4, #0 + bls _022537D8 + sub r1, r3, #1 +_022537C4: + ldr r2, [r0, #8] + cmp r2, r1 + beq _022537D0 + mov r0, #0 + pop {r3, r4} + bx lr +_022537D0: + add r3, r3, #1 + add r0, r0, #4 + cmp r3, r4 + blo _022537C4 +_022537D8: + mov r0, #1 + pop {r3, r4} + bx lr + .align 2, 0 + thumb_func_end MOD20_022537B8 + + thumb_func_start MOD20_022537E0 +MOD20_022537E0: ; 0x022537E0 + push {r4, r5, r6, r7, lr} + sub sp, #0xc + add r7, r0, #0 + str r2, [sp] + mov r0, #0 + add r5, r1, #0 + ldr r2, [r7] + sub r1, r0, #1 + str r3, [sp, #4] + cmp r2, r1 + beq _02253880 + add r3, r7, #0 + sub r1, r0, #1 +_022537FA: + ldr r2, [r3] + cmp r5, r2 + bne _02253876 + add r6, r0, #0 + add r0, r7, #0 + str r0, [sp, #8] + add r0, #8 + mov r1, #0xc + str r0, [sp, #8] + mul r6, r1 + ldr r1, [sp, #8] + ldr r0, [sp, #0x28] + ldr r1, [r1, r6] + add r1, #0x18 + bl AllocFromHeap + add r4, r0, #0 + beq _02253870 + ldr r0, [sp, #8] + ldr r0, [r0, r6] + cmp r0, #0 + beq _0225382C + add r0, r4, #0 + add r0, #0x18 + b _0225382E +_0225382C: + mov r0, #0 +_0225382E: + str r0, [r4, #0xc] + ldr r0, [sp, #0x20] + add r1, r5, #0 + bl MOD20_02253714 + cmp r0, #0 + beq _02253866 + ldr r0, [sp] + ldr r2, [sp, #0x24] + str r0, [r4, #8] + mov r0, #0 + str r0, [r4, #4] + str r5, [r4] + ldr r0, [sp, #4] + add r5, r7, #4 + str r0, [r4, #0x10] + ldr r0, [r5, r6] + add r1, r4, #0 + bl FUN_0200CA44 + str r0, [r4, #0x14] + cmp r0, #0 + beq _02253884 + ldr r2, [r5, r6] + add r1, r4, #0 + blx r2 + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_02253866: + add r0, r4, #0 + bl FreeToHeap + add sp, #0xc + pop {r4, r5, r6, r7, pc} +_02253870: + bl GF_AssertFail + b _02253880 +_02253876: + add r3, #0xc + ldr r2, [r3] + add r0, r0, #1 + cmp r2, r1 + bne _022537FA +_02253880: + bl GF_AssertFail +_02253884: + add sp, #0xc + pop {r4, r5, r6, r7, pc} + thumb_func_end MOD20_022537E0 + + thumb_func_start MOD20_02253888 +MOD20_02253888: ; 0x02253888 + push {r4, lr} + add r4, r1, #0 + ldr r1, [r4] + bl MOD20_02253754 + ldr r0, [r4, #0x14] + bl FUN_0200CAB4 + add r0, r4, #0 + bl FreeToHeap + pop {r4, pc} + thumb_func_end MOD20_02253888 + + thumb_func_start MOD20_022538A0 +MOD20_022538A0: ; 0x022538A0 + ldr r0, [r0, #8] + bx lr + thumb_func_end MOD20_022538A0 + + thumb_func_start MOD20_022538A4 +MOD20_022538A4: ; 0x022538A4 + ldr r0, [r0, #0x10] + bx lr + thumb_func_end MOD20_022538A4 + + thumb_func_start MOD20_022538A8 +MOD20_022538A8: ; 0x022538A8 + ldr r0, [r0, #0xc] + bx lr + thumb_func_end MOD20_022538A8 + + thumb_func_start MOD20_022538AC +MOD20_022538AC: ; 0x022538AC + ldr r0, [r0, #4] + bx lr + thumb_func_end MOD20_022538AC + + thumb_func_start MOD20_022538B0 +MOD20_022538B0: ; 0x022538B0 + ldr r1, [r0, #4] + add r1, r1, #1 + str r1, [r0, #4] + bx lr + thumb_func_end MOD20_022538B0 + + thumb_func_start MOD20_022538B8 +MOD20_022538B8: ; 0x022538B8 + str r1, [r0, #4] + bx lr + thumb_func_end MOD20_022538B8 + + thumb_func_start MOD20_022538BC +MOD20_022538BC: ; 0x022538BC + push {r3, r4, r5, r6} + mul r2, r3 + ldr r4, [sp, #0x18] + add r1, r1, r2 + lsl r6, r1, #1 + lsl r4, r4, #0xc + ldr r1, [sp, #0x10] + add r5, r4, #0 + orr r5, r1 + add r2, r0, r6 + strh r5, [r0, r6] + add r0, r1, #1 + orr r0, r4 + strh r0, [r2, #2] + ldr r0, [sp, #0x14] + lsl r3, r3, #1 + add r1, r1, r0 + add r0, r4, #0 + orr r0, r1 + strh r0, [r2, r3] + add r0, r1, #1 + add r1, r4, #0 + orr r1, r0 + add r0, r2, r3 + strh r1, [r0, #2] + pop {r3, r4, r5, r6} + bx lr + .align 2, 0 + thumb_func_end MOD20_022538BC + + thumb_func_start MOD20_022538F4 +MOD20_022538F4: ; 0x022538F4 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x20 + bl AllocFromHeap + add r7, r0, #0 + beq _02253960 + bl MOD20_02252DEC + mov r4, #0 + cmp r6, #0 + bls _0225395A +_02253910: + ldrh r3, [r5] + mov r0, #0x1f + lsl r0, r0, #0xa + and r0, r3 + asr r0, r0, #0xa + add r2, r0, #0 + mov r1, #0x72 + mov r0, #0x1f + mul r2, r1 + and r0, r3 + add r1, #0xb9 + mul r1, r0 + mov r0, #0x3e + lsl r0, r0, #4 + and r0, r3 + asr r3, r0, #5 + ldr r0, _02253964 ; =0x0000024B + mul r0, r3 + add r0, r1, r0 + mov r1, #0xfa + add r0, r2, r0 + lsl r1, r1, #2 + bl _u32_div_f + lsr r1, r0, #3 + cmp r1, #3 + bls _02253948 + mov r1, #3 +_02253948: + ldr r0, _02253968 ; =MOD20_0225470C + add r4, r4, #1 + ldrb r0, [r0, r1] + lsl r0, r0, #1 + ldrh r0, [r7, r0] + strh r0, [r5] + add r5, r5, #2 + cmp r4, r6 + blo _02253910 +_0225395A: + add r0, r7, #0 + bl FreeToHeap +_02253960: + pop {r3, r4, r5, r6, r7, pc} + nop +_02253964: .word 0x0000024B +_02253968: .word MOD20_0225470C + thumb_func_end MOD20_022538F4 + + thumb_func_start MOD20_0225396C +MOD20_0225396C: ; 0x0225396C + push {r3, r4, r5, r6, r7, lr} + add r6, r0, #0 + add r7, r1, #0 + mov r0, #8 + mov r1, #0x20 + bl AllocFromHeap + add r4, r0, #0 + beq _022539C2 + mov r0, #8 + mov r1, #0x20 + bl AllocFromHeap + add r5, r0, #0 + add r0, r4, #0 + bl MOD20_02252DEC + cmp r5, #0 + beq _022539BC + mov r0, #0 + add r1, r5, #0 + lsl r3, r6, #1 +_02253998: + ldrh r2, [r4, r3] + add r0, r0, #1 + strh r2, [r1] + add r1, r1, #2 + cmp r0, #0x10 + blt _02253998 + add r0, r5, #0 + mov r1, #0x20 + bl DC_FlushRange + add r0, r5, #0 + lsl r1, r7, #5 + mov r2, #0x20 + bl GXS_LoadOBJPltt + add r0, r5, #0 + bl FreeToHeap +_022539BC: + add r0, r4, #0 + bl FreeToHeap +_022539C2: + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD20_0225396C + + thumb_func_start MOD20_022539C4 +MOD20_022539C4: ; 0x022539C4 + push {r3, r4, r5, lr} + add r5, r0, #0 + bl FUN_0206B888 + add r1, r0, #0 + mov r0, #0x13 + add r2, sp, #0 + mov r3, #8 + bl GfGfxLoader_GetPlttData + add r4, r0, #0 + beq _02253A02 + ldr r0, [sp] + mov r1, #0x40 + ldr r0, [r0, #0xc] + bl MOD20_022538F4 + ldr r0, [sp] + mov r1, #0x80 + ldr r0, [r0, #0xc] + bl DC_FlushRange + ldr r0, [sp] + lsl r1, r5, #5 + ldr r0, [r0, #0xc] + mov r2, #0x80 + bl GXS_LoadOBJPltt + add r0, r4, #0 + bl FreeToHeap +_02253A02: + pop {r3, r4, r5, pc} + thumb_func_end MOD20_022539C4 + + thumb_func_start MOD20_02253A04 +MOD20_02253A04: ; 0x02253A04 + push {r4, r5, r6, r7, lr} + sub sp, #0x24 + str r0, [sp, #4] + lsl r0, r3, #1 + str r0, [sp, #0xc] + add r6, r1, #0 + str r2, [sp, #8] + ldr r2, _02253A9C ; =MOD20_02254708 + ldr r1, [sp, #0xc] + mov r0, #8 + ldrh r1, [r2, r1] + bl AllocFromHeap + add r7, r0, #0 + beq _02253A98 + mov r0, #0x13 + mov r1, #8 + bl NARC_ctor + str r0, [sp, #0x1c] + cmp r0, #0 + beq _02253A92 + mov r0, #0 + str r0, [sp, #0x18] + ldr r0, [sp, #8] + cmp r0, #0 + bls _02253A8C + ldr r1, _02253AA0 ; =MOD20_02254704 + ldr r0, [sp, #0xc] + ldr r4, [sp, #0x18] + ldrh r5, [r1, r0] + ldr r1, _02253A9C ; =MOD20_02254708 + ldrh r0, [r1, r0] + str r0, [sp, #0x14] + ldr r0, [sp, #4] + lsl r0, r0, #5 + str r0, [sp, #0x10] +_02253A4E: + str r7, [sp] + ldr r0, [sp, #0x1c] + ldr r1, [r6] + ldr r3, [sp, #0x14] + mov r2, #0 + bl NARC_ReadFromMember + add r0, r7, #0 + add r1, sp, #0x20 + bl NNS_G2dGetUnpackedCharacterData + ldr r0, [sp, #0x20] + add r1, r5, #0 + ldr r0, [r0, #0x14] + bl DC_FlushRange + ldr r0, [sp, #0x20] + ldr r1, [sp, #0x10] + ldr r0, [r0, #0x14] + add r1, r1, r4 + add r2, r5, #0 + bl GXS_LoadOBJ + ldr r0, [sp, #0x18] + add r6, r6, #4 + add r1, r0, #1 + ldr r0, [sp, #8] + add r4, r4, r5 + str r1, [sp, #0x18] + cmp r1, r0 + blo _02253A4E +_02253A8C: + ldr r0, [sp, #0x1c] + bl NARC_dtor +_02253A92: + add r0, r7, #0 + bl FreeToHeap +_02253A98: + add sp, #0x24 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_02253A9C: .word MOD20_02254708 +_02253AA0: .word MOD20_02254704 + thumb_func_end MOD20_02253A04 + + thumb_func_start MOD20_02253AA4 +MOD20_02253AA4: ; 0x02253AA4 + push {r3, r4, r5, r6, lr} + sub sp, #0x14 + add r5, r1, #0 + add r4, r2, #0 + mov r1, #2 + add r2, sp, #0xc + strh r1, [r2] + mov r3, #3 + strh r3, [r2, #2] + mov r3, #0xa + strh r3, [r2, #4] + mov r3, #0xb + strh r3, [r2, #6] + str r3, [sp] + str r1, [sp, #4] + str r1, [sp, #8] + lsl r1, r4, #0x18 + lsr r1, r1, #0x18 + add r2, sp, #0xc + mov r3, #9 + add r6, r0, #0 + bl LoadRectToBgTilemapRect + mov r1, #4 + add r0, sp, #0xc + strh r1, [r0] + mov r1, #5 + strh r1, [r0, #2] + mov r1, #0xc + strh r1, [r0, #4] + mov r1, #0xd + strh r1, [r0, #6] + mov r3, #0xb + lsl r1, r4, #0x18 + str r3, [sp] + mov r0, #2 + str r0, [sp, #4] + str r0, [sp, #8] + add r0, r6, #0 + lsr r1, r1, #0x18 + add r2, sp, #0xc + bl LoadRectToBgTilemapRect + mov r1, #6 + add r0, sp, #0xc + strh r1, [r0] + mov r1, #7 + strh r1, [r0, #2] + mov r1, #0xe + strh r1, [r0, #4] + mov r1, #0xf + strh r1, [r0, #6] + mov r0, #0xb + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + lsl r1, r4, #0x18 + str r0, [sp, #8] + add r0, r6, #0 + lsr r1, r1, #0x18 + add r2, sp, #0xc + mov r3, #0xd + bl LoadRectToBgTilemapRect + add r0, r5, #0 + mov r1, #0xa + bl _u32_div_f + mov r1, #0xa + mul r1, r0 + add r0, r0, #4 + sub r5, r5, r1 + lsr r1, r0, #2 + lsl r0, r0, #0x1e + lsl r1, r1, #4 + lsr r0, r0, #0x1d + add r2, r1, r0 + add r0, sp, #0xc + strh r2, [r0] + add r1, r2, #1 + strh r1, [r0, #2] + add r1, r2, #0 + add r1, #8 + strh r1, [r0, #4] + add r2, #9 + strh r2, [r0, #6] + mov r0, #0xb + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + lsl r1, r4, #0x18 + str r0, [sp, #8] + add r0, r6, #0 + lsr r1, r1, #0x18 + add r2, sp, #0xc + mov r3, #0xf + bl LoadRectToBgTilemapRect + add r0, r5, #4 + lsr r1, r0, #2 + lsl r0, r0, #0x1e + lsl r1, r1, #4 + lsr r0, r0, #0x1d + add r2, r1, r0 + add r0, sp, #0xc + strh r2, [r0] + add r1, r2, #1 + strh r1, [r0, #2] + add r1, r2, #0 + add r1, #8 + strh r1, [r0, #4] + add r2, #9 + strh r2, [r0, #6] + mov r0, #0xb + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + lsl r1, r4, #0x18 + str r0, [sp, #8] + add r0, r6, #0 + lsr r1, r1, #0x18 + add r2, sp, #0xc + mov r3, #0x11 + bl LoadRectToBgTilemapRect + add sp, #0x14 + pop {r3, r4, r5, r6, pc} + .align 2, 0 + thumb_func_end MOD20_02253AA4 + + .section .rodata + + .global MOD20_02254704 +MOD20_02254704: ; 0x02254704 + .byte 0x00, 0x02, 0x00, 0x04 + + .global MOD20_02254708 +MOD20_02254708: ; 0x02254708 + .byte 0x80, 0x02, 0x80, 0x04 + + .global MOD20_0225470C +MOD20_0225470C: ; 0x0225470C + .byte 0x01, 0x08, 0x0F, 0x04 diff --git a/arm9/modules/20/asm/mod20_02253BA4.s b/arm9/modules/20/asm/mod20_02253BA4.s new file mode 100644 index 00000000..0c9468d0 --- /dev/null +++ b/arm9/modules/20/asm/mod20_02253BA4.s @@ -0,0 +1,808 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 2, 0 + + thumb_func_start MOD20_02253BA4 +MOD20_02253BA4: ; 0x02253BA4 + push {r3, r4, r5, r6, r7, lr} + add r5, r1, #0 + add r7, r0, #0 + add r0, r5, #0 + mov r1, #0x1c + mov r6, #0 + bl AllocFromHeap + add r4, r0, #0 + beq _02253C0E + add r0, r6, #0 + str r0, [r4, #0x14] + str r0, [r4, #0xc] + str r0, [r4, #4] + str r7, [r4] + str r5, [r4, #0x18] + add r0, r7, #0 + bl NNS_G2dGetOamManagerOamCapacity + strh r0, [r4, #0x10] + ldrh r1, [r4, #0x10] + add r0, r5, #0 + lsl r1, r1, #3 + bl AllocFromHeap + str r0, [r4, #0x14] + cmp r0, #0 + beq _02253C0E + ldrh r2, [r4, #0x10] + mov r1, #0x90 + add r0, r5, #0 + mul r1, r2 + bl AllocFromHeap + str r0, [r4, #0xc] + cmp r0, #0 + beq _02253C0E + ldrh r1, [r4, #0x10] + add r0, r5, #0 + lsl r1, r1, #2 + bl AllocFromHeap + str r0, [r4, #4] + cmp r0, #0 + beq _02253C0E + ldrh r2, [r4, #0x10] + ldr r1, [r4, #0xc] + bl MOD20_0225403C + add r0, r6, #0 + strh r0, [r4, #0x12] + str r0, [r4, #8] + mov r6, #1 +_02253C0E: + cmp r6, #0 + bne _02253C46 + cmp r4, #0 + beq _02253C42 + ldr r1, [r4, #0x14] + cmp r1, #0 + beq _02253C22 + add r0, r5, #0 + bl FreeToHeapExplicit +_02253C22: + ldr r1, [r4, #0xc] + cmp r1, #0 + beq _02253C2E + add r0, r5, #0 + bl FreeToHeapExplicit +_02253C2E: + ldr r1, [r4, #4] + cmp r1, #0 + beq _02253C3A + add r0, r5, #0 + bl FreeToHeapExplicit +_02253C3A: + add r0, r5, #0 + add r1, r4, #0 + bl FreeToHeapExplicit +_02253C42: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02253C46: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD20_02253BA4 + + thumb_func_start MOD20_02253C4C +MOD20_02253C4C: ; 0x02253C4C + push {r4, lr} + add r4, r0, #0 + beq _02253C76 + ldr r0, [r4, #0x14] + cmp r0, #0 + beq _02253C5C + bl FreeToHeap +_02253C5C: + ldr r0, [r4, #0xc] + cmp r0, #0 + beq _02253C66 + bl FreeToHeap +_02253C66: + ldr r0, [r4, #4] + cmp r0, #0 + beq _02253C70 + bl FreeToHeap +_02253C70: + add r0, r4, #0 + bl FreeToHeap +_02253C76: + pop {r4, pc} + thumb_func_end MOD20_02253C4C + + thumb_func_start MOD20_02253C78 +MOD20_02253C78: ; 0x02253C78 + push {r3, r4, r5, r6, r7, lr} + sub sp, #0x20 + str r0, [sp, #0xc] + ldrh r0, [r0, #0x12] + cmp r0, #0 + bne _02253C86 + b _02253E52 +_02253C86: + ldr r0, [sp, #0xc] + ldr r4, [r0, #8] + ldr r5, [r0, #0x14] + ldrh r0, [r0, #0x10] + cmp r4, #0 + str r0, [sp, #0x10] + bne _02253C96 + b _02253E38 +_02253C96: + add r0, r4, #0 + mov r1, #2 + add r0, #8 + lsl r1, r1, #0xc + bl NNS_G2dTickCellAnimation + add r0, r4, #0 + add r0, #0x86 + ldrb r0, [r0] + cmp r0, #0 + beq _02253CAE + b _02253E30 +_02253CAE: + add r6, r4, #0 + add r6, #0x40 + mov r0, #0xc + ldrsh r0, [r6, r0] + ldr r1, [r4, #0x64] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x18] + mov r0, #0xe + ldrsh r0, [r6, r0] + ldr r1, [r4, #0x68] + lsl r0, r0, #0xc + add r0, r1, r0 + str r0, [sp, #0x1c] + add r0, r4, #0 + add r0, #0x87 + ldrb r0, [r0] + cmp r0, #0 + bne _02253CEE + add r0, sp, #0x18 + str r0, [sp] + mov r3, #0 + str r3, [sp, #4] + ldr r1, [sp, #0x10] + str r3, [sp, #8] + lsl r1, r1, #0x10 + ldr r2, [r4, #0x34] + add r0, r5, #0 + lsr r1, r1, #0x10 + bl NNS_G2dMakeCellToOams + b _02253D86 +_02253CEE: + ldr r0, [r4, #0x6c] + bl MTX_Identity22_ + ldrh r1, [r6, #0x12] + mov r0, #4 + tst r0, r1 + beq _02253D20 + add r0, r4, #0 + add r0, #0x8c + ldrh r2, [r6, #0x10] + ldrh r0, [r0] + ldr r1, _02253E58 ; =FX_SinCosTable_ + add r0, r2, r0 + lsl r0, r0, #0x10 + lsr r0, r0, #0x10 + asr r0, r0, #4 + lsl r3, r0, #2 + add r2, r1, r3 + ldrsh r1, [r1, r3] + mov r3, #2 + ldrsh r2, [r2, r3] + ldr r0, [r4, #0x6c] + bl MTX_Rot22_ + b _02253D3E +_02253D20: + add r0, r4, #0 + add r0, #0x8c + ldrh r0, [r0] + cmp r0, #0 + beq _02253D3E + asr r0, r0, #4 + lsl r3, r0, #2 + ldr r1, _02253E58 ; =FX_SinCosTable_ + ldr r0, [r4, #0x6c] + add r2, r1, r3 + ldrsh r1, [r1, r3] + mov r3, #2 + ldrsh r2, [r2, r3] + bl MTX_Rot22_ +_02253D3E: + ldrh r1, [r6, #0x12] + mov r0, #2 + tst r0, r1 + beq _02253D62 + ldr r0, [r6, #4] + ldr r7, [r4, #0x6c] + bl FX_Inv + str r0, [sp, #0x14] + ldr r0, [r6, #8] + bl FX_Inv + add r3, r0, #0 + ldr r2, [sp, #0x14] + add r0, r7, #0 + add r1, r7, #0 + bl MTX_ScaleApply22 +_02253D62: + ldr r0, [sp, #0xc] + ldr r1, [r4, #0x6c] + ldr r0, [r0] + bl NNS_G2dEntryOamManagerAffine + add r1, sp, #0x18 + str r1, [sp] + str r0, [sp, #4] + mov r0, #1 + str r0, [sp, #8] + ldr r1, [sp, #0x10] + ldr r2, [r4, #0x34] + lsl r1, r1, #0x10 + ldr r3, [r4, #0x6c] + add r0, r5, #0 + lsr r1, r1, #0x10 + bl NNS_G2dMakeCellToOams +_02253D86: + ldr r1, [sp, #0x10] + sub r1, r1, r0 + str r1, [sp, #0x10] + add r1, r0, #0 + sub r0, r0, #1 + cmp r1, #0 + beq _02253E30 + ldr r7, _02253E5C ; =0xDFFFFFFF + asr r1, r7, #0x11 +_02253D98: + ldr r3, [r5, #4] + ldr r2, _02253E60 ; =0xFFFFF3FF + add r6, r4, #0 + and r2, r3 + add r3, r4, #0 + add r3, #0x82 + ldrh r3, [r3] + add r6, #0x84 + lsl r3, r3, #0x1e + lsr r3, r3, #0x14 + orr r2, r3 + str r2, [r5, #4] + ldr r3, _02253E64 ; =0xFFFF0FFF + ldrh r6, [r6] + and r3, r2 + lsl r2, r2, #0x10 + lsr r2, r2, #0x1c + add r2, r2, r6 + lsl r2, r2, #0x1c + lsr r2, r2, #0x10 + orr r2, r3 + add r6, r4, #0 + ldr r3, _02253E68 ; =0xFFFFFC00 + str r2, [r5, #4] + add r6, #0x88 + and r3, r2 + lsl r2, r2, #0x16 + ldrh r6, [r6] + lsr r2, r2, #0x16 + add r6, r2, r6 + ldr r2, _02253E6C ; =0x000003FF + and r2, r6 + orr r2, r3 + add r6, r4, #0 + str r2, [r5, #4] + add r6, #0x8a + ldr r2, [r5] + ldr r3, _02253E70 ; =0xEFFFFFFF + ldrb r6, [r6] + and r3, r2 + lsl r2, r2, #3 + lsr r2, r2, #0x1f + eor r2, r6 + lsl r2, r2, #0x1f + lsr r2, r2, #3 + orr r2, r3 + add r6, r4, #0 + add r3, r2, #0 + str r2, [r5] + add r6, #0x8b + lsl r2, r2, #2 + ldrb r6, [r6] + lsr r2, r2, #0x1f + and r3, r7 + eor r2, r6 + lsl r2, r2, #0x1f + lsr r2, r2, #2 + orr r2, r3 + add r6, r4, #0 + add r3, r2, #0 + str r2, [r5] + add r6, #0x8e + lsl r2, r2, #0x13 + ldrb r6, [r6] + lsr r2, r2, #0x1f + and r3, r1 + eor r2, r6 + lsl r2, r2, #0x1f + lsr r2, r2, #0x13 + orr r2, r3 + str r2, [r5] + add r2, r0, #0 + add r5, #8 + sub r0, r0, #1 + cmp r2, #0 + bne _02253D98 +_02253E30: + ldr r4, [r4, #0x5c] + cmp r4, #0 + beq _02253E38 + b _02253C96 +_02253E38: + ldr r0, [sp, #0xc] + ldr r1, [r0, #0x14] + cmp r5, r1 + bls _02253E52 + sub r3, r5, r1 + asr r2, r3, #2 + lsr r2, r2, #0x1d + add r2, r3, r2 + lsl r2, r2, #0xd + ldr r0, [r0] + lsr r2, r2, #0x10 + bl NNS_G2dEntryOamManagerOam +_02253E52: + add sp, #0x20 + pop {r3, r4, r5, r6, r7, pc} + nop +_02253E58: .word FX_SinCosTable_ +_02253E5C: .word 0xDFFFFFFF +_02253E60: .word 0xFFFFF3FF +_02253E64: .word 0xFFFF0FFF +_02253E68: .word 0xFFFFFC00 +_02253E6C: .word 0x000003FF +_02253E70: .word 0xEFFFFFFF + thumb_func_end MOD20_02253C78 + + thumb_func_start MOD20_02253E74 +MOD20_02253E74: ; 0x02253E74 + push {r3, r4, r5, r6, r7, lr} + add r7, r0, #0 + add r5, r1, #0 + add r6, r2, #0 + bl MOD20_02254068 + add r4, r0, #0 + beq _02253F10 + ldrb r1, [r5, #0xb] + add r0, #0x82 + strh r1, [r0] + add r0, r4, #0 + ldrb r1, [r5, #0xc] + add r0, #0x80 + strh r1, [r0] + add r0, r7, #0 + add r1, r4, #0 + bl MOD20_022540A4 + ldr r0, [r6, #8] + str r0, [r4] + ldr r0, [r6, #0xc] + str r0, [r4, #4] + ldrh r1, [r5, #8] + bl NNS_G2dGetAnimSequenceByIdx + add r1, r0, #0 + add r0, r4, #0 + ldr r2, [r4] + add r0, #8 + bl NNS_G2dInitCellAnimation + ldr r1, [r5] + ldr r0, [r5, #4] + str r1, [r4, #0x64] + add r1, r4, #0 + str r0, [r4, #0x68] + mov r0, #0 + add r1, #0x84 + strh r0, [r1] + add r1, r4, #0 + add r1, #0x88 + strh r0, [r1] + ldrb r2, [r5, #0xa] + mov r1, #1 + tst r2, r1 + beq _02253ED4 + add r0, r1, #0 +_02253ED4: + add r1, r4, #0 + add r1, #0x8a + strb r0, [r1] + ldrb r1, [r5, #0xa] + mov r0, #2 + tst r0, r1 + beq _02253EE6 + mov r1, #1 + b _02253EE8 +_02253EE6: + mov r1, #0 +_02253EE8: + add r0, r4, #0 + add r0, #0x8b + strb r1, [r0] + add r1, r4, #0 + mov r0, #0 + add r1, #0x8e + strb r0, [r1] + add r1, r4, #0 + add r1, #0x8c + strh r0, [r1] + add r1, r4, #0 + add r1, #0x70 + str r1, [r4, #0x6c] + add r1, r4, #0 + ldrb r2, [r5, #0xd] + add r1, #0x87 + strb r2, [r1] + add r1, r4, #0 + add r1, #0x86 + strb r0, [r1] +_02253F10: + add r0, r4, #0 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD20_02253E74 + + thumb_func_start MOD20_02253F14 +MOD20_02253F14: ; 0x02253F14 + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_022540FC + add r0, r5, #0 + add r1, r4, #0 + bl MOD20_02254080 + pop {r3, r4, r5, pc} + thumb_func_end MOD20_02253F14 + + thumb_func_start MOD20_02253F28 +MOD20_02253F28: ; 0x02253F28 + push {r4, lr} + add r4, r0, #0 + lsl r1, r1, #0x10 + ldr r0, [r4, #4] + lsr r1, r1, #0x10 + bl NNS_G2dGetAnimSequenceByIdx + add r1, r0, #0 + add r0, r4, #0 + ldr r2, [r4] + add r0, #8 + bl NNS_G2dInitCellAnimation + pop {r4, pc} + thumb_func_end MOD20_02253F28 + + thumb_func_start MOD20_02253F44 +MOD20_02253F44: ; 0x02253F44 + ldr r0, [r0, #0x10] + cmp r0, #0 + bne _02253F4E + mov r0, #1 + bx lr +_02253F4E: + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD20_02253F44 + + thumb_func_start MOD20_02253F54 +MOD20_02253F54: ; 0x02253F54 + ldr r3, [r0, #0x64] + add r1, r3, r1 + str r1, [r0, #0x64] + ldr r1, [r0, #0x68] + add r1, r1, r2 + str r1, [r0, #0x68] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253F54 + + thumb_func_start MOD20_02253F64 +MOD20_02253F64: ; 0x02253F64 + str r1, [r0, #0x64] + str r2, [r0, #0x68] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253F64 + + thumb_func_start MOD20_02253F6C +MOD20_02253F6C: ; 0x02253F6C + ldr r3, [r0, #0x64] + str r3, [r1] + ldr r0, [r0, #0x68] + str r0, [r2] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253F6C + + thumb_func_start MOD20_02253F78 +MOD20_02253F78: ; 0x02253F78 + add r0, #0x86 + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253F78 + + thumb_func_start MOD20_02253F80 +MOD20_02253F80: ; 0x02253F80 + push {r4, r5, r6, lr} + add r5, r1, #0 + add r6, r0, #0 + add r4, r2, #0 + bl MOD20_022540FC + add r0, r5, #0 + add r0, #0x80 + strh r4, [r0] + add r0, r6, #0 + add r1, r5, #0 + bl MOD20_022540A4 + pop {r4, r5, r6, pc} + thumb_func_end MOD20_02253F80 + + thumb_func_start MOD20_02253F9C +MOD20_02253F9C: ; 0x02253F9C + add r0, #0x84 + strh r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253F9C + + thumb_func_start MOD20_02253FA4 +MOD20_02253FA4: ; 0x02253FA4 + add r0, #0x88 + strh r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253FA4 + + thumb_func_start MOD20_02253FAC +MOD20_02253FAC: ; 0x02253FAC + add r0, #0x8e + strb r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253FAC + + thumb_func_start MOD20_02253FB4 +MOD20_02253FB4: ; 0x02253FB4 + add r0, #0x8c + strh r1, [r0] + bx lr + .align 2, 0 + thumb_func_end MOD20_02253FB4 + + thumb_func_start MOD20_02253FBC +MOD20_02253FBC: ; 0x02253FBC + push {r3, r4, r5, r6, r7, lr} + ldr r4, [sp, #0x18] + add r5, r0, #0 + add r6, r1, #0 + add r1, r2, #0 + add r7, r3, #0 + str r4, [r5, #0x10] + add r0, r6, #0 + add r2, r4, #0 + bl GfGfxLoader_UncompressFromNarc + str r0, [r5] + add r0, r6, #0 + add r1, r7, #0 + add r2, r4, #0 + bl GfGfxLoader_UncompressFromNarc + str r0, [r5, #4] + ldr r0, [r5] + cmp r0, #0 + beq _0225400E + ldr r1, [r5, #4] + cmp r1, #0 + beq _0225400E + add r1, r5, #0 + add r1, #8 + bl NNS_G2dGetUnpackedCellBank + cmp r0, #0 + bne _02253FFC + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_02253FFC: + ldr r0, [r5, #4] + add r5, #0xc + add r1, r5, #0 + bl NNS_G2dGetUnpackedMCAnimBank + cmp r0, #0 + bne _0225400E + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} +_0225400E: + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 + thumb_func_end MOD20_02253FBC + + thumb_func_start MOD20_02254014 +MOD20_02254014: ; 0x02254014 + push {r4, lr} + add r4, r0, #0 + ldr r1, [r4] + cmp r1, #0 + beq _02254028 + ldr r0, [r4, #0x10] + bl FreeToHeapExplicit + mov r0, #0 + str r0, [r4] +_02254028: + ldr r1, [r4, #4] + cmp r1, #0 + beq _02254038 + ldr r0, [r4, #0x10] + bl FreeToHeapExplicit + mov r0, #0 + str r0, [r4, #4] +_02254038: + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD20_02254014 + + thumb_func_start MOD20_0225403C +MOD20_0225403C: ; 0x0225403C + push {r4, r5, r6, lr} + add r6, r2, #0 + add r5, r0, #0 + add r0, r6, #0 + add r4, r1, #0 + sub r6, r6, #1 + cmp r0, #0 + beq _0225405E +_0225404C: + add r0, r4, #0 + stmia r5!, {r4} + bl MOD20_02254060 + add r0, r6, #0 + add r4, #0x90 + sub r6, r6, #1 + cmp r0, #0 + bne _0225404C +_0225405E: + pop {r4, r5, r6, pc} + thumb_func_end MOD20_0225403C + + thumb_func_start MOD20_02254060 +MOD20_02254060: ; 0x02254060 + mov r1, #0 + str r1, [r0, #0x5c] + str r1, [r0, #0x60] + bx lr + thumb_func_end MOD20_02254060 + + thumb_func_start MOD20_02254068 +MOD20_02254068: ; 0x02254068 + ldrh r2, [r0, #0x12] + ldrh r1, [r0, #0x10] + cmp r2, r1 + bhs _0225407C + add r1, r2, #1 + strh r1, [r0, #0x12] + ldr r1, [r0, #4] + lsl r0, r2, #2 + ldr r0, [r1, r0] + bx lr +_0225407C: + mov r0, #0 + bx lr + thumb_func_end MOD20_02254068 + + thumb_func_start MOD20_02254080 +MOD20_02254080: ; 0x02254080 + push {r3, r4, r5, lr} + add r5, r0, #0 + ldrh r0, [r5, #0x12] + add r4, r1, #0 + cmp r0, #0 + beq _022540A0 + add r0, r4, #0 + bl MOD20_02254060 + ldrh r0, [r5, #0x12] + sub r0, r0, #1 + strh r0, [r5, #0x12] + ldrh r0, [r5, #0x12] + ldr r1, [r5, #4] + lsl r0, r0, #2 + str r4, [r1, r0] +_022540A0: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD20_02254080 + + thumb_func_start MOD20_022540A4 +MOD20_022540A4: ; 0x022540A4 + push {r4, r5} + ldr r3, [r0, #8] + cmp r3, #0 + bne _022540B8 + str r1, [r0, #8] + mov r0, #0 + str r0, [r1, #0x5c] + str r0, [r1, #0x60] + pop {r4, r5} + bx lr +_022540B8: + add r4, r1, #0 + add r4, #0x80 + ldr r5, [r4] + add r2, r3, #0 +_022540C0: + add r4, r2, #0 + add r4, #0x80 + ldr r4, [r4] + cmp r5, r4 + bhs _022540E2 + cmp r2, r3 + bne _022540D0 + str r1, [r0, #8] +_022540D0: + ldr r0, [r2, #0x60] + str r0, [r1, #0x60] + cmp r0, #0 + beq _022540DA + str r1, [r0, #0x5c] +_022540DA: + str r2, [r1, #0x5c] + str r1, [r2, #0x60] + pop {r4, r5} + bx lr +_022540E2: + ldr r4, [r2, #0x5c] + cmp r4, #0 + bne _022540F4 + str r1, [r2, #0x5c] + str r2, [r1, #0x60] + mov r0, #0 + str r0, [r1, #0x5c] + pop {r4, r5} + bx lr +_022540F4: + add r2, r4, #0 + b _022540C0 + thumb_func_end MOD20_022540A4 + + thumb_func_start MOD20_022540F8 +MOD20_022540F8: ; 0x022540F8 + pop {r4, r5} + bx lr + thumb_func_end MOD20_022540F8 + + thumb_func_start MOD20_022540FC +MOD20_022540FC: ; 0x022540FC + ldr r2, [r1, #0x60] + cmp r2, #0 + beq _02254118 + ldr r0, [r1, #0x5c] + cmp r0, #0 + beq _02254112 + str r0, [r2, #0x5c] + ldr r2, [r1, #0x60] + ldr r0, [r1, #0x5c] + str r2, [r0, #0x60] + bx lr +_02254112: + mov r0, #0 + str r0, [r2, #0x5c] + bx lr +_02254118: + ldr r3, [r1, #0x5c] + cmp r3, #0 + beq _02254128 + mov r2, #0 + str r2, [r3, #0x60] + ldr r1, [r1, #0x5c] + str r1, [r0, #8] + bx lr +_02254128: + mov r1, #0 + str r1, [r0, #8] + bx lr + .align 2, 0 + thumb_func_end MOD20_022540FC diff --git a/arm9/modules/20/asm/mod20_02254130.s b/arm9/modules/20/asm/mod20_02254130.s new file mode 100644 index 00000000..49c753c7 --- /dev/null +++ b/arm9/modules/20/asm/mod20_02254130.s @@ -0,0 +1,458 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 2, 0 + + thumb_func_start MOD20_02254130 +MOD20_02254130: ; 0x02254130 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r6, r0, #0 + add r7, r1, #0 + str r2, [sp] + str r3, [sp, #4] + ldr r5, [sp, #0x20] + bne _02254144 + bl GF_AssertFail +_02254144: + add r0, r5, #0 + mov r1, #0x18 + bl AllocFromHeap + add r4, r0, #0 + beq _02254192 + ldr r0, [sp] + str r5, [r4, #8] + str r0, [r4, #4] + str r6, [r4] + mov r1, #0xe + ldr r0, [sp, #4] + str r7, [r4, #0xc] + str r0, [r4, #0x10] + add r0, r5, #0 + mul r1, r7 + bl AllocFromHeap + str r0, [r4, #0x14] + cmp r0, #0 + beq _02254188 + mov r6, #0 + cmp r7, #0 + bls _02254192 + add r5, r6, #0 +_02254176: + ldr r0, [r4, #0x14] + add r0, r0, r5 + bl MOD20_022542E4 + add r6, r6, #1 + add r5, #0xe + cmp r6, r7 + blo _02254176 + b _02254192 +_02254188: + add r0, r5, #0 + add r1, r4, #0 + bl FreeToHeapExplicit + mov r4, #0 +_02254192: + add r0, r4, #0 + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + thumb_func_end MOD20_02254130 + + thumb_func_start MOD20_02254198 +MOD20_02254198: ; 0x02254198 + push {r4, lr} + add r4, r0, #0 + bne _022541A2 + bl GF_AssertFail +_022541A2: + ldr r0, [r4, #8] + ldr r1, [r4, #0x14] + bl FreeToHeapExplicit + ldr r0, [r4, #8] + add r1, r4, #0 + bl FreeToHeapExplicit + pop {r4, pc} + thumb_func_end MOD20_02254198 + + thumb_func_start MOD20_022541B4 +MOD20_022541B4: ; 0x022541B4 + push {r3, r4, r5, r6, r7, lr} + sub sp, #8 + add r5, r0, #0 + bl FUN_02020A98 + str r0, [sp, #4] + cmp r0, #0 + beq _0225420C + bl FUN_02020AA4 + ldr r1, [r5, #0xc] + mov r7, #0 + str r0, [sp] + cmp r1, #0 + bls _02254232 + add r4, r7, #0 + add r6, r7, #0 +_022541D6: + ldr r0, [r5, #0x14] + add r1, r0, r4 + ldrb r0, [r1, #1] + strb r0, [r1, #2] + ldr r0, [r5, #0x14] + add r0, r0, r4 + ldrb r0, [r0, #1] + cmp r0, #0 + ldr r0, [r5] + beq _022541F2 + add r0, r0, r6 + bl FUN_02020A40 + b _022541F8 +_022541F2: + add r0, r0, r6 + bl FUN_02020A6C +_022541F8: + ldr r1, [r5, #0x14] + add r7, r7, #1 + add r1, r1, r4 + strb r0, [r1, #1] + ldr r1, [r5, #0xc] + add r4, #0xe + add r6, r6, #4 + cmp r7, r1 + blo _022541D6 + b _02254232 +_0225420C: + ldr r1, [r5, #0xc] + mov r2, #0 + str r2, [sp] + cmp r1, #0 + bls _02254232 + add r0, r2, #0 + add r3, r2, #0 +_0225421A: + ldr r1, [r5, #0x14] + add r2, r2, #1 + add r4, r1, r0 + ldrb r1, [r4, #1] + strb r1, [r4, #2] + ldr r1, [r5, #0x14] + add r1, r1, r0 + strb r3, [r1, #1] + ldr r1, [r5, #0xc] + add r0, #0xe + cmp r2, r1 + blo _0225421A +_02254232: + mov r6, #0 + cmp r1, #0 + bls _02254278 + ldr r7, _022542A8 ; =MOD20_02254710 + add r4, r6, #0 +_0225423C: + ldr r3, [r5, #0x14] + ldr r1, [sp, #4] + add r0, r3, r4 + ldrb r3, [r3, r4] + ldr r2, [sp] + lsl r3, r3, #2 + ldr r3, [r7, r3] + blx r3 + add r1, r0, #0 + ldr r0, [r5, #0x14] + add r0, r0, r4 + ldrb r2, [r0, #1] + ldrb r0, [r0, #2] + cmp r2, r0 + bne _0225425C + mov r2, #2 +_0225425C: + cmp r1, #0 + bne _02254264 + cmp r2, #2 + beq _0225426E +_02254264: + ldr r3, [r5, #0x10] + ldr r4, [r5, #4] + add r0, r6, #0 + blx r4 + b _02254278 +_0225426E: + ldr r0, [r5, #0xc] + add r6, r6, #1 + add r4, #0xe + cmp r6, r0 + blo _0225423C +_02254278: + ldr r0, [r5, #0xc] + add r6, r6, #1 + cmp r6, r0 + bhs _022542A2 + mov r0, #0xe + add r4, r6, #0 + ldr r7, _022542A8 ; =MOD20_02254710 + mul r4, r0 +_02254288: + ldr r3, [r5, #0x14] + ldr r1, [sp, #4] + add r0, r3, r4 + ldrb r3, [r3, r4] + ldr r2, [sp] + lsl r3, r3, #2 + ldr r3, [r7, r3] + blx r3 + ldr r0, [r5, #0xc] + add r6, r6, #1 + add r4, #0xe + cmp r6, r0 + blo _02254288 +_022542A2: + add sp, #8 + pop {r3, r4, r5, r6, r7, pc} + nop +_022542A8: .word MOD20_02254710 + thumb_func_end MOD20_022541B4 + + thumb_func_start MOD20_022542AC +MOD20_022542AC: ; 0x022542AC + push {r3, r4} + ldr r4, [r0, #0x14] + mov r0, #0xe + mul r0, r1 + add r1, r4, r0 + lsl r0, r2, #1 + add r0, r1, r0 + strh r3, [r0, #8] + pop {r3, r4} + bx lr + thumb_func_end MOD20_022542AC + + thumb_func_start MOD20_022542C0 +MOD20_022542C0: ; 0x022542C0 + ldr r3, [r0, #0x14] + mov r0, #0xe + mul r0, r1 + add r0, r3, r0 + strh r2, [r0, #0xc] + bx lr + thumb_func_end MOD20_022542C0 + + thumb_func_start MOD20_022542CC +MOD20_022542CC: ; 0x022542CC + add r3, r1, #0 + mov r2, #0xe + mul r3, r2 + ldr r1, [r0, #0x14] + mov r2, #0 + add r1, r1, r3 + strh r2, [r1, #4] + ldr r0, [r0, #0x14] + mov r1, #4 + strb r1, [r0, r3] + bx lr + .align 2, 0 + thumb_func_end MOD20_022542CC + + thumb_func_start MOD20_022542E4 +MOD20_022542E4: ; 0x022542E4 + mov r2, #0 + strb r2, [r0] + strb r2, [r0, #1] + strb r2, [r0, #2] + strh r2, [r0, #4] + strh r2, [r0, #6] + add r3, r0, #0 + add r1, r2, #0 +_022542F4: + add r2, r2, #1 + strh r1, [r3, #8] + add r3, r3, #2 + cmp r2, #2 + blo _022542F4 + strh r1, [r0, #0xc] + bx lr + .align 2, 0 + thumb_func_end MOD20_022542E4 + + thumb_func_start MOD20_02254304 +MOD20_02254304: ; 0x02254304 + strb r1, [r0] + mov r1, #0 + strh r1, [r0, #4] + bx lr + thumb_func_end MOD20_02254304 + + thumb_func_start MOD20_0225430C +MOD20_0225430C: ; 0x0225430C + strb r1, [r0] + bx lr + thumb_func_end MOD20_0225430C + + thumb_func_start MOD20_02254310 +MOD20_02254310: ; 0x02254310 + ldrh r2, [r0, #4] + ldr r1, _02254320 ; =0x0000FFFF + cmp r2, r1 + bhs _0225431C + add r1, r2, #1 + strh r1, [r0, #4] +_0225431C: + bx lr + nop +_02254320: .word 0x0000FFFF + thumb_func_end MOD20_02254310 + + thumb_func_start MOD20_02254324 +MOD20_02254324: ; 0x02254324 + ldrh r3, [r0, #4] + mov r2, #0 +_02254328: + ldrh r1, [r0, #8] + cmp r3, r1 + bne _02254332 + add r0, r2, #5 + bx lr +_02254332: + add r2, r2, #1 + add r0, r0, #2 + cmp r2, #2 + blo _02254328 + mov r0, #0 + bx lr + .align 2, 0 + thumb_func_end MOD20_02254324 + + thumb_func_start MOD20_02254340 +MOD20_02254340: ; 0x02254340 + push {r3, lr} + ldrb r1, [r0, #1] + cmp r1, #0 + beq _02254356 + cmp r2, #0 + beq _02254356 + mov r1, #1 + bl MOD20_02254304 + mov r0, #1 + pop {r3, pc} +_02254356: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD20_02254340 + + thumb_func_start MOD20_0225435C +MOD20_0225435C: ; 0x0225435C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + bl MOD20_02254310 + ldrb r0, [r5, #1] + cmp r0, #0 + beq _0225438A + add r0, r5, #0 + bl MOD20_02254324 + cmp r0, #0 + bne _022543B8 + ldrh r1, [r5, #0xc] + cmp r1, #0 + beq _022543B6 + ldrh r0, [r5, #4] + cmp r0, r1 + blo _022543B6 + mov r0, #0 + strh r0, [r5, #4] + mov r0, #7 + pop {r3, r4, r5, pc} +_0225438A: + cmp r4, #0 + beq _0225439A + add r0, r5, #0 + mov r1, #0 + bl MOD20_02254304 + mov r0, #2 + pop {r3, r4, r5, pc} +_0225439A: + ldrh r0, [r5, #6] + cmp r0, #0 + beq _022543AA + add r0, r5, #0 + mov r1, #2 + bl MOD20_0225430C + b _022543B6 +_022543AA: + add r0, r5, #0 + mov r1, #0 + bl MOD20_02254304 + mov r0, #3 + pop {r3, r4, r5, pc} +_022543B6: + mov r0, #0 +_022543B8: + pop {r3, r4, r5, pc} + .align 2, 0 + thumb_func_end MOD20_0225435C + + thumb_func_start MOD20_022543BC +MOD20_022543BC: ; 0x022543BC + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r2, #0 + bl MOD20_02254310 + ldrh r1, [r5, #4] + ldrh r0, [r5, #6] + cmp r1, r0 + bls _022543DA + add r0, r5, #0 + mov r1, #0 + bl MOD20_02254304 + mov r0, #3 + pop {r3, r4, r5, pc} +_022543DA: + ldrb r0, [r5, #1] + cmp r0, #0 + beq _022543F0 + cmp r4, #0 + beq _022543F0 + add r0, r5, #0 + mov r1, #3 + bl MOD20_02254304 + mov r0, #4 + pop {r3, r4, r5, pc} +_022543F0: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD20_022543BC + + thumb_func_start MOD20_022543F4 +MOD20_022543F4: ; 0x022543F4 + push {r3, lr} + ldrb r1, [r0, #1] + cmp r1, #0 + beq _02254402 + bl MOD20_02254310 + b _02254408 +_02254402: + mov r1, #0 + bl MOD20_02254304 +_02254408: + mov r0, #0 + pop {r3, pc} + thumb_func_end MOD20_022543F4 + + thumb_func_start MOD20_0225440C +MOD20_0225440C: ; 0x0225440C + push {r3, lr} + ldrb r1, [r0, #1] + cmp r1, #0 + bne _0225441A + mov r1, #0 + bl MOD20_02254304 +_0225441A: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD20_0225440C + + .section .rodata + + .global MOD20_02254710 +MOD20_02254710: ; 0x02254710 + .word MOD20_02254340, MOD20_0225435C, MOD20_022543BC, MOD20_022543F4 + .word MOD20_0225440C diff --git a/arm9/modules/20/asm/mod20_02254420.s b/arm9/modules/20/asm/mod20_02254420.s new file mode 100644 index 00000000..4ac3686f --- /dev/null +++ b/arm9/modules/20/asm/mod20_02254420.s @@ -0,0 +1,185 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 2, 0 + + thumb_func_start MOD20_02254420 +MOD20_02254420: ; 0x02254420 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + add r7, r3, #0 + cmp r5, #0x1e + blo _02254432 + bl GF_AssertFail +_02254432: + cmp r4, #0x21 + blo _0225443A + bl GF_AssertFail +_0225443A: + cmp r5, #0x1e + blo _02254440 + mov r5, #0 +_02254440: + cmp r4, #0x21 + blo _02254446 + mov r4, #0 +_02254446: + ldr r0, _02254458 ; =MOD20_02254744 + lsl r1, r5, #1 + ldrh r0, [r0, r1] + lsl r1, r4, #1 + str r0, [r6] + ldr r0, _0225445C ; =MOD20_02254780 + ldrh r0, [r0, r1] + str r0, [r7] + pop {r3, r4, r5, r6, r7, pc} + .align 2, 0 +_02254458: .word MOD20_02254744 +_0225445C: .word MOD20_02254780 + thumb_func_end MOD20_02254420 + + thumb_func_start MOD20_02254460 +MOD20_02254460: ; 0x02254460 + push {r4, r5, r6, lr} + add r5, r0, #0 + add r4, r1, #0 + add r6, r2, #0 + cmp r5, #4 + blo _02254470 + bl GF_AssertFail +_02254470: + ldr r0, _02254480 ; =MOD20_02254724 + lsl r1, r5, #3 + ldr r0, [r0, r1] + str r0, [r4] + ldr r0, _02254484 ; =MOD20_02254724 + 4 + ldr r0, [r0, r1] + str r0, [r6] + pop {r4, r5, r6, pc} + .align 2, 0 +_02254480: .word MOD20_02254724 +_02254484: .word MOD20_02254724 + 4 + thumb_func_end MOD20_02254460 + + thumb_func_start MOD20_02254488 +MOD20_02254488: ; 0x02254488 + push {r4, r5} + ldr r5, _022544B8 ; =MOD20_022547C2 + mov r4, #0 +_0225448E: + ldrh r3, [r5] + cmp r0, r3 + bne _022544A8 + ldr r0, _022544BC ; =MOD20_022547C2 + 2 + lsl r3, r4, #2 + ldrb r0, [r0, r3] + str r0, [r1] + ldr r0, _022544C0 ; =MOD20_022547C2 + 3 + ldrb r0, [r0, r3] + str r0, [r2] + mov r0, #1 + pop {r4, r5} + bx lr +_022544A8: + add r4, r4, #1 + add r5, r5, #4 + cmp r4, #0x1d + blo _0225448E + mov r0, #0 + pop {r4, r5} + bx lr + nop +_022544B8: .word MOD20_022547C2 +_022544BC: .word MOD20_022547C2 + 2 +_022544C0: .word MOD20_022547C2 + 3 + thumb_func_end MOD20_02254488 + + .section .rodata + + .global MOD20_02254724 +MOD20_02254724: ; 0x02254724 + .word 0x00000020, 0x0000002A + .word 0x00000032, 0x0000002A + .word 0x000000A8, 0x0000007A + .word 0x000000C2, 0x0000003A + + .global MOD20_02254744 +MOD20_02254744: ; 0x02254744 + .short 0x001A, 0x0020, 0x0026, 0x002C, 0x0032, 0x0038, 0x003E, 0x0044 + .short 0x004A, 0x0050, 0x0056, 0x005C, 0x0062, 0x0068, 0x006E, 0x0074 + .short 0x007A, 0x0080, 0x0086, 0x008C, 0x0092, 0x0098, 0x009E, 0x00A4 + .short 0x00AA, 0x00B0, 0x00B6, 0x00BC, 0x00C2, 0x00C8 + + .global MOD20_02254780 +MOD20_02254780: ; 0x02254780 + .short 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x001E, 0x0024 + .short 0x002A, 0x0030, 0x0036, 0x003C, 0x0042, 0x0048, 0x004E, 0x0054 + .short 0x005A, 0x0060, 0x0066, 0x006C, 0x0072, 0x0078, 0x007E, 0x0084 + .short 0x008A, 0x0090, 0x0096, 0x009C, 0x00A2, 0x00A8, 0x00AE, 0x00B4 + .short 0x00BA + + .global MOD20_022547C2 +MOD20_022547C2: ; 0x022547C2 + .short 0x0156 + .byte 0x2F, 0x96 + .short 0x0157 + .byte 0x38, 0x90 + .short 0x0158 + .byte 0x41, 0x84 + .short 0x0159 + .byte 0x32, 0x7E + .short 0x015A + .byte 0x32, 0x78 + .short 0x015B + .byte 0x3E, 0x6C + .short 0x015D + .byte 0x4A, 0x5A + .short 0x015E + .byte 0x50, 0x6F + .short 0x0161 + .byte 0x53, 0x7E + .short 0x0162 + .byte 0x65, 0x7E + .short 0x0164 + .byte 0x7D, 0x7E + .short 0x016A + .byte 0x80, 0x66 + .short 0x016B + .byte 0x7A, 0x5A + .short 0x016D + .byte 0x5C, 0x5A + .short 0x016E + .byte 0x68, 0x5A + .short 0x016F + .byte 0x6E, 0x8A + .short 0x0173 + .byte 0x77, 0x96 + .short 0x0175 + .byte 0x98, 0x93 + .short 0x017C + .byte 0x98, 0x78 + .short 0x017E + .byte 0x8C, 0x66 + .short 0x017F + .byte 0x56, 0x42 + .short 0x0181 + .byte 0x50, 0x33 + .short 0x0184 + .byte 0x29, 0x84 + .short 0x0187 + .byte 0x38, 0x9C + .short 0x01D3 + .byte 0x3B, 0xA2 + .short 0x0188 + .byte 0x4A, 0xA2 + .short 0x018B + .byte 0xAA, 0x8A + .short 0x00C8 + .byte 0x44, 0x72 + .short 0x00CC + .byte 0x38, 0x66 + + .data + .bss diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s deleted file mode 100644 index c957045f..00000000 --- a/arm9/modules/20/asm/module_20.s +++ /dev/null @@ -1,4748 +0,0 @@ - .include "asm/macros.inc" - .include "global.inc" - .section .text - .balign 2, 0 - - thumb_func_start MOD20_02252440 -MOD20_02252440: ; 0x02252440 - ldr r3, _02252444 ; =FUN_02037790 - bx r3 - .align 2, 0 -_02252444: .word FUN_02037790 - thumb_func_end MOD20_02252440 - - thumb_func_start MOD20_02252448 -MOD20_02252448: ; 0x02252448 - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r5, r1, #0 - mov r0, #3 - str r2, [sp] - mov r1, #7 - lsl r2, r0, #0xe - add r7, r3, #0 - bl CreateHeap - mov r0, #3 - mov r1, #8 - lsl r2, r0, #0xe - bl CreateHeap - mov r0, #7 - mov r1, #0x60 - bl AllocFromHeap - add r4, r0, #0 - beq _022524B2 - str r4, [r5] - ldr r0, [sp] - str r6, [r4, #0x5c] - str r0, [r4, #0x54] - bl Sav2_Poketch_get - str r0, [r4, #0x58] - ldr r0, [sp, #0x18] - str r7, [r4, #0x4c] - str r0, [r4, #0x50] - add r0, r4, #0 - bl MOD20_0225253C - cmp r0, #0 - beq _022524B2 - bl FUN_0201CC08 - mov r0, #4 - bl FUN_0201CC24 - ldr r0, _022524B4 ; =MOD20_022525F0 - str r5, [r4, #0x34] - add r1, r4, #0 - mov r2, #4 - bl FUN_0200CA44 - str r0, [r4, #0x38] - ldr r0, _022524B8 ; =MOD20_0225259C - add r1, r4, #0 - mov r2, #0 - bl FUN_0200CA44 -_022524B2: - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_022524B4: .word MOD20_022525F0 -_022524B8: .word MOD20_0225259C - thumb_func_end MOD20_02252448 - - thumb_func_start MOD20_022524BC -MOD20_022524BC: ; 0x022524BC - push {r3, lr} - ldrb r1, [r0] - cmp r1, #3 - beq _022524CE - cmp r1, #4 - beq _022524CE - mov r1, #3 - bl MOD20_022525F8 -_022524CE: - pop {r3, pc} - thumb_func_end MOD20_022524BC - - thumb_func_start MOD20_022524D0 -MOD20_022524D0: ; 0x022524D0 - cmp r0, #0 - bne _022524D8 - mov r0, #1 - bx lr -_022524D8: - mov r0, #0 - bx lr - thumb_func_end MOD20_022524D0 - - thumb_func_start MOD20_022524DC -MOD20_022524DC: ; 0x022524DC - push {r4, lr} - add r4, r0, #0 - cmp r1, #5 - bhi _0225252E - add r0, r1, r1 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_022524F0: ; jump table - .short _0225252E - _022524F0 - 2 ; case 0 - .short _022524FC - _022524F0 - 2 ; case 1 - .short _0225252E - _022524F0 - 2 ; case 2 - .short _0225252E - _022524F0 - 2 ; case 3 - .short _0225251E - _022524F0 - 2 ; case 4 - .short _02252502 - _022524F0 - 2 ; case 5 -_022524FC: - mov r0, #1 - strb r0, [r4, #4] - pop {r4, pc} -_02252502: - ldr r0, [r4, #0x58] - bl Sav2_Poketch_GetStepCounter - add r1, r0, #1 - ldr r0, _02252530 ; =0x0001869F - cmp r1, r0 - bls _02252512 - mov r1, #0 -_02252512: - ldr r0, [r4, #0x58] - bl Sav2_Poketch_SetStepCounter - mov r0, #1 - strb r0, [r4, #7] - pop {r4, pc} -_0225251E: - ldrb r0, [r4, #2] - cmp r0, #2 - bne _0225252E - ldr r1, [r4, #0x44] - cmp r1, #0 - beq _0225252E - ldr r0, [r4, #0x48] - blx r1 -_0225252E: - pop {r4, pc} - .align 2, 0 -_02252530: .word 0x0001869F - thumb_func_end MOD20_022524DC - - thumb_func_start MOD20_02252534 -MOD20_02252534: ; 0x02252534 - ldrb r0, [r0, #3] - bx lr - thumb_func_end MOD20_02252534 - - thumb_func_start MOD20_02252538 -MOD20_02252538: ; 0x02252538 - ldr r0, [r0, #0x14] - bx lr - thumb_func_end MOD20_02252538 - - thumb_func_start MOD20_0225253C -MOD20_0225253C: ; 0x0225253C - push {r4, lr} - add r4, r0, #0 - add r1, r4, #0 - ldr r2, [r4, #0x50] - add r0, #0x1c - add r1, #0x20 - add r3, r4, #0 - bl MOD20_02252C5C - cmp r0, #0 - beq _02252578 - mov r1, #0 - strb r1, [r4] - strb r1, [r4, #1] - strb r1, [r4, #3] - strb r1, [r4, #4] - strb r1, [r4, #7] - strb r1, [r4, #5] - strb r1, [r4, #6] - sub r0, r1, #1 - str r0, [r4, #0x14] - strb r1, [r4, #2] - add r0, r4, #0 - str r1, [r4, #8] - bl MOD20_022529C4 - cmp r0, #0 - beq _02252578 - mov r0, #1 - pop {r4, pc} -_02252578: - mov r0, #0 - pop {r4, pc} - thumb_func_end MOD20_0225253C - - thumb_func_start MOD20_0225257C -MOD20_0225257C: ; 0x0225257C - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4, #0x38] - bl FUN_0200CAB4 - add r0, r4, #0 - bl MOD20_02252A08 - add r0, r4, #0 - bl ClosePoketchApp - ldr r0, [r4, #0x1c] - bl MOD20_02252E18 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD20_0225257C - - thumb_func_start MOD20_0225259C -MOD20_0225259C: ; 0x0225259C - push {r3, r4, r5, lr} - add r4, r1, #0 - add r5, r0, #0 - ldrb r0, [r4] - cmp r0, #4 - bhs _022525C0 - cmp r0, #0 - beq _022525B2 - add r0, r4, #0 - bl MOD20_02252A14 -_022525B2: - ldrb r1, [r4] - add r0, r4, #0 - lsl r2, r1, #2 - ldr r1, _022525EC ; =MOD20_022544CC - ldr r1, [r1, r2] - blx r1 - pop {r3, r4, r5, pc} -_022525C0: - beq _022525C6 - bl GF_AssertFail -_022525C6: - ldr r0, [r4, #0x34] - mov r1, #0 - str r1, [r0] - add r0, r4, #0 - bl MOD20_0225257C - add r0, r4, #0 - bl FreeToHeap - add r0, r5, #0 - bl FUN_0200CAB4 - mov r0, #7 - bl DestroyHeap - mov r0, #8 - bl DestroyHeap - pop {r3, r4, r5, pc} - .align 2, 0 -_022525EC: .word MOD20_022544CC - thumb_func_end MOD20_0225259C - - thumb_func_start MOD20_022525F0 -MOD20_022525F0: ; 0x022525F0 - mov r0, #0 - strb r0, [r1, #4] - strb r0, [r1, #7] - bx lr - thumb_func_end MOD20_022525F0 - - thumb_func_start MOD20_022525F8 -MOD20_022525F8: ; 0x022525F8 - strb r1, [r0] - mov r1, #0 - strb r1, [r0, #1] - bx lr - thumb_func_end MOD20_022525F8 - - thumb_func_start MOD20_02252600 -MOD20_02252600: ; 0x02252600 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldrb r1, [r4, #1] - cmp r1, #3 - bhi _02252684 - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02252616: ; jump table - .short _0225261E - _02252616 - 2 ; case 0 - .short _0225262E - _02252616 - 2 ; case 1 - .short _0225265A - _02252616 - 2 ; case 2 - .short _02252670 - _02252616 - 2 ; case 3 -_0225261E: - ldr r0, [r4, #0x1c] - mov r1, #0 - bl MOD20_02252E80 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_0225262E: - ldr r0, [r4, #0x1c] - mov r1, #0 - bl MOD20_02252EA4 - cmp r0, #0 - beq _02252684 - ldr r0, [r4, #0x58] - bl Sav2_Poketch_GetSelectedApp - add r5, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl LoadPoketchApp - add r0, r4, #0 - add r1, r5, #0 - bl MOD20_02252918 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_0225265A: - bl MOD20_0225293C - cmp r0, #0 - beq _02252684 - ldr r0, [r4, #0x1c] - mov r1, #1 - bl MOD20_02252E80 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] -_02252670: - ldr r0, [r4, #0x1c] - mov r1, #1 - bl MOD20_02252EA4 - cmp r0, #0 - beq _02252684 - add r0, r4, #0 - mov r1, #1 - bl MOD20_022525F8 -_02252684: - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end MOD20_02252600 - - thumb_func_start MOD20_02252688 -MOD20_02252688: ; 0x02252688 - push {r4, lr} - add r4, r0, #0 - ldrb r1, [r4, #1] - cmp r1, #4 - bls _02252694 - b _022527AA -_02252694: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_022526A0: ; jump table - .short _022526AA - _022526A0 - 2 ; case 0 - .short _022526D4 - _022526A0 - 2 ; case 1 - .short _0225271A - _022526A0 - 2 ; case 2 - .short _02252750 - _022526A0 - 2 ; case 3 - .short _0225276C - _022526A0 - 2 ; case 4 -_022526AA: - bl MOD20_02252C08 - cmp r0, #0 - bne _022527AA - ldr r0, [r4, #8] - cmp r0, #3 - beq _022526BC - cmp r0, #5 - bne _022527AA -_022526BC: - mov r0, #0 - str r0, [r4, #0xc] - mov r0, #1 - strb r0, [r4, #5] - ldr r0, [r4, #0x1c] - mov r1, #4 - bl MOD20_02252E80 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - pop {r4, pc} -_022526D4: - ldr r0, [r4, #8] - cmp r0, #3 - beq _022526DE - cmp r0, #5 - bne _022526E2 -_022526DE: - mov r0, #1 - str r0, [r4, #0xc] -_022526E2: - ldr r0, [r4, #0x1c] - bl MOD20_02252EB0 - cmp r0, #0 - beq _022527AA - ldr r0, [r4, #0x58] - bl Sav2_Poketch_CycleNextApp - str r0, [r4, #0x20] - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _02252710 - ldr r0, [r4, #0x1c] - mov r1, #9 - bl MOD20_02252E80 - mov r0, #0x1e - str r0, [r4, #0x10] - mov r0, #0 - str r0, [r4, #0xc] - mov r0, #4 - strb r0, [r4, #1] - pop {r4, pc} -_02252710: - mov r0, #3 - str r0, [r4, #0x10] - mov r0, #2 - strb r0, [r4, #1] - pop {r4, pc} -_0225271A: - ldr r1, [r4, #8] - cmp r1, #3 - beq _02252724 - cmp r1, #5 - bne _0225273A -_02252724: - ldr r0, [r4, #0x1c] - mov r1, #9 - bl MOD20_02252E80 - mov r0, #0x1e - str r0, [r4, #0x10] - mov r0, #0 - str r0, [r4, #0xc] - mov r0, #4 - strb r0, [r4, #1] - pop {r4, pc} -_0225273A: - ldr r1, [r4, #0x10] - cmp r1, #0 - beq _02252746 - sub r0, r1, #1 - str r0, [r4, #0x10] - pop {r4, pc} -_02252746: - bl MOD20_0225294C - mov r0, #3 - strb r0, [r4, #1] - pop {r4, pc} -_02252750: - bl MOD20_02252968 - cmp r0, #0 - beq _022527AA - add r0, r4, #0 - bl ClosePoketchApp - bl FUN_020893E0 - add r0, r4, #0 - mov r1, #2 - bl MOD20_022525F8 - pop {r4, pc} -_0225276C: - ldr r0, [r4, #8] - cmp r0, #3 - beq _02252776 - cmp r0, #5 - bne _0225278C -_02252776: - ldr r0, [r4, #0x58] - bl Sav2_Poketch_CycleNextApp - str r0, [r4, #0x20] - mov r0, #0x1e - str r0, [r4, #0x10] - ldr r0, [r4, #0x1c] - mov r1, #0xa - bl MOD20_02252E80 - pop {r4, pc} -_0225278C: - ldr r0, [r4, #0x10] - cmp r0, #0 - beq _02252798 - sub r0, r0, #1 - str r0, [r4, #0x10] - pop {r4, pc} -_02252798: - ldr r0, [r4, #0x1c] - mov r1, #0xb - bl MOD20_02252E80 - add r0, r4, #0 - bl MOD20_0225294C - mov r0, #3 - strb r0, [r4, #1] -_022527AA: - pop {r4, pc} - thumb_func_end MOD20_02252688 - - thumb_func_start MOD20_022527AC -MOD20_022527AC: ; 0x022527AC - push {r3, r4, r5, lr} - add r4, r0, #0 - ldrb r1, [r4, #1] - cmp r1, #0 - beq _022527C0 - cmp r1, #1 - beq _022527E4 - cmp r1, #2 - beq _022527FC - pop {r3, r4, r5, pc} -_022527C0: - mov r0, #1 - strb r0, [r4, #6] - ldr r0, [r4, #0x58] - bl Sav2_Poketch_GetSelectedApp - add r5, r0, #0 - add r0, r4, #0 - add r1, r5, #0 - bl LoadPoketchApp - add r0, r4, #0 - add r1, r5, #0 - bl MOD20_02252918 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_022527E4: - bl MOD20_0225293C - cmp r0, #0 - beq _02252816 - ldr r0, [r4, #0x1c] - mov r1, #2 - bl MOD20_02252E80 - ldrb r0, [r4, #1] - add r0, r0, #1 - strb r0, [r4, #1] - pop {r3, r4, r5, pc} -_022527FC: - ldr r0, [r4, #0x1c] - mov r1, #2 - bl MOD20_02252EA4 - cmp r0, #0 - beq _02252816 - mov r0, #0 - strb r0, [r4, #5] - strb r0, [r4, #6] - add r0, r4, #0 - mov r1, #1 - bl MOD20_022525F8 -_02252816: - pop {r3, r4, r5, pc} - thumb_func_end MOD20_022527AC - - thumb_func_start MOD20_02252818 -MOD20_02252818: ; 0x02252818 - push {r4, lr} - add r4, r0, #0 - ldrb r1, [r4, #1] - cmp r1, #3 - bhi _022528AC - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0225282E: ; jump table - .short _02252836 - _0225282E - 2 ; case 0 - .short _02252866 - _0225282E - 2 ; case 1 - .short _0225287A - _0225282E - 2 ; case 2 - .short _02252890 - _0225282E - 2 ; case 3 -_02252836: - ldrb r1, [r4, #2] - cmp r1, #3 - bhi _022528AC - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_02252848: ; jump table - .short _02252860 - _02252848 - 2 ; case 0 - .short _02252850 - _02252848 - 2 ; case 1 - .short _02252856 - _02252848 - 2 ; case 2 - .short _02252860 - _02252848 - 2 ; case 3 -_02252850: - mov r0, #1 - strb r0, [r4, #1] - pop {r4, pc} -_02252856: - bl MOD20_0225294C - mov r0, #2 - strb r0, [r4, #1] - pop {r4, pc} -_02252860: - mov r0, #2 - strb r0, [r4, #1] - pop {r4, pc} -_02252866: - bl MOD20_0225293C - cmp r0, #0 - beq _022528AC - add r0, r4, #0 - bl MOD20_0225294C - mov r0, #2 - strb r0, [r4, #1] - pop {r4, pc} -_0225287A: - bl MOD20_02252968 - cmp r0, #0 - beq _022528AC - ldr r0, [r4, #0x1c] - mov r1, #0xe - bl MOD20_02252E80 - mov r0, #3 - strb r0, [r4, #1] - pop {r4, pc} -_02252890: - ldr r0, [r4, #0x1c] - bl MOD20_02252EB0 - cmp r0, #0 - beq _022528AC - add r0, r4, #0 - bl ClosePoketchApp - bl FUN_0201CD04 - add r0, r4, #0 - mov r1, #4 - bl MOD20_022525F8 -_022528AC: - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD20_02252818 - - thumb_func_start LoadPoketchApp -LoadPoketchApp: ; 0x022528B0 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - bmi _022528BC - cmp r4, #0x19 - blo _022528C0 -_022528BC: - bl GF_AssertFail -_022528C0: - mov r0, #0 - ldr r1, [r5, #0x14] - mvn r0, r0 - cmp r1, r0 - bne _022528F0 - ldr r2, _022528F4 ; =sPoketchAppOverlayMapping - mov r1, #0 -_022528CE: - ldr r0, [r2] - cmp r4, r0 - bne _022528E8 - ldr r0, _022528F8 ; =sPoketchAppOverlayMapping + 4 - lsl r1, r1, #3 - ldr r6, [r0, r1] - mov r1, #2 - add r0, r6, #0 - bl HandleLoadOverlay - str r4, [r5, #0x14] - str r6, [r5, #0x18] - pop {r4, r5, r6, pc} -_022528E8: - add r1, r1, #1 - add r2, #8 - cmp r1, #0x19 - blo _022528CE -_022528F0: - pop {r4, r5, r6, pc} - nop -_022528F4: .word sPoketchAppOverlayMapping -_022528F8: .word sPoketchAppOverlayMapping + 4 - thumb_func_end LoadPoketchApp - - thumb_func_start ClosePoketchApp -ClosePoketchApp: ; 0x022528FC - push {r4, lr} - add r4, r0, #0 - mov r0, #0 - ldr r1, [r4, #0x14] - mvn r0, r0 - cmp r1, r0 - beq _02252916 - ldr r0, [r4, #0x18] - bl UnloadOverlayByID - mov r0, #0 - mvn r0, r0 - str r0, [r4, #0x14] -_02252916: - pop {r4, pc} - thumb_func_end ClosePoketchApp - - thumb_func_start MOD20_02252918 -MOD20_02252918: ; 0x02252918 - push {r3, r4, r5, lr} - add r4, r0, #0 - ldrb r0, [r4, #2] - cmp r0, #0 - beq _02252926 - bl GF_AssertFail -_02252926: - add r0, r4, #0 - ldr r2, [r4, #0x4c] - ldr r3, [r4, #0x14] - ldr r5, [r4, #0x3c] - add r0, #0x24 - add r1, r4, #0 - blx r5 - mov r0, #1 - strb r0, [r4, #2] - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end MOD20_02252918 - - thumb_func_start MOD20_0225293C -MOD20_0225293C: ; 0x0225293C - ldrb r0, [r0, #2] - cmp r0, #2 - bne _02252946 - mov r0, #1 - bx lr -_02252946: - mov r0, #0 - bx lr - .align 2, 0 - thumb_func_end MOD20_0225293C - - thumb_func_start MOD20_0225294C -MOD20_0225294C: ; 0x0225294C - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #2] - cmp r0, #2 - beq _0225295A - bl GF_AssertFail -_0225295A: - ldr r0, [r4, #0x24] - ldr r1, [r4, #0x40] - blx r1 - mov r0, #3 - strb r0, [r4, #2] - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD20_0225294C - - thumb_func_start MOD20_02252968 -MOD20_02252968: ; 0x02252968 - ldrb r0, [r0, #2] - cmp r0, #0 - bne _02252972 - mov r0, #1 - bx lr -_02252972: - mov r0, #0 - bx lr - .align 2, 0 - thumb_func_end MOD20_02252968 - - thumb_func_start Poketch_InitApp -Poketch_InitApp: ; 0x02252978 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_02252440 - str r5, [r0, #0x3c] - str r4, [r0, #0x40] - mov r1, #0 - str r1, [r0, #0x44] - pop {r3, r4, r5, pc} - thumb_func_end Poketch_InitApp - - thumb_func_start MOD20_0225298C -MOD20_0225298C: ; 0x0225298C - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #2] - cmp r0, #1 - beq _0225299A - bl GF_AssertFail -_0225299A: - mov r0, #2 - strb r0, [r4, #2] - pop {r4, pc} - thumb_func_end MOD20_0225298C - - thumb_func_start MOD20_022529A0 -MOD20_022529A0: ; 0x022529A0 - push {r4, lr} - add r4, r0, #0 - ldrb r0, [r4, #2] - cmp r0, #3 - beq _022529AE - bl GF_AssertFail -_022529AE: - mov r0, #0 - strb r0, [r4, #2] - pop {r4, pc} - thumb_func_end MOD20_022529A0 - - thumb_func_start MOD20_022529B4 -MOD20_022529B4: ; 0x022529B4 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_02252440 - str r5, [r0, #0x44] - str r4, [r0, #0x48] - pop {r3, r4, r5, pc} - thumb_func_end MOD20_022529B4 - - thumb_func_start MOD20_022529C4 -MOD20_022529C4: ; 0x022529C4 - push {r3, r4, lr} - sub sp, #4 - add r4, r0, #0 - mov r0, #7 - str r0, [sp] - ldr r0, _02252A00 ; =MOD20_022544C4 - ldr r2, _02252A04 ; =MOD20_02252A24 - mov r1, #2 - add r3, r4, #0 - bl MOD20_02254130 - str r0, [r4, #0x28] - cmp r0, #0 - beq _022529F8 - mov r1, #0 - add r2, r1, #0 - mov r3, #7 - bl MOD20_022542AC - mov r0, #0 - mvn r0, r0 - str r0, [r4, #0x2c] - str r0, [r4, #0x30] - add sp, #4 - mov r0, #1 - pop {r3, r4, pc} -_022529F8: - mov r0, #0 - add sp, #4 - pop {r3, r4, pc} - nop -_02252A00: .word MOD20_022544C4 -_02252A04: .word MOD20_02252A24 - thumb_func_end MOD20_022529C4 - - thumb_func_start MOD20_02252A08 -MOD20_02252A08: ; 0x02252A08 - ldr r3, _02252A10 ; =MOD20_02254198 - ldr r0, [r0, #0x28] - bx r3 - nop -_02252A10: .word MOD20_02254198 - thumb_func_end MOD20_02252A08 - - thumb_func_start MOD20_02252A14 -MOD20_02252A14: ; 0x02252A14 - ldr r3, _02252A20 ; =MOD20_022541B4 - mov r1, #0 - str r1, [r0, #8] - ldr r0, [r0, #0x28] - bx r3 - nop -_02252A20: .word MOD20_022541B4 - thumb_func_end MOD20_02252A14 - - thumb_func_start MOD20_02252A24 -MOD20_02252A24: ; 0x02252A24 - push {r3, r4, r5, r6, r7, lr} - add r5, r3, #0 - add r4, r0, #0 - add r0, r5, #0 - add r6, r1, #0 - add r7, r2, #0 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252A4C - cmp r7, #0 - beq _02252A46 - cmp r7, #1 - bne _02252A50 - mov r0, #1 - strb r0, [r5, #3] - b _02252A50 -_02252A46: - mov r0, #0 - strb r0, [r5, #3] - b _02252A50 -_02252A4C: - mov r0, #0 - strb r0, [r5, #3] -_02252A50: - cmp r4, #1 - bne _02252A6A - add r0, r5, #0 - bl MOD20_02252C08 - cmp r0, #0 - beq _02252AEA - cmp r7, #1 - bne _02252AEA - ldr r0, _02252AEC ; =0x0000066E - bl PlaySE - pop {r3, r4, r5, r6, r7, pc} -_02252A6A: - mov r4, #0 - mvn r4, r4 - cmp r7, #0 - beq _02252A78 - cmp r7, #1 - beq _02252A7C - b _02252A94 -_02252A78: - mov r4, #8 - b _02252A94 -_02252A7C: - add r0, r5, #0 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252A8C - ldrb r0, [r5, #6] - cmp r0, #0 - beq _02252A92 -_02252A8C: - mov r4, #6 - mov r6, #0 - b _02252A94 -_02252A92: - mov r4, #7 -_02252A94: - mov r0, #0 - ldr r1, [r5, #0x2c] - mvn r0, r0 - cmp r1, r0 - beq _02252AA4 - add r0, r4, #0 - add r4, r1, #0 - str r0, [r5, #0x2c] -_02252AA4: - mov r0, #0 - mvn r0, r0 - cmp r4, r0 - beq _02252AC0 - ldr r0, [r5, #0x1c] - add r1, r4, #0 - bl MOD20_02252AF0 - cmp r0, #0 - beq _02252AC0 - sub r0, r4, #6 - cmp r0, #1 - bhi _02252AC0 - str r4, [r5, #0x30] -_02252AC0: - cmp r6, #2 - beq _02252AE0 - cmp r6, #3 - beq _02252AD6 - cmp r6, #5 - bne _02252AE8 - ldr r0, [r5, #0x28] - mov r1, #0 - bl MOD20_022542CC - b _02252AE8 -_02252AD6: - ldr r0, [r5, #0x30] - cmp r0, #6 - bne _02252AE8 - mov r6, #0 - b _02252AE8 -_02252AE0: - ldr r0, [r5, #0x30] - cmp r0, #7 - bne _02252AE8 - mov r6, #3 -_02252AE8: - str r6, [r5, #8] -_02252AEA: - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02252AEC: .word 0x0000066E - thumb_func_end MOD20_02252A24 - - thumb_func_start MOD20_02252AF0 -MOD20_02252AF0: ; 0x02252AF0 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r4, #0 -_02252AF8: - add r0, r5, #0 - add r1, r6, #0 - bl MOD20_02252EA4 - cmp r0, #0 - bne _02252B08 - mov r0, #0 - pop {r4, r5, r6, pc} -_02252B08: - add r4, r4, #1 - cmp r4, #3 - blo _02252AF8 - add r0, r5, #0 - add r1, r6, #0 - bl MOD20_02252E80 - mov r0, #1 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end MOD20_02252AF0 - - thumb_func_start MOD20_02252B1C -MOD20_02252B1C: ; 0x02252B1C - push {r3, lr} - bl MOD20_02252440 - ldr r0, [r0, #0x1c] - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD20_02252B1C - - thumb_func_start MOD20_02252B28 -MOD20_02252B28: ; 0x02252B28 - push {r4, lr} - add r4, r0, #0 - bl MOD20_02252440 - ldrb r1, [r0, #5] - cmp r1, #0 - bne _02252B46 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252B46 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl PlaySE -_02252B46: - pop {r4, pc} - thumb_func_end MOD20_02252B28 - - thumb_func_start MOD20_02252B48 -MOD20_02252B48: ; 0x02252B48 - push {r4, lr} - add r4, r0, #0 - bl MOD20_02252440 - ldrb r1, [r0, #5] - cmp r1, #0 - bne _02252B66 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252B66 - lsl r0, r4, #0x10 - lsr r0, r0, #0x10 - bl FUN_02005578 -_02252B66: - pop {r4, pc} - thumb_func_end MOD20_02252B48 - - thumb_func_start MOD20_02252B68 -MOD20_02252B68: ; 0x02252B68 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_02252440 - ldrb r1, [r0, #5] - cmp r1, #0 - bne _02252BB4 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252BB4 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_02020AB0 - cmp r0, #0 - beq _02252BB4 - ldr r0, [r5] - sub r0, #0x10 - cmp r0, #0xbf - bhs _02252B98 - mov r1, #1 - b _02252B9A -_02252B98: - mov r1, #0 -_02252B9A: - ldr r0, [r4] - sub r0, #0x10 - cmp r0, #0x9f - bhs _02252BA6 - mov r0, #1 - b _02252BA8 -_02252BA6: - mov r0, #0 -_02252BA8: - tst r0, r1 - beq _02252BB0 - mov r0, #1 - pop {r3, r4, r5, pc} -_02252BB0: - mov r0, #0 - pop {r3, r4, r5, pc} -_02252BB4: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02252B68 - - thumb_func_start MOD20_02252BB8 -MOD20_02252BB8: ; 0x02252BB8 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_02252440 - ldrb r1, [r0, #5] - cmp r1, #0 - bne _02252C04 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252C04 - add r0, r5, #0 - add r1, r4, #0 - bl FUN_02020ACC - cmp r0, #0 - beq _02252C04 - ldr r0, [r5] - sub r0, #0x10 - cmp r0, #0xbf - bhs _02252BE8 - mov r1, #1 - b _02252BEA -_02252BE8: - mov r1, #0 -_02252BEA: - ldr r0, [r4] - sub r0, #0x10 - cmp r0, #0x9f - bhs _02252BF6 - mov r0, #1 - b _02252BF8 -_02252BF6: - mov r0, #0 -_02252BF8: - tst r0, r1 - beq _02252C00 - mov r0, #1 - pop {r3, r4, r5, pc} -_02252C00: - mov r0, #0 - pop {r3, r4, r5, pc} -_02252C04: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02252BB8 - - thumb_func_start MOD20_02252C08 -MOD20_02252C08: ; 0x02252C08 - ldr r3, _02252C10 ; =FUN_0204646C - ldr r0, [r0, #0x5c] - bx r3 - nop -_02252C10: .word FUN_0204646C - thumb_func_end MOD20_02252C08 - - thumb_func_start MOD20_02252C14 -MOD20_02252C14: ; 0x02252C14 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_02252C08 - cmp r0, #0 - bne _02252C2E - ldrb r0, [r5, #5] - cmp r0, #0 - bne _02252C2E - add r0, r4, #0 - bl MOD20_022541B4 -_02252C2E: - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02252C14 - - thumb_func_start MOD20_02252C30 -MOD20_02252C30: ; 0x02252C30 - ldrb r0, [r0, #4] - bx lr - thumb_func_end MOD20_02252C30 - - thumb_func_start MOD20_02252C34 -MOD20_02252C34: ; 0x02252C34 - ldrb r0, [r0, #7] - bx lr - thumb_func_end MOD20_02252C34 - - thumb_func_start MOD20_02252C38 -MOD20_02252C38: ; 0x02252C38 - ldr r0, [r0, #0x5c] - bx lr - thumb_func_end MOD20_02252C38 - - thumb_func_start MOD20_02252C3C -MOD20_02252C3C: ; 0x02252C3C - ldr r0, [r0, #0x58] - bx lr - thumb_func_end MOD20_02252C3C - - thumb_func_start MOD20_02252C40 -MOD20_02252C40: ; 0x02252C40 - ldr r0, [r0, #0x54] - bx lr - thumb_func_end MOD20_02252C40 - - thumb_func_start MOD20_02252C44 -MOD20_02252C44: ; 0x02252C44 - push {r3, lr} - ldr r0, [r0, #0x54] - bl Sav2_PlayerData_GetProfileAddr - bl PlayerProfile_GetTrainerGender - cmp r0, #1 - beq _02252C58 - mov r0, #1 - pop {r3, pc} -_02252C58: - mov r0, #0 - pop {r3, pc} - thumb_func_end MOD20_02252C44 - - thumb_func_start MOD20_02252C5C -MOD20_02252C5C: ; 0x02252C5C - push {r3, r4, r5, r6, r7, lr} - add r6, r1, #0 - mov r1, #0xea - add r5, r0, #0 - mov r0, #7 - lsl r1, r1, #2 - add r7, r2, #0 - str r3, [sp] - bl AllocFromHeap - str r0, [r5] - add r4, r0, #0 - beq _02252D0A - mov r0, #0x15 - lsl r0, r0, #4 - str r7, [r4, r0] - ldr r0, [r4, r0] - bl NNS_G2dResetOamManagerBuffer - mov r0, #0x15 - lsl r0, r0, #4 - ldr r0, [r4, r0] - mov r1, #7 - bl MOD20_02253BA4 - mov r1, #0x55 - lsl r1, r1, #2 - str r0, [r4, r1] - ldr r0, [r4, r1] - cmp r0, #0 - bne _02252CA6 - ldr r0, [r5] - bl FreeToHeap - mov r0, #0 - str r0, [r5] - pop {r3, r4, r5, r6, r7, pc} -_02252CA6: - mov r0, #7 - str r6, [r4] - bl BgConfig_Alloc - mov r1, #6 - lsl r1, r1, #6 - str r0, [r4, r1] - ldr r0, [sp] - add r1, r1, #4 - str r0, [r4, r1] - add r0, r4, #0 - bl MOD20_02252D44 - mov r1, #0x57 - lsl r1, r1, #2 - add r0, r4, r1 - sub r1, #8 - ldr r1, [r4, r1] - bl MOD20_02253428 - ldr r0, [r5] - mov r1, #8 - add r0, r0, #4 - bl MOD20_022536F4 - ldr r0, [r5] - mov r1, #0x88 - add r0, #0x2c - bl MOD20_02252E5C - ldr r0, [r5] - mov r1, #0x8c - add r0, #0x84 - bl MOD20_02252E5C - ldr r0, [r5] - mov r1, #0x90 - add r0, #0xdc - bl MOD20_02252E5C - ldr r0, _02252D10 ; =MOD20_02252D14 - add r1, r4, #0 - mov r2, #0 - bl FUN_0200CA98 - mov r1, #0x56 - lsl r1, r1, #2 - str r0, [r4, r1] - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} -_02252D0A: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} - nop -_02252D10: .word MOD20_02252D14 - thumb_func_end MOD20_02252C5C - - thumb_func_start MOD20_02252D14 -MOD20_02252D14: ; 0x02252D14 - mov r0, #0x55 - lsl r0, r0, #2 - ldr r3, _02252D20 ; =MOD20_02253C78 - ldr r0, [r1, r0] - bx r3 - nop -_02252D20: .word MOD20_02253C78 - thumb_func_end MOD20_02252D14 - - thumb_func_start MOD20_02252D24 -MOD20_02252D24: ; 0x02252D24 - push {r3, lr} - bl MOD20_02252B1C - mov r1, #0x55 - lsl r1, r1, #2 - ldr r0, [r0, r1] - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD20_02252D24 - - thumb_func_start MOD20_02252D34 -MOD20_02252D34: ; 0x02252D34 - push {r3, lr} - bl MOD20_02252B1C - mov r1, #6 - lsl r1, r1, #6 - ldr r0, [r0, r1] - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD20_02252D34 - - thumb_func_start MOD20_02252D44 -MOD20_02252D44: ; 0x02252D44 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0xc - mov r1, #0 - add r2, sp, #0 - mov r3, #7 - bl GfGfxLoader_GetPlttData - add r4, r0, #0 - beq _02252D7A - ldr r0, [sp] - mov r2, #0x62 - lsl r2, r2, #2 - add r1, r5, r2 - ldr r0, [r0, #0xc] - add r2, #0x78 - bl MIi_CpuCopy32 - mov r1, #0x62 - lsl r1, r1, #2 - add r0, r5, r1 - add r1, #0x78 - bl DC_FlushRange - add r0, r4, #0 - bl FreeToHeap -_02252D7A: - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02252D44 - - thumb_func_start MOD20_02252D7C -MOD20_02252D7C: ; 0x02252D7C - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - bl MOD20_02252B1C - add r4, r0, #0 - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD20_02252C3C - bl Sav2_Poketch_GetScreenTint - mov r1, #0x62 - lsl r1, r1, #2 - add r5, r4, r1 - lsl r4, r0, #6 - add r0, r5, r4 - lsl r1, r6, #5 - mov r2, #0x20 - bl GXS_LoadBGPltt - add r0, r5, r4 - add r1, r7, #0 - mov r2, #0x20 - bl GXS_LoadOBJPltt - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD20_02252D7C - - thumb_func_start MOD20_02252DB4 -MOD20_02252DB4: ; 0x02252DB4 - push {r3, r4, r5, lr} - bl MOD20_02252B1C - add r4, r0, #0 - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD20_02252C3C - bl Sav2_Poketch_GetScreenTint - mov r1, #0x62 - lsl r0, r0, #5 - lsl r1, r1, #2 - add r0, #0x10 - add r4, r4, r1 - lsl r5, r0, #1 - add r0, r4, r5 - mov r1, #0 - mov r2, #0x20 - bl GXS_LoadBGPltt - add r0, r4, r5 - mov r1, #0 - mov r2, #0x20 - bl GXS_LoadOBJPltt - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02252DB4 - - thumb_func_start MOD20_02252DEC -MOD20_02252DEC: ; 0x02252DEC - push {r3, r4, r5, lr} - add r5, r0, #0 - bl MOD20_02252B1C - add r4, r0, #0 - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD20_02252C3C - bl Sav2_Poketch_GetScreenTint - mov r1, #0x62 - lsl r1, r1, #2 - add r1, r4, r1 - lsl r0, r0, #6 - add r0, r1, r0 - add r1, r5, #0 - mov r2, #0x20 - bl MIi_CpuCopy16 - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02252DEC - - thumb_func_start MOD20_02252E18 -MOD20_02252E18: ; 0x02252E18 - push {r4, lr} - add r4, r0, #0 - beq _02252E58 - mov r0, #0x57 - lsl r0, r0, #2 - add r0, r4, r0 - bl MOD20_022535A4 - mov r0, #0x55 - lsl r0, r0, #2 - ldr r0, [r4, r0] - cmp r0, #0 - beq _02252E36 - bl MOD20_02253C4C -_02252E36: - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - cmp r0, #0 - beq _02252E44 - bl FreeToHeap -_02252E44: - mov r0, #0x56 - lsl r0, r0, #2 - ldr r0, [r4, r0] - cmp r0, #0 - beq _02252E52 - bl FUN_0200CAB4 -_02252E52: - add r0, r4, #0 - bl FreeToHeap -_02252E58: - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD20_02252E18 - - thumb_func_start MOD20_02252E5C -MOD20_02252E5C: ; 0x02252E5C - push {r4, r5} - mov r2, #0xf - ldr r5, _02252E7C ; =MOD20_022545EC - mov r4, #0 - lsl r2, r2, #0xc -_02252E66: - ldrh r3, [r5] - add r4, r4, #1 - add r5, r5, #2 - add r3, r1, r3 - orr r3, r2 - strh r3, [r0] - add r0, r0, #2 - cmp r4, #0x2c - blo _02252E66 - pop {r4, r5} - bx lr - .align 2, 0 -_02252E7C: .word MOD20_022545EC - thumb_func_end MOD20_02252E5C - - thumb_func_start MOD20_02252E80 -MOD20_02252E80: ; 0x02252E80 - push {lr} - sub sp, #0xc - add r2, r0, #0 - add r0, r2, #4 - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - mov r0, #7 - str r0, [sp, #8] - ldr r0, _02252EA0 ; =MOD20_02254644 - ldr r3, [r2] - bl MOD20_022537E0 - add sp, #0xc - pop {pc} - nop -_02252EA0: .word MOD20_02254644 - thumb_func_end MOD20_02252E80 - - thumb_func_start MOD20_02252EA4 -MOD20_02252EA4: ; 0x02252EA4 - ldr r3, _02252EAC ; =MOD20_02253794 - add r0, r0, #4 - bx r3 - nop -_02252EAC: .word MOD20_02253794 - thumb_func_end MOD20_02252EA4 - - thumb_func_start MOD20_02252EB0 -MOD20_02252EB0: ; 0x02252EB0 - ldr r3, _02252EB8 ; =MOD20_022537B8 - add r0, r0, #4 - bx r3 - nop -_02252EB8: .word MOD20_022537B8 - thumb_func_end MOD20_02252EB0 - - thumb_func_start MOD20_02252EBC -MOD20_02252EBC: ; 0x02252EBC - push {r4, lr} - add r4, r0, #0 - bl MOD20_022538A0 - add r0, r0, #4 - add r1, r4, #0 - bl MOD20_02253888 - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD20_02252EBC - - thumb_func_start MOD20_02252ED0 -MOD20_02252ED0: ; 0x02252ED0 - push {r3, r4, r5, lr} - sub sp, #0x10 - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - mov r0, #0 - bl GXS_SetGraphicsMode - mov r0, #0x80 - bl GX_SetBankForSubBG - mov r0, #1 - lsl r0, r0, #8 - bl GX_SetBankForSubOBJ - ldr r2, _02252FD8 ; =0x04001000 - ldr r0, _02252FDC ; =0xFFCFFFEF - ldr r1, [r2] - and r1, r0 - mov r0, #0x10 - orr r0, r1 - str r0, [r2] - bl GX_DisableEngineBLayers - mov r0, #0x10 - mov r1, #1 - bl GX_EngineBToggleLayers - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - ldr r2, _02252FE0 ; =MOD20_022545B4 - mov r1, #4 - mov r3, #0 - bl InitBgFromTemplate - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - ldr r2, _02252FE4 ; =MOD20_022545D0 - mov r1, #5 - mov r3, #0 - bl InitBgFromTemplate - mov r0, #0x40 - str r0, [sp] - mov r0, #0 - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #7 - str r0, [sp, #0xc] - mov r0, #0xc - lsl r2, r0, #5 - ldr r2, [r4, r2] - mov r1, #0xe - mov r3, #4 - bl GfGfxLoader_LoadCharData - mov r0, #0 - str r0, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #7 - str r0, [sp, #0xc] - mov r0, #0xc - lsl r2, r0, #5 - ldr r2, [r4, r2] - mov r1, #0xf - mov r3, #4 - bl GfGfxLoader_LoadScrnData - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r4, r0] - bl MOD20_02252C44 - add r3, r0, #0 - mov r0, #0x1e - lsl r0, r0, #4 - str r0, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r0, #7 - str r0, [sp, #8] - mov r0, #0xc - mov r1, #0xd - mov r2, #4 - lsl r3, r3, #5 - bl GfGfxLoader_GXLoadPalWithSrcOffset - mov r3, #0 - str r3, [sp] - mov r0, #0x20 - str r0, [sp, #4] - mov r1, #0x18 - str r1, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r4, r0] - mov r1, #5 - mov r2, #0xd8 - bl FillBgTilemapRect - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - ldr r0, _02252FD8 ; =0x04001000 - ldr r1, _02252FE8 ; =0xFFFFE0FF - ldr r2, [r0] - and r2, r1 - mov r1, #0x13 - lsl r1, r1, #8 - orr r1, r2 - str r1, [r0] - ldr r2, [r0] - ldr r1, _02252FEC ; =0xFFFF1FFF - and r1, r2 - str r1, [r0] - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0x10 - pop {r3, r4, r5, pc} - nop -_02252FD8: .word 0x04001000 -_02252FDC: .word 0xFFCFFFEF -_02252FE0: .word MOD20_022545B4 -_02252FE4: .word MOD20_022545D0 -_02252FE8: .word 0xFFFFE0FF -_02252FEC: .word 0xFFFF1FFF - thumb_func_end MOD20_02252ED0 - - thumb_func_start MOD20_02252FF0 -MOD20_02252FF0: ; 0x02252FF0 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp, #0x10] - add r0, r1, #0 - bl MOD20_022538A8 - add r4, r0, #0 - ldr r0, [sp, #0x10] - bl MOD20_022538A0 - add r5, r0, #0 - ldr r0, [sp, #0x10] - bl MOD20_022538AC - cmp r0, #0 - beq _0225301C - cmp r0, #1 - beq _02253028 - cmp r0, #2 - beq _022530F6 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_0225301C: - mov r0, #0 - strh r0, [r4] - strh r0, [r4, #2] - ldr r0, [sp, #0x10] - bl MOD20_022538B0 -_02253028: - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - ldrh r0, [r4] - cmp r0, #0 - beq _022530FC - mov r0, #0 - strh r0, [r4] - ldrh r0, [r4, #2] - add r0, #0xc - strh r0, [r4, #2] - ldrh r0, [r4, #2] - cmp r0, #0x28 - bls _02253048 - mov r0, #0x28 - strh r0, [r4, #2] -_02253048: - ldrh r1, [r4, #2] - lsr r3, r1, #0x1f - lsl r2, r1, #0x1e - lsr r0, r1, #2 - sub r2, r2, r3 - mov r1, #0x1e - ror r2, r1 - mov r1, #0xc - sub r6, r1, r0 - lsl r0, r0, #1 - str r0, [sp, #0x14] - lsl r0, r6, #0x18 - ldr r1, [sp, #0x14] - add r7, r3, r2 - lsr r0, r0, #0x18 - str r0, [sp] - mov r0, #0x18 - lsl r1, r1, #0x18 - str r0, [sp, #4] - lsr r1, r1, #0x18 - str r1, [sp, #8] - mov r1, #0xf - str r1, [sp, #0xc] - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #5 - mov r2, #0x40 - mov r3, #2 - bl FillBgTilemapRect - cmp r7, #0 - beq _022530DA - sub r0, r6, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - mov r1, #0x18 - add r2, r7, #0 - add r2, #0xd8 - lsl r2, r2, #0x10 - str r1, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r5, r0] - mov r1, #5 - lsr r2, r2, #0x10 - mov r3, #2 - bl FillBgTilemapRect - ldr r0, [sp, #0x14] - mov r2, #0xd8 - add r0, r6, r0 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - mov r1, #0x18 - sub r2, r2, r7 - lsl r2, r2, #0x10 - str r1, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r5, r0] - mov r1, #5 - lsr r2, r2, #0x10 - mov r3, #2 - bl FillBgTilemapRect -_022530DA: - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r5, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - ldrh r0, [r4, #2] - cmp r0, #0x28 - bne _022530FC - ldr r0, [sp, #0x10] - bl MOD20_022538B0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_022530F6: - ldr r0, [sp, #0x10] - bl MOD20_02252EBC -_022530FC: - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD20_02252FF0 - - thumb_func_start MOD20_02253100 -MOD20_02253100: ; 0x02253100 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x18 - str r1, [sp, #0x10] - add r0, r1, #0 - bl MOD20_022538A8 - add r4, r0, #0 - ldr r0, [sp, #0x10] - bl MOD20_022538A0 - add r5, r0, #0 - ldr r0, [sp, #0x10] - bl MOD20_022538AC - cmp r0, #0 - beq _0225312C - cmp r0, #1 - beq _02253138 - cmp r0, #2 - beq _0225321E - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_0225312C: - mov r0, #0 - strh r0, [r4] - strh r0, [r4, #2] - ldr r0, [sp, #0x10] - bl MOD20_022538B0 -_02253138: - ldrh r0, [r4] - add r0, r0, #1 - strh r0, [r4] - ldrh r0, [r4] - cmp r0, #0 - beq _02253224 - mov r0, #0 - strh r0, [r4] - ldrh r0, [r4, #2] - add r0, #8 - strh r0, [r4, #2] - ldrh r0, [r4, #2] - cmp r0, #0x28 - bls _02253158 - mov r0, #0x28 - strh r0, [r4, #2] -_02253158: - ldrh r0, [r4, #2] - mov r3, #2 - lsr r2, r0, #0x1f - lsl r1, r0, #0x1e - lsr r7, r0, #2 - sub r1, r1, r2 - mov r0, #0x1e - ror r1, r0 - add r6, r2, r1 - mov r0, #0x16 - sub r0, r0, r7 - str r0, [sp, #0x14] - lsl r1, r7, #0x18 - str r3, [sp] - mov r0, #0x18 - str r0, [sp, #4] - lsr r1, r1, #0x18 - str r1, [sp, #8] - mov r1, #0xf - str r1, [sp, #0xc] - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #5 - mov r2, #0xd8 - bl FillBgTilemapRect - ldr r0, [sp, #0x14] - lsl r1, r7, #0x18 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - mov r0, #0x18 - str r0, [sp, #4] - lsr r1, r1, #0x18 - str r1, [sp, #8] - mov r1, #0xf - str r1, [sp, #0xc] - lsl r0, r0, #4 - ldr r0, [r5, r0] - mov r1, #5 - mov r2, #0xd8 - mov r3, #2 - bl FillBgTilemapRect - cmp r6, #0 - beq _02253202 - mov r0, #0 - str r0, [sp] - mov r1, #0x18 - str r1, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - sub r3, r6, #1 - mov r2, #0xdb - sub r2, r2, r3 - lsl r2, r2, #0x10 - ldr r0, [r5, r0] - mov r1, #5 - lsr r2, r2, #0x10 - mov r3, #2 - bl FillBgTilemapRect - ldr r0, [sp, #0x14] - add r6, #0xd4 - sub r0, r0, #1 - lsl r0, r0, #0x18 - lsr r0, r0, #0x18 - str r0, [sp] - mov r1, #0x18 - lsl r2, r6, #0x10 - str r1, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r5, r0] - mov r1, #5 - lsr r2, r2, #0x10 - mov r3, #2 - bl FillBgTilemapRect -_02253202: - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r5, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - ldrh r0, [r4, #2] - cmp r0, #0x28 - bne _02253224 - ldr r0, [sp, #0x10] - bl MOD20_022538B0 - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} -_0225321E: - ldr r0, [sp, #0x10] - bl MOD20_02252EBC -_02253224: - add sp, #0x18 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD20_02253100 - - thumb_func_start MOD20_02253228 -MOD20_02253228: ; 0x02253228 - push {r4, r5, r6, lr} - sub sp, #0x10 - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A8 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - add r0, r5, #0 - bl MOD20_022538AC - add r2, r0, #0 - cmp r2, #4 - bhs _02253280 - mov r3, #2 - str r3, [sp] - mov r1, #0x18 - mov r6, #0xd7 - sub r2, r6, r2 - lsl r2, r2, #0x10 - str r1, [sp, #4] - mov r0, #0x14 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r4, r0] - mov r1, #5 - lsr r2, r2, #0x10 - bl FillBgTilemapRect - add r0, r6, #0 - add r0, #0xa9 - ldr r0, [r4, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - add r0, r5, #0 - bl MOD20_022538B0 - add sp, #0x10 - pop {r4, r5, r6, pc} -_02253280: - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end MOD20_02253228 - - thumb_func_start MOD20_0225328C -MOD20_0225328C: ; 0x0225328C - push {r4, r5, r6, lr} - sub sp, #0x10 - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A8 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - add r0, r5, #0 - bl MOD20_022538AC - add r2, r0, #0 - cmp r2, #4 - bhs _022532E4 - mov r3, #2 - str r3, [sp] - mov r1, #0x18 - mov r6, #0xdb - sub r2, r6, r2 - lsl r2, r2, #0x10 - str r1, [sp, #4] - mov r0, #0x14 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r4, r0] - mov r1, #5 - lsr r2, r2, #0x10 - bl FillBgTilemapRect - add r0, r6, #0 - add r0, #0xa5 - ldr r0, [r4, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - add r0, r5, #0 - bl MOD20_022538B0 - add sp, #0x10 - pop {r4, r5, r6, pc} -_022532E4: - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0x10 - pop {r4, r5, r6, pc} - .align 2, 0 - thumb_func_end MOD20_0225328C - - thumb_func_start MOD20_022532F0 -MOD20_022532F0: ; 0x022532F0 - push {r4, r5, lr} - sub sp, #0xc - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - mov r0, #0xb - add r2, r4, #0 - str r0, [sp] - mov r1, #4 - str r1, [sp, #4] - str r0, [sp, #8] - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - add r2, #0x84 - mov r3, #0x1b - bl LoadRectToBgTilemapRect - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #4 - bl BgCommitTilemapBufferToVram - ldr r0, _02253334 ; =0x00000671 - bl PlaySE - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_02253334: .word 0x00000671 - thumb_func_end MOD20_022532F0 - - thumb_func_start MOD20_02253338 -MOD20_02253338: ; 0x02253338 - push {r4, r5, lr} - sub sp, #0xc - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - mov r0, #0xb - add r2, r4, #0 - str r0, [sp] - mov r1, #4 - str r1, [sp, #4] - str r0, [sp, #8] - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - add r2, #0x2c - mov r3, #0x1b - bl LoadRectToBgTilemapRect - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #4 - bl BgCommitTilemapBufferToVram - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 - thumb_func_end MOD20_02253338 - - thumb_func_start MOD20_02253378 -MOD20_02253378: ; 0x02253378 - push {r4, r5, lr} - sub sp, #0xc - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - mov r0, #0xb - add r2, r4, #0 - str r0, [sp] - mov r1, #4 - str r1, [sp, #4] - str r0, [sp, #8] - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - add r2, #0xdc - mov r3, #0x1b - bl LoadRectToBgTilemapRect - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #4 - bl BgCommitTilemapBufferToVram - ldr r0, _022533BC ; =0x0000066F - bl PlaySE - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_022533BC: .word 0x0000066F - thumb_func_end MOD20_02253378 - - thumb_func_start MOD20_022533C0 -MOD20_022533C0: ; 0x022533C0 - push {r3, r4, r5, lr} - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - mov r1, #0x57 - add r4, r0, #0 - lsl r1, r1, #2 - add r1, r4, r1 - bl MOD20_02253430 - mov r0, #0x57 - lsl r0, r0, #2 - ldr r1, [r4] - add r0, r4, r0 - bl MOD20_0225354C - add r0, r5, #0 - bl MOD20_02252EBC - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end MOD20_022533C0 - - thumb_func_start MOD20_022533EC -MOD20_022533EC: ; 0x022533EC - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - add r1, r0, #0 - mov r0, #0x57 - lsl r0, r0, #2 - add r0, r1, r0 - ldr r1, [r1] - bl MOD20_0225354C - add r0, r4, #0 - bl MOD20_02252EBC - pop {r4, pc} - thumb_func_end MOD20_022533EC - - thumb_func_start MOD20_0225340C -MOD20_0225340C: ; 0x0225340C - push {r4, lr} - add r4, r1, #0 - add r0, r4, #0 - bl MOD20_022538A0 - mov r1, #0x57 - lsl r1, r1, #2 - add r0, r0, r1 - bl MOD20_022535A4 - add r0, r4, #0 - bl MOD20_02252EBC - pop {r4, pc} - thumb_func_end MOD20_0225340C - - thumb_func_start MOD20_02253428 -MOD20_02253428: ; 0x02253428 - mov r2, #0 - str r2, [r0] - str r1, [r0, #4] - bx lr - thumb_func_end MOD20_02253428 - - thumb_func_start MOD20_02253430 -MOD20_02253430: ; 0x02253430 - push {r4, r5, lr} - sub sp, #0xc - add r5, r0, #0 - add r4, r1, #0 - mov r0, #7 - str r0, [sp] - add r0, r4, #0 - add r0, #8 - mov r1, #0xc - mov r2, #3 - mov r3, #4 - bl MOD20_02253FBC - cmp r0, #0 - beq _022534CC - mov r3, #0 - str r3, [sp] - mov r2, #1 - str r2, [sp, #4] - mov r0, #7 - str r0, [sp, #8] - mov r0, #0xc - mov r1, #2 - bl GfGfxLoader_LoadWholePalette - mov r0, #0x60 - str r0, [sp] - mov r0, #7 - mov r1, #0 - str r0, [sp, #4] - mov r0, #0xc - mov r2, #5 - add r3, r1, #0 - bl GfGfxLoader_GXLoadPal - add r0, r5, #0 - mov r1, #0xf - bl MOD20_022534D4 - add r2, r4, #0 - ldr r0, [r4, #4] - ldr r1, _022534D0 ; =MOD20_022545A4 - add r2, #8 - bl MOD20_02253E74 - str r0, [r4, #0x1c] - cmp r0, #0 - beq _022534CC - add r2, r4, #0 - ldr r0, [r4, #4] - ldr r1, _022534D0 ; =MOD20_022545A4 - add r2, #8 - bl MOD20_02253E74 - str r0, [r4, #0x20] - cmp r0, #0 - bne _022534AE - ldr r0, [r4, #4] - ldr r1, [r4, #0x1c] - bl MOD20_02253F14 - add sp, #0xc - pop {r4, r5, pc} -_022534AE: - mov r1, #1 - lsl r1, r1, #0x10 - mov r2, #0 - bl MOD20_02253F54 - ldr r0, [r4, #0x1c] - mov r1, #0xf - bl MOD20_02253F9C - ldr r0, [r4, #0x20] - mov r1, #0xf - bl MOD20_02253F9C - mov r0, #1 - str r0, [r4] -_022534CC: - add sp, #0xc - pop {r4, r5, pc} - .align 2, 0 -_022534D0: .word MOD20_022545A4 - thumb_func_end MOD20_02253430 - - thumb_func_start MOD20_022534D4 -MOD20_022534D4: ; 0x022534D4 - push {r3, r4, r5, lr} - add r5, r0, #0 - mov r0, #0x61 - lsl r0, r0, #2 - ldr r0, [r5, r0] - add r4, r1, #0 - bl MOD20_02252C3C - bl Sav2_Poketch_GetScreenTint - mov r1, #0x62 - lsl r0, r0, #5 - lsl r1, r1, #2 - add r0, r0, #1 - add r2, r5, r1 - lsl r0, r0, #1 - add r0, r2, r0 - add r1, #0x5a - mov r2, #2 - bl GXS_LoadBGPltt - mov r0, #0xe2 - lsl r0, r0, #2 - add r0, r5, r0 - bl MOD20_02252DEC - ldr r1, _02253548 ; =0x0000038A - add r0, r1, #6 - ldrh r2, [r5, r1] - ldrh r0, [r5, r0] - strh r0, [r5, r1] - add r0, r1, #6 - strh r2, [r5, r0] - add r0, r1, #0 - add r2, r1, #0 - add r0, #0xe - add r2, #0x1c - ldrh r3, [r5, r2] - add r2, r1, #0 - ldrh r0, [r5, r0] - add r2, #0xe - strh r3, [r5, r2] - add r2, r1, #0 - add r2, #0x1c - strh r0, [r5, r2] - sub r0, r1, #2 - add r0, r5, r0 - mov r1, #0x20 - bl DC_FlushRange - mov r0, #0xe2 - lsl r0, r0, #2 - add r0, r5, r0 - lsl r1, r4, #5 - mov r2, #0x20 - bl GXS_LoadOBJPltt - pop {r3, r4, r5, pc} - .align 2, 0 -_02253548: .word 0x0000038A - thumb_func_end MOD20_022534D4 - - thumb_func_start MOD20_0225354C -MOD20_0225354C: ; 0x0225354C - push {r3, r4, r5, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _02253596 - ldr r0, [r1] - ldr r2, _02253598 ; =0x04000280 - mov r3, #0 - add r0, r0, #1 - strh r3, [r2] - str r0, [r2, #0x10] - add r0, r2, #0 - mov r1, #0xa - add r0, #0x18 - str r1, [r0] - str r3, [r0, #4] - lsr r0, r2, #0xb -_0225356E: - ldrh r1, [r2] - tst r1, r0 - bne _0225356E - ldr r0, _0225359C ; =0x040002A0 - add r3, r0, #0 - ldr r1, [r0] - sub r3, #0x20 - lsr r0, r0, #0xb -_0225357E: - ldrh r2, [r3] - tst r2, r0 - bne _0225357E - ldr r0, _022535A0 ; =0x040002A8 - ldr r5, [r0] - ldr r0, [r4, #0x1c] - bl MOD20_02253F28 - ldr r0, [r4, #0x20] - add r1, r5, #0 - bl MOD20_02253F28 -_02253596: - pop {r3, r4, r5, pc} - .align 2, 0 -_02253598: .word 0x04000280 -_0225359C: .word 0x040002A0 -_022535A0: .word 0x040002A8 - thumb_func_end MOD20_0225354C - - thumb_func_start MOD20_022535A4 -MOD20_022535A4: ; 0x022535A4 - push {r4, lr} - add r4, r0, #0 - ldr r0, [r4] - cmp r0, #0 - beq _022535CA - ldr r0, [r4, #4] - ldr r1, [r4, #0x1c] - bl MOD20_02253F14 - ldr r0, [r4, #4] - ldr r1, [r4, #0x20] - bl MOD20_02253F14 - add r0, r4, #0 - add r0, #8 - bl MOD20_02254014 - mov r0, #0 - str r0, [r4] -_022535CA: - pop {r4, pc} - thumb_func_end MOD20_022535A4 - - thumb_func_start MOD20_022535CC -MOD20_022535CC: ; 0x022535CC - push {r4, r5, r6, lr} - sub sp, #0x10 - add r6, r1, #0 - add r0, r6, #0 - bl MOD20_022538A0 - add r4, r0, #0 - add r0, r6, #0 - bl MOD20_022538A8 - add r0, r6, #0 - bl MOD20_022538AC - add r5, r0, #0 - cmp r5, #3 - bhi _0225365E - add r0, r5, r5 - add r0, pc - ldrh r0, [r0, #6] - lsl r0, r0, #0x10 - asr r0, r0, #0x10 - add pc, r0 -_022535F8: ; jump table - .short _02253600 - _022535F8 - 2 ; case 0 - .short _0225361C - _022535F8 - 2 ; case 1 - .short _0225361C - _022535F8 - 2 ; case 2 - .short _0225361C - _022535F8 - 2 ; case 3 -_02253600: - mov r0, #6 - str r0, [sp] - ldr r0, _02253664 ; =0x04001050 - mov r1, #2 - mov r2, #0x1c - mov r3, #0x1a - bl G2x_SetBlendAlpha_ - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #4 - bl BgCommitTilemapBufferToVram -_0225361C: - mov r3, #2 - str r3, [sp] - mov r1, #0x18 - mov r2, #0xdb - sub r2, r2, r5 - lsl r2, r2, #0x10 - str r1, [sp, #4] - mov r0, #0x14 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r4, r0] - mov r1, #5 - lsr r2, r2, #0x10 - bl FillBgTilemapRect - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - cmp r5, #3 - bne _02253658 - add r0, r6, #0 - bl MOD20_02252EBC - add sp, #0x10 - pop {r4, r5, r6, pc} -_02253658: - add r0, r6, #0 - bl MOD20_022538B0 -_0225365E: - add sp, #0x10 - pop {r4, r5, r6, pc} - nop -_02253664: .word 0x04001050 - thumb_func_end MOD20_022535CC - - thumb_func_start MOD20_02253668 -MOD20_02253668: ; 0x02253668 - push {r3, r4, r5, lr} - sub sp, #0x10 - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - mov r3, #2 - add r4, r0, #0 - str r3, [sp] - mov r1, #0x18 - str r1, [sp, #4] - mov r0, #0x14 - str r0, [sp, #8] - mov r0, #0xf - str r0, [sp, #0xc] - lsl r0, r1, #4 - ldr r0, [r4, r0] - mov r1, #5 - mov r2, #0x40 - bl FillBgTilemapRect - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #4 - bl BgCommitTilemapBufferToVram - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #5 - bl BgCommitTilemapBufferToVram - mov r1, #0 - ldr r0, _022536C4 ; =0x04001050 - add r2, r1, #0 - mov r3, #0x1f - str r1, [sp] - bl G2x_SetBlendAlpha_ - add r0, r5, #0 - bl MOD20_02252EBC - add sp, #0x10 - pop {r3, r4, r5, pc} - nop -_022536C4: .word 0x04001050 - thumb_func_end MOD20_02253668 - - thumb_func_start MOD20_022536C8 -MOD20_022536C8: ; 0x022536C8 - push {r3, r4, r5, lr} - add r5, r1, #0 - add r0, r5, #0 - bl MOD20_022538A0 - add r4, r0, #0 - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #4 - bl FreeBgTilemapBuffer - mov r0, #6 - lsl r0, r0, #6 - ldr r0, [r4, r0] - mov r1, #5 - bl FreeBgTilemapBuffer - add r0, r5, #0 - bl MOD20_02252EBC - pop {r3, r4, r5, pc} - thumb_func_end MOD20_022536C8 - - thumb_func_start MOD20_022536F4 -MOD20_022536F4: ; 0x022536F4 - ldr r2, _02253710 ; =0x12345678 - str r1, [r0] - mov r3, #0 - str r2, [r0, #4] - cmp r1, #0 - bls _0225370C - sub r2, r3, #1 -_02253702: - add r3, r3, #1 - str r2, [r0, #8] - add r0, r0, #4 - cmp r3, r1 - blo _02253702 -_0225370C: - bx lr - nop -_02253710: .word 0x12345678 - thumb_func_end MOD20_022536F4 - - thumb_func_start MOD20_02253714 -MOD20_02253714: ; 0x02253714 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - ldr r1, [r5, #4] - ldr r0, _02253750 ; =0x12345678 - cmp r1, r0 - beq _02253726 - bl GF_AssertFail -_02253726: - ldr r6, [r5] - mov r2, #0 - cmp r6, #0 - bls _0225374A - add r3, r5, #0 - sub r0, r2, #1 -_02253732: - ldr r1, [r3, #8] - cmp r1, r0 - bne _02253742 - lsl r0, r2, #2 - add r0, r5, r0 - str r4, [r0, #8] - mov r0, #1 - pop {r4, r5, r6, pc} -_02253742: - add r2, r2, #1 - add r3, r3, #4 - cmp r2, r6 - blo _02253732 -_0225374A: - mov r0, #0 - pop {r4, r5, r6, pc} - nop -_02253750: .word 0x12345678 - thumb_func_end MOD20_02253714 - - thumb_func_start MOD20_02253754 -MOD20_02253754: ; 0x02253754 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - ldr r1, [r5, #4] - ldr r0, _02253790 ; =0x12345678 - cmp r1, r0 - beq _02253766 - bl GF_AssertFail -_02253766: - ldr r3, [r5] - mov r2, #0 - cmp r3, #0 - bls _0225378A - add r1, r5, #0 -_02253770: - ldr r0, [r1, #8] - cmp r4, r0 - bne _02253782 - mov r1, #0 - lsl r0, r2, #2 - mvn r1, r1 - add r0, r5, r0 - str r1, [r0, #8] - pop {r3, r4, r5, pc} -_02253782: - add r2, r2, #1 - add r1, r1, #4 - cmp r2, r3 - blo _02253770 -_0225378A: - bl GF_AssertFail - pop {r3, r4, r5, pc} - .align 2, 0 -_02253790: .word 0x12345678 - thumb_func_end MOD20_02253754 - - thumb_func_start MOD20_02253794 -MOD20_02253794: ; 0x02253794 - push {r3, r4} - ldr r4, [r0] - mov r3, #0 - cmp r4, #0 - bls _022537B2 -_0225379E: - ldr r2, [r0, #8] - cmp r1, r2 - bne _022537AA - mov r0, #0 - pop {r3, r4} - bx lr -_022537AA: - add r3, r3, #1 - add r0, r0, #4 - cmp r3, r4 - blo _0225379E -_022537B2: - mov r0, #1 - pop {r3, r4} - bx lr - thumb_func_end MOD20_02253794 - - thumb_func_start MOD20_022537B8 -MOD20_022537B8: ; 0x022537B8 - push {r3, r4} - ldr r4, [r0] - mov r3, #0 - cmp r4, #0 - bls _022537D8 - sub r1, r3, #1 -_022537C4: - ldr r2, [r0, #8] - cmp r2, r1 - beq _022537D0 - mov r0, #0 - pop {r3, r4} - bx lr -_022537D0: - add r3, r3, #1 - add r0, r0, #4 - cmp r3, r4 - blo _022537C4 -_022537D8: - mov r0, #1 - pop {r3, r4} - bx lr - .align 2, 0 - thumb_func_end MOD20_022537B8 - - thumb_func_start MOD20_022537E0 -MOD20_022537E0: ; 0x022537E0 - push {r4, r5, r6, r7, lr} - sub sp, #0xc - add r7, r0, #0 - str r2, [sp] - mov r0, #0 - add r5, r1, #0 - ldr r2, [r7] - sub r1, r0, #1 - str r3, [sp, #4] - cmp r2, r1 - beq _02253880 - add r3, r7, #0 - sub r1, r0, #1 -_022537FA: - ldr r2, [r3] - cmp r5, r2 - bne _02253876 - add r6, r0, #0 - add r0, r7, #0 - str r0, [sp, #8] - add r0, #8 - mov r1, #0xc - str r0, [sp, #8] - mul r6, r1 - ldr r1, [sp, #8] - ldr r0, [sp, #0x28] - ldr r1, [r1, r6] - add r1, #0x18 - bl AllocFromHeap - add r4, r0, #0 - beq _02253870 - ldr r0, [sp, #8] - ldr r0, [r0, r6] - cmp r0, #0 - beq _0225382C - add r0, r4, #0 - add r0, #0x18 - b _0225382E -_0225382C: - mov r0, #0 -_0225382E: - str r0, [r4, #0xc] - ldr r0, [sp, #0x20] - add r1, r5, #0 - bl MOD20_02253714 - cmp r0, #0 - beq _02253866 - ldr r0, [sp] - ldr r2, [sp, #0x24] - str r0, [r4, #8] - mov r0, #0 - str r0, [r4, #4] - str r5, [r4] - ldr r0, [sp, #4] - add r5, r7, #4 - str r0, [r4, #0x10] - ldr r0, [r5, r6] - add r1, r4, #0 - bl FUN_0200CA44 - str r0, [r4, #0x14] - cmp r0, #0 - beq _02253884 - ldr r2, [r5, r6] - add r1, r4, #0 - blx r2 - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_02253866: - add r0, r4, #0 - bl FreeToHeap - add sp, #0xc - pop {r4, r5, r6, r7, pc} -_02253870: - bl GF_AssertFail - b _02253880 -_02253876: - add r3, #0xc - ldr r2, [r3] - add r0, r0, #1 - cmp r2, r1 - bne _022537FA -_02253880: - bl GF_AssertFail -_02253884: - add sp, #0xc - pop {r4, r5, r6, r7, pc} - thumb_func_end MOD20_022537E0 - - thumb_func_start MOD20_02253888 -MOD20_02253888: ; 0x02253888 - push {r4, lr} - add r4, r1, #0 - ldr r1, [r4] - bl MOD20_02253754 - ldr r0, [r4, #0x14] - bl FUN_0200CAB4 - add r0, r4, #0 - bl FreeToHeap - pop {r4, pc} - thumb_func_end MOD20_02253888 - - thumb_func_start MOD20_022538A0 -MOD20_022538A0: ; 0x022538A0 - ldr r0, [r0, #8] - bx lr - thumb_func_end MOD20_022538A0 - - thumb_func_start MOD20_022538A4 -MOD20_022538A4: ; 0x022538A4 - ldr r0, [r0, #0x10] - bx lr - thumb_func_end MOD20_022538A4 - - thumb_func_start MOD20_022538A8 -MOD20_022538A8: ; 0x022538A8 - ldr r0, [r0, #0xc] - bx lr - thumb_func_end MOD20_022538A8 - - thumb_func_start MOD20_022538AC -MOD20_022538AC: ; 0x022538AC - ldr r0, [r0, #4] - bx lr - thumb_func_end MOD20_022538AC - - thumb_func_start MOD20_022538B0 -MOD20_022538B0: ; 0x022538B0 - ldr r1, [r0, #4] - add r1, r1, #1 - str r1, [r0, #4] - bx lr - thumb_func_end MOD20_022538B0 - - thumb_func_start MOD20_022538B8 -MOD20_022538B8: ; 0x022538B8 - str r1, [r0, #4] - bx lr - thumb_func_end MOD20_022538B8 - - thumb_func_start MOD20_022538BC -MOD20_022538BC: ; 0x022538BC - push {r3, r4, r5, r6} - mul r2, r3 - ldr r4, [sp, #0x18] - add r1, r1, r2 - lsl r6, r1, #1 - lsl r4, r4, #0xc - ldr r1, [sp, #0x10] - add r5, r4, #0 - orr r5, r1 - add r2, r0, r6 - strh r5, [r0, r6] - add r0, r1, #1 - orr r0, r4 - strh r0, [r2, #2] - ldr r0, [sp, #0x14] - lsl r3, r3, #1 - add r1, r1, r0 - add r0, r4, #0 - orr r0, r1 - strh r0, [r2, r3] - add r0, r1, #1 - add r1, r4, #0 - orr r1, r0 - add r0, r2, r3 - strh r1, [r0, #2] - pop {r3, r4, r5, r6} - bx lr - .align 2, 0 - thumb_func_end MOD20_022538BC - - thumb_func_start MOD20_022538F4 -MOD20_022538F4: ; 0x022538F4 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r6, r1, #0 - mov r0, #8 - mov r1, #0x20 - bl AllocFromHeap - add r7, r0, #0 - beq _02253960 - bl MOD20_02252DEC - mov r4, #0 - cmp r6, #0 - bls _0225395A -_02253910: - ldrh r3, [r5] - mov r0, #0x1f - lsl r0, r0, #0xa - and r0, r3 - asr r0, r0, #0xa - add r2, r0, #0 - mov r1, #0x72 - mov r0, #0x1f - mul r2, r1 - and r0, r3 - add r1, #0xb9 - mul r1, r0 - mov r0, #0x3e - lsl r0, r0, #4 - and r0, r3 - asr r3, r0, #5 - ldr r0, _02253964 ; =0x0000024B - mul r0, r3 - add r0, r1, r0 - mov r1, #0xfa - add r0, r2, r0 - lsl r1, r1, #2 - bl _u32_div_f - lsr r1, r0, #3 - cmp r1, #3 - bls _02253948 - mov r1, #3 -_02253948: - ldr r0, _02253968 ; =MOD20_0225470C - add r4, r4, #1 - ldrb r0, [r0, r1] - lsl r0, r0, #1 - ldrh r0, [r7, r0] - strh r0, [r5] - add r5, r5, #2 - cmp r4, r6 - blo _02253910 -_0225395A: - add r0, r7, #0 - bl FreeToHeap -_02253960: - pop {r3, r4, r5, r6, r7, pc} - nop -_02253964: .word 0x0000024B -_02253968: .word MOD20_0225470C - thumb_func_end MOD20_022538F4 - - thumb_func_start MOD20_0225396C -MOD20_0225396C: ; 0x0225396C - push {r3, r4, r5, r6, r7, lr} - add r6, r0, #0 - add r7, r1, #0 - mov r0, #8 - mov r1, #0x20 - bl AllocFromHeap - add r4, r0, #0 - beq _022539C2 - mov r0, #8 - mov r1, #0x20 - bl AllocFromHeap - add r5, r0, #0 - add r0, r4, #0 - bl MOD20_02252DEC - cmp r5, #0 - beq _022539BC - mov r0, #0 - add r1, r5, #0 - lsl r3, r6, #1 -_02253998: - ldrh r2, [r4, r3] - add r0, r0, #1 - strh r2, [r1] - add r1, r1, #2 - cmp r0, #0x10 - blt _02253998 - add r0, r5, #0 - mov r1, #0x20 - bl DC_FlushRange - add r0, r5, #0 - lsl r1, r7, #5 - mov r2, #0x20 - bl GXS_LoadOBJPltt - add r0, r5, #0 - bl FreeToHeap -_022539BC: - add r0, r4, #0 - bl FreeToHeap -_022539C2: - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD20_0225396C - - thumb_func_start MOD20_022539C4 -MOD20_022539C4: ; 0x022539C4 - push {r3, r4, r5, lr} - add r5, r0, #0 - bl FUN_0206B888 - add r1, r0, #0 - mov r0, #0x13 - add r2, sp, #0 - mov r3, #8 - bl GfGfxLoader_GetPlttData - add r4, r0, #0 - beq _02253A02 - ldr r0, [sp] - mov r1, #0x40 - ldr r0, [r0, #0xc] - bl MOD20_022538F4 - ldr r0, [sp] - mov r1, #0x80 - ldr r0, [r0, #0xc] - bl DC_FlushRange - ldr r0, [sp] - lsl r1, r5, #5 - ldr r0, [r0, #0xc] - mov r2, #0x80 - bl GXS_LoadOBJPltt - add r0, r4, #0 - bl FreeToHeap -_02253A02: - pop {r3, r4, r5, pc} - thumb_func_end MOD20_022539C4 - - thumb_func_start MOD20_02253A04 -MOD20_02253A04: ; 0x02253A04 - push {r4, r5, r6, r7, lr} - sub sp, #0x24 - str r0, [sp, #4] - lsl r0, r3, #1 - str r0, [sp, #0xc] - add r6, r1, #0 - str r2, [sp, #8] - ldr r2, _02253A9C ; =MOD20_02254708 - ldr r1, [sp, #0xc] - mov r0, #8 - ldrh r1, [r2, r1] - bl AllocFromHeap - add r7, r0, #0 - beq _02253A98 - mov r0, #0x13 - mov r1, #8 - bl NARC_ctor - str r0, [sp, #0x1c] - cmp r0, #0 - beq _02253A92 - mov r0, #0 - str r0, [sp, #0x18] - ldr r0, [sp, #8] - cmp r0, #0 - bls _02253A8C - ldr r1, _02253AA0 ; =MOD20_02254704 - ldr r0, [sp, #0xc] - ldr r4, [sp, #0x18] - ldrh r5, [r1, r0] - ldr r1, _02253A9C ; =MOD20_02254708 - ldrh r0, [r1, r0] - str r0, [sp, #0x14] - ldr r0, [sp, #4] - lsl r0, r0, #5 - str r0, [sp, #0x10] -_02253A4E: - str r7, [sp] - ldr r0, [sp, #0x1c] - ldr r1, [r6] - ldr r3, [sp, #0x14] - mov r2, #0 - bl NARC_ReadFromMember - add r0, r7, #0 - add r1, sp, #0x20 - bl NNS_G2dGetUnpackedCharacterData - ldr r0, [sp, #0x20] - add r1, r5, #0 - ldr r0, [r0, #0x14] - bl DC_FlushRange - ldr r0, [sp, #0x20] - ldr r1, [sp, #0x10] - ldr r0, [r0, #0x14] - add r1, r1, r4 - add r2, r5, #0 - bl GXS_LoadOBJ - ldr r0, [sp, #0x18] - add r6, r6, #4 - add r1, r0, #1 - ldr r0, [sp, #8] - add r4, r4, r5 - str r1, [sp, #0x18] - cmp r1, r0 - blo _02253A4E -_02253A8C: - ldr r0, [sp, #0x1c] - bl NARC_dtor -_02253A92: - add r0, r7, #0 - bl FreeToHeap -_02253A98: - add sp, #0x24 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_02253A9C: .word MOD20_02254708 -_02253AA0: .word MOD20_02254704 - thumb_func_end MOD20_02253A04 - - thumb_func_start MOD20_02253AA4 -MOD20_02253AA4: ; 0x02253AA4 - push {r3, r4, r5, r6, lr} - sub sp, #0x14 - add r5, r1, #0 - add r4, r2, #0 - mov r1, #2 - add r2, sp, #0xc - strh r1, [r2] - mov r3, #3 - strh r3, [r2, #2] - mov r3, #0xa - strh r3, [r2, #4] - mov r3, #0xb - strh r3, [r2, #6] - str r3, [sp] - str r1, [sp, #4] - str r1, [sp, #8] - lsl r1, r4, #0x18 - lsr r1, r1, #0x18 - add r2, sp, #0xc - mov r3, #9 - add r6, r0, #0 - bl LoadRectToBgTilemapRect - mov r1, #4 - add r0, sp, #0xc - strh r1, [r0] - mov r1, #5 - strh r1, [r0, #2] - mov r1, #0xc - strh r1, [r0, #4] - mov r1, #0xd - strh r1, [r0, #6] - mov r3, #0xb - lsl r1, r4, #0x18 - str r3, [sp] - mov r0, #2 - str r0, [sp, #4] - str r0, [sp, #8] - add r0, r6, #0 - lsr r1, r1, #0x18 - add r2, sp, #0xc - bl LoadRectToBgTilemapRect - mov r1, #6 - add r0, sp, #0xc - strh r1, [r0] - mov r1, #7 - strh r1, [r0, #2] - mov r1, #0xe - strh r1, [r0, #4] - mov r1, #0xf - strh r1, [r0, #6] - mov r0, #0xb - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - lsl r1, r4, #0x18 - str r0, [sp, #8] - add r0, r6, #0 - lsr r1, r1, #0x18 - add r2, sp, #0xc - mov r3, #0xd - bl LoadRectToBgTilemapRect - add r0, r5, #0 - mov r1, #0xa - bl _u32_div_f - mov r1, #0xa - mul r1, r0 - add r0, r0, #4 - sub r5, r5, r1 - lsr r1, r0, #2 - lsl r0, r0, #0x1e - lsl r1, r1, #4 - lsr r0, r0, #0x1d - add r2, r1, r0 - add r0, sp, #0xc - strh r2, [r0] - add r1, r2, #1 - strh r1, [r0, #2] - add r1, r2, #0 - add r1, #8 - strh r1, [r0, #4] - add r2, #9 - strh r2, [r0, #6] - mov r0, #0xb - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - lsl r1, r4, #0x18 - str r0, [sp, #8] - add r0, r6, #0 - lsr r1, r1, #0x18 - add r2, sp, #0xc - mov r3, #0xf - bl LoadRectToBgTilemapRect - add r0, r5, #4 - lsr r1, r0, #2 - lsl r0, r0, #0x1e - lsl r1, r1, #4 - lsr r0, r0, #0x1d - add r2, r1, r0 - add r0, sp, #0xc - strh r2, [r0] - add r1, r2, #1 - strh r1, [r0, #2] - add r1, r2, #0 - add r1, #8 - strh r1, [r0, #4] - add r2, #9 - strh r2, [r0, #6] - mov r0, #0xb - str r0, [sp] - mov r0, #2 - str r0, [sp, #4] - lsl r1, r4, #0x18 - str r0, [sp, #8] - add r0, r6, #0 - lsr r1, r1, #0x18 - add r2, sp, #0xc - mov r3, #0x11 - bl LoadRectToBgTilemapRect - add sp, #0x14 - pop {r3, r4, r5, r6, pc} - .align 2, 0 - thumb_func_end MOD20_02253AA4 - - thumb_func_start MOD20_02253BA4 -MOD20_02253BA4: ; 0x02253BA4 - push {r3, r4, r5, r6, r7, lr} - add r5, r1, #0 - add r7, r0, #0 - add r0, r5, #0 - mov r1, #0x1c - mov r6, #0 - bl AllocFromHeap - add r4, r0, #0 - beq _02253C0E - add r0, r6, #0 - str r0, [r4, #0x14] - str r0, [r4, #0xc] - str r0, [r4, #4] - str r7, [r4] - str r5, [r4, #0x18] - add r0, r7, #0 - bl NNS_G2dGetOamManagerOamCapacity - strh r0, [r4, #0x10] - ldrh r1, [r4, #0x10] - add r0, r5, #0 - lsl r1, r1, #3 - bl AllocFromHeap - str r0, [r4, #0x14] - cmp r0, #0 - beq _02253C0E - ldrh r2, [r4, #0x10] - mov r1, #0x90 - add r0, r5, #0 - mul r1, r2 - bl AllocFromHeap - str r0, [r4, #0xc] - cmp r0, #0 - beq _02253C0E - ldrh r1, [r4, #0x10] - add r0, r5, #0 - lsl r1, r1, #2 - bl AllocFromHeap - str r0, [r4, #4] - cmp r0, #0 - beq _02253C0E - ldrh r2, [r4, #0x10] - ldr r1, [r4, #0xc] - bl MOD20_0225403C - add r0, r6, #0 - strh r0, [r4, #0x12] - str r0, [r4, #8] - mov r6, #1 -_02253C0E: - cmp r6, #0 - bne _02253C46 - cmp r4, #0 - beq _02253C42 - ldr r1, [r4, #0x14] - cmp r1, #0 - beq _02253C22 - add r0, r5, #0 - bl FreeToHeapExplicit -_02253C22: - ldr r1, [r4, #0xc] - cmp r1, #0 - beq _02253C2E - add r0, r5, #0 - bl FreeToHeapExplicit -_02253C2E: - ldr r1, [r4, #4] - cmp r1, #0 - beq _02253C3A - add r0, r5, #0 - bl FreeToHeapExplicit -_02253C3A: - add r0, r5, #0 - add r1, r4, #0 - bl FreeToHeapExplicit -_02253C42: - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02253C46: - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end MOD20_02253BA4 - - thumb_func_start MOD20_02253C4C -MOD20_02253C4C: ; 0x02253C4C - push {r4, lr} - add r4, r0, #0 - beq _02253C76 - ldr r0, [r4, #0x14] - cmp r0, #0 - beq _02253C5C - bl FreeToHeap -_02253C5C: - ldr r0, [r4, #0xc] - cmp r0, #0 - beq _02253C66 - bl FreeToHeap -_02253C66: - ldr r0, [r4, #4] - cmp r0, #0 - beq _02253C70 - bl FreeToHeap -_02253C70: - add r0, r4, #0 - bl FreeToHeap -_02253C76: - pop {r4, pc} - thumb_func_end MOD20_02253C4C - - thumb_func_start MOD20_02253C78 -MOD20_02253C78: ; 0x02253C78 - push {r3, r4, r5, r6, r7, lr} - sub sp, #0x20 - str r0, [sp, #0xc] - ldrh r0, [r0, #0x12] - cmp r0, #0 - bne _02253C86 - b _02253E52 -_02253C86: - ldr r0, [sp, #0xc] - ldr r4, [r0, #8] - ldr r5, [r0, #0x14] - ldrh r0, [r0, #0x10] - cmp r4, #0 - str r0, [sp, #0x10] - bne _02253C96 - b _02253E38 -_02253C96: - add r0, r4, #0 - mov r1, #2 - add r0, #8 - lsl r1, r1, #0xc - bl NNS_G2dTickCellAnimation - add r0, r4, #0 - add r0, #0x86 - ldrb r0, [r0] - cmp r0, #0 - beq _02253CAE - b _02253E30 -_02253CAE: - add r6, r4, #0 - add r6, #0x40 - mov r0, #0xc - ldrsh r0, [r6, r0] - ldr r1, [r4, #0x64] - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #0x18] - mov r0, #0xe - ldrsh r0, [r6, r0] - ldr r1, [r4, #0x68] - lsl r0, r0, #0xc - add r0, r1, r0 - str r0, [sp, #0x1c] - add r0, r4, #0 - add r0, #0x87 - ldrb r0, [r0] - cmp r0, #0 - bne _02253CEE - add r0, sp, #0x18 - str r0, [sp] - mov r3, #0 - str r3, [sp, #4] - ldr r1, [sp, #0x10] - str r3, [sp, #8] - lsl r1, r1, #0x10 - ldr r2, [r4, #0x34] - add r0, r5, #0 - lsr r1, r1, #0x10 - bl NNS_G2dMakeCellToOams - b _02253D86 -_02253CEE: - ldr r0, [r4, #0x6c] - bl MTX_Identity22_ - ldrh r1, [r6, #0x12] - mov r0, #4 - tst r0, r1 - beq _02253D20 - add r0, r4, #0 - add r0, #0x8c - ldrh r2, [r6, #0x10] - ldrh r0, [r0] - ldr r1, _02253E58 ; =FX_SinCosTable_ - add r0, r2, r0 - lsl r0, r0, #0x10 - lsr r0, r0, #0x10 - asr r0, r0, #4 - lsl r3, r0, #2 - add r2, r1, r3 - ldrsh r1, [r1, r3] - mov r3, #2 - ldrsh r2, [r2, r3] - ldr r0, [r4, #0x6c] - bl MTX_Rot22_ - b _02253D3E -_02253D20: - add r0, r4, #0 - add r0, #0x8c - ldrh r0, [r0] - cmp r0, #0 - beq _02253D3E - asr r0, r0, #4 - lsl r3, r0, #2 - ldr r1, _02253E58 ; =FX_SinCosTable_ - ldr r0, [r4, #0x6c] - add r2, r1, r3 - ldrsh r1, [r1, r3] - mov r3, #2 - ldrsh r2, [r2, r3] - bl MTX_Rot22_ -_02253D3E: - ldrh r1, [r6, #0x12] - mov r0, #2 - tst r0, r1 - beq _02253D62 - ldr r0, [r6, #4] - ldr r7, [r4, #0x6c] - bl FX_Inv - str r0, [sp, #0x14] - ldr r0, [r6, #8] - bl FX_Inv - add r3, r0, #0 - ldr r2, [sp, #0x14] - add r0, r7, #0 - add r1, r7, #0 - bl MTX_ScaleApply22 -_02253D62: - ldr r0, [sp, #0xc] - ldr r1, [r4, #0x6c] - ldr r0, [r0] - bl NNS_G2dEntryOamManagerAffine - add r1, sp, #0x18 - str r1, [sp] - str r0, [sp, #4] - mov r0, #1 - str r0, [sp, #8] - ldr r1, [sp, #0x10] - ldr r2, [r4, #0x34] - lsl r1, r1, #0x10 - ldr r3, [r4, #0x6c] - add r0, r5, #0 - lsr r1, r1, #0x10 - bl NNS_G2dMakeCellToOams -_02253D86: - ldr r1, [sp, #0x10] - sub r1, r1, r0 - str r1, [sp, #0x10] - add r1, r0, #0 - sub r0, r0, #1 - cmp r1, #0 - beq _02253E30 - ldr r7, _02253E5C ; =0xDFFFFFFF - asr r1, r7, #0x11 -_02253D98: - ldr r3, [r5, #4] - ldr r2, _02253E60 ; =0xFFFFF3FF - add r6, r4, #0 - and r2, r3 - add r3, r4, #0 - add r3, #0x82 - ldrh r3, [r3] - add r6, #0x84 - lsl r3, r3, #0x1e - lsr r3, r3, #0x14 - orr r2, r3 - str r2, [r5, #4] - ldr r3, _02253E64 ; =0xFFFF0FFF - ldrh r6, [r6] - and r3, r2 - lsl r2, r2, #0x10 - lsr r2, r2, #0x1c - add r2, r2, r6 - lsl r2, r2, #0x1c - lsr r2, r2, #0x10 - orr r2, r3 - add r6, r4, #0 - ldr r3, _02253E68 ; =0xFFFFFC00 - str r2, [r5, #4] - add r6, #0x88 - and r3, r2 - lsl r2, r2, #0x16 - ldrh r6, [r6] - lsr r2, r2, #0x16 - add r6, r2, r6 - ldr r2, _02253E6C ; =0x000003FF - and r2, r6 - orr r2, r3 - add r6, r4, #0 - str r2, [r5, #4] - add r6, #0x8a - ldr r2, [r5] - ldr r3, _02253E70 ; =0xEFFFFFFF - ldrb r6, [r6] - and r3, r2 - lsl r2, r2, #3 - lsr r2, r2, #0x1f - eor r2, r6 - lsl r2, r2, #0x1f - lsr r2, r2, #3 - orr r2, r3 - add r6, r4, #0 - add r3, r2, #0 - str r2, [r5] - add r6, #0x8b - lsl r2, r2, #2 - ldrb r6, [r6] - lsr r2, r2, #0x1f - and r3, r7 - eor r2, r6 - lsl r2, r2, #0x1f - lsr r2, r2, #2 - orr r2, r3 - add r6, r4, #0 - add r3, r2, #0 - str r2, [r5] - add r6, #0x8e - lsl r2, r2, #0x13 - ldrb r6, [r6] - lsr r2, r2, #0x1f - and r3, r1 - eor r2, r6 - lsl r2, r2, #0x1f - lsr r2, r2, #0x13 - orr r2, r3 - str r2, [r5] - add r2, r0, #0 - add r5, #8 - sub r0, r0, #1 - cmp r2, #0 - bne _02253D98 -_02253E30: - ldr r4, [r4, #0x5c] - cmp r4, #0 - beq _02253E38 - b _02253C96 -_02253E38: - ldr r0, [sp, #0xc] - ldr r1, [r0, #0x14] - cmp r5, r1 - bls _02253E52 - sub r3, r5, r1 - asr r2, r3, #2 - lsr r2, r2, #0x1d - add r2, r3, r2 - lsl r2, r2, #0xd - ldr r0, [r0] - lsr r2, r2, #0x10 - bl NNS_G2dEntryOamManagerOam -_02253E52: - add sp, #0x20 - pop {r3, r4, r5, r6, r7, pc} - nop -_02253E58: .word FX_SinCosTable_ -_02253E5C: .word 0xDFFFFFFF -_02253E60: .word 0xFFFFF3FF -_02253E64: .word 0xFFFF0FFF -_02253E68: .word 0xFFFFFC00 -_02253E6C: .word 0x000003FF -_02253E70: .word 0xEFFFFFFF - thumb_func_end MOD20_02253C78 - - thumb_func_start MOD20_02253E74 -MOD20_02253E74: ; 0x02253E74 - push {r3, r4, r5, r6, r7, lr} - add r7, r0, #0 - add r5, r1, #0 - add r6, r2, #0 - bl MOD20_02254068 - add r4, r0, #0 - beq _02253F10 - ldrb r1, [r5, #0xb] - add r0, #0x82 - strh r1, [r0] - add r0, r4, #0 - ldrb r1, [r5, #0xc] - add r0, #0x80 - strh r1, [r0] - add r0, r7, #0 - add r1, r4, #0 - bl MOD20_022540A4 - ldr r0, [r6, #8] - str r0, [r4] - ldr r0, [r6, #0xc] - str r0, [r4, #4] - ldrh r1, [r5, #8] - bl NNS_G2dGetAnimSequenceByIdx - add r1, r0, #0 - add r0, r4, #0 - ldr r2, [r4] - add r0, #8 - bl NNS_G2dInitCellAnimation - ldr r1, [r5] - ldr r0, [r5, #4] - str r1, [r4, #0x64] - add r1, r4, #0 - str r0, [r4, #0x68] - mov r0, #0 - add r1, #0x84 - strh r0, [r1] - add r1, r4, #0 - add r1, #0x88 - strh r0, [r1] - ldrb r2, [r5, #0xa] - mov r1, #1 - tst r2, r1 - beq _02253ED4 - add r0, r1, #0 -_02253ED4: - add r1, r4, #0 - add r1, #0x8a - strb r0, [r1] - ldrb r1, [r5, #0xa] - mov r0, #2 - tst r0, r1 - beq _02253EE6 - mov r1, #1 - b _02253EE8 -_02253EE6: - mov r1, #0 -_02253EE8: - add r0, r4, #0 - add r0, #0x8b - strb r1, [r0] - add r1, r4, #0 - mov r0, #0 - add r1, #0x8e - strb r0, [r1] - add r1, r4, #0 - add r1, #0x8c - strh r0, [r1] - add r1, r4, #0 - add r1, #0x70 - str r1, [r4, #0x6c] - add r1, r4, #0 - ldrb r2, [r5, #0xd] - add r1, #0x87 - strb r2, [r1] - add r1, r4, #0 - add r1, #0x86 - strb r0, [r1] -_02253F10: - add r0, r4, #0 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD20_02253E74 - - thumb_func_start MOD20_02253F14 -MOD20_02253F14: ; 0x02253F14 - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_022540FC - add r0, r5, #0 - add r1, r4, #0 - bl MOD20_02254080 - pop {r3, r4, r5, pc} - thumb_func_end MOD20_02253F14 - - thumb_func_start MOD20_02253F28 -MOD20_02253F28: ; 0x02253F28 - push {r4, lr} - add r4, r0, #0 - lsl r1, r1, #0x10 - ldr r0, [r4, #4] - lsr r1, r1, #0x10 - bl NNS_G2dGetAnimSequenceByIdx - add r1, r0, #0 - add r0, r4, #0 - ldr r2, [r4] - add r0, #8 - bl NNS_G2dInitCellAnimation - pop {r4, pc} - thumb_func_end MOD20_02253F28 - - thumb_func_start MOD20_02253F44 -MOD20_02253F44: ; 0x02253F44 - ldr r0, [r0, #0x10] - cmp r0, #0 - bne _02253F4E - mov r0, #1 - bx lr -_02253F4E: - mov r0, #0 - bx lr - .align 2, 0 - thumb_func_end MOD20_02253F44 - - thumb_func_start MOD20_02253F54 -MOD20_02253F54: ; 0x02253F54 - ldr r3, [r0, #0x64] - add r1, r3, r1 - str r1, [r0, #0x64] - ldr r1, [r0, #0x68] - add r1, r1, r2 - str r1, [r0, #0x68] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253F54 - - thumb_func_start MOD20_02253F64 -MOD20_02253F64: ; 0x02253F64 - str r1, [r0, #0x64] - str r2, [r0, #0x68] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253F64 - - thumb_func_start MOD20_02253F6C -MOD20_02253F6C: ; 0x02253F6C - ldr r3, [r0, #0x64] - str r3, [r1] - ldr r0, [r0, #0x68] - str r0, [r2] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253F6C - - thumb_func_start MOD20_02253F78 -MOD20_02253F78: ; 0x02253F78 - add r0, #0x86 - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253F78 - - thumb_func_start MOD20_02253F80 -MOD20_02253F80: ; 0x02253F80 - push {r4, r5, r6, lr} - add r5, r1, #0 - add r6, r0, #0 - add r4, r2, #0 - bl MOD20_022540FC - add r0, r5, #0 - add r0, #0x80 - strh r4, [r0] - add r0, r6, #0 - add r1, r5, #0 - bl MOD20_022540A4 - pop {r4, r5, r6, pc} - thumb_func_end MOD20_02253F80 - - thumb_func_start MOD20_02253F9C -MOD20_02253F9C: ; 0x02253F9C - add r0, #0x84 - strh r1, [r0] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253F9C - - thumb_func_start MOD20_02253FA4 -MOD20_02253FA4: ; 0x02253FA4 - add r0, #0x88 - strh r1, [r0] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253FA4 - - thumb_func_start MOD20_02253FAC -MOD20_02253FAC: ; 0x02253FAC - add r0, #0x8e - strb r1, [r0] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253FAC - - thumb_func_start MOD20_02253FB4 -MOD20_02253FB4: ; 0x02253FB4 - add r0, #0x8c - strh r1, [r0] - bx lr - .align 2, 0 - thumb_func_end MOD20_02253FB4 - - thumb_func_start MOD20_02253FBC -MOD20_02253FBC: ; 0x02253FBC - push {r3, r4, r5, r6, r7, lr} - ldr r4, [sp, #0x18] - add r5, r0, #0 - add r6, r1, #0 - add r1, r2, #0 - add r7, r3, #0 - str r4, [r5, #0x10] - add r0, r6, #0 - add r2, r4, #0 - bl GfGfxLoader_UncompressFromNarc - str r0, [r5] - add r0, r6, #0 - add r1, r7, #0 - add r2, r4, #0 - bl GfGfxLoader_UncompressFromNarc - str r0, [r5, #4] - ldr r0, [r5] - cmp r0, #0 - beq _0225400E - ldr r1, [r5, #4] - cmp r1, #0 - beq _0225400E - add r1, r5, #0 - add r1, #8 - bl NNS_G2dGetUnpackedCellBank - cmp r0, #0 - bne _02253FFC - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_02253FFC: - ldr r0, [r5, #4] - add r5, #0xc - add r1, r5, #0 - bl NNS_G2dGetUnpackedMCAnimBank - cmp r0, #0 - bne _0225400E - mov r0, #0 - pop {r3, r4, r5, r6, r7, pc} -_0225400E: - mov r0, #1 - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 - thumb_func_end MOD20_02253FBC - - thumb_func_start MOD20_02254014 -MOD20_02254014: ; 0x02254014 - push {r4, lr} - add r4, r0, #0 - ldr r1, [r4] - cmp r1, #0 - beq _02254028 - ldr r0, [r4, #0x10] - bl FreeToHeapExplicit - mov r0, #0 - str r0, [r4] -_02254028: - ldr r1, [r4, #4] - cmp r1, #0 - beq _02254038 - ldr r0, [r4, #0x10] - bl FreeToHeapExplicit - mov r0, #0 - str r0, [r4, #4] -_02254038: - pop {r4, pc} - .align 2, 0 - thumb_func_end MOD20_02254014 - - thumb_func_start MOD20_0225403C -MOD20_0225403C: ; 0x0225403C - push {r4, r5, r6, lr} - add r6, r2, #0 - add r5, r0, #0 - add r0, r6, #0 - add r4, r1, #0 - sub r6, r6, #1 - cmp r0, #0 - beq _0225405E -_0225404C: - add r0, r4, #0 - stmia r5!, {r4} - bl MOD20_02254060 - add r0, r6, #0 - add r4, #0x90 - sub r6, r6, #1 - cmp r0, #0 - bne _0225404C -_0225405E: - pop {r4, r5, r6, pc} - thumb_func_end MOD20_0225403C - - thumb_func_start MOD20_02254060 -MOD20_02254060: ; 0x02254060 - mov r1, #0 - str r1, [r0, #0x5c] - str r1, [r0, #0x60] - bx lr - thumb_func_end MOD20_02254060 - - thumb_func_start MOD20_02254068 -MOD20_02254068: ; 0x02254068 - ldrh r2, [r0, #0x12] - ldrh r1, [r0, #0x10] - cmp r2, r1 - bhs _0225407C - add r1, r2, #1 - strh r1, [r0, #0x12] - ldr r1, [r0, #4] - lsl r0, r2, #2 - ldr r0, [r1, r0] - bx lr -_0225407C: - mov r0, #0 - bx lr - thumb_func_end MOD20_02254068 - - thumb_func_start MOD20_02254080 -MOD20_02254080: ; 0x02254080 - push {r3, r4, r5, lr} - add r5, r0, #0 - ldrh r0, [r5, #0x12] - add r4, r1, #0 - cmp r0, #0 - beq _022540A0 - add r0, r4, #0 - bl MOD20_02254060 - ldrh r0, [r5, #0x12] - sub r0, r0, #1 - strh r0, [r5, #0x12] - ldrh r0, [r5, #0x12] - ldr r1, [r5, #4] - lsl r0, r0, #2 - str r4, [r1, r0] -_022540A0: - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end MOD20_02254080 - - thumb_func_start MOD20_022540A4 -MOD20_022540A4: ; 0x022540A4 - push {r4, r5} - ldr r3, [r0, #8] - cmp r3, #0 - bne _022540B8 - str r1, [r0, #8] - mov r0, #0 - str r0, [r1, #0x5c] - str r0, [r1, #0x60] - pop {r4, r5} - bx lr -_022540B8: - add r4, r1, #0 - add r4, #0x80 - ldr r5, [r4] - add r2, r3, #0 -_022540C0: - add r4, r2, #0 - add r4, #0x80 - ldr r4, [r4] - cmp r5, r4 - bhs _022540E2 - cmp r2, r3 - bne _022540D0 - str r1, [r0, #8] -_022540D0: - ldr r0, [r2, #0x60] - str r0, [r1, #0x60] - cmp r0, #0 - beq _022540DA - str r1, [r0, #0x5c] -_022540DA: - str r2, [r1, #0x5c] - str r1, [r2, #0x60] - pop {r4, r5} - bx lr -_022540E2: - ldr r4, [r2, #0x5c] - cmp r4, #0 - bne _022540F4 - str r1, [r2, #0x5c] - str r2, [r1, #0x60] - mov r0, #0 - str r0, [r1, #0x5c] - pop {r4, r5} - bx lr -_022540F4: - add r2, r4, #0 - b _022540C0 - thumb_func_end MOD20_022540A4 - - thumb_func_start MOD20_022540F8 -MOD20_022540F8: ; 0x022540F8 - pop {r4, r5} - bx lr - thumb_func_end MOD20_022540F8 - - thumb_func_start MOD20_022540FC -MOD20_022540FC: ; 0x022540FC - ldr r2, [r1, #0x60] - cmp r2, #0 - beq _02254118 - ldr r0, [r1, #0x5c] - cmp r0, #0 - beq _02254112 - str r0, [r2, #0x5c] - ldr r2, [r1, #0x60] - ldr r0, [r1, #0x5c] - str r2, [r0, #0x60] - bx lr -_02254112: - mov r0, #0 - str r0, [r2, #0x5c] - bx lr -_02254118: - ldr r3, [r1, #0x5c] - cmp r3, #0 - beq _02254128 - mov r2, #0 - str r2, [r3, #0x60] - ldr r1, [r1, #0x5c] - str r1, [r0, #8] - bx lr -_02254128: - mov r1, #0 - str r1, [r0, #8] - bx lr - .align 2, 0 - thumb_func_end MOD20_022540FC - - thumb_func_start MOD20_02254130 -MOD20_02254130: ; 0x02254130 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r6, r0, #0 - add r7, r1, #0 - str r2, [sp] - str r3, [sp, #4] - ldr r5, [sp, #0x20] - bne _02254144 - bl GF_AssertFail -_02254144: - add r0, r5, #0 - mov r1, #0x18 - bl AllocFromHeap - add r4, r0, #0 - beq _02254192 - ldr r0, [sp] - str r5, [r4, #8] - str r0, [r4, #4] - str r6, [r4] - mov r1, #0xe - ldr r0, [sp, #4] - str r7, [r4, #0xc] - str r0, [r4, #0x10] - add r0, r5, #0 - mul r1, r7 - bl AllocFromHeap - str r0, [r4, #0x14] - cmp r0, #0 - beq _02254188 - mov r6, #0 - cmp r7, #0 - bls _02254192 - add r5, r6, #0 -_02254176: - ldr r0, [r4, #0x14] - add r0, r0, r5 - bl MOD20_022542E4 - add r6, r6, #1 - add r5, #0xe - cmp r6, r7 - blo _02254176 - b _02254192 -_02254188: - add r0, r5, #0 - add r1, r4, #0 - bl FreeToHeapExplicit - mov r4, #0 -_02254192: - add r0, r4, #0 - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - thumb_func_end MOD20_02254130 - - thumb_func_start MOD20_02254198 -MOD20_02254198: ; 0x02254198 - push {r4, lr} - add r4, r0, #0 - bne _022541A2 - bl GF_AssertFail -_022541A2: - ldr r0, [r4, #8] - ldr r1, [r4, #0x14] - bl FreeToHeapExplicit - ldr r0, [r4, #8] - add r1, r4, #0 - bl FreeToHeapExplicit - pop {r4, pc} - thumb_func_end MOD20_02254198 - - thumb_func_start MOD20_022541B4 -MOD20_022541B4: ; 0x022541B4 - push {r3, r4, r5, r6, r7, lr} - sub sp, #8 - add r5, r0, #0 - bl FUN_02020A98 - str r0, [sp, #4] - cmp r0, #0 - beq _0225420C - bl FUN_02020AA4 - ldr r1, [r5, #0xc] - mov r7, #0 - str r0, [sp] - cmp r1, #0 - bls _02254232 - add r4, r7, #0 - add r6, r7, #0 -_022541D6: - ldr r0, [r5, #0x14] - add r1, r0, r4 - ldrb r0, [r1, #1] - strb r0, [r1, #2] - ldr r0, [r5, #0x14] - add r0, r0, r4 - ldrb r0, [r0, #1] - cmp r0, #0 - ldr r0, [r5] - beq _022541F2 - add r0, r0, r6 - bl FUN_02020A40 - b _022541F8 -_022541F2: - add r0, r0, r6 - bl FUN_02020A6C -_022541F8: - ldr r1, [r5, #0x14] - add r7, r7, #1 - add r1, r1, r4 - strb r0, [r1, #1] - ldr r1, [r5, #0xc] - add r4, #0xe - add r6, r6, #4 - cmp r7, r1 - blo _022541D6 - b _02254232 -_0225420C: - ldr r1, [r5, #0xc] - mov r2, #0 - str r2, [sp] - cmp r1, #0 - bls _02254232 - add r0, r2, #0 - add r3, r2, #0 -_0225421A: - ldr r1, [r5, #0x14] - add r2, r2, #1 - add r4, r1, r0 - ldrb r1, [r4, #1] - strb r1, [r4, #2] - ldr r1, [r5, #0x14] - add r1, r1, r0 - strb r3, [r1, #1] - ldr r1, [r5, #0xc] - add r0, #0xe - cmp r2, r1 - blo _0225421A -_02254232: - mov r6, #0 - cmp r1, #0 - bls _02254278 - ldr r7, _022542A8 ; =MOD20_02254710 - add r4, r6, #0 -_0225423C: - ldr r3, [r5, #0x14] - ldr r1, [sp, #4] - add r0, r3, r4 - ldrb r3, [r3, r4] - ldr r2, [sp] - lsl r3, r3, #2 - ldr r3, [r7, r3] - blx r3 - add r1, r0, #0 - ldr r0, [r5, #0x14] - add r0, r0, r4 - ldrb r2, [r0, #1] - ldrb r0, [r0, #2] - cmp r2, r0 - bne _0225425C - mov r2, #2 -_0225425C: - cmp r1, #0 - bne _02254264 - cmp r2, #2 - beq _0225426E -_02254264: - ldr r3, [r5, #0x10] - ldr r4, [r5, #4] - add r0, r6, #0 - blx r4 - b _02254278 -_0225426E: - ldr r0, [r5, #0xc] - add r6, r6, #1 - add r4, #0xe - cmp r6, r0 - blo _0225423C -_02254278: - ldr r0, [r5, #0xc] - add r6, r6, #1 - cmp r6, r0 - bhs _022542A2 - mov r0, #0xe - add r4, r6, #0 - ldr r7, _022542A8 ; =MOD20_02254710 - mul r4, r0 -_02254288: - ldr r3, [r5, #0x14] - ldr r1, [sp, #4] - add r0, r3, r4 - ldrb r3, [r3, r4] - ldr r2, [sp] - lsl r3, r3, #2 - ldr r3, [r7, r3] - blx r3 - ldr r0, [r5, #0xc] - add r6, r6, #1 - add r4, #0xe - cmp r6, r0 - blo _02254288 -_022542A2: - add sp, #8 - pop {r3, r4, r5, r6, r7, pc} - nop -_022542A8: .word MOD20_02254710 - thumb_func_end MOD20_022541B4 - - thumb_func_start MOD20_022542AC -MOD20_022542AC: ; 0x022542AC - push {r3, r4} - ldr r4, [r0, #0x14] - mov r0, #0xe - mul r0, r1 - add r1, r4, r0 - lsl r0, r2, #1 - add r0, r1, r0 - strh r3, [r0, #8] - pop {r3, r4} - bx lr - thumb_func_end MOD20_022542AC - - thumb_func_start MOD20_022542C0 -MOD20_022542C0: ; 0x022542C0 - ldr r3, [r0, #0x14] - mov r0, #0xe - mul r0, r1 - add r0, r3, r0 - strh r2, [r0, #0xc] - bx lr - thumb_func_end MOD20_022542C0 - - thumb_func_start MOD20_022542CC -MOD20_022542CC: ; 0x022542CC - add r3, r1, #0 - mov r2, #0xe - mul r3, r2 - ldr r1, [r0, #0x14] - mov r2, #0 - add r1, r1, r3 - strh r2, [r1, #4] - ldr r0, [r0, #0x14] - mov r1, #4 - strb r1, [r0, r3] - bx lr - .align 2, 0 - thumb_func_end MOD20_022542CC - - thumb_func_start MOD20_022542E4 -MOD20_022542E4: ; 0x022542E4 - mov r2, #0 - strb r2, [r0] - strb r2, [r0, #1] - strb r2, [r0, #2] - strh r2, [r0, #4] - strh r2, [r0, #6] - add r3, r0, #0 - add r1, r2, #0 -_022542F4: - add r2, r2, #1 - strh r1, [r3, #8] - add r3, r3, #2 - cmp r2, #2 - blo _022542F4 - strh r1, [r0, #0xc] - bx lr - .align 2, 0 - thumb_func_end MOD20_022542E4 - - thumb_func_start MOD20_02254304 -MOD20_02254304: ; 0x02254304 - strb r1, [r0] - mov r1, #0 - strh r1, [r0, #4] - bx lr - thumb_func_end MOD20_02254304 - - thumb_func_start MOD20_0225430C -MOD20_0225430C: ; 0x0225430C - strb r1, [r0] - bx lr - thumb_func_end MOD20_0225430C - - thumb_func_start MOD20_02254310 -MOD20_02254310: ; 0x02254310 - ldrh r2, [r0, #4] - ldr r1, _02254320 ; =0x0000FFFF - cmp r2, r1 - bhs _0225431C - add r1, r2, #1 - strh r1, [r0, #4] -_0225431C: - bx lr - nop -_02254320: .word 0x0000FFFF - thumb_func_end MOD20_02254310 - - thumb_func_start MOD20_02254324 -MOD20_02254324: ; 0x02254324 - ldrh r3, [r0, #4] - mov r2, #0 -_02254328: - ldrh r1, [r0, #8] - cmp r3, r1 - bne _02254332 - add r0, r2, #5 - bx lr -_02254332: - add r2, r2, #1 - add r0, r0, #2 - cmp r2, #2 - blo _02254328 - mov r0, #0 - bx lr - .align 2, 0 - thumb_func_end MOD20_02254324 - - thumb_func_start MOD20_02254340 -MOD20_02254340: ; 0x02254340 - push {r3, lr} - ldrb r1, [r0, #1] - cmp r1, #0 - beq _02254356 - cmp r2, #0 - beq _02254356 - mov r1, #1 - bl MOD20_02254304 - mov r0, #1 - pop {r3, pc} -_02254356: - mov r0, #0 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD20_02254340 - - thumb_func_start MOD20_0225435C -MOD20_0225435C: ; 0x0225435C - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r1, #0 - bl MOD20_02254310 - ldrb r0, [r5, #1] - cmp r0, #0 - beq _0225438A - add r0, r5, #0 - bl MOD20_02254324 - cmp r0, #0 - bne _022543B8 - ldrh r1, [r5, #0xc] - cmp r1, #0 - beq _022543B6 - ldrh r0, [r5, #4] - cmp r0, r1 - blo _022543B6 - mov r0, #0 - strh r0, [r5, #4] - mov r0, #7 - pop {r3, r4, r5, pc} -_0225438A: - cmp r4, #0 - beq _0225439A - add r0, r5, #0 - mov r1, #0 - bl MOD20_02254304 - mov r0, #2 - pop {r3, r4, r5, pc} -_0225439A: - ldrh r0, [r5, #6] - cmp r0, #0 - beq _022543AA - add r0, r5, #0 - mov r1, #2 - bl MOD20_0225430C - b _022543B6 -_022543AA: - add r0, r5, #0 - mov r1, #0 - bl MOD20_02254304 - mov r0, #3 - pop {r3, r4, r5, pc} -_022543B6: - mov r0, #0 -_022543B8: - pop {r3, r4, r5, pc} - .align 2, 0 - thumb_func_end MOD20_0225435C - - thumb_func_start MOD20_022543BC -MOD20_022543BC: ; 0x022543BC - push {r3, r4, r5, lr} - add r5, r0, #0 - add r4, r2, #0 - bl MOD20_02254310 - ldrh r1, [r5, #4] - ldrh r0, [r5, #6] - cmp r1, r0 - bls _022543DA - add r0, r5, #0 - mov r1, #0 - bl MOD20_02254304 - mov r0, #3 - pop {r3, r4, r5, pc} -_022543DA: - ldrb r0, [r5, #1] - cmp r0, #0 - beq _022543F0 - cmp r4, #0 - beq _022543F0 - add r0, r5, #0 - mov r1, #3 - bl MOD20_02254304 - mov r0, #4 - pop {r3, r4, r5, pc} -_022543F0: - mov r0, #0 - pop {r3, r4, r5, pc} - thumb_func_end MOD20_022543BC - - thumb_func_start MOD20_022543F4 -MOD20_022543F4: ; 0x022543F4 - push {r3, lr} - ldrb r1, [r0, #1] - cmp r1, #0 - beq _02254402 - bl MOD20_02254310 - b _02254408 -_02254402: - mov r1, #0 - bl MOD20_02254304 -_02254408: - mov r0, #0 - pop {r3, pc} - thumb_func_end MOD20_022543F4 - - thumb_func_start MOD20_0225440C -MOD20_0225440C: ; 0x0225440C - push {r3, lr} - ldrb r1, [r0, #1] - cmp r1, #0 - bne _0225441A - mov r1, #0 - bl MOD20_02254304 -_0225441A: - mov r0, #0 - pop {r3, pc} - .align 2, 0 - thumb_func_end MOD20_0225440C - - thumb_func_start MOD20_02254420 -MOD20_02254420: ; 0x02254420 - push {r3, r4, r5, r6, r7, lr} - add r5, r0, #0 - add r4, r1, #0 - add r6, r2, #0 - add r7, r3, #0 - cmp r5, #0x1e - blo _02254432 - bl GF_AssertFail -_02254432: - cmp r4, #0x21 - blo _0225443A - bl GF_AssertFail -_0225443A: - cmp r5, #0x1e - blo _02254440 - mov r5, #0 -_02254440: - cmp r4, #0x21 - blo _02254446 - mov r4, #0 -_02254446: - ldr r0, _02254458 ; =MOD20_02254744 - lsl r1, r5, #1 - ldrh r0, [r0, r1] - lsl r1, r4, #1 - str r0, [r6] - ldr r0, _0225445C ; =MOD20_02254780 - ldrh r0, [r0, r1] - str r0, [r7] - pop {r3, r4, r5, r6, r7, pc} - .align 2, 0 -_02254458: .word MOD20_02254744 -_0225445C: .word MOD20_02254780 - thumb_func_end MOD20_02254420 - - thumb_func_start MOD20_02254460 -MOD20_02254460: ; 0x02254460 - push {r4, r5, r6, lr} - add r5, r0, #0 - add r4, r1, #0 - add r6, r2, #0 - cmp r5, #4 - blo _02254470 - bl GF_AssertFail -_02254470: - ldr r0, _02254480 ; =MOD20_02254724 - lsl r1, r5, #3 - ldr r0, [r0, r1] - str r0, [r4] - ldr r0, _02254484 ; =MOD20_02254724 + 4 - ldr r0, [r0, r1] - str r0, [r6] - pop {r4, r5, r6, pc} - .align 2, 0 -_02254480: .word MOD20_02254724 -_02254484: .word MOD20_02254724 + 4 - thumb_func_end MOD20_02254460 - - thumb_func_start MOD20_02254488 -MOD20_02254488: ; 0x02254488 - push {r4, r5} - ldr r5, _022544B8 ; =MOD20_022547C2 - mov r4, #0 -_0225448E: - ldrh r3, [r5] - cmp r0, r3 - bne _022544A8 - ldr r0, _022544BC ; =MOD20_022547C2 + 2 - lsl r3, r4, #2 - ldrb r0, [r0, r3] - str r0, [r1] - ldr r0, _022544C0 ; =MOD20_022547C2 + 3 - ldrb r0, [r0, r3] - str r0, [r2] - mov r0, #1 - pop {r4, r5} - bx lr -_022544A8: - add r4, r4, #1 - add r5, r5, #4 - cmp r4, #0x1d - blo _0225448E - mov r0, #0 - pop {r4, r5} - bx lr - nop -_022544B8: .word MOD20_022547C2 -_022544BC: .word MOD20_022547C2 + 2 -_022544C0: .word MOD20_022547C2 + 3 - thumb_func_end MOD20_02254488 - - .rodata - .global MOD20_022544C4 -MOD20_022544C4: ; 0x022544C4 - .byte 0x60, 0xAC, 0xDC, 0xF4, 0x10, 0xAF, 0x10, 0xCF - - .global MOD20_022544CC -MOD20_022544CC: ; 0x022544CC - .word MOD20_02252600, MOD20_02252688, MOD20_022527AC, MOD20_02252818 - - .global sPoketchAppOverlayMapping -sPoketchAppOverlayMapping: ; 0x022544DC - .word 0, SDK_OVERLAY_MODULE_21_ID - .word 23, SDK_OVERLAY_MODULE_22_ID - .word 1, SDK_OVERLAY_MODULE_23_ID - .word 2, SDK_OVERLAY_MODULE_24_ID - .word 11, SDK_OVERLAY_MODULE_25_ID - .word 17, SDK_OVERLAY_MODULE_26_ID - .word 4, SDK_OVERLAY_MODULE_27_ID - .word 5, SDK_OVERLAY_MODULE_28_ID - .word 6, SDK_OVERLAY_MODULE_29_ID - .word 10, SDK_OVERLAY_MODULE_30_ID - .word 3, SDK_OVERLAY_MODULE_31_ID - .word 8, SDK_OVERLAY_MODULE_35_ID - .word 18, SDK_OVERLAY_MODULE_36_ID - .word 14, SDK_OVERLAY_MODULE_37_ID - .word 15, SDK_OVERLAY_MODULE_38_ID - .word 22, SDK_OVERLAY_MODULE_39_ID - .word 24, SDK_OVERLAY_MODULE_40_ID - .word 20, SDK_OVERLAY_MODULE_41_ID - .word 12, SDK_OVERLAY_MODULE_42_ID - .word 7, SDK_OVERLAY_MODULE_43_ID - .word 21, SDK_OVERLAY_MODULE_44_ID - .word 16, SDK_OVERLAY_MODULE_45_ID - .word 13, SDK_OVERLAY_MODULE_47_ID - .word 19, SDK_OVERLAY_MODULE_48_ID - .word 9, SDK_OVERLAY_MODULE_49_ID - - .global MOD20_022545A4 -MOD20_022545A4: ; 0x022545A4 - .byte 0x00, 0x00, 0x0B, 0x00, 0x00, 0x80, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD20_022545B4 -MOD20_022545B4: ; 0x022545B4 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x0C, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD20_022545D0 -MOD20_022545D0: ; 0x022545D0 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x0D, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global MOD20_022545EC -MOD20_022545EC: ; 0x022545EC - .short 0x0000, 0x0001, 0x0002, 0x0003, 0x0015, 0x0016, 0x0017, 0x0018 - .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D - .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D - .short 0x002A, 0x002B, 0x002C, 0x002D, 0x002A, 0x002B, 0x002C, 0x002D - .short 0x002A, 0x002B, 0x002C, 0x002D, 0x003F, 0x0040, 0x0041, 0x0042 - .short 0x0054, 0x0055, 0x0056, 0x0057 - - .global MOD20_02254644 -MOD20_02254644: ; 0x02254644 - .word 0x00000000, MOD20_02252ED0, 0x00000000 - .word 0x00000001, MOD20_02252FF0, 0x00000004 - .word 0x00000002, MOD20_02252FF0, 0x00000004 - .word 0x00000003, MOD20_02253228, 0x00000004 - .word 0x00000004, MOD20_02253100, 0x00000004 - .word 0x00000005, MOD20_0225328C, 0x00000004 - .word 0x00000006, MOD20_022532F0, 0x00000000 - .word 0x00000008, MOD20_02253338, 0x00000000 - .word 0x00000007, MOD20_02253378, 0x00000000 - .word 0x00000009, MOD20_022533C0, 0x00000000 - .word 0x0000000A, MOD20_022533EC, 0x00000000 - .word 0x0000000B, MOD20_0225340C, 0x00000000 - .word 0x0000000C, MOD20_022535CC, 0x00000000 - .word 0x0000000D, MOD20_02253668, 0x00000000 - .word 0x0000000E, MOD20_022536C8, 0x00000000 - .word 0xFFFFFFFF, 0x00000000, 0x00000000 - - .global MOD20_02254704 -MOD20_02254704: ; 0x02254704 - .byte 0x00, 0x02, 0x00, 0x04 - - .global MOD20_02254708 -MOD20_02254708: ; 0x02254708 - .byte 0x80, 0x02, 0x80, 0x04 - - .global MOD20_0225470C -MOD20_0225470C: ; 0x0225470C - .byte 0x01, 0x08, 0x0F, 0x04 - - .global MOD20_02254710 -MOD20_02254710: ; 0x02254710 - .word MOD20_02254340, MOD20_0225435C, MOD20_022543BC, MOD20_022543F4 - .word MOD20_0225440C - - .global MOD20_02254724 -MOD20_02254724: ; 0x02254724 - .word 0x00000020, 0x0000002A - .word 0x00000032, 0x0000002A - .word 0x000000A8, 0x0000007A - .word 0x000000C2, 0x0000003A - - .global MOD20_02254744 -MOD20_02254744: ; 0x02254744 - .short 0x001A, 0x0020, 0x0026, 0x002C, 0x0032, 0x0038, 0x003E, 0x0044 - .short 0x004A, 0x0050, 0x0056, 0x005C, 0x0062, 0x0068, 0x006E, 0x0074 - .short 0x007A, 0x0080, 0x0086, 0x008C, 0x0092, 0x0098, 0x009E, 0x00A4 - .short 0x00AA, 0x00B0, 0x00B6, 0x00BC, 0x00C2, 0x00C8 - - .global MOD20_02254780 -MOD20_02254780: ; 0x02254780 - .short 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0018, 0x001E, 0x0024 - .short 0x002A, 0x0030, 0x0036, 0x003C, 0x0042, 0x0048, 0x004E, 0x0054 - .short 0x005A, 0x0060, 0x0066, 0x006C, 0x0072, 0x0078, 0x007E, 0x0084 - .short 0x008A, 0x0090, 0x0096, 0x009C, 0x00A2, 0x00A8, 0x00AE, 0x00B4 - .short 0x00BA - - .global MOD20_022547C2 -MOD20_022547C2: ; 0x022547C2 - .short 0x0156 - .byte 0x2F, 0x96 - .short 0x0157 - .byte 0x38, 0x90 - .short 0x0158 - .byte 0x41, 0x84 - .short 0x0159 - .byte 0x32, 0x7E - .short 0x015A - .byte 0x32, 0x78 - .short 0x015B - .byte 0x3E, 0x6C - .short 0x015D - .byte 0x4A, 0x5A - .short 0x015E - .byte 0x50, 0x6F - .short 0x0161 - .byte 0x53, 0x7E - .short 0x0162 - .byte 0x65, 0x7E - .short 0x0164 - .byte 0x7D, 0x7E - .short 0x016A - .byte 0x80, 0x66 - .short 0x016B - .byte 0x7A, 0x5A - .short 0x016D - .byte 0x5C, 0x5A - .short 0x016E - .byte 0x68, 0x5A - .short 0x016F - .byte 0x6E, 0x8A - .short 0x0173 - .byte 0x77, 0x96 - .short 0x0175 - .byte 0x98, 0x93 - .short 0x017C - .byte 0x98, 0x78 - .short 0x017E - .byte 0x8C, 0x66 - .short 0x017F - .byte 0x56, 0x42 - .short 0x0181 - .byte 0x50, 0x33 - .short 0x0184 - .byte 0x29, 0x84 - .short 0x0187 - .byte 0x38, 0x9C - .short 0x01D3 - .byte 0x3B, 0xA2 - .short 0x0188 - .byte 0x4A, 0xA2 - .short 0x018B - .byte 0xAA, 0x8A - .short 0x00C8 - .byte 0x44, 0x72 - .short 0x00CC - .byte 0x38, 0x66 - - .data - .bss |