summaryrefslogtreecommitdiff
path: root/arm9/modules
diff options
context:
space:
mode:
Diffstat (limited to 'arm9/modules')
-rw-r--r--arm9/modules/03/asm/module_03_dummy.s2
-rw-r--r--arm9/modules/05/asm/module_05.s48
-rw-r--r--arm9/modules/11/asm/module_11.s46
-rw-r--r--arm9/modules/12/asm/module_12.s40
-rw-r--r--arm9/modules/29/asm/module_29.s1126
-rw-r--r--arm9/modules/30/asm/module_30.s734
-rw-r--r--arm9/modules/31/asm/module_31.s724
-rw-r--r--arm9/modules/32/asm/module_32.s576
8 files changed, 3227 insertions, 69 deletions
diff --git a/arm9/modules/03/asm/module_03_dummy.s b/arm9/modules/03/asm/module_03_dummy.s
index 70f9f9c2..e8a42167 100644
--- a/arm9/modules/03/asm/module_03_dummy.s
+++ b/arm9/modules/03/asm/module_03_dummy.s
@@ -1,4 +1,2 @@
.section .data
.space 32
- .section .bss
- .space 32
diff --git a/arm9/modules/05/asm/module_05.s b/arm9/modules/05/asm/module_05.s
index 9374c856..085ce35d 100644
--- a/arm9/modules/05/asm/module_05.s
+++ b/arm9/modules/05/asm/module_05.s
@@ -61,7 +61,7 @@ _021D752C:
lsl r0, r0, #8
lsr r0, r0, #0x1c
beq _021D7564
- ldr r0, _021D7678 ; =SDK_MODULE_06_ID
+ ldr r0, _021D7678 ; =SDK_OVERLAY_MODULE_06_ID
mov r1, #2
bl HandleLoadOverlay
_021D7564:
@@ -174,7 +174,7 @@ _021D7666:
.balign 4, 0
_021D7670: .word 0x04000050
_021D7674: .word 0x04001050
-_021D7678: .word SDK_MODULE_06_ID
+_021D7678: .word SDK_OVERLAY_MODULE_06_ID
thumb_func_start MOD05_021D767C
MOD05_021D767C: ; 0x021D767C
@@ -367,7 +367,7 @@ _021D7806:
lsl r0, r0, #8
lsr r0, r0, #0x1c
beq _021D7856
- ldr r0, _021D7860 ; =SDK_MODULE_06_ID
+ ldr r0, _021D7860 ; =SDK_OVERLAY_MODULE_06_ID
bl UnloadOverlayByID
_021D7856:
mov r0, #1
@@ -376,7 +376,7 @@ _021D785A:
mov r0, #0
pop {r3, r4, r5, pc}
nop
-_021D7860: .word SDK_MODULE_06_ID
+_021D7860: .word SDK_OVERLAY_MODULE_06_ID
thumb_func_start MOD05_021D7864
MOD05_021D7864: ; 0x021D7864
@@ -9485,7 +9485,7 @@ _021DBE9C: .word 0x02050E2D
MOD05_021DBEA0: ; 0x021DBEA0
push {r4, lr}
add r4, r0, #0
- ldr r0, _021DBEB8 ; =SDK_MODULE_51_ID
+ ldr r0, _021DBEB8 ; =SDK_OVERLAY_MODULE_51_ID
mov r1, #2
bl HandleLoadOverlay
add r0, r4, #0
@@ -9494,7 +9494,7 @@ MOD05_021DBEA0: ; 0x021DBEA0
str r0, [r4]
pop {r4, pc}
.balign 4, 0
-_021DBEB8: .word SDK_MODULE_51_ID
+_021DBEB8: .word SDK_OVERLAY_MODULE_51_ID
thumb_func_start MOD05_021DBEBC
MOD05_021DBEBC: ; 0x021DBEBC
@@ -9516,11 +9516,11 @@ MOD05_021DBECC: ; 0x021DBECC
add r0, #0x80
ldr r0, [r0]
bl FUN_02254AB8
- ldr r0, _021DBEE0 ; =SDK_MODULE_51_ID
+ ldr r0, _021DBEE0 ; =SDK_OVERLAY_MODULE_51_ID
bl UnloadOverlayByID
pop {r3, pc}
nop
-_021DBEE0: .word SDK_MODULE_51_ID
+_021DBEE0: .word SDK_OVERLAY_MODULE_51_ID
thumb_func_start MOD05_021DBEE4
MOD05_021DBEE4: ; 0x021DBEE4
@@ -24576,9 +24576,9 @@ _021E33A0:
ldr r0, [r5, #0xc]
bl FUN_0204C1A8
add r6, r0, #0
- ldr r0, _021E341C ; =SDK_MODULE_19_ID
+ ldr r0, _021E341C ; =SDK_OVERLAY_MODULE_19_ID
bl UnloadOverlayByID
- ldr r0, _021E3420 ; =SDK_MODULE_20_ID
+ ldr r0, _021E3420 ; =SDK_OVERLAY_MODULE_20_ID
mov r1, #2
bl HandleLoadOverlay
add r0, r6, #0
@@ -24624,8 +24624,8 @@ _021E3414:
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
-_021E341C: .word SDK_MODULE_19_ID
-_021E3420: .word SDK_MODULE_20_ID
+_021E341C: .word SDK_OVERLAY_MODULE_19_ID
+_021E3420: .word SDK_OVERLAY_MODULE_20_ID
thumb_func_start MOD05_021E3424
MOD05_021E3424: ; 0x021E3424
@@ -50085,7 +50085,7 @@ MOD05_021EFAAC: ; 0x021EFAAC
bl FUN_0205F1E4
cmp r0, #0
bne _021EFAF8
- ldr r0, _021EFB0C ; =SDK_MODULE_20_ID
+ ldr r0, _021EFB0C ; =SDK_OVERLAY_MODULE_20_ID
mov r1, #2
bl HandleLoadOverlay
mov r0, #1
@@ -50100,7 +50100,7 @@ MOD05_021EFAAC: ; 0x021EFAAC
add sp, #4
pop {r3, r4, r5, r6, pc}
_021EFAF8:
- ldr r0, _021EFB10 ; =SDK_MODULE_19_ID
+ ldr r0, _021EFB10 ; =SDK_OVERLAY_MODULE_19_ID
mov r1, #2
bl HandleLoadOverlay
ldr r0, [r5, #8]
@@ -50108,8 +50108,8 @@ _021EFAF8:
add sp, #4
pop {r3, r4, r5, r6, pc}
nop
-_021EFB0C: .word SDK_MODULE_20_ID
-_021EFB10: .word SDK_MODULE_19_ID
+_021EFB0C: .word SDK_OVERLAY_MODULE_20_ID
+_021EFB10: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFB14
MOD05_021EFB14: ; 0x021EFB14
@@ -50165,7 +50165,7 @@ MOD05_021EFB50: ; 0x021EFB50
ldr r0, [r5, #4]
mov r1, #0
str r1, [r0, #0x14]
- ldr r0, _021EFBAC ; =SDK_MODULE_20_ID
+ ldr r0, _021EFBAC ; =SDK_OVERLAY_MODULE_20_ID
bl UnloadOverlayByID
mov r0, #1
pop {r4, r5, r6, pc}
@@ -50174,7 +50174,7 @@ _021EFB94:
bl FUN_02252504
cmp r0, #0
beq _021EFBA8
- ldr r0, _021EFBB0 ; =SDK_MODULE_19_ID
+ ldr r0, _021EFBB0 ; =SDK_OVERLAY_MODULE_19_ID
bl UnloadOverlayByID
mov r0, #1
pop {r4, r5, r6, pc}
@@ -50182,21 +50182,21 @@ _021EFBA8:
mov r0, #0
pop {r4, r5, r6, pc}
.balign 4, 0
-_021EFBAC: .word SDK_MODULE_20_ID
-_021EFBB0: .word SDK_MODULE_19_ID
+_021EFBAC: .word SDK_OVERLAY_MODULE_20_ID
+_021EFBB0: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBB4
MOD05_021EFBB4: ; 0x021EFBB4
push {r4, lr}
add r4, r0, #0
- ldr r0, _021EFBC8 ; =SDK_MODULE_19_ID
+ ldr r0, _021EFBC8 ; =SDK_OVERLAY_MODULE_19_ID
mov r1, #2
bl HandleLoadOverlay
ldr r0, [r4, #8]
bl FUN_02252440
pop {r4, pc}
.balign 4, 0
-_021EFBC8: .word SDK_MODULE_19_ID
+_021EFBC8: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBCC
MOD05_021EFBCC: ; 0x021EFBCC
@@ -50213,7 +50213,7 @@ MOD05_021EFBD8: ; 0x021EFBD8
bl FUN_02252504
cmp r0, #0
beq _021EFBEE
- ldr r0, _021EFBF4 ; =SDK_MODULE_19_ID
+ ldr r0, _021EFBF4 ; =SDK_OVERLAY_MODULE_19_ID
bl UnloadOverlayByID
mov r0, #1
pop {r3, pc}
@@ -50221,7 +50221,7 @@ _021EFBEE:
mov r0, #0
pop {r3, pc}
nop
-_021EFBF4: .word SDK_MODULE_19_ID
+_021EFBF4: .word SDK_OVERLAY_MODULE_19_ID
thumb_func_start MOD05_021EFBF8
MOD05_021EFBF8: ; 0x021EFBF8
diff --git a/arm9/modules/11/asm/module_11.s b/arm9/modules/11/asm/module_11.s
index 1f539d08..8288a770 100644
--- a/arm9/modules/11/asm/module_11.s
+++ b/arm9/modules/11/asm/module_11.s
@@ -128,7 +128,7 @@ _0222D6AC:
bl MOD11_0222FC38
cmp r0, #1
bne _0222D6D2
- ldr r0, _0222D7F0 ; =SDK_MODULE_07_ID
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
bl UnloadOverlayByID
mov r0, #7
str r0, [r4]
@@ -147,7 +147,7 @@ _0222D6D4:
str r0, [r4]
b _0222D7EA
_0222D6DA:
- ldr r0, _0222D7F4 ; =SDK_MODULE_08_ID
+ ldr r0, _0222D7F4 ; =SDK_OVERLAY_MODULE_08_ID
mov r1, #2
bl HandleLoadOverlay
add r0, r6, #0
@@ -184,7 +184,7 @@ _0222D720:
bl MOD11_0222FE58
cmp r0, #1
bne _0222D7EA
- ldr r0, _0222D7F0 ; =SDK_MODULE_07_ID
+ ldr r0, _0222D7F0 ; =SDK_OVERLAY_MODULE_07_ID
bl UnloadOverlayByID
mov r0, #5
bl FUN_020168D0
@@ -279,8 +279,8 @@ _0222D7EA:
add sp, #0x28
pop {r4, r5, r6, pc}
.align 2, 0
-_0222D7F0: .word SDK_MODULE_07_ID
-_0222D7F4: .word SDK_MODULE_08_ID
+_0222D7F0: .word SDK_OVERLAY_MODULE_07_ID
+_0222D7F4: .word SDK_OVERLAY_MODULE_08_ID
thumb_func_start MOD11_0222D7F8
MOD11_0222D7F8: ; 0x0222D7F8
@@ -302,16 +302,16 @@ MOD11_0222D7F8: ; 0x0222D7F8
add r0, r4, #0
mov r1, #3
bl MOD11_02231338
- ldr r0, _0222D838 ; =SDK_MODULE_08_ID
+ ldr r0, _0222D838 ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
- ldr r0, _0222D83C ; =SDK_MODULE_09_ID
+ ldr r0, _0222D83C ; =SDK_OVERLAY_MODULE_09_ID
mov r1, #2
bl HandleLoadOverlay
pop {r4, pc}
.align 2, 0
_0222D834: .word 0x000023FB
-_0222D838: .word SDK_MODULE_08_ID
-_0222D83C: .word SDK_MODULE_09_ID
+_0222D838: .word SDK_OVERLAY_MODULE_08_ID
+_0222D83C: .word SDK_OVERLAY_MODULE_09_ID
thumb_func_start MOD11_0222D840
MOD11_0222D840: ; 0x0222D840
@@ -349,9 +349,9 @@ MOD11_0222D840: ; 0x0222D840
MOD11_0222D88C: ; 0x0222D88C
push {r3, r4, r5, lr}
add r4, r0, #0
- ldr r0, _0222D938 ; =SDK_MODULE_09_ID
+ ldr r0, _0222D938 ; =SDK_OVERLAY_MODULE_09_ID
bl UnloadOverlayByID
- ldr r0, _0222D93C ; =SDK_MODULE_08_ID
+ ldr r0, _0222D93C ; =SDK_OVERLAY_MODULE_08_ID
mov r1, #2
bl HandleLoadOverlay
add r0, r4, #0
@@ -415,8 +415,8 @@ MOD11_0222D88C: ; 0x0222D88C
bl FUN_02008D24
pop {r3, r4, r5, pc}
.align 2, 0
-_0222D938: .word SDK_MODULE_09_ID
-_0222D93C: .word SDK_MODULE_08_ID
+_0222D938: .word SDK_OVERLAY_MODULE_09_ID
+_0222D93C: .word SDK_OVERLAY_MODULE_08_ID
_0222D940: .word 0x000023FB
thumb_func_start MOD11_0222D944
@@ -1396,12 +1396,12 @@ _0222E220:
bl FUN_0201C350
add r0, r4, #0
bl FUN_02016A18
- ldr r0, _0222E25C ; =SDK_MODULE_08_ID
+ ldr r0, _0222E25C ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
bl FUN_02033590
cmp r0, #0
bne _0222E244
- ldr r0, _0222E260 ; =SDK_MODULE_16_ID
+ ldr r0, _0222E260 ; =SDK_OVERLAY_MODULE_16_ID
bl UnloadOverlayByID
_0222E244:
pop {r3, r4, r5, r6, r7, pc}
@@ -1411,8 +1411,8 @@ _0222E24C: .word 0x00002410
_0222E250: .word 0x000023F9
_0222E254: .word 0x00002430
_0222E258: .word 0x00000704
-_0222E25C: .word SDK_MODULE_08_ID
-_0222E260: .word SDK_MODULE_16_ID
+_0222E25C: .word SDK_OVERLAY_MODULE_08_ID
+_0222E260: .word SDK_OVERLAY_MODULE_16_ID
thumb_func_start MOD11_0222E264
MOD11_0222E264: ; 0x0222E264
@@ -3384,13 +3384,13 @@ MOD11_0222F284: ; 0x0222F284
bl FUN_02033590
cmp r0, #0
bne _0222F296
- ldr r0, _0222F298 ; =SDK_MODULE_16_ID
+ ldr r0, _0222F298 ; =SDK_OVERLAY_MODULE_16_ID
mov r1, #2
bl HandleLoadOverlay
_0222F296:
pop {r3, pc}
.align 2, 0
-_0222F298: .word SDK_MODULE_16_ID
+_0222F298: .word SDK_OVERLAY_MODULE_16_ID
thumb_func_start MOD11_0222F29C
MOD11_0222F29C: ; 0x0222F29C
@@ -4244,7 +4244,7 @@ _0222F9C6:
mov r0, #0
pop {r4, r5, r6, pc}
_0222F9CA:
- ldr r0, _0222FAB8 ; =SDK_MODULE_07_ID
+ ldr r0, _0222FAB8 ; =SDK_OVERLAY_MODULE_07_ID
mov r1, #2
bl HandleLoadOverlay
ldr r1, [r4, #0x2c]
@@ -4363,7 +4363,7 @@ _0222FAA4:
pop {r4, r5, r6, pc}
nop
_0222FAB4: .word 0x00002444
-_0222FAB8: .word SDK_MODULE_07_ID
+_0222FAB8: .word SDK_OVERLAY_MODULE_07_ID
thumb_func_start MOD11_0222FABC
MOD11_0222FABC: ; 0x0222FABC
@@ -4612,7 +4612,7 @@ _0222FCA2:
mov r0, #0
pop {r3, r4, r5, r6, r7, pc}
_0222FCA8:
- ldr r0, _0222FE54 ; =SDK_MODULE_07_ID
+ ldr r0, _0222FE54 ; =SDK_OVERLAY_MODULE_07_ID
mov r1, #2
bl HandleLoadOverlay
mov r0, #5
@@ -4818,7 +4818,7 @@ _0222FE48:
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
-_0222FE54: .word SDK_MODULE_07_ID
+_0222FE54: .word SDK_OVERLAY_MODULE_07_ID
thumb_func_start MOD11_0222FE58
MOD11_0222FE58: ; 0x0222FE58
diff --git a/arm9/modules/12/asm/module_12.s b/arm9/modules/12/asm/module_12.s
index 9748eb5c..36381bcf 100644
--- a/arm9/modules/12/asm/module_12.s
+++ b/arm9/modules/12/asm/module_12.s
@@ -524,16 +524,16 @@ MOD12_0222D9B0: ; 0x0222D9B0
bl FUN_020168D0
bl FUN_02083404
bl FUN_02033ED0
- ldr r0, _0222DADC ; =SDK_MODULE_08_ID
+ ldr r0, _0222DADC ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
- ldr r0, _0222DAE0 ; =SDK_MODULE_17_ID
+ ldr r0, _0222DAE0 ; =SDK_OVERLAY_MODULE_17_ID
bl UnloadOverlayByID
mov r0, #1
pop {r3, r4, r5, pc}
nop
_0222DAD8: .word 0x0000081C
-_0222DADC: .word SDK_MODULE_08_ID
-_0222DAE0: .word SDK_MODULE_17_ID
+_0222DADC: .word SDK_OVERLAY_MODULE_08_ID
+_0222DAE0: .word SDK_OVERLAY_MODULE_17_ID
thumb_func_start MOD12_0222DAE4
MOD12_0222DAE4: ; 0x0222DAE4
@@ -3689,15 +3689,15 @@ _0222F3AE:
bl FUN_020168D0
bl FUN_02083404
bl FUN_02033ED0
- ldr r0, _0222F450 ; =SDK_MODULE_08_ID
+ ldr r0, _0222F450 ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
- ldr r0, _0222F454 ; =SDK_MODULE_17_ID
+ ldr r0, _0222F454 ; =SDK_OVERLAY_MODULE_17_ID
bl UnloadOverlayByID
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
nop
-_0222F450: .word SDK_MODULE_08_ID
-_0222F454: .word SDK_MODULE_17_ID
+_0222F450: .word SDK_OVERLAY_MODULE_08_ID
+_0222F454: .word SDK_OVERLAY_MODULE_17_ID
thumb_func_start MOD12_0222F458
MOD12_0222F458: ; 0x0222F458
@@ -5533,17 +5533,17 @@ _02230296:
bl FUN_020168D0
bl FUN_02083404
bl FUN_02033ED0
- ldr r0, _022303B8 ; =SDK_MODULE_08_ID
+ ldr r0, _022303B8 ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
- ldr r0, _022303BC ; =SDK_MODULE_17_ID
+ ldr r0, _022303BC ; =SDK_OVERLAY_MODULE_17_ID
bl UnloadOverlayByID
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
.align 2, 0
_022303B0: .word 0x00001130
_022303B4: .word 0x0000110C
-_022303B8: .word SDK_MODULE_08_ID
-_022303BC: .word SDK_MODULE_17_ID
+_022303B8: .word SDK_OVERLAY_MODULE_08_ID
+_022303BC: .word SDK_OVERLAY_MODULE_17_ID
thumb_func_start MOD12_022303C0
MOD12_022303C0: ; 0x022303C0
@@ -7447,16 +7447,16 @@ _022312B8: .word 0x00000127
thumb_func_start MOD12_022312BC
MOD12_022312BC: ; 0x022312BC
push {r3, lr}
- ldr r0, _022312D0 ; =SDK_MODULE_08_ID
+ ldr r0, _022312D0 ; =SDK_OVERLAY_MODULE_08_ID
mov r1, #2
bl HandleLoadOverlay
- ldr r0, _022312D4 ; =SDK_MODULE_17_ID
+ ldr r0, _022312D4 ; =SDK_OVERLAY_MODULE_17_ID
mov r1, #2
bl HandleLoadOverlay
pop {r3, pc}
.align 2, 0
-_022312D0: .word SDK_MODULE_08_ID
-_022312D4: .word SDK_MODULE_17_ID
+_022312D0: .word SDK_OVERLAY_MODULE_08_ID
+_022312D4: .word SDK_OVERLAY_MODULE_17_ID
thumb_func_start MOD12_022312D8
MOD12_022312D8: ; 0x022312D8
@@ -41601,9 +41601,9 @@ _022415D4:
lsl r2, r2, #8
bl MIi_CpuClear16
bl FUN_02033ED0
- ldr r0, _0224174C ; =SDK_MODULE_08_ID
+ ldr r0, _0224174C ; =SDK_OVERLAY_MODULE_08_ID
bl UnloadOverlayByID
- ldr r0, _02241750 ; =SDK_MODULE_17_ID
+ ldr r0, _02241750 ; =SDK_OVERLAY_MODULE_17_ID
bl UnloadOverlayByID
mov r0, #1
pop {r3, r4, r5, r6, r7, pc}
@@ -41614,8 +41614,8 @@ _0224173C: .word 0x00007FFF
_02241740: .word 0x05000200
_02241744: .word 0x05000400
_02241748: .word 0x05000600
-_0224174C: .word SDK_MODULE_08_ID
-_02241750: .word SDK_MODULE_17_ID
+_0224174C: .word SDK_OVERLAY_MODULE_08_ID
+_02241750: .word SDK_OVERLAY_MODULE_17_ID
thumb_func_start MOD12_02241754
MOD12_02241754: ; 0x02241754
diff --git a/arm9/modules/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s
new file mode 100644
index 00000000..818f41aa
--- /dev/null
+++ b/arm9/modules/29/asm/module_29.s
@@ -0,0 +1,1126 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD29_02254840
+MOD29_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD29_02254854
+ ldr r1, _02254850 ; =MOD29_02254914
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD29_02254854
+_02254850: .word MOD29_02254914
+ thumb_func_end MOD29_02254840
+
+ thumb_func_start MOD29_02254854
+MOD29_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x54
+ 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 MOD29_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD29_022548E0
+ 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 MOD29_022548E0
+ thumb_func_end MOD29_02254854
+
+ thumb_func_start MOD29_0225489C
+MOD29_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0x48
+ add r1, r5, #4
+ bl MOD29_02254BC0
+ cmp r0, #0
+ beq _022548BE
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r0, [r5, #0x50]
+ str r4, [r5, #0x4c]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548BE:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD29_0225489C
+
+ thumb_func_start MOD29_022548C4
+MOD29_022548C4: ; 0x022548C4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x50]
+ cmp r0, #0
+ beq _022548D2
+ bl FUN_02016A18
+_022548D2:
+ ldr r0, [r4, #0x48]
+ bl MOD29_02254C84
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD29_022548C4
+
+ thumb_func_start MOD29_022548E0
+MOD29_022548E0: ; 0x022548E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _0225490C
+ lsl r2, r1, #2
+ ldr r1, _02254910 ; =0x0225509C
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225490C
+ add r0, r4, #0
+ bl MOD29_022548C4
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x4c]
+ bl MOD20_022529A0
+_0225490C:
+ pop {r3, r4, r5, pc}
+ nop
+_02254910: .word 0x0225509C
+ thumb_func_end MOD29_022548E0
+
+ thumb_func_start MOD29_02254914
+MOD29_02254914: ; 0x02254914
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD29_02254914
+
+ thumb_func_start MOD29_0225491C
+MOD29_0225491C: ; 0x0225491C
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254924
+ b _02254926
+_02254924:
+ mov r1, #2
+_02254926:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD29_0225491C
+
+ thumb_func_start MOD29_02254930
+MOD29_02254930: ; 0x02254930
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254940
+ cmp r0, #1
+ beq _02254950
+ b _0225496A
+_02254940:
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl MOD29_02254CC0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225496A
+_02254950:
+ ldr r0, [r4, #0x48]
+ mov r1, #0
+ bl MOD29_02254CE4
+ cmp r0, #0
+ beq _0225496A
+ ldr r0, [r4, #0x4c]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD29_0225491C
+_0225496A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02254930
+
+ thumb_func_start MOD29_02254970
+MOD29_02254970: ; 0x02254970
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254990
+ ldr r0, [r4, #0x48]
+ bl MOD29_0225508C
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD29_0225491C
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254990:
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _02254A5A
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022549A2: ; jump table
+ .short _022549AA - _022549A2 - 2 ; case 0
+ .short _022549D4 - _022549A2 - 2 ; case 1
+ .short _02254A2A - _022549A2 - 2 ; case 2
+ .short _02254A3C - _022549A2 - 2 ; case 3
+_022549AA:
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD29_02254A64
+ cmp r0, #0
+ beq _02254A5A
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r4, #0
+ bl MOD29_02254AA8
+ ldr r0, _02254A60 ; =0x00000668
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD29_02254CC0
+ mov r0, #1
+ strb r0, [r4, #1]
+ b _02254A5A
+_022549D4:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD29_02254CE4
+ cmp r0, #0
+ beq _022549E6
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254A5A
+_022549E6:
+ ldr r0, [r4, #0x4c]
+ bl MOD20_02252C30
+ cmp r0, #1
+ beq _022549FA
+ ldr r0, [r4, #0x4c]
+ bl MOD20_02252C08
+ cmp r0, #0
+ beq _02254A06
+_022549FA:
+ ldr r0, [r4, #0x48]
+ bl MOD29_0225508C
+ mov r0, #2
+ strb r0, [r4, #1]
+ b _02254A5A
+_02254A06:
+ add r0, r4, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD29_02254A64
+ cmp r0, #0
+ beq _02254A5A
+ ldr r1, [sp, #4]
+ ldr r2, [sp]
+ add r0, r4, #0
+ bl MOD29_02254AA8
+ ldr r0, [r4, #0x48]
+ bl MOD29_0225508C
+ mov r0, #3
+ strb r0, [r4, #1]
+ b _02254A5A
+_02254A2A:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD29_02254CE4
+ cmp r0, #0
+ beq _02254A5A
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254A5A
+_02254A3C:
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD29_02254CE4
+ cmp r0, #0
+ beq _02254A5A
+ ldr r0, _02254A60 ; =0x00000668
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x48]
+ mov r1, #2
+ bl MOD29_02254CC0
+ mov r0, #1
+ strb r0, [r4, #1]
+_02254A5A:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02254A60: .word 0x00000668
+ thumb_func_end MOD29_02254970
+
+ thumb_func_start MOD29_02254A64
+MOD29_02254A64: ; 0x02254A64
+ push {r3, r4, r5, lr}
+ ldr r0, [r0, #0x4c]
+ add r5, r1, #0
+ add r4, r2, #0
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02254AA4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02020ACC
+ cmp r0, #0
+ beq _02254AA4
+ ldr r0, [r5]
+ sub r0, #0x18
+ cmp r0, #0xb0
+ bhs _02254A8C
+ mov r1, #1
+ b _02254A8E
+_02254A8C:
+ mov r1, #0
+_02254A8E:
+ ldr r0, [r4]
+ sub r0, #0x18
+ cmp r0, #0x90
+ bhs _02254A9A
+ mov r0, #1
+ b _02254A9C
+_02254A9A:
+ mov r0, #0
+_02254A9C:
+ tst r0, r1
+ beq _02254AA4
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02254AA4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD29_02254A64
+
+ thumb_func_start MOD29_02254AA8
+MOD29_02254AA8: ; 0x02254AA8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ add r5, r0, #0
+ ldr r0, [r5, #0x4c]
+ add r7, r1, #0
+ str r2, [sp]
+ bl MOD20_02252C38
+ mov r1, #8
+ bl FUN_02039754
+ str r0, [sp, #4]
+ add r4, r5, #4
+ mov r1, #0
+ str r1, [r4, #8]
+ ldr r0, [sp]
+ str r7, [r5, #4]
+ str r0, [r4, #4]
+ ldr r0, [sp, #4]
+ str r1, [r4, #0xc]
+ cmp r0, #0
+ beq _02254B66
+ ldrb r0, [r0, #4]
+ cmp r0, #0xff
+ beq _02254B60
+ add r6, r4, #0
+ ldr r5, [sp, #4]
+ add r6, #0xc
+_02254AE0:
+ ldrh r0, [r5]
+ ldrh r1, [r5, #2]
+ add r2, sp, #0xc
+ add r3, sp, #8
+ bl MOD29_02254B70
+ ldr r1, [sp, #8]
+ ldr r0, [sp]
+ sub r0, r1, r0
+ ldr r1, [sp, #0xc]
+ sub r1, r1, r7
+ add r2, r1, #0
+ mul r2, r1
+ add r1, r0, #0
+ mul r1, r0
+ add r0, r2, r1
+ lsl r0, r0, #0xc
+ blx FX_Sqrt
+ ldrb r1, [r5, #4]
+ lsl r2, r1, #2
+ ldr r1, _02254B6C ; =0x022550A8
+ ldr r1, [r1, r2]
+ cmp r0, r1
+ bgt _02254B46
+ ldr r1, [r4, #0xc]
+ cmp r1, #8
+ bhs _02254B58
+ mov r2, #6
+ mul r2, r1
+ ldr r0, [sp, #0xc]
+ add r1, r4, r2
+ strh r0, [r1, #0x10]
+ ldr r2, [r4, #0xc]
+ mov r1, #6
+ mul r1, r2
+ ldr r0, [sp, #8]
+ add r1, r4, r1
+ strh r0, [r1, #0x12]
+ ldr r2, [r4, #0xc]
+ mov r1, #6
+ mul r1, r2
+ ldrb r0, [r5, #4]
+ add r1, r4, r1
+ strh r0, [r1, #0x14]
+ ldr r0, [r6]
+ add r0, r0, #1
+ str r0, [r6]
+ mov r0, #2
+ str r0, [r4, #8]
+ b _02254B58
+_02254B46:
+ mov r1, #3
+ lsl r1, r1, #0x10
+ cmp r0, r1
+ bgt _02254B58
+ ldr r0, [r4, #8]
+ cmp r0, #0
+ bne _02254B58
+ mov r0, #1
+ str r0, [r4, #8]
+_02254B58:
+ add r5, r5, #6
+ ldrb r0, [r5, #4]
+ cmp r0, #0xff
+ bne _02254AE0
+_02254B60:
+ ldr r0, [sp, #4]
+ bl FUN_02016A18
+_02254B66:
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254B6C: .word 0x022550A8
+ thumb_func_end MOD29_02254AA8
+
+ thumb_func_start MOD29_02254B70
+MOD29_02254B70: ; 0x02254B70
+ push {r4, r5}
+ sub r4, r0, #7
+ mov r0, #0xb
+ add r5, r4, #0
+ mul r5, r0
+ sub r1, r1, #7
+ add r5, #0x70
+ mul r0, r1
+ str r5, [r2]
+ add r0, #0x65
+ str r0, [r3]
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD29_02254B70
+
+ thumb_func_start MOD29_02254B8C
+MOD29_02254B8C: ; 0x02254B8C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B9C
+ cmp r0, #1
+ beq _02254BAC
+ b _02254BBA
+_02254B9C:
+ ldr r0, [r4, #0x48]
+ mov r1, #1
+ bl MOD29_02254CC0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254BBA
+_02254BAC:
+ ldr r0, [r4, #0x48]
+ bl MOD29_02254CF0
+ cmp r0, #0
+ beq _02254BBA
+ mov r0, #1
+ pop {r4, pc}
+_02254BBA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02254B8C
+
+ thumb_func_start MOD29_02254BC0
+MOD29_02254BC0: ; 0x02254BC0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x90
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254C04
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ mov r1, #0
+ str r1, [r4, #0x34]
+ add r2, r4, #0
+ add r0, r1, #0
+_02254BF4:
+ add r1, r1, #1
+ str r0, [r2, #0x38]
+ add r2, r2, #4
+ cmp r1, #8
+ blt _02254BF4
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254C04:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD29_02254BC0
+
+ thumb_func_start MOD29_02254C08
+MOD29_02254C08: ; 0x02254C08
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r6, r0, #0
+ mov r0, #8
+ str r0, [sp]
+ add r0, r6, #0
+ add r0, #0x58
+ mov r1, #0xc
+ mov r2, #0x28
+ mov r3, #0x29
+ bl MOD20_02253FBC
+ cmp r0, #0
+ beq _02254C74
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x2a
+ bl FUN_02006A34
+ add r2, r6, #0
+ ldr r0, [r6, #0x30]
+ ldr r1, _02254C7C ; =0x022550C0
+ add r2, #0x58
+ bl MOD20_02253E74
+ mov r1, #1
+ str r0, [r6, #0x34]
+ bl MOD20_02253F78
+ add r7, r6, #0
+ mov r4, #0
+ add r5, r6, #0
+ add r7, #0x58
+_02254C54:
+ ldr r0, [r6, #0x30]
+ ldr r1, _02254C80 ; =0x022550D0
+ add r2, r7, #0
+ bl MOD20_02253E74
+ mov r1, #1
+ str r0, [r5, #0x38]
+ bl MOD20_02253F78
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _02254C54
+ add sp, #0xc
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02254C74:
+ mov r0, #0
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254C7C: .word 0x022550C0
+_02254C80: .word 0x022550D0
+ thumb_func_end MOD29_02254C08
+
+ thumb_func_start MOD29_02254C84
+MOD29_02254C84: ; 0x02254C84
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ beq _02254CBC
+ mov r4, #0
+ add r5, r6, #0
+_02254C8E:
+ ldr r1, [r5, #0x38]
+ cmp r1, #0
+ beq _02254C9A
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02254C9A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _02254C8E
+ ldr r1, [r6, #0x34]
+ cmp r1, #0
+ beq _02254CAE
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02254CAE:
+ add r0, r6, #0
+ add r0, #0x58
+ bl MOD20_02254014
+ add r0, r6, #0
+ bl FUN_02016A18
+_02254CBC:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02254C84
+
+ thumb_func_start MOD29_02254CC0
+MOD29_02254CC0: ; 0x02254CC0
+ 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, _02254CE0 ; =0x022550FC
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254CE0: .word 0x022550FC
+ thumb_func_end MOD29_02254CC0
+
+ thumb_func_start MOD29_02254CE4
+MOD29_02254CE4: ; 0x02254CE4
+ ldr r3, _02254CEC ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254CEC: .word MOD20_02253794
+ thumb_func_end MOD29_02254CE4
+
+ thumb_func_start MOD29_02254CF0
+MOD29_02254CF0: ; 0x02254CF0
+ ldr r3, _02254CF8 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254CF8: .word MOD20_022537B8
+ thumb_func_end MOD29_02254CF0
+
+ thumb_func_start MOD29_02254CFC
+MOD29_02254CFC: ; 0x02254CFC
+ 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 MOD29_02254CFC
+
+ thumb_func_start MOD29_02254D10
+MOD29_02254D10: ; 0x02254D10
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #4]
+ ldr r2, _02254DE8 ; =0x022550E0
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x27
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r4, #4]
+ mov r0, #0xc
+ mov r1, #0x26
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ add r0, r4, #0
+ add r0, #0x70
+ bl MOD20_02252DEC
+ add r0, r4, #0
+ add r0, #0x80
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x72
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x70
+ mov r1, #0x20
+ blx DC_FlushRange
+ add r0, r4, #0
+ mov r1, #0x1a
+ add r0, #0x70
+ lsl r1, r1, #4
+ mov r2, #0x20
+ blx GXS_LoadOBJPltt
+ add r0, r4, #0
+ add r0, #0x8e
+ ldrh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x72
+ strh r1, [r0]
+ add r0, r4, #0
+ add r0, #0x70
+ mov r1, #0x20
+ blx DC_FlushRange
+ add r0, r4, #0
+ mov r1, #7
+ add r0, #0x70
+ lsl r1, r1, #6
+ mov r2, #0x20
+ blx GXS_LoadOBJPltt
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254DEC ; =0x04001000
+ ldr r0, _02254DF0 ; =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 MOD29_02254C08
+ add r0, r5, #0
+ bl MOD29_02254CFC
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254DE8: .word 0x022550E0
+_02254DEC: .word 0x04001000
+_02254DF0: .word 0xFFFFE0FF
+ thumb_func_end MOD29_02254D10
+
+ thumb_func_start MOD29_02254DF4
+MOD29_02254DF4: ; 0x02254DF4
+ 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 MOD29_02254CFC
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02254DF4
+
+ thumb_func_start MOD29_02254E10
+MOD29_02254E10: ; 0x02254E10
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ str r0, [sp]
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A8
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ bne _02254E40
+ mov r0, #1
+ str r0, [r6, #0x6c]
+ ldr r0, [r7, #8]
+ str r0, [r4]
+_02254E40:
+ ldr r2, [r4]
+ ldr r0, [sp]
+ lsl r3, r2, #2
+ ldr r2, _02254E50 ; =0x022550B4
+ add r1, r5, #0
+ ldr r2, [r2, r3]
+ blx r2
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254E50: .word 0x022550B4
+ thumb_func_end MOD29_02254E10
+
+ thumb_func_start MOD29_02254E54
+MOD29_02254E54: ; 0x02254E54
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254E78
+ cmp r0, #1
+ beq _02254E9E
+ pop {r4, r5, r6, pc}
+_02254E78:
+ ldr r1, [r6]
+ ldr r2, [r6, #4]
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254E9E:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ bne _02254EB2
+ add r0, r4, #0
+ bl MOD29_02255068
+ add r0, r5, #0
+ bl MOD29_02254CFC
+ pop {r4, r5, r6, pc}
+_02254EB2:
+ ldr r0, [r4, #0x34]
+ bl MOD20_02253F44
+ cmp r0, #0
+ beq _02254EC8
+ add r0, r4, #0
+ bl MOD29_02255068
+ add r0, r5, #0
+ bl MOD29_02254CFC
+_02254EC8:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02254E54
+
+ thumb_func_start MOD29_02254ECC
+MOD29_02254ECC: ; 0x02254ECC
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254EF0
+ cmp r0, #1
+ beq _02254F16
+ pop {r4, r5, r6, pc}
+_02254EF0:
+ ldr r1, [r4]
+ ldr r2, [r4, #4]
+ ldr r0, [r5, #0x34]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ add r0, r6, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254F16:
+ ldr r0, [r5, #0x6c]
+ cmp r0, #0
+ bne _02254F2A
+ add r0, r5, #0
+ bl MOD29_02255068
+ add r0, r6, #0
+ bl MOD29_02254CFC
+ pop {r4, r5, r6, pc}
+_02254F2A:
+ ldr r0, [r5, #0x34]
+ bl MOD20_02253F44
+ cmp r0, #0
+ beq _02254F3C
+ ldr r0, [r5, #0x34]
+ mov r1, #0
+ bl MOD20_02253F28
+_02254F3C:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02254ECC
+
+ thumb_func_start MOD29_02254F40
+MOD29_02254F40: ; 0x02254F40
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r6, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _02254F68
+ cmp r0, #1
+ beq _02254F96
+ cmp r0, #2
+ beq _02254FC4
+ pop {r4, r5, r6, pc}
+_02254F68:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD29_02254FF4
+ ldr r1, [r6]
+ ldr r2, [r6, #4]
+ ldr r0, [r4, #0x34]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254F96:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ bne _02254FAA
+ add r0, r4, #0
+ bl MOD29_02255068
+ add r0, r5, #0
+ bl MOD29_02254CFC
+ pop {r4, r5, r6, pc}
+_02254FAA:
+ ldr r0, [r4, #0x34]
+ bl MOD20_02253F44
+ cmp r0, #0
+ beq _02254FF2
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD29_02255020
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02254FC4:
+ ldr r0, [r4, #0x6c]
+ cmp r0, #0
+ bne _02254FD8
+ add r0, r4, #0
+ bl MOD29_02255068
+ add r0, r5, #0
+ bl MOD29_02254CFC
+ pop {r4, r5, r6, pc}
+_02254FD8:
+ add r0, r4, #0
+ bl MOD29_0225505C
+ cmp r0, #0
+ beq _02254FF2
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r5, #0
+ mov r1, #1
+ bl MOD20_022538B8
+_02254FF2:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD29_02254F40
+
+ thumb_func_start MOD29_02254FF4
+MOD29_02254FF4: ; 0x02254FF4
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r1, #0
+ add r5, r0, #0
+ ldr r0, [r7, #0xc]
+ mov r6, #0
+ cmp r0, #0
+ bls _0225501E
+ add r4, r7, #0
+_02255004:
+ ldrh r1, [r4, #0x10]
+ ldrh r2, [r4, #0x12]
+ ldr r0, [r5, #0x38]
+ lsl r1, r1, #0xc
+ lsl r2, r2, #0xc
+ bl MOD20_02253F64
+ ldr r0, [r7, #0xc]
+ add r6, r6, #1
+ add r4, r4, #6
+ add r5, r5, #4
+ cmp r6, r0
+ blo _02255004
+_0225501E:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD29_02254FF4
+
+ thumb_func_start MOD29_02255020
+MOD29_02255020: ; 0x02255020
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r0, r1, #0
+ ldr r0, [r0, #0xc]
+ mov r6, #0
+ str r1, [sp]
+ cmp r0, #0
+ bls _0225505A
+ add r4, r1, #0
+_02255032:
+ ldrh r0, [r4, #0x14]
+ add r7, r0, #1
+ cmp r7, #3
+ blo _0225503C
+ mov r7, #3
+_0225503C:
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x38]
+ add r1, r7, #0
+ bl MOD20_02253F28
+ ldr r0, [sp]
+ add r6, r6, #1
+ ldr r0, [r0, #0xc]
+ add r4, r4, #6
+ add r5, r5, #4
+ cmp r6, r0
+ blo _02255032
+_0225505A:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD29_02255020
+
+ thumb_func_start MOD29_0225505C
+MOD29_0225505C: ; 0x0225505C
+ ldr r3, _02255064 ; =MOD20_02253F44
+ ldr r0, [r0, #0x38]
+ bx r3
+ nop
+_02255064: .word MOD20_02253F44
+ thumb_func_end MOD29_0225505C
+
+ thumb_func_start MOD29_02255068
+MOD29_02255068: ; 0x02255068
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x34]
+ mov r1, #1
+ bl MOD20_02253F78
+ mov r4, #0
+ mov r6, #1
+_02255078:
+ ldr r0, [r5, #0x38]
+ add r1, r6, #0
+ bl MOD20_02253F78
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #8
+ blt _02255078
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD29_02255068
+
+ thumb_func_start MOD29_0225508C
+MOD29_0225508C: ; 0x0225508C
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD29_02255068
+ mov r0, #0
+ str r0, [r4, #0x6c]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD29_0225508C
+
+ .section .data
+ ; 0x0225509C
+ .incbin "baserom.nds", 0x28CA5C, 0xA4
diff --git a/arm9/modules/30/asm/module_30.s b/arm9/modules/30/asm/module_30.s
new file mode 100644
index 00000000..36581e76
--- /dev/null
+++ b/arm9/modules/30/asm/module_30.s
@@ -0,0 +1,734 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD30_02254840
+MOD30_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD30_02254854
+ ldr r1, _02254850 ; =MOD30_0225496C
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD30_02254854
+_02254850: .word MOD30_0225496C
+ thumb_func_end MOD30_02254840
+
+ thumb_func_start MOD30_02254854
+MOD30_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x20
+ 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 MOD30_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD30_02254930
+ 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 MOD30_02254930
+ thumb_func_end MOD30_02254854
+
+ thumb_func_start MOD30_0225489C
+MOD30_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #1
+ add r1, r5, #0
+ add r7, r2, #0
+ add r4, r3, #0
+ str r0, [r5, #0xc]
+ add r0, r4, #0
+ add r1, #8
+ mov r2, #4
+ bl FUN_02089418
+ cmp r0, #0
+ bne _022548BE
+ mov r0, #0
+ str r0, [r5, #8]
+_022548BE:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x10
+ add r1, #8
+ add r2, r7, #0
+ str r4, [r5, #4]
+ bl MOD30_02254A90
+ cmp r0, #0
+ beq _022548F6
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022548FC ; =0x02254DA0
+ ldr r2, _02254900 ; =MOD30_02254904
+ mov r1, #1
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x18]
+ mov r0, #0
+ str r0, [r5, #0x1c]
+ str r6, [r5, #0x14]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_022548F6:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022548FC: .word 0x02254DA0
+_02254900: .word MOD30_02254904
+ thumb_func_end MOD30_0225489C
+
+ thumb_func_start MOD30_02254904
+MOD30_02254904: ; 0x02254904
+ cmp r0, #0
+ bne _0225490A
+ str r1, [r3, #0x1c]
+_0225490A:
+ bx lr
+ thumb_func_end MOD30_02254904
+
+ thumb_func_start MOD30_0225490C
+MOD30_0225490C: ; 0x0225490C
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #8
+ mov r2, #4
+ bl FUN_020893F0
+ ldr r0, [r4, #0x18]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x10]
+ bl MOD30_02254ACC
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD30_0225490C
+
+ thumb_func_start MOD30_02254930
+MOD30_02254930: ; 0x02254930
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254966
+ ldr r0, [r4, #0x14]
+ ldr r1, [r4, #0x18]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254968 ; =0x02254DA4
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254966
+ add r0, r4, #0
+ bl MOD30_0225490C
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x14]
+ bl MOD20_022529A0
+_02254966:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254968: .word 0x02254DA4
+ thumb_func_end MOD30_02254930
+
+ thumb_func_start MOD30_0225496C
+MOD30_0225496C: ; 0x0225496C
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD30_0225496C
+
+ thumb_func_start MOD30_02254974
+MOD30_02254974: ; 0x02254974
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _0225497C
+ b _0225497E
+_0225497C:
+ mov r1, #2
+_0225497E:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD30_02254974
+
+ thumb_func_start MOD30_02254988
+MOD30_02254988: ; 0x02254988
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254998
+ cmp r0, #1
+ beq _022549A8
+ b _022549C2
+_02254998:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl MOD30_02254BC8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549C2
+_022549A8:
+ ldr r0, [r4, #0x10]
+ mov r1, #0
+ bl MOD30_02254BEC
+ cmp r0, #0
+ beq _022549C2
+ ldr r0, [r4, #0x14]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD30_02254974
+_022549C2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254988
+
+ thumb_func_start MOD30_022549C8
+MOD30_022549C8: ; 0x022549C8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r2, [r4, #2]
+ add r1, r4, #0
+ add r1, #8
+ cmp r2, #0
+ beq _022549E0
+ mov r1, #2
+ bl MOD30_02254974
+ mov r0, #0
+ pop {r4, pc}
+_022549E0:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549EC
+ cmp r0, #1
+ beq _02254A0A
+ b _02254A52
+_022549EC:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _02254A52
+ mov r0, #0
+ str r0, [r1, #4]
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl MOD30_02254BC8
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A52
+_02254A0A:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #2
+ bne _02254A24
+ mov r0, #1
+ str r0, [r1, #4]
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl MOD30_02254BC8
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ strb r0, [r4, #1]
+ b _02254A52
+_02254A24:
+ cmp r0, #3
+ bne _02254A52
+ mov r0, #1
+ str r0, [r1, #4]
+ ldr r0, [r1]
+ add r2, r0, #1
+ ldr r0, _02254A58 ; =0x0000270F
+ str r2, [r1]
+ cmp r2, r0
+ bls _02254A3C
+ mov r0, #0
+ str r0, [r1]
+_02254A3C:
+ ldr r0, [r4, #0x10]
+ mov r1, #2
+ bl MOD30_02254BC8
+ ldr r0, [r4, #0x10]
+ mov r1, #3
+ bl MOD30_02254BC8
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ strb r0, [r4, #1]
+_02254A52:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254A58: .word 0x0000270F
+ thumb_func_end MOD30_022549C8
+
+ thumb_func_start MOD30_02254A5C
+MOD30_02254A5C: ; 0x02254A5C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A6C
+ cmp r0, #1
+ beq _02254A7C
+ b _02254A8A
+_02254A6C:
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl MOD30_02254BC8
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A8A
+_02254A7C:
+ ldr r0, [r4, #0x10]
+ bl MOD30_02254BF8
+ cmp r0, #0
+ beq _02254A8A
+ mov r0, #1
+ pop {r4, pc}
+_02254A8A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254A5C
+
+ thumb_func_start MOD30_02254A90
+MOD30_02254A90: ; 0x02254A90
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x60
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254AC6
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD30_02254AE0
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254AC6:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254A90
+
+ thumb_func_start MOD30_02254ACC
+MOD30_02254ACC: ; 0x02254ACC
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254ADC
+ bl MOD30_02254B94
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254ADC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254ACC
+
+ thumb_func_start MOD30_02254AE0
+MOD30_02254AE0: ; 0x02254AE0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r7, r0, #0
+ str r1, [sp, #0xc]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #2
+ bl FUN_02006A34
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #1
+ mov r3, #0xa
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x2f
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x38
+ mov r1, #0xc
+ mov r2, #0x2d
+ mov r3, #0x2e
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x4c
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ add r2, r7, #0
+ ldr r0, [r7, #0x20]
+ ldr r1, _02254B8C ; =0x02254DB0
+ add r2, #0x38
+ bl MOD20_02253E74
+ mov r1, #0x50
+ str r0, [r7, #0x24]
+ bl MOD20_02253FA4
+ add r0, r7, #0
+ mov r5, #0x16
+ str r0, [sp, #0x10]
+ add r0, #0x4c
+ mov r6, #0
+ add r4, r7, #0
+ lsl r5, r5, #0xe
+ str r0, [sp, #0x10]
+_02254B5C:
+ ldr r0, [r7, #0x20]
+ ldr r1, _02254B90 ; =0x02254DC0
+ ldr r2, [sp, #0x10]
+ bl MOD20_02253E74
+ mov r2, #1
+ add r1, r5, #0
+ lsl r2, r2, #0x12
+ str r0, [r4, #0x28]
+ bl MOD20_02253F64
+ mov r0, #1
+ lsl r0, r0, #0x10
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, r0
+ cmp r6, #4
+ blt _02254B5C
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD30_02254D28
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B8C: .word 0x02254DB0
+_02254B90: .word 0x02254DC0
+ thumb_func_end MOD30_02254AE0
+
+ thumb_func_start MOD30_02254B94
+MOD30_02254B94: ; 0x02254B94
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x20]
+ ldr r1, [r6, #0x24]
+ bl MOD20_02253F14
+ mov r4, #0
+ add r5, r6, #0
+_02254BA4:
+ ldr r0, [r6, #0x20]
+ ldr r1, [r5, #0x28]
+ bl MOD20_02253F14
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02254BA4
+ add r0, r6, #0
+ add r0, #0x38
+ bl MOD20_02254014
+ add r6, #0x4c
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254B94
+
+ thumb_func_start MOD30_02254BC8
+MOD30_02254BC8: ; 0x02254BC8
+ 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, _02254BE8 ; =0x02254DEC
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254BE8: .word 0x02254DEC
+ thumb_func_end MOD30_02254BC8
+
+ thumb_func_start MOD30_02254BEC
+MOD30_02254BEC: ; 0x02254BEC
+ ldr r3, _02254BF4 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254BF4: .word MOD20_02253794
+ thumb_func_end MOD30_02254BEC
+
+ thumb_func_start MOD30_02254BF8
+MOD30_02254BF8: ; 0x02254BF8
+ ldr r3, _02254C00 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254C00: .word MOD20_022537B8
+ thumb_func_end MOD30_02254BF8
+
+ thumb_func_start MOD30_02254C04
+MOD30_02254C04: ; 0x02254C04
+ 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 MOD30_02254C04
+
+ thumb_func_start MOD30_02254C18
+MOD30_02254C18: ; 0x02254C18
+ 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, _02254C9C ; =0x02254DD0
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x2c
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x2b
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254CA0 ; =0x04001000
+ ldr r0, _02254CA4 ; =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 MOD30_02254C04
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254C9C: .word 0x02254DD0
+_02254CA0: .word 0x04001000
+_02254CA4: .word 0xFFFFE0FF
+ thumb_func_end MOD30_02254C18
+
+ thumb_func_start MOD30_02254CA8
+MOD30_02254CA8: ; 0x02254CA8
+ 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 MOD30_02254C04
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254CA8
+
+ thumb_func_start MOD30_02254CC4
+MOD30_02254CC4: ; 0x02254CC4
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02254CDE
+ cmp r0, #1
+ beq _02254CEE
+ b _02254CF6
+_02254CDE:
+ ldr r0, _02254D00 ; =0x00000669
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _02254CF6
+_02254CEE:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD20_02253F28
+_02254CF6:
+ add r0, r5, #0
+ bl MOD30_02254C04
+ pop {r3, r4, r5, pc}
+ nop
+_02254D00: .word 0x00000669
+ thumb_func_end MOD30_02254CC4
+
+ thumb_func_start MOD30_02254D04
+MOD30_02254D04: ; 0x02254D04
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD30_02254D28
+ add r0, r5, #0
+ bl MOD30_02254C04
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD30_02254D04
+
+ thumb_func_start MOD30_02254D28
+MOD30_02254D28: ; 0x02254D28
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ ldr r0, [r1]
+ ldr r5, _02254D8C ; =0x04000280
+ str r0, [sp, #4]
+ mov r0, #0xfa
+ lsl r0, r0, #2
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #8]
+ lsr r4, r5, #0xb
+ lsr r6, r5, #0xb
+_02254D42:
+ mov r0, #0
+ strh r0, [r5]
+ ldr r1, [sp, #4]
+ ldr r0, _02254D90 ; =0x04000290
+ str r1, [r0]
+ ldr r1, [sp]
+ str r1, [r0, #8]
+ ldr r0, _02254D94 ; =0x04000298
+ mov r1, #0
+ str r1, [r0, #4]
+_02254D56:
+ ldrh r0, [r5]
+ tst r0, r4
+ bne _02254D56
+ ldr r1, _02254D98 ; =0x040002A0
+ ldr r0, [r7, #0x28]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+_02254D66:
+ ldrh r0, [r5]
+ tst r0, r6
+ bne _02254D66
+ ldr r0, _02254D9C ; =0x040002A8
+ mov r1, #0xa
+ ldr r0, [r0]
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ bl _u32_div_f
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #4
+ blt _02254D42
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254D8C: .word 0x04000280
+_02254D90: .word 0x04000290
+_02254D94: .word 0x04000298
+_02254D98: .word 0x040002A0
+_02254D9C: .word 0x040002A8
+ thumb_func_end MOD30_02254D28
+
+ .section .data
+ ; 0x02254DA0
+ .incbin "baserom.nds", 0x28D160, 0xA0
diff --git a/arm9/modules/31/asm/module_31.s b/arm9/modules/31/asm/module_31.s
new file mode 100644
index 00000000..cdf3282a
--- /dev/null
+++ b/arm9/modules/31/asm/module_31.s
@@ -0,0 +1,724 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD31_02254840
+MOD31_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD31_02254854
+ ldr r1, _02254850 ; =MOD31_02254954
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD31_02254854
+_02254850: .word MOD31_02254954
+ thumb_func_end MOD31_02254840
+
+ thumb_func_start MOD31_02254854
+MOD31_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x20
+ 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 MOD31_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD31_02254918
+ 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 MOD31_02254918
+ thumb_func_end MOD31_02254854
+
+ thumb_func_start MOD31_0225489C
+MOD31_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ str r1, [r5, #0x10]
+ add r0, r1, #0
+ add r4, r2, #0
+ bl MOD20_02252C3C
+ str r0, [r5, #0x1c]
+ mov r0, #1
+ str r0, [r5, #8]
+ ldr r0, [r5, #0x1c]
+ bl FUN_0204BF84
+ str r0, [r5, #4]
+ add r0, r5, #0
+ add r0, #0xc
+ add r1, r5, #4
+ add r2, r4, #0
+ bl MOD31_02254A84
+ cmp r0, #0
+ beq _022548EA
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022548F0 ; =0x02254D98
+ ldr r2, _022548F4 ; =MOD31_022548F8
+ mov r1, #1
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x14]
+ mov r0, #0
+ str r0, [r5, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548EA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022548F0: .word 0x02254D98
+_022548F4: .word MOD31_022548F8
+ thumb_func_end MOD31_0225489C
+
+ thumb_func_start MOD31_022548F8
+MOD31_022548F8: ; 0x022548F8
+ cmp r0, #0
+ bne _022548FE
+ str r1, [r3, #0x18]
+_022548FE:
+ bx lr
+ thumb_func_end MOD31_022548F8
+
+ thumb_func_start MOD31_02254900
+MOD31_02254900: ; 0x02254900
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl MOD20_02254198
+ ldr r0, [r4, #0xc]
+ bl MOD31_02254AC0
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD31_02254900
+
+ thumb_func_start MOD31_02254918
+MOD31_02254918: ; 0x02254918
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _0225494E
+ ldr r0, [r4, #0x10]
+ ldr r1, [r4, #0x14]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254950 ; =0x02254D9C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225494E
+ add r0, r4, #0
+ bl MOD31_02254900
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x10]
+ bl MOD20_022529A0
+_0225494E:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254950: .word 0x02254D9C
+ thumb_func_end MOD31_02254918
+
+ thumb_func_start MOD31_02254954
+MOD31_02254954: ; 0x02254954
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD31_02254954
+
+ thumb_func_start MOD31_0225495C
+MOD31_0225495C: ; 0x0225495C
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254964
+ b _02254966
+_02254964:
+ mov r1, #2
+_02254966:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD31_0225495C
+
+ thumb_func_start MOD31_02254970
+MOD31_02254970: ; 0x02254970
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254980
+ cmp r0, #1
+ beq _02254990
+ b _022549AA
+_02254980:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD31_02254BBC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549AA
+_02254990:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD31_02254BE0
+ cmp r0, #0
+ beq _022549AA
+ ldr r0, [r4, #0x10]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD31_0225495C
+_022549AA:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254970
+
+ thumb_func_start MOD31_022549B0
+MOD31_022549B0: ; 0x022549B0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549C4
+ mov r1, #2
+ bl MOD31_0225495C
+ mov r0, #0
+ pop {r4, pc}
+_022549C4:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549D0
+ cmp r0, #1
+ beq _02254A0A
+ b _02254A4C
+_022549D0:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _022549EE
+ mov r0, #0
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD31_02254BBC
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A4C
+_022549EE:
+ ldr r0, [r4, #0x10]
+ bl MOD20_02252C34
+ cmp r0, #0
+ beq _02254A4C
+ ldr r0, [r4, #0x1c]
+ bl FUN_0204BF84
+ str r0, [r4, #4]
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD31_02254BBC
+ b _02254A4C
+_02254A0A:
+ ldr r0, [r4, #0x18]
+ cmp r0, #2
+ bne _02254A24
+ mov r0, #1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD31_02254BBC
+ mov r0, #0
+ str r0, [r4, #0x18]
+ strb r0, [r4, #1]
+ b _02254A4C
+_02254A24:
+ cmp r0, #3
+ bne _02254A4C
+ mov r0, #1
+ str r0, [r4, #8]
+ mov r1, #0
+ str r1, [r4, #4]
+ ldr r0, [r4, #0x1c]
+ bl FUN_0204BF88
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD31_02254BBC
+ ldr r0, [r4, #0xc]
+ mov r1, #3
+ bl MOD31_02254BBC
+ mov r0, #0
+ str r0, [r4, #0x18]
+ strb r0, [r4, #1]
+_02254A4C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD31_022549B0
+
+ thumb_func_start MOD31_02254A50
+MOD31_02254A50: ; 0x02254A50
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A60
+ cmp r0, #1
+ beq _02254A70
+ b _02254A7E
+_02254A60:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD31_02254BBC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A7E
+_02254A70:
+ ldr r0, [r4, #0xc]
+ bl MOD31_02254BEC
+ cmp r0, #0
+ beq _02254A7E
+ mov r0, #1
+ pop {r4, pc}
+_02254A7E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254A50
+
+ thumb_func_start MOD31_02254A84
+MOD31_02254A84: ; 0x02254A84
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x64
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254ABA
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD31_02254AD4
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254ABA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254A84
+
+ thumb_func_start MOD31_02254AC0
+MOD31_02254AC0: ; 0x02254AC0
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254AD0
+ bl MOD31_02254B88
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254AD0:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254AC0
+
+ thumb_func_start MOD31_02254AD4
+MOD31_02254AD4: ; 0x02254AD4
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r7, r0, #0
+ str r1, [sp, #0xc]
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #2
+ bl FUN_02006A34
+ mov r0, #0
+ str r0, [sp]
+ mov r2, #1
+ mov r3, #0xa
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x34
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x3c
+ mov r1, #0xc
+ mov r2, #0x32
+ mov r3, #0x33
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x50
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ add r2, r7, #0
+ ldr r0, [r7, #0x20]
+ ldr r1, _02254B80 ; =0x02254DA8
+ add r2, #0x3c
+ bl MOD20_02253E74
+ mov r1, #0x50
+ str r0, [r7, #0x24]
+ bl MOD20_02253FA4
+ add r0, r7, #0
+ mov r5, #5
+ str r0, [sp, #0x10]
+ add r0, #0x50
+ mov r6, #0
+ add r4, r7, #0
+ lsl r5, r5, #0x10
+ str r0, [sp, #0x10]
+_02254B50:
+ ldr r0, [r7, #0x20]
+ ldr r1, _02254B84 ; =0x02254DB8
+ ldr r2, [sp, #0x10]
+ bl MOD20_02253E74
+ mov r2, #1
+ add r1, r5, #0
+ lsl r2, r2, #0x12
+ str r0, [r4, #0x28]
+ bl MOD20_02253F64
+ mov r0, #1
+ lsl r0, r0, #0x10
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, r0
+ cmp r6, #5
+ blt _02254B50
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD31_02254D1C
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254B80: .word 0x02254DA8
+_02254B84: .word 0x02254DB8
+ thumb_func_end MOD31_02254AD4
+
+ thumb_func_start MOD31_02254B88
+MOD31_02254B88: ; 0x02254B88
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ ldr r0, [r6, #0x20]
+ ldr r1, [r6, #0x24]
+ bl MOD20_02253F14
+ mov r4, #0
+ add r5, r6, #0
+_02254B98:
+ ldr r0, [r6, #0x20]
+ ldr r1, [r5, #0x28]
+ bl MOD20_02253F14
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blt _02254B98
+ add r0, r6, #0
+ add r0, #0x3c
+ bl MOD20_02254014
+ add r6, #0x50
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254B88
+
+ thumb_func_start MOD31_02254BBC
+MOD31_02254BBC: ; 0x02254BBC
+ 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, _02254BDC ; =0x02254DE4
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254BDC: .word 0x02254DE4
+ thumb_func_end MOD31_02254BBC
+
+ thumb_func_start MOD31_02254BE0
+MOD31_02254BE0: ; 0x02254BE0
+ ldr r3, _02254BE8 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254BE8: .word MOD20_02253794
+ thumb_func_end MOD31_02254BE0
+
+ thumb_func_start MOD31_02254BEC
+MOD31_02254BEC: ; 0x02254BEC
+ ldr r3, _02254BF4 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254BF4: .word MOD20_022537B8
+ thumb_func_end MOD31_02254BEC
+
+ thumb_func_start MOD31_02254BF8
+MOD31_02254BF8: ; 0x02254BF8
+ 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 MOD31_02254BF8
+
+ thumb_func_start MOD31_02254C0C
+MOD31_02254C0C: ; 0x02254C0C
+ 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, _02254C90 ; =0x02254DC8
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x31
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x30
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254C94 ; =0x04001000
+ ldr r0, _02254C98 ; =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 MOD31_02254BF8
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254C90: .word 0x02254DC8
+_02254C94: .word 0x04001000
+_02254C98: .word 0xFFFFE0FF
+ thumb_func_end MOD31_02254C0C
+
+ thumb_func_start MOD31_02254C9C
+MOD31_02254C9C: ; 0x02254C9C
+ 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 MOD31_02254BF8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254C9C
+
+ thumb_func_start MOD31_02254CB8
+MOD31_02254CB8: ; 0x02254CB8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4]
+ ldr r0, [r0, #4]
+ cmp r0, #0
+ beq _02254CD2
+ cmp r0, #1
+ beq _02254CE2
+ b _02254CEA
+_02254CD2:
+ ldr r0, _02254CF4 ; =0x00000669
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x24]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _02254CEA
+_02254CE2:
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD20_02253F28
+_02254CEA:
+ add r0, r5, #0
+ bl MOD31_02254BF8
+ pop {r3, r4, r5, pc}
+ nop
+_02254CF4: .word 0x00000669
+ thumb_func_end MOD31_02254CB8
+
+ thumb_func_start MOD31_02254CF8
+MOD31_02254CF8: ; 0x02254CF8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538A4
+ add r1, r0, #0
+ add r0, r4, #0
+ bl MOD31_02254D1C
+ add r0, r5, #0
+ bl MOD31_02254BF8
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD31_02254CF8
+
+ thumb_func_start MOD31_02254D1C
+MOD31_02254D1C: ; 0x02254D1C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ ldr r0, [r1]
+ ldr r5, _02254D80 ; =0x04000280
+ str r0, [sp, #4]
+ ldr r0, _02254D84 ; =0x00002710
+ lsr r4, r5, #0xb
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #8]
+ lsr r6, r5, #0xb
+_02254D34:
+ mov r0, #0
+ strh r0, [r5]
+ ldr r1, [sp, #4]
+ ldr r0, _02254D88 ; =0x04000290
+ str r1, [r0]
+ ldr r1, [sp]
+ str r1, [r0, #8]
+ ldr r0, _02254D8C ; =0x04000298
+ mov r1, #0
+ str r1, [r0, #4]
+_02254D48:
+ ldrh r0, [r5]
+ tst r0, r4
+ bne _02254D48
+ ldr r1, _02254D90 ; =0x040002A0
+ ldr r0, [r7, #0x28]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+_02254D58:
+ ldrh r0, [r5]
+ tst r0, r6
+ bne _02254D58
+ ldr r0, _02254D94 ; =0x040002A8
+ mov r1, #0xa
+ ldr r0, [r0]
+ str r0, [sp, #4]
+ ldr r0, [sp]
+ bl _u32_div_f
+ str r0, [sp]
+ ldr r0, [sp, #8]
+ add r7, r7, #4
+ add r0, r0, #1
+ str r0, [sp, #8]
+ cmp r0, #5
+ blt _02254D34
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254D80: .word 0x04000280
+_02254D84: .word 0x00002710
+_02254D88: .word 0x04000290
+_02254D8C: .word 0x04000298
+_02254D90: .word 0x040002A0
+_02254D94: .word 0x040002A8
+ thumb_func_end MOD31_02254D1C
+
+ .section .data
+ ; 0x02254D98
+ .incbin "baserom.nds", 0x28D758, 0xA8
diff --git a/arm9/modules/32/asm/module_32.s b/arm9/modules/32/asm/module_32.s
new file mode 100644
index 00000000..135a9b15
--- /dev/null
+++ b/arm9/modules/32/asm/module_32.s
@@ -0,0 +1,576 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD32_02254840
+MOD32_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD32_02254854
+ ldr r1, _02254850 ; =MOD32_0225495C
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD32_02254854
+_02254850: .word MOD32_0225495C
+ thumb_func_end MOD32_02254840
+
+ thumb_func_start MOD32_02254854
+MOD32_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x1c
+ 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 MOD32_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD32_02254920
+ 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 MOD32_02254920
+ thumb_func_end MOD32_02254854
+
+ thumb_func_start MOD32_0225489C
+MOD32_0225489C: ; 0x0225489C
+ push {r4, r5, r6, lr}
+ sub sp, #8
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #0
+ add r1, sp, #4
+ add r6, r2, #0
+ bl PM_GetBackLight
+ ldr r0, [sp, #4]
+ cmp r0, #1
+ bne _022548B8
+ mov r0, #1
+ b _022548BA
+_022548B8:
+ mov r0, #0
+_022548BA:
+ str r0, [r5, #4]
+ add r0, r5, #0
+ add r0, #8
+ add r1, r5, #4
+ add r2, r6, #0
+ bl MOD32_02254A54
+ cmp r0, #0
+ beq _022548F2
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _022548F8 ; =0x02254C54
+ ldr r2, _022548FC ; =MOD32_02254918
+ mov r1, #2
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [r5, #0x14]
+ add sp, #8
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022548F2:
+ mov r0, #0
+ add sp, #8
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022548F8: .word 0x02254C54
+_022548FC: .word MOD32_02254918
+ thumb_func_end MOD32_0225489C
+
+ thumb_func_start MOD32_02254900
+MOD32_02254900: ; 0x02254900
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x10]
+ bl MOD20_02254198
+ ldr r0, [r4, #8]
+ bl MOD32_02254A90
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD32_02254900
+
+ thumb_func_start MOD32_02254918
+MOD32_02254918: ; 0x02254918
+ str r0, [r3, #0x18]
+ str r1, [r3, #0x14]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD32_02254918
+
+ thumb_func_start MOD32_02254920
+MOD32_02254920: ; 0x02254920
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254956
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254958 ; =0x02254C5C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254956
+ add r0, r4, #0
+ bl MOD32_02254900
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254956:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254958: .word 0x02254C5C
+ thumb_func_end MOD32_02254920
+
+ thumb_func_start MOD32_0225495C
+MOD32_0225495C: ; 0x0225495C
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD32_0225495C
+
+ thumb_func_start MOD32_02254964
+MOD32_02254964: ; 0x02254964
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _0225496C
+ b _0225496E
+_0225496C:
+ mov r1, #2
+_0225496E:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD32_02254964
+
+ thumb_func_start MOD32_02254978
+MOD32_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254988
+ cmp r0, #1
+ beq _02254998
+ b _022549B2
+_02254988:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD32_02254B08
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549B2
+_02254998:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD32_02254B2C
+ cmp r0, #0
+ beq _022549B2
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD32_02254964
+_022549B2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254978
+
+ thumb_func_start MOD32_022549B8
+MOD32_022549B8: ; 0x022549B8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549CC
+ mov r1, #2
+ bl MOD32_02254964
+ mov r0, #0
+ pop {r4, pc}
+_022549CC:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549D8
+ cmp r0, #1
+ beq _02254A0C
+ b _02254A1C
+_022549D8:
+ ldr r0, [r4, #0x14]
+ cmp r0, #1
+ bne _02254A1C
+ ldr r1, [r4, #0x18]
+ cmp r1, #0
+ bne _022549EA
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _022549F4
+_022549EA:
+ cmp r1, #1
+ bne _02254A04
+ ldr r0, [r4, #4]
+ cmp r0, #1
+ bne _02254A04
+_022549F4:
+ ldr r1, [r4, #4]
+ mov r0, #1
+ eor r0, r1
+ str r0, [r4, #4]
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD32_02254B08
+_02254A04:
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A1C
+_02254A0C:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD32_02254B2C
+ cmp r0, #0
+ beq _02254A1C
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254A1C:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD32_022549B8
+
+ thumb_func_start MOD32_02254A20
+MOD32_02254A20: ; 0x02254A20
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A30
+ cmp r0, #1
+ beq _02254A40
+ b _02254A4E
+_02254A30:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD32_02254B08
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A4E
+_02254A40:
+ ldr r0, [r4, #8]
+ bl MOD32_02254B38
+ cmp r0, #0
+ beq _02254A4E
+ mov r0, #1
+ pop {r4, pc}
+_02254A4E:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254A20
+
+ thumb_func_start MOD32_02254A54
+MOD32_02254A54: ; 0x02254A54
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x3c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A8A
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD32_02254A9C
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A8A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254A54
+
+ thumb_func_start MOD32_02254A90
+MOD32_02254A90: ; 0x02254A90
+ push {r3, lr}
+ cmp r0, #0
+ beq _02254A9A
+ bl FUN_02016A18
+_02254A9A:
+ pop {r3, pc}
+ thumb_func_end MOD32_02254A90
+
+ thumb_func_start MOD32_02254A9C
+MOD32_02254A9C: ; 0x02254A9C
+ push {r4, r5, lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, r0, #0
+ add r4, r1, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x68
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x28
+ mov r1, #0xc
+ mov r2, #0x66
+ mov r3, #0x67
+ bl MOD20_02253FBC
+ add r2, r5, #0
+ ldr r0, [r5, #0x20]
+ ldr r1, _02254AEC ; =0x02254C68
+ add r2, #0x28
+ bl MOD20_02253E74
+ str r0, [r5, #0x24]
+ ldr r0, [r4]
+ cmp r0, #0
+ bne _02254AE6
+ ldr r0, [r5, #0x24]
+ mov r1, #1
+ bl MOD20_02253F28
+_02254AE6:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ nop
+_02254AEC: .word 0x02254C68
+ thumb_func_end MOD32_02254A9C
+
+ thumb_func_start MOD32_02254AF0
+MOD32_02254AF0: ; 0x02254AF0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, [r4, #0x24]
+ bl MOD20_02253F14
+ add r4, #0x28
+ add r0, r4, #0
+ bl MOD20_02254014
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD32_02254AF0
+
+ thumb_func_start MOD32_02254B08
+MOD32_02254B08: ; 0x02254B08
+ 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, _02254B28 ; =0x02254C94
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254B28: .word 0x02254C94
+ thumb_func_end MOD32_02254B08
+
+ thumb_func_start MOD32_02254B2C
+MOD32_02254B2C: ; 0x02254B2C
+ ldr r3, _02254B34 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254B34: .word MOD20_02253794
+ thumb_func_end MOD32_02254B2C
+
+ thumb_func_start MOD32_02254B38
+MOD32_02254B38: ; 0x02254B38
+ ldr r3, _02254B40 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254B40: .word MOD20_022537B8
+ thumb_func_end MOD32_02254B38
+
+ thumb_func_start MOD32_02254B44
+MOD32_02254B44: ; 0x02254B44
+ 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 MOD32_02254B44
+
+ thumb_func_start MOD32_02254B58
+MOD32_02254B58: ; 0x02254B58
+ 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, _02254BDC ; =0x02254C78
+ mov r1, #6
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x65
+ mov r3, #6
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #8
+ str r0, [sp, #0xc]
+ ldr r2, [r5, #4]
+ mov r0, #0xc
+ mov r1, #0x64
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254BE0 ; =0x04001000
+ ldr r0, _02254BE4 ; =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 MOD32_02254B44
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254BDC: .word 0x02254C78
+_02254BE0: .word 0x04001000
+_02254BE4: .word 0xFFFFE0FF
+ thumb_func_end MOD32_02254B58
+
+ thumb_func_start MOD32_02254BE8
+MOD32_02254BE8: ; 0x02254BE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ bl MOD32_02254AF0
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD32_02254B44
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD32_02254BE8
+
+ thumb_func_start MOD32_02254C08
+MOD32_02254C08: ; 0x02254C08
+ push {r4, r5, r6, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r4, r0, #0
+ ldr r0, _02254C50 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, [r4]
+ cmp r0, #0
+ ldr r0, [r5, #0x24]
+ beq _02254C3A
+ mov r1, #0
+ bl MOD20_02253F28
+ mov r0, #1
+ add r1, r0, #0
+ bl PM_SetBackLight
+ b _02254C48
+_02254C3A:
+ mov r1, #1
+ bl MOD20_02253F28
+ mov r0, #1
+ mov r1, #0
+ bl PM_SetBackLight
+_02254C48:
+ add r0, r6, #0
+ bl MOD32_02254B44
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254C50: .word 0x00000663
+ thumb_func_end MOD32_02254C08
+
+ .section .data
+ ; 0x02254C54
+ .incbin "baserom.nds", 0x28DC14, 0x8C