diff options
-rw-r--r-- | arm9/arm9.lcf | 140 | ||||
-rw-r--r-- | arm9/asm/OS_spinLock.s | 4 | ||||
-rw-r--r-- | arm9/asm/filesystem.s | 140 | ||||
-rw-r--r-- | arm9/asm/libcard.s | 2 | ||||
-rw-r--r-- | arm9/asm/libctrdg.s | 8 | ||||
-rw-r--r-- | arm9/asm/scrcmd.s | 66 | ||||
-rw-r--r-- | arm9/asm/unk_02000E0C.s | 10 | ||||
-rw-r--r-- | arm9/asm/unk_020023C0.s | 250 | ||||
-rw-r--r-- | arm9/asm/unk_020061E8.s | 2 | ||||
-rw-r--r-- | arm9/asm/unk_02038C78.s | 8 | ||||
-rw-r--r-- | arm9/asm/unk_02046030.s | 860 | ||||
-rw-r--r-- | arm9/asm/unk_0208AC14.s | 14 | ||||
-rw-r--r-- | arm9/asm/unk_020910EC.s | 8 | ||||
-rw-r--r-- | arm9/asm/unk_020AF030.s | 4 | ||||
-rw-r--r-- | arm9/global.inc | 8 | ||||
-rw-r--r-- | arm9/modules/01/src/module_01.cpp | 2 | ||||
-rw-r--r-- | arm9/modules/13/asm/module_13_arm2.s | 14 | ||||
-rw-r--r-- | arm9/modules/20/asm/module_20.s | 8 | ||||
-rw-r--r-- | arm9/modules/29/asm/module_29.s | 10 | ||||
-rw-r--r-- | arm9/modules/36/asm/module_36.s | 6 | ||||
-rw-r--r-- | arm9/modules/37/asm/module_37.s | 681 | ||||
-rw-r--r-- | arm9/modules/38/asm/module_38.s | 1193 | ||||
-rw-r--r-- | arm9/modules/39/asm/module_39.s | 1457 | ||||
-rw-r--r-- | arm9/modules/40/asm/module_40.s | 1417 | ||||
-rw-r--r-- | arm9/modules/41/asm/module_41.s | 2032 | ||||
-rw-r--r-- | arm9/src/main.c | 4 |
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; |