summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf71
-rw-r--r--arm9/global.inc3
-rw-r--r--arm9/modules/33/asm/module_33.s396
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