summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2020-05-12 08:18:28 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2020-05-12 08:18:28 -0400
commit64eb52caa9b8e9815a51866bce76bd15efa116d6 (patch)
tree896a631993c4d2e9769734757adb1e72230fe8fe
parent7e7d8a7a0f0fc5995fa15318dac017f4b99a665d (diff)
Disassemble module 47
-rw-r--r--arm9/arm9.lcf28
-rw-r--r--arm9/global.inc5
-rw-r--r--arm9/modules/47/asm/module_47.s1497
3 files changed, 1526 insertions, 4 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index c20e6105..f460e588 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -1890,10 +1890,21 @@ SECTIONS {
SDK_OVERLAY.MODULE_46.BSS_SIZE = SDK_OVERLAY.MODULE_46.BSS_END - SDK_OVERLAY.MODULE_46.BSS_START;
} >> MODULE_46
- .MODULE.47: {
+ .MODULE.47 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_47.START = .;
- FILE_296800.o (.text) /* 0x292800 */
+ module_47.o (.text)
+ module_47.o (.rodata)
+ module_47.o (.init)
+ // SDK_OVERLAY.MODULE_47.SINIT_START = .;
+ module_47.o (.ctor)
+ module_47.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_47.SINIT_END = .;
+ . = ALIGN(32);
+ module_47.o (.sdata)
+ module_47.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_47.END = .;
SDK_OVERLAY.MODULE_47.SIZE = SDK_OVERLAY.MODULE_47.END - SDK_OVERLAY.MODULE_47.START;
@@ -1903,7 +1914,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_47.BSS_START = .;
- FILE_296800.o (.bss)
+ module_47.o (.sbss)
+ module_47.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_47.BSS_END = .;
SDK_OVERLAY.MODULE_47.BSS_SIZE = SDK_OVERLAY.MODULE_47.BSS_END - SDK_OVERLAY.MODULE_47.BSS_START;
@@ -3196,7 +3208,15 @@ SECTIONS {
WRITEW SDK_OVERLAY_MODULE_46_ID;
WRITEW 0;
- OVERLAY_TABLE(MODULE_47, 47)
+ WRITEW SDK_OVERLAY_MODULE_47_ID;
+ WRITEW SDK_OVERLAY.MODULE_47.START;
+ WRITEW SDK_OVERLAY.MODULE_47.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_47.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_47.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_47.SINIT_END;
+ WRITEW SDK_OVERLAY_MODULE_47_ID;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_48, 48)
OVERLAY_TABLE(MODULE_49, 49)
OVERLAY_TABLE(MODULE_50, 50)
diff --git a/arm9/global.inc b/arm9/global.inc
index 9853dda7..fea912dc 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -2669,6 +2669,11 @@
.extern FUN_0204BFF0
.extern FUN_0204C02C
.extern FUN_0204C064
+.extern FUN_0202F0DC
+.extern FUN_02032BD0
+.extern FUN_02032C0C
+.extern FUN_02032C28
+.extern FUN_02034984
.extern MOD20_02254420
.extern MOD20_02254460
.extern MOD20_02254488
diff --git a/arm9/modules/47/asm/module_47.s b/arm9/modules/47/asm/module_47.s
new file mode 100644
index 00000000..c10b696b
--- /dev/null
+++ b/arm9/modules/47/asm/module_47.s
@@ -0,0 +1,1497 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD47_02254840
+MOD47_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD47_02254854
+ ldr r1, _02254850 ; =MOD47_0225491C
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD47_02254854
+_02254850: .word MOD47_0225491C
+ thumb_func_end MOD47_02254840
+
+ thumb_func_start MOD47_02254854
+MOD47_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x24
+ 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 MOD47_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD47_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 MOD47_022548E0
+ thumb_func_end MOD47_02254854
+
+ thumb_func_start MOD47_0225489C
+MOD47_0225489C: ; 0x0225489C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r0, #0x14
+ add r1, r5, #4
+ bl MOD47_02254D14
+ cmp r0, #0
+ beq _022548C8
+ mov r1, #0
+ strb r1, [r5]
+ strb r1, [r5, #1]
+ add r0, r5, #0
+ strb r1, [r5, #2]
+ add r0, #0x20
+ strb r1, [r0]
+ add r0, r5, #0
+ add r0, #0x21
+ strb r1, [r0]
+ str r4, [r5, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_022548C8:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD47_0225489C
+
+ thumb_func_start MOD47_022548CC
+MOD47_022548CC: ; 0x022548CC
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x14]
+ bl MOD47_02254D6C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_022548CC
+
+ thumb_func_start MOD47_022548E0
+MOD47_022548E0: ; 0x022548E0
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #6
+ bhs _02254914
+ add r0, r4, #0
+ bl MOD47_02254C6C
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254918 ; =0x022553B8
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254914
+ add r0, r4, #0
+ bl MOD47_022548CC
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x18]
+ bl MOD20_022529A0
+_02254914:
+ pop {r3, r4, r5, pc}
+ nop
+_02254918: .word 0x022553B8
+ thumb_func_end MOD47_022548E0
+
+ thumb_func_start MOD47_0225491C
+MOD47_0225491C: ; 0x0225491C
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD47_0225491C
+
+ thumb_func_start MOD47_02254924
+MOD47_02254924: ; 0x02254924
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _0225492C
+ b _0225492E
+_0225492C:
+ mov r1, #5
+_0225492E:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD47_02254924
+
+ thumb_func_start MOD47_02254938
+MOD47_02254938: ; 0x02254938
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254948
+ cmp r0, #1
+ beq _02254958
+ b _02254972
+_02254948:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254972
+_02254958:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD47_02254E48
+ cmp r0, #0
+ beq _02254972
+ ldr r0, [r4, #0x18]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+_02254972:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254938
+
+ thumb_func_start MOD47_02254978
+MOD47_02254978: ; 0x02254978
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _0225498C
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_0225498C:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ bne _022549DA
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _022549DA
+ add r0, r4, #0
+ bl MOD47_02254D04
+ cmp r0, #0
+ beq _022549D4
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C38
+ add r5, r0, #0
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl MOD47_02254E24
+ ldr r0, [r5, #0x1c]
+ ldr r0, [r0]
+ bl FUN_02034984
+ cmp r0, #0
+ beq _022549CA
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD47_02254924
+ b _022549DA
+_022549CA:
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD47_02254924
+ b _022549DA
+_022549D4:
+ ldr r0, _022549E0 ; =0x0000066E
+ bl MOD20_02252B28
+_022549DA:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ nop
+_022549E0: .word 0x0000066E
+ thumb_func_end MOD47_02254978
+
+ thumb_func_start MOD47_022549E4
+MOD47_022549E4: ; 0x022549E4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _022549F8
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_022549F8:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254A08
+ cmp r1, #1
+ beq _02254A18
+ cmp r1, #2
+ beq _02254A60
+ b _02254AAC
+_02254A08:
+ bl MOD47_02254CCC
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AAC
+_02254A18:
+ bl MOD47_02254AB0
+ cmp r0, #0
+ beq _02254A2C
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254A2C:
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x3c
+ bhs _02254A36
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+_02254A36:
+ add r0, r4, #0
+ bl MOD47_02254CEC
+ cmp r0, #0
+ beq _02254AAC
+ ldr r0, [r4, #0x1c]
+ cmp r0, #0x3c
+ blo _02254AAC
+ add r0, r4, #0
+ bl MOD47_02254C1C
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ bl MOD47_02254E24
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AAC
+_02254A60:
+ bl MOD47_02254AB0
+ cmp r0, #0
+ bne _02254A72
+ add r0, r4, #0
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _02254A8C
+_02254A72:
+ add r0, r4, #0
+ bl MOD47_02254CFC
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD47_02254E24
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254A8C:
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ cmp r0, #0x1e
+ blo _02254AAC
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ add r0, r4, #0
+ bl MOD47_02254C1C
+ cmp r0, #0
+ beq _02254AAC
+ ldr r0, [r4, #0x14]
+ mov r1, #6
+ bl MOD47_02254E24
+_02254AAC:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_022549E4
+
+ thumb_func_start MOD47_02254AB0
+MOD47_02254AB0: ; 0x02254AB0
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C08
+ cmp r0, #0
+ beq _02254AC2
+ mov r0, #1
+ pop {r4, pc}
+_02254AC2:
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C30
+ cmp r0, #0
+ beq _02254AD0
+ mov r0, #1
+ pop {r4, pc}
+_02254AD0:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_02254AB0
+
+ thumb_func_start MOD47_02254AD4
+MOD47_02254AD4: ; 0x02254AD4
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254AE8
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254AE8:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254AF8
+ cmp r1, #1
+ beq _02254B02
+ cmp r1, #2
+ beq _02254B1C
+ b _02254B34
+_02254AF8:
+ mov r0, #0
+ str r0, [r4, #0x1c]
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+_02254B02:
+ ldr r0, [r4, #0x1c]
+ add r0, r0, #1
+ str r0, [r4, #0x1c]
+ cmp r0, #0x3c
+ blo _02254B34
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B34
+_02254B1C:
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _02254B34
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD47_02254E24
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+_02254B34:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_02254AD4
+
+ thumb_func_start MOD47_02254B38
+MOD47_02254B38: ; 0x02254B38
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254B4C
+ mov r1, #5
+ bl MOD47_02254924
+ mov r0, #0
+ pop {r4, pc}
+_02254B4C:
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254B58
+ cmp r1, #1
+ beq _02254B6C
+ b _02254B84
+_02254B58:
+ bl MOD47_02254CFC
+ ldr r0, [r4, #0x14]
+ mov r1, #5
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B84
+_02254B6C:
+ bl MOD47_02254BD4
+ cmp r0, #0
+ beq _02254B84
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD47_02254E24
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD47_02254924
+_02254B84:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD47_02254B38
+
+ thumb_func_start MOD47_02254B88
+MOD47_02254B88: ; 0x02254B88
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _02254B9C
+ cmp r1, #1
+ beq _02254BA6
+ cmp r1, #2
+ beq _02254BC0
+ b _02254BCE
+_02254B9C:
+ bl MOD47_02254CFC
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+_02254BA6:
+ add r0, r4, #0
+ bl MOD47_02254D04
+ cmp r0, #0
+ beq _02254BCE
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl MOD47_02254E24
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254BCE
+_02254BC0:
+ ldr r0, [r4, #0x14]
+ bl MOD47_02254E54
+ cmp r0, #0
+ beq _02254BCE
+ mov r0, #1
+ pop {r4, pc}
+_02254BCE:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254B88
+
+ thumb_func_start MOD47_02254BD4
+MOD47_02254BD4: ; 0x02254BD4
+ push {r3, lr}
+ sub sp, #8
+ ldr r0, [r0, #0x18]
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02254C14
+ add r0, sp, #4
+ add r1, sp, #0
+ bl FUN_02020ACC
+ cmp r0, #0
+ beq _02254C14
+ ldr r0, [sp, #4]
+ sub r0, #0x10
+ cmp r0, #0xbf
+ bhs _02254BFA
+ mov r1, #1
+ b _02254BFC
+_02254BFA:
+ mov r1, #0
+_02254BFC:
+ ldr r0, [sp]
+ sub r0, #0x10
+ cmp r0, #0x9f
+ bhs _02254C08
+ mov r0, #1
+ b _02254C0A
+_02254C08:
+ mov r0, #0
+_02254C0A:
+ tst r0, r1
+ beq _02254C14
+ add sp, #8
+ mov r0, #1
+ pop {r3, pc}
+_02254C14:
+ mov r0, #0
+ add sp, #8
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254BD4
+
+ thumb_func_start MOD47_02254C1C
+MOD47_02254C1C: ; 0x02254C1C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r7, r0, #0
+ mov r0, #0
+ ldr r5, _02254C68 ; =0x022553D0
+ str r0, [sp]
+ str r0, [sp, #4]
+_02254C2A:
+ ldr r0, [r5, #4]
+ mov r4, #0
+ add r6, r4, #0
+ cmp r0, #0
+ bls _02254C46
+_02254C34:
+ ldr r0, [r5]
+ ldrb r0, [r0, r4]
+ bl FUN_0202F0DC
+ add r6, r6, r0
+ ldr r0, [r5, #4]
+ add r4, r4, #1
+ cmp r4, r0
+ blo _02254C34
+_02254C46:
+ ldr r0, [r7, #4]
+ cmp r6, r0
+ beq _02254C52
+ mov r0, #1
+ str r6, [r7, #4]
+ str r0, [sp]
+_02254C52:
+ ldr r0, [sp, #4]
+ add r5, #8
+ add r0, r0, #1
+ add r7, r7, #4
+ str r0, [sp, #4]
+ cmp r0, #4
+ blo _02254C2A
+ ldr r0, [sp]
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02254C68: .word 0x022553D0
+ thumb_func_end MOD47_02254C1C
+
+ thumb_func_start MOD47_02254C6C
+MOD47_02254C6C: ; 0x02254C6C
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #3
+ bhi _02254CC8
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254C84: ; jump table
+ .short _02254CC8 - _02254C84 - 2 ; case 0
+ .short _02254C8C - _02254C84 - 2 ; case 1
+ .short _02254C9C - _02254C84 - 2 ; case 2
+ .short _02254CBA - _02254C84 - 2 ; case 3
+_02254C8C:
+ bl FUN_02032C28
+ cmp r0, #0
+ beq _02254CC8
+ mov r0, #2
+ add r4, #0x20
+ strb r0, [r4]
+ pop {r4, pc}
+_02254C9C:
+ add r0, r4, #0
+ add r0, #0x21
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02254CC8
+ bl FUN_02032C0C
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0x21
+ strb r1, [r0]
+ mov r0, #3
+ add r4, #0x20
+ strb r0, [r4]
+ pop {r4, pc}
+_02254CBA:
+ bl FUN_02030F40
+ cmp r0, #0
+ bne _02254CC8
+ mov r0, #0
+ add r4, #0x20
+ strb r0, [r4]
+_02254CC8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254C6C
+
+ thumb_func_start MOD47_02254CCC
+MOD47_02254CCC: ; 0x02254CCC
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02254CE8
+ ldr r0, [r4, #0x18]
+ bl MOD20_02252C40
+ bl FUN_02032BD0
+ mov r0, #1
+ add r4, #0x20
+ strb r0, [r4]
+_02254CE8:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254CCC
+
+ thumb_func_start MOD47_02254CEC
+MOD47_02254CEC: ; 0x02254CEC
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #2
+ bne _02254CF8
+ mov r0, #1
+ bx lr
+_02254CF8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD47_02254CEC
+
+ thumb_func_start MOD47_02254CFC
+MOD47_02254CFC: ; 0x02254CFC
+ mov r1, #1
+ add r0, #0x21
+ strb r1, [r0]
+ bx lr
+ thumb_func_end MOD47_02254CFC
+
+ thumb_func_start MOD47_02254D04
+MOD47_02254D04: ; 0x02254D04
+ add r0, #0x20
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02254D10
+ mov r0, #1
+ bx lr
+_02254D10:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD47_02254D04
+
+ thumb_func_start MOD47_02254D14
+MOD47_02254D14: ; 0x02254D14
+ 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 _02254D62
+ 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, #0x30]
+ ldr r2, _02254D68 ; =0x0000019A
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #8
+ bl FUN_0200A86C
+ str r0, [r4, #0x58]
+ mov r0, #0x60
+ mov r1, #8
+ bl FUN_020219F4
+ str r0, [r4, #0x5c]
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD47_02254D8C
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254D62:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02254D68: .word 0x0000019A
+ thumb_func_end MOD47_02254D14
+
+ thumb_func_start MOD47_02254D6C
+MOD47_02254D6C: ; 0x02254D6C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254D8A
+ ldr r0, [r4, #0x5c]
+ bl FUN_02021A20
+ ldr r0, [r4, #0x58]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD47_02254DFC
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254D8A:
+ pop {r4, pc}
+ thumb_func_end MOD47_02254D6C
+
+ thumb_func_start MOD47_02254D8C
+MOD47_02254D8C: ; 0x02254D8C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x10
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ add r6, r0, #0
+ str r2, [sp, #4]
+ mov r0, #8
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0x63
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r6, #0
+ add r0, #0x44
+ mov r1, #0xc
+ mov r2, #0x61
+ mov r3, #0x62
+ bl MOD20_02253FBC
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x44
+ ldr r4, _02254DF8 ; =0x02255410
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+_02254DC6:
+ ldr r0, [r6, #0x30]
+ ldr r2, [sp, #0xc]
+ add r1, r4, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x34]
+ add r7, r7, #1
+ add r4, #0x10
+ add r5, r5, #4
+ cmp r7, #4
+ blt _02254DC6
+ ldr r0, [r6, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r6, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r6, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ add sp, #0x10
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254DF8: .word 0x02255410
+ thumb_func_end MOD47_02254D8C
+
+ thumb_func_start MOD47_02254DFC
+MOD47_02254DFC: ; 0x02254DFC
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_02254E04:
+ ldr r1, [r5, #0x34]
+ cmp r1, #0
+ beq _02254E10
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02254E10:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #4
+ blt _02254E04
+ add r6, #0x44
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254DFC
+
+ thumb_func_start MOD47_02254E24
+MOD47_02254E24: ; 0x02254E24
+ 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, _02254E44 ; =0x02255450
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254E44: .word 0x02255450
+ thumb_func_end MOD47_02254E24
+
+ thumb_func_start MOD47_02254E48
+MOD47_02254E48: ; 0x02254E48
+ ldr r3, _02254E50 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254E50: .word MOD20_02253794
+ thumb_func_end MOD47_02254E48
+
+ thumb_func_start MOD47_02254E54
+MOD47_02254E54: ; 0x02254E54
+ ldr r3, _02254E5C ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254E5C: .word MOD20_022537B8
+ thumb_func_end MOD47_02254E54
+
+ thumb_func_start MOD47_02254E60
+MOD47_02254E60: ; 0x02254E60
+ 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 MOD47_02254E60
+
+ thumb_func_start MOD47_02254E74
+MOD47_02254E74: ; 0x02254E74
+ push {r4, r5, r6, lr}
+ sub sp, #0x18
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254F28 ; =0x022553F4
+ 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, #0x60
+ mov r3, #6
+ bl FUN_0200687C
+ add r4, r0, #0
+ 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, #0x5f
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ mov r3, #2
+ add r1, r5, #0
+ str r3, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0xb
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0x20
+ mov r2, #6
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x20
+ bl FUN_02019270
+ add r0, r5, #0
+ bl MOD47_022550FC
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254F2C ; =0x04001000
+ ldr r0, _02254F30 ; =0xFFFFE0FF
+ ldr r3, [r1]
+ ldr r2, [r1]
+ str r3, [sp, #0x14]
+ 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, r6, #0
+ bl MOD47_02254E60
+ add sp, #0x18
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254F28: .word 0x022553F4
+_02254F2C: .word 0x04001000
+_02254F30: .word 0xFFFFE0FF
+ thumb_func_end MOD47_02254E74
+
+ thumb_func_start MOD47_02254F34
+MOD47_02254F34: ; 0x02254F34
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, #0x20
+ bl FUN_02019178
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD47_02254F34
+
+ thumb_func_start MOD47_02254F58
+MOD47_02254F58: ; 0x02254F58
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ add r0, r4, #0
+ bl MOD47_022550FC
+ ldr r0, _02254F98 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254F98: .word 0x00000663
+ thumb_func_end MOD47_02254F58
+
+ thumb_func_start MOD47_02254F9C
+MOD47_02254F9C: ; 0x02254F9C
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ add r0, r4, #0
+ bl MOD47_02255184
+ ldr r0, _02254FE4 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254FE4: .word 0x00000663
+ thumb_func_end MOD47_02254F9C
+
+ thumb_func_start MOD47_02254FE8
+MOD47_02254FE8: ; 0x02254FE8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl MOD20_02253F28
+ add r0, r4, #0
+ bl MOD47_022551D8
+ ldr r0, _02255030 ; =0x0000066E
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255030: .word 0x0000066E
+ thumb_func_end MOD47_02254FE8
+
+ thumb_func_start MOD47_02255034
+MOD47_02255034: ; 0x02255034
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #2
+ bl MOD20_02253F28
+ add r0, r4, #0
+ bl MOD47_02255250
+ ldr r0, _0225507C ; =0x0000066E
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225507C: .word 0x0000066E
+ thumb_func_end MOD47_02255034
+
+ thumb_func_start MOD47_02255080
+MOD47_02255080: ; 0x02255080
+ 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
+ ldr r0, [r4, #0x34]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x3c]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r4, #0x40]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD47_022552D8
+ ldr r0, _022550D4 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r4, r5, r6, pc}
+ nop
+_022550D4: .word 0x00000663
+ thumb_func_end MOD47_02255080
+
+ thumb_func_start MOD47_022550D8
+MOD47_022550D8: ; 0x022550D8
+ 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 MOD47_022552D8
+ add r0, r5, #0
+ bl MOD47_02254E60
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD47_022550D8
+
+ thumb_func_start MOD47_022550FC
+MOD47_022550FC: ; 0x022550FC
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255180 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #0xa
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x38
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255180 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_02255180: .word 0x00010104
+ thumb_func_end MOD47_022550FC
+
+ thumb_func_start MOD47_02255184
+MOD47_02255184: ; 0x02255184
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #1
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x10
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022551D4 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022551D4: .word 0x00010104
+ thumb_func_end MOD47_02255184
+
+ thumb_func_start MOD47_022551D8
+MOD47_022551D8: ; 0x022551D8
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0225524C ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #3
+ bl FUN_0200A8E0
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _0225524C ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ mov r3, #0x10
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ .align 2, 0
+_0225524C: .word 0x00010104
+ thumb_func_end MOD47_022551D8
+
+ thumb_func_start MOD47_02255250
+MOD47_02255250: ; 0x02255250
+ push {r4, lr}
+ sub sp, #0x10
+ add r4, r0, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #2
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022552D4 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ ldr r0, [r4, #0x58]
+ ldr r2, [r4, #0x5c]
+ mov r1, #4
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r4, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002F08
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #0x18
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022552D4 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r4, #0
+ ldr r2, [r4, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ add r4, #0x20
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, pc}
+ nop
+_022552D4: .word 0x00010104
+ thumb_func_end MOD47_02255250
+
+ thumb_func_start MOD47_022552D8
+MOD47_022552D8: ; 0x022552D8
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ add r7, r1, #0
+ add r0, #0x20
+ mov r1, #4
+ bl FUN_02019620
+ ldr r0, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ mov r1, #5
+ bl FUN_0200A8E0
+ mov r0, #0
+ ldr r1, [r5, #0x5c]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0xc0
+ sub r0, r1, r0
+ lsr r3, r0, #1
+ mov r0, #8
+ str r0, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255398 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ add r0, r5, #0
+ ldr r2, [r5, #0x5c]
+ add r0, #0x20
+ bl FUN_0201BDE0
+ mov r0, #0
+ str r0, [sp, #0x10]
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x20
+ ldr r6, _0225539C ; =0x022553F0
+ mov r4, #0x20
+ str r0, [sp, #0x14]
+_0225532C:
+ ldrb r1, [r6]
+ ldr r0, [r5, #0x58]
+ ldr r2, [r5, #0x5c]
+ bl FUN_0200A8E0
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255398 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r5, #0x5c]
+ mov r3, #8
+ bl FUN_0201BDE0
+ mov r0, #1
+ str r0, [sp]
+ mov r2, #2
+ ldr r0, [r5, #0x5c]
+ ldr r1, [r7]
+ add r3, r2, #0
+ bl FUN_02021B04
+ str r4, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255398 ; =0x00010104
+ mov r1, #0
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ ldr r0, [sp, #0x14]
+ ldr r2, [r5, #0x5c]
+ mov r3, #0xa0
+ bl FUN_0201BDE0
+ ldr r0, [sp, #0x10]
+ add r6, r6, #1
+ add r0, r0, #1
+ add r4, #0x10
+ add r7, r7, #4
+ str r0, [sp, #0x10]
+ cmp r0, #4
+ blt _0225532C
+ add r5, #0x20
+ add r0, r5, #0
+ bl FUN_02019548
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255398: .word 0x00010104
+_0225539C: .word 0x022553F0
+ thumb_func_end MOD47_022552D8
+
+ .section .rodata
+ ; 0x022553A0
+ .incbin "baserom.nds", 0x297360, 0x11C
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_47.SINIT_START
+ .global SDK_OVERLAY.MODULE_47.SINIT_END
+SDK_OVERLAY.MODULE_47.SINIT_START:
+ .word MOD47_02254840
+ .word 0
+SDK_OVERLAY.MODULE_47.SINIT_END: