summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-11 08:15:46 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-11 08:18:56 -0400
commit0db97c387490270d29d1a09f3dc24270fb619da7 (patch)
tree28a5e7d6da158202086e5bbe62a41fdd14870ca3
parent49e14283e13c146018f2a2785dfc77e0e1ff5368 (diff)
Disassemble module 37
-rw-r--r--arm9/arm9.lcf28
-rw-r--r--arm9/global.inc1
-rw-r--r--arm9/modules/37/asm/module_37.s681
-rw-r--r--arm9/src/main.c4
4 files changed, 708 insertions, 6 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 9af9503f..6c87f90a 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -1580,10 +1580,21 @@ SECTIONS {
SDK_OVERLAY.MODULE_36.BSS_SIZE = SDK_OVERLAY.MODULE_36.BSS_END - SDK_OVERLAY.MODULE_36.BSS_START;
} >> MODULE_36
- .MODULE.37: {
+ .MODULE.37 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_37.START = .;
- FILE_290000.o (.text) /* 0x28C000 */
+ module_37.o (.text)
+ module_37.o (.rodata)
+ module_37.o (.init)
+ SDK_OVERLAY.MODULE_37.SINIT_START = .;
+ module_37.o (.ctor)
+ module_37.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_37.SINIT_END = .;
+ . = ALIGN(32);
+ module_37.o (.sdata)
+ module_37.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_37.END = .;
SDK_OVERLAY.MODULE_37.SIZE = SDK_OVERLAY.MODULE_37.END - SDK_OVERLAY.MODULE_37.START;
@@ -1593,7 +1604,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_37.BSS_START = .;
- FILE_290000.o (.bss)
+ module_37.o (.sbss)
+ module_37.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_37.BSS_END = .;
SDK_OVERLAY.MODULE_37.BSS_SIZE = SDK_OVERLAY.MODULE_37.BSS_END - SDK_OVERLAY.MODULE_37.BSS_START;
@@ -2986,7 +2998,15 @@ SECTIONS {
WRITEW SDK_OVERLAY_MODULE_36_ID;
WRITEW 0;
- OVERLAY_TABLE(MODULE_37, 37)
+ WRITEW SDK_OVERLAY_MODULE_37_ID;
+ WRITEW SDK_OVERLAY.MODULE_37.START;
+ WRITEW SDK_OVERLAY.MODULE_37.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_37.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_37.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_37.SINIT_END;
+ WRITEW SDK_OVERLAY_MODULE_37_ID;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_38, 38)
OVERLAY_TABLE(MODULE_39, 39)
OVERLAY_TABLE(MODULE_40, 40)
diff --git a/arm9/global.inc b/arm9/global.inc
index aa4d2a1b..a3c1c70e 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -2662,6 +2662,7 @@
.extern MOD20_02253A04
.extern MOD20_02253FAC
.extern MOD20_02253FB4
+.extern MOD20_02252BB8
.extern MOD05_021D74E0
.extern FUN_021D7660
.extern FUN_021D76AC
diff --git a/arm9/modules/37/asm/module_37.s b/arm9/modules/37/asm/module_37.s
new file mode 100644
index 00000000..3cbe599b
--- /dev/null
+++ b/arm9/modules/37/asm/module_37.s
@@ -0,0 +1,681 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD37_02254840
+MOD37_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD37_02254854
+ ldr r1, _02254850 ; =MOD37_02254934
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD37_02254854
+_02254850: .word MOD37_02254934
+ thumb_func_end MOD37_02254840
+
+ thumb_func_start MOD37_02254854
+MOD37_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x14
+ 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 MOD37_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD37_02254900
+ 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 MOD37_02254900
+ thumb_func_end MOD37_02254854
+
+ thumb_func_start MOD37_0225489C
+MOD37_0225489C: ; 0x0225489C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r1, r5, #0
+ add r6, r2, #0
+ add r0, r3, #0
+ add r1, #8
+ mov r2, #4
+ str r3, [r5, #4]
+ bl FUN_02089418
+ cmp r0, #0
+ bne _022548BA
+ mov r0, #1
+ str r0, [r5, #8]
+_022548BA:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0xc
+ add r1, #8
+ add r2, r6, #0
+ bl MOD37_02254A54
+ cmp r0, #0
+ beq _022548DA
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ str r4, [r5, #0x10]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_022548DA:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD37_0225489C
+
+ thumb_func_start MOD37_022548E0
+MOD37_022548E0: ; 0x022548E0
+ 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, #0xc]
+ bl MOD37_02254B0C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_022548E0
+
+ thumb_func_start MOD37_02254900
+MOD37_02254900: ; 0x02254900
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ ldrb r1, [r4]
+ add r5, r0, #0
+ cmp r1, #3
+ bhs _0225492C
+ lsl r2, r1, #2
+ ldr r1, _02254930 ; =0x02254D28
+ add r0, r4, #0
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _0225492C
+ add r0, r4, #0
+ bl MOD37_022548E0
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x10]
+ bl MOD20_022529A0
+_0225492C:
+ pop {r3, r4, r5, pc}
+ nop
+_02254930: .word 0x02254D28
+ thumb_func_end MOD37_02254900
+
+ thumb_func_start MOD37_02254934
+MOD37_02254934: ; 0x02254934
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD37_02254934
+
+ thumb_func_start MOD37_0225493C
+MOD37_0225493C: ; 0x0225493C
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _02254944
+ b _02254946
+_02254944:
+ mov r1, #2
+_02254946:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD37_0225493C
+
+ thumb_func_start MOD37_02254950
+MOD37_02254950: ; 0x02254950
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254960
+ cmp r0, #1
+ beq _02254970
+ b _0225498A
+_02254960:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD37_02254B20
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _0225498A
+_02254970:
+ ldr r0, [r4, #0xc]
+ mov r1, #0
+ bl MOD37_02254B44
+ cmp r0, #0
+ beq _0225498A
+ ldr r0, [r4, #0x10]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD37_0225493C
+_0225498A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254950
+
+ thumb_func_start MOD37_02254990
+MOD37_02254990: ; 0x02254990
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549A0
+ mov r1, #2
+ bl MOD37_0225493C
+_022549A0:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549AC
+ cmp r0, #1
+ beq _022549CE
+ b _022549DE
+_022549AC:
+ bl MOD37_02254A18
+ cmp r0, #0
+ beq _022549DE
+ bl FUN_0201BA60
+ mov r1, #1
+ and r0, r1
+ str r0, [r4, #8]
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD37_02254B20
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549DE
+_022549CE:
+ ldr r0, [r4, #0xc]
+ mov r1, #2
+ bl MOD37_02254B44
+ cmp r0, #0
+ beq _022549DE
+ mov r0, #0
+ strb r0, [r4, #1]
+_022549DE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254990
+
+ thumb_func_start MOD37_022549E4
+MOD37_022549E4: ; 0x022549E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549F4
+ cmp r0, #1
+ beq _02254A04
+ b _02254A12
+_022549F4:
+ ldr r0, [r4, #0xc]
+ mov r1, #1
+ bl MOD37_02254B20
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A12
+_02254A04:
+ ldr r0, [r4, #0xc]
+ bl MOD37_02254B50
+ cmp r0, #0
+ beq _02254A12
+ mov r0, #1
+ pop {r4, pc}
+_02254A12:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_022549E4
+
+ thumb_func_start MOD37_02254A18
+MOD37_02254A18: ; 0x02254A18
+ push {r3, lr}
+ sub sp, #8
+ add r0, sp, #4
+ add r1, sp, #0
+ bl MOD20_02252BB8
+ cmp r0, #0
+ beq _02254A4E
+ ldr r1, [sp, #4]
+ mov r0, #0x70
+ sub r0, r0, r1
+ add r3, r0, #0
+ mul r3, r0
+ ldr r1, [sp]
+ mov r0, #0x90
+ sub r2, r0, r1
+ add r1, r2, #0
+ mul r1, r2
+ str r1, [sp]
+ add r1, r3, r1
+ lsl r0, r0, #2
+ str r3, [sp, #4]
+ cmp r1, r0
+ bhs _02254A4E
+ add sp, #8
+ mov r0, #1
+ pop {r3, pc}
+_02254A4E:
+ mov r0, #0
+ add sp, #8
+ pop {r3, pc}
+ thumb_func_end MOD37_02254A18
+
+ thumb_func_start MOD37_02254A54
+MOD37_02254A54: ; 0x02254A54
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x48
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254A94
+ add r0, #8
+ mov r1, #4
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x20]
+ add r0, r4, #0
+ bl MOD37_02254AA0
+ ldr r1, _02254A98 ; =0xFFFF5800
+ ldr r0, _02254A9C ; =0x02254DA0
+ str r1, [r0]
+ mov r1, #0xb
+ lsl r1, r1, #8
+ str r1, [r0, #4]
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254A94:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254A98: .word 0xFFFF5800
+_02254A9C: .word 0x02254DA0
+ thumb_func_end MOD37_02254A54
+
+ thumb_func_start MOD37_02254AA0
+MOD37_02254AA0: ; 0x02254AA0
+ push {r3, r4, lr}
+ sub sp, #0xc
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r4, r0, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x39
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #0x28
+ mov r1, #0xc
+ mov r2, #0x37
+ mov r3, #0x38
+ bl MOD20_02253FBC
+ add r2, r4, #0
+ ldr r0, [r4, #0x20]
+ ldr r1, _02254AF0 ; =0x02254D34
+ add r2, #0x28
+ bl MOD20_02253E74
+ str r0, [r4, #0x24]
+ ldr r0, [r4]
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02254AEA
+ ldr r0, [r4, #0x24]
+ mov r1, #2
+ bl MOD20_02253F28
+_02254AEA:
+ add sp, #0xc
+ pop {r3, r4, pc}
+ nop
+_02254AF0: .word 0x02254D34
+ thumb_func_end MOD37_02254AA0
+
+ thumb_func_start MOD37_02254AF4
+MOD37_02254AF4: ; 0x02254AF4
+ 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 MOD37_02254AF4
+
+ thumb_func_start MOD37_02254B0C
+MOD37_02254B0C: ; 0x02254B0C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254B1C
+ bl MOD37_02254AF4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254B1C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254B0C
+
+ thumb_func_start MOD37_02254B20
+MOD37_02254B20: ; 0x02254B20
+ 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, _02254B40 ; =0x02254D60
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254B40: .word 0x02254D60
+ thumb_func_end MOD37_02254B20
+
+ thumb_func_start MOD37_02254B44
+MOD37_02254B44: ; 0x02254B44
+ ldr r3, _02254B4C ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254B4C: .word MOD20_02253794
+ thumb_func_end MOD37_02254B44
+
+ thumb_func_start MOD37_02254B50
+MOD37_02254B50: ; 0x02254B50
+ ldr r3, _02254B58 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254B58: .word MOD20_022537B8
+ thumb_func_end MOD37_02254B50
+
+ thumb_func_start MOD37_02254B5C
+MOD37_02254B5C: ; 0x02254B5C
+ 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 MOD37_02254B5C
+
+ thumb_func_start MOD37_02254B70
+MOD37_02254B70: ; 0x02254B70
+ 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, _02254BF4 ; =0x02254D44
+ 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, #0x36
+ 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, #0x35
+ 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, _02254BF8 ; =0x04001000
+ ldr r0, _02254BFC ; =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 MOD37_02254B5C
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_02254BF4: .word 0x02254D44
+_02254BF8: .word 0x04001000
+_02254BFC: .word 0xFFFFE0FF
+ thumb_func_end MOD37_02254B70
+
+ thumb_func_start MOD37_02254C00
+MOD37_02254C00: ; 0x02254C00
+ 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_022538AC
+ cmp r0, #0
+ beq _02254C1C
+ cmp r0, #1
+ beq _02254C26
+ pop {r3, r4, r5, pc}
+_02254C1C:
+ mov r0, #1
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02254C26:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD37_02254B44
+ cmp r0, #0
+ beq _02254C40
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD37_02254B5C
+_02254C40:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD37_02254C00
+
+ thumb_func_start MOD37_02254C44
+MOD37_02254C44: ; 0x02254C44
+ 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 _02254C6C
+ cmp r0, #1
+ beq _02254C90
+ cmp r0, #2
+ beq _02254D10
+ pop {r4, r5, r6, pc}
+_02254C6C:
+ ldr r0, _02254D18 ; =0x00000675
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x24]
+ mov r1, #0
+ bl MOD20_02253F28
+ mov r0, #9
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x3c]
+ ldr r0, _02254D1C ; =0x02254DA0
+ ldr r0, [r0]
+ str r0, [r4, #0x40]
+ mov r0, #0
+ str r0, [r4, #0x44]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02254C90:
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02254C9E
+ add r0, r5, #0
+ bl MOD37_02254B5C
+ pop {r4, r5, r6, pc}
+_02254C9E:
+ ldr r1, [r4, #0x3c]
+ ldr r0, [r4, #0x40]
+ add r0, r1, r0
+ str r0, [r4, #0x3c]
+ ldr r0, _02254D1C ; =0x02254DA0
+ ldr r1, [r4, #0x40]
+ ldr r0, [r0, #4]
+ add r1, r1, r0
+ str r1, [r4, #0x40]
+ cmp r1, #0
+ ble _02254D02
+ mov r0, #9
+ ldr r2, [r4, #0x3c]
+ lsl r0, r0, #0x10
+ cmp r2, r0
+ blt _02254D02
+ mov r0, #0x38
+ mul r0, r1
+ mov r1, #0x64
+ bl _s32_div_f
+ neg r1, r0
+ ldr r0, _02254D20 ; =0xFFFFE000
+ str r1, [r4, #0x40]
+ cmp r1, r0
+ ldr r0, _02254D24 ; =0x00000676
+ bge _02254CE0
+ bl MOD20_02252B28
+ mov r0, #9
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x3c]
+ b _02254D02
+_02254CE0:
+ bl MOD20_02252B28
+ ldr r0, [r6]
+ cmp r0, #0
+ beq _02254CEE
+ mov r1, #1
+ b _02254CF0
+_02254CEE:
+ mov r1, #2
+_02254CF0:
+ ldr r0, [r4, #0x24]
+ bl MOD20_02253F28
+ mov r0, #9
+ lsl r0, r0, #0x10
+ str r0, [r4, #0x3c]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02254D02:
+ mov r1, #7
+ ldr r0, [r4, #0x24]
+ ldr r2, [r4, #0x3c]
+ lsl r1, r1, #0x10
+ bl MOD20_02253F64
+ pop {r4, r5, r6, pc}
+_02254D10:
+ add r0, r5, #0
+ bl MOD37_02254B5C
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254D18: .word 0x00000675
+_02254D1C: .word 0x02254DA0
+_02254D20: .word 0xFFFFE000
+_02254D24: .word 0x00000676
+ thumb_func_end MOD37_02254C44
+
+ .section .rodata
+ ; 0x02254D28
+ .incbin "baserom.nds", 0x2904E8, 0x68
+
+ .section .sinit
+ .word MOD37_02254840
+
+ .section .bss
+ ; 0x02254DA0
+ .space 8
diff --git a/arm9/src/main.c b/arm9/src/main.c
index f16b16ff..b7059e4d 100644
--- a/arm9/src/main.c
+++ b/arm9/src/main.c
@@ -63,8 +63,8 @@ void FUN_02000F4C(int arg0, int arg1);
extern BOOL FUN_02006234(struct Unk21DBE18 *, s32 *, int);
extern BOOL FUN_02006290(int);
extern void FUN_02006260(int);
-int FUN_02033678(void);
-BOOL FUN_020335B8(void);
+extern BOOL FUN_02033678(void);
+extern int FUN_020335B8(void);
extern struct Unk21DBE18 gUnk021DBE18;
extern struct Unk21DBE18 gUnk021D76C8;