summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-11 17:43:55 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-11 17:43:55 -0400
commit17d5ec76a021218e0bf9741d6fc199fa0c540aa1 (patch)
treea631ff653a85a7560619264f41e39e7d4256903c
parentbf8f421169262a7f634de5a1b291a8ac407be2d9 (diff)
disassemble module 40
-rw-r--r--arm9/arm9.lcf28
-rw-r--r--arm9/global.inc5
-rw-r--r--arm9/modules/20/asm/module_20.s8
-rw-r--r--arm9/modules/40/asm/module_40.s1417
4 files changed, 1450 insertions, 8 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 9eb19eb3..97baf90b 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -1673,10 +1673,21 @@ SECTIONS {
SDK_OVERLAY.MODULE_39.BSS_SIZE = SDK_OVERLAY.MODULE_39.BSS_END - SDK_OVERLAY.MODULE_39.BSS_START;
} >> MODULE_39
- .MODULE.40: {
+ .MODULE.40 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_40.START = .;
- FILE_292000.o (.text) /* 0x28E000 */
+ module_40.o (.text)
+ module_40.o (.rodata)
+ module_40.o (.init)
+ SDK_OVERLAY.MODULE_40.SINIT_START = .;
+ module_40.o (.ctor)
+ module_40.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_40.SINIT_END = .;
+ . = ALIGN(32);
+ module_40.o (.sdata)
+ module_40.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_40.END = .;
SDK_OVERLAY.MODULE_40.SIZE = SDK_OVERLAY.MODULE_40.END - SDK_OVERLAY.MODULE_40.START;
@@ -1686,7 +1697,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_40.BSS_START = .;
- FILE_292000.o (.bss)
+ module_40.o (.sbss)
+ module_40.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_40.BSS_END = .;
SDK_OVERLAY.MODULE_40.BSS_SIZE = SDK_OVERLAY.MODULE_40.BSS_END - SDK_OVERLAY.MODULE_40.BSS_START;
@@ -3049,7 +3061,15 @@ SECTIONS {
WRITEW SDK_OVERLAY_MODULE_39_ID;
WRITEW 0;
- OVERLAY_TABLE(MODULE_40, 40)
+ WRITEW SDK_OVERLAY_MODULE_40_ID;
+ WRITEW SDK_OVERLAY.MODULE_40.START;
+ WRITEW SDK_OVERLAY.MODULE_40.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_40.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_40.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_40.SINIT_END;
+ WRITEW SDK_OVERLAY_MODULE_40_ID;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_41, 41)
OVERLAY_TABLE(MODULE_42, 42)
OVERLAY_TABLE(MODULE_43, 43)
diff --git a/arm9/global.inc b/arm9/global.inc
index c79de602..05893664 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -2657,6 +2657,11 @@
.extern FUN_020C39CC
.extern FUN_020C6034
.extern FUN_020C605C
+.extern FUN_02037790
+.extern FUN_0204BF94
+.extern FUN_0204BF9C
+.extern FUN_0204BFB0
+.extern MOD20_022542C0
.extern MOD05_021EC464
.extern MOD05_021ED9B4
.extern MOD05_021EC7B4
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
index 1c3ba821..2975c2d8 100644
--- a/arm9/modules/20/asm/module_20.s
+++ b/arm9/modules/20/asm/module_20.s
@@ -5,10 +5,10 @@
thumb_func_start MOD20_02252440
MOD20_02252440: ; 0x02252440
- ldr r3, _02252444 ; =0x02037791
+ ldr r3, _02252444 ; =FUN_02037790
bx r3
.align 2, 0
-_02252444: .word 0x02037791
+_02252444: .word FUN_02037790
thumb_func_end MOD20_02252440
thumb_func_start MOD20_02252448
@@ -1136,11 +1136,11 @@ _02252C04:
thumb_func_start MOD20_02252C08
MOD20_02252C08: ; 0x02252C08
- ldr r3, _02252C10 ; =0x0204646D
+ ldr r3, _02252C10 ; =FUN_0204646C
ldr r0, [r0, #0x5c]
bx r3
nop
-_02252C10: .word 0x0204646D
+_02252C10: .word FUN_0204646C
thumb_func_end MOD20_02252C08
thumb_func_start MOD20_02252C14
diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s
new file mode 100644
index 00000000..af31d92c
--- /dev/null
+++ b/arm9/modules/40/asm/module_40.s
@@ -0,0 +1,1417 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD40_02254840
+MOD40_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD40_02254854
+ ldr r1, _02254850 ; =MOD40_022549D4
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD40_02254854
+_02254850: .word MOD40_022549D4
+ thumb_func_end MOD40_02254840
+
+ thumb_func_start MOD40_02254854
+MOD40_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x34
+ 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 MOD40_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD40_02254998
+ 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 MOD40_02254998
+ thumb_func_end MOD40_02254854
+
+ thumb_func_start MOD40_0225489C
+MOD40_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0xc
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ add r6, r2, #0
+ bl MOD20_02252C3C
+ str r0, [r5, #0x10]
+ bl FUN_0204BF94
+ strb r0, [r5, #3]
+ ldr r0, [r5, #0x10]
+ add r1, sp, #8
+ add r2, sp, #4
+ bl FUN_0204BF9C
+ ldr r0, [sp, #8]
+ strb r0, [r5, #6]
+ ldr r0, [sp, #4]
+ strb r0, [r5, #7]
+ add r0, r5, #3
+ bl MOD40_02254940
+ add r0, r5, #0
+ add r0, #8
+ add r1, r5, #3
+ add r2, r6, #0
+ bl MOD40_02254D6C
+ cmp r0, #0
+ beq _02254930
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254938 ; =0x02255328
+ ldr r2, _0225493C ; =MOD40_02254990
+ mov r1, #6
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x14]
+ mov r0, #0
+ str r0, [r5, #0x1c]
+ ldr r0, [r5, #0x14]
+ mov r1, #2
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x14]
+ mov r1, #3
+ mov r2, #4
+ bl MOD20_022542C0
+ mov r1, #4
+ ldr r0, [r5, #0x14]
+ add r2, r1, #0
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x14]
+ mov r1, #5
+ mov r2, #4
+ bl MOD20_022542C0
+ mov r0, #0
+ str r0, [r5, #0x2c]
+ str r0, [r5, #0x30]
+ add sp, #0xc
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_02254930:
+ mov r0, #0
+ add sp, #0xc
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254938: .word 0x02255328
+_0225493C: .word MOD40_02254990
+ thumb_func_end MOD40_0225489C
+
+ thumb_func_start MOD40_02254940
+MOD40_02254940: ; 0x02254940
+ push {r3, r4, lr}
+ sub sp, #0xc
+ add r4, r0, #0
+ add r0, sp, #0
+ bl FUN_02012690
+ ldr r0, [sp]
+ cmp r0, #0x18
+ blo _0225495A
+ mov r1, #0x18
+ blx _u32_div_f
+ str r1, [sp]
+_0225495A:
+ ldr r0, [sp, #4]
+ cmp r0, #0x3c
+ blo _0225496A
+ ldr r0, [sp]
+ mov r1, #0x3c
+ blx _u32_div_f
+ str r1, [sp]
+_0225496A:
+ ldr r0, [sp]
+ strb r0, [r4, #1]
+ ldr r0, [sp, #4]
+ strb r0, [r4, #2]
+ add sp, #0xc
+ pop {r3, r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254940
+
+ thumb_func_start MOD40_02254978
+MOD40_02254978: ; 0x02254978
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl MOD20_02254198
+ ldr r0, [r4, #8]
+ bl MOD40_02254DA8
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD40_02254978
+
+ thumb_func_start MOD40_02254990
+MOD40_02254990: ; 0x02254990
+ str r0, [r3, #0x18]
+ str r1, [r3, #0x1c]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_02254990
+
+ thumb_func_start MOD40_02254998
+MOD40_02254998: ; 0x02254998
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #5
+ bhs _022549CE
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x14]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022549D0 ; =0x02255314
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _022549CE
+ add r0, r4, #0
+ bl MOD40_02254978
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_022549CE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022549D0: .word 0x02255314
+ thumb_func_end MOD40_02254998
+
+ thumb_func_start MOD40_022549D4
+MOD40_022549D4: ; 0x022549D4
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_022549D4
+
+ thumb_func_start MOD40_022549DC
+MOD40_022549DC: ; 0x022549DC
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549E4
+ b _022549E6
+_022549E4:
+ mov r1, #4
+_022549E6:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_022549DC
+
+ thumb_func_start MOD40_022549F0
+MOD40_022549F0: ; 0x022549F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A00
+ cmp r0, #1
+ beq _02254A10
+ b _02254A3A
+_02254A00:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A3A
+_02254A10:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _02254A3A
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ ldrb r0, [r4, #3]
+ cmp r0, #0
+ beq _02254A32
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD40_022549DC
+ b _02254A3A
+_02254A32:
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD40_022549DC
+_02254A3A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_022549F0
+
+ thumb_func_start MOD40_02254A40
+MOD40_02254A40: ; 0x02254A40
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254A54
+ mov r1, #4
+ bl MOD40_022549DC
+ mov r0, #0
+ pop {r4, pc}
+_02254A54:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A60
+ cmp r0, #1
+ beq _02254B32
+ b _02254B46
+_02254A60:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #1
+ bne _02254A9A
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02254A9A
+ mov r0, #1
+ strb r0, [r4, #3]
+ add r0, r4, #3
+ bl MOD40_02254940
+ mov r2, #6
+ mov r3, #7
+ ldrsb r2, [r4, r2]
+ ldrsb r3, [r4, r3]
+ ldr r0, [r4, #0x10]
+ mov r1, #1
+ bl FUN_0204BFB0
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD40_02254F98
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B46
+_02254A9A:
+ cmp r1, #1
+ bne _02254AB0
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254AB0
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldr r0, _02254B4C ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254B46
+_02254AB0:
+ cmp r1, #1
+ beq _02254AB8
+ cmp r1, #7
+ bne _02254B46
+_02254AB8:
+ ldr r0, [r4, #0x18]
+ cmp r0, #5
+ bhi _02254B24
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254ACA: ; jump table
+ .short _02254B24 - _02254ACA - 2 ; case 0
+ .short _02254B24 - _02254ACA - 2 ; case 1
+ .short _02254AD6 - _02254ACA - 2 ; case 2
+ .short _02254AEA - _02254ACA - 2 ; case 3
+ .short _02254AFE - _02254ACA - 2 ; case 4
+ .short _02254B12 - _02254ACA - 2 ; case 5
+_02254AD6:
+ mov r0, #6
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #6]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x17
+ ble _02254B24
+ mov r0, #0
+ strb r0, [r4, #6]
+ b _02254B24
+_02254AEA:
+ mov r0, #6
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, #6]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _02254B24
+ mov r0, #0x17
+ strb r0, [r4, #6]
+ b _02254B24
+_02254AFE:
+ mov r0, #7
+ ldrsb r1, [r4, r0]
+ add r1, r1, #1
+ strb r1, [r4, #7]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0x3b
+ ble _02254B24
+ mov r0, #0
+ strb r0, [r4, #7]
+ b _02254B24
+_02254B12:
+ mov r0, #7
+ ldrsb r1, [r4, r0]
+ sub r1, r1, #1
+ strb r1, [r4, #7]
+ ldrsb r0, [r4, r0]
+ cmp r0, #0
+ bge _02254B24
+ mov r0, #0x3b
+ strb r0, [r4, #7]
+_02254B24:
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD40_02254F98
+ b _02254B46
+_02254B32:
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _02254B46
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD40_022549DC
+_02254B46:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254B4C: .word 0x0000066E
+ thumb_func_end MOD40_02254A40
+
+ thumb_func_start MOD40_02254B50
+MOD40_02254B50: ; 0x02254B50
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254B68
+ mov r1, #4
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254B68:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B74
+ cmp r0, #1
+ beq _02254C02
+ b _02254C12
+_02254B74:
+ add r0, r4, #3
+ bl MOD40_02254D4C
+ cmp r0, #0
+ beq _02254B8C
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254B8C:
+ ldr r1, [r4, #0x1c]
+ cmp r1, #1
+ bne _02254BB2
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254BB2
+ mov r0, #0
+ strb r0, [r4, #3]
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD40_02254F98
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD40_022549DC
+ b _02254C12
+_02254BB2:
+ cmp r1, #1
+ bne _02254BC4
+ ldr r0, [r4, #0x18]
+ cmp r0, #0
+ bne _02254BC4
+ ldr r0, _02254C18 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254C12
+_02254BC4:
+ add r0, r4, #0
+ bl MOD40_02254CE4
+ cmp r0, #0
+ bne _02254BD4
+ add r0, r4, #0
+ bl MOD40_02254CE8
+_02254BD4:
+ add r0, r4, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD40_02254D00
+ cmp r0, #0
+ beq _02254C12
+ mov r0, #5
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _02254C12
+ strb r1, [r4, #5]
+ ldr r0, [sp, #4]
+ mov r1, #4
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254C12
+_02254C02:
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _02254C12
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254C12:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+_02254C18: .word 0x0000066E
+ thumb_func_end MOD40_02254B50
+
+ thumb_func_start MOD40_02254C1C
+MOD40_02254C1C: ; 0x02254C1C
+ push {r4, lr}
+ sub sp, #8
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254C34
+ mov r1, #4
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254C34:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254C40
+ cmp r0, #1
+ beq _02254C50
+ b _02254CDC
+_02254C40:
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254CDC
+_02254C50:
+ add r0, r4, #3
+ bl MOD40_02254D4C
+ cmp r0, #0
+ bne _02254C76
+ ldr r0, [r4, #8]
+ bl MOD40_0225530C
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD40_02254F98
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254C76:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #1
+ bne _02254CA6
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254CA6
+ mov r0, #0
+ strb r0, [r4, #3]
+ ldr r0, [r4, #8]
+ bl MOD40_0225530C
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD40_02254F98
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD40_022549DC
+ add sp, #8
+ mov r0, #0
+ pop {r4, pc}
+_02254CA6:
+ add r0, r4, #0
+ bl MOD40_02254CE4
+ cmp r0, #0
+ bne _02254CB6
+ add r0, r4, #0
+ bl MOD40_02254CE8
+_02254CB6:
+ add r0, r4, #0
+ add r1, sp, #4
+ add r2, sp, #0
+ bl MOD40_02254D00
+ cmp r0, #0
+ beq _02254CDC
+ mov r0, #5
+ ldrsb r0, [r4, r0]
+ ldr r1, [sp]
+ cmp r1, r0
+ beq _02254CDC
+ strb r1, [r4, #5]
+ ldr r0, [sp, #4]
+ mov r1, #4
+ strb r0, [r4, #4]
+ ldr r0, [r4, #8]
+ bl MOD40_02254F98
+_02254CDC:
+ mov r0, #0
+ add sp, #8
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254C1C
+
+ thumb_func_start MOD40_02254CE4
+MOD40_02254CE4: ; 0x02254CE4
+ ldr r0, [r0, #0x2c]
+ bx lr
+ thumb_func_end MOD40_02254CE4
+
+ thumb_func_start MOD40_02254CE8
+MOD40_02254CE8: ; 0x02254CE8
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x2c]
+ cmp r0, #0
+ bne _02254CFE
+ add r0, r4, #0
+ add r0, #0x20
+ bl FUN_02012690
+ mov r0, #1
+ str r0, [r4, #0x30]
+_02254CFE:
+ pop {r4, pc}
+ thumb_func_end MOD40_02254CE8
+
+ thumb_func_start MOD40_02254D00
+MOD40_02254D00: ; 0x02254D00
+ ldr r3, [r0, #0x30]
+ cmp r3, #0
+ beq _02254D12
+ ldr r3, [r0, #0x20]
+ str r3, [r1]
+ ldr r0, [r0, #0x24]
+ str r0, [r2]
+ mov r0, #1
+ bx lr
+_02254D12:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_02254D00
+
+ thumb_func_start MOD40_02254D18
+MOD40_02254D18: ; 0x02254D18
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254D28
+ cmp r0, #1
+ beq _02254D38
+ b _02254D46
+_02254D28:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD40_02254F98
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254D46
+_02254D38:
+ ldr r0, [r4, #8]
+ bl MOD40_02254FC8
+ cmp r0, #0
+ beq _02254D46
+ mov r0, #1
+ pop {r4, pc}
+_02254D46:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254D18
+
+ thumb_func_start MOD40_02254D4C
+MOD40_02254D4C: ; 0x02254D4C
+ mov r1, #1
+ mov r2, #3
+ ldrsb r3, [r0, r1]
+ ldrsb r2, [r0, r2]
+ cmp r3, r2
+ bne _02254D64
+ mov r2, #2
+ ldrsb r3, [r0, r2]
+ mov r2, #4
+ ldrsb r0, [r0, r2]
+ cmp r3, r0
+ beq _02254D66
+_02254D64:
+ mov r1, #0
+_02254D66:
+ add r0, r1, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD40_02254D4C
+
+ thumb_func_start MOD40_02254D6C
+MOD40_02254D6C: ; 0x02254D6C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x9c
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254DA2
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r5, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD40_02254DBC
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254DA2:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254D6C
+
+ thumb_func_start MOD40_02254DA8
+MOD40_02254DA8: ; 0x02254DA8
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254DB8
+ bl MOD40_02254EE4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254DB8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254DA8
+
+ thumb_func_start MOD40_02254DBC
+MOD40_02254DBC: ; 0x02254DBC
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r5, 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, #0x4f
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x68
+ mov r1, #0xc
+ mov r2, #0x4d
+ mov r3, #0x4e
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x7c
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x68
+ str r0, [sp, #0x14]
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x7c
+ ldr r7, _02254EE0 ; =0x022553B0
+ mov r4, #0
+ add r6, r5, #0
+ str r0, [sp, #0x10]
+_02254E2A:
+ cmp r4, #9
+ blt _02254E40
+ cmp r4, #0xc
+ bgt _02254E40
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp, #0x10]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ str r0, [r6, #0x34]
+ b _02254E52
+_02254E40:
+ ldr r0, [r5, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ mov r1, #0x50
+ str r0, [r6, #0x34]
+ bl MOD20_02253FA4
+_02254E52:
+ add r4, r4, #1
+ add r7, #0x10
+ add r6, r6, #4
+ cmp r4, #0xd
+ blt _02254E2A
+ ldr r0, [sp, #0xc]
+ ldrb r0, [r0]
+ cmp r0, #0
+ ldr r0, [r5, #0x34]
+ beq _02254EB2
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r1, [sp, #0xc]
+ mov r2, #1
+ ldrsb r1, [r1, r2]
+ ldr r2, [sp, #0xc]
+ mov r3, #2
+ ldrsb r2, [r2, r3]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_02254EB2:
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r1, [sp, #0xc]
+ mov r2, #3
+ ldrsb r1, [r1, r2]
+ ldr r2, [sp, #0xc]
+ mov r3, #4
+ ldrsb r2, [r2, r3]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254EE0: .word 0x022553B0
+ thumb_func_end MOD40_02254DBC
+
+ thumb_func_start MOD40_02254EE4
+MOD40_02254EE4: ; 0x02254EE4
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02254EEC:
+ ldr r1, [r5, #0x34]
+ cmp r1, #0
+ beq _02254EF8
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02254EF8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0xd
+ blt _02254EEC
+ add r0, r6, #0
+ add r0, #0x68
+ bl MOD20_02254014
+ add r6, #0x7c
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02254EE4
+
+ thumb_func_start MOD40_02254F14
+MOD40_02254F14: ; 0x02254F14
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, _02254F8C ; =0x04000280
+ mov r3, #0
+ strh r3, [r0]
+ str r1, [r0, #0x10]
+ add r1, r0, #0
+ add r4, r2, #0
+ mov r2, #0xa
+ add r1, #0x18
+ str r2, [r1]
+ str r3, [r1, #4]
+ lsr r1, r0, #0xb
+_02254F2E:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _02254F2E
+ ldr r1, _02254F90 ; =0x040002A0
+ ldr r0, [r5, #0x58]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ ldr r2, _02254F8C ; =0x04000280
+ lsr r0, r2, #0xb
+_02254F42:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02254F42
+ ldr r1, _02254F94 ; =0x040002A8
+ ldr r0, [r5, #0x5c]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ ldr r0, _02254F8C ; =0x04000280
+ mov r3, #0
+ strh r3, [r0]
+ add r1, r0, #0
+ str r4, [r0, #0x10]
+ mov r2, #0xa
+ add r1, #0x18
+ str r2, [r1]
+ str r3, [r1, #4]
+ lsr r1, r0, #0xb
+_02254F66:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _02254F66
+ ldr r1, _02254F90 ; =0x040002A0
+ ldr r0, [r5, #0x60]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ ldr r2, _02254F8C ; =0x04000280
+ lsr r0, r2, #0xb
+_02254F7A:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02254F7A
+ ldr r1, _02254F94 ; =0x040002A8
+ ldr r0, [r5, #0x64]
+ ldr r1, [r1]
+ bl MOD20_02253F28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254F8C: .word 0x04000280
+_02254F90: .word 0x040002A0
+_02254F94: .word 0x040002A8
+ thumb_func_end MOD40_02254F14
+
+ thumb_func_start MOD40_02254F98
+MOD40_02254F98: ; 0x02254F98
+ 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, _02254FB8 ; =0x0225535C
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254FB8: .word 0x0225535C
+ thumb_func_end MOD40_02254F98
+
+ thumb_func_start MOD40_02254FBC
+MOD40_02254FBC: ; 0x02254FBC
+ ldr r3, _02254FC4 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254FC4: .word MOD20_02253794
+ thumb_func_end MOD40_02254FBC
+
+ thumb_func_start MOD40_02254FC8
+MOD40_02254FC8: ; 0x02254FC8
+ ldr r3, _02254FD0 ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254FD0: .word MOD20_022537B8
+ thumb_func_end MOD40_02254FC8
+
+ thumb_func_start MOD40_02254FD4
+MOD40_02254FD4: ; 0x02254FD4
+ 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 MOD40_02254FD4
+
+ thumb_func_start MOD40_02254FE8
+MOD40_02254FE8: ; 0x02254FE8
+ 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, _0225506C ; =0x02255340
+ 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, #0x4c
+ 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, #0x4b
+ 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, _02255070 ; =0x04001000
+ ldr r0, _02255074 ; =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 MOD40_02254FD4
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_0225506C: .word 0x02255340
+_02255070: .word 0x04001000
+_02255074: .word 0xFFFFE0FF
+ thumb_func_end MOD40_02254FE8
+
+ thumb_func_start MOD40_02255078
+MOD40_02255078: ; 0x02255078
+ 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 _02255094
+ cmp r0, #1
+ beq _022550A2
+ pop {r3, r4, r5, pc}
+_02255094:
+ add r0, r4, #0
+ bl MOD40_0225530C
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_022550A2:
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD40_02254FBC
+ cmp r0, #0
+ beq _022550BC
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD40_02254FD4
+_022550BC:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD40_02255078
+
+ thumb_func_start MOD40_022550C0
+MOD40_022550C0: ; 0x022550C0
+ 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, _02255138 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, [r5, #0x34]
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x48]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ mov r1, #1
+ bl MOD20_02253F78
+ mov r1, #1
+ mov r2, #2
+ ldrsb r1, [r4, r1]
+ ldrsb r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add r0, r6, #0
+ bl MOD40_02254FD4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255138: .word 0x00000663
+ thumb_func_end MOD40_022550C0
+
+ thumb_func_start MOD40_0225513C
+MOD40_0225513C: ; 0x0225513C
+ 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, _022551B4 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, [r5, #0x34]
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x40]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x44]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F28
+ ldr r0, [r5, #0x48]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ mov r1, #0
+ bl MOD20_02253F78
+ mov r1, #3
+ mov r2, #4
+ ldrsb r1, [r4, r1]
+ ldrsb r2, [r4, r2]
+ add r0, r5, #0
+ bl MOD40_02254F14
+ add r0, r6, #0
+ bl MOD40_02254FD4
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022551B4: .word 0x00000663
+ thumb_func_end MOD40_0225513C
+
+ thumb_func_start MOD40_022551B8
+MOD40_022551B8: ; 0x022551B8
+ 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 r2, r0, #0
+ ldrb r0, [r2]
+ cmp r0, #0
+ beq _022551E2
+ mov r1, #1
+ mov r3, #2
+ ldrsb r1, [r2, r1]
+ ldrsb r2, [r2, r3]
+ add r0, r4, #0
+ bl MOD40_02254F14
+ b _022551F0
+_022551E2:
+ mov r1, #3
+ mov r3, #4
+ ldrsb r1, [r2, r1]
+ ldrsb r2, [r2, r3]
+ add r0, r4, #0
+ bl MOD40_02254F14
+_022551F0:
+ add r0, r5, #0
+ bl MOD40_02254FD4
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD40_022551B8
+
+ thumb_func_start MOD40_022551F8
+MOD40_022551F8: ; 0x022551F8
+ 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 r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225521A
+ cmp r0, #1
+ beq _02255262
+ pop {r3, r4, r5, pc}
+_0225521A:
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x90
+ str r1, [r0]
+ ldr r0, [r4, #0x40]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x44]
+ mov r1, #4
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F28
+ ldr r0, _02255304 ; =0x00000663
+ bl MOD20_02252B28
+ ldr r0, _02255308 ; =0x00000126
+ bl MOD20_02252B48
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r4, #0x98
+ add r0, r5, #0
+ str r1, [r4]
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02255262:
+ add r0, r4, #0
+ add r0, #0x90
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _02255294
+ ldr r0, [r4, #0x58]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x5c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x60]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x64]
+ mov r1, #0
+ bl MOD20_02253F78
+ add r0, r5, #0
+ bl MOD40_02254FD4
+ pop {r3, r4, r5, pc}
+_02255294:
+ bl FUN_02005670
+ cmp r0, #0
+ bne _022552A2
+ ldr r0, _02255308 ; =0x00000126
+ bl MOD20_02252B48
+_022552A2:
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x94
+ ldr r0, [r0]
+ cmp r0, #0xf
+ blo _02255300
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x94
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0x98
+ ldr r1, [r0]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ add r0, #0x98
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r0, [r4, #0x58]
+ ldr r1, [r1]
+ bl MOD20_02253F78
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r0, [r4, #0x5c]
+ ldr r1, [r1]
+ bl MOD20_02253F78
+ add r1, r4, #0
+ add r1, #0x98
+ ldr r0, [r4, #0x60]
+ ldr r1, [r1]
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x64]
+ add r4, #0x98
+ ldr r1, [r4]
+ bl MOD20_02253F78
+_02255300:
+ pop {r3, r4, r5, pc}
+ nop
+_02255304: .word 0x00000663
+_02255308: .word 0x00000126
+ thumb_func_end MOD40_022551F8
+
+ thumb_func_start MOD40_0225530C
+MOD40_0225530C: ; 0x0225530C
+ mov r1, #1
+ add r0, #0x90
+ str r1, [r0]
+ bx lr
+ thumb_func_end MOD40_0225530C
+
+ .section .rodata
+ ; 0x02255314
+ .incbin "baserom.nds", 0x292AD4, 0x16C
+
+ .section .sinit
+ .word MOD40_02254840