summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/arm9.lcf140
-rw-r--r--arm9/asm/OS_spinLock.s4
-rw-r--r--arm9/asm/filesystem.s140
-rw-r--r--arm9/asm/libcard.s2
-rw-r--r--arm9/asm/libctrdg.s8
-rw-r--r--arm9/asm/scrcmd.s66
-rw-r--r--arm9/asm/unk_02000E0C.s10
-rw-r--r--arm9/asm/unk_020023C0.s250
-rw-r--r--arm9/asm/unk_020061E8.s2
-rw-r--r--arm9/asm/unk_02038C78.s8
-rw-r--r--arm9/asm/unk_02046030.s860
-rw-r--r--arm9/asm/unk_0208AC14.s14
-rw-r--r--arm9/asm/unk_020910EC.s8
-rw-r--r--arm9/asm/unk_020AF030.s4
-rw-r--r--arm9/global.inc8
-rw-r--r--arm9/modules/01/src/module_01.cpp2
-rw-r--r--arm9/modules/13/asm/module_13_arm2.s14
-rw-r--r--arm9/modules/20/asm/module_20.s8
-rw-r--r--arm9/modules/29/asm/module_29.s10
-rw-r--r--arm9/modules/36/asm/module_36.s6
-rw-r--r--arm9/modules/37/asm/module_37.s681
-rw-r--r--arm9/modules/38/asm/module_38.s1193
-rw-r--r--arm9/modules/39/asm/module_39.s1457
-rw-r--r--arm9/modules/40/asm/module_40.s1417
-rw-r--r--arm9/modules/41/asm/module_41.s2032
-rw-r--r--arm9/src/main.c4
26 files changed, 7618 insertions, 730 deletions
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index 9af9503f..8883447f 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,16 +1604,28 @@ 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;
} >> MODULE_37
- .MODULE.38: {
+ .MODULE.38 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_38.START = .;
- FILE_290600.o (.text) /* 0x28C600 */
+ module_38.o (.text)
+ module_38.o (.rodata)
+ module_38.o (.init)
+ SDK_OVERLAY.MODULE_38.SINIT_START = .;
+ module_38.o (.ctor)
+ module_38.o (.sinit)
+ WRITEW 0;
+ SDK_OVERLAY.MODULE_38.SINIT_END = .;
+ . = ALIGN(32);
+ module_38.o (.sdata)
+ module_38.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_38.END = .;
SDK_OVERLAY.MODULE_38.SIZE = SDK_OVERLAY.MODULE_38.END - SDK_OVERLAY.MODULE_38.START;
@@ -1612,16 +1635,28 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_38.BSS_START = .;
- FILE_290600.o (.bss)
+ module_38.o (.sbss)
+ module_38.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_38.BSS_END = .;
SDK_OVERLAY.MODULE_38.BSS_SIZE = SDK_OVERLAY.MODULE_38.BSS_END - SDK_OVERLAY.MODULE_38.BSS_START;
} >> MODULE_38
- .MODULE.39: {
+ .MODULE.39 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_39.START = .;
- FILE_291200.o (.text) /* 0x28D200 */
+ module_39.o (.text)
+ module_39.o (.rodata)
+ module_39.o (.init)
+ // SDK_OVERLAY.MODULE_39.SINIT_START = .;
+ module_39.o (.ctor)
+ module_39.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_39.SINIT_END = .;
+ . = ALIGN(32);
+ module_39.o (.sdata)
+ module_39.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_39.END = .;
SDK_OVERLAY.MODULE_39.SIZE = SDK_OVERLAY.MODULE_39.END - SDK_OVERLAY.MODULE_39.START;
@@ -1631,16 +1666,28 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_39.BSS_START = .;
- FILE_291200.o (.bss)
+ module_39.o (.sbss)
+ module_39.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_39.BSS_END = .;
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;
@@ -1650,16 +1697,28 @@ 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;
} >> MODULE_40
- .MODULE.41: {
+ .MODULE.41 :
+ {
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_41.START = .;
- FILE_292E00.o (.text) /* 0x28EE00 */
+ module_41.o (.text)
+ module_41.o (.rodata)
+ module_41.o (.init)
+ // SDK_OVERLAY.MODULE_41.SINIT_START = .;
+ module_41.o (.ctor)
+ module_41.o (.sinit)
+ // WRITEW 0;
+ // SDK_OVERLAY.MODULE_41.SINIT_END = .;
+ . = ALIGN(32);
+ module_41.o (.sdata)
+ module_41.o (.data)
. = ALIGN(32);
SDK_OVERLAY.MODULE_41.END = .;
SDK_OVERLAY.MODULE_41.SIZE = SDK_OVERLAY.MODULE_41.END - SDK_OVERLAY.MODULE_41.START;
@@ -1669,7 +1728,8 @@ SECTIONS {
{
ALIGNALL(4); . = ALIGN(32);
SDK_OVERLAY.MODULE_41.BSS_START = .;
- FILE_292E00.o (.bss)
+ module_41.o (.sbss)
+ module_41.o (.bss)
. = ALIGN(32);
SDK_OVERLAY.MODULE_41.BSS_END = .;
SDK_OVERLAY.MODULE_41.BSS_SIZE = SDK_OVERLAY.MODULE_41.BSS_END - SDK_OVERLAY.MODULE_41.BSS_START;
@@ -2986,11 +3046,51 @@ SECTIONS {
WRITEW SDK_OVERLAY_MODULE_36_ID;
WRITEW 0;
- OVERLAY_TABLE(MODULE_37, 37)
- OVERLAY_TABLE(MODULE_38, 38)
- OVERLAY_TABLE(MODULE_39, 39)
- OVERLAY_TABLE(MODULE_40, 40)
- OVERLAY_TABLE(MODULE_41, 41)
+ 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;
+
+ WRITEW SDK_OVERLAY_MODULE_38_ID;
+ WRITEW SDK_OVERLAY.MODULE_38.START;
+ WRITEW SDK_OVERLAY.MODULE_38.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_38.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_38.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_38.SINIT_END;
+ WRITEW SDK_OVERLAY_MODULE_38_ID;
+ WRITEW 0;
+
+ WRITEW SDK_OVERLAY_MODULE_39_ID;
+ WRITEW SDK_OVERLAY.MODULE_39.START;
+ WRITEW SDK_OVERLAY.MODULE_39.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_39.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_39.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_39.SINIT_END;
+ WRITEW SDK_OVERLAY_MODULE_39_ID;
+ WRITEW 0;
+
+ 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;
+
+ WRITEW SDK_OVERLAY_MODULE_41_ID;
+ WRITEW SDK_OVERLAY.MODULE_41.START;
+ WRITEW SDK_OVERLAY.MODULE_41.SIZE;
+ WRITEW SDK_OVERLAY.MODULE_41.BSS_SIZE;
+ WRITEW SDK_OVERLAY.MODULE_41.SINIT_START;
+ WRITEW SDK_OVERLAY.MODULE_41.SINIT_END;
+ WRITEW SDK_OVERLAY_MODULE_41_ID;
+ WRITEW 0;
+
OVERLAY_TABLE(MODULE_42, 42)
OVERLAY_TABLE(MODULE_43, 43)
OVERLAY_TABLE(MODULE_44, 44)
diff --git a/arm9/asm/OS_spinLock.s b/arm9/asm/OS_spinLock.s
index 36ab2cf5..3137a69b 100644
--- a/arm9/asm/OS_spinLock.s
+++ b/arm9/asm/OS_spinLock.s
@@ -272,7 +272,7 @@ FUN_020CA358: ; 0x020CA358
mov r4, #0x400
_020CA380:
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
mov r0, r8
mov r1, r7
mov r2, r6
@@ -307,7 +307,7 @@ OS_InitLock: ; 0x020CA3AC
mov r4, #0x400
_020CA3FC:
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
ldrh r0, [r5, #0x6]
cmp r0, #0x0
bne _020CA3FC
diff --git a/arm9/asm/filesystem.s b/arm9/asm/filesystem.s
index 75af021d..a52f38b9 100644
--- a/arm9/asm/filesystem.s
+++ b/arm9/asm/filesystem.s
@@ -18,31 +18,31 @@ ReadNARCFile: ; 0x02006314
add r0, sp, #0x18
add r5, r2, #0x0
str r3, [sp, #0x4]
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -54,26 +54,26 @@ _0200637A:
add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
@@ -82,7 +82,7 @@ _0200637A:
add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020063D6
@@ -98,9 +98,9 @@ _020063E0:
ldr r1, [sp, #0x0]
ldr r2, [sp, #0x14]
add r0, sp, #0x18
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
- blx FS_CloseFile
+ bl FS_CloseFile
add sp, #0x60
pop {r3-r7, pc}
@@ -119,31 +119,31 @@ LoadFileIntoMemory: ; 0x020063F4
add r0, sp, #0x18
str r2, [sp, #0x0]
str r3, [sp, #0x4]
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x18
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0x8
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x8
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -155,26 +155,26 @@ _0200645A:
add r6, r4, r0
add r0, sp, #0x18
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x14
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x18
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0x14]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x18
add r1, sp, #0x10
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x10]
add r2, #0x8
@@ -183,7 +183,7 @@ _0200645A:
add r0, sp, #0x18
add r1, r1, r2
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r0, [sp, #0x78]
cmp r0, #0x0
bne _020064B6
@@ -212,9 +212,9 @@ _020064D8:
ldr r2, [sp, #0x14]
add r0, sp, #0x18
add r1, r4, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x18
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r4, #0x0
add sp, #0x60
pop {r3-r7, pc}
@@ -329,33 +329,33 @@ LoadFromNARC_7: ; 0x020065A4
add r0, sp, #0x0
strh r1, [r0, #0x0]
add r0, sp, #0x10
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _0200666C ; =0x021058A0
lsl r2, r4, #0x2
ldr r1, [r1, r2]
add r0, sp, #0x10
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x10
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r4, [sp, #0xc]
add r0, sp, #0x10
add r1, r4, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x0
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
cmp r0, r5
@@ -367,33 +367,33 @@ _0200660A:
add r6, r4, r0
add r0, sp, #0x10
add r1, r6, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0xc
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r4, #0xc
lsl r1, r5, #0x3
add r0, sp, #0x10
add r1, r4, r1
mov r2, #0x0
ldr r7, [sp, #0xc]
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x10
add r1, sp, #0x8
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x10
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r2, r6, r7
ldr r1, [sp, #0x8]
add r2, #0x8
add r1, r2, r1
add r0, sp, #0x10
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r1, [sp, #0x4]
ldr r0, [sp, #0x8]
sub r0, r1, r0
@@ -418,46 +418,46 @@ FUN_02006670: ; 0x02006670
beq _020066EC
mov r1, #0x0
str r1, [r4, #0x48]
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _020066F0 ; =0x021058A0
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, r4, #0x0
mov r1, #0xc
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x48
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [r4, #0x48]
add r0, r4, #0x0
add r1, r1, #0x4
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r1, r4, #0x0
add r0, r4, #0x0
add r1, #0x50
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [r4, #0x48]
ldr r0, [sp, #0x0]
mov r2, #0x0
add r5, r1, r0
add r0, r4, #0x0
add r1, r5, #0x4
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r4, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r0, [sp, #0x0]
add r0, r5, r0
str r0, [r4, #0x4c]
@@ -471,7 +471,7 @@ _020066F0: .word 0x021058A0
FUN_020066F4: ; 0x020066F4
push {r4, lr}
add r4, r0, #0x0
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -495,22 +495,22 @@ _0200671A:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r2, [sp, #0x0]
ldr r1, [sp, #0x4]
add r0, r6, #0x0
@@ -523,7 +523,7 @@ _0200671A:
add r0, r5, #0x0
add r1, r4, #0x0
sub r2, r3, r2
- blx FS_ReadFile
+ bl FS_ReadFile
_0200676C:
add r0, r4, #0x0
add sp, #0x8
@@ -549,28 +549,28 @@ _0200678A:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x4]
add r2, #0x8
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r3, [sp, #0x0]
ldr r2, [sp, #0x4]
add r0, r5, #0x0
add r1, r6, #0x0
sub r2, r3, r2
- blx FS_ReadFile
+ bl FS_ReadFile
add sp, #0x8
pop {r4-r6, pc}
@@ -592,15 +592,15 @@ _020067E4:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x4
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r1, [sp, #0x0]
ldr r0, [sp, #0x4]
sub r0, r1, r0
@@ -627,11 +627,11 @@ _0200682A:
add r1, r2, r1
add r0, r5, #0x0
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, r5, #0x0
add r1, sp, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldr r2, [r5, #0x4c]
ldr r1, [sp, #0x0]
add r2, #0x8
@@ -639,10 +639,10 @@ _0200682A:
add r0, r5, #0x0
add r1, r6, r1
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
ldr r1, [sp, #0x18]
add r0, r5, #0x0
add r2, r7, #0x0
- blx FS_ReadFile
+ bl FS_ReadFile
pop {r3-r7, pc}
.balign 4
diff --git a/arm9/asm/libcard.s b/arm9/asm/libcard.s
index 959c6f64..1eb74e0d 100644
--- a/arm9/asm/libcard.s
+++ b/arm9/asm/libcard.s
@@ -1637,7 +1637,7 @@ _020D7BEC: ; 0x020D7BEC
mov r4, #0x0
_020D7C04:
mov r0, r6
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
mov r0, r5
mov r1, r7
mov r2, r4
diff --git a/arm9/asm/libctrdg.s b/arm9/asm/libctrdg.s
index 301ea233..6d8cf4a5 100644
--- a/arm9/asm/libctrdg.s
+++ b/arm9/asm/libctrdg.s
@@ -333,7 +333,7 @@ _020DB520: ; 0x020DB520
mov r4, #0x0
_020DB53C:
mov r0, r6
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
mov r0, r5
mov r1, r7
mov r2, r4
@@ -389,7 +389,7 @@ _020DB5DC: ; 0x020DB5DC
ldr r0, [r6, #0x4]
bl OS_RestoreInterrupts
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _020DB5A8
_020DB600: ; 0x020DB600
add sp, sp, #0x4
@@ -666,7 +666,7 @@ CTRDGi_InitCommon: ; 0x020DB938
ldr r2, _020DB974 ; =0x05000001
add r0, sp, #0x0
str r3, [sp, #0x0]
- blx FUN_020002FE
+ bl FUN_020002FE
bl OS_GetLockID
ldr r1, _020DB970 ; =0x021D6944
strh r0, [r1, #0x2]
@@ -872,7 +872,7 @@ _020DBBDC:
mov r7, #0x1
_020DBC1C:
mov r0, r7
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
ldrh r0, [r5, #0x0]
cmp r0, #0x1
bne _020DBC1C
diff --git a/arm9/asm/scrcmd.s b/arm9/asm/scrcmd.s
index d75850de..c431328a 100644
--- a/arm9/asm/scrcmd.s
+++ b/arm9/asm/scrcmd.s
@@ -3669,56 +3669,56 @@ FUN_0203B640: ; 0x0203B640
cmp r7, #0x0
beq _0203B696
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6A4
_0203B696:
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6A4:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x0]
cmp r6, #0x0
beq _0203B6C0
lsl r0, r6, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6CE
_0203B6C0:
lsl r0, r6, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6CE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4]
cmp r4, #0x0
beq _0203B6EA
lsl r0, r4, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _0203B6F8
_0203B6EA:
lsl r0, r4, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_0203B6F8:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x8]
add r0, r5, #0x0
add r0, #0x80
@@ -5134,7 +5134,7 @@ FUN_0203C200: ; 0x0203C200
mov r2, #0x8
str r0, [r6, #0x0]
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
strh r7, [r4, #0x4]
strh r0, [r4, #0x6]
@@ -8812,7 +8812,7 @@ FUN_0203DFA8: ; 0x0203DFA8
add r5, r0, #0x0
bl FUN_0201B9EC
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -8837,7 +8837,7 @@ FUN_0203DFE0: ; 0x0203DFE0
add r5, r0, #0x0
bl FUN_0201B9EC
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
strh r1, [r4, #0x0]
mov r0, #0x1
pop {r3-r5, pc}
@@ -9765,7 +9765,7 @@ FUN_0203E774: ; 0x0203E774
add r4, r0, #0x0
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r6, r0, #0x10
ldr r0, [sp, #0x0]
@@ -11059,7 +11059,7 @@ _0203F1E0:
_0203F1F8:
bl FUN_0201B9EC
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
mov r4, #0x0
add r2, sp, #0x4
_0203F206:
@@ -11485,7 +11485,7 @@ _0203F54C:
_0203F556:
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x19
bge _0203F568
ldr r7, _0203F5CC ; =0x0000010D
@@ -11493,7 +11493,7 @@ _0203F556:
_0203F568:
bl FUN_0201B9EC
mov r1, #0x6
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r1, r0, #0x10
mov r0, #0x6
@@ -11900,7 +11900,7 @@ FUN_0203F880: ; 0x0203F880
_0203F8A2:
bl FUN_0201B9EC
mov r1, #0x65
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, r4
@@ -13994,11 +13994,11 @@ FUN_02040964: ; 0x02040964
bl FUN_020394F0
add r5, r0, #0x0
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
add r7, r0, #0x0
add r0, r5, #0x0
mov r1, #0x1e
- blx _s32_div_f
+ bl _s32_div_f
add r2, r1, #0x0
ldr r0, [sp, #0x0]
add r1, r7, #0x0
@@ -15183,14 +15183,14 @@ FUN_02041354: ; 0x02041354
_02041360:
add r0, r5, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r1, [sp, #0x0]
str r0, [sp, #0x4]
add r0, r4, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
str r0, [sp, #0x8]
@@ -15199,12 +15199,12 @@ _02041360:
bne _020413AC
add r0, r5, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
add r0, r4, #0x0
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
add r0, r6, #0x1
@@ -17741,7 +17741,7 @@ FUN_020427D0: ; 0x020427D0
ldr r0, _0204285C ; =0x00000884
mov r2, #0x46
add r0, r6, r0
- blx MI_CpuFill8
+ bl MI_CpuFill8
cmp r4, #0x0
beq _0204281E
cmp r4, #0x1
@@ -18698,7 +18698,7 @@ FUN_02042F6C: ; 0x02042F6C
add r2, r7, #0x0
bl FUN_020671BC
add r6, r0, #0x0
- blx OS_GetTick
+ bl OS_GetTick
bl FUN_0201BA10
add r1, r0, #0x0
ldr r0, [sp, #0x14]
@@ -20914,7 +20914,7 @@ FUN_02044198: ; 0x02044198
add r5, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r0, r0, #0x10
cmp r0, #0xf
@@ -21824,7 +21824,7 @@ FUN_020448D4: ; 0x020448D4
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
_0204495A:
diff --git a/arm9/asm/unk_02000E0C.s b/arm9/asm/unk_02000E0C.s
index b13ce736..15275ac8 100644
--- a/arm9/asm/unk_02000E0C.s
+++ b/arm9/asm/unk_02000E0C.s
@@ -1962,7 +1962,7 @@ _02001ECE:
ldrb r4, [r5, #0x15]
add r1, r6, #0x0
add r0, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02001EF2
ldrb r0, [r5, #0xb]
@@ -1994,7 +1994,7 @@ _02001F08:
ldrb r6, [r5, #0x15]
sub r4, r1, #0x1
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
cmp r4, r1
bne _02001F2A
ldrb r0, [r5, #0xb]
@@ -2064,7 +2064,7 @@ _02001F72:
mov r0, #0x0
pop {r4-r6, pc}
_02001F8A:
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x18
asr r2, r0, #0x18
b _02001F9A
@@ -2234,7 +2234,7 @@ FUN_020020B0: ; 0x020020B0
ldrb r1, [r5, #0xa]
add r0, r7, #0x0
add r6, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldrb r2, [r5, #0x19]
ldrb r1, [r5, #0x16]
lsl r2, r2, #0x1
@@ -2243,7 +2243,7 @@ FUN_020020B0: ; 0x020020B0
strb r1, [r4, #0x0]
ldrb r1, [r5, #0xa]
add r0, r7, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldrb r2, [r5, #0xb]
ldrb r3, [r5, #0x1a]
ldrb r0, [r5, #0x18]
diff --git a/arm9/asm/unk_020023C0.s b/arm9/asm/unk_020023C0.s
index 0e8dfbdf..3295bcc9 100644
--- a/arm9/asm/unk_020023C0.s
+++ b/arm9/asm/unk_020023C0.s
@@ -1631,7 +1631,7 @@ FUN_02002FD0: ; 0x02002FD0
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -1710,13 +1710,13 @@ FUN_02003054: ; 0x02003054
lsl r4, r3, #0x1
add r1, r1, r4
add r2, r7, #0x0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r1, r5, r6
ldr r1, [r1, #0x4]
ldr r0, [sp, #0x0]
add r1, r1, r4
add r2, r7, #0x0
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
pop {r3-r7, pc}
.balign 4
@@ -1876,7 +1876,7 @@ _0200319A:
lsl r0, r0, #0x1
add r0, r1, r0
ldr r1, [sp, #0x14]
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add r0, r4, #0x0
bl FUN_02016A18
pop {r3-r5, pc}
@@ -1904,7 +1904,7 @@ FUN_020031B8: ; 0x020031B8
ldr r1, [r5, r6]
add r0, r0, r4
add r1, r1, r7
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
ldr r0, [sp, #0x4]
add r1, r5, r6
ldr r0, [r5, r0]
@@ -1912,7 +1912,7 @@ FUN_020031B8: ; 0x020031B8
ldr r2, [sp, #0x0]
add r0, r0, r4
add r1, r1, r7
- blx MIi_CpuCopy16
+ bl MIi_CpuCopy16
add sp, #0x8
pop {r3-r7, pc}
.balign 4
@@ -2156,7 +2156,7 @@ FUN_020033A4: ; 0x020033A4
cmp r2, #0x0
bge _020033D4
add r0, r2, #0x0
- blx abs
+ bl abs
add r0, r0, #0x2
ldrh r1, [r5, #0x6]
mov r2, #0xf
@@ -2659,7 +2659,7 @@ _02003750:
_02003770:
ldr r0, [r4, #0x4]
ldr r1, [r4, #0x8]
- blx DC_FlushRange
+ bl DC_FlushRange
cmp r5, #0xd
bls _0200377E
_0200377C:
@@ -2690,109 +2690,109 @@ _020037A6:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadBGPltt
+ bl GX_LoadBGPltt
b _020038A4
_020037B2:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadBGPltt
+ bl GXS_LoadBGPltt
b _020038A4
_020037BE:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
b _020038A4
_020037CA:
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
b _020038A4
_020037D6:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_020037EA:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
add r1, r7, #0x0
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_020037FE:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
mov r1, #0x1
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xe
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_02003814:
- blx GX_BeginLoadBGExtPltt
+ bl GX_BeginLoadBGExtPltt
mov r1, #0x6
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xc
- blx GX_LoadBGExtPltt
- blx GX_EndLoadBGExtPltt
+ bl GX_LoadBGExtPltt
+ bl GX_EndLoadBGExtPltt
b _020038A4
_0200382A:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_0200383E:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
add r1, r7, #0x0
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_02003852:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
mov r1, #0x1
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xe
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_02003868:
- blx GXS_BeginLoadBGExtPltt
+ bl GXS_BeginLoadBGExtPltt
mov r1, #0x6
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
lsl r1, r1, #0xc
- blx GXS_LoadBGExtPltt
- blx GXS_EndLoadBGExtPltt
+ bl GXS_LoadBGExtPltt
+ bl GXS_EndLoadBGExtPltt
b _020038A4
_0200387E:
- blx GX_BeginLoadOBJExtPltt
+ bl GX_BeginLoadOBJExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GX_LoadOBJExtPltt
- blx GX_EndLoadOBJExtPltt
+ bl GX_LoadOBJExtPltt
+ bl GX_EndLoadOBJExtPltt
b _020038A4
_02003892:
- blx GXS_BeginLoadOBJExtPltt
+ bl GXS_BeginLoadOBJExtPltt
ldr r0, [r4, #0x4]
ldr r2, [r4, #0x8]
mov r1, #0x0
- blx GXS_LoadOBJExtPltt
- blx GXS_EndLoadOBJExtPltt
+ bl GXS_LoadOBJExtPltt
+ bl GXS_EndLoadOBJExtPltt
_020038A4:
add r5, r5, #0x1
add r4, #0x14
@@ -2887,7 +2887,7 @@ _0200393A:
ldr r0, [sp, #0x0]
sub r2, r2, r5
lsl r2, r2, #0x1
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
_02003952:
cmp r7, #0x0
beq _0200395A
@@ -2902,7 +2902,7 @@ _0200395A:
ldr r0, [sp, #0x0]
sub r2, r2, r5
lsl r2, r2, #0x1
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
_0200396E:
add sp, #0x8
pop {r3-r7, pc}
@@ -3216,14 +3216,14 @@ FUN_02003B98: ; 0x02003B98
add r6, r1, #0x0
bl FUN_02003D30
add r4, r0, #0x0
- blx FUN_020C01D0
+ bl FUN_020C01D0
bl FUN_020040C8
add r0, r4, #0x0
bl FUN_02004064
add r0, r4, #0x0
ldr r1, _02003C00 ; =0x000BBC00
add r0, #0x94
- blx FUN_020C2A94
+ bl FUN_020C2A94
add r1, r4, #0x0
add r1, #0x90
str r0, [r1, #0x0]
@@ -3233,11 +3233,11 @@ FUN_02003B98: ; 0x02003B98
ldr r2, [r2, #0x0]
add r0, r4, #0x0
mov r3, #0x0
- blx FUN_020C26F8
+ bl FUN_020C26F8
add r0, r4, #0x0
add r0, #0x90
ldr r0, [r0, #0x0]
- blx FUN_020C39CC
+ bl FUN_020C39CC
add r0, r4, #0x0
bl FUN_02004088
add r0, r4, #0x0
@@ -3276,7 +3276,7 @@ _02003C2C:
bl FUN_02003C40
_02003C30:
bl FUN_02005CFC
- blx FUN_020C01A0
+ bl FUN_020C01A0
pop {r4, pc}
nop
_02003C3C: .word 0x000BCD00
@@ -3672,7 +3672,7 @@ FUN_02003F3C: ; 0x02003F3C
bl FUN_02003D30
add r0, #0x90
ldr r0, [r0, #0x0]
- blx FUN_020C290C
+ bl FUN_020C290C
add r4, r0, #0x0
mov r0, #0x0
mvn r0, r0
@@ -3695,7 +3695,7 @@ FUN_02003F64: ; 0x02003F64
add r0, #0x90
ldr r0, [r0, #0x0]
add r1, r4, #0x0
- blx FUN_020C2828
+ bl FUN_020C2828
pop {r4, pc}
thumb_func_start FUN_02003F78
@@ -3707,7 +3707,7 @@ FUN_02003F78: ; 0x02003F78
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C36A8
+ bl FUN_020C36A8
pop {r4, pc}
.balign 4
@@ -3720,7 +3720,7 @@ FUN_02003F90: ; 0x02003F90
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C3674
+ bl FUN_020C3674
pop {r4, pc}
.balign 4
@@ -3735,7 +3735,7 @@ FUN_02003FA8: ; 0x02003FA8
ldr r2, [r2, #0x0]
add r0, r5, #0x0
add r1, r4, #0x0
- blx FUN_020C35E0
+ bl FUN_020C35E0
pop {r3-r5, pc}
.balign 4
@@ -3748,7 +3748,7 @@ FUN_02003FC4: ; 0x02003FC4
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C360C
+ bl FUN_020C360C
pop {r4, pc}
.balign 4
@@ -3761,7 +3761,7 @@ FUN_02003FDC: ; 0x02003FDC
add r1, #0x90
ldr r1, [r1, #0x0]
add r0, r4, #0x0
- blx FUN_020C3640
+ bl FUN_020C3640
pop {r4, pc}
.balign 4
@@ -3840,7 +3840,7 @@ FUN_02004064: ; 0x02004064
ldr r2, _02004080 ; =0x000BCD60
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02004084 ; =0x000BCD1C
mov r1, #0x0
_02004074:
@@ -3862,7 +3862,7 @@ FUN_02004088: ; 0x02004088
add r5, r0, r1
_02004090:
add r0, r5, #0x0
- blx FUN_020C0F80
+ bl FUN_020C0F80
add r4, r4, #0x1
add r5, r5, #0x4
cmp r4, #0x9
@@ -3891,11 +3891,11 @@ _020040C4: .word 0x000BCD20
thumb_func_start FUN_020040C8
FUN_020040C8: ; 0x020040C8
push {r3, lr}
- blx MIC_Init
+ bl MIC_Init
mov r0, #0x1
- blx PM_SetAmp
+ bl PM_SetAmp
mov r0, #0x2
- blx PM_SetAmpGain
+ bl PM_SetAmpGain
pop {r3, pc}
thumb_func_start FUN_020040DC
@@ -3903,10 +3903,10 @@ FUN_020040DC: ; 0x020040DC
push {r3, lr}
mov r0, #0x7
mov r1, #0x0
- blx FUN_020C1040
+ bl FUN_020C1040
mov r0, #0x7
bl FUN_02003FF4
- blx FUN_020C0F68
+ bl FUN_020C0F68
pop {r3, pc}
.balign 4
@@ -4814,7 +4814,7 @@ _02004800:
add r0, r4, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C0F8C
+ bl FUN_020C0F8C
strb r5, [r6, #0x0]
_0200480E:
pop {r4-r6, pc}
@@ -4840,7 +4840,7 @@ FUN_02004828: ; 0x02004828
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0EF4
+ bl FUN_020C0EF4
pop {r3-r5, pc}
thumb_func_start FUN_0200483C
@@ -4856,7 +4856,7 @@ _02004844:
_0200484A:
bl FUN_02003FF4
add r1, r4, #0x0
- blx FUN_020C0F30
+ bl FUN_020C0F30
pop {r4, pc}
.balign 4
@@ -4864,7 +4864,7 @@ _0200484A:
FUN_02004858: ; 0x02004858
push {r3-r5, lr}
add r5, r1, #0x0
- blx FUN_020C23FC
+ bl FUN_020C23FC
cmp r5, #0x1
beq _02004868
cmp r5, #0x8
@@ -4882,7 +4882,7 @@ _02004872:
bne _0200488A
add r0, r4, #0x0
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r0, r5, #0x0
bl FUN_0200483C
@@ -4910,7 +4910,7 @@ FUN_020048A0: ; 0x020048A0
add r1, r5, #0x0
add r3, r2, #0x0
str r4, [sp, #0x0]
- blx FUN_020C3910
+ bl FUN_020C3910
pop {r3-r5, pc}
.balign 4
@@ -4922,7 +4922,7 @@ FUN_020048BC: ; 0x020048BC
bl ErrorHandling
_020048C6:
add r0, r4, #0x0
- blx FUN_020C0F50
+ bl FUN_020C0F50
pop {r4, pc}
.balign 4
@@ -4934,7 +4934,7 @@ FUN_020048D0: ; 0x020048D0
mov r0, #0xff
pop {r3, pc}
_020048DA:
- blx FUN_020C23FC
+ bl FUN_020C23FC
cmp r0, #0x0
bne _020048E6
mov r0, #0xff
@@ -4955,13 +4955,13 @@ _020048F0: .word FUN_020C0E14
FUN_020048F4: ; 0x020048F4
push {r3, lr}
bl FUN_02004900
- blx FUN_020C22D0
+ bl FUN_020C22D0
pop {r3, pc}
thumb_func_start FUN_02004900
FUN_02004900: ; 0x02004900
push {r3, lr}
- blx FUN_020C23FC
+ bl FUN_020C23FC
cmp r0, #0x0
bne _0200490E
mov r0, #0x0
@@ -4982,13 +4982,13 @@ _02004918: .word MIC_StartAutoSampling
FUN_0200491C: ; 0x0200491C
push {r3, lr}
bl FUN_02003D30
- blx MIC_StopAutoSampling
+ bl MIC_StopAutoSampling
pop {r3, pc}
thumb_func_start FUN_02004928
FUN_02004928: ; 0x02004928
push {r3, lr}
- blx MIC_DoSamplingAsync
+ bl MIC_DoSamplingAsync
pop {r3, pc}
thumb_func_start FUN_02004930
@@ -5058,7 +5058,7 @@ _020049A8:
bl FUN_02003D38
add r4, r0, #0x0
add r0, r5, #0x0
- blx FUN_020C0688
+ bl FUN_020C0688
str r0, [r4, #0x0]
cmp r0, #0x0
bne _020049CA
@@ -5079,7 +5079,7 @@ _020049D6:
bl FUN_02003D38
add r6, r0, #0x0
add r0, r5, #0x0
- blx FUN_020C0688
+ bl FUN_020C0688
str r0, [r6, #0x0]
cmp r0, #0x0
bne _020049F4
@@ -5122,7 +5122,7 @@ _02004A2A:
add r0, r5, #0x0
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C0670
+ bl FUN_020C0670
mov r0, #0x0
strb r0, [r6, #0x0]
pop {r4-r6, pc}
@@ -5136,7 +5136,7 @@ _02004A4C:
add r0, r5, #0x0
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C0670
+ bl FUN_020C0670
mov r0, #0x0
strb r0, [r4, #0x0]
pop {r4-r6, pc}
@@ -5168,7 +5168,7 @@ FUN_02004A6C: ; 0x02004A6C
ldr r2, [r3, #0x8]
ldr r0, [r0, #0x0]
ldr r3, [r3, #0xc]
- blx FUN_020C054C
+ bl FUN_020C054C
add r5, r0, #0x0
bne _02004AA4
add r0, r4, #0x0
@@ -5184,7 +5184,7 @@ FUN_02004AAC: ; 0x02004AAC
push {r3, lr}
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C0510
+ bl FUN_020C0510
pop {r3, pc}
.balign 4
@@ -5193,7 +5193,7 @@ FUN_02004ABC: ; 0x02004ABC
push {r3, lr}
bl FUN_02004930
ldr r0, [r0, #0x0]
- blx FUN_020C03B8
+ bl FUN_020C03B8
pop {r3, pc}
.balign 4
@@ -5208,7 +5208,7 @@ _02004AD6:
bl FUN_02004930
ldr r0, [r0, #0x0]
add r1, r4, #0x0
- blx FUN_020C041C
+ bl FUN_020C041C
pop {r4, pc}
thumb_func_start FUN_02004AE4
@@ -5218,7 +5218,7 @@ FUN_02004AE4: ; 0x02004AE4
bl FUN_02004930
ldr r0, [r0, #0x0]
add r1, r4, #0x0
- blx FUN_020C044C
+ bl FUN_020C044C
pop {r4, pc}
.balign 4
@@ -5235,17 +5235,17 @@ FUN_02004AF8: ; 0x02004AF8
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
ldr r0, [r4, #0x0]
- blx FUN_020C04DC
+ bl FUN_020C04DC
pop {r3-r5, pc}
_02004B20:
add r0, r4, #0x0
bl FUN_02004930
ldr r0, [r0, #0x0]
add r1, r5, #0x0
- blx FUN_020C04DC
+ bl FUN_020C04DC
pop {r3-r5, pc}
thumb_func_start FUN_02004B30
@@ -5267,7 +5267,7 @@ FUN_02004B30: ; 0x02004B30
bl ErrorHandling
_02004B54:
add r0, r6, #0x0
- blx FUN_020C226C
+ bl FUN_020C226C
add r7, r0, #0x0
bne _02004B68
bl ErrorHandling
@@ -5278,7 +5278,7 @@ _02004B68:
ldr r0, [r7, #0x0]
lsl r0, r0, #0x8
lsr r0, r0, #0x8
- blx FUN_020C217C
+ bl FUN_020C217C
add r6, r0, #0x0
bne _02004B80
bl ErrorHandling
@@ -5301,14 +5301,14 @@ _02004B80:
_02004B9C:
mov r1, #0x0
add r2, r6, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r7, #0x0]
ldr r1, [r4, #0x0]
lsl r0, r0, #0x8
lsr r0, r0, #0x8
add r2, r6, #0x0
mov r3, #0x0
- blx FUN_020C2104
+ bl FUN_020C2104
mov r1, #0x0
mvn r1, r1
cmp r0, r1
@@ -5429,7 +5429,7 @@ FUN_02004C80: ; 0x02004C80
mov r2, #0x0
lsl r3, r3, #0x6
str r4, [sp, #0x0]
- blx FUN_020C1FF0
+ bl FUN_020C1FF0
add sp, #0x4
pop {r3-r4, pc}
@@ -5456,7 +5456,7 @@ FUN_02004CB4: ; 0x02004CB4
bl FUN_02003D38
mov r1, #0x0
mov r2, #0x1c
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x3
bl FUN_02003D38
add r4, r0, #0x0
@@ -5471,7 +5471,7 @@ FUN_02004CB4: ; 0x02004CB4
ldr r3, _02004CF8 ; =0x000055F0
add r0, r4, #0x0
mov r2, #0x0
- blx FUN_020C1EA4
+ bl FUN_020C1EA4
add sp, #0xc
pop {r3-r4, pc}
nop
@@ -5511,7 +5511,7 @@ FUN_02004D20: ; 0x02004D20
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0EA4
+ bl FUN_020C0EA4
pop {r3-r5, pc}
thumb_func_start FUN_02004D34
@@ -5534,14 +5534,14 @@ FUN_02004D4C: ; 0x02004D4C
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0E7C
+ bl FUN_020C0E7C
pop {r3-r5, pc}
thumb_func_start FUN_02004D60
FUN_02004D60: ; 0x02004D60
push {r4, lr}
add r4, r0, #0x0
- blx FUN_020C0174
+ bl FUN_020C0174
ldr r0, _02004D70 ; =0x021C3DD8
str r4, [r0, #0x0]
pop {r4, pc}
@@ -5758,7 +5758,7 @@ FUN_02004ED0: ; 0x02004ED0
_02004EF0:
mov r0, #0x1
_02004EF2:
- blx FUN_020C226C
+ bl FUN_020C226C
cmp r0, #0x0
bne _02004F02
bl ErrorHandling
@@ -5768,7 +5768,7 @@ _02004F02:
ldr r0, [r0, #0x0]
lsl r0, r0, #0x8
lsr r0, r0, #0x8
- blx FUN_020C20DC
+ bl FUN_020C20DC
cmp r0, #0x0
bne _02004F18
bl ErrorHandling
@@ -5776,7 +5776,7 @@ _02004F02:
pop {r3-r5, pc}
_02004F18:
mov r1, #0x0
- blx SND_GetWaveDataAddress
+ bl SND_GetWaveDataAddress
str r0, [r4, #0x0]
pop {r3-r5, pc}
nop
@@ -5794,11 +5794,11 @@ FUN_02004F28: ; 0x02004F28
add r0, r6, #0x0
lsl r1, r1, #0x8
ldr r5, [r5, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r0, #0x1
bpl _02004F50
mov r0, #0x20
- blx _s32_div_f
+ bl _s32_div_f
neg r0, r0
b _02004F5A
_02004F50:
@@ -5820,7 +5820,7 @@ _02004F62:
FUN_02004F64: ; 0x02004F64
push {r3, lr}
bl FUN_02003FF4
- blx FUN_020C0DD4
+ bl FUN_020C0DD4
pop {r3, pc}
thumb_func_start FUN_02004F70
@@ -6043,7 +6043,7 @@ _020050D8:
blt _020050D8
_020050E6:
add r1, r2, #0x0
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x8]
strh r0, [r1, #0x0]
mov r0, #0x0
@@ -6060,7 +6060,7 @@ _020050FA:
cmp r2, r1
blt _020050FA
_02005108:
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, [sp, #0x4]
sub r4, r4, #0x1
strh r0, [r1, #0x0]
@@ -6097,10 +6097,10 @@ _02005130:
_0200514A:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, [sp, #0x0]
add r0, r6, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
_0200515A:
add sp, #0x30
pop {r3-r7, pc}
@@ -6188,7 +6188,7 @@ FUN_020051F4: ; 0x020051F4
add r4, r0, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -6266,7 +6266,7 @@ FUN_02005288: ; 0x02005288
add r0, r4, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
pop {r3-r5, pc}
.balign 4
@@ -6299,7 +6299,7 @@ FUN_020052B8: ; 0x020052B8
add r0, r6, #0x0
add r3, r1, #0x0
str r5, [sp, #0x0]
- blx FUN_020C3910
+ bl FUN_020C3910
add sp, #0x4
pop {r3-r6, pc}
.balign 4
@@ -6328,7 +6328,7 @@ _0200532A:
mov r0, #0x7
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r4, r0, #0x0
add r0, r5, #0x0
bl FUN_02004110
@@ -6341,14 +6341,14 @@ _0200532A:
FUN_02005350: ; 0x02005350
push {r4, lr}
add r4, r0, #0x0
- blx FUN_020C0FDC
+ bl FUN_020C0FDC
add r0, r4, #0x0
bl FUN_020048D0
cmp r0, #0xff
beq _0200536E
bl FUN_02004018
bl FUN_02003FF4
- blx FUN_020C0F68
+ bl FUN_020C0F68
_0200536E:
bl FUN_02005374
pop {r4, pc}
@@ -6446,7 +6446,7 @@ FUN_0200541C: ; 0x0200541C
bl FUN_02003D38
add r4, r0, #0x0
mov r0, #0x0
- blx FUN_020C0F9C
+ bl FUN_020C0F9C
ldrb r0, [r5, #0x0]
cmp r0, #0x1
bne _02005440
@@ -6475,7 +6475,7 @@ FUN_02005454: ; 0x02005454
mov r0, #0x7
bl FUN_02003FF4
mov r1, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
bl FUN_02005374
mov r5, #0x0
add r4, r5, #0x0
@@ -6527,7 +6527,7 @@ FUN_020054C8: ; 0x020054C8
add r4, r0, #0x0
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r6, r0, #0x0
add r0, r5, #0x0
add r1, r4, #0x0
@@ -6549,7 +6549,7 @@ FUN_020054F8: ; 0x020054F8
add r4, r1, #0x0
bl FUN_02003FF4
add r1, r4, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
pop {r4, pc}
thumb_func_start FUN_02005508
@@ -6587,7 +6587,7 @@ FUN_02005530: ; 0x02005530
bl FUN_02003FF4
add r1, r5, #0x0
add r2, r4, #0x0
- blx FUN_020C0E7C
+ bl FUN_020C0E7C
pop {r3-r5, pc}
thumb_func_start FUN_0200554C
@@ -6604,7 +6604,7 @@ _0200555C:
bl FUN_02003FF4
add r1, r7, #0x0
add r2, r6, #0x0
- blx FUN_020C0E7C
+ bl FUN_020C0E7C
add r5, r5, #0x1
cmp r5, #0x4
blt _0200555C
@@ -6659,7 +6659,7 @@ _020055BC:
sub r1, r1, #0x3
add r2, r5, #0x0
add r3, r1, #0x0
- blx FUN_020C3910
+ bl FUN_020C3910
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x1
@@ -6673,7 +6673,7 @@ _020055E8:
sub r1, r1, #0x3
add r2, r5, #0x0
add r3, r1, #0x0
- blx FUN_020C3910
+ bl FUN_020C3910
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x8
@@ -6701,11 +6701,11 @@ FUN_02005614: ; 0x02005614
mov r0, #0x1
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
mov r0, #0x8
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
ldrb r0, [r6, #0x0]
cmp r0, #0x1
bne _02005658
@@ -7415,7 +7415,7 @@ _02005C48:
mov r0, #0x2
bl FUN_02003FF4
add r1, r5, #0x0
- blx FUN_020C3980
+ bl FUN_020C3980
add r4, r0, #0x0
add r0, r5, #0x0
mov r1, #0x2
@@ -7455,7 +7455,7 @@ FUN_02005CA0: ; 0x02005CA0
mov r0, #0x2
bl FUN_02003FF4
add r1, r4, #0x0
- blx FUN_020C10A4
+ bl FUN_020C10A4
mov r0, #0x6
bl FUN_02004748
bl FUN_02003F64
diff --git a/arm9/asm/unk_020061E8.s b/arm9/asm/unk_020061E8.s
index 3b8df8d6..a3c6d702 100644
--- a/arm9/asm/unk_020061E8.s
+++ b/arm9/asm/unk_020061E8.s
@@ -19,7 +19,7 @@ FUN_020061E8: ; 0x020061E8
_02006202:
mov r1, #0x0
add r2, r5, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
b _0200620E
_0200620C:
mov r4, #0x0
diff --git a/arm9/asm/unk_02038C78.s b/arm9/asm/unk_02038C78.s
index 785e5b48..dadbc8aa 100644
--- a/arm9/asm/unk_02038C78.s
+++ b/arm9/asm/unk_02038C78.s
@@ -224,7 +224,7 @@ _02038E32:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0xdc
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, _02038E44 ; =0x0003643F
str r0, [r4, #0x0]
add r0, r4, #0x0
@@ -1187,7 +1187,7 @@ FUN_02039564: ; 0x02039564
bl FUN_02046380
mov r1, #0x0
mov r2, #0x40
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -1540,14 +1540,14 @@ _020397EC:
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
- blx abs
+ bl abs
strh r0, [r5, #0x0]
ldr r1, [r4, #0x8]
ldr r0, [sp, #0x14]
sub r1, r0, r1
mov r0, #0x7
sub r0, r0, r1
- blx abs
+ bl abs
strh r0, [r5, #0x2]
add r5, r5, #0x6
add r6, r6, #0x1
diff --git a/arm9/asm/unk_02046030.s b/arm9/asm/unk_02046030.s
index 872e976a..5dc4a047 100644
--- a/arm9/asm/unk_02046030.s
+++ b/arm9/asm/unk_02046030.s
@@ -2910,7 +2910,7 @@ FUN_020476CC: ; 0x020476CC
mov r1, #0x0
lsl r2, r2, #0x2
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x63
str r4, [r7, #0x0]
mov r0, #0x0
@@ -2926,7 +2926,7 @@ _020476FA:
add r1, r4, #0x0
mov r2, #0x34
str r0, [r6, #0x18]
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r0, [sp, #0x0]
add r6, r6, #0x4
add r0, r0, #0x1
@@ -3034,7 +3034,7 @@ _02047774:
add r0, r2, #0x4
add r0, r7, r0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
pop {r3-r7, pc}
@@ -4191,7 +4191,7 @@ _0204817A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x0]
str r5, [r4, #0x4]
@@ -4788,7 +4788,7 @@ _02048666:
mov r0, #0x4
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
add sp, #0xc
mov r0, #0x1
pop {r4-r7, pc}
@@ -6863,7 +6863,7 @@ FUN_02049718: ; 0x02049718
mov r1, #0x0
mov r2, #0x1c
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x38]
bl FUN_020552F8
mov r1, #0x0
@@ -7675,7 +7675,7 @@ FUN_02049D9C: ; 0x02049D9C
add r6, r0, #0x0
mov r1, #0x0
mov r2, #0x1c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r2, r6, #0x0
ldmia r4!, {r0-r1}
add r2, #0x8
@@ -7806,7 +7806,7 @@ FUN_02049EA4: ; 0x02049EA4
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
add r1, r5, #0x0
bl FUN_02048CB0
@@ -9432,7 +9432,7 @@ FUN_0204AAD4: ; 0x0204AAD4
add r5, r0, #0x0
add r6, r1, #0x0
str r2, [r4, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
lsl r1, r1, #0x10
lsr r1, r1, #0x10
ldr r0, [r4, #0x0]
@@ -9441,7 +9441,7 @@ FUN_0204AAD4: ; 0x0204AAD4
str r0, [r4, #0x0]
add r0, r5, #0x0
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r0, r0, #0x10
ldr r1, [r4, #0x8]
@@ -9890,7 +9890,7 @@ _0204AE28:
ldr r0, [r4, #0x0]
mov r1, #0x6
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r4, #0x0]
_0204AE58:
pop {r4, pc}
@@ -9933,7 +9933,7 @@ _0204AE74:
ldr r0, [r4, #0x0]
mov r1, #0x6
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
str r1, [r4, #0x0]
_0204AEA6:
pop {r4, pc}
@@ -10279,7 +10279,7 @@ FUN_0204B130: ; 0x0204B130
add r6, r0, #0x0
add r5, r1, #0x0
add r0, r2, #0x0
- blx RTC_ConvertDateToDay
+ bl RTC_ConvertDateToDay
ldr r1, [r5, #0x20]
add r4, r0, #0x0
cmp r4, r1
@@ -10306,13 +10306,13 @@ FUN_0204B158: ; 0x0204B158
add r5, r1, #0x0
add r0, r4, #0x0
add r1, r6, #0x0
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
str r1, [sp, #0x8]
add r1, r5, #0x0
add r7, r0, #0x0
add r0, r5, #0x4
add r1, #0x14
- blx RTC_ConvertDateTimeToSecond
+ bl RTC_ConvertDateTimeToSecond
add r2, r1, #0x0
sub r1, r7, r0
ldr r1, [sp, #0x8]
@@ -10337,7 +10337,7 @@ _0204B19C:
mov r2, #0x3c
mov r3, #0x0
str r1, [sp, #0x8]
- blx _ll_sdiv
+ bl _ll_sdiv
add r7, r0, #0x0
cmp r7, #0x0
ble _0204B1D8
@@ -10505,7 +10505,7 @@ FUN_0204B2F0: ; 0x0204B2F0
ldr r3, [r3, #0x28]
add r0, r5, #0x0
add r1, r4, #0x0
- blx RTC_ConvertSecondToDateTime
+ bl RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B30C
@@ -10520,7 +10520,7 @@ FUN_0204B30C: ; 0x0204B30C
ldr r3, [r3, #0x30]
add r0, r5, #0x0
add r1, r4, #0x0
- blx RTC_ConvertSecondToDateTime
+ bl RTC_ConvertSecondToDateTime
pop {r3-r5, pc}
thumb_func_start FUN_0204B328
@@ -10600,7 +10600,7 @@ FUN_0204B388: ; 0x0204B388
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x64
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r6, [r4, #0x0]
add r0, r6, #0x0
bl FUN_02025128
@@ -10700,7 +10700,7 @@ FUN_0204B450: ; 0x0204B450
ldr r0, [r3, #0x0]
str r0, [r2, #0x0]
add r0, sp, #0x0
- blx MTX_Identity33_
+ bl MTX_Identity33_
ldr r0, [r5, #0x4]
add r1, r4, #0x0
ldr r0, [r0, #0x18]
@@ -11405,7 +11405,7 @@ FUN_0204B9EC: ; 0x0204B9EC
add r4, r0, #0x0
mov r0, #0x0
mov r2, #0x4c
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, _0204BA14 ; =0x021C5A1C
add r0, r4, #0x0
bl FUN_0204BB20
@@ -11651,7 +11651,7 @@ FUN_0204BBC4: ; 0x0204BBC4
add r4, r0, #0x0
bl FUN_0201B9EC
ldr r1, _0204BBE4 ; =0x0000199A
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0xa
@@ -11780,13 +11780,13 @@ _0204BCA4:
lsl r1, r1, #0x10
ldr r0, _0204BD14 ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r4, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
add r6, #0x14
lsr r4, r0, #0x10
@@ -12410,7 +12410,7 @@ FUN_0204C0D4: ; 0x0204C0D4
beq _0204C0E6
add r0, #0x2a
mov r2, #0x78
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_0204C0E6:
pop {r3, pc}
@@ -12422,7 +12422,7 @@ FUN_0204C0E8: ; 0x0204C0E8
add r1, r4, #0x0
add r1, #0x2a
mov r2, #0x78
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldrb r1, [r4, #0x0]
mov r0, #0x4
orr r0, r1
@@ -13740,7 +13740,7 @@ _0204CB32:
str r0, [r1, #0x0]
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
_0204CB40:
ldr r1, _0204CC34 ; =0x021C5A68
ldr r0, _0204CC38 ; =0x000002BE
@@ -14894,7 +14894,7 @@ FUN_0204D43C: ; 0x0204D43C
add r0, #0x5a
mov r1, #0x0
mov r2, #0x8
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0204CD78
ldr r0, _0204D4CC ; =0x021C5A68
@@ -16246,10 +16246,10 @@ _0204DE98:
b _0204DEEC
_0204DEC2:
ldr r0, [sp, #0x10]
- blx abs
+ bl abs
add r6, r0, #0x0
add r0, r7, #0x0
- blx abs
+ bl abs
cmp r6, r0
ble _0204DEE2
ldr r0, [sp, #0x10]
@@ -16269,9 +16269,9 @@ _0204DEEA:
mov r6, #0x80
_0204DEEC:
add r0, r7, #0x0
- blx abs
+ bl abs
ldr r0, [sp, #0x10]
- blx abs
+ bl abs
ldrb r3, [r5, #0x5]
add r0, r4, #0x0
add r1, r6, #0x0
@@ -20040,7 +20040,7 @@ FUN_0204FBB0: ; 0x0204FBB0
mov r2, #0x48
str r0, [r1, #0x0]
mov r1, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _0204FC08 ; =0x021C5A6C
mov r1, #0x32
ldr r0, [r0, #0x0]
@@ -22383,7 +22383,7 @@ FUN_02050E48: ; 0x02050E48
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
bl FUN_020238F4
add r1, r0, #0x0
@@ -22438,7 +22438,7 @@ FUN_02050ED4: ; 0x02050ED4
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0x24]
ldr r0, [r0, #0xc]
bl LoadPlayerDataAddress
@@ -22564,7 +22564,7 @@ _02050FDA:
add r0, #0x2c
add r1, #0x3d
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [r4, #0x4]
add r0, #0x22
ldrb r0, [r0, #0x0]
@@ -23654,7 +23654,7 @@ _0205188E:
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x8c
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
mov r1, #0x5
add r0, #0x43
@@ -23840,7 +23840,7 @@ _02051A16:
bl FUN_0206B9B0
add r1, r4, #0x0
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r5, r5, #0x1
add r4, r4, r6
cmp r5, #0x3
@@ -24002,7 +24002,7 @@ FUN_02051B1C: ; 0x02051B1C
mul r2, r4
add r1, r3, r2
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [r6, #0x50]
mov r1, #0x3
bl FUN_0206B8CC
@@ -24746,7 +24746,7 @@ _0205211E:
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
str r0, [r4, #0x10]
mov r0, #0x28
@@ -26131,7 +26131,7 @@ FUN_02052B74: ; 0x02052B74
add r0, sp, #0x0
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
cmp r4, #0xb
bhi _02052BFA
add r0, r4, r4
@@ -26593,7 +26593,7 @@ FUN_02052EE8: ; 0x02052EE8
ldr r2, _02052F58 ; =0x000004E8
mov r0, #0x0
add r1, r4, #0x0
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
mov r0, #0x4e
str r5, [r4, #0x0]
mov r1, #0x1
@@ -30706,7 +30706,7 @@ FUN_02054C14: ; 0x02054C14
push {r4, lr}
mov r1, #0xa
add r4, r0, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C26
mov r0, #0x1
@@ -30714,7 +30714,7 @@ FUN_02054C14: ; 0x02054C14
_02054C26:
add r0, r4, #0x0
mov r1, #0x64
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C36
mov r0, #0x2
@@ -30723,7 +30723,7 @@ _02054C36:
mov r1, #0xfa
add r0, r4, #0x0
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C48
mov r0, #0x3
@@ -30731,7 +30731,7 @@ _02054C36:
_02054C48:
ldr r1, _02054C9C ; =0x00002710
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C58
mov r0, #0x4
@@ -30739,7 +30739,7 @@ _02054C48:
_02054C58:
ldr r1, _02054CA0 ; =0x000186A0
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C68
mov r0, #0x5
@@ -30747,7 +30747,7 @@ _02054C58:
_02054C68:
ldr r1, _02054CA4 ; =0x000F4240
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C78
mov r0, #0x6
@@ -30755,7 +30755,7 @@ _02054C68:
_02054C78:
ldr r1, _02054CA8 ; =0x00989680
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C88
mov r0, #0x7
@@ -30763,7 +30763,7 @@ _02054C78:
_02054C88:
ldr r1, _02054CAC ; =0x05F5E100
add r0, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
cmp r0, #0x0
bne _02054C98
mov r0, #0x8
@@ -31092,7 +31092,7 @@ FUN_02054EA0: ; 0x02054EA0
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -31108,7 +31108,7 @@ FUN_02054EA0: ; 0x02054EA0
asr r1, r0, #0x1f
asr r3, r5, #0x1f
add r2, r5, #0x0
- blx _ll_mul
+ bl _ll_mul
mov r2, #0x2
mov r3, #0x0
lsl r2, r2, #0xa
@@ -31171,46 +31171,46 @@ FUN_02054F50: ; 0x02054F50
mov r1, #0x0
mov r2, #0x14
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, sp, #0x8
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _02054F8A
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _02054F98
_02054F8A:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_02054F98:
- blx _ffix
+ bl _ffix
str r0, [r4, #0x4]
add r0, sp, #0x8
ldrh r0, [r0, #0x14]
cmp r0, #0x0
beq _02054FB8
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _02054FC6
_02054FB8:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_02054FC6:
- blx _ffix
+ bl _ffix
str r0, [r4, #0x8]
strh r6, [r4, #0xc]
strh r7, [r4, #0x10]
@@ -31274,7 +31274,7 @@ FUN_0205502C: ; 0x0205502C
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r6, [r4, #0x4]
strh r7, [r4, #0x6]
str r5, [r4, #0x0]
@@ -31430,7 +31430,7 @@ _0205518E:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x3c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
@@ -36030,7 +36030,7 @@ _0205745A:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x4a
lsl r0, r0, #0x2
add r6, r4, #0x0
@@ -36045,7 +36045,7 @@ _0205747E:
add r0, r4, #0x0
mov r1, #0x0
add r2, r6, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
add r1, r4, #0x0
bl FUN_020583B4
@@ -36489,7 +36489,7 @@ _02057846:
add r0, r5, #0x0
mov r1, #0x0
mul r2, r4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
_02057856:
add sp, #0x8
pop {r3-r7, pc}
@@ -36889,7 +36889,7 @@ _02057BD4:
ldr r2, [sp, #0x4]
add r0, r6, #0x0
add r1, r4, #0x0
- blx memcpy
+ bl memcpy
mov r0, #0xb
mov r1, #0x14
bl FUN_020169D8
@@ -38313,7 +38313,7 @@ _0205859A:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38337,7 +38337,7 @@ _020585C2:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38361,7 +38361,7 @@ _020585EA:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -38385,7 +38385,7 @@ _02058612:
mov r1, #0x0
add r2, r5, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
.balign 4
@@ -43565,7 +43565,7 @@ FUN_0205AAB0: ; 0x0205AAB0
bl FUN_0205AA90
add r1, r0, #0x0
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x2
ldr r0, [r5, r0]
pop {r4-r6, pc}
@@ -43584,7 +43584,7 @@ FUN_0205AAD4: ; 0x0205AAD4
bl FUN_0205AA90
add r1, r0, #0x0
add r0, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x2
ldr r0, [r4, r0]
pop {r4-r6, pc}
@@ -47960,7 +47960,7 @@ _0205CA9A:
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x2c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x0]
str r7, [r4, #0x8]
str r0, [r4, #0xc]
@@ -48724,7 +48724,7 @@ FUN_0205D024: ; 0x0205D024
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49207,7 +49207,7 @@ FUN_0205D400: ; 0x0205D400
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -49574,7 +49574,7 @@ FUN_0205D6BC: ; 0x0205D6BC
ldr r2, [sp, #0x0]
mov r1, #0x0
add r7, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x72
ldr r1, _0205D710 ; =0x021F57F1
lsl r0, r0, #0x2
@@ -49938,7 +49938,7 @@ FUN_0205D9A8: ; 0x0205D9A8
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [r5, #0xc]
bl FUN_0206BB1C
str r0, [r4, #0x0]
@@ -50170,7 +50170,7 @@ _0205DB9C:
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x2c
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
str r5, [r4, #0x0]
ldr r0, [sp, #0x0]
add r1, r4, #0x4
@@ -50392,7 +50392,7 @@ FUN_0205DD40: ; 0x0205DD40
add r0, #0x1c
mov r2, #0xa0
str r1, [r4, #0x18]
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r3, #0x0
add r2, r3, #0x0
mov r0, #0x28
@@ -50453,13 +50453,13 @@ _0205DDCA:
add r6, r0, #0x0
ldr r0, _0205DED0 ; =0x0000FFFF
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, r4
@@ -50475,13 +50475,13 @@ _0205DDF2:
lsr r6, r0, #0x18
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bne _0205DE1C
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r5, r1
add r0, r5, #0x0
b _0205DE5C
@@ -50490,7 +50490,7 @@ _0205DE1C:
bne _0205DE30
add r0, r6, #0x0
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, r4
add r1, r5, r1
sub r0, r0, #0x1
@@ -50603,7 +50603,7 @@ _0205DEE0:
bl FUN_0201B9EC
mov r1, #0x29
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r7, r0, #0x10
cmp r7, #0x64
@@ -51150,7 +51150,7 @@ _0205E2DC:
bl FUN_0201B9EC
mov r1, #0x29
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x64
@@ -51325,13 +51325,13 @@ _0205E43C:
lsl r1, r5, #0x10
ldr r0, _0205E47C ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r4, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
lsl r0, r5, #0x10
@@ -52260,7 +52260,7 @@ FUN_0205EB38: ; 0x0205EB38
add r7, r0, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r7, #0x0
add r1, sp, #0xc
mov r2, #0x2
@@ -53787,7 +53787,7 @@ FUN_0205F668: ; 0x0205F668
add r4, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x62
- blx _s32_div_f
+ bl _s32_div_f
add r1, r1, #0x2
lsl r1, r1, #0x10
add r0, r4, #0x0
@@ -53977,7 +53977,7 @@ FUN_0205F7A0: ; 0x0205F7A0
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x6
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r0, [sp, #0x0]
ldr r0, [r0, #0x38]
bl FUN_02055320
@@ -54024,7 +54024,7 @@ _0205F812:
ldr r0, [r0, #0x0]
mov r1, #0x6
add r0, r0, #0x4
- blx _s32_div_f
+ bl _s32_div_f
mov r6, #0x0
add r4, r5, #0x0
_0205F83E:
@@ -54046,7 +54046,7 @@ _0205F85A:
strh r0, [r4, #0x28]
add r0, r1, #0x5
mov r1, #0x6
- blx _s32_div_f
+ bl _s32_div_f
add r6, r6, #0x1
add r4, #0xc
cmp r6, #0x5
@@ -54109,10 +54109,10 @@ FUN_0205F8CC: ; 0x0205F8CC
bl FUN_020462AC
str r0, [sp, #0x0]
add r0, sp, #0x28
- blx FS_InitFile
+ bl FS_InitFile
add r0, sp, #0x28
add r1, r4, #0x0
- blx FS_OpenFile
+ bl FS_OpenFile
cmp r0, #0x0
bne _0205F8F8
bl ErrorHandling
@@ -54122,7 +54122,7 @@ _0205F8F8:
add r0, sp, #0x28
add r1, sp, #0x24
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
cmp r0, #0x0
bge _0205F90A
bl ErrorHandling
@@ -54133,7 +54133,7 @@ _0205F90A:
mov r1, #0x0
mov r2, #0x4
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x24]
ldr r0, _0205FA28 ; =0x0000013A
mov r4, #0x0
@@ -54162,7 +54162,7 @@ _0205F94C:
add r0, sp, #0x28
add r1, r6, #0x0
mov r2, #0x4
- blx FS_ReadFile
+ bl FS_ReadFile
ldrb r0, [r6, #0x0]
cmp r0, #0x1
beq _0205F962
@@ -54263,7 +54263,7 @@ _0205FA0E:
blt _0205F94C
_0205FA16:
add r0, sp, #0x28
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, r6, #0x0
bl FUN_02016A18
add sp, #0x70
@@ -54283,7 +54283,7 @@ FUN_0205FA2C: ; 0x0205FA2C
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0xc]
@@ -54390,7 +54390,7 @@ _0205FB0C:
add r0, #0x2c
add r1, #0xe
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
add r0, #0x22
ldrb r0, [r0, #0x0]
@@ -54416,7 +54416,7 @@ FUN_0205FB34: ; 0x0205FB34
mov r1, #0x0
mov r2, #0x30
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl LoadPlayerDataAddress
str r0, [r4, #0x4]
@@ -54554,7 +54554,7 @@ FUN_0205FC50: ; 0x0205FC50
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
strb r6, [r4, #0x8]
strb r7, [r4, #0x9]
add r0, sp, #0x8
@@ -54673,7 +54673,7 @@ FUN_0205FD38: ; 0x0205FD38
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x18
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r5, [r4, #0x12]
strh r7, [r4, #0x14]
ldr r0, [sp, #0x0]
@@ -54752,7 +54752,7 @@ FUN_0205FDDC: ; 0x0205FDDC
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
strh r5, [r4, #0x0]
strh r6, [r4, #0x2]
ldr r0, [r7, #0x10]
@@ -55722,7 +55722,7 @@ FUN_02060588: ; 0x02060588
_0206059C:
bl FUN_0201B9EC
ldr r1, _020605D4 ; =0x000008D4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x1d
@@ -55796,13 +55796,13 @@ _02060630:
add r6, r0, #0x0
ldr r0, _02060684 ; =0x0000FFFF
add r1, r5, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r6, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r6, r0, #0x10
cmp r6, r5
@@ -55975,7 +55975,7 @@ FUN_02060790: ; 0x02060790
mov r1, #0x0
mov r2, #0x2c
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x0
str r0, [r4, #0x4]
str r5, [r4, #0x0]
@@ -56541,7 +56541,7 @@ _02060BF6:
add r0, r4, #0x0
bl FUN_021F4BD0
ldr r0, [r0, #0x0]
- blx FUN_020BC13C
+ bl FUN_020BC13C
ldrh r1, [r0, #0xe]
add r2, sp, #0x20
mov r3, #0x0
@@ -57077,7 +57077,7 @@ FUN_02061008: ; 0x02061008
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x24
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
pop {r4, pc}
@@ -57098,7 +57098,7 @@ FUN_02061028: ; 0x02061028
add r1, r5, #0x0
mov r2, #0x24
add r7, r3, #0x0
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
str r6, [r5, #0x0]
add r0, r5, #0x0
add r2, r5, #0x0
@@ -57426,7 +57426,7 @@ FUN_020612AC: ; 0x020612AC
mov r0, #0x0
add r1, sp, #0x0
mov r2, #0x28
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r6, #0x0
mov r1, #0x1
mov r2, #0x0
@@ -57692,7 +57692,7 @@ FUN_02061498: ; 0x02061498
bl FUN_02060D90
bl FUN_0201B9EC
ldr r1, _020614F8 ; =0x00003334
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
@@ -58051,7 +58051,7 @@ FUN_02061798: ; 0x02061798
strb r2, [r0, #0x6]
bl FUN_0201BA60
mov r1, #0x3
- blx _u32_div_f
+ bl _u32_div_f
add r0, sp, #0x4
strb r1, [r0, #0x5]
add r0, sp, #0x8
@@ -58100,7 +58100,7 @@ FUN_020617D8: ; 0x020617D8
bl FUN_02060E70
bl FUN_0201B9EC
ldr r1, _02061830 ; =0x00005556
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x3
@@ -58371,13 +58371,13 @@ FUN_020619F0: ; 0x020619F0
lsl r0, r0, #0x2
mul r0, r1
mov r1, #0xfe
- blx _u32_div_f
+ bl _u32_div_f
add r0, r0, #0x5
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
mov r1, #0xa
add r4, r0, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r2, r0, #0x0
mov r0, #0x0
str r0, [sp, #0x0]
@@ -58389,7 +58389,7 @@ FUN_020619F0: ; 0x020619F0
bl FUN_0200AD38
add r0, r4, #0x0
mov r1, #0xa
- blx _u32_div_f
+ bl _u32_div_f
mov r0, #0x0
add r2, r1, #0x0
str r0, [sp, #0x0]
@@ -59220,7 +59220,7 @@ _020620BE:
ble _020620D0
bl FUN_0201BA60
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r5, r1, #0x0
b _020620D2
_020620D0:
@@ -59255,7 +59255,7 @@ _02062100:
bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x11
@@ -59313,7 +59313,7 @@ FUN_02062170: ; 0x02062170
add r7, r1, #0x0
bl FUN_0201B9EC
ldr r1, _02062234 ; =0x00003334
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x5
@@ -59499,7 +59499,7 @@ FUN_020622C4: ; 0x020622C4
bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, #0x11
@@ -59513,7 +59513,7 @@ _020622E6:
bl FUN_0201B9EC
mov r1, #0xf1
lsl r1, r1, #0x4
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r4, r0, #0x10
cmp r4, #0x11
@@ -59625,13 +59625,13 @@ _020623B0:
lsl r1, r4, #0x10
ldr r0, _020623F0 ; =0x0000FFFF
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
lsl r0, r4, #0x10
@@ -59745,13 +59745,13 @@ _0206249E:
add r5, r0, #0x0
ldr r0, _02062504 ; =0x0000FFFF
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x0
add r1, r1, #0x1
lsl r1, r1, #0x10
add r0, r5, #0x0
lsr r1, r1, #0x10
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r5, r0, #0x10
cmp r5, r4
@@ -59827,7 +59827,7 @@ FUN_0206252C: ; 0x0206252C
ble _02062552
bl FUN_0201BA60
add r1, r4, #0x0
- blx _u32_div_f
+ bl _u32_div_f
add r5, r1, #0x0
b _02062554
_02062552:
@@ -59925,16 +59925,16 @@ FUN_020625EC: ; 0x020625EC
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x50
str r0, [r4, #0x0]
ldr r0, [sp, #0x0]
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
strb r1, [r4, #0x16]
ldr r0, [sp, #0x0]
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
strb r0, [r4, #0x17]
ldrb r0, [r4, #0x16]
bl FUN_0202B870
@@ -60047,7 +60047,7 @@ _020626FE:
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_020168D0
mov r0, #0xc
@@ -60511,7 +60511,7 @@ FUN_02062A70: ; 0x02062A70
mov r2, #0x3c
mov r1, #0x0
mul r2, r3
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldrb r1, [r4, #0x16]
ldr r2, [r4, #0x0]
add r0, r5, #0x0
@@ -61269,7 +61269,7 @@ _02063094:
ldr r0, _02063164 ; =0x020F7C2C
add r1, #0xa0
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r1, r5, #0x0
add r0, r5, #0x0
add r1, #0xd4
@@ -63987,7 +63987,7 @@ _02064622:
add r0, r4, #0x0
mov r1, #0x0
add r2, r5, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r3-r5, pc}
@@ -64007,7 +64007,7 @@ FUN_02064640: ; 0x02064640
mov r1, #0x0
mov r2, #0xc8
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02064680 ; =FUN_0206478C
add r0, r4, #0x0
bl FUN_020646B8
@@ -64166,7 +64166,7 @@ FUN_0206473C: ; 0x0206473C
bl FUN_02064738
mov r1, #0x0
add r2, r4, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
pop {r4, pc}
.balign 4
@@ -65347,7 +65347,7 @@ FUN_02065054: ; 0x02065054
ldr r2, _0206506C ; =0x0000066C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
nop
@@ -65640,7 +65640,7 @@ _02065290:
ldr r0, [sp, #0x10]
add r1, r4, #0x0
lsl r2, r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r3-r5, pc}
.balign 4
_020652A0: .word 0x000F423F
@@ -65828,7 +65828,7 @@ FUN_020653EC: ; 0x020653EC
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
str r6, [r4, #0x4]
bl FUN_020377AC
@@ -66796,7 +66796,7 @@ _02065B9E:
ldr r0, _02065CE4 ; =0x020F7E8C
add r1, r5, r1
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r1, #0x5d
lsl r1, r1, #0x2
add r0, r1, #0x0
@@ -67096,7 +67096,7 @@ _02065E14:
ldr r0, _02065ED0 ; =0x020F7E8C
add r1, r5, r1
mov r2, #0x20
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x5d
lsl r0, r0, #0x2
add r1, r0, #0x0
@@ -67807,7 +67807,7 @@ FUN_020663D4: ; 0x020663D4
add r0, r4, r0
mov r1, #0x0
mov r2, #0x10
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x17
mov r1, #0x0
lsl r0, r0, #0x4
@@ -68148,7 +68148,7 @@ _02066676:
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x5b
lsl r0, r0, #0x2
ldr r0, [r5, r0]
@@ -68387,13 +68387,13 @@ FUN_02066840: ; 0x02066840
add r0, r7, #0x0
mov r1, #0x0
mov r2, #0xe4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_0202398C
add r1, r7, #0x0
add r1, #0xa8
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
bl FUN_020239BC
add r1, r7, #0x0
@@ -68460,7 +68460,7 @@ _020668FC:
ldr r1, [sp, #0x8]
mov r2, #0x8
add r1, r1, r5
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -68471,7 +68471,7 @@ _020668FC:
add r1, r7, #0x0
add r1, #0xc0
mov r2, #0x8
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, [sp, #0x0]
cmp r0, #0x0
bne _02066956
@@ -68517,7 +68517,7 @@ FUN_02066978: ; 0x02066978
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0xec
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
ldrh r2, [r4, #0x6]
add r0, #0x8
@@ -68537,7 +68537,7 @@ FUN_020669A0: ; 0x020669A0
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x88
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
ldrh r2, [r4, #0x6]
add r0, #0x8
@@ -68747,7 +68747,7 @@ FUN_02066ACC: ; 0x02066ACC
mov r0, #0x0
add r1, sp, #0x14
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x14
@@ -69083,7 +69083,7 @@ _02066DF4:
orr r0, r1
orr r0, r2
mov r1, #0x1c
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r1, #0x10
lsr r5, r0, #0x10
add r0, r4, #0x0
@@ -69137,7 +69137,7 @@ FUN_02066E74: ; 0x02066E74
cmp r5, #0x0
bne _02066EA0
mov r1, #0x19
- blx _s32_div_f
+ bl _s32_div_f
add r1, r0, #0x1
mov r0, #0x19
mul r0, r1
@@ -69312,7 +69312,7 @@ _02066FFC:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r0
add r0, #0xa
_0206701E:
@@ -69334,7 +69334,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x4c]
add r0, r5, #0x0
@@ -69362,7 +69362,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x48]
add r0, r5, #0x0
@@ -69390,7 +69390,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x44]
add r0, r5, #0x0
@@ -69418,7 +69418,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x40]
add r0, r5, #0x0
@@ -69446,7 +69446,7 @@ _0206701E:
add r0, r0, r1
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r0, #0x5
str r0, [sp, #0x3c]
add r0, r5, #0x0
@@ -70060,7 +70060,7 @@ _020675AA:
sub r2, #0x19
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r2, [r5, #0x1c]
add r3, r4, #0x0
and r3, r1
@@ -70156,7 +70156,7 @@ _02067654:
sub r2, #0x4e
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r2, [r6, #0x14]
add r3, r4, #0x0
and r3, r1
@@ -70255,7 +70255,7 @@ _02067706:
sub r2, #0x7a
add r1, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
ldr r3, [r7, #0x18]
ldr r2, [r7, #0x1c]
and r3, r0
@@ -71020,7 +71020,7 @@ _02067C98:
sub r2, #0x19
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067CB6
ldr r1, [r7, #0x1c]
@@ -71158,7 +71158,7 @@ _02067D94:
sub r2, #0x4e
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067DB2
ldr r1, [r5, #0x14]
@@ -71288,7 +71288,7 @@ _02067E8A:
sub r2, #0x7a
add r0, r4, #0x0
str r2, [sp, #0x4]
- blx _ll_shl
+ bl _ll_shl
cmp r4, #0x0
beq _02067EB2
add r4, r6, #0x0
@@ -72436,7 +72436,7 @@ FUN_02068698: ; 0x02068698
mov r0, #0x64
mul r0, r1
sub r1, r6, r4
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
pop {r3-r7, pc}
@@ -72652,7 +72652,7 @@ FUN_0206885C: ; 0x0206885C
FUN_02068884: ; 0x02068884
push {r3, lr}
mov r1, #0x19
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r1, #0x18
lsr r0, r0, #0x18
pop {r3, pc}
@@ -72686,7 +72686,7 @@ _020688A2:
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
b _020688E0
@@ -72696,7 +72696,7 @@ _020688CE:
lsl r0, r0, #0x10
lsr r0, r0, #0x10
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x10
lsr r1, r0, #0x10
_020688E0:
@@ -72798,7 +72798,7 @@ _02068994:
mov r0, #0x96
mul r0, r4
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
asr r4, r0, #0x18
_020689AA:
@@ -73726,7 +73726,7 @@ FUN_02069010: ; 0x02069010
add r0, sp, #0xc
add r1, r4, #0x0
mov r2, #0x14
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add sp, #0x20
pop {r3-r5, pc}
.balign 4
@@ -74006,7 +74006,7 @@ _02069216:
ldr r0, [sp, #0x1c]
mov r1, #0xa
ldr r4, [sp, #0x18]
- blx _s32_div_f
+ bl _s32_div_f
str r1, [sp, #0x8]
_02069246:
ldrh r0, [r4, #0x0]
@@ -74438,20 +74438,20 @@ FUN_02069558: ; 0x02069558
bl ErrorHandling
_0206956E:
add r0, sp, #0x4
- blx FS_InitFile
+ bl FS_InitFile
ldr r1, _020695A4 ; =0x02105FC8
add r0, sp, #0x4
- blx FS_OpenFile
+ bl FS_OpenFile
add r0, sp, #0x4
lsl r1, r4, #0x1
mov r2, #0x0
- blx FS_SeekFile
+ bl FS_SeekFile
add r0, sp, #0x4
add r1, sp, #0x0
mov r2, #0x2
- blx FS_ReadFile
+ bl FS_ReadFile
add r0, sp, #0x4
- blx FS_CloseFile
+ bl FS_CloseFile
add r0, sp, #0x0
ldrh r0, [r0, #0x0]
add sp, #0x4c
@@ -75115,7 +75115,7 @@ _02069A8E:
mov r0, #0x0
add r1, sp, #0x4
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
mov r1, #0xaa
add r2, sp, #0x4
@@ -75347,7 +75347,7 @@ FUN_02069C4C: ; 0x02069C4C
_02069C70:
bl FUN_0201B9EC
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, r5, #0x0
add r7, r1, #0x0
bl FUN_0206B9B0
@@ -75529,7 +75529,7 @@ FUN_02069DC8: ; 0x02069DC8
add r7, r0, #0x0
bl FUN_0201B9EC
mov r1, #0x3
- blx _s32_div_f
+ bl _s32_div_f
cmp r1, #0x0
bne _02069E70
mov r4, #0x0
@@ -75917,7 +75917,7 @@ FUN_0206A094: ; 0x0206A094
bne _0206A12E
bl FUN_0201B9EC
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r4, r1, #0x0
add r0, r5, #0x0
mov r1, #0x5
@@ -77385,7 +77385,7 @@ FUN_0206AA84: ; 0x0206AA84
add r1, sp, #0x0
add r1, #0x1
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r4, #0x0
mov r1, #0xa1
add r2, sp, #0x0
@@ -77479,7 +77479,7 @@ _0206AB3A:
mul r0, r4
mul r0, r5
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r0
lsl r0, r0, #0x18
lsr r0, r0, #0x18
@@ -77970,7 +77970,7 @@ _0206AECE:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78054,7 +78054,7 @@ _0206AF76:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78147,7 +78147,7 @@ _0206B030:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -78231,7 +78231,7 @@ _0206B0DA:
mov r0, #0x1f
mul r0, r1
mov r1, #0xff
- blx _s32_div_f
+ bl _s32_div_f
add r3, r0, #0x0
mov r0, #0x1
str r0, [sp, #0x0]
@@ -79377,7 +79377,7 @@ _0206B8DA:
add r0, r5, #0x0
mov r1, #0x0
lsl r2, r2, #0x4
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r4, #0x0
str r4, [r5, #0x4]
str r6, [r5, #0x0]
@@ -80144,7 +80144,7 @@ FUN_0206BE48: ; 0x0206BE48
add r0, sp, #0x30
mov r1, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x20]
mov r7, #0x0
cmp r0, #0x0
@@ -81362,21 +81362,21 @@ FUN_0206C700: ; 0x0206C700
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x80
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
bl FUN_020222F0
str r0, [sp, #0x1c]
bl FUN_020222E8
add r1, r0, #0x0
ldr r2, [sp, #0x1c]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
bl FUN_02022300
str r0, [sp, #0x20]
bl FUN_020222F8
add r1, r0, #0x0
ldr r2, [sp, #0x20]
mov r0, #0x0
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [sp, #0x14]
str r6, [r4, #0x24]
mov r1, #0x5
@@ -81497,7 +81497,7 @@ FUN_0206C700: ; 0x0206C700
ldr r1, [r4, #0x3c]
mov r0, #0x0
mov r2, #0x30
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
ldr r1, [sp, #0x38]
ldr r0, [r4, #0x3c]
str r1, [r0, #0x2c]
@@ -83490,7 +83490,7 @@ _0206D8EA:
mov r0, #0x0
add r1, sp, #0x8
mov r2, #0x18
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
add r0, r5, #0x0
mov r1, #0xaa
add r2, sp, #0x8
@@ -83559,25 +83559,25 @@ _0206D9C6:
mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r6, _0206DC2C ; =0x020F8328
add r3, sp, #0x2c
add r2, r3, #0x0
@@ -84084,14 +84084,14 @@ FUN_0206DE4C: ; 0x0206DE4C
mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _0206DE74 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0206DE70: .word 0x04000050
@@ -84155,13 +84155,13 @@ FUN_0206DE94: ; 0x0206DE94
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0206DF0C ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0206DF10 ; =0xBFFF0000
ldr r0, _0206DF14 ; =0x04000580
str r1, [r0, #0x0]
@@ -84214,7 +84214,7 @@ FUN_0206DF58: ; 0x0206DF58
cmp r0, #0x0
ble _0206DF6E
bl FUN_020222AC
- blx FUN_020B02C8
+ bl FUN_020B02C8
_0206DF6E:
bl FUN_02013388
mov r0, #0x1
@@ -84720,7 +84720,7 @@ FUN_0206E2F0: ; 0x0206E2F0
mov r1, #0x0
mov r2, #0x78
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -86830,7 +86830,7 @@ FUN_0206F164: ; 0x0206F164
mov r0, #0x0
add r1, r4, #0x0
mov r2, #0x24
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
add r0, r4, #0x0
pop {r4, pc}
@@ -87126,7 +87126,7 @@ _0206F34A:
mov r0, #0x36
bl FUN_02211E60
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
b _0206F380
_0206F366:
ldr r0, [r4, #0x0]
@@ -87157,14 +87157,14 @@ FUN_0206F38C: ; 0x0206F38C
mov r1, #0x0
mov r2, #0x10
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0xb
mov r1, #0xc
bl FUN_020169D8
mov r1, #0x0
mov r2, #0xc
str r0, [r4, #0x0]
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
pop {r4, pc}
.balign 4
@@ -88362,7 +88362,7 @@ FUN_0206FD24: ; 0x0206FD24
bl LoadFromNarc_2
add r1, sp, #0x10
add r4, r0, #0x0
- blx FUN_020B0138
+ bl FUN_020B0138
ldr r2, [sp, #0x10]
mov r0, #0x3
ldr r1, [r2, #0xc]
@@ -88378,7 +88378,7 @@ FUN_0206FD24: ; 0x0206FD24
add r0, r5, r0
add r1, #0x60
lsl r2, r2, #0x8
- blx memcpy
+ bl memcpy
mov r0, #0xc
add r1, r4, #0x0
bl FUN_02016A8C
@@ -88490,7 +88490,7 @@ FUN_0206FE74: ; 0x0206FE74
ldr r2, _0206FF50 ; =0x00000B38
mov r1, #0x0
add r6, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
ldr r1, _0206FF54 ; =0x000005A4
@@ -93292,7 +93292,7 @@ FUN_020724D4: ; 0x020724D4
bl LoadFromNarc_2
add r1, sp, #0xc
str r0, [sp, #0x8]
- blx FUN_020B0180
+ bl FUN_020B0180
ldr r0, [sp, #0xc]
mov r4, #0x0
str r0, [sp, #0x4]
@@ -93303,14 +93303,14 @@ _020724FE:
ldr r1, [sp, #0x0]
add r0, r5, #0x0
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r1, r4, #0x6
lsl r2, r1, #0x6
ldr r1, [sp, #0x4]
add r0, r6, #0x0
add r1, r1, r2
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r1, r4, #0x0
add r1, #0xc
lsl r2, r1, #0x6
@@ -93318,7 +93318,7 @@ _020724FE:
add r0, r7, #0x0
add r1, r1, r2
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x0]
add r4, r4, #0x1
add r0, #0x40
@@ -97348,13 +97348,13 @@ _02074638:
ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x1c]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x4]
mov r2, #0x20
add r0, r0, r4
@@ -97366,13 +97366,13 @@ _02074638:
ldr r1, [sp, #0x14]
add r0, r0, r5
add r1, r1, r7
- blx memcpy
+ bl memcpy
ldr r0, [sp, #0x24]
ldr r1, [sp, #0x10]
add r0, r0, r5
add r1, r1, r7
mov r2, #0x20
- blx memcpy
+ bl memcpy
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -99044,7 +99044,7 @@ FUN_020753B4: ; 0x020753B4
ldr r0, _020754AC ; =0x00000708
ldrh r0, [r1, r0]
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
ldr r1, _020754B0 ; =0x00000B28
strh r0, [r4, r1]
sub r0, r1, #0x3
@@ -102727,7 +102727,7 @@ _020772FE:
mov r1, #0x0
lsl r2, r2, #0x4
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x12
bl FUN_02016B94
mov r1, #0x16
@@ -102890,7 +102890,7 @@ FUN_020774B8: ; 0x020774B8
ldr r1, _020774E8 ; =0x000057E0
add r6, r3, #0x0
lsl r2, r2, #0x8
- blx GX_LoadOBJ
+ bl GX_LoadOBJ
ldr r4, [r4, #0xc]
add r0, r5, #0x0
add r1, r6, #0x0
@@ -102900,7 +102900,7 @@ FUN_020774B8: ; 0x020774B8
add r0, r4, r0
mov r1, #0xc0
mov r2, #0x20
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
pop {r4-r6, pc}
nop
_020774E8: .word 0x000057E0
@@ -103279,7 +103279,7 @@ FUN_020777D4: ; 0x020777D4
bne _020777FE
bl FUN_0201B9EC
mov r1, #0x12
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -103291,7 +103291,7 @@ _020777FE:
bne _0207781A
bl FUN_0201B9EC
mov r1, #0x12
- blx _s32_div_f
+ bl _s32_div_f
mov r0, #0x17
lsl r0, r0, #0x4
ldr r0, [r5, r0]
@@ -103949,7 +103949,7 @@ _02077D88:
mov r0, #0x1
add r1, #0xd8
mov r2, #0x40
- blx MIi_CpuClear16
+ bl MIi_CpuClear16
ldr r0, [r4, #0x0]
cmp r0, #0x1
bne _02077DCE
@@ -104394,7 +104394,7 @@ FUN_02078140: ; 0x02078140
push {r4-r7, lr}
sub sp, #0x14
add r5, r0, #0x0
- blx FUN_020B0FC0
+ bl FUN_020B0FC0
mov r0, #0x0
str r0, [sp, #0x0]
mov r1, #0x80
@@ -104516,7 +104516,7 @@ _0207818C:
mov r1, #0x2
ldr r0, [r5, r0]
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
bl FUN_0206B888
add r1, r0, #0x0
mov r0, #0x13
@@ -104529,7 +104529,7 @@ _0207818C:
add r0, r1, #0x4
ldr r0, [r5, r0]
mov r1, #0x80
- blx DC_FlushRange
+ bl DC_FlushRange
_02078272:
mov r3, #0x1
str r3, [sp, #0x0]
@@ -106027,7 +106027,7 @@ _02078E52:
add r0, sp, #0x0
mov r1, #0x3a
mov r2, #0x2
- blx GX_LoadOBJPltt
+ bl GX_LoadOBJPltt
pop {r3, pc}
thumb_func_start FUN_02078E7C
@@ -106197,7 +106197,7 @@ FUN_02078FA0: ; 0x02078FA0
bl FUN_02078F7C
mov r1, #0x2
lsl r1, r1, #0xa
- blx DC_FlushRange
+ bl DC_FlushRange
add r7, r6, #0x0
mov r4, #0x0
add r7, #0x30
@@ -106213,14 +106213,14 @@ _02078FD0:
mov r1, #0x1
add r0, r5, #0x0
lsl r1, r1, #0x8
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, _02079070 ; =0x020F9D28
mov r2, #0x1
ldrb r1, [r1, r4]
add r0, r5, #0x0
lsl r2, r2, #0x8
lsl r1, r1, #0x5
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
add r0, r4, #0x1
lsl r0, r0, #0x10
lsr r4, r0, #0x10
@@ -106253,14 +106253,14 @@ _02079012:
bl FUN_02078F7C
mov r1, #0x80
add r7, r0, #0x0
- blx DC_FlushRange
+ bl DC_FlushRange
ldr r1, _02079078 ; =0x020F9D40
lsl r2, r5, #0x2
ldr r1, [r1, r2]
add r0, r7, #0x0
lsl r1, r1, #0x5
mov r2, #0x80
- blx GXS_LoadOBJ
+ bl GXS_LoadOBJ
add r0, r5, #0x1
lsl r0, r0, #0x10
lsr r5, r0, #0x10
@@ -106854,7 +106854,7 @@ _02079470:
mov r1, #0x0
mov r2, #0x7
str r3, [sp, #0x0]
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0xd3
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -107543,7 +107543,7 @@ FUN_02079A0C: ; 0x02079A0C
push {r4, lr}
add r4, r0, #0x0
mul r0, r2
- blx _u32_div_f
+ bl _u32_div_f
lsl r0, r0, #0x18
lsr r0, r0, #0x18
bne _02079A22
@@ -107566,7 +107566,7 @@ FUN_02079A24: ; 0x02079A24
pop {r4, pc}
_02079A36:
mov r1, #0x5
- blx _u32_div_f
+ bl _u32_div_f
cmp r4, r0
bls _02079A44
mov r0, #0x2
@@ -107767,7 +107767,7 @@ FUN_02079B60: ; 0x02079B60
_02079B9A:
add r0, r7, #0x0
add r1, sp, #0x10
- blx FUN_020B0088
+ bl FUN_020B0088
cmp r4, #0x0
bne _02079BAE
ldr r0, [sp, #0x10]
@@ -107789,7 +107789,7 @@ _02079BAE:
_02079BC6:
add r0, r7, #0x0
add r1, sp, #0xc
- blx FUN_020B0180
+ bl FUN_020B0180
cmp r4, #0x0
bne _02079BDA
ldr r0, [sp, #0xc]
@@ -107825,7 +107825,7 @@ _02079BF8:
_02079C10:
add r0, r7, #0x0
add r1, sp, #0x8
- blx FUN_020B0138
+ bl FUN_020B0138
cmp r4, #0x0
bne _02079C24
ldr r0, [sp, #0x8]
@@ -107866,7 +107866,7 @@ FUN_02079C40: ; 0x02079C40
bl FUN_02006774
add r0, r4, #0x0
add r1, r7, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
add r0, r4, #0x0
pop {r3-r7, pc}
@@ -107924,7 +107924,7 @@ FUN_02079C7C: ; 0x02079C7C
ldr r2, _02079DAC ; =0x0000069C
mov r1, #0x0
add r5, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r4, #0x0
bl FUN_0200628C
mov r1, #0x93
@@ -108459,7 +108459,7 @@ FUN_0207A188: ; 0x0207A188
mov r1, #0x1
mov r2, #0x1e
mov r3, #0x17
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_0207A19C: .word 0x04000050
@@ -110574,7 +110574,7 @@ _0207B256:
bl LoadFromNarc_2
add r1, sp, #0xc
add r4, r0, #0x0
- blx FUN_020B0180
+ bl FUN_020B0180
mov r3, #0x0
str r3, [sp, #0x0]
mov r0, #0x20
@@ -111980,7 +111980,7 @@ FUN_0207BD84: ; 0x0207BD84
bl FUN_0206AB18
bl FUN_02083114
mov r1, #0xa
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r0, #0x18
asr r6, r0, #0x18
mov r4, #0x0
@@ -113920,7 +113920,7 @@ _0207CD3E:
mov r1, #0xa
ldrb r0, [r4, r0]
add r0, r0, #0x1
- blx _s32_div_f
+ bl _s32_div_f
ldr r0, _0207CE44 ; =0x00000693
strb r1, [r4, r0]
b _0207CDE8
@@ -114375,7 +114375,7 @@ FUN_0207D0C8: ; 0x0207D0C8
lsl r0, r1, #0x10
mov r1, #0x4b
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -114390,7 +114390,7 @@ _0207D0EE:
lsl r0, r1, #0x10
mov r1, #0x4b
lsl r1, r1, #0x2
- blx _u32_div_f
+ bl _u32_div_f
lsr r0, r0, #0x10
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118028,9 +118028,9 @@ _0207EF68: .word 0x0001020F
FUN_0207EF6C: ; 0x0207EF6C
push {r3-r4, lr}
sub sp, #0x4
- blx FUN_020BB7F4
- blx G3X_Init
- blx G3X_InitMtxStack
+ bl FUN_020BB7F4
+ bl G3X_Init
+ bl G3X_InitMtxStack
ldr r0, _0207EFEC ; =0x04000060
ldr r1, _0207EFF0 ; =0xFFFFCFFD
ldrh r2, [r0, #0x0]
@@ -118060,13 +118060,13 @@ FUN_0207EF6C: ; 0x0207EF6C
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _0207EFF8 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _0207EFFC ; =0x04000540
mov r0, #0x0
str r0, [r1, #0x0]
@@ -118112,16 +118112,16 @@ FUN_0207F008: ; 0x0207F008
mov r0, #0x2
str r0, [r2, #0x0]
str r3, [r1, #0x0]
- blx FUN_020B849C
+ bl FUN_020B849C
mov r0, #0xb7
lsl r0, r0, #0x2
add r0, r4, r0
bl FUN_0207F108
- blx FUN_020B849C
+ bl FUN_020B849C
add r0, r4, #0x0
bl FUN_0207F1A4
_0207F046:
- blx FUN_020B02C8
+ bl FUN_020B02C8
mov r0, #0xae
lsl r0, r0, #0x2
ldr r0, [r4, r0]
@@ -118682,43 +118682,43 @@ FUN_0207F48C: ; 0x0207F48C
add r6, r2, #0x0
sub r7, r1, r0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F4E0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F506
_0207F4E0:
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F506:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118728,43 +118728,43 @@ _0207F506:
ldrsh r0, [r5, r0]
sub r7, r1, r0
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F558
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F57E
_0207F558:
add r0, r7, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F57E:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -118774,43 +118774,43 @@ _0207F57E:
ldrsh r0, [r5, r0]
sub r4, r1, r0
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
mov r1, #0x0
- blx _fgr
+ bl _fgr
bls _0207F5D0
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
- blx _ffix
+ bl _fadd
+ bl _ffix
b _0207F5F6
_0207F5D0:
add r0, r4, #0x0
- blx _fflt
+ bl _fflt
ldr r1, _0207F600 ; =0x45800000
- blx _fdiv
+ bl _fdiv
ldr r1, _0207F604 ; =0x40800000
- blx _fdiv
+ bl _fdiv
add r1, r0, #0x0
ldr r0, _0207F600 ; =0x45800000
- blx _fmul
+ bl _fmul
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
- blx _ffix
+ bl _fsub
+ bl _ffix
_0207F5F6:
lsl r0, r0, #0x10
asr r0, r0, #0x10
@@ -120608,7 +120608,7 @@ FUN_0208048C: ; 0x0208048C
add r2, r1, #0x0
bl FUN_020671BC
mov r1, #0x6
- blx _u32_div_f
+ bl _u32_div_f
cmp r1, #0x5
bhi _02080510
add r0, r1, r1
@@ -120819,7 +120819,7 @@ _0208064C:
add r0, r7, #0x0
_02080654:
mov r1, #0x5
- blx _s32_div_f
+ bl _s32_div_f
mov r2, #0xa
add r6, r5, #0x0
mul r6, r2
@@ -121550,7 +121550,7 @@ FUN_02080C38: ; 0x02080C38
mov r1, #0x0
mov r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, _02080C5C ; =FUN_02080C60
add r0, r5, #0x0
add r2, r4, #0x0
@@ -121774,7 +121774,7 @@ FUN_02080E0C: ; 0x02080E0C
mov r1, #0x0
mov r2, #0x8
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02080E50 ; =0x00000121
str r6, [r4, #0x0]
ldrb r0, [r6, r0]
@@ -122275,7 +122275,7 @@ FUN_020811D8: ; 0x020811D8
ldr r2, _02081204 ; =0x000019C4
mov r1, #0x0
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02081208 ; =0x00000123
mov r1, #0x0
strb r1, [r4, r0]
@@ -122790,7 +122790,7 @@ FUN_020815D0: ; 0x020815D0
mov r1, #0x0
mov r2, #0x28
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, _02081658 ; =0x00000123
ldrb r1, [r5, r0]
lsl r1, r1, #0x2
@@ -123406,7 +123406,7 @@ _02081A8A:
ldr r1, _02081D30 ; =0x00000585
ldr r0, [r4, r0]
add r1, r4, r1
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0xc
bl FUN_02031588
ldr r0, _02081D2C ; =0x00000584
@@ -124765,7 +124765,7 @@ _02082456:
mov r1, #0x0
mov r2, #0x10
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r6, #0x0
bl FUN_020832E4
strb r0, [r4, #0xc]
@@ -125393,7 +125393,7 @@ _0208292A:
mov r1, #0x0
bl LoadFromNARC_7
mov r1, #0x30
- blx _u32_div_f
+ bl _u32_div_f
str r0, [sp, #0x24]
ldr r1, [sp, #0x24]
add r0, r5, #0x0
@@ -125553,7 +125553,7 @@ _02082A5A:
ldr r0, [sp, #0x4]
bl FUN_02082878
ldr r1, [sp, #0x10]
- blx _s32_div_f
+ bl _s32_div_f
mov r3, #0x0
cmp r6, #0x0
ble _02082AA2
@@ -125597,7 +125597,7 @@ _02082AB0:
ldr r0, [sp, #0x4]
bl FUN_02082878
add r1, r6, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r2, r0, #0x10
ldrb r3, [r5, r2]
@@ -125658,7 +125658,7 @@ _02082B16:
ldr r0, [sp, #0x4]
bl FUN_02082878
ldr r1, [sp, #0x8]
- blx _s32_div_f
+ bl _s32_div_f
add r0, r4, r1
lsl r0, r0, #0x10
lsr r2, r0, #0x10
@@ -126341,7 +126341,7 @@ _02083058:
ldr r0, [sp, #0x4]
bl FUN_02082878
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
lsl r0, r1, #0x10
lsr r1, r0, #0x10
ldr r0, [sp, #0x10]
@@ -126929,7 +126929,7 @@ FUN_02083454: ; 0x02083454
_02083464:
bl FUN_0201B9EC
mov r1, #0xc
- blx _s32_div_f
+ bl _s32_div_f
add sp, #0xc
add r0, r1, #0x0
pop {r4-r5, pc}
@@ -126937,7 +126937,7 @@ _02083474:
add r0, sp, #0x0
add r1, r4, #0x0
mov r2, #0xc
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x2
add r0, sp, #0x0
strb r1, [r0, #0x0]
@@ -126974,7 +126974,7 @@ _020834A6:
_020834BE:
bl FUN_0201B9EC
add r1, r4, #0x0
- blx _s32_div_f
+ bl _s32_div_f
add r0, sp, #0x0
ldrb r0, [r0, r1]
add sp, #0xc
@@ -127090,7 +127090,7 @@ _02083578:
add r1, r2, r1
ldr r0, [sp, #0x0]
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x1
strb r0, [r7, r5]
pop {r3-r7, pc}
@@ -127125,7 +127125,7 @@ FUN_020835B0: ; 0x020835B0
lsl r1, r6, #0x8
add r1, r2, r1
add r2, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r2, _02083628 ; =0x00000584
ldrb r0, [r4, r2]
add r0, r0, #0x1
@@ -127247,7 +127247,7 @@ FUN_02083694: ; 0x02083694
add r0, r5, #0x0
lsl r1, r1, #0x2
ldr r1, [r4, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _020836B8 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127270,7 +127270,7 @@ FUN_020836BC: ; 0x020836BC
add r0, r7, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x1b
add r1, r5, #0x0
add r2, r4, #0x1
@@ -127304,7 +127304,7 @@ _02083710:
ldr r1, [r4, #0x0]
add r0, r0, r5
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, #0x4
add r5, r5, r6
@@ -127341,7 +127341,7 @@ _02083758:
ldr r0, [r5, #0x0]
add r1, r1, r4
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, r6
add r5, r5, #0x4
@@ -127376,7 +127376,7 @@ FUN_0208378C: ; 0x0208378C
add r5, #0x10
mul r3, r2
add r1, r5, r3
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _020837B0 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127397,7 +127397,7 @@ FUN_020837B4: ; 0x020837B4
add r0, r6, #0x0
add r1, r4, #0x0
mov r2, #0x30
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r0, r4, #0x0
add r0, #0x30
strb r5, [r0, #0x0]
@@ -127432,7 +127432,7 @@ _02083802:
add r0, r6, r0
add r1, r5, #0x0
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -127467,7 +127467,7 @@ _02083848:
add r0, r5, #0x0
add r1, r6, r1
add r2, r7, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r4, r4, #0x1
add r5, #0x8
cmp r4, #0x3
@@ -127532,7 +127532,7 @@ FUN_020838B4: ; 0x020838B4
add r0, sp, #0x0
add r1, r4, #0x4
mov r2, #0x10
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
strb r5, [r4, #0x0]
mov r0, #0x10
strb r0, [r4, #0x1]
@@ -127569,7 +127569,7 @@ FUN_02083904: ; 0x02083904
add r1, r4, r1
add r1, #0xf8
ldr r1, [r1, #0x0]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _0208392C ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127592,7 +127592,7 @@ FUN_02083930: ; 0x02083930
add r0, r7, #0x0
add r1, r5, #0x0
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x20
add r1, r5, #0x0
add r2, r4, #0x1
@@ -127635,7 +127635,7 @@ _02083992:
ldr r1, [r1, #0x0]
add r0, r0, r5
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, #0x4
add r5, r5, r6
@@ -127678,7 +127678,7 @@ _020839E8:
ldr r0, [r5, #0x0]
add r1, r1, r4
add r2, r6, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
add r7, r7, #0x1
add r4, r4, r6
add r5, r5, #0x4
@@ -127708,7 +127708,7 @@ FUN_02083A1C: ; 0x02083A1C
add r0, r2, #0x0
add r1, r3, r1
add r2, r4, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
pop {r4, pc}
nop
_02083A30: .word 0x000019A0
@@ -127796,7 +127796,7 @@ FUN_02083AA8: ; 0x02083AA8
mov r1, #0x57
lsl r1, r1, #0x2
ldr r1, [r3, r1]
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
ldr r0, _02083AD0 ; =0x00000584
ldrb r1, [r4, r0]
add r1, r1, #0x1
@@ -127820,7 +127820,7 @@ FUN_02083AD4: ; 0x02083AD4
add r0, r6, #0x0
add r1, r4, #0x0
add r2, r5, #0x0
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
_02083AF4:
mov r0, #0x24
add r1, r4, #0x0
@@ -127879,7 +127879,7 @@ FUN_02083B48: ; 0x02083B48
add r0, r6, #0x0
add r1, r4, #0x0
mov r2, #0x6
- blx MI_CpuCopy8
+ bl MI_CpuCopy8
mov r0, #0x25
add r1, r4, #0x0
mov r2, #0x7
@@ -127939,7 +127939,7 @@ FUN_02083BAC: ; 0x02083BAC
ldr r0, [r4, r0]
add r1, r6, #0x0
lsl r2, r2, #0x4
- blx memcpy
+ bl memcpy
ldr r0, [r4, #0x58]
add r0, r0, #0x1
str r0, [r4, #0x58]
@@ -128115,7 +128115,7 @@ FUN_02083CD8: ; 0x02083CD8
add r0, r6, #0x0
add r1, r3, r1
sub r2, r2, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0x4
str r0, [r4, #0x54]
mov r0, #0x0
@@ -128205,14 +128205,14 @@ FUN_02083D5C: ; 0x02083D5C
mov r2, #0x19
add r0, r5, #0x0
lsl r2, r2, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
b _02083D9C
_02083D90:
add r2, r4, r2
add r1, r2, r1
add r0, r5, #0x0
sub r2, r3, #0x4
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
_02083D9C:
mov r1, #0xb5
ldr r0, _02083DE8 ; =0x000043D0
@@ -128221,7 +128221,7 @@ _02083D9C:
ldr r1, [r4, r1]
add r0, r4, r0
lsl r2, r2, #0x6
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0xb2
lsl r0, r0, #0x2
add r0, r4, r0
@@ -128322,7 +128322,7 @@ FUN_02083E4C: ; 0x02083E4C
mov r0, #0x0
add r1, r4, r1
lsl r2, r2, #0x6
- blx MIi_CpuClearFast
+ bl MIi_CpuClearFast
bl FUN_02031190
cmp r0, #0x0
bne _02083E8A
@@ -128388,7 +128388,7 @@ _02083ED0:
cmp r1, r0
bne _02083EFE
bl FUN_0202CB8C
- blx MATH_CountPopulation
+ bl MATH_CountPopulation
mov r1, #0xc6
lsl r1, r1, #0x2
ldr r1, [r4, r1]
@@ -128577,7 +128577,7 @@ FUN_0208402C: ; 0x0208402C
add r0, r1, r0
ldr r1, _02084078 ; =0x00007C10
add r1, r5, r1
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
ldr r0, _02084078 ; =0x00007C10
mov r2, #0x0
add r1, r2, #0x0
@@ -128742,7 +128742,7 @@ _0208415E:
cmp r1, r0
bne _02084186
bl FUN_0202CB8C
- blx MATH_CountPopulation
+ bl MATH_CountPopulation
ldr r1, _02084208 ; =0x00004A48
ldr r2, [r4, r1]
cmp r2, r0
@@ -130682,7 +130682,7 @@ _020850BE:
mov r0, #0x96
mul r0, r1
mov r1, #0x64
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x18]
_020850EC:
add r0, r5, #0x0
@@ -131327,7 +131327,7 @@ FUN_020854E0: ; 0x020854E0
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [sp, #0x0]
strb r0, [r4, #0xf]
ldr r0, [sp, #0x4]
@@ -131365,7 +131365,7 @@ FUN_02085538: ; 0x02085538
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
str r5, [r4, #0x8]
@@ -131395,7 +131395,7 @@ FUN_02085578: ; 0x02085578
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
str r5, [r4, #0x10]
@@ -131422,7 +131422,7 @@ FUN_020855B0: ; 0x020855B0
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r4, #0x0]
add r0, r7, #0x0
@@ -131582,7 +131582,7 @@ FUN_020856F0: ; 0x020856F0
mov r1, #0x0
mov r2, #0x34
add r6, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x0
strh r0, [r6, #0x0]
add r0, r4, #0x0
@@ -131720,7 +131720,7 @@ FUN_020857F8: ; 0x020857F8
mov r1, #0x0
mov r2, #0x1c
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r1, #0x28
str r1, [r4, #0x0]
ldr r0, [r5, #0x14]
@@ -131946,7 +131946,7 @@ FUN_020859C0: ; 0x020859C0
ldr r2, _02085BA0 ; =0x0000042C
mov r1, #0x0
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
bl FUN_0222E2BC
mov r1, #0x23
lsl r1, r1, #0x4
@@ -132596,7 +132596,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x30
str r0, [r4, #0x8]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl LoadPlayerDataAddress
ldr r1, [r4, #0x8]
@@ -132609,7 +132609,7 @@ _02085F5E:
mov r1, #0x0
mov r2, #0x40
str r0, [r4, #0xc]
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
ldr r1, _02085FA8 ; =FUN_02085DA4
add r0, r6, #0x0
add r2, r4, #0x0
@@ -132752,7 +132752,7 @@ FUN_02086084: ; 0x02086084
mov r1, #0x0
mov r2, #0x80
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
add r0, r5, #0x0
bl FUN_0200628C
str r0, [r4, #0x0]
@@ -133167,14 +133167,14 @@ FUN_0208643C: ; 0x0208643C
mov r1, #0x0
mov r2, #0xe
mov r3, #0xb
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
mov r0, #0x8
str r0, [sp, #0x0]
ldr r0, _02086464 ; =0x04001050
mov r1, #0x0
mov r2, #0xe
mov r3, #0x7
- blx G2x_SetBlendAlpha_
+ bl G2x_SetBlendAlpha_
pop {r3, pc}
.balign 4
_02086460: .word 0x04000050
@@ -133239,13 +133239,13 @@ FUN_02086488: ; 0x02086488
add r1, r0, #0x0
add r2, r0, #0x0
add r3, r0, #0x0
- blx G3X_SetFog
+ bl G3X_SetFog
mov r0, #0x0
ldr r2, _02086500 ; =0x00007FFF
add r1, r0, #0x0
mov r3, #0x3f
str r0, [sp, #0x0]
- blx G3X_SetClearColor
+ bl G3X_SetClearColor
ldr r1, _02086504 ; =0xBFFF0000
ldr r0, _02086508 ; =0x04000580
str r1, [r0, #0x0]
@@ -133311,25 +133311,25 @@ _0208655C:
mov r0, #0x0
lsl r1, r1, #0x18
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x62
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x19
mov r2, #0x1
mov r0, #0x0
lsl r1, r1, #0x16
lsl r2, r2, #0x12
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
mov r1, #0x66
mov r2, #0x2
mov r0, #0x0
lsl r1, r1, #0x14
lsl r2, r2, #0x10
- blx MIi_CpuClear32
+ bl MIi_CpuClear32
ldr r5, _02086654 ; =0x020FCE24
add r3, sp, #0x1c
add r2, r3, #0x0
@@ -133444,7 +133444,7 @@ FUN_02086698: ; 0x02086698
cmp r0, #0x0
ble _020866AE
bl FUN_020222AC
- blx FUN_020B02C8
+ bl FUN_020B02C8
_020866AE:
bl FUN_02013388
mov r0, #0x1
@@ -134325,7 +134325,7 @@ _02086DB4:
bl FUN_0200C82C
mov r0, #0x0
add r1, r7, #0x0
- blx _feq
+ bl _feq
beq _02086DD2
ldr r0, [r6, #0x6c]
ldr r2, [sp, #0x0]
@@ -136295,7 +136295,7 @@ FUN_02087D00: ; 0x02087D00
mov r1, #0x0
lsl r2, r2, #0x2
add r7, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_02028048
str r0, [r7, #0x8]
@@ -136454,7 +136454,7 @@ FUN_02087E40: ; 0x02087E40
mov r1, #0x0
mov r2, #0x18
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x2c
str r0, [r4, #0x0]
str r5, [r4, #0xc]
@@ -136620,7 +136620,7 @@ _02087F86:
mov r1, #0x0
mov r2, #0x40
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r0, [r5, #0xc]
mov r1, #0x0
ldr r0, [r0, #0x10]
@@ -136761,7 +136761,7 @@ FUN_020880A0: ; 0x020880A0
mov r1, #0x0
mov r2, #0xc
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [r5, #0xc]
ldrb r0, [r1, #0x1]
lsl r0, r0, #0x3
@@ -136992,22 +136992,22 @@ _0208826A:
cmp r0, #0x5
beq _020882B8
ldrb r0, [r4, r0]
- blx _ffltu
+ bl _ffltu
add r1, r0, #0x0
ldr r0, _02088318 ; =0x3F8CCCCD
- blx _fmul
- blx _ffixu
+ bl _fmul
+ bl _ffixu
ldr r1, [sp, #0x4]
strb r0, [r4, r1]
add r4, sp, #0x8
ldr r0, [sp, #0x0]
add r4, #0x1
ldrb r0, [r4, r0]
- blx _ffltu
+ bl _ffltu
add r1, r0, #0x0
ldr r0, _0208831C ; =0x3F666666
- blx _fmul
- blx _ffixu
+ bl _fmul
+ bl _ffixu
ldr r1, [sp, #0x0]
strb r0, [r4, r1]
_020882B8:
@@ -137075,7 +137075,7 @@ FUN_02088320: ; 0x02088320
mov r1, #0x0
lsl r2, r2, #0x2
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r6, [r4, #0x0]
cmp r5, #0x10
bls _0208834A
@@ -137104,7 +137104,7 @@ FUN_02088360: ; 0x02088360
add r0, r4, #0x0
mov r1, #0x0
lsl r2, r2, #0x2
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r4, #0x0
bl FUN_02016A18
pop {r4, pc}
@@ -137199,7 +137199,7 @@ _02088402:
ldr r0, [r0, r2]
mov r1, #0x0
mov r2, #0x4
- blx MI_CpuFill8
+ bl MI_CpuFill8
add sp, #0xc
pop {r4-r7, pc}
.balign 4
@@ -137272,7 +137272,7 @@ _020884B4:
str r0, [sp, #0x38]
mov r1, #0x0
mov r2, #0x8
- blx MI_CpuFill8
+ bl MI_CpuFill8
ldr r1, [sp, #0x3c]
ldr r0, [sp, #0x38]
strh r1, [r0, #0x0]
@@ -137365,59 +137365,59 @@ _020884D8:
str r0, [sp, #0x44]
beq _02088596
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885A4
_02088596:
lsl r0, r7, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885A4:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x48]
ldr r0, [sp, #0x30]
cmp r0, #0x0
beq _020885C2
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885D0
_020885C2:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885D0:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x4c]
add r0, sp, #0x78
ldrh r0, [r0, #0x10]
cmp r0, #0x0
beq _020885F0
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
add r1, r0, #0x0
mov r0, #0x3f
lsl r0, r0, #0x18
- blx _fadd
+ bl _fadd
b _020885FE
_020885F0:
lsl r0, r0, #0xc
- blx _fflt
+ bl _fflt
mov r1, #0x3f
lsl r1, r1, #0x18
- blx _fsub
+ bl _fsub
_020885FE:
- blx _ffix
+ bl _ffix
str r0, [sp, #0x50]
cmp r6, #0x2
bne _02088612
@@ -137804,7 +137804,7 @@ FUN_02088898: ; 0x02088898
bl FUN_02088888
bl FUN_02088868
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
pop {r4, pc}
.balign 4
@@ -137844,7 +137844,7 @@ FUN_020888DC: ; 0x020888DC
mov r0, #0x31
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
mov r0, #0x1
pop {r4, pc}
.balign 4
@@ -137861,7 +137861,7 @@ FUN_0208890C: ; 0x0208890C
add r4, r0, #0x0
mov r1, #0x0
mov r2, #0x20
- blx MI_CpuFill8
+ bl MI_CpuFill8
str r5, [r4, #0xc]
add r0, r5, #0x0
bl FUN_02028048
@@ -137950,7 +137950,7 @@ FUN_020889B0: ; 0x020889B0
mov r1, #0x0
mov r2, #0x24
add r4, r0, #0x0
- blx MI_CpuFill8
+ bl MI_CpuFill8
mov r0, #0x37
str r0, [r4, #0x0]
str r5, [r4, #0x10]
@@ -138050,7 +138050,7 @@ FUN_02088A78: ; 0x02088A78
add r0, r4, #0x0
mov r1, #0x0
mov r2, #0x24
- blx MI_CpuFill8
+ bl MI_CpuFill8
add r0, r5, #0x0
bl FUN_0200627C
add r0, r6, #0x0
@@ -138221,7 +138221,7 @@ _02088BBA:
add r2, r0, #0x0
ldr r1, [r4, #0x18]
add r0, r5, #0x0
- blx memcpy
+ bl memcpy
ldr r0, [r4, #0x18]
bl FUN_02016A18
mov r0, #0x0
@@ -139359,7 +139359,7 @@ FUN_020893F0: ; 0x020893F0
bhs _0208940A
add r0, r1, #0x0
ldr r1, _02089410 ; =0x021C5C58
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
ldr r0, _02089414 ; =0x02106154
str r4, [r0, #0x0]
pop {r4, pc}
@@ -139382,7 +139382,7 @@ FUN_02089418: ; 0x02089418
cmp r0, r3
bne _02089438
ldr r0, _02089440 ; =0x021C5C58
- blx MIi_CpuCopy32
+ bl MIi_CpuCopy32
mov r0, #0x1
pop {r3, pc}
_02089434:
@@ -139404,7 +139404,7 @@ FUN_02089444: ; 0x02089444
bhs _0208945E
add r0, r1, #0x0
ldr r1, _02089464 ; =0x021C5C58
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
ldr r0, _02089468 ; =0x02106154
str r4, [r0, #0x0]
pop {r4, pc}
@@ -139427,7 +139427,7 @@ FUN_0208946C: ; 0x0208946C
cmp r0, r3
bne _0208948C
ldr r0, _02089494 ; =0x021C5C58
- blx MIi_CpuCopyFast
+ bl MIi_CpuCopyFast
mov r0, #0x1
pop {r3, pc}
_02089488:
@@ -139455,7 +139455,7 @@ FUN_02089498: ; 0x02089498
mov r1, #0x0
mov r2, #0x38
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -139604,7 +139604,7 @@ FUN_020895F0: ; 0x020895F0
add r0, r4, #0x0
bl FUN_020168D0
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
mov r0, #0x1
pop {r3-r5, pc}
@@ -140031,7 +140031,7 @@ FUN_02089960: ; 0x02089960
mov r1, #0x0
mov r2, #0x3c
add r4, r0, #0x0
- blx Call_FillMemWithValue
+ bl Call_FillMemWithValue
mov r0, #0x58
str r0, [r4, #0x0]
mov r0, #0x0
@@ -140667,7 +140667,7 @@ _02089EE4:
bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _02089EE4
nop
_02089EF4: .word 0xFFFFE0FF
@@ -140828,7 +140828,7 @@ _0208A078:
bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208A078
nop
_0208A088: .word 0xFFFFE0FF
@@ -140997,7 +140997,7 @@ _0208A21A:
bl FUN_02000FE8
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208A21A
.balign 4
_0208A228: .word 0xFFFFE0FF
@@ -141956,15 +141956,15 @@ _0208A9C6:
mov r1, #0x1
str r1, [r0, #0x0]
mov r0, #0x0
- blx OS_GetInitArenaHi
+ bl OS_GetInitArenaHi
add r1, r0, #0x0
mov r0, #0x0
- blx OS_SetArenaHi
+ bl OS_SetArenaHi
mov r0, #0x0
- blx OS_GetInitArenaLo
+ bl OS_GetInitArenaLo
add r1, r0, #0x0
mov r0, #0x0
- blx OS_SetArenaLo
+ bl OS_SetArenaLo
mov r1, #0x1
ldr r0, _0208ABCC ; =0x020FF4A4
add r2, r1, #0x0
@@ -141977,12 +141977,12 @@ _0208A9C6:
mov r1, #0x0
bl FUN_0200E3A0
mov r0, #0x1
- blx OS_DisableIrqMask
+ bl OS_DisableIrqMask
ldr r1, _0208ABD0 ; =FUN_0208A998
mov r0, #0x1
- blx OS_SetIrqFunction
+ bl OS_SetIrqFunction
mov r0, #0x1
- blx OS_EnableIrqMask
+ bl OS_EnableIrqMask
mov r0, #0x0
add r1, r0, #0x0
bl FUN_02015F10
@@ -142122,7 +142122,7 @@ _0208AB58:
bne _0208AB72
add r0, r4, #0x0
add r1, r4, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208AB58
_0208AB72:
ldr r5, _0208AC04 ; =0x04000130
@@ -142143,7 +142143,7 @@ _0208AB7A:
bne _0208AB9C
mov r0, #0x1
add r1, r0, #0x0
- blx OS_WaitIrq
+ bl OS_WaitIrq
b _0208AB7A
_0208AB9C:
ldr r1, _0208AC10 ; =0x00007FFF
@@ -142159,7 +142159,7 @@ _0208AB9C:
ldr r0, [sp, #0x10]
bl FUN_02016A18
mov r0, #0x0
- blx OS_ResetSystem
+ bl OS_ResetSystem
_0208ABC4:
add sp, #0x24
pop {r4-r7, pc}
diff --git a/arm9/asm/unk_0208AC14.s b/arm9/asm/unk_0208AC14.s
index e2ac3396..3c9e95d4 100644
--- a/arm9/asm/unk_0208AC14.s
+++ b/arm9/asm/unk_0208AC14.s
@@ -1950,7 +1950,7 @@ _0208C778:
_0208C79C:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x30
add r1, sp, #0x60
add r2, sp, #0x0
@@ -2253,7 +2253,7 @@ _0208CBF4:
_0208CC18:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x60
add r1, sp, #0x30
add r2, sp, #0x0
@@ -2479,7 +2479,7 @@ _0208CF4C:
_0208CF70:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x30
add r1, sp, #0x60
add r2, sp, #0x0
@@ -2703,7 +2703,7 @@ _0208D29C:
_0208D2C0:
add r0, sp, #0x60
mov r3, r2
- blx MTX_Scale43_
+ bl MTX_Scale43_
add r0, sp, #0x60
add r1, sp, #0x30
add r2, sp, #0x0
@@ -6273,7 +6273,7 @@ _020907AC:
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r12]
ldrsh r2, [r3, r2]
- blx MTX_RotX33_
+ bl MTX_RotX33_
b _02090838
_020907DC:
ldrh r1, [r0, #0x0]
@@ -6286,7 +6286,7 @@ _020907DC:
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r12]
ldrsh r2, [r3, r2]
- blx MTX_RotY33_
+ bl MTX_RotY33_
b _02090838
_0209080C:
ldrh r1, [r0, #0x0]
@@ -6299,7 +6299,7 @@ _0209080C:
mov r2, r1, lsl #0x1
ldrsh r1, [r3, r12]
ldrsh r2, [r3, r2]
- blx MTX_RotZ33_
+ bl MTX_RotZ33_
_02090838:
add r0, r4, #0x8
add r1, sp, #0x0
diff --git a/arm9/asm/unk_020910EC.s b/arm9/asm/unk_020910EC.s
index 2108f3de..c645cc70 100644
--- a/arm9/asm/unk_020910EC.s
+++ b/arm9/asm/unk_020910EC.s
@@ -4877,7 +4877,7 @@ _02095460:
cmp r0, #0x1
beq _02095488
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _02095460
_02095488:
mov r0, #0x1
@@ -4943,7 +4943,7 @@ _0209552C:
ldmeqia sp!, {r4-r8,pc}
_02095548: ; 0x02095548
mov r0, r4
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _0209552C
_02095554: ; 0x02095554
ldmia sp!, {r4-r8,pc}
@@ -4984,7 +4984,7 @@ _020955B0:
cmp r0, #0x1
beq _020955D8
mov r0, r7
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _020955B0
_020955D8:
mov r0, r4
@@ -5341,7 +5341,7 @@ _02095A74:
b _0209574C
_02095A7C:
ldr r0, [sp, #0xbc]
- blx SVC_WaitByLoop
+ bl SVC_WaitByLoop
b _0209574C
_02095A88:
add sp, sp, #0xc4
diff --git a/arm9/asm/unk_020AF030.s b/arm9/asm/unk_020AF030.s
index 3851b8c7..a107adc3 100644
--- a/arm9/asm/unk_020AF030.s
+++ b/arm9/asm/unk_020AF030.s
@@ -13216,7 +13216,7 @@ _020BA188:
str r1, [sp, #0x0]
ldrsh r1, [r5, #0x2]
str r1, [sp, #0x4]
- blx MI_Zero36B
+ bl MI_Zero36B
ldrh r0, [r4, #0x0]
add r1, r6, r11, lsl #0x2
add r5, r5, #0x4
@@ -17209,7 +17209,7 @@ FUN_020BD850: ; 0x020BD850
mov r5, r2, asr #0x4
ldrsh r7, [r1, #0x0]
ldrsh r6, [r1, #0x2]
- blx MI_Zero36B
+ bl MI_Zero36B
ldrh r0, [r4, #0x0]
add r1, r8, r5, lsl #0x2
ands r0, r0, #0x100
diff --git a/arm9/global.inc b/arm9/global.inc
index aa4d2a1b..5cee7a46 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -2653,15 +2653,23 @@
.extern FUN_020C3674
.extern FUN_020C36A8
.extern FUN_020C3910
+.extern FUN_02020C14
.extern FUN_020C3980
.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
.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/01/src/module_01.cpp b/arm9/modules/01/src/module_01.cpp
index 21b371e0..9da5f8d5 100644
--- a/arm9/modules/01/src/module_01.cpp
+++ b/arm9/modules/01/src/module_01.cpp
@@ -8,4 +8,4 @@ public:
THUMB_FUNC Unk021D7500() { unk4++; }
};
-static class Unk021D7500 UNK_021D7500;
+static Unk021D7500 UNK_021D7500;
diff --git a/arm9/modules/13/asm/module_13_arm2.s b/arm9/modules/13/asm/module_13_arm2.s
index 2e9dd8b5..ad4626d6 100644
--- a/arm9/modules/13/asm/module_13_arm2.s
+++ b/arm9/modules/13/asm/module_13_arm2.s
@@ -5214,7 +5214,7 @@ MOD13_02222D0C: ; 0x02222D0C
sub sp, sp, #4
ldr r0, _02222D74 ; =0x02243048
ldr r0, [r0]
- blx MOD13_02219798
+ bl MOD13_02219798
cmp r0, #0
ldreq r1, _02222D78 ; =0x02243044
moveq r0, #1
@@ -5246,7 +5246,7 @@ _02222D78: .word 0x02243044
MOD13_02222D7C: ; 0x02222D7C
stmdb sp!, {r4, lr}
mov r4, r0
- blx MOD13_02219C9C
+ bl MOD13_02219C9C
cmp r4, #0
beq _02222DC0
ldr r0, _02222DCC ; =0x02243048
@@ -5329,7 +5329,7 @@ _02222E48:
bl OS_GetMacAddress
ldr r0, _02222EE0 ; =MOD13_02222CFC
ldr r1, _02222EE4 ; =MOD13_02222CF0
- blx MOD13_02219D58
+ bl MOD13_02219D58
cmp r0, #0
addeq sp, sp, #0x104
ldmeqia sp!, {pc}
@@ -6270,7 +6270,7 @@ MOD13_02223AF8: ; 0x02223AF8
stmdb sp!, {lr}
sub sp, sp, #0xec
add r0, sp, #0
- blx MOD13_0221A794
+ bl MOD13_0221A794
cmp r0, #1
beq _02223B14
bl OS_Terminate
@@ -6313,7 +6313,7 @@ _02223B7C:
ldmia sp!, {pc}
_02223B88:
add r0, sp, #0
- blx MOD13_0221A794
+ bl MOD13_0221A794
cmp r0, #1
beq _02223B9C
bl OS_Terminate
@@ -6344,7 +6344,7 @@ _02223BDC: .word 0x02243078
MOD13_02223BE0: ; 0x02223BE0
stmdb sp!, {lr}
sub sp, sp, #4
- blx MOD13_0221A7EC
+ bl MOD13_0221A7EC
cmp r0, #1
beq _02223BF8
bl OS_Terminate
@@ -6373,7 +6373,7 @@ MOD13_02223C0C: ; 0x02223C0C
mov r0, #0xf
mov r1, #0x40
str ip, [sp, #4]
- blx MOD13_0221A8A4
+ bl MOD13_0221A8A4
cmp r0, #1
beq _02223C58
bl OS_Terminate
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/29/asm/module_29.s b/arm9/modules/29/asm/module_29.s
index db3f5ab8..65873dcc 100644
--- a/arm9/modules/29/asm/module_29.s
+++ b/arm9/modules/29/asm/module_29.s
@@ -383,7 +383,7 @@ _02254AE0:
mul r1, r0
add r0, r2, r1
lsl r0, r0, #0xc
- blx FX_Sqrt
+ bl FX_Sqrt
ldrb r1, [r5, #4]
lsl r2, r1, #2
ldr r1, _02254B6C ; =0x022550A8
@@ -724,13 +724,13 @@ MOD29_02254D10: ; 0x02254D10
add r0, r4, #0
add r0, #0x70
mov r1, #0x20
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r4, #0
mov r1, #0x1a
add r0, #0x70
lsl r1, r1, #4
mov r2, #0x20
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
add r0, r4, #0
add r0, #0x8e
ldrh r1, [r0]
@@ -740,13 +740,13 @@ MOD29_02254D10: ; 0x02254D10
add r0, r4, #0
add r0, #0x70
mov r1, #0x20
- blx DC_FlushRange
+ bl DC_FlushRange
add r0, r4, #0
mov r1, #7
add r0, #0x70
lsl r1, r1, #6
mov r2, #0x20
- blx GXS_LoadOBJPltt
+ bl GXS_LoadOBJPltt
ldr r0, [r4, #4]
mov r1, #6
bl FUN_02017CD0
diff --git a/arm9/modules/36/asm/module_36.s b/arm9/modules/36/asm/module_36.s
index d15b1d72..47ccf2cc 100644
--- a/arm9/modules/36/asm/module_36.s
+++ b/arm9/modules/36/asm/module_36.s
@@ -632,7 +632,7 @@ _02254CDA:
ldr r0, [sp, #0x28]
sub r0, r0, r4
lsl r0, r0, #0xc
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #0x10]
b _02254CF0
_02254CEC:
@@ -699,7 +699,7 @@ _02254D54:
add r1, r2, #0
sub r0, r0, r5
lsl r0, r0, #0xc
- blx _s32_div_f
+ bl _s32_div_f
str r0, [sp, #8]
b _02254D6C
_02254D68:
@@ -1225,7 +1225,7 @@ MOD36_0225510C: ; 0x0225510C
mov r2, #0x20
add r1, r1, r5
lsl r1, r1, #5
- blx GXS_LoadBG3Char
+ bl GXS_LoadBG3Char
add r0, r6, #0
bl MOD36_02254F48
add sp, #8
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/modules/38/asm/module_38.s b/arm9/modules/38/asm/module_38.s
new file mode 100644
index 00000000..e6f0160a
--- /dev/null
+++ b/arm9/modules/38/asm/module_38.s
@@ -0,0 +1,1193 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD38_02254840
+MOD38_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD38_02254854
+ ldr r1, _02254850 ; =MOD38_02254990
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD38_02254854
+_02254850: .word MOD38_02254990
+ thumb_func_end MOD38_02254840
+
+ thumb_func_start MOD38_02254854
+MOD38_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 MOD38_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD38_0225494C
+ 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 MOD38_0225494C
+ thumb_func_end MOD38_02254854
+
+ thumb_func_start MOD38_0225489C
+MOD38_0225489C: ; 0x0225489C
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ 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, #0xc
+ str r3, [r5, #4]
+ bl FUN_02089418
+ cmp r0, #0
+ bne _022548C0
+ add r0, r5, #0
+ add r0, #8
+ bl MOD38_02254908
+_022548C0:
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #0x14
+ add r1, #8
+ add r2, r6, #0
+ bl MOD38_02254BC4
+ cmp r0, #0
+ beq _022548F8
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254900 ; =0x0225511C
+ ldr r2, _02254904 ; =MOD38_02254988
+ mov r1, #6
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x1c]
+ mov r0, #0
+ str r0, [r5, #0x20]
+ add sp, #4
+ str r4, [r5, #0x18]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_022548F8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254900: .word 0x0225511C
+_02254904: .word MOD38_02254988
+ thumb_func_end MOD38_0225489C
+
+ thumb_func_start MOD38_02254908
+MOD38_02254908: ; 0x02254908
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ str r0, [r4]
+ strh r0, [r4, #6]
+ strh r0, [r4, #8]
+ mov r0, #0x12
+ strh r0, [r4, #0xa]
+ ldrh r0, [r4, #6]
+ ldrh r1, [r4, #8]
+ ldrh r2, [r4, #0xa]
+ bl MOD38_02254B2C
+ strh r0, [r4, #4]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254908
+
+ thumb_func_start MOD38_02254928
+MOD38_02254928: ; 0x02254928
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #8
+ mov r2, #0xc
+ bl FUN_020893F0
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D04
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD38_02254928
+
+ thumb_func_start MOD38_0225494C
+MOD38_0225494C: ; 0x0225494C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _02254982
+ ldr r0, [r4, #0x18]
+ ldr r1, [r4, #0x1c]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254984 ; =0x02255110
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254982
+ add r0, r4, #0
+ bl MOD38_02254928
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x18]
+ bl MOD20_022529A0
+_02254982:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254984: .word 0x02255110
+ thumb_func_end MOD38_0225494C
+
+ thumb_func_start MOD38_02254988
+MOD38_02254988: ; 0x02254988
+ str r0, [r3, #8]
+ str r1, [r3, #0x20]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD38_02254988
+
+ thumb_func_start MOD38_02254990
+MOD38_02254990: ; 0x02254990
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD38_02254990
+
+ thumb_func_start MOD38_02254998
+MOD38_02254998: ; 0x02254998
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549A0
+ b _022549A2
+_022549A0:
+ mov r1, #2
+_022549A2:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD38_02254998
+
+ thumb_func_start MOD38_022549AC
+MOD38_022549AC: ; 0x022549AC
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _022549BC
+ cmp r0, #1
+ beq _022549CC
+ b _022549E6
+_022549BC:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _022549E6
+_022549CC:
+ ldr r0, [r4, #0x14]
+ mov r1, #0
+ bl MOD38_02254D58
+ cmp r0, #0
+ beq _022549E6
+ ldr r0, [r4, #0x18]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD38_02254998
+_022549E6:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_022549AC
+
+ thumb_func_start MOD38_022549EC
+MOD38_022549EC: ; 0x022549EC
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ beq _02254A0C
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D64
+ cmp r0, #0
+ beq _02254A08
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD38_02254998
+_02254A08:
+ mov r0, #0
+ pop {r4, pc}
+_02254A0C:
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A1C
+ cmp r0, #1
+ beq _02254A32
+ cmp r0, #2
+ beq _02254AE4
+ b _02254AF2
+_02254A1C:
+ ldr r0, [r4, #0x20]
+ cmp r0, #1
+ bne _02254AF2
+ ldr r0, [r4, #0x14]
+ mov r1, #2
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AF2
+_02254A32:
+ ldr r0, [r4, #0x20]
+ cmp r0, #2
+ bne _02254A46
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl MOD38_02254D34
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254AF2
+_02254A46:
+ cmp r0, #3
+ bne _02254AF2
+ ldr r0, [r4, #8]
+ cmp r0, #5
+ bhi _02254AC0
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02254A5C: ; jump table
+ .short _02254A68 - _02254A5C - 2 ; case 0
+ .short _02254A78 - _02254A5C - 2 ; case 1
+ .short _02254A86 - _02254A5C - 2 ; case 2
+ .short _02254A96 - _02254A5C - 2 ; case 3
+ .short _02254AA4 - _02254A5C - 2 ; case 4
+ .short _02254AB4 - _02254A5C - 2 ; case 5
+_02254A68:
+ ldrh r0, [r4, #0xe]
+ mov r1, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0xe]
+ b _02254AC0
+_02254A78:
+ ldrh r0, [r4, #0xe]
+ mov r1, #1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0xe]
+ b _02254AC0
+_02254A86:
+ ldrh r0, [r4, #0x10]
+ mov r1, #0
+ mvn r1, r1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x10]
+ b _02254AC0
+_02254A96:
+ ldrh r0, [r4, #0x10]
+ mov r1, #1
+ mov r2, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x10]
+ b _02254AC0
+_02254AA4:
+ ldrh r0, [r4, #0x12]
+ mov r1, #0
+ mvn r1, r1
+ mov r2, #1
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x12]
+ b _02254AC0
+_02254AB4:
+ ldrh r0, [r4, #0x12]
+ mov r1, #1
+ add r2, r1, #0
+ bl MOD38_02254B6C
+ strh r0, [r4, #0x12]
+_02254AC0:
+ ldrh r0, [r4, #0xe]
+ ldrh r1, [r4, #0x10]
+ ldrh r2, [r4, #0x12]
+ bl MOD38_02254B2C
+ strh r0, [r4, #0xc]
+ ldr r0, [r4, #0x14]
+ mov r1, #3
+ bl MOD38_02254D34
+ ldr r0, [r4, #0x14]
+ mov r1, #4
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254AF2
+_02254AE4:
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D64
+ cmp r0, #0
+ beq _02254AF2
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254AF2:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_022549EC
+
+ thumb_func_start MOD38_02254AF8
+MOD38_02254AF8: ; 0x02254AF8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B08
+ cmp r0, #1
+ beq _02254B18
+ b _02254B26
+_02254B08:
+ ldr r0, [r4, #0x14]
+ mov r1, #1
+ bl MOD38_02254D34
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B26
+_02254B18:
+ ldr r0, [r4, #0x14]
+ bl MOD38_02254D64
+ cmp r0, #0
+ beq _02254B26
+ mov r0, #1
+ pop {r4, pc}
+_02254B26:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254AF8
+
+ thumb_func_start MOD38_02254B2C
+MOD38_02254B2C: ; 0x02254B2C
+ push {r4, r5}
+ ldr r5, _02254B68 ; =0x02255134
+ mov r3, #0x12
+ add r4, r0, #0
+ mul r4, r3
+ add r4, r5, r4
+ add r0, r3, #0
+ ldrsb r5, [r4, r1]
+ sub r0, #0x1c
+ cmp r5, r0
+ beq _02254B4E
+ cmp r2, #0x12
+ beq _02254B54
+ ldrsb r0, [r4, r2]
+ sub r3, #0x1c
+ cmp r0, r3
+ bne _02254B54
+_02254B4E:
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02254B54:
+ mov r0, #3
+ add r0, r0, r5
+ cmp r2, #0x12
+ beq _02254B64
+ cmp r2, r1
+ beq _02254B64
+ ldrsb r1, [r4, r2]
+ add r0, r0, r1
+_02254B64:
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02254B68: .word 0x02255134
+ thumb_func_end MOD38_02254B2C
+
+ thumb_func_start MOD38_02254B6C
+MOD38_02254B6C: ; 0x02254B6C
+ push {r4, r5}
+ ldr r5, _02254BC0 ; =0x02255278
+ mov r4, #0
+_02254B72:
+ ldrb r3, [r5]
+ cmp r3, r0
+ beq _02254B80
+ add r4, r4, #1
+ add r5, r5, #1
+ cmp r4, #0x11
+ blo _02254B72
+_02254B80:
+ cmp r4, #0x11
+ bne _02254B94
+ cmp r1, #0
+ ble _02254B8E
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+_02254B8E:
+ mov r0, #8
+ pop {r4, r5}
+ bx lr
+_02254B94:
+ add r4, r4, r1
+ cmp r4, #0x11
+ blt _02254BA6
+ cmp r2, #0
+ beq _02254BA4
+ mov r0, #0x12
+ pop {r4, r5}
+ bx lr
+_02254BA4:
+ mov r4, #0
+_02254BA6:
+ cmp r4, #0
+ bge _02254BB6
+ cmp r2, #0
+ beq _02254BB4
+ mov r0, #0x12
+ pop {r4, r5}
+ bx lr
+_02254BB4:
+ mov r4, #0x10
+_02254BB6:
+ ldr r0, _02254BC0 ; =0x02255278
+ ldrb r0, [r0, r4]
+ pop {r4, r5}
+ bx lr
+ nop
+_02254BC0: .word 0x02255278
+ thumb_func_end MOD38_02254B6C
+
+ thumb_func_start MOD38_02254BC4
+MOD38_02254BC4: ; 0x02254BC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0xc0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254C2A
+ add r0, #8
+ mov r1, #8
+ bl MOD20_022536F4
+ str r6, [r4]
+ bl MOD20_02252D34
+ str r0, [r4, #4]
+ bl MOD20_02252D24
+ str r0, [r4, #0x30]
+ ldr r2, _02254C30 ; =0x00000235
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #8
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xb4
+ str r0, [r1]
+ ldr r2, _02254C34 ; =0x00000195
+ mov r0, #1
+ mov r1, #0x1a
+ mov r3, #8
+ bl FUN_0200A86C
+ add r1, r4, #0
+ add r1, #0xb8
+ str r0, [r1]
+ mov r0, #0x80
+ mov r1, #8
+ bl FUN_020219F4
+ add r1, r4, #0
+ add r1, #0xbc
+ str r0, [r1]
+ add r0, r4, #0
+ bl MOD38_02254C38
+ str r4, [r5]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254C2A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02254C30: .word 0x00000235
+_02254C34: .word 0x00000195
+ thumb_func_end MOD38_02254BC4
+
+ thumb_func_start MOD38_02254C38
+MOD38_02254C38: ; 0x02254C38
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ 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, #0x40
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r6, #0
+ add r0, #0x60
+ mov r1, #0xc
+ mov r2, #0x3e
+ mov r3, #0x3f
+ bl MOD20_02253FBC
+ add r0, r6, #0
+ str r0, [sp, #0xc]
+ add r0, #0x60
+ ldr r4, _02254CBC ; =0x02255300
+ mov r7, #0
+ add r5, r6, #0
+ str r0, [sp, #0xc]
+_02254C72:
+ 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, #6
+ blt _02254C72
+ add r0, r6, #0
+ str r0, [sp, #0x10]
+ add r0, #0x60
+ mov r7, #0
+ add r4, r6, #0
+ mov r5, #0x2c
+ str r0, [sp, #0x10]
+_02254C96:
+ ldr r0, [r6, #0x30]
+ ldr r1, _02254CC0 ; =0x0225528C
+ ldr r2, [sp, #0x10]
+ bl MOD20_02253E74
+ mov r2, #3
+ lsl r1, r5, #0xc
+ lsl r2, r2, #0x10
+ str r0, [r4, #0x4c]
+ bl MOD20_02253F64
+ add r7, r7, #1
+ add r4, r4, #4
+ add r5, #8
+ cmp r7, #5
+ blt _02254C96
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254CBC: .word 0x02255300
+_02254CC0: .word 0x0225528C
+ thumb_func_end MOD38_02254C38
+
+ thumb_func_start MOD38_02254CC4
+MOD38_02254CC4: ; 0x02254CC4
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ mov r6, #0
+ add r4, r5, #0
+_02254CCC:
+ ldr r1, [r4, #0x34]
+ cmp r1, #0
+ beq _02254CD8
+ ldr r0, [r5, #0x30]
+ bl MOD20_02253F14
+_02254CD8:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #6
+ blt _02254CCC
+ mov r6, #0
+ add r4, r5, #0
+_02254CE4:
+ ldr r1, [r4, #0x4c]
+ cmp r1, #0
+ beq _02254CF0
+ ldr r0, [r5, #0x30]
+ bl MOD20_02253F14
+_02254CF0:
+ add r6, r6, #1
+ add r4, r4, #4
+ cmp r6, #5
+ blt _02254CE4
+ add r5, #0x60
+ add r0, r5, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254CC4
+
+ thumb_func_start MOD38_02254D04
+MOD38_02254D04: ; 0x02254D04
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254D32
+ add r0, #0xbc
+ ldr r0, [r0]
+ bl FUN_02021A20
+ add r0, r4, #0
+ add r0, #0xb4
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ add r0, #0xb8
+ ldr r0, [r0]
+ bl FUN_0200A8B8
+ add r0, r4, #0
+ bl MOD38_02254CC4
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254D32:
+ pop {r4, pc}
+ thumb_func_end MOD38_02254D04
+
+ thumb_func_start MOD38_02254D34
+MOD38_02254D34: ; 0x02254D34
+ 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, _02254D54 ; =0x022552B8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254D54: .word 0x022552B8
+ thumb_func_end MOD38_02254D34
+
+ thumb_func_start MOD38_02254D58
+MOD38_02254D58: ; 0x02254D58
+ ldr r3, _02254D60 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254D60: .word MOD20_02253794
+ thumb_func_end MOD38_02254D58
+
+ thumb_func_start MOD38_02254D64
+MOD38_02254D64: ; 0x02254D64
+ ldr r3, _02254D6C ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254D6C: .word MOD20_022537B8
+ thumb_func_end MOD38_02254D64
+
+ thumb_func_start MOD38_02254D70
+MOD38_02254D70: ; 0x02254D70
+ 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 MOD38_02254D70
+
+ thumb_func_start MOD38_02254D84
+MOD38_02254D84: ; 0x02254D84
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ ldr r0, [r5, #4]
+ ldr r2, _02254E1C ; =0x0225529C
+ 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, #0x3d
+ 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, #0x3c
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ add r0, r5, #0
+ add r1, r7, #0
+ lsr r2, r4, #5
+ bl MOD38_02254E28
+ ldr r0, [r5, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _02254E20 ; =0x04001000
+ ldr r0, _02254E24 ; =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, r6, #0
+ bl MOD38_02254D70
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_02254E1C: .word 0x0225529C
+_02254E20: .word 0x04001000
+_02254E24: .word 0xFFFFE0FF
+ thumb_func_end MOD38_02254D84
+
+ thumb_func_start MOD38_02254E28
+MOD38_02254E28: ; 0x02254E28
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r0, #0
+ mov r0, #0xf
+ add r4, r2, #0
+ str r0, [sp]
+ mov r2, #6
+ str r2, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ add r6, r1, #0
+ str r0, [sp, #0x10]
+ add r1, r5, #0
+ ldr r0, [r5, #4]
+ add r1, #0x74
+ add r3, r2, #0
+ bl FUN_02019064
+ mov r0, #4
+ str r0, [sp]
+ mov r2, #6
+ add r1, r5, #0
+ str r2, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0xc
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0x84
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #8
+ str r0, [sp]
+ mov r2, #6
+ add r1, r5, #0
+ str r2, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ str r0, [sp, #0xc]
+ add r0, r4, #0
+ add r0, #0x18
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0x94
+ mov r3, #0x10
+ bl FUN_02019064
+ mov r0, #0x13
+ str r0, [sp]
+ mov r0, #0x16
+ str r0, [sp, #4]
+ mov r0, #2
+ str r0, [sp, #8]
+ mov r0, #0
+ add r1, r5, #0
+ add r4, #0x24
+ str r0, [sp, #0xc]
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ str r0, [sp, #0x10]
+ ldr r0, [r5, #4]
+ add r1, #0xa4
+ mov r2, #6
+ mov r3, #3
+ bl FUN_02019064
+ add r0, r5, #0
+ add r0, #0x74
+ bl FUN_02019270
+ add r0, r5, #0
+ add r0, #0x84
+ bl FUN_02019270
+ add r0, r5, #0
+ add r0, #0x94
+ bl FUN_02019270
+ add r0, r5, #0
+ add r0, #0xa4
+ bl FUN_02019270
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD38_02254FCC
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254E28
+
+ thumb_func_start MOD38_02254EF4
+MOD38_02254EF4: ; 0x02254EF4
+ push {r4, lr}
+ add r4, r0, #0
+ add r0, #0x74
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x84
+ bl FUN_02019178
+ add r0, r4, #0
+ add r0, #0x94
+ bl FUN_02019178
+ add r4, #0xa4
+ add r0, r4, #0
+ bl FUN_02019178
+ pop {r4, pc}
+ thumb_func_end MOD38_02254EF4
+
+ thumb_func_start MOD38_02254F18
+MOD38_02254F18: ; 0x02254F18
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ bl MOD38_02254EF4
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD38_02254F18
+
+ thumb_func_start MOD38_02254F38
+MOD38_02254F38: ; 0x02254F38
+ 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
+ ldr r2, [r0]
+ mov r1, #1
+ add r0, r2, #0
+ tst r0, r1
+ beq _02254F56
+ mov r1, #3
+_02254F56:
+ lsl r0, r2, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x34]
+ bl MOD20_02253F28
+ ldr r0, _02254F70 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ nop
+_02254F70: .word 0x00000663
+ thumb_func_end MOD38_02254F38
+
+ thumb_func_start MOD38_02254F74
+MOD38_02254F74: ; 0x02254F74
+ 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
+ ldr r2, [r0]
+ mov r0, #1
+ tst r0, r2
+ beq _02254F92
+ mov r1, #2
+ b _02254F94
+_02254F92:
+ mov r1, #0
+_02254F94:
+ lsl r0, r2, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x34]
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254F74
+
+ thumb_func_start MOD38_02254FA8
+MOD38_02254FA8: ; 0x02254FA8
+ 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 MOD38_02254FCC
+ add r0, r5, #0
+ bl MOD38_02254D70
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254FA8
+
+ thumb_func_start MOD38_02254FCC
+MOD38_02254FCC: ; 0x02254FCC
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ add r1, r5, #0
+ ldrh r2, [r4, #6]
+ add r1, #0x74
+ bl MOD38_0225500C
+ add r1, r5, #0
+ ldrh r2, [r4, #8]
+ add r0, r5, #0
+ add r1, #0x84
+ bl MOD38_0225500C
+ add r1, r5, #0
+ ldrh r2, [r4, #0xa]
+ add r0, r5, #0
+ add r1, #0x94
+ bl MOD38_0225500C
+ add r1, r5, #0
+ ldrh r2, [r4, #4]
+ add r0, r5, #0
+ add r1, #0xa4
+ bl MOD38_02255084
+ ldrh r1, [r4, #4]
+ add r0, r5, #0
+ bl MOD38_022550D0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD38_02254FCC
+
+ thumb_func_start MOD38_0225500C
+MOD38_0225500C: ; 0x0225500C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r6, r2, #0
+ bl FUN_02019620
+ cmp r6, #0x12
+ bne _02255036
+ add r0, r5, #0
+ add r2, r5, #0
+ add r0, #0xb8
+ add r2, #0xbc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ mov r1, #6
+ bl FUN_0200A8E0
+ b _02255048
+_02255036:
+ add r0, r5, #0
+ add r2, r5, #0
+ add r0, #0xb4
+ add r2, #0xbc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+_02255048:
+ add r1, r5, #0
+ add r1, #0xbc
+ mov r0, #0
+ ldr r1, [r1]
+ add r2, r0, #0
+ bl FUN_02002E14
+ mov r1, #0
+ add r3, r0, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _02255080 ; =0x00010104
+ add r5, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5]
+ mov r5, #0x30
+ sub r3, r5, r3
+ add r0, r4, #0
+ lsr r3, r3, #1
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02255080: .word 0x00010104
+ thumb_func_end MOD38_0225500C
+
+ thumb_func_start MOD38_02255084
+MOD38_02255084: ; 0x02255084
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r4, r1, #0
+ add r5, r0, #0
+ add r0, r4, #0
+ mov r1, #4
+ add r6, r2, #0
+ bl FUN_02019620
+ add r0, r5, #0
+ add r2, r5, #0
+ add r0, #0xb8
+ add r2, #0xbc
+ ldr r0, [r0]
+ ldr r2, [r2]
+ add r1, r6, #0
+ bl FUN_0200A8E0
+ mov r1, #0
+ str r1, [sp]
+ mov r0, #0xff
+ str r0, [sp, #4]
+ ldr r0, _022550CC ; =0x00010104
+ add r5, #0xbc
+ str r0, [sp, #8]
+ str r1, [sp, #0xc]
+ ldr r2, [r5]
+ add r0, r4, #0
+ add r3, r1, #0
+ bl FUN_0201BDE0
+ add r0, r4, #0
+ bl FUN_02019548
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_022550CC: .word 0x00010104
+ thumb_func_end MOD38_02255084
+
+ thumb_func_start MOD38_022550D0
+MOD38_022550D0: ; 0x022550D0
+ push {r3, r4, r5, r6, r7, lr}
+ str r0, [sp]
+ add r6, r1, #0
+ ldr r4, _0225510C ; =0x00000000
+ beq _022550EE
+ add r5, r0, #0
+ mov r7, #4
+_022550DE:
+ ldr r0, [r5, #0x4c]
+ add r1, r7, #0
+ bl MOD20_02253F28
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, r6
+ blo _022550DE
+_022550EE:
+ cmp r4, #5
+ bhs _0225510A
+ ldr r0, [sp]
+ lsl r1, r4, #2
+ add r5, r0, r1
+ mov r6, #5
+_022550FA:
+ ldr r0, [r5, #0x4c]
+ add r1, r6, #0
+ bl MOD20_02253F28
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #5
+ blo _022550FA
+_0225510A:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_0225510C: .word 0x00000000
+ thumb_func_end MOD38_022550D0
+
+ .section .rodata
+ ; 0x02255110
+ .incbin "baserom.nds", 0x290ED0, 0x250
+
+ .section .sinit
+ .word MOD38_02254840
diff --git a/arm9/modules/39/asm/module_39.s b/arm9/modules/39/asm/module_39.s
new file mode 100644
index 00000000..c5946d62
--- /dev/null
+++ b/arm9/modules/39/asm/module_39.s
@@ -0,0 +1,1457 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD39_02254840
+MOD39_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD39_02254854
+ ldr r1, _02254850 ; =MOD39_022549D4
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD39_02254854
+_02254850: .word MOD39_022549D4
+ thumb_func_end MOD39_02254840
+
+ thumb_func_start MOD39_02254854
+MOD39_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x68
+ 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 MOD39_0225489C
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD39_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 MOD39_02254998
+ thumb_func_end MOD39_02254854
+
+ thumb_func_start MOD39_0225489C
+MOD39_0225489C: ; 0x0225489C
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x14
+ str r0, [sp, #4]
+ add r0, r1, #0
+ str r1, [sp, #8]
+ str r2, [sp, #0xc]
+ bl MOD20_02252C40
+ bl FUN_0206BB1C
+ str r0, [sp, #0x10]
+ bl FUN_0206B9AC
+ ldr r1, [sp, #4]
+ mov r6, #0
+ add r1, #0x34
+ strb r0, [r1]
+ ldr r0, [sp, #4]
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, #0
+ ble _02254906
+ ldr r4, [sp, #4]
+ add r5, r4, #0
+_022548CC:
+ ldr r0, [sp, #0x10]
+ add r1, r6, #0
+ bl FUN_0206B9B0
+ add r7, r0, #0
+ bl FUN_0206B688
+ str r0, [r4, #4]
+ add r0, r7, #0
+ mov r1, #5
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r5, #0x1c]
+ add r0, r7, #0
+ mov r1, #0x70
+ mov r2, #0
+ bl FUN_020671BC
+ strh r0, [r5, #0x28]
+ ldr r0, [sp, #4]
+ str r7, [r4, #0x48]
+ add r0, #0x34
+ ldrb r0, [r0]
+ add r6, r6, #1
+ add r4, r4, #4
+ add r5, r5, #2
+ cmp r6, r0
+ blt _022548CC
+_02254906:
+ ldr r0, [sp, #4]
+ mov r1, #0
+ add r0, #0x36
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, #1
+ bls _0225491A
+ mov r1, #1
+_0225491A:
+ ldr r0, [sp, #4]
+ ldr r2, [sp, #0xc]
+ add r0, #0x37
+ strb r1, [r0]
+ ldr r0, [sp, #4]
+ ldr r1, [sp, #4]
+ add r0, #0x38
+ add r1, r1, #4
+ bl MOD39_02254C1C
+ cmp r0, #0
+ beq _02254964
+ ldr r0, [sp, #4]
+ mov r1, #0
+ strb r1, [r0]
+ strb r1, [r0, #1]
+ strb r1, [r0, #2]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _0225496C ; =0x02255300
+ ldr r2, _02254970 ; =MOD39_0225498C
+ ldr r3, [sp, #4]
+ mov r1, #3
+ bl MOD20_02254130
+ ldr r1, [sp, #4]
+ str r0, [r1, #0x40]
+ ldr r0, [sp, #4]
+ mov r1, #0
+ add r0, #0x46
+ strh r1, [r0]
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #4]
+ add sp, #0x14
+ str r1, [r0, #0x3c]
+ mov r0, #1
+ pop {r4, r5, r6, r7, pc}
+_02254964:
+ mov r0, #0
+ add sp, #0x14
+ pop {r4, r5, r6, r7, pc}
+ nop
+_0225496C: .word 0x02255300
+_02254970: .word MOD39_0225498C
+ thumb_func_end MOD39_0225489C
+
+ thumb_func_start MOD39_02254974
+MOD39_02254974: ; 0x02254974
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x40]
+ bl MOD20_02254198
+ ldr r0, [r4, #0x38]
+ bl MOD39_02254C58
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD39_02254974
+
+ thumb_func_start MOD39_0225498C
+MOD39_0225498C: ; 0x0225498C
+ add r2, r3, #0
+ add r2, #0x44
+ strh r0, [r2]
+ add r3, #0x46
+ strh r1, [r3]
+ bx lr
+ thumb_func_end MOD39_0225498C
+
+ thumb_func_start MOD39_02254998
+MOD39_02254998: ; 0x02254998
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #3
+ bhs _022549CE
+ ldr r0, [r4, #0x3c]
+ ldr r1, [r4, #0x40]
+ bl MOD20_02252C14
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022549D0 ; =0x0225530C
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _022549CE
+ add r0, r4, #0
+ bl MOD39_02254974
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0x3c]
+ bl MOD20_022529A0
+_022549CE:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022549D0: .word 0x0225530C
+ thumb_func_end MOD39_02254998
+
+ thumb_func_start MOD39_022549D4
+MOD39_022549D4: ; 0x022549D4
+ mov r1, #1
+ strb r1, [r0, #2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_022549D4
+
+ thumb_func_start MOD39_022549DC
+MOD39_022549DC: ; 0x022549DC
+ ldrb r2, [r0, #2]
+ cmp r2, #0
+ bne _022549E4
+ b _022549E6
+_022549E4:
+ mov r1, #2
+_022549E6:
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_022549DC
+
+ thumb_func_start MOD39_022549F0
+MOD39_022549F0: ; 0x022549F0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254A00
+ cmp r0, #1
+ beq _02254A10
+ b _02254A2A
+_02254A00:
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD39_02254DA4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254A2A
+_02254A10:
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD39_02254DC8
+ cmp r0, #0
+ beq _02254A2A
+ ldr r0, [r4, #0x3c]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD39_022549DC
+_02254A2A:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_022549F0
+
+ thumb_func_start MOD39_02254A30
+MOD39_02254A30: ; 0x02254A30
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #2]
+ cmp r1, #0
+ beq _02254A44
+ mov r1, #2
+ bl MOD39_022549DC
+ mov r0, #0
+ pop {r4, pc}
+_02254A44:
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _02254B48
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254A56: ; jump table
+ .short _02254A5E - _02254A56 - 2 ; case 0
+ .short _02254ACC - _02254A56 - 2 ; case 1
+ .short _02254ADC - _02254A56 - 2 ; case 2
+ .short _02254B38 - _02254A56 - 2 ; case 3
+_02254A5E:
+ add r1, r4, #0
+ add r1, #0x46
+ ldrh r1, [r1]
+ cmp r1, #1
+ bne _02254B48
+ add r1, r4, #0
+ add r1, #0x44
+ ldrh r1, [r1]
+ cmp r1, #0
+ beq _02254AA8
+ cmp r1, #1
+ beq _02254A7C
+ cmp r1, #2
+ beq _02254A92
+ b _02254AC4
+_02254A7C:
+ bl MOD39_02254B50
+ cmp r0, #0
+ beq _02254AC4
+ ldr r0, [r4, #0x38]
+ mov r1, #4
+ bl MOD39_02254DA4
+ mov r0, #1
+ strb r0, [r4, #1]
+ b _02254AC4
+_02254A92:
+ bl MOD39_02254B9C
+ cmp r0, #0
+ beq _02254AC4
+ ldr r0, [r4, #0x38]
+ mov r1, #5
+ bl MOD39_02254DA4
+ mov r0, #1
+ strb r0, [r4, #1]
+ b _02254AC4
+_02254AA8:
+ add r0, #0x34
+ ldrb r0, [r0]
+ cmp r0, #1
+ bls _02254ABE
+ ldr r0, [r4, #0x38]
+ mov r1, #2
+ bl MOD39_02254DA4
+ mov r0, #2
+ strb r0, [r4, #1]
+ b _02254AC4
+_02254ABE:
+ ldr r0, _02254B4C ; =0x0000066E
+ bl MOD20_02252B28
+_02254AC4:
+ mov r0, #0
+ add r4, #0x46
+ strh r0, [r4]
+ b _02254B48
+_02254ACC:
+ ldr r0, [r4, #0x38]
+ bl MOD39_02254DD4
+ cmp r0, #0
+ beq _02254B48
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254B48
+_02254ADC:
+ add r0, #0x46
+ ldrh r0, [r0]
+ cmp r0, #2
+ bne _02254AF2
+ ldr r0, [r4, #0x38]
+ mov r1, #3
+ bl MOD39_02254DA4
+ mov r0, #0
+ strb r0, [r4, #1]
+ b _02254B48
+_02254AF2:
+ cmp r0, #3
+ bne _02254B48
+ add r0, r4, #0
+ add r0, #0x36
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ str r0, [r4, #0x60]
+ add r0, r4, #0
+ add r0, #0x37
+ ldrb r0, [r0]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r0, [r0, #0x48]
+ str r0, [r4, #0x64]
+ add r0, r4, #0
+ add r0, #0x60
+ bl MOD05_021ED9B4
+ add r1, r4, #0
+ add r1, #0x35
+ strb r0, [r1]
+ ldr r0, [r4, #0x38]
+ mov r1, #3
+ bl MOD39_02254DA4
+ ldr r0, [r4, #0x38]
+ mov r1, #6
+ bl MOD39_02254DA4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B48
+_02254B38:
+ ldr r0, [r4, #0x38]
+ mov r1, #6
+ bl MOD39_02254DC8
+ cmp r0, #0
+ beq _02254B48
+ mov r0, #0
+ strb r0, [r4, #1]
+_02254B48:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02254B4C: .word 0x0000066E
+ thumb_func_end MOD39_02254A30
+
+ thumb_func_start MOD39_02254B50
+MOD39_02254B50: ; 0x02254B50
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ cmp r1, #2
+ bls _02254B94
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x36
+_02254B62:
+ ldrb r3, [r2]
+ add r3, r3, #1
+ strb r3, [r2]
+ add r3, r0, #0
+ add r3, #0x36
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x34
+ ldrb r3, [r3]
+ cmp r4, r3
+ blo _02254B7E
+ add r3, r0, #0
+ add r3, #0x36
+ strb r1, [r3]
+_02254B7E:
+ add r3, r0, #0
+ add r3, #0x36
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x37
+ ldrb r3, [r3]
+ cmp r4, r3
+ beq _02254B62
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02254B94:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_02254B50
+
+ thumb_func_start MOD39_02254B9C
+MOD39_02254B9C: ; 0x02254B9C
+ push {r3, r4}
+ add r1, r0, #0
+ add r1, #0x34
+ ldrb r1, [r1]
+ cmp r1, #2
+ bls _02254BE0
+ add r2, r0, #0
+ mov r1, #0
+ add r2, #0x37
+_02254BAE:
+ ldrb r3, [r2]
+ add r3, r3, #1
+ strb r3, [r2]
+ add r3, r0, #0
+ add r3, #0x37
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x34
+ ldrb r3, [r3]
+ cmp r4, r3
+ blo _02254BCA
+ add r3, r0, #0
+ add r3, #0x37
+ strb r1, [r3]
+_02254BCA:
+ add r3, r0, #0
+ add r3, #0x37
+ ldrb r4, [r3]
+ add r3, r0, #0
+ add r3, #0x36
+ ldrb r3, [r3]
+ cmp r4, r3
+ beq _02254BAE
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+_02254BE0:
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD39_02254B9C
+
+ thumb_func_start MOD39_02254BE8
+MOD39_02254BE8: ; 0x02254BE8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254BF8
+ cmp r0, #1
+ beq _02254C08
+ b _02254C16
+_02254BF8:
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD39_02254DA4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254C16
+_02254C08:
+ ldr r0, [r4, #0x38]
+ bl MOD39_02254DD4
+ cmp r0, #0
+ beq _02254C16
+ mov r0, #1
+ pop {r4, pc}
+_02254C16:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254BE8
+
+ thumb_func_start MOD39_02254C1C
+MOD39_02254C1C: ; 0x02254C1C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0x88
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254C52
+ 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 MOD39_02254C6C
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02254C52:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254C1C
+
+ thumb_func_start MOD39_02254C58
+MOD39_02254C58: ; 0x02254C58
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02254C68
+ bl MOD39_02254D78
+ add r0, r4, #0
+ bl FUN_02016A18
+_02254C68:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254C58
+
+ thumb_func_start MOD39_02254C6C
+MOD39_02254C6C: ; 0x02254C6C
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ add r5, r0, #0
+ mov r0, #1
+ str r1, [sp, #0xc]
+ bl MOD20_022539C4
+ 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, #0x4a
+ bl FUN_02006A34
+ mov r1, #0x14
+ bl _u32_div_f
+ ldr r1, [sp, #0xc]
+ str r0, [r5, #0x64]
+ add r2, r1, #0
+ add r2, #0x30
+ ldrb r2, [r2]
+ mov r3, #0
+ bl MOD20_02253A04
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x3c
+ mov r1, #0xc
+ mov r2, #0x48
+ mov r3, #0x49
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r5, #0
+ add r0, #0x50
+ mov r1, #0xc
+ mov r2, #5
+ mov r3, #6
+ bl MOD20_02253FBC
+ add r0, r5, #0
+ str r0, [sp, #0x10]
+ add r0, #0x3c
+ ldr r7, _02254D74 ; =0x02255408
+ mov r4, #0
+ add r6, r5, #0
+ str r0, [sp, #0x10]
+_02254CD6:
+ ldr r0, [r5, #0x20]
+ ldr r2, [sp, #0x10]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ str r0, [r6, #0x24]
+ add r4, r4, #1
+ add r7, #0x10
+ add r6, r6, #4
+ cmp r4, #4
+ blt _02254CD6
+ cmp r4, #6
+ bge _02254D18
+ ldr r1, _02254D74 ; =0x02255408
+ lsl r0, r4, #4
+ add r7, r1, r0
+ lsl r0, r4, #2
+ add r6, r5, r0
+ add r0, r5, #0
+ str r0, [sp, #0x14]
+ add r0, #0x50
+ str r0, [sp, #0x14]
+_02254D02:
+ ldr r0, [r5, #0x20]
+ ldr r2, [sp, #0x14]
+ add r1, r7, #0
+ bl MOD20_02253E74
+ str r0, [r6, #0x24]
+ add r4, r4, #1
+ add r7, #0x10
+ add r6, r6, #4
+ cmp r4, #6
+ blt _02254D02
+_02254D18:
+ ldr r0, [sp, #0xc]
+ add r0, #0x32
+ ldrb r2, [r0]
+ ldr r0, [sp, #0xc]
+ lsl r1, r2, #1
+ add r3, r0, r1
+ ldrh r0, [r3, #0x24]
+ mov r1, #4
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r5, #0
+ bl MOD39_02254FA4
+ ldr r0, [sp, #0xc]
+ add r0, #0x33
+ ldrb r2, [r0]
+ ldr r0, [sp, #0xc]
+ lsl r1, r2, #1
+ add r3, r0, r1
+ ldrh r0, [r3, #0x24]
+ mov r1, #5
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r5, #0
+ bl MOD39_02254FA4
+ ldr r0, [sp, #0xc]
+ add r0, #0x30
+ str r0, [sp, #0xc]
+ ldrb r0, [r0]
+ cmp r0, #1
+ bhi _02254D70
+ ldr r0, [r5, #0x38]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x30]
+ mov r1, #1
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x24]
+ mov r1, #0xa
+ bl MOD20_02253F28
+_02254D70:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254D74: .word 0x02255408
+ thumb_func_end MOD39_02254C6C
+
+ thumb_func_start MOD39_02254D78
+MOD39_02254D78: ; 0x02254D78
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r0, #0x50
+ bl MOD20_02254014
+ add r0, r6, #0
+ add r0, #0x3c
+ bl MOD20_02254014
+ mov r4, #0
+ add r5, r6, #0
+_02254D8E:
+ ldr r1, [r5, #0x24]
+ cmp r1, #0
+ beq _02254D9A
+ ldr r0, [r6, #0x20]
+ bl MOD20_02253F14
+_02254D9A:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #6
+ blt _02254D8E
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD39_02254D78
+
+ thumb_func_start MOD39_02254DA4
+MOD39_02254DA4: ; 0x02254DA4
+ 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, _02254DC4 ; =0x022553A8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02254DC4: .word 0x022553A8
+ thumb_func_end MOD39_02254DA4
+
+ thumb_func_start MOD39_02254DC8
+MOD39_02254DC8: ; 0x02254DC8
+ ldr r3, _02254DD0 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_02254DD0: .word MOD20_02253794
+ thumb_func_end MOD39_02254DC8
+
+ thumb_func_start MOD39_02254DD4
+MOD39_02254DD4: ; 0x02254DD4
+ ldr r3, _02254DDC ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_02254DDC: .word MOD20_022537B8
+ thumb_func_end MOD39_02254DD4
+
+ thumb_func_start MOD39_02254DE0
+MOD39_02254DE0: ; 0x02254DE0
+ 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 MOD39_02254DE0
+
+ thumb_func_start MOD39_02254DF4
+MOD39_02254DF4: ; 0x02254DF4
+ push {r4, r5, lr}
+ sub sp, #0x14
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD20_022538A4
+ ldr r0, [r5, #4]
+ ldr r2, _02254E7C ; =0x02255330
+ 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, #0x47
+ 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, #0x46
+ 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, _02254E80 ; =0x04001000
+ ldr r0, _02254E84 ; =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 MOD39_02254DE0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ .align 2, 0
+_02254E7C: .word 0x02255330
+_02254E80: .word 0x04001000
+_02254E84: .word 0xFFFFE0FF
+ thumb_func_end MOD39_02254DF4
+
+ thumb_func_start MOD39_02254E88
+MOD39_02254E88: ; 0x02254E88
+ 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 _02254EA4
+ cmp r0, #1
+ beq _02254EB0
+ pop {r3, r4, r5, pc}
+_02254EA4:
+ mov r0, #1
+ str r0, [r4, #0x68]
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r3, r4, r5, pc}
+_02254EB0:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD39_02254DC8
+ cmp r0, #0
+ beq _02254ECA
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD39_02254DE0
+_02254ECA:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD39_02254E88
+
+ thumb_func_start MOD39_02254ECC
+MOD39_02254ECC: ; 0x02254ECC
+ 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
+ ldr r0, _02254EF4 ; =0x00000669
+ bl MOD20_02252B28
+ ldr r0, [r4, #0x24]
+ mov r1, #0xa
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02254EF4: .word 0x00000669
+ thumb_func_end MOD39_02254ECC
+
+ thumb_func_start MOD39_02254EF8
+MOD39_02254EF8: ; 0x02254EF8
+ 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
+ ldr r0, [r4, #0x24]
+ mov r1, #9
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254EF8
+
+ thumb_func_start MOD39_02254F1C
+MOD39_02254F1C: ; 0x02254F1C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ add r0, #0x32
+ ldrb r5, [r0]
+ ldr r0, _02254F5C ; =0x00000663
+ bl MOD20_02252B28
+ lsl r0, r5, #1
+ add r3, r7, r0
+ ldrh r0, [r3, #0x24]
+ mov r1, #4
+ add r2, r5, #0
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r4, #0
+ bl MOD39_02254FA4
+ add r0, r4, #0
+ bl MOD39_02254FF8
+ add r0, r6, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254F5C: .word 0x00000663
+ thumb_func_end MOD39_02254F1C
+
+ thumb_func_start MOD39_02254F60
+MOD39_02254F60: ; 0x02254F60
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A4
+ add r7, r0, #0
+ add r0, #0x33
+ ldrb r5, [r0]
+ ldr r0, _02254FA0 ; =0x00000663
+ bl MOD20_02252B28
+ lsl r0, r5, #1
+ add r3, r7, r0
+ ldrh r0, [r3, #0x24]
+ mov r1, #5
+ add r2, r5, #0
+ str r0, [sp]
+ ldrh r3, [r3, #0x18]
+ add r0, r4, #0
+ bl MOD39_02254FA4
+ add r0, r4, #0
+ bl MOD39_02254FF8
+ add r0, r6, #0
+ bl MOD39_02254DE0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254FA0: .word 0x00000663
+ thumb_func_end MOD39_02254F60
+
+ thumb_func_start MOD39_02254FA4
+MOD39_02254FA4: ; 0x02254FA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ lsl r0, r1, #2
+ add r0, r5, r0
+ add r6, r2, #0
+ add r7, r3, #0
+ ldr r4, [r0, #0x24]
+ cmp r1, #5
+ bne _02254FBA
+ mov r1, #4
+ b _02254FCC
+_02254FBA:
+ add r0, r7, #0
+ mov r1, #0x1c
+ bl FUN_02068678
+ cmp r0, #0
+ beq _02254FCA
+ mov r1, #4
+ b _02254FCC
+_02254FCA:
+ mov r1, #5
+_02254FCC:
+ add r0, r4, #0
+ bl MOD20_02253F28
+ ldr r2, [r5, #0x64]
+ lsl r1, r6, #4
+ add r0, r4, #0
+ add r1, r2, r1
+ bl MOD20_02253FA4
+ add r1, sp, #8
+ ldrh r1, [r1, #0x10]
+ add r0, r7, #0
+ mov r2, #0
+ bl FUN_0206B7BC
+ add r1, r0, #0
+ add r0, r4, #0
+ add r1, r1, #1
+ bl MOD20_02253F9C
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02254FA4
+
+ thumb_func_start MOD39_02254FF8
+MOD39_02254FF8: ; 0x02254FF8
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #3
+ mov r2, #0x16
+ ldr r0, [r4, #0x2c]
+ lsl r1, r1, #0x10
+ lsl r2, r2, #0xe
+ bl MOD20_02253F64
+ mov r1, #0xb
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #0x30]
+ lsr r2, r1, #1
+ bl MOD20_02253F64
+ ldr r0, [r4, #0x2c]
+ mov r1, #5
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x30]
+ mov r1, #6
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x28]
+ mov r1, #0
+ bl MOD20_02253F28
+ pop {r4, pc}
+ thumb_func_end MOD39_02254FF8
+
+ thumb_func_start MOD39_02255030
+MOD39_02255030: ; 0x02255030
+ 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 _0225505C
+ ldr r0, [r4, #0x68]
+ cmp r0, #0
+ beq _0225505C
+ add r0, r5, #0
+ bl MOD39_02254DE0
+ pop {r4, r5, r6, pc}
+_0225505C:
+ add r0, r5, #0
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225506C
+ cmp r0, #1
+ beq _02255086
+ pop {r4, r5, r6, pc}
+_0225506C:
+ mov r0, #0
+ str r0, [r4, #0x68]
+ add r0, r4, #0
+ bl MOD39_02254FF8
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD39_0225509C
+ add r0, r5, #0
+ bl MOD20_022538B0
+ pop {r4, r5, r6, pc}
+_02255086:
+ add r0, r4, #0
+ add r1, r6, #0
+ bl MOD39_02255114
+ cmp r0, #0
+ beq _02255098
+ add r0, r5, #0
+ bl MOD39_02254DE0
+_02255098:
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02255030
+
+ thumb_func_start MOD39_0225509C
+MOD39_0225509C: ; 0x0225509C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ add r5, r1, #0
+ mov r1, #0
+ str r1, [r4, #0x70]
+ str r1, [r4, #0x74]
+ str r1, [r4, #0x78]
+ add r0, #0x84
+ str r1, [r0]
+ add r0, r5, #0
+ add r0, #0x31
+ ldrb r0, [r0]
+ cmp r0, #3
+ bhi _022550FA
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022550C4: ; jump table
+ .short _022550EE - _022550C4 - 2 ; case 0
+ .short _022550E0 - _022550C4 - 2 ; case 1
+ .short _022550D2 - _022550C4 - 2 ; case 2
+ .short _022550CC - _022550C4 - 2 ; case 3
+_022550CC:
+ ldr r0, _02255104 ; =0x02255378
+ str r0, [r4, #0x6c]
+ b _022550FA
+_022550D2:
+ ldr r0, _02255108 ; =0x02255318
+ mov r1, #1
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+ b _022550FA
+_022550E0:
+ ldr r0, _0225510C ; =0x0225534C
+ mov r1, #2
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+ b _022550FA
+_022550EE:
+ ldr r0, _02255110 ; =0x02255468
+ mov r1, #3
+ str r0, [r4, #0x6c]
+ ldr r0, [r4, #0x28]
+ bl MOD20_02253F28
+_022550FA:
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD39_02255114
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02255104: .word 0x02255378
+_02255108: .word 0x02255318
+_0225510C: .word 0x0225534C
+_02255110: .word 0x02255468
+ thumb_func_end MOD39_0225509C
+
+ thumb_func_start MOD39_02255114
+MOD39_02255114: ; 0x02255114
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ add r5, r4, #0
+ add r6, r4, #0
+ mov r7, #0x16
+ add r5, #0x84
+ add r6, #0x78
+ lsl r7, r7, #0xe
+_02255124:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ beq _02255138
+ cmp r0, #1
+ bne _02255130
+ b _02255280
+_02255130:
+ cmp r0, #2
+ bne _02255136
+ b _022552DC
+_02255136:
+ b _022552FA
+_02255138:
+ beq _0225513C
+ b _022552FA
+_0225513C:
+ add r6, r4, #0
+ add r5, r4, #0
+ add r6, #0x7c
+ mov r7, #1
+ add r5, #0x74
+_02255146:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ add r0, r0, #7
+ cmp r0, #6
+ bls _0225515C
+ b _02255276
+_0225515C:
+ add r0, r0, r0
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_02255168: ; jump table
+ .short _02255252 - _02255168 - 2 ; case 0
+ .short _02255240 - _02255168 - 2 ; case 1
+ .short _0225522C - _02255168 - 2 ; case 2
+ .short _02255212 - _02255168 - 2 ; case 3
+ .short _022551C2 - _02255168 - 2 ; case 4
+ .short _0225517A - _02255168 - 2 ; case 5
+ .short _02255176 - _02255168 - 2 ; case 6
+_02255176:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_0225517A:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ str r0, [r4, #0x7c]
+ ldr r0, [r6]
+ lsl r0, r0, #0xc
+ str r0, [r6]
+ ldr r1, [r4, #0x78]
+ ldr r0, [r4, #0x7c]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x84
+ ldr r0, [r6]
+ ldr r1, [r1]
+ bl _u32_div_f
+ str r0, [r6]
+ str r7, [r4, #0x70]
+ b _02255276
+_022551C2:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ mov r1, #0
+ str r0, [r4, #0x7c]
+ ldr r0, [r6]
+ mvn r1, r1
+ lsl r0, r0, #0xc
+ mul r1, r0
+ str r1, [r6]
+ ldr r1, [r4, #0x78]
+ ldr r0, [r4, #0x7c]
+ add r1, r1, r0
+ add r0, r4, #0
+ add r0, #0x80
+ str r1, [r0]
+ add r1, r4, #0
+ add r1, #0x84
+ ldr r0, [r6]
+ ldr r1, [r1]
+ bl _u32_div_f
+ str r0, [r6]
+ mov r0, #1
+ str r0, [r4, #0x70]
+ b _02255276
+_02255212:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r1, [r0, r1]
+ add r0, r4, #0
+ add r0, #0x84
+ str r1, [r0]
+ mov r0, #2
+ str r0, [r4, #0x70]
+ b _02255276
+_0225522C:
+ ldr r0, [r5]
+ ldr r1, [r4, #0x74]
+ add r0, r0, #1
+ str r0, [r5]
+ ldr r0, [r4, #0x6c]
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ bl MOD20_02252B28
+ b _02255276
+_02255240:
+ ldr r0, [r4, #0x2c]
+ mov r1, #6
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x30]
+ mov r1, #5
+ bl MOD20_02253F28
+ b _02255276
+_02255252:
+ ldr r1, [r5]
+ ldr r0, [r4, #0x74]
+ add r1, r1, #1
+ str r1, [r5]
+ ldr r2, [r4, #0x6c]
+ lsl r0, r0, #2
+ ldr r0, [r2, r0]
+ ldr r2, [r4, #0x74]
+ add r1, r1, #1
+ str r1, [r5]
+ lsl r0, r0, #2
+ add r0, r4, r0
+ ldr r1, [r4, #0x6c]
+ lsl r2, r2, #2
+ ldr r0, [r0, #0x24]
+ ldr r1, [r1, r2]
+ bl MOD20_02253F28
+_02255276:
+ ldr r0, [r4, #0x70]
+ cmp r0, #0
+ bne _0225527E
+ b _02255146
+_0225527E:
+ b _022552FA
+_02255280:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022552CC
+ ldr r0, [r5]
+ sub r0, r0, #1
+ str r0, [r5]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022552A4
+ ldr r1, [r6]
+ ldr r0, [r4, #0x7c]
+ add r0, r1, r0
+ str r0, [r6]
+ b _022552AC
+_022552A4:
+ add r0, r4, #0
+ add r0, #0x80
+ ldr r0, [r0]
+ str r0, [r4, #0x78]
+_022552AC:
+ mov r1, #3
+ ldr r2, [r4, #0x78]
+ lsl r1, r1, #0x10
+ add r1, r2, r1
+ ldr r0, [r4, #0x2c]
+ add r2, r7, #0
+ bl MOD20_02253F64
+ mov r1, #0xb
+ ldr r2, [r4, #0x78]
+ lsl r1, r1, #0x10
+ sub r1, r1, r2
+ ldr r0, [r4, #0x30]
+ add r2, r7, #0
+ bl MOD20_02253F64
+_022552CC:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _022552FA
+ mov r0, #0
+ str r0, [r4, #0x70]
+ b _02255124
+_022552DC:
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _022552F4
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r0, [r0]
+ add r4, #0x84
+ sub r0, r0, #1
+ str r0, [r4]
+ b _022552FA
+_022552F4:
+ mov r0, #0
+ str r0, [r4, #0x70]
+ b _02255124
+_022552FA:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD39_02255114
+
+ .section .rodata
+ ; 0x02255300
+ .incbin "baserom.nds", 0x291cc0, 0x1E4
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_39.SINIT_START
+ .global SDK_OVERLAY.MODULE_39.SINIT_END
+SDK_OVERLAY.MODULE_39.SINIT_START:
+ .word MOD39_02254840
+ .word 0
+SDK_OVERLAY.MODULE_39.SINIT_END:
diff --git a/arm9/modules/40/asm/module_40.s b/arm9/modules/40/asm/module_40.s
new file mode 100644
index 00000000..bc8e79f1
--- /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
+ bl _u32_div_f
+ str r1, [sp]
+_0225495A:
+ ldr r0, [sp, #4]
+ cmp r0, #0x3c
+ blo _0225496A
+ ldr r0, [sp]
+ mov r1, #0x3c
+ bl _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
diff --git a/arm9/modules/41/asm/module_41.s b/arm9/modules/41/asm/module_41.s
new file mode 100644
index 00000000..d0b3e013
--- /dev/null
+++ b/arm9/modules/41/asm/module_41.s
@@ -0,0 +1,2032 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 4, 0
+
+ thumb_func_start MOD41_02254840
+MOD41_02254840: ; 0x02254840
+ ldr r3, _02254848 ; =MOD20_02252978
+ ldr r0, _0225484C ; =MOD41_02254854
+ ldr r1, _02254850 ; =MOD41_02254AD8
+ bx r3
+ .align 2, 0
+_02254848: .word MOD20_02252978
+_0225484C: .word MOD41_02254854
+_02254850: .word MOD41_02254AD8
+ thumb_func_end MOD41_02254840
+
+ thumb_func_start MOD41_02254854
+MOD41_02254854: ; 0x02254854
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x90
+ 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 MOD41_02254990
+ cmp r0, #0
+ beq _0225488C
+ ldr r0, _02254898 ; =MOD41_02254A88
+ 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 MOD41_02254A88
+ thumb_func_end MOD41_02254854
+
+ thumb_func_start MOD41_0225489C
+MOD41_0225489C: ; 0x0225489C
+ push {r4, r5}
+ mov r4, #0
+ add r5, r0, #0
+ mov r3, #1
+ add r2, r4, #0
+_022548A6:
+ add r1, r0, r4
+ str r3, [r5, #0x5c]
+ add r1, #0x4c
+ add r4, r4, #1
+ add r5, r5, #4
+ strb r2, [r1]
+ cmp r4, #3
+ blt _022548A6
+ str r3, [r0, #0x44]
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD41_0225489C
+
+ thumb_func_start MOD41_022548BC
+MOD41_022548BC: ; 0x022548BC
+ lsl r3, r1, #2
+ add r3, r0, r3
+ str r2, [r3, #0x5c]
+ cmp r2, #0
+ beq _022548CA
+ mov r2, #0
+ b _022548CC
+_022548CA:
+ mov r2, #1
+_022548CC:
+ add r1, r0, r1
+ add r1, #0x4c
+ strb r2, [r1]
+ mov r1, #1
+ str r1, [r0, #0x44]
+ bx lr
+ thumb_func_end MOD41_022548BC
+
+ thumb_func_start MOD41_022548D8
+MOD41_022548D8: ; 0x022548D8
+ lsl r3, r1, #2
+ add r3, r0, r3
+ ldr r3, [r3, #0x5c]
+ cmp r3, #0
+ beq _022548EC
+ add r1, r0, r1
+ add r1, #0x4c
+ strb r2, [r1]
+ mov r1, #1
+ str r1, [r0, #0x44]
+_022548EC:
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_022548D8
+
+ thumb_func_start MOD41_022548F0
+MOD41_022548F0: ; 0x022548F0
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #8]
+ add r4, r1, #0
+ bl MOD41_0225578C
+ str r0, [r4, #0x10]
+ ldr r0, [r5, #4]
+ add r1, r4, #0
+ mov r2, #0x48
+ bl FUN_020893F0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022548F0
+
+ thumb_func_start MOD41_0225490C
+MOD41_0225490C: ; 0x0225490C
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r0, [r4, #4]
+ add r1, #0x48
+ mov r2, #0x48
+ bl FUN_02089418
+ cmp r0, #0
+ beq _0225494C
+ add r0, r4, #0
+ add r0, #0x8c
+ ldr r0, [r0]
+ cmp r0, #2
+ bne _02254952
+ add r0, r4, #0
+ bl MOD41_02255108
+ add r0, r4, #0
+ bl MOD41_022550F8
+ cmp r0, #0
+ beq _02254952
+ add r0, r4, #0
+ mov r1, #4
+ add r0, #0x8c
+ str r1, [r0]
+ mov r0, #0
+ str r0, [r4, #0x50]
+ mov r0, #2
+ str r0, [r4, #0x54]
+ pop {r4, pc}
+_0225494C:
+ add r0, r4, #0
+ bl MOD41_02254954
+_02254952:
+ pop {r4, pc}
+ thumb_func_end MOD41_0225490C
+
+ thumb_func_start MOD41_02254954
+MOD41_02254954: ; 0x02254954
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r3, r4, #0
+ mov r2, #1
+ add r1, #0x8c
+ str r2, [r1]
+ mov r1, #0
+ add r3, #0x48
+ strb r1, [r3]
+ add r3, r4, #0
+ add r3, #0x49
+ strb r1, [r3]
+ add r3, r4, #0
+ add r3, #0x4a
+ strb r1, [r3]
+ add r3, r4, #0
+ add r3, #0x4b
+ strb r1, [r3]
+ str r2, [r4, #0x50]
+ str r1, [r4, #0x54]
+ str r1, [r4, #0x58]
+ bl MOD41_0225489C
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ pop {r4, pc}
+ thumb_func_end MOD41_02254954
+
+ thumb_func_start MOD41_02254990
+MOD41_02254990: ; 0x02254990
+ push {r3, r4, r5, r6, lr}
+ sub sp, #4
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ str r3, [r5, #4]
+ bl MOD41_0225490C
+ add r0, r5, #0
+ add r1, r5, #0
+ add r0, #8
+ add r1, #0x48
+ add r2, r6, #0
+ bl MOD41_0225524C
+ cmp r0, #0
+ beq _02254A28
+ mov r0, #0
+ strb r0, [r5]
+ strb r0, [r5, #1]
+ strb r0, [r5, #3]
+ mov r0, #8
+ str r0, [sp]
+ ldr r0, _02254A30 ; =0x022557B0
+ ldr r2, _02254A34 ; =MOD41_02254A58
+ mov r1, #0xb
+ add r3, r5, #0
+ bl MOD20_02254130
+ str r0, [r5, #0x10]
+ mov r0, #0
+ str r0, [r5, #0x18]
+ ldr r0, [r5, #0x10]
+ mov r1, #3
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #5
+ mov r2, #4
+ bl MOD20_022542C0
+ mov r1, #4
+ ldr r0, [r5, #0x10]
+ add r2, r1, #0
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #6
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #7
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #9
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #8
+ mov r2, #4
+ bl MOD20_022542C0
+ ldr r0, [r5, #0x10]
+ mov r1, #0xa
+ mov r2, #4
+ bl MOD20_022542C0
+ add sp, #4
+ str r4, [r5, #0xc]
+ mov r0, #1
+ pop {r3, r4, r5, r6, pc}
+_02254A28:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, r5, r6, pc}
+ nop
+_02254A30: .word 0x022557B0
+_02254A34: .word MOD41_02254A58
+ thumb_func_end MOD41_02254990
+
+ thumb_func_start MOD41_02254A38
+MOD41_02254A38: ; 0x02254A38
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ add r1, #0x48
+ bl MOD41_022548F0
+ ldr r0, [r4, #0x10]
+ bl MOD20_02254198
+ ldr r0, [r4, #8]
+ bl MOD41_0225528C
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD41_02254A38
+
+ thumb_func_start MOD41_02254A58
+MOD41_02254A58: ; 0x02254A58
+ push {r3, lr}
+ add r2, r0, #0
+ str r2, [r3, #0x14]
+ str r1, [r3, #0x18]
+ cmp r2, #3
+ bhs _02254A84
+ cmp r1, #1
+ bne _02254A74
+ add r1, r2, #0
+ add r0, r3, #0
+ mov r2, #1
+ bl MOD41_022548D8
+ pop {r3, pc}
+_02254A74:
+ sub r0, r1, #2
+ cmp r0, #1
+ bhi _02254A84
+ add r1, r2, #0
+ add r0, r3, #0
+ mov r2, #0
+ bl MOD41_022548D8
+_02254A84:
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02254A58
+
+ thumb_func_start MOD41_02254A88
+MOD41_02254A88: ; 0x02254A88
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #7
+ bhs _02254AD0
+ ldr r0, [r4, #0xc]
+ ldr r1, [r4, #0x10]
+ bl MOD20_02252C14
+ ldr r0, [r4, #0x44]
+ cmp r0, #0
+ beq _02254AAE
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ mov r0, #0
+ str r0, [r4, #0x44]
+_02254AAE:
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _02254AD4 ; =0x02255794
+ ldr r1, [r1, r2]
+ blx r1
+ cmp r0, #0
+ beq _02254AD0
+ add r0, r4, #0
+ bl MOD41_02254A38
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ ldr r0, [r4, #0xc]
+ bl MOD20_022529A0
+_02254AD0:
+ pop {r3, r4, r5, pc}
+ nop
+_02254AD4: .word 0x02255794
+ thumb_func_end MOD41_02254A88
+
+ thumb_func_start MOD41_02254AD8
+MOD41_02254AD8: ; 0x02254AD8
+ mov r1, #1
+ strb r1, [r0, #3]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_02254AD8
+
+ thumb_func_start MOD41_02254AE0
+MOD41_02254AE0: ; 0x02254AE0
+ ldrb r3, [r0, #3]
+ ldrb r2, [r0]
+ cmp r3, #0
+ beq _02254AEA
+ mov r1, #6
+_02254AEA:
+ strb r1, [r0]
+ cmp r1, #0
+ beq _02254AFA
+ cmp r1, #6
+ beq _02254AFA
+ add r3, r0, #0
+ add r3, #0x8c
+ str r2, [r3]
+_02254AFA:
+ cmp r1, #6
+ bhi _02254B50
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254B0A: ; jump table
+ .short _02254B50 - _02254B0A - 2 ; case 0
+ .short _02254B18 - _02254B0A - 2 ; case 1
+ .short _02254B22 - _02254B0A - 2 ; case 2
+ .short _02254B2C - _02254B0A - 2 ; case 3
+ .short _02254B36 - _02254B0A - 2 ; case 4
+ .short _02254B40 - _02254B0A - 2 ; case 5
+ .short _02254B4A - _02254B0A - 2 ; case 6
+_02254B18:
+ mov r1, #1
+ str r1, [r0, #0x50]
+ mov r1, #0
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B22:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #1
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B2C:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #1
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B36:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #2
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B40:
+ mov r1, #0
+ str r1, [r0, #0x50]
+ mov r1, #3
+ str r1, [r0, #0x54]
+ b _02254B50
+_02254B4A:
+ add r1, r0, #0
+ add r1, #0x8c
+ str r2, [r1]
+_02254B50:
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_02254AE0
+
+ thumb_func_start MOD41_02254B58
+MOD41_02254B58: ; 0x02254B58
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02254B68
+ cmp r0, #1
+ beq _02254B78
+ b _02254B94
+_02254B68:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD41_022553A4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254B94
+_02254B78:
+ ldr r0, [r4, #8]
+ mov r1, #0
+ bl MOD41_022553C8
+ cmp r0, #0
+ beq _02254B94
+ ldr r0, [r4, #0xc]
+ bl MOD20_0225298C
+ add r0, r4, #0
+ add r4, #0x8c
+ ldr r1, [r4]
+ bl MOD41_02254AE0
+_02254B94:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD41_02254B58
+
+ thumb_func_start MOD41_02254B98
+MOD41_02254B98: ; 0x02254B98
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254BAC
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254BAC:
+ ldr r0, [r4, #8]
+ bl MOD41_022553D4
+ cmp r0, #0
+ bne _02254BBA
+ mov r0, #0
+ pop {r4, pc}
+_02254BBA:
+ ldr r1, [r4, #0x18]
+ cmp r1, #1
+ bne _02254C36
+ ldr r0, [r4, #0x14]
+ cmp r0, #2
+ bhi _02254C36
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254BEE
+ cmp r0, #1
+ beq _02254C2C
+ cmp r0, #2
+ bne _02254C32
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, _02254D18 ; =0x00000663
+ bl MOD20_02252B28
+ b _02254C32
+_02254BEE:
+ ldr r0, _02254D18 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ bl MOD41_0225504C
+ mov r3, #0
+ mov r2, #0
+ eor r1, r3
+ eor r0, r2
+ orr r0, r1
+ beq _02254C32
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #3
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD41_02254AE0
+ b _02254C32
+_02254C2C:
+ ldr r0, _02254D1C ; =0x0000066E
+ bl MOD20_02252B28
+_02254C32:
+ mov r0, #0
+ pop {r4, pc}
+_02254C36:
+ cmp r1, #1
+ beq _02254C3E
+ cmp r1, #7
+ bne _02254D12
+_02254C3E:
+ ldr r1, [r4, #0x14]
+ add r0, r4, #0
+ add r0, #0x48
+ cmp r1, #0xa
+ bhi _02254D06
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02254C54: ; jump table
+ .short _02254D06 - _02254C54 - 2 ; case 0
+ .short _02254D06 - _02254C54 - 2 ; case 1
+ .short _02254D06 - _02254C54 - 2 ; case 2
+ .short _02254C6A - _02254C54 - 2 ; case 3
+ .short _02254C7C - _02254C54 - 2 ; case 4
+ .short _02254C90 - _02254C54 - 2 ; case 5
+ .short _02254CA4 - _02254C54 - 2 ; case 6
+ .short _02254CB8 - _02254C54 - 2 ; case 7
+ .short _02254CCC - _02254C54 - 2 ; case 8
+ .short _02254CE0 - _02254C54 - 2 ; case 9
+ .short _02254CF4 - _02254C54 - 2 ; case 10
+_02254C6A:
+ mov r1, #0
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0]
+ ldrsb r2, [r0, r1]
+ cmp r2, #9
+ ble _02254D06
+ strb r1, [r0]
+ b _02254D06
+_02254C7C:
+ mov r1, #1
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, #1]
+ ldrsb r1, [r0, r1]
+ cmp r1, #9
+ ble _02254D06
+ mov r1, #0
+ strb r1, [r0, #1]
+ b _02254D06
+_02254C90:
+ mov r1, #0
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #9
+ strb r1, [r0]
+ b _02254D06
+_02254CA4:
+ mov r1, #1
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, #1]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #9
+ strb r1, [r0, #1]
+ b _02254D06
+_02254CB8:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, #2]
+ ldrsb r1, [r0, r1]
+ cmp r1, #5
+ ble _02254D06
+ mov r1, #0
+ strb r1, [r0, #2]
+ b _02254D06
+_02254CCC:
+ mov r1, #3
+ ldrsb r2, [r0, r1]
+ add r2, r2, #1
+ strb r2, [r0, #3]
+ ldrsb r1, [r0, r1]
+ cmp r1, #9
+ ble _02254D06
+ mov r1, #0
+ strb r1, [r0, #3]
+ b _02254D06
+_02254CE0:
+ mov r1, #2
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, #2]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #5
+ strb r1, [r0, #2]
+ b _02254D06
+_02254CF4:
+ mov r1, #3
+ ldrsb r2, [r0, r1]
+ sub r2, r2, #1
+ strb r2, [r0, #3]
+ ldrsb r1, [r0, r1]
+ cmp r1, #0
+ bge _02254D06
+ mov r1, #9
+ strb r1, [r0, #3]
+_02254D06:
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ mov r0, #0
+ str r0, [r4, #0x18]
+_02254D12:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254D18: .word 0x00000663
+_02254D1C: .word 0x0000066E
+ thumb_func_end MOD41_02254B98
+
+ thumb_func_start MOD41_02254D20
+MOD41_02254D20: ; 0x02254D20
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254D34
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254D34:
+ bl MOD41_02255108
+ cmp r0, #0
+ beq _02254D6C
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ add r0, r4, #0
+ bl MOD41_022550F8
+ cmp r0, #0
+ beq _02254D6C
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254D6C:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254E00
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254D86
+ cmp r0, #1
+ beq _02254D8E
+ cmp r0, #2
+ beq _02254DC0
+ b _02254E00
+_02254D86:
+ ldr r0, _02254E04 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254E00
+_02254D8E:
+ ldr r0, _02254E08 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_022550BC
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #3
+ bl MOD41_02254AE0
+ b _02254E00
+_02254DC0:
+ ldr r0, _02254E08 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_02254E00:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02254E04: .word 0x0000066E
+_02254E08: .word 0x00000663
+ thumb_func_end MOD41_02254D20
+
+ thumb_func_start MOD41_02254E0C
+MOD41_02254E0C: ; 0x02254E0C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254E20
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254E20:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254EAC
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254E3A
+ cmp r0, #1
+ beq _02254E64
+ cmp r0, #2
+ beq _02254E6C
+ b _02254EAC
+_02254E3A:
+ ldr r0, _02254EB0 ; =0x00000663
+ bl MOD20_02252B28
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_022550D0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD41_02254AE0
+ b _02254EAC
+_02254E64:
+ ldr r0, _02254EB4 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254EAC
+_02254E6C:
+ ldr r0, _02254EB0 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_02254EAC:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+_02254EB0: .word 0x00000663
+_02254EB4: .word 0x0000066E
+ thumb_func_end MOD41_02254E0C
+
+ thumb_func_start MOD41_02254EB8
+MOD41_02254EB8: ; 0x02254EB8
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254ECC
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254ECC:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _02254F52
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254EE6
+ cmp r0, #1
+ beq _02254EEE
+ cmp r0, #2
+ beq _02254F20
+ b _02254F52
+_02254EE6:
+ ldr r0, _02254F58 ; =0x0000066E
+ bl MOD20_02252B28
+ b _02254F52
+_02254EEE:
+ ldr r0, _02254F5C ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #5
+ bl MOD41_02254AE0
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02254F52
+_02254F20:
+ ldr r0, _02254F5C ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_02254F52:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02254F58: .word 0x0000066E
+_02254F5C: .word 0x00000663
+ thumb_func_end MOD41_02254EB8
+
+ thumb_func_start MOD41_02254F60
+MOD41_02254F60: ; 0x02254F60
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #3]
+ cmp r1, #0
+ beq _02254F74
+ mov r1, #6
+ bl MOD41_02254AE0
+ mov r0, #0
+ pop {r4, pc}
+_02254F74:
+ ldr r0, [r4, #0x18]
+ cmp r0, #1
+ bne _0225500A
+ mov r0, #0
+ str r0, [r4, #0x18]
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254F8E
+ cmp r0, #1
+ beq _02254FBA
+ cmp r0, #2
+ beq _02254FC2
+ b _0225500A
+_02254F8E:
+ ldr r0, _02255010 ; =0x00000663
+ bl MOD20_02252B28
+ mov r1, #0
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ mov r1, #1
+ add r0, r4, #0
+ add r2, r1, #0
+ bl MOD41_022548BC
+ ldr r0, [r4, #8]
+ mov r1, #6
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD41_02254AE0
+ b _0225500A
+_02254FBA:
+ ldr r0, _02255014 ; =0x0000066E
+ bl MOD20_02252B28
+ b _0225500A
+_02254FC2:
+ ldr r0, _02255010 ; =0x00000663
+ bl MOD20_02252B28
+ add r0, r4, #0
+ mov r1, #0
+ mov r2, #1
+ bl MOD41_022548BC
+ add r0, r4, #0
+ mov r1, #1
+ mov r2, #0
+ bl MOD41_022548BC
+ add r0, r4, #0
+ bl MOD41_02255170
+ ldr r0, [r4, #8]
+ mov r1, #7
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #4
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #5
+ bl MOD41_022553A4
+ ldr r0, [r4, #8]
+ mov r1, #2
+ bl MOD41_022553A4
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD41_02254AE0
+_0225500A:
+ mov r0, #0
+ pop {r4, pc}
+ nop
+_02255010: .word 0x00000663
+_02255014: .word 0x0000066E
+ thumb_func_end MOD41_02254F60
+
+ thumb_func_start MOD41_02255018
+MOD41_02255018: ; 0x02255018
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #1]
+ cmp r0, #0
+ beq _02255028
+ cmp r0, #1
+ beq _02255038
+ b _02255046
+_02255028:
+ ldr r0, [r4, #8]
+ mov r1, #1
+ bl MOD41_022553A4
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ b _02255046
+_02255038:
+ ldr r0, [r4, #8]
+ bl MOD41_022553D4
+ cmp r0, #0
+ beq _02255046
+ mov r0, #1
+ pop {r4, pc}
+_02255046:
+ mov r0, #0
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255018
+
+ thumb_func_start MOD41_0225504C
+MOD41_0225504C: ; 0x0225504C
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r5, #0
+ add r4, #0x48
+ bl FUN_02020BF4
+ str r0, [r5, #0x68]
+ str r1, [r5, #0x6c]
+ mov r2, #0
+ str r2, [r5, #0x70]
+ add r0, r5, #0
+ str r2, [r5, #0x74]
+ mov r1, #1
+ add r0, #0x88
+ str r1, [r0]
+ str r2, [r5, #0x78]
+ str r2, [r5, #0x7c]
+ mov r2, #2
+ ldrsb r3, [r4, r2]
+ mov r0, #3
+ ldrsb r0, [r4, r0]
+ add r6, r3, #0
+ ldrsb r3, [r4, r1]
+ mov r1, #0x48
+ mov r2, #0xa
+ mul r6, r2
+ ldrsb r1, [r5, r1]
+ add r0, r0, r6
+ mul r2, r1
+ add r2, r3, r2
+ mov r1, #0x3c
+ mul r1, r2
+ add r2, r0, r1
+ add r0, r5, #0
+ add r0, #0x80
+ str r2, [r0]
+ add r0, r5, #0
+ asr r1, r2, #0x1f
+ add r0, #0x84
+ str r1, [r0]
+ add r1, r5, #0
+ add r2, r5, #0
+ add r1, #0x80
+ add r2, #0x84
+ ldr r1, [r1]
+ ldr r2, [r2]
+ add r0, r5, #0
+ bl MOD41_02255190
+ add r0, r5, #0
+ add r0, #0x80
+ add r5, #0x84
+ ldr r0, [r0]
+ ldr r1, [r5]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD41_0225504C
+
+ thumb_func_start MOD41_022550BC
+MOD41_022550BC: ; 0x022550BC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r1, #0
+ add r0, #0x88
+ str r1, [r0]
+ bl FUN_02020BF4
+ str r0, [r4, #0x70]
+ str r1, [r4, #0x74]
+ pop {r4, pc}
+ thumb_func_end MOD41_022550BC
+
+ thumb_func_start MOD41_022550D0
+MOD41_022550D0: ; 0x022550D0
+ push {r3, r4, r5, r6, r7, lr}
+ add r4, r0, #0
+ bl FUN_02020BF4
+ add r5, r4, #0
+ add r5, #0x68
+ ldr r7, [r4, #0x70]
+ ldr r2, [r4, #0x68]
+ ldr r6, [r4, #0x74]
+ sub r0, r0, r7
+ sbc r1, r6
+ ldr r3, [r5, #4]
+ add r0, r2, r0
+ adc r3, r1
+ str r0, [r4, #0x68]
+ str r3, [r5, #4]
+ mov r0, #1
+ add r4, #0x88
+ str r0, [r4]
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD41_022550D0
+
+ thumb_func_start MOD41_022550F8
+MOD41_022550F8: ; 0x022550F8
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ bne _02255104
+ mov r0, #1
+ bx lr
+_02255104:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD41_022550F8
+
+ thumb_func_start MOD41_02255108
+MOD41_02255108: ; 0x02255108
+ push {r4, r5, r6, lr}
+ add r4, r0, #0
+ add r0, #0x88
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225516A
+ bl FUN_02020BF4
+ ldr r3, [r4, #0x68]
+ ldr r2, [r4, #0x6c]
+ sub r0, r0, r3
+ sbc r1, r2
+ bl FUN_02020C14
+ add r5, r0, #0
+ add r0, r4, #0
+ add r0, #0x80
+ add r6, r1, #0
+ ldr r1, [r0]
+ add r0, r4, #0
+ add r0, #0x84
+ ldr r2, [r0]
+ sub r0, r5, r1
+ mov ip, r6
+ mov r0, ip
+ sbc r0, r2
+ blo _02255148
+ add r0, r4, #0
+ bl MOD41_02255170
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02255148:
+ ldr r3, [r4, #0x78]
+ ldr r0, [r4, #0x7c]
+ eor r3, r5
+ eor r0, r6
+ orr r0, r3
+ beq _02255166
+ add r0, r4, #0
+ sub r1, r1, r5
+ sbc r2, r6
+ bl MOD41_02255190
+ str r5, [r4, #0x78]
+ str r6, [r4, #0x7c]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02255166:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_0225516A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255108
+
+ thumb_func_start MOD41_02255170
+MOD41_02255170: ; 0x02255170
+ add r1, r0, #0
+ mov r2, #0
+ add r1, #0x88
+ str r2, [r1]
+ add r1, r0, #0
+ add r1, #0x48
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x49
+ strb r2, [r1]
+ add r1, r0, #0
+ add r1, #0x4a
+ strb r2, [r1]
+ add r0, #0x4b
+ strb r2, [r0]
+ bx lr
+ thumb_func_end MOD41_02255170
+
+ thumb_func_start MOD41_02255190
+MOD41_02255190: ; 0x02255190
+ push {r3, r4, r5, r6}
+ add r3, r0, #0
+ ldr r0, _02255240 ; =0x04000280
+ mov r4, #1
+ strh r4, [r0]
+ add r4, r0, #0
+ add r4, #0x10
+ str r1, [r4]
+ str r2, [r4, #4]
+ add r1, r0, #0
+ mov r4, #0x3c
+ add r1, #0x18
+ mov r2, #0
+ str r4, [r1]
+ str r2, [r1, #4]
+ lsr r1, r0, #0xb
+_022551B0:
+ ldrh r2, [r0]
+ tst r2, r1
+ bne _022551B0
+ ldr r0, _02255244 ; =0x040002A0
+ ldr r6, _02255240 ; =0x04000280
+ ldr r0, [r0]
+ lsr r1, r6, #0xb
+_022551BE:
+ ldrh r2, [r6]
+ tst r2, r1
+ bne _022551BE
+ ldr r5, _02255248 ; =0x040002A8
+ mov r4, #0
+ ldr r2, [r5]
+ add r1, r5, #0
+ strh r4, [r6]
+ sub r1, #0x18
+ str r0, [r1]
+ mov r0, #0xa
+ sub r5, #0x10
+ str r0, [r5]
+ str r4, [r5, #4]
+ ldr r4, _02255240 ; =0x04000280
+ lsr r0, r4, #0xb
+_022551DE:
+ ldrh r1, [r4]
+ tst r1, r0
+ bne _022551DE
+ ldr r0, _02255244 ; =0x040002A0
+ ldr r1, [r0]
+ add r0, r3, #0
+ add r0, #0x48
+ strb r1, [r0]
+ ldr r1, _02255240 ; =0x04000280
+ lsr r0, r1, #0xb
+_022551F2:
+ ldrh r4, [r1]
+ tst r4, r0
+ bne _022551F2
+ ldr r0, _02255248 ; =0x040002A8
+ add r4, r3, #0
+ ldr r5, [r0]
+ add r4, #0x49
+ strb r5, [r4]
+ mov r4, #0
+ strh r4, [r1]
+ add r1, r0, #0
+ sub r1, #0x18
+ str r2, [r1]
+ mov r1, #0xa
+ sub r0, #0x10
+ str r1, [r0]
+ ldr r2, _02255240 ; =0x04000280
+ str r4, [r0, #4]
+ lsr r0, r2, #0xb
+_02255218:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _02255218
+ ldr r0, _02255244 ; =0x040002A0
+ ldr r2, _02255240 ; =0x04000280
+ ldr r1, [r0]
+ add r0, r3, #0
+ add r0, #0x4a
+ strb r1, [r0]
+ lsr r0, r2, #0xb
+_0225522C:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0225522C
+ ldr r0, _02255248 ; =0x040002A8
+ add r3, #0x4b
+ ldr r0, [r0]
+ strb r0, [r3]
+ pop {r3, r4, r5, r6}
+ bx lr
+ nop
+_02255240: .word 0x04000280
+_02255244: .word 0x040002A0
+_02255248: .word 0x040002A8
+ thumb_func_end MOD41_02255190
+
+ thumb_func_start MOD41_0225524C
+MOD41_0225524C: ; 0x0225524C
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #8
+ mov r1, #0xac
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02255288
+ 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 MOD41_022552A0
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02255288
+ str r4, [r6]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02255288:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD41_0225524C
+
+ thumb_func_start MOD41_0225528C
+MOD41_0225528C: ; 0x0225528C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _0225529C
+ bl MOD41_02255374
+ add r0, r4, #0
+ bl FUN_02016A18
+_0225529C:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD41_0225528C
+
+ thumb_func_start MOD41_022552A0
+MOD41_022552A0: ; 0x022552A0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ 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, #0x5e
+ lsl r3, r3, #8
+ bl FUN_02006A34
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x78
+ mov r1, #0xc
+ mov r2, #0x5c
+ mov r3, #0x5d
+ bl MOD20_02253FBC
+ mov r0, #8
+ str r0, [sp]
+ add r0, r7, #0
+ add r0, #0x8c
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ add r0, r7, #0
+ str r0, [sp, #0x14]
+ add r0, #0x78
+ str r0, [sp, #0x14]
+ add r0, r7, #0
+ str r0, [sp, #0x10]
+ add r0, #0x8c
+ ldr r6, _02255370 ; =0x02255864
+ mov r4, #0
+ add r5, r7, #0
+ str r0, [sp, #0x10]
+_0225530E:
+ cmp r4, #0xd
+ blt _02255324
+ cmp r4, #0x10
+ bgt _02255324
+ ldr r0, [r7, #0x30]
+ ldr r2, [sp, #0x10]
+ add r1, r6, #0
+ bl MOD20_02253E74
+ str r0, [r5, #0x34]
+ b _02255336
+_02255324:
+ ldr r0, [r7, #0x30]
+ ldr r2, [sp, #0x14]
+ add r1, r6, #0
+ bl MOD20_02253E74
+ mov r1, #0x50
+ str r0, [r5, #0x34]
+ bl MOD20_02253FA4
+_02255336:
+ add r4, r4, #1
+ add r6, #0x10
+ add r5, r5, #4
+ cmp r4, #0x11
+ blt _0225530E
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD41_022556D4
+ ldr r1, [sp, #0xc]
+ add r0, r7, #0
+ bl MOD41_02255714
+ ldr r0, [sp, #0xc]
+ ldr r0, [r0, #8]
+ cmp r0, #0
+ bne _0225535C
+ mov r1, #1
+ b _0225535E
+_0225535C:
+ mov r1, #0
+_0225535E:
+ add r0, r7, #0
+ bl MOD41_02255744
+ mov r0, #0
+ add r7, #0xa8
+ str r0, [r7]
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02255370: .word 0x02255864
+ thumb_func_end MOD41_022552A0
+
+ thumb_func_start MOD41_02255374
+MOD41_02255374: ; 0x02255374
+ push {r4, r5, r6, lr}
+ add r6, r0, #0
+ mov r4, #0
+ add r5, r6, #0
+_0225537C:
+ ldr r1, [r5, #0x34]
+ cmp r1, #0
+ beq _02255388
+ ldr r0, [r6, #0x30]
+ bl MOD20_02253F14
+_02255388:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x11
+ blt _0225537C
+ add r0, r6, #0
+ add r0, #0x78
+ bl MOD20_02254014
+ add r6, #0x8c
+ add r0, r6, #0
+ bl MOD20_02254014
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255374
+
+ thumb_func_start MOD41_022553A4
+MOD41_022553A4: ; 0x022553A4
+ 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, _022553C4 ; =0x022557F8
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_022553C4: .word 0x022557F8
+ thumb_func_end MOD41_022553A4
+
+ thumb_func_start MOD41_022553C8
+MOD41_022553C8: ; 0x022553C8
+ ldr r3, _022553D0 ; =MOD20_02253794
+ add r0, #8
+ bx r3
+ nop
+_022553D0: .word MOD20_02253794
+ thumb_func_end MOD41_022553C8
+
+ thumb_func_start MOD41_022553D4
+MOD41_022553D4: ; 0x022553D4
+ ldr r3, _022553DC ; =MOD20_022537B8
+ add r0, #8
+ bx r3
+ nop
+_022553DC: .word MOD20_022537B8
+ thumb_func_end MOD41_022553D4
+
+ thumb_func_start MOD41_022553E0
+MOD41_022553E0: ; 0x022553E0
+ 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 MOD41_022553E0
+
+ thumb_func_start MOD41_022553F4
+MOD41_022553F4: ; 0x022553F4
+ 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, _022554CC ; =0x022557DC
+ 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, #0x5b
+ 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, #0x5a
+ mov r3, #6
+ bl FUN_020068C8
+ mov r0, #0
+ add r1, r0, #0
+ bl MOD20_02252D7C
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_02017CD0
+ ldr r1, _022554D0 ; =0x04001000
+ ldr r0, _022554D4 ; =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]
+ ldr r1, [r4]
+ ldr r0, [r1, #0xc]
+ cmp r0, #1
+ beq _02255488
+ cmp r0, #2
+ beq _0225547E
+ cmp r0, #3
+ beq _0225549A
+ b _022554C0
+_0225547E:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD41_022553A4
+ b _022554C0
+_02255488:
+ ldr r0, [r4, #0x34]
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _022554C0
+_0225549A:
+ ldr r0, [r1, #0x10]
+ cmp r0, #0
+ ldr r0, [r4, #0x34]
+ beq _022554B2
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _022554C0
+_022554B2:
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+_022554C0:
+ add r0, r5, #0
+ bl MOD41_022553E0
+ add sp, #0x14
+ pop {r4, r5, pc}
+ nop
+_022554CC: .word 0x022557DC
+_022554D0: .word 0x04001000
+_022554D4: .word 0xFFFFE0FF
+ thumb_func_end MOD41_022553F4
+
+ thumb_func_start MOD41_022554D8
+MOD41_022554D8: ; 0x022554D8
+ 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 _022554FA
+ cmp r0, #1
+ beq _02255508
+ pop {r3, r4, r5, pc}
+_022554FA:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_02255508:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD41_022553C8
+ cmp r0, #0
+ beq _02255522
+ ldr r0, [r4, #4]
+ mov r1, #6
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD41_022553E0
+_02255522:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD41_022554D8
+
+ thumb_func_start MOD41_02255524
+MOD41_02255524: ; 0x02255524
+ 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, r4, #0
+ mov r1, #0
+ bl MOD41_02255744
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255524
+
+ thumb_func_start MOD41_02255558
+MOD41_02255558: ; 0x02255558
+ 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, r4, #0
+ mov r1, #1
+ bl MOD41_02255744
+ ldr r0, [r4, #0x34]
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255558
+
+ thumb_func_start MOD41_0225558C
+MOD41_0225558C: ; 0x0225558C
+ 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 MOD41_022556D4
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_0225558C
+
+ thumb_func_start MOD41_022555B0
+MOD41_022555B0: ; 0x022555B0
+ 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 MOD41_02255714
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022555B0
+
+ thumb_func_start MOD41_022555D4
+MOD41_022555D4: ; 0x022555D4
+ 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 _022555F6
+ cmp r0, #1
+ beq _0225561A
+ pop {r3, r4, r5, pc}
+_022555F6:
+ ldr r0, [r4, #0x34]
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+ add r0, r4, #0
+ mov r1, #0
+ add r0, #0xa4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_0225561A:
+ add r0, r4, #0
+ add r0, #0xa0
+ ldr r0, [r0]
+ cmp r0, #0
+ beq _0225562C
+ add r0, r5, #0
+ bl MOD41_022553E0
+ pop {r3, r4, r5, pc}
+_0225562C:
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ add r1, r0, #1
+ add r0, r4, #0
+ add r0, #0xa4
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa4
+ ldr r0, [r0]
+ cmp r0, #8
+ blo _0225568A
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r1, [r0]
+ mov r0, #1
+ eor r1, r0
+ add r0, r4, #0
+ add r0, #0xa8
+ str r1, [r0]
+ add r0, r4, #0
+ add r0, #0xa8
+ ldr r0, [r0]
+ cmp r0, #0
+ ldr r0, [r4, #0x34]
+ beq _02255670
+ mov r1, #2
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #1
+ bl MOD20_02253F28
+ b _0225567E
+_02255670:
+ mov r1, #3
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x38]
+ mov r1, #0
+ bl MOD20_02253F28
+_0225567E:
+ ldr r0, _0225568C ; =0x00000677
+ bl MOD20_02252B28
+ mov r0, #0
+ add r4, #0xa4
+ str r0, [r4]
+_0225568A:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_0225568C: .word 0x00000677
+ thumb_func_end MOD41_022555D4
+
+ thumb_func_start MOD41_02255690
+MOD41_02255690: ; 0x02255690
+ 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 _022556B2
+ cmp r0, #1
+ beq _022556C0
+ pop {r3, r4, r5, pc}
+_022556B2:
+ add r0, r4, #0
+ mov r1, #1
+ add r0, #0xa0
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_022538B0
+_022556C0:
+ add r0, r4, #0
+ mov r1, #6
+ bl MOD41_022553C8
+ cmp r0, #0
+ beq _022556D2
+ add r0, r5, #0
+ bl MOD41_022553E0
+_022556D2:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD41_02255690
+
+ thumb_func_start MOD41_022556D4
+MOD41_022556D4: ; 0x022556D4
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4, #4]
+ cmp r0, #0
+ beq _022556E4
+ mov r1, #6
+ b _022556E6
+_022556E4:
+ mov r1, #5
+_022556E6:
+ ldr r0, [r5, #0x3c]
+ bl MOD20_02253F28
+ ldrb r0, [r4, #5]
+ cmp r0, #0
+ beq _022556F6
+ mov r1, #8
+ b _022556F8
+_022556F6:
+ mov r1, #7
+_022556F8:
+ ldr r0, [r5, #0x40]
+ bl MOD20_02253F28
+ ldrb r0, [r4, #6]
+ cmp r0, #0
+ beq _02255708
+ mov r1, #0xa
+ b _0225570A
+_02255708:
+ mov r1, #9
+_0225570A:
+ ldr r0, [r5, #0x44]
+ bl MOD20_02253F28
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_022556D4
+
+ thumb_func_start MOD41_02255714
+MOD41_02255714: ; 0x02255714
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ mov r1, #0
+ add r5, r0, #0
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x68]
+ bl MOD20_02253F28
+ mov r1, #1
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x6c]
+ bl MOD20_02253F28
+ mov r1, #2
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x70]
+ bl MOD20_02253F28
+ mov r1, #3
+ ldrsb r1, [r4, r1]
+ ldr r0, [r5, #0x74]
+ bl MOD20_02253F28
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD41_02255714
+
+ thumb_func_start MOD41_02255744
+MOD41_02255744: ; 0x02255744
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldr r0, [r5, #0x48]
+ add r4, r1, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x4c]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x50]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x54]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x58]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x5c]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x60]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ ldr r0, [r5, #0x64]
+ add r1, r4, #0
+ bl MOD20_02253F78
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD41_02255744
+
+ thumb_func_start MOD41_0225578C
+MOD41_0225578C: ; 0x0225578C
+ add r0, #0xa8
+ ldr r0, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD41_0225578C
+
+ .section .rodata
+ ; 0x02255794
+ .incbin "baserom.nds", 0x293d54, 0x1E0
+
+ ; .section .sinit
+ .global SDK_OVERLAY.MODULE_41.SINIT_START
+ .global SDK_OVERLAY.MODULE_41.SINIT_END
+SDK_OVERLAY.MODULE_41.SINIT_START:
+ .word MOD41_02254840
+ .word 0
+SDK_OVERLAY.MODULE_41.SINIT_END:
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;