diff options
-rw-r--r-- | arm9/arm9.lcf | 71 | ||||
-rw-r--r-- | arm9/global.inc | 3 | ||||
-rw-r--r-- | arm9/modules/33/asm/module_33.s | 396 |
3 files changed, 467 insertions, 3 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf index 68347ea4..f42348be 100644 --- a/arm9/arm9.lcf +++ b/arm9/arm9.lcf @@ -407,6 +407,7 @@ SECTIONS { .MODULE.00 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_00.START = .; module_00_dummy.o (.text) module_00_dummy.o (.sdata) @@ -416,6 +417,7 @@ SECTIONS { } > MODULE_00 .MODULE.00.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_00.BSS_START = .; module_00_dummy.o (.sbss) module_00_dummy.o (.bss) @@ -425,6 +427,7 @@ SECTIONS { .MODULE.01 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_01.START = .; module_01.o (.text) module_01.o (.sdata) @@ -434,6 +437,7 @@ SECTIONS { } > MODULE_01 .MODULE.01.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_01.BSS_START = .; module_01.o (.sbss) module_01.o (.bss) @@ -443,6 +447,7 @@ SECTIONS { .MODULE.02 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_02.START = .; module_02_dummy.o (.text) module_02_dummy.o (.sdata) @@ -452,6 +457,7 @@ SECTIONS { } > MODULE_02 .MODULE.02.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_02.BSS_START = .; module_02_dummy.o (.sbss) module_02_dummy.o (.bss) @@ -461,6 +467,7 @@ SECTIONS { .MODULE.03 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_03.START = .; module_03_dummy.o (.text) module_03_dummy.o (.sdata) @@ -470,6 +477,7 @@ SECTIONS { } > MODULE_03 .MODULE.03.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_03.BSS_START = .; module_03_dummy.o (.sbss) module_03_dummy.o (.bss) @@ -479,6 +487,7 @@ SECTIONS { .MODULE.04 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_04.START = .; thumb_04.o (.text) arm_04.o (.text) @@ -493,6 +502,7 @@ SECTIONS { } > MODULE_04 .MODULE.04.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_04.BSS_START = .; thumb_04.o (.sbss) arm_04.o (.sbss) @@ -504,6 +514,7 @@ SECTIONS { .MODULE.05 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_05.START = .; module_05.o (.text) module_05.o (.sdata) @@ -513,6 +524,7 @@ SECTIONS { } > MODULE_05 .MODULE.05.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_05.BSS_START = .; module_05.o (.sbss) module_05.o (.bss) @@ -522,6 +534,7 @@ SECTIONS { .MODULE.06 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_06.START = .; module_06.o (.text) module_06.o (.sdata) @@ -531,6 +544,7 @@ SECTIONS { } > MODULE_06 .MODULE.06.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_06.BSS_START = .; module_06.o (.sbss) module_06.o (.bss) @@ -540,6 +554,7 @@ SECTIONS { .MODULE.07 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_07.START = .; module_07.o (.text) module_07.o (.sdata) @@ -550,6 +565,7 @@ SECTIONS { .MODULE.07.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_07.BSS_START = .; module_07.o (.sbss) module_07.o (.bss) @@ -559,6 +575,7 @@ SECTIONS { .MODULE.08 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_08.START = .; module_08.o (.text) module_08.o (.sdata) @@ -569,6 +586,7 @@ SECTIONS { .MODULE.08.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_08.BSS_START = .; module_08.o (.sbss) module_08.o (.bss) @@ -578,6 +596,7 @@ SECTIONS { .MODULE.09 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_09.START = .; module_09.o (.text) module_09.o (.sdata) @@ -588,6 +607,7 @@ SECTIONS { .MODULE.09.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_09.BSS_START = .; module_09.o (.sbss) module_09.o (.bss) @@ -597,6 +617,7 @@ SECTIONS { .MODULE.10 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_10.START = .; module_10_dummy.o (.text) module_10_dummy.o (.sdata) @@ -607,6 +628,7 @@ SECTIONS { .MODULE.10.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_10.BSS_START = .; module_10_dummy.o (.sbss) module_10_dummy.o (.bss) @@ -616,6 +638,7 @@ SECTIONS { .MODULE.11 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_11.START = .; module_11.o (.text) module_11.o (.sdata) @@ -626,6 +649,7 @@ SECTIONS { .MODULE.11.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_11.BSS_START = .; module_11.o (.sbss) module_11.o (.bss) @@ -635,6 +659,7 @@ SECTIONS { .MODULE.12 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_12.START = .; module_12.o (.text) module_12.o (.sdata) @@ -645,6 +670,7 @@ SECTIONS { .MODULE.12.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_12.BSS_START = .; module_12.o (.sbss) module_12.o (.bss) @@ -654,6 +680,7 @@ SECTIONS { .MODULE.13 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_13.START = .; module_13_init.o (.text) module_13_arm1.o (.text) @@ -673,6 +700,7 @@ SECTIONS { .MODULE.13.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_13.BSS_START = .; module_13_init.o (.sbss) module_13_arm1.o (.sbss) @@ -688,6 +716,7 @@ SECTIONS { .MODULE.14 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_14.START = .; module_14.o (.text) module_14.o (.sdata) @@ -698,6 +727,7 @@ SECTIONS { .MODULE.14.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_14.BSS_START = .; module_14.o (.sbss) module_14.o (.bss) @@ -707,6 +737,7 @@ SECTIONS { .MODULE.15 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_15.START = .; module_15.o (.text) module_15.o (.sdata) @@ -717,6 +748,7 @@ SECTIONS { .MODULE.15.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_15.BSS_START = .; module_15.o (.sbss) module_15.o (.bss) @@ -726,6 +758,7 @@ SECTIONS { .MODULE.16 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_16.START = .; module_16.o (.text) module_16.o (.sdata) @@ -736,6 +769,7 @@ SECTIONS { .MODULE.16.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_16.BSS_START = .; module_16.o (.sbss) module_16.o (.bss) @@ -745,6 +779,7 @@ SECTIONS { .MODULE.17 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_17.START = .; module_17.o (.text) module_17.o (.sdata) @@ -755,6 +790,7 @@ SECTIONS { .MODULE.17.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_17.BSS_START = .; module_17.o (.sbss) module_17.o (.bss) @@ -764,6 +800,7 @@ SECTIONS { .MODULE.18 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_18.START = .; module_18.o (.text) module_18.o (.sdata) @@ -774,6 +811,7 @@ SECTIONS { .MODULE.18.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_18.BSS_START = .; module_18.o (.sbss) module_18.o (.bss) @@ -783,6 +821,7 @@ SECTIONS { .MODULE.19 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_19.START = .; module_19.o (.text) module_19.o (.sdata) @@ -793,6 +832,7 @@ SECTIONS { .MODULE.19.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_19.BSS_START = .; module_19.o (.sbss) module_19.o (.bss) @@ -802,6 +842,7 @@ SECTIONS { .MODULE.20 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_20.START = .; module_20.o (.text) module_20.o (.sdata) @@ -812,6 +853,7 @@ SECTIONS { .MODULE.20.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_20.BSS_START = .; module_20.o (.sbss) module_20.o (.bss) @@ -821,6 +863,7 @@ SECTIONS { .MODULE.21 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_21.START = .; module_21.o (.text) module_21.o (.sdata) @@ -831,6 +874,7 @@ SECTIONS { .MODULE.21.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_21.BSS_START = .; module_21.o (.sbss) module_21.o (.bss) @@ -840,6 +884,7 @@ SECTIONS { .MODULE.22 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_22.START = .; module_22.o (.text) module_22.o (.sdata) @@ -850,6 +895,7 @@ SECTIONS { .MODULE.22.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_22.BSS_START = .; module_22.o (.sbss) module_22.o (.bss) @@ -859,6 +905,7 @@ SECTIONS { .MODULE.23 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_23.START = .; module_23.o (.text) module_23.o (.sdata) @@ -869,6 +916,7 @@ SECTIONS { .MODULE.23.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_23.BSS_START = .; module_23.o (.sbss) module_23.o (.bss) @@ -878,6 +926,7 @@ SECTIONS { .MODULE.24 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_24.START = .; module_24.o (.text) module_24.o (.sdata) @@ -888,6 +937,7 @@ SECTIONS { .MODULE.24.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_24.BSS_START = .; module_24.o (.sbss) module_24.o (.bss) @@ -897,6 +947,7 @@ SECTIONS { .MODULE.25 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_25.START = .; module_25.o (.text) module_25.o (.sdata) @@ -907,6 +958,7 @@ SECTIONS { .MODULE.25.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_25.BSS_START = .; module_25.o (.sbss) module_25.o (.bss) @@ -916,6 +968,7 @@ SECTIONS { .MODULE.26 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_26.START = .; module_26.o (.text) module_26.o (.sdata) @@ -926,6 +979,7 @@ SECTIONS { .MODULE.26.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_26.BSS_START = .; module_26.o (.sbss) module_26.o (.bss) @@ -935,6 +989,7 @@ SECTIONS { .MODULE.27 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_27.START = .; module_27.o (.text) module_27.o (.sdata) @@ -945,6 +1000,7 @@ SECTIONS { .MODULE.27.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_27.BSS_START = .; module_27.o (.sbss) module_27.o (.bss) @@ -954,6 +1010,7 @@ SECTIONS { .MODULE.28 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_28.START = .; module_28.o (.text) module_28.o (.sdata) @@ -964,6 +1021,7 @@ SECTIONS { .MODULE.28.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_28.BSS_START = .; module_28.o (.sbss) module_28.o (.bss) @@ -973,6 +1031,7 @@ SECTIONS { .MODULE.29 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_29.START = .; module_29.o (.text) module_29.o (.sdata) @@ -983,6 +1042,7 @@ SECTIONS { .MODULE.29.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_29.BSS_START = .; module_29.o (.sbss) module_29.o (.bss) @@ -992,6 +1052,7 @@ SECTIONS { .MODULE.30 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_30.START = .; module_30.o (.text) module_30.o (.sdata) @@ -1002,6 +1063,7 @@ SECTIONS { .MODULE.30.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_30.BSS_START = .; module_30.o (.sbss) module_30.o (.bss) @@ -1011,6 +1073,7 @@ SECTIONS { .MODULE.31 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_31.START = .; module_31.o (.text) module_31.o (.sdata) @@ -1021,6 +1084,7 @@ SECTIONS { .MODULE.31.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_31.BSS_START = .; module_31.o (.sbss) module_31.o (.bss) @@ -1030,6 +1094,7 @@ SECTIONS { .MODULE.32 : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_32.START = .; module_32.o (.text) module_32.o (.sdata) @@ -1040,6 +1105,7 @@ SECTIONS { .MODULE.32.bss : { + ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_32.BSS_START = .; module_32.o (.sbss) module_32.o (.bss) @@ -1050,7 +1116,8 @@ SECTIONS { .MODULE.33: { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_33.START = .; - FILE_28DE00.o (.text) /* 0x289E00 */ + module_33.o (.text) /* 0x289E00 */ + module_33.o (.data) . = ALIGN(32); SDK_OVERLAY.MODULE_33.END = .; SDK_OVERLAY.MODULE_33.SIZE = SDK_OVERLAY.MODULE_33.END - SDK_OVERLAY.MODULE_33.START; @@ -1060,7 +1127,7 @@ SECTIONS { { ALIGNALL(4); . = ALIGN(32); SDK_OVERLAY.MODULE_33.BSS_START = .; - FILE_28DE00.o (.bss) + module_33.o (.bss) . = ALIGN(32); SDK_OVERLAY.MODULE_33.BSS_END = .; SDK_OVERLAY.MODULE_33.BSS_SIZE = SDK_OVERLAY.MODULE_33.BSS_END - SDK_OVERLAY.MODULE_33.BSS_START; diff --git a/arm9/global.inc b/arm9/global.inc index 508f71de..a4be1f0c 100644 --- a/arm9/global.inc +++ b/arm9/global.inc @@ -5409,7 +5409,6 @@ .extern FUN_02006C88
.extern FUN_02020A6C
.extern FUN_02012690
-.extern MOD20_02252978
.extern FUN_02020BF4
.extern FUN_02020BFC
.extern FUN_020893F0
@@ -5417,6 +5416,8 @@ .extern FUN_02069B60
.extern FUN_02089444
.extern FUN_0208946C
+.extern MOD20_02252978
+.extern MOD20_02253AA4
.extern MOD20_02252B68
.extern MOD20_02252C08
.extern MOD20_02253794
diff --git a/arm9/modules/33/asm/module_33.s b/arm9/modules/33/asm/module_33.s new file mode 100644 index 00000000..d1b6ad49 --- /dev/null +++ b/arm9/modules/33/asm/module_33.s @@ -0,0 +1,396 @@ + .include "asm/macros.inc" + .include "global.inc" + .section .text + .balign 4, 0 + + thumb_func_start MOD33_02254840 +MOD33_02254840: ; 0x02254840 + ldr r3, _02254848 ; =MOD20_02252978 + ldr r0, _0225484C ; =MOD33_02254854 + ldr r1, _02254850 ; =MOD33_02254908 + bx r3 + .align 2, 0 +_02254848: .word MOD20_02252978 +_0225484C: .word MOD33_02254854 +_02254850: .word MOD33_02254908 + thumb_func_end MOD33_02254840 + + thumb_func_start MOD33_02254854 +MOD33_02254854: ; 0x02254854 + push {r3, r4, r5, r6, r7, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x10 + add r7, r2, #0 + str r3, [sp] + bl FUN_02016998 + add r4, r0, #0 + beq _02254892 + ldr r3, [sp] + add r1, r6, #0 + add r2, r7, #0 + bl MOD33_0225489C + cmp r0, #0 + beq _0225488C + ldr r0, _02254898 ; =MOD33_022548D4 + add r1, r4, #0 + mov r2, #1 + bl FUN_0200CA44 + cmp r0, #0 + beq _0225488C + str r4, [r5] + mov r0, #1 + pop {r3, r4, r5, r6, r7, pc} +_0225488C: + add r0, r4, #0 + bl FUN_02016A18 +_02254892: + mov r0, #0 + pop {r3, r4, r5, r6, r7, pc} + nop +_02254898: .word MOD33_022548D4 + thumb_func_end MOD33_02254854 + + thumb_func_start MOD33_0225489C +MOD33_0225489C: ; 0x0225489C + push {r3, r4, r5, lr} + add r5, r0, #0 + add r4, r1, #0 + add r0, #8 + add r1, r5, #4 + bl MOD33_022549AC + cmp r0, #0 + beq _022548BC + mov r0, #0 + strb r0, [r5] + strb r0, [r5, #1] + strb r0, [r5, #2] + str r4, [r5, #0xc] + mov r0, #1 + pop {r3, r4, r5, pc} +_022548BC: + mov r0, #0 + pop {r3, r4, r5, pc} + thumb_func_end MOD33_0225489C + + thumb_func_start MOD33_022548C0 +MOD33_022548C0: ; 0x022548C0 + push {r4, lr} + add r4, r0, #0 + ldr r0, [r4, #8] + bl MOD33_022549DC + add r0, r4, #0 + bl FUN_02016A18 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_022548C0 + + thumb_func_start MOD33_022548D4 +MOD33_022548D4: ; 0x022548D4 + push {r3, r4, r5, lr} + add r4, r1, #0 + ldrb r1, [r4] + add r5, r0, #0 + cmp r1, #3 + bhs _02254900 + lsl r2, r1, #2 + ldr r1, _02254904 ; =0x02254AF4 + add r0, r4, #0 + ldr r1, [r1, r2] + blx r1 + cmp r0, #0 + beq _02254900 + add r0, r4, #0 + bl MOD33_022548C0 + add r0, r5, #0 + bl FUN_0200CAB4 + ldr r0, [r4, #0xc] + bl MOD20_022529A0 +_02254900: + pop {r3, r4, r5, pc} + nop +_02254904: .word 0x02254AF4 + thumb_func_end MOD33_022548D4 + + thumb_func_start MOD33_02254908 +MOD33_02254908: ; 0x02254908 + mov r1, #1 + strb r1, [r0, #2] + bx lr + .align 2, 0 + thumb_func_end MOD33_02254908 + + thumb_func_start MOD33_02254910 +MOD33_02254910: ; 0x02254910 + ldrb r2, [r0, #2] + cmp r2, #0 + bne _02254918 + b _0225491A +_02254918: + mov r1, #2 +_0225491A: + strb r1, [r0] + mov r1, #0 + strb r1, [r0, #1] + bx lr + .align 2, 0 + thumb_func_end MOD33_02254910 + + thumb_func_start MOD33_02254924 +MOD33_02254924: ; 0x02254924 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254934 + cmp r0, #1 + beq _02254944 + b _0225495E +_02254934: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD33_022549E8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _0225495E +_02254944: + ldr r0, [r4, #8] + mov r1, #0 + bl MOD33_02254A0C + cmp r0, #0 + beq _0225495E + ldr r0, [r4, #0xc] + bl MOD20_0225298C + add r0, r4, #0 + mov r1, #1 + bl MOD33_02254910 +_0225495E: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254924 + + thumb_func_start MOD33_02254964 +MOD33_02254964: ; 0x02254964 + push {r3, lr} + ldrb r1, [r0, #2] + cmp r1, #0 + beq _02254972 + mov r1, #2 + bl MOD33_02254910 +_02254972: + mov r0, #0 + pop {r3, pc} + .align 2, 0 + thumb_func_end MOD33_02254964 + + thumb_func_start MOD33_02254978 +MOD33_02254978: ; 0x02254978 + push {r4, lr} + add r4, r0, #0 + ldrb r0, [r4, #1] + cmp r0, #0 + beq _02254988 + cmp r0, #1 + beq _02254998 + b _022549A6 +_02254988: + ldr r0, [r4, #8] + mov r1, #1 + bl MOD33_022549E8 + ldrb r0, [r4, #1] + add r0, r0, #1 + strb r0, [r4, #1] + b _022549A6 +_02254998: + ldr r0, [r4, #8] + bl MOD33_02254A18 + cmp r0, #0 + beq _022549A6 + mov r0, #1 + pop {r4, pc} +_022549A6: + mov r0, #0 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254978 + + thumb_func_start MOD33_022549AC +MOD33_022549AC: ; 0x022549AC + push {r4, r5, r6, lr} + add r5, r0, #0 + add r6, r1, #0 + mov r0, #8 + mov r1, #0x30 + bl FUN_02016998 + add r4, r0, #0 + beq _022549D8 + add r0, #8 + mov r1, #8 + bl MOD20_022536F4 + str r6, [r4] + bl MOD20_02252D34 + str r0, [r4, #4] + cmp r0, #0 + beq _022549D8 + str r4, [r5] + mov r0, #1 + pop {r4, r5, r6, pc} +_022549D8: + mov r0, #0 + pop {r4, r5, r6, pc} + thumb_func_end MOD33_022549AC + + thumb_func_start MOD33_022549DC +MOD33_022549DC: ; 0x022549DC + push {r3, lr} + cmp r0, #0 + beq _022549E6 + bl FUN_02016A18 +_022549E6: + pop {r3, pc} + thumb_func_end MOD33_022549DC + + thumb_func_start MOD33_022549E8 +MOD33_022549E8: ; 0x022549E8 + push {lr} + sub sp, #0xc + add r2, r0, #0 + add r0, #8 + str r0, [sp] + mov r0, #2 + str r0, [sp, #4] + mov r0, #8 + str r0, [sp, #8] + ldr r0, _02254A08 ; =0x02254B1C + ldr r3, [r2] + bl MOD20_022537E0 + add sp, #0xc + pop {pc} + nop +_02254A08: .word 0x02254B1C + thumb_func_end MOD33_022549E8 + + thumb_func_start MOD33_02254A0C +MOD33_02254A0C: ; 0x02254A0C + ldr r3, _02254A14 ; =MOD20_02253794 + add r0, #8 + bx r3 + nop +_02254A14: .word MOD20_02253794 + thumb_func_end MOD33_02254A0C + + thumb_func_start MOD33_02254A18 +MOD33_02254A18: ; 0x02254A18 + ldr r3, _02254A20 ; =MOD20_022537B8 + add r0, #8 + bx r3 + nop +_02254A20: .word MOD20_022537B8 + thumb_func_end MOD33_02254A18 + + thumb_func_start MOD33_02254A24 +MOD33_02254A24: ; 0x02254A24 + push {r4, lr} + add r4, r0, #0 + bl MOD20_022538A0 + add r0, #8 + add r1, r4, #0 + bl MOD20_02253888 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254A24 + + thumb_func_start MOD33_02254A38 +MOD33_02254A38: ; 0x02254A38 + push {r4, r5, lr} + sub sp, #0x14 + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + add r5, r0, #0 + ldr r0, [r5, #4] + ldr r2, _02254ACC ; =0x02254B00 + mov r1, #6 + mov r3, #0 + bl FUN_02016C18 + mov r0, #0 + str r0, [sp] + str r0, [sp, #4] + str r0, [sp, #8] + mov r1, #8 + str r1, [sp, #0xc] + ldr r2, [r5, #4] + mov r0, #0xc + mov r3, #6 + bl FUN_0200687C + mov r2, #0 + str r2, [sp] + mov r0, #0x20 + str r0, [sp, #4] + mov r0, #0x18 + str r0, [sp, #8] + str r2, [sp, #0xc] + ldr r0, [r5, #4] + mov r1, #6 + add r3, r2, #0 + bl FUN_02018540 + mov r0, #0x20 + str r0, [sp] + mov r0, #8 + str r0, [sp, #4] + mov r0, #0xc + mov r1, #9 + mov r2, #4 + mov r3, #0 + bl FUN_02006930 + ldr r0, [r5, #4] + mov r1, #0xc + mov r2, #6 + bl MOD20_02253AA4 + ldr r0, [r5, #4] + mov r1, #6 + bl FUN_02017CD0 + ldr r1, _02254AD0 ; =0x04001000 + ldr r0, _02254AD4 ; =0xFFFFE0FF + ldr r3, [r1] + ldr r2, [r1] + str r3, [sp, #0x10] + and r0, r2 + lsl r2, r3, #0x13 + lsr r3, r2, #0x1b + mov r2, #4 + orr r2, r3 + lsl r2, r2, #8 + orr r0, r2 + str r0, [r1] + add r0, r4, #0 + bl MOD33_02254A24 + add sp, #0x14 + pop {r4, r5, pc} + nop +_02254ACC: .word 0x02254B00 +_02254AD0: .word 0x04001000 +_02254AD4: .word 0xFFFFE0FF + thumb_func_end MOD33_02254A38 + + thumb_func_start MOD33_02254AD8 +MOD33_02254AD8: ; 0x02254AD8 + push {r4, lr} + add r4, r1, #0 + add r0, r4, #0 + bl MOD20_022538A0 + ldr r0, [r0, #4] + mov r1, #6 + bl FUN_020178A0 + add r0, r4, #0 + bl MOD33_02254A24 + pop {r4, pc} + .align 2, 0 + thumb_func_end MOD33_02254AD8 + + .section .data + ; 0x02254AF4 + .incbin "baserom.nds", 0x28E0B4, 0x6C |