summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--arm9/Makefile22
-rw-r--r--arm9/arm9.lcf16
-rw-r--r--arm9/asm/unk_020AF030.s4
-rw-r--r--arm9/global.inc15
-rw-r--r--arm9/modules/20/asm/module_20.s4570
5 files changed, 4620 insertions, 7 deletions
diff --git a/arm9/Makefile b/arm9/Makefile
index 30a6f10f..f8f4d5f1 100644
--- a/arm9/Makefile
+++ b/arm9/Makefile
@@ -59,6 +59,9 @@ O_FILES := $(foreach file,$(C_FILES),$(BUILD_DIR)/$(file:.c=.o)) \
# Overlay modules
# FIXME: lcf doesn't like this
# BIN_FILES := $(wildcard files/*.__AT_*)
+.SECONDARY:
+.DELETE_ON_ERROR:
+.SECONDEXPANSION:
##################### Compiler Options #######################
@@ -151,11 +154,17 @@ build/src/FUN_020910A4.o: MWCCVERSION = 1.2/sp2p3
####################### Everything Else ######################
-$(BUILD_DIR)/%.o: %.c
- $(CC) -c $(CFLAGS) -o $@ $<
+ifeq (,$(NODEP))
+$(BUILD_DIR)/%.o: dep = $(shell grep -E '(#\s*|\.)(include|incbin)\s*"(\S+?)"' $*.[cs] | cut -d'"' -f2 | sort -u)
+else
+$(BUILD_DIR)/%.o: dep :=
+endif
-$(BUILD_DIR)/%.o: %.s
- $(AS) $(ASFLAGS) $< -o $@
+$(BUILD_DIR)/%.o: %.c $$(dep)
+ $(CC) -c $(CFLAGS) -o $@
+
+$(BUILD_DIR)/%.o: %.s $$(dep)
+ $(AS) $(ASFLAGS) -o $@ $<
$(BUILD_DIR)/$(LD_SCRIPT): $(LD_SCRIPT) $(LD_TEMPLATE) undefined_syms.txt macros.lcf.inc
# $(MAKELSF) $(MAKELSF_FLAGS) $< $(LD_TEMPLATE) $@
@@ -185,6 +194,11 @@ DUMMY != mkdir -p $(ALL_DIRS)
%.png: ;
%.pal: ;
+# Included files
+baserom.%: ;
+%.h: ;
+%.inc: ;
+
$(BIN_FILES): ;
$(BUILD_DIR)/data/icon.o: graphics/icon.4bpp graphics/icon.gbapal
diff --git a/arm9/arm9.lcf b/arm9/arm9.lcf
index b591dd9a..fd4dd766 100644
--- a/arm9/arm9.lcf
+++ b/arm9/arm9.lcf
@@ -30,7 +30,7 @@ MEMORY {
MODULE_17 (RWX) : ORIGIN=0x021D74E0, LENGTH=0
MODULE_18 (RWX) : ORIGIN=0x022396A0, LENGTH=0
MODULE_19 (RWX) : ORIGIN=0x02252440, LENGTH=0
- MODULE_20 (RWX) : ORIGIN=0, LENGTH=0
+ MODULE_20 (RWX) : ORIGIN=0x02252440, LENGTH=0
MODULE_21 (RWX) : ORIGIN=0, LENGTH=0
MODULE_22 (RWX) : ORIGIN=0, LENGTH=0
MODULE_23 (RWX) : ORIGIN=0, LENGTH=0
@@ -616,7 +616,19 @@ SECTIONS {
module_19.o (.bss)
} >> MODULE_19
- OVERLAY_FILE(20, 0x27F200, FILE_283200.o)
+ .MODULE.20 : AT (0x27F200)
+ {
+ module_20.o (.text)
+ module_20.o (.sdata)
+ module_20.o (.data)
+ } > MODULE_20
+
+ .MODULE.20.bss :
+ {
+ module_20.o (.sbss)
+ module_20.o (.bss)
+ } >> MODULE_20
+
OVERLAY_FILE(21, 0x281600, FILE_285600.o)
OVERLAY_FILE(22, 0x281C00, FILE_285C00.o)
OVERLAY_FILE(23, 0x282C00, FILE_286C00.o)
diff --git a/arm9/asm/unk_020AF030.s b/arm9/asm/unk_020AF030.s
index ec33e3fa..3851b8c7 100644
--- a/arm9/asm/unk_020AF030.s
+++ b/arm9/asm/unk_020AF030.s
@@ -1960,7 +1960,9 @@ _020B0824: ; 0x020B0824
cmp r2, r1
strcc r1, [r4, #0x0]
ldmia sp!, {r4,pc}
-_020B0830: ; 0x020B0830
+
+ arm_func_start FUN_020B0830
+FUN_020B0830: ; 0x020B0830
ldrh r3, [r0, #0x6]
ldrh r2, [r0, #0x8]
mov r12, #0x0
diff --git a/arm9/global.inc b/arm9/global.inc
index 4d02cd08..b0a8d71f 100644
--- a/arm9/global.inc
+++ b/arm9/global.inc
@@ -5395,6 +5395,21 @@
.extern MOD05_021F043C
.extern MOD05_021F04F8
.extern MOD05_021F4CD4
+.extern FUN_02006948
+.extern FUN_02006C88
+.extern FUN_02020A6C
+.extern FUN_02020A98
+.extern FUN_02020ACC
+.extern FUN_0204BF14
+.extern FUN_0204BF1C
+.extern FUN_0204BF44
+.extern FUN_0204BF84
+.extern FUN_0204BF88
+.extern FUN_020893E0
+.extern FUN_020B0830
+.extern FUN_020B0888
+.extern FUN_020B0D58
+.extern FUN_020B1AF8
.extern FUN_02013E5C
.extern FUN_02013ECC
.extern FUN_02013EF0
diff --git a/arm9/modules/20/asm/module_20.s b/arm9/modules/20/asm/module_20.s
new file mode 100644
index 00000000..afe8646c
--- /dev/null
+++ b/arm9/modules/20/asm/module_20.s
@@ -0,0 +1,4570 @@
+ .include "asm/macros.inc"
+ .include "global.inc"
+ .section .text
+ .balign 2, 0
+
+ thumb_func_start MOD20_02252440
+MOD20_02252440: ; 0x02252440
+ ldr r3, _02252444 ; =0x02037791
+ bx r3
+ .align 2, 0
+_02252444: .word 0x02037791
+ thumb_func_end MOD20_02252440
+
+ thumb_func_start MOD20_02252448
+MOD20_02252448: ; 0x02252448
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r5, r1, #0
+ mov r0, #3
+ str r2, [sp]
+ mov r1, #7
+ lsl r2, r0, #0xe
+ add r7, r3, #0
+ bl FUN_0201681C
+ mov r0, #3
+ mov r1, #8
+ lsl r2, r0, #0xe
+ bl FUN_0201681C
+ mov r0, #7
+ mov r1, #0x60
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _022524B2
+ str r4, [r5]
+ ldr r0, [sp]
+ str r6, [r4, #0x5c]
+ str r0, [r4, #0x54]
+ bl FUN_0204C1A8
+ str r0, [r4, #0x58]
+ ldr r0, [sp, #0x18]
+ str r7, [r4, #0x4c]
+ str r0, [r4, #0x50]
+ add r0, r4, #0
+ bl MOD20_0225253C
+ cmp r0, #0
+ beq _022524B2
+ bl FUN_0201CC08
+ mov r0, #4
+ bl FUN_0201CC24
+ ldr r0, _022524B4 ; =MOD20_022525F0
+ str r5, [r4, #0x34]
+ add r1, r4, #0
+ mov r2, #4
+ bl FUN_0200CA44
+ str r0, [r4, #0x38]
+ ldr r0, _022524B8 ; =MOD20_0225259C
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA44
+_022524B2:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_022524B4: .word MOD20_022525F0
+_022524B8: .word MOD20_0225259C
+ thumb_func_end MOD20_02252448
+
+ thumb_func_start MOD20_022524BC
+MOD20_022524BC: ; 0x022524BC
+ push {r3, lr}
+ ldrb r1, [r0]
+ cmp r1, #3
+ beq _022524CE
+ cmp r1, #4
+ beq _022524CE
+ mov r1, #3
+ bl MOD20_022525F8
+_022524CE:
+ pop {r3, pc}
+ thumb_func_end MOD20_022524BC
+
+ thumb_func_start MOD20_022524D0
+MOD20_022524D0: ; 0x022524D0
+ cmp r0, #0
+ bne _022524D8
+ mov r0, #1
+ bx lr
+_022524D8:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD20_022524D0
+
+ thumb_func_start MOD20_022524DC
+MOD20_022524DC: ; 0x022524DC
+ push {r4, lr}
+ add r4, r0, #0
+ cmp r1, #5
+ bhi _0225252E
+ add r0, r1, r1
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022524F0: ; jump table
+ .short _0225252E - _022524F0 - 2 ; case 0
+ .short _022524FC - _022524F0 - 2 ; case 1
+ .short _0225252E - _022524F0 - 2 ; case 2
+ .short _0225252E - _022524F0 - 2 ; case 3
+ .short _0225251E - _022524F0 - 2 ; case 4
+ .short _02252502 - _022524F0 - 2 ; case 5
+_022524FC:
+ mov r0, #1
+ strb r0, [r4, #4]
+ pop {r4, pc}
+_02252502:
+ ldr r0, [r4, #0x58]
+ bl FUN_0204BF84
+ add r1, r0, #1
+ ldr r0, _02252530 ; =0x0001869F
+ cmp r1, r0
+ bls _02252512
+ mov r1, #0
+_02252512:
+ ldr r0, [r4, #0x58]
+ bl FUN_0204BF88
+ mov r0, #1
+ strb r0, [r4, #7]
+ pop {r4, pc}
+_0225251E:
+ ldrb r0, [r4, #2]
+ cmp r0, #2
+ bne _0225252E
+ ldr r1, [r4, #0x44]
+ cmp r1, #0
+ beq _0225252E
+ ldr r0, [r4, #0x48]
+ blx r1
+_0225252E:
+ pop {r4, pc}
+ .align 2, 0
+_02252530: .word 0x0001869F
+ thumb_func_end MOD20_022524DC
+
+ thumb_func_start MOD20_02252534
+MOD20_02252534: ; 0x02252534
+ ldrb r0, [r0, #3]
+ bx lr
+ thumb_func_end MOD20_02252534
+
+ thumb_func_start MOD20_02252538
+MOD20_02252538: ; 0x02252538
+ ldr r0, [r0, #0x14]
+ bx lr
+ thumb_func_end MOD20_02252538
+
+ thumb_func_start MOD20_0225253C
+MOD20_0225253C: ; 0x0225253C
+ push {r4, lr}
+ add r4, r0, #0
+ add r1, r4, #0
+ ldr r2, [r4, #0x50]
+ add r0, #0x1c
+ add r1, #0x20
+ add r3, r4, #0
+ bl MOD20_02252C5C
+ cmp r0, #0
+ beq _02252578
+ mov r1, #0
+ strb r1, [r4]
+ strb r1, [r4, #1]
+ strb r1, [r4, #3]
+ strb r1, [r4, #4]
+ strb r1, [r4, #7]
+ strb r1, [r4, #5]
+ strb r1, [r4, #6]
+ sub r0, r1, #1
+ str r0, [r4, #0x14]
+ strb r1, [r4, #2]
+ add r0, r4, #0
+ str r1, [r4, #8]
+ bl MOD20_022529C4
+ cmp r0, #0
+ beq _02252578
+ mov r0, #1
+ pop {r4, pc}
+_02252578:
+ mov r0, #0
+ pop {r4, pc}
+ thumb_func_end MOD20_0225253C
+
+ thumb_func_start MOD20_0225257C
+MOD20_0225257C: ; 0x0225257C
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4, #0x38]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl MOD20_02252A08
+ add r0, r4, #0
+ bl MOD20_022528FC
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02252E18
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_0225257C
+
+ thumb_func_start MOD20_0225259C
+MOD20_0225259C: ; 0x0225259C
+ push {r3, r4, r5, lr}
+ add r4, r1, #0
+ add r5, r0, #0
+ ldrb r0, [r4]
+ cmp r0, #4
+ bhs _022525C0
+ cmp r0, #0
+ beq _022525B2
+ add r0, r4, #0
+ bl MOD20_02252A14
+_022525B2:
+ ldrb r1, [r4]
+ add r0, r4, #0
+ lsl r2, r1, #2
+ ldr r1, _022525EC ; =0x022544CC
+ ldr r1, [r1, r2]
+ blx r1
+ pop {r3, r4, r5, pc}
+_022525C0:
+ beq _022525C6
+ bl ErrorHandling
+_022525C6:
+ ldr r0, [r4, #0x34]
+ mov r1, #0
+ str r1, [r0]
+ add r0, r4, #0
+ bl MOD20_0225257C
+ add r0, r4, #0
+ bl FUN_02016A18
+ add r0, r5, #0
+ bl FUN_0200CAB4
+ mov r0, #7
+ bl FUN_020168D0
+ mov r0, #8
+ bl FUN_020168D0
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_022525EC: .word 0x022544CC
+ thumb_func_end MOD20_0225259C
+
+ thumb_func_start MOD20_022525F0
+MOD20_022525F0: ; 0x022525F0
+ mov r0, #0
+ strb r0, [r1, #4]
+ strb r0, [r1, #7]
+ bx lr
+ thumb_func_end MOD20_022525F0
+
+ thumb_func_start MOD20_022525F8
+MOD20_022525F8: ; 0x022525F8
+ strb r1, [r0]
+ mov r1, #0
+ strb r1, [r0, #1]
+ bx lr
+ thumb_func_end MOD20_022525F8
+
+ thumb_func_start MOD20_02252600
+MOD20_02252600: ; 0x02252600
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _02252684
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252616: ; jump table
+ .short _0225261E - _02252616 - 2 ; case 0
+ .short _0225262E - _02252616 - 2 ; case 1
+ .short _0225265A - _02252616 - 2 ; case 2
+ .short _02252670 - _02252616 - 2 ; case 3
+_0225261E:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl MOD20_02252E80
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, r5, pc}
+_0225262E:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0
+ bl MOD20_02252EA4
+ cmp r0, #0
+ beq _02252684
+ ldr r0, [r4, #0x58]
+ bl FUN_0204BF14
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD20_022528B0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD20_02252918
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, r5, pc}
+_0225265A:
+ bl MOD20_0225293C
+ cmp r0, #0
+ beq _02252684
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl MOD20_02252E80
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+_02252670:
+ ldr r0, [r4, #0x1c]
+ mov r1, #1
+ bl MOD20_02252EA4
+ cmp r0, #0
+ beq _02252684
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD20_022525F8
+_02252684:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252600
+
+ thumb_func_start MOD20_02252688
+MOD20_02252688: ; 0x02252688
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #4
+ bls _02252694
+ b _022527AA
+_02252694:
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_022526A0: ; jump table
+ .short _022526AA - _022526A0 - 2 ; case 0
+ .short _022526D4 - _022526A0 - 2 ; case 1
+ .short _0225271A - _022526A0 - 2 ; case 2
+ .short _02252750 - _022526A0 - 2 ; case 3
+ .short _0225276C - _022526A0 - 2 ; case 4
+_022526AA:
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _022527AA
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ beq _022526BC
+ cmp r0, #5
+ bne _022527AA
+_022526BC:
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #1
+ strb r0, [r4, #5]
+ ldr r0, [r4, #0x1c]
+ mov r1, #4
+ bl MOD20_02252E80
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_022526D4:
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ beq _022526DE
+ cmp r0, #5
+ bne _022526E2
+_022526DE:
+ mov r0, #1
+ str r0, [r4, #0xc]
+_022526E2:
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02252EB0
+ cmp r0, #0
+ beq _022527AA
+ ldr r0, [r4, #0x58]
+ bl FUN_0204BF1C
+ str r0, [r4, #0x20]
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02252710
+ ldr r0, [r4, #0x1c]
+ mov r1, #9
+ bl MOD20_02252E80
+ mov r0, #0x1e
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #4
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_02252710:
+ mov r0, #3
+ str r0, [r4, #0x10]
+ mov r0, #2
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_0225271A:
+ ldr r1, [r4, #8]
+ cmp r1, #3
+ beq _02252724
+ cmp r1, #5
+ bne _0225273A
+_02252724:
+ ldr r0, [r4, #0x1c]
+ mov r1, #9
+ bl MOD20_02252E80
+ mov r0, #0x1e
+ str r0, [r4, #0x10]
+ mov r0, #0
+ str r0, [r4, #0xc]
+ mov r0, #4
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_0225273A:
+ ldr r1, [r4, #0x10]
+ cmp r1, #0
+ beq _02252746
+ sub r0, r1, #1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+_02252746:
+ bl MOD20_0225294C
+ mov r0, #3
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_02252750:
+ bl MOD20_02252968
+ cmp r0, #0
+ beq _022527AA
+ add r0, r4, #0
+ bl MOD20_022528FC
+ bl FUN_020893E0
+ add r0, r4, #0
+ mov r1, #2
+ bl MOD20_022525F8
+ pop {r4, pc}
+_0225276C:
+ ldr r0, [r4, #8]
+ cmp r0, #3
+ beq _02252776
+ cmp r0, #5
+ bne _0225278C
+_02252776:
+ ldr r0, [r4, #0x58]
+ bl FUN_0204BF1C
+ str r0, [r4, #0x20]
+ mov r0, #0x1e
+ str r0, [r4, #0x10]
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xa
+ bl MOD20_02252E80
+ pop {r4, pc}
+_0225278C:
+ ldr r0, [r4, #0x10]
+ cmp r0, #0
+ beq _02252798
+ sub r0, r0, #1
+ str r0, [r4, #0x10]
+ pop {r4, pc}
+_02252798:
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xb
+ bl MOD20_02252E80
+ add r0, r4, #0
+ bl MOD20_0225294C
+ mov r0, #3
+ strb r0, [r4, #1]
+_022527AA:
+ pop {r4, pc}
+ thumb_func_end MOD20_02252688
+
+ thumb_func_start MOD20_022527AC
+MOD20_022527AC: ; 0x022527AC
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #0
+ beq _022527C0
+ cmp r1, #1
+ beq _022527E4
+ cmp r1, #2
+ beq _022527FC
+ pop {r3, r4, r5, pc}
+_022527C0:
+ mov r0, #1
+ strb r0, [r4, #6]
+ ldr r0, [r4, #0x58]
+ bl FUN_0204BF14
+ add r5, r0, #0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD20_022528B0
+ add r0, r4, #0
+ add r1, r5, #0
+ bl MOD20_02252918
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, r5, pc}
+_022527E4:
+ bl MOD20_0225293C
+ cmp r0, #0
+ beq _02252816
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD20_02252E80
+ ldrb r0, [r4, #1]
+ add r0, r0, #1
+ strb r0, [r4, #1]
+ pop {r3, r4, r5, pc}
+_022527FC:
+ ldr r0, [r4, #0x1c]
+ mov r1, #2
+ bl MOD20_02252EA4
+ cmp r0, #0
+ beq _02252816
+ mov r0, #0
+ strb r0, [r4, #5]
+ strb r0, [r4, #6]
+ add r0, r4, #0
+ mov r1, #1
+ bl MOD20_022525F8
+_02252816:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_022527AC
+
+ thumb_func_start MOD20_02252818
+MOD20_02252818: ; 0x02252818
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r1, [r4, #1]
+ cmp r1, #3
+ bhi _022528AC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_0225282E: ; jump table
+ .short _02252836 - _0225282E - 2 ; case 0
+ .short _02252866 - _0225282E - 2 ; case 1
+ .short _0225287A - _0225282E - 2 ; case 2
+ .short _02252890 - _0225282E - 2 ; case 3
+_02252836:
+ ldrb r1, [r4, #2]
+ cmp r1, #3
+ bhi _022528AC
+ add r1, r1, r1
+ add r1, pc
+ ldrh r1, [r1, #6]
+ lsl r1, r1, #0x10
+ asr r1, r1, #0x10
+ add pc, r1
+_02252848: ; jump table
+ .short _02252860 - _02252848 - 2 ; case 0
+ .short _02252850 - _02252848 - 2 ; case 1
+ .short _02252856 - _02252848 - 2 ; case 2
+ .short _02252860 - _02252848 - 2 ; case 3
+_02252850:
+ mov r0, #1
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_02252856:
+ bl MOD20_0225294C
+ mov r0, #2
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_02252860:
+ mov r0, #2
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_02252866:
+ bl MOD20_0225293C
+ cmp r0, #0
+ beq _022528AC
+ add r0, r4, #0
+ bl MOD20_0225294C
+ mov r0, #2
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_0225287A:
+ bl MOD20_02252968
+ cmp r0, #0
+ beq _022528AC
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xe
+ bl MOD20_02252E80
+ mov r0, #3
+ strb r0, [r4, #1]
+ pop {r4, pc}
+_02252890:
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02252EB0
+ cmp r0, #0
+ beq _022528AC
+ add r0, r4, #0
+ bl MOD20_022528FC
+ bl FUN_0201CD04
+ add r0, r4, #0
+ mov r1, #4
+ bl MOD20_022525F8
+_022528AC:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252818
+
+ thumb_func_start MOD20_022528B0
+MOD20_022528B0: ; 0x022528B0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bmi _022528BC
+ cmp r4, #0x19
+ blo _022528C0
+_022528BC:
+ bl ErrorHandling
+_022528C0:
+ mov r0, #0
+ ldr r1, [r5, #0x14]
+ mvn r0, r0
+ cmp r1, r0
+ bne _022528F0
+ ldr r2, _022528F4 ; =0x022544DC
+ mov r1, #0
+_022528CE:
+ ldr r0, [r2]
+ cmp r4, r0
+ bne _022528E8
+ ldr r0, _022528F8 ; =0x022544E0
+ lsl r1, r1, #3
+ ldr r6, [r0, r1]
+ mov r1, #2
+ add r0, r6, #0
+ bl HandleLoadOverlay
+ str r4, [r5, #0x14]
+ str r6, [r5, #0x18]
+ pop {r4, r5, r6, pc}
+_022528E8:
+ add r1, r1, #1
+ add r2, #8
+ cmp r1, #0x19
+ blo _022528CE
+_022528F0:
+ pop {r4, r5, r6, pc}
+ nop
+_022528F4: .word 0x022544DC
+_022528F8: .word 0x022544E0
+ thumb_func_end MOD20_022528B0
+
+ thumb_func_start MOD20_022528FC
+MOD20_022528FC: ; 0x022528FC
+ push {r4, lr}
+ add r4, r0, #0
+ mov r0, #0
+ ldr r1, [r4, #0x14]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02252916
+ ldr r0, [r4, #0x18]
+ bl UnloadOverlayByID
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x14]
+_02252916:
+ pop {r4, pc}
+ thumb_func_end MOD20_022528FC
+
+ thumb_func_start MOD20_02252918
+MOD20_02252918: ; 0x02252918
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r0, #0
+ beq _02252926
+ bl ErrorHandling
+_02252926:
+ add r0, r4, #0
+ ldr r2, [r4, #0x4c]
+ ldr r3, [r4, #0x14]
+ ldr r5, [r4, #0x3c]
+ add r0, #0x24
+ add r1, r4, #0
+ blx r5
+ mov r0, #1
+ strb r0, [r4, #2]
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252918
+
+ thumb_func_start MOD20_0225293C
+MOD20_0225293C: ; 0x0225293C
+ ldrb r0, [r0, #2]
+ cmp r0, #2
+ bne _02252946
+ mov r0, #1
+ bx lr
+_02252946:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_0225293C
+
+ thumb_func_start MOD20_0225294C
+MOD20_0225294C: ; 0x0225294C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r0, #2
+ beq _0225295A
+ bl ErrorHandling
+_0225295A:
+ ldr r0, [r4, #0x24]
+ ldr r1, [r4, #0x40]
+ blx r1
+ mov r0, #3
+ strb r0, [r4, #2]
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_0225294C
+
+ thumb_func_start MOD20_02252968
+MOD20_02252968: ; 0x02252968
+ ldrb r0, [r0, #2]
+ cmp r0, #0
+ bne _02252972
+ mov r0, #1
+ bx lr
+_02252972:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02252968
+
+ thumb_func_start MOD20_02252978
+MOD20_02252978: ; 0x02252978
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_02252440
+ str r5, [r0, #0x3c]
+ str r4, [r0, #0x40]
+ mov r1, #0
+ str r1, [r0, #0x44]
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252978
+
+ thumb_func_start MOD20_0225298C
+MOD20_0225298C: ; 0x0225298C
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r0, #1
+ beq _0225299A
+ bl ErrorHandling
+_0225299A:
+ mov r0, #2
+ strb r0, [r4, #2]
+ pop {r4, pc}
+ thumb_func_end MOD20_0225298C
+
+ thumb_func_start MOD20_022529A0
+MOD20_022529A0: ; 0x022529A0
+ push {r4, lr}
+ add r4, r0, #0
+ ldrb r0, [r4, #2]
+ cmp r0, #3
+ beq _022529AE
+ bl ErrorHandling
+_022529AE:
+ mov r0, #0
+ strb r0, [r4, #2]
+ pop {r4, pc}
+ thumb_func_end MOD20_022529A0
+
+ thumb_func_start MOD20_022529B4
+MOD20_022529B4: ; 0x022529B4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_02252440
+ str r5, [r0, #0x44]
+ str r4, [r0, #0x48]
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_022529B4
+
+ thumb_func_start MOD20_022529C4
+MOD20_022529C4: ; 0x022529C4
+ push {r3, r4, lr}
+ sub sp, #4
+ add r4, r0, #0
+ mov r0, #7
+ str r0, [sp]
+ ldr r0, _02252A00 ; =0x022544C4
+ ldr r2, _02252A04 ; =MOD20_02252A24
+ mov r1, #2
+ add r3, r4, #0
+ bl MOD20_02254130
+ str r0, [r4, #0x28]
+ cmp r0, #0
+ beq _022529F8
+ mov r1, #0
+ add r2, r1, #0
+ mov r3, #7
+ bl MOD20_022542AC
+ mov r0, #0
+ mvn r0, r0
+ str r0, [r4, #0x2c]
+ str r0, [r4, #0x30]
+ add sp, #4
+ mov r0, #1
+ pop {r3, r4, pc}
+_022529F8:
+ mov r0, #0
+ add sp, #4
+ pop {r3, r4, pc}
+ nop
+_02252A00: .word 0x022544C4
+_02252A04: .word MOD20_02252A24
+ thumb_func_end MOD20_022529C4
+
+ thumb_func_start MOD20_02252A08
+MOD20_02252A08: ; 0x02252A08
+ ldr r3, _02252A10 ; =MOD20_02254198
+ ldr r0, [r0, #0x28]
+ bx r3
+ nop
+_02252A10: .word MOD20_02254198
+ thumb_func_end MOD20_02252A08
+
+ thumb_func_start MOD20_02252A14
+MOD20_02252A14: ; 0x02252A14
+ ldr r3, _02252A20 ; =MOD20_022541B4
+ mov r1, #0
+ str r1, [r0, #8]
+ ldr r0, [r0, #0x28]
+ bx r3
+ nop
+_02252A20: .word MOD20_022541B4
+ thumb_func_end MOD20_02252A14
+
+ thumb_func_start MOD20_02252A24
+MOD20_02252A24: ; 0x02252A24
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r3, #0
+ add r4, r0, #0
+ add r0, r5, #0
+ add r6, r1, #0
+ add r7, r2, #0
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252A4C
+ cmp r7, #0
+ beq _02252A46
+ cmp r7, #1
+ bne _02252A50
+ mov r0, #1
+ strb r0, [r5, #3]
+ b _02252A50
+_02252A46:
+ mov r0, #0
+ strb r0, [r5, #3]
+ b _02252A50
+_02252A4C:
+ mov r0, #0
+ strb r0, [r5, #3]
+_02252A50:
+ cmp r4, #1
+ bne _02252A6A
+ add r0, r5, #0
+ bl MOD20_02252C08
+ cmp r0, #0
+ beq _02252AEA
+ cmp r7, #1
+ bne _02252AEA
+ ldr r0, _02252AEC ; =0x0000066E
+ bl FUN_020054C8
+ pop {r3, r4, r5, r6, r7, pc}
+_02252A6A:
+ mov r4, #0
+ mvn r4, r4
+ cmp r7, #0
+ beq _02252A78
+ cmp r7, #1
+ beq _02252A7C
+ b _02252A94
+_02252A78:
+ mov r4, #8
+ b _02252A94
+_02252A7C:
+ add r0, r5, #0
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252A8C
+ ldrb r0, [r5, #6]
+ cmp r0, #0
+ beq _02252A92
+_02252A8C:
+ mov r4, #6
+ mov r6, #0
+ b _02252A94
+_02252A92:
+ mov r4, #7
+_02252A94:
+ mov r0, #0
+ ldr r1, [r5, #0x2c]
+ mvn r0, r0
+ cmp r1, r0
+ beq _02252AA4
+ add r0, r4, #0
+ add r4, r1, #0
+ str r0, [r5, #0x2c]
+_02252AA4:
+ mov r0, #0
+ mvn r0, r0
+ cmp r4, r0
+ beq _02252AC0
+ ldr r0, [r5, #0x1c]
+ add r1, r4, #0
+ bl MOD20_02252AF0
+ cmp r0, #0
+ beq _02252AC0
+ sub r0, r4, #6
+ cmp r0, #1
+ bhi _02252AC0
+ str r4, [r5, #0x30]
+_02252AC0:
+ cmp r6, #2
+ beq _02252AE0
+ cmp r6, #3
+ beq _02252AD6
+ cmp r6, #5
+ bne _02252AE8
+ ldr r0, [r5, #0x28]
+ mov r1, #0
+ bl MOD20_022542CC
+ b _02252AE8
+_02252AD6:
+ ldr r0, [r5, #0x30]
+ cmp r0, #6
+ bne _02252AE8
+ mov r6, #0
+ b _02252AE8
+_02252AE0:
+ ldr r0, [r5, #0x30]
+ cmp r0, #7
+ bne _02252AE8
+ mov r6, #3
+_02252AE8:
+ str r6, [r5, #8]
+_02252AEA:
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02252AEC: .word 0x0000066E
+ thumb_func_end MOD20_02252A24
+
+ thumb_func_start MOD20_02252AF0
+MOD20_02252AF0: ; 0x02252AF0
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r4, #0
+_02252AF8:
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD20_02252EA4
+ cmp r0, #0
+ bne _02252B08
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+_02252B08:
+ add r4, r4, #1
+ cmp r4, #3
+ blo _02252AF8
+ add r0, r5, #0
+ add r1, r6, #0
+ bl MOD20_02252E80
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252AF0
+
+ thumb_func_start MOD20_02252B1C
+MOD20_02252B1C: ; 0x02252B1C
+ push {r3, lr}
+ bl MOD20_02252440
+ ldr r0, [r0, #0x1c]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252B1C
+
+ thumb_func_start MOD20_02252B28
+MOD20_02252B28: ; 0x02252B28
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_02252440
+ ldrb r1, [r0, #5]
+ cmp r1, #0
+ bne _02252B46
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252B46
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_020054C8
+_02252B46:
+ pop {r4, pc}
+ thumb_func_end MOD20_02252B28
+
+ thumb_func_start MOD20_02252B48
+MOD20_02252B48: ; 0x02252B48
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_02252440
+ ldrb r1, [r0, #5]
+ cmp r1, #0
+ bne _02252B66
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252B66
+ lsl r0, r4, #0x10
+ lsr r0, r0, #0x10
+ bl FUN_02005578
+_02252B66:
+ pop {r4, pc}
+ thumb_func_end MOD20_02252B48
+
+ thumb_func_start MOD20_02252B68
+MOD20_02252B68: ; 0x02252B68
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_02252440
+ ldrb r1, [r0, #5]
+ cmp r1, #0
+ bne _02252BB4
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252BB4
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02020AB0
+ cmp r0, #0
+ beq _02252BB4
+ ldr r0, [r5]
+ sub r0, #0x10
+ cmp r0, #0xbf
+ bhs _02252B98
+ mov r1, #1
+ b _02252B9A
+_02252B98:
+ mov r1, #0
+_02252B9A:
+ ldr r0, [r4]
+ sub r0, #0x10
+ cmp r0, #0x9f
+ bhs _02252BA6
+ mov r0, #1
+ b _02252BA8
+_02252BA6:
+ mov r0, #0
+_02252BA8:
+ tst r0, r1
+ beq _02252BB0
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02252BB0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02252BB4:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252B68
+
+ thumb_func_start MOD20_02252BB8
+MOD20_02252BB8: ; 0x02252BB8
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_02252440
+ ldrb r1, [r0, #5]
+ cmp r1, #0
+ bne _02252C04
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252C04
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02020ACC
+ cmp r0, #0
+ beq _02252C04
+ ldr r0, [r5]
+ sub r0, #0x10
+ cmp r0, #0xbf
+ bhs _02252BE8
+ mov r1, #1
+ b _02252BEA
+_02252BE8:
+ mov r1, #0
+_02252BEA:
+ ldr r0, [r4]
+ sub r0, #0x10
+ cmp r0, #0x9f
+ bhs _02252BF6
+ mov r0, #1
+ b _02252BF8
+_02252BF6:
+ mov r0, #0
+_02252BF8:
+ tst r0, r1
+ beq _02252C00
+ mov r0, #1
+ pop {r3, r4, r5, pc}
+_02252C00:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+_02252C04:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252BB8
+
+ thumb_func_start MOD20_02252C08
+MOD20_02252C08: ; 0x02252C08
+ ldr r3, _02252C10 ; =0x0204646D
+ ldr r0, [r0, #0x5c]
+ bx r3
+ nop
+_02252C10: .word 0x0204646D
+ thumb_func_end MOD20_02252C08
+
+ thumb_func_start MOD20_02252C14
+MOD20_02252C14: ; 0x02252C14
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_02252C08
+ cmp r0, #0
+ bne _02252C2E
+ ldrb r0, [r5, #5]
+ cmp r0, #0
+ bne _02252C2E
+ add r0, r4, #0
+ bl MOD20_022541B4
+_02252C2E:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252C14
+
+ thumb_func_start MOD20_02252C30
+MOD20_02252C30: ; 0x02252C30
+ ldrb r0, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_02252C30
+
+ thumb_func_start MOD20_02252C34
+MOD20_02252C34: ; 0x02252C34
+ ldrb r0, [r0, #7]
+ bx lr
+ thumb_func_end MOD20_02252C34
+
+ thumb_func_start MOD20_02252C38
+MOD20_02252C38: ; 0x02252C38
+ ldr r0, [r0, #0x5c]
+ bx lr
+ thumb_func_end MOD20_02252C38
+
+ thumb_func_start MOD20_02252C3C
+MOD20_02252C3C: ; 0x02252C3C
+ ldr r0, [r0, #0x58]
+ bx lr
+ thumb_func_end MOD20_02252C3C
+
+ thumb_func_start MOD20_02252C40
+MOD20_02252C40: ; 0x02252C40
+ ldr r0, [r0, #0x54]
+ bx lr
+ thumb_func_end MOD20_02252C40
+
+ thumb_func_start MOD20_02252C44
+MOD20_02252C44: ; 0x02252C44
+ push {r3, lr}
+ ldr r0, [r0, #0x54]
+ bl FUN_020238F4
+ bl FUN_020239CC
+ cmp r0, #1
+ beq _02252C58
+ mov r0, #1
+ pop {r3, pc}
+_02252C58:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD20_02252C44
+
+ thumb_func_start MOD20_02252C5C
+MOD20_02252C5C: ; 0x02252C5C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r1, #0
+ mov r1, #0xea
+ add r5, r0, #0
+ mov r0, #7
+ lsl r1, r1, #2
+ add r7, r2, #0
+ str r3, [sp]
+ bl FUN_02016998
+ str r0, [r5]
+ add r4, r0, #0
+ beq _02252D0A
+ mov r0, #0x15
+ lsl r0, r0, #4
+ str r7, [r4, r0]
+ ldr r0, [r4, r0]
+ bl FUN_020B0888
+ mov r0, #0x15
+ lsl r0, r0, #4
+ ldr r0, [r4, r0]
+ mov r1, #7
+ bl MOD20_02253BA4
+ mov r1, #0x55
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ ldr r0, [r4, r1]
+ cmp r0, #0
+ bne _02252CA6
+ ldr r0, [r5]
+ bl FUN_02016A18
+ mov r0, #0
+ str r0, [r5]
+ pop {r3, r4, r5, r6, r7, pc}
+_02252CA6:
+ mov r0, #7
+ str r6, [r4]
+ bl FUN_02016B94
+ mov r1, #6
+ lsl r1, r1, #6
+ str r0, [r4, r1]
+ ldr r0, [sp]
+ add r1, r1, #4
+ str r0, [r4, r1]
+ add r0, r4, #0
+ bl MOD20_02252D44
+ mov r1, #0x57
+ lsl r1, r1, #2
+ add r0, r4, r1
+ sub r1, #8
+ ldr r1, [r4, r1]
+ bl MOD20_02253428
+ ldr r0, [r5]
+ mov r1, #8
+ add r0, r0, #4
+ bl MOD20_022536F4
+ ldr r0, [r5]
+ mov r1, #0x88
+ add r0, #0x2c
+ bl MOD20_02252E5C
+ ldr r0, [r5]
+ mov r1, #0x8c
+ add r0, #0x84
+ bl MOD20_02252E5C
+ ldr r0, [r5]
+ mov r1, #0x90
+ add r0, #0xdc
+ bl MOD20_02252E5C
+ ldr r0, _02252D10 ; =MOD20_02252D14
+ add r1, r4, #0
+ mov r2, #0
+ bl FUN_0200CA98
+ mov r1, #0x56
+ lsl r1, r1, #2
+ str r0, [r4, r1]
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+_02252D0A:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02252D10: .word MOD20_02252D14
+ thumb_func_end MOD20_02252C5C
+
+ thumb_func_start MOD20_02252D14
+MOD20_02252D14: ; 0x02252D14
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r3, _02252D20 ; =MOD20_02253C78
+ ldr r0, [r1, r0]
+ bx r3
+ nop
+_02252D20: .word MOD20_02253C78
+ thumb_func_end MOD20_02252D14
+
+ thumb_func_start MOD20_02252D24
+MOD20_02252D24: ; 0x02252D24
+ push {r3, lr}
+ bl MOD20_02252B1C
+ mov r1, #0x55
+ lsl r1, r1, #2
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252D24
+
+ thumb_func_start MOD20_02252D34
+MOD20_02252D34: ; 0x02252D34
+ push {r3, lr}
+ bl MOD20_02252B1C
+ mov r1, #6
+ lsl r1, r1, #6
+ ldr r0, [r0, r1]
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252D34
+
+ thumb_func_start MOD20_02252D44
+MOD20_02252D44: ; 0x02252D44
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0xc
+ mov r1, #0
+ add r2, sp, #0
+ mov r3, #7
+ bl FUN_02006C08
+ add r4, r0, #0
+ beq _02252D7A
+ ldr r0, [sp]
+ mov r2, #0x62
+ lsl r2, r2, #2
+ add r1, r5, r2
+ ldr r0, [r0, #0xc]
+ add r2, #0x78
+ bl MIi_CpuCopy32
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r0, r5, r1
+ add r1, #0x78
+ bl DC_FlushRange
+ add r0, r4, #0
+ bl FUN_02016A18
+_02252D7A:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252D44
+
+ thumb_func_start MOD20_02252D7C
+MOD20_02252D7C: ; 0x02252D7C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ bl MOD20_02252B1C
+ add r4, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C3C
+ bl FUN_0204BF44
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r5, r4, r1
+ lsl r4, r0, #6
+ add r0, r5, r4
+ lsl r1, r6, #5
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r5, r4
+ add r1, r7, #0
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02252D7C
+
+ thumb_func_start MOD20_02252DB4
+MOD20_02252DB4: ; 0x02252DB4
+ push {r3, r4, r5, lr}
+ bl MOD20_02252B1C
+ add r4, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C3C
+ bl FUN_0204BF44
+ mov r1, #0x62
+ lsl r0, r0, #5
+ lsl r1, r1, #2
+ add r0, #0x10
+ add r4, r4, r1
+ lsl r5, r0, #1
+ add r0, r4, r5
+ mov r1, #0
+ mov r2, #0x20
+ bl GXS_LoadBGPltt
+ add r0, r4, r5
+ mov r1, #0
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252DB4
+
+ thumb_func_start MOD20_02252DEC
+MOD20_02252DEC: ; 0x02252DEC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl MOD20_02252B1C
+ add r4, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C3C
+ bl FUN_0204BF44
+ mov r1, #0x62
+ lsl r1, r1, #2
+ add r1, r4, r1
+ lsl r0, r0, #6
+ add r0, r1, r0
+ add r1, r5, #0
+ mov r2, #0x20
+ bl MIi_CpuCopy16
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02252DEC
+
+ thumb_func_start MOD20_02252E18
+MOD20_02252E18: ; 0x02252E18
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02252E58
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r0, r4, r0
+ bl MOD20_022535A4
+ mov r0, #0x55
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02252E36
+ bl MOD20_02253C4C
+_02252E36:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02252E44
+ bl FUN_02016A18
+_02252E44:
+ mov r0, #0x56
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ cmp r0, #0
+ beq _02252E52
+ bl FUN_0200CAB4
+_02252E52:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02252E58:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252E18
+
+ thumb_func_start MOD20_02252E5C
+MOD20_02252E5C: ; 0x02252E5C
+ push {r4, r5}
+ mov r2, #0xf
+ ldr r5, _02252E7C ; =0x022545EC
+ mov r4, #0
+ lsl r2, r2, #0xc
+_02252E66:
+ ldrh r3, [r5]
+ add r4, r4, #1
+ add r5, r5, #2
+ add r3, r1, r3
+ orr r3, r2
+ strh r3, [r0]
+ add r0, r0, #2
+ cmp r4, #0x2c
+ blo _02252E66
+ pop {r4, r5}
+ bx lr
+ .align 2, 0
+_02252E7C: .word 0x022545EC
+ thumb_func_end MOD20_02252E5C
+
+ thumb_func_start MOD20_02252E80
+MOD20_02252E80: ; 0x02252E80
+ push {lr}
+ sub sp, #0xc
+ add r2, r0, #0
+ add r0, r2, #4
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ ldr r0, _02252EA0 ; =0x02254644
+ ldr r3, [r2]
+ bl MOD20_022537E0
+ add sp, #0xc
+ pop {pc}
+ nop
+_02252EA0: .word 0x02254644
+ thumb_func_end MOD20_02252E80
+
+ thumb_func_start MOD20_02252EA4
+MOD20_02252EA4: ; 0x02252EA4
+ ldr r3, _02252EAC ; =MOD20_02253794
+ add r0, r0, #4
+ bx r3
+ nop
+_02252EAC: .word MOD20_02253794
+ thumb_func_end MOD20_02252EA4
+
+ thumb_func_start MOD20_02252EB0
+MOD20_02252EB0: ; 0x02252EB0
+ ldr r3, _02252EB8 ; =MOD20_022537B8
+ add r0, r0, #4
+ bx r3
+ nop
+_02252EB8: .word MOD20_022537B8
+ thumb_func_end MOD20_02252EB0
+
+ thumb_func_start MOD20_02252EBC
+MOD20_02252EBC: ; 0x02252EBC
+ push {r4, lr}
+ add r4, r0, #0
+ bl MOD20_022538A0
+ add r0, r0, #4
+ add r1, r4, #0
+ bl MOD20_02253888
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02252EBC
+
+ thumb_func_start MOD20_02252ED0
+MOD20_02252ED0: ; 0x02252ED0
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0
+ bl GXS_SetGraphicsMode
+ mov r0, #0x80
+ bl GX_SetBankForSubBG
+ mov r0, #1
+ lsl r0, r0, #8
+ bl GX_SetBankForSubOBJ
+ ldr r2, _02252FD8 ; =0x04001000
+ ldr r0, _02252FDC ; =0xFFCFFFEF
+ ldr r1, [r2]
+ and r1, r0
+ mov r0, #0x10
+ orr r0, r1
+ str r0, [r2]
+ bl FUN_0201E740
+ mov r0, #0x10
+ mov r1, #1
+ bl FUN_0201E74C
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r2, _02252FE0 ; =0x022545B4
+ mov r1, #4
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ ldr r2, _02252FE4 ; =0x022545D0
+ mov r1, #5
+ mov r3, #0
+ bl FUN_02016C18
+ mov r0, #0x40
+ str r0, [sp]
+ mov r0, #0
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #7
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ lsl r2, r0, #5
+ ldr r2, [r4, r2]
+ mov r1, #0xe
+ mov r3, #4
+ bl FUN_0200687C
+ mov r0, #0
+ str r0, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #7
+ str r0, [sp, #0xc]
+ mov r0, #0xc
+ lsl r2, r0, #5
+ ldr r2, [r4, r2]
+ mov r1, #0xf
+ mov r3, #4
+ bl FUN_020068C8
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r4, r0]
+ bl MOD20_02252C44
+ add r3, r0, #0
+ mov r0, #0x1e
+ lsl r0, r0, #4
+ str r0, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #0xd
+ mov r2, #4
+ lsl r3, r3, #5
+ bl FUN_02006948
+ mov r3, #0
+ str r3, [sp]
+ mov r0, #0x20
+ str r0, [sp, #4]
+ mov r1, #0x18
+ str r1, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ mov r2, #0xd8
+ bl FUN_02018540
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ ldr r0, _02252FD8 ; =0x04001000
+ ldr r1, _02252FE8 ; =0xFFFFE0FF
+ ldr r2, [r0]
+ and r2, r1
+ mov r1, #0x13
+ lsl r1, r1, #8
+ orr r1, r2
+ str r1, [r0]
+ ldr r2, [r0]
+ ldr r1, _02252FEC ; =0xFFFF1FFF
+ and r1, r2
+ str r1, [r0]
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_02252FD8: .word 0x04001000
+_02252FDC: .word 0xFFCFFFEF
+_02252FE0: .word 0x022545B4
+_02252FE4: .word 0x022545D0
+_02252FE8: .word 0xFFFFE0FF
+_02252FEC: .word 0xFFFF1FFF
+ thumb_func_end MOD20_02252ED0
+
+ thumb_func_start MOD20_02252FF0
+MOD20_02252FF0: ; 0x02252FF0
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ add r0, r1, #0
+ bl MOD20_022538A8
+ add r4, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225301C
+ cmp r0, #1
+ beq _02253028
+ cmp r0, #2
+ beq _022530F6
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0225301C:
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+_02253028:
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _022530FC
+ mov r0, #0
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ add r0, #0xc
+ strh r0, [r4, #2]
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bls _02253048
+ mov r0, #0x28
+ strh r0, [r4, #2]
+_02253048:
+ ldrh r1, [r4, #2]
+ lsr r3, r1, #0x1f
+ lsl r2, r1, #0x1e
+ lsr r0, r1, #2
+ sub r2, r2, r3
+ mov r1, #0x1e
+ ror r2, r1
+ mov r1, #0xc
+ sub r6, r1, r0
+ lsl r0, r0, #1
+ str r0, [sp, #0x14]
+ lsl r0, r6, #0x18
+ ldr r1, [sp, #0x14]
+ add r7, r3, r2
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x18
+ lsl r1, r1, #0x18
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xf
+ str r1, [sp, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0x40
+ mov r3, #2
+ bl FUN_02018540
+ cmp r7, #0
+ beq _022530DA
+ sub r0, r6, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r1, #0x18
+ add r2, r7, #0
+ add r2, #0xd8
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_02018540
+ ldr r0, [sp, #0x14]
+ mov r2, #0xd8
+ add r0, r6, r0
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r1, #0x18
+ sub r2, r2, r7
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_02018540
+_022530DA:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bne _022530FC
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_022530F6:
+ ldr r0, [sp, #0x10]
+ bl MOD20_02252EBC
+_022530FC:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02252FF0
+
+ thumb_func_start MOD20_02253100
+MOD20_02253100: ; 0x02253100
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x18
+ str r1, [sp, #0x10]
+ add r0, r1, #0
+ bl MOD20_022538A8
+ add r4, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538A0
+ add r5, r0, #0
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538AC
+ cmp r0, #0
+ beq _0225312C
+ cmp r0, #1
+ beq _02253138
+ cmp r0, #2
+ beq _0225321E
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0225312C:
+ mov r0, #0
+ strh r0, [r4]
+ strh r0, [r4, #2]
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+_02253138:
+ ldrh r0, [r4]
+ add r0, r0, #1
+ strh r0, [r4]
+ ldrh r0, [r4]
+ cmp r0, #0
+ beq _02253224
+ mov r0, #0
+ strh r0, [r4]
+ ldrh r0, [r4, #2]
+ add r0, #8
+ strh r0, [r4, #2]
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bls _02253158
+ mov r0, #0x28
+ strh r0, [r4, #2]
+_02253158:
+ ldrh r0, [r4, #2]
+ mov r3, #2
+ lsr r2, r0, #0x1f
+ lsl r1, r0, #0x1e
+ lsr r7, r0, #2
+ sub r1, r1, r2
+ mov r0, #0x1e
+ ror r1, r0
+ add r6, r2, r1
+ mov r0, #0x16
+ sub r0, r0, r7
+ str r0, [sp, #0x14]
+ lsl r1, r7, #0x18
+ str r3, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xf
+ str r1, [sp, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0xd8
+ bl FUN_02018540
+ ldr r0, [sp, #0x14]
+ lsl r1, r7, #0x18
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r0, #0x18
+ str r0, [sp, #4]
+ lsr r1, r1, #0x18
+ str r1, [sp, #8]
+ mov r1, #0xf
+ str r1, [sp, #0xc]
+ lsl r0, r0, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ mov r2, #0xd8
+ mov r3, #2
+ bl FUN_02018540
+ cmp r6, #0
+ beq _02253202
+ mov r0, #0
+ str r0, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ sub r3, r6, #1
+ mov r2, #0xdb
+ sub r2, r2, r3
+ lsl r2, r2, #0x10
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_02018540
+ ldr r0, [sp, #0x14]
+ add r6, #0xd4
+ sub r0, r0, #1
+ lsl r0, r0, #0x18
+ lsr r0, r0, #0x18
+ str r0, [sp]
+ mov r1, #0x18
+ lsl r2, r6, #0x10
+ str r1, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r5, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ mov r3, #2
+ bl FUN_02018540
+_02253202:
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r5, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ ldrh r0, [r4, #2]
+ cmp r0, #0x28
+ bne _02253224
+ ldr r0, [sp, #0x10]
+ bl MOD20_022538B0
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+_0225321E:
+ ldr r0, [sp, #0x10]
+ bl MOD20_02252EBC
+_02253224:
+ add sp, #0x18
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02253100
+
+ thumb_func_start MOD20_02253228
+MOD20_02253228: ; 0x02253228
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A8
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ add r2, r0, #0
+ cmp r2, #4
+ bhs _02253280
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0x18
+ mov r6, #0xd7
+ sub r2, r6, r2
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ add r0, r6, #0
+ add r0, #0xa9
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD20_022538B0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_02253280:
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253228
+
+ thumb_func_start MOD20_0225328C
+MOD20_0225328C: ; 0x0225328C
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A8
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r5, #0
+ bl MOD20_022538AC
+ add r2, r0, #0
+ cmp r2, #4
+ bhs _022532E4
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0x18
+ mov r6, #0xdb
+ sub r2, r6, r2
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ add r0, r6, #0
+ add r0, #0xa5
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD20_022538B0
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_022532E4:
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD20_0225328C
+
+ thumb_func_start MOD20_022532F0
+MOD20_022532F0: ; 0x022532F0
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0xb
+ add r2, r4, #0
+ str r0, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ add r2, #0x84
+ mov r3, #0x1b
+ bl FUN_02018148
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_02017CD0
+ ldr r0, _02253334 ; =0x00000671
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_02253334: .word 0x00000671
+ thumb_func_end MOD20_022532F0
+
+ thumb_func_start MOD20_02253338
+MOD20_02253338: ; 0x02253338
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0xb
+ add r2, r4, #0
+ str r0, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ add r2, #0x2c
+ mov r3, #0x1b
+ bl FUN_02018148
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_02017CD0
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253338
+
+ thumb_func_start MOD20_02253378
+MOD20_02253378: ; 0x02253378
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #0xb
+ add r2, r4, #0
+ str r0, [sp]
+ mov r1, #4
+ str r1, [sp, #4]
+ str r0, [sp, #8]
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ add r2, #0xdc
+ mov r3, #0x1b
+ bl FUN_02018148
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_02017CD0
+ ldr r0, _022533BC ; =0x0000066F
+ bl FUN_020054C8
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022533BC: .word 0x0000066F
+ thumb_func_end MOD20_02253378
+
+ thumb_func_start MOD20_022533C0
+MOD20_022533C0: ; 0x022533C0
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ mov r1, #0x57
+ add r4, r0, #0
+ lsl r1, r1, #2
+ add r1, r4, r1
+ bl MOD20_02253430
+ mov r0, #0x57
+ lsl r0, r0, #2
+ ldr r1, [r4]
+ add r0, r4, r0
+ bl MOD20_0225354C
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_022533C0
+
+ thumb_func_start MOD20_022533EC
+MOD20_022533EC: ; 0x022533EC
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ add r1, r0, #0
+ mov r0, #0x57
+ lsl r0, r0, #2
+ add r0, r1, r0
+ ldr r1, [r1]
+ bl MOD20_0225354C
+ add r0, r4, #0
+ bl MOD20_02252EBC
+ pop {r4, pc}
+ thumb_func_end MOD20_022533EC
+
+ thumb_func_start MOD20_0225340C
+MOD20_0225340C: ; 0x0225340C
+ push {r4, lr}
+ add r4, r1, #0
+ add r0, r4, #0
+ bl MOD20_022538A0
+ mov r1, #0x57
+ lsl r1, r1, #2
+ add r0, r0, r1
+ bl MOD20_022535A4
+ add r0, r4, #0
+ bl MOD20_02252EBC
+ pop {r4, pc}
+ thumb_func_end MOD20_0225340C
+
+ thumb_func_start MOD20_02253428
+MOD20_02253428: ; 0x02253428
+ mov r2, #0
+ str r2, [r0]
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_02253428
+
+ thumb_func_start MOD20_02253430
+MOD20_02253430: ; 0x02253430
+ push {r4, r5, lr}
+ sub sp, #0xc
+ add r5, r0, #0
+ add r4, r1, #0
+ mov r0, #7
+ str r0, [sp]
+ add r0, r4, #0
+ add r0, #8
+ mov r1, #0xc
+ mov r2, #3
+ mov r3, #4
+ bl MOD20_02253FBC
+ cmp r0, #0
+ beq _022534CC
+ mov r3, #0
+ str r3, [sp]
+ mov r2, #1
+ str r2, [sp, #4]
+ mov r0, #7
+ str r0, [sp, #8]
+ mov r0, #0xc
+ mov r1, #2
+ bl FUN_02006A34
+ mov r0, #0x60
+ str r0, [sp]
+ mov r0, #7
+ mov r1, #0
+ str r0, [sp, #4]
+ mov r0, #0xc
+ mov r2, #5
+ add r3, r1, #0
+ bl FUN_02006930
+ add r0, r5, #0
+ mov r1, #0xf
+ bl MOD20_022534D4
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ ldr r1, _022534D0 ; =0x022545A4
+ add r2, #8
+ bl MOD20_02253E74
+ str r0, [r4, #0x1c]
+ cmp r0, #0
+ beq _022534CC
+ add r2, r4, #0
+ ldr r0, [r4, #4]
+ ldr r1, _022534D0 ; =0x022545A4
+ add r2, #8
+ bl MOD20_02253E74
+ str r0, [r4, #0x20]
+ cmp r0, #0
+ bne _022534AE
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x1c]
+ bl MOD20_02253F14
+ add sp, #0xc
+ pop {r4, r5, pc}
+_022534AE:
+ mov r1, #1
+ lsl r1, r1, #0x10
+ mov r2, #0
+ bl MOD20_02253F54
+ ldr r0, [r4, #0x1c]
+ mov r1, #0xf
+ bl MOD20_02253F9C
+ ldr r0, [r4, #0x20]
+ mov r1, #0xf
+ bl MOD20_02253F9C
+ mov r0, #1
+ str r0, [r4]
+_022534CC:
+ add sp, #0xc
+ pop {r4, r5, pc}
+ .align 2, 0
+_022534D0: .word 0x022545A4
+ thumb_func_end MOD20_02253430
+
+ thumb_func_start MOD20_022534D4
+MOD20_022534D4: ; 0x022534D4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ mov r0, #0x61
+ lsl r0, r0, #2
+ ldr r0, [r5, r0]
+ add r4, r1, #0
+ bl MOD20_02252C3C
+ bl FUN_0204BF44
+ mov r1, #0x62
+ lsl r0, r0, #5
+ lsl r1, r1, #2
+ add r0, r0, #1
+ add r2, r5, r1
+ lsl r0, r0, #1
+ add r0, r2, r0
+ add r1, #0x5a
+ mov r2, #2
+ bl GXS_LoadBGPltt
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ bl MOD20_02252DEC
+ ldr r1, _02253548 ; =0x0000038A
+ add r0, r1, #6
+ ldrh r2, [r5, r1]
+ ldrh r0, [r5, r0]
+ strh r0, [r5, r1]
+ add r0, r1, #6
+ strh r2, [r5, r0]
+ add r0, r1, #0
+ add r2, r1, #0
+ add r0, #0xe
+ add r2, #0x1c
+ ldrh r3, [r5, r2]
+ add r2, r1, #0
+ ldrh r0, [r5, r0]
+ add r2, #0xe
+ strh r3, [r5, r2]
+ add r2, r1, #0
+ add r2, #0x1c
+ strh r0, [r5, r2]
+ sub r0, r1, #2
+ add r0, r5, r0
+ mov r1, #0x20
+ bl DC_FlushRange
+ mov r0, #0xe2
+ lsl r0, r0, #2
+ add r0, r5, r0
+ lsl r1, r4, #5
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02253548: .word 0x0000038A
+ thumb_func_end MOD20_022534D4
+
+ thumb_func_start MOD20_0225354C
+MOD20_0225354C: ; 0x0225354C
+ push {r3, r4, r5, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _02253596
+ ldr r0, [r1]
+ ldr r2, _02253598 ; =0x04000280
+ mov r3, #0
+ add r0, r0, #1
+ strh r3, [r2]
+ str r0, [r2, #0x10]
+ add r0, r2, #0
+ mov r1, #0xa
+ add r0, #0x18
+ str r1, [r0]
+ str r3, [r0, #4]
+ lsr r0, r2, #0xb
+_0225356E:
+ ldrh r1, [r2]
+ tst r1, r0
+ bne _0225356E
+ ldr r0, _0225359C ; =0x040002A0
+ add r3, r0, #0
+ ldr r1, [r0]
+ sub r3, #0x20
+ lsr r0, r0, #0xb
+_0225357E:
+ ldrh r2, [r3]
+ tst r2, r0
+ bne _0225357E
+ ldr r0, _022535A0 ; =0x040002A8
+ ldr r5, [r0]
+ ldr r0, [r4, #0x1c]
+ bl MOD20_02253F28
+ ldr r0, [r4, #0x20]
+ add r1, r5, #0
+ bl MOD20_02253F28
+_02253596:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02253598: .word 0x04000280
+_0225359C: .word 0x040002A0
+_022535A0: .word 0x040002A8
+ thumb_func_end MOD20_0225354C
+
+ thumb_func_start MOD20_022535A4
+MOD20_022535A4: ; 0x022535A4
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r0, [r4]
+ cmp r0, #0
+ beq _022535CA
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x1c]
+ bl MOD20_02253F14
+ ldr r0, [r4, #4]
+ ldr r1, [r4, #0x20]
+ bl MOD20_02253F14
+ add r0, r4, #0
+ add r0, #8
+ bl MOD20_02254014
+ mov r0, #0
+ str r0, [r4]
+_022535CA:
+ pop {r4, pc}
+ thumb_func_end MOD20_022535A4
+
+ thumb_func_start MOD20_022535CC
+MOD20_022535CC: ; 0x022535CC
+ push {r4, r5, r6, lr}
+ sub sp, #0x10
+ add r6, r1, #0
+ add r0, r6, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ add r0, r6, #0
+ bl MOD20_022538A8
+ add r0, r6, #0
+ bl MOD20_022538AC
+ add r5, r0, #0
+ cmp r5, #3
+ bhi _0225365E
+ add r0, r5, r5
+ add r0, pc
+ ldrh r0, [r0, #6]
+ lsl r0, r0, #0x10
+ asr r0, r0, #0x10
+ add pc, r0
+_022535F8: ; jump table
+ .short _02253600 - _022535F8 - 2 ; case 0
+ .short _0225361C - _022535F8 - 2 ; case 1
+ .short _0225361C - _022535F8 - 2 ; case 2
+ .short _0225361C - _022535F8 - 2 ; case 3
+_02253600:
+ mov r0, #6
+ str r0, [sp]
+ ldr r0, _02253664 ; =0x04001050
+ mov r1, #2
+ mov r2, #0x1c
+ mov r3, #0x1a
+ bl G2x_SetBlendAlpha_
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_02017CD0
+_0225361C:
+ mov r3, #2
+ str r3, [sp]
+ mov r1, #0x18
+ mov r2, #0xdb
+ sub r2, r2, r5
+ lsl r2, r2, #0x10
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ lsr r2, r2, #0x10
+ bl FUN_02018540
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ cmp r5, #3
+ bne _02253658
+ add r0, r6, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+_02253658:
+ add r0, r6, #0
+ bl MOD20_022538B0
+_0225365E:
+ add sp, #0x10
+ pop {r4, r5, r6, pc}
+ nop
+_02253664: .word 0x04001050
+ thumb_func_end MOD20_022535CC
+
+ thumb_func_start MOD20_02253668
+MOD20_02253668: ; 0x02253668
+ push {r3, r4, r5, lr}
+ sub sp, #0x10
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ mov r3, #2
+ add r4, r0, #0
+ str r3, [sp]
+ mov r1, #0x18
+ str r1, [sp, #4]
+ mov r0, #0x14
+ str r0, [sp, #8]
+ mov r0, #0xf
+ str r0, [sp, #0xc]
+ lsl r0, r1, #4
+ ldr r0, [r4, r0]
+ mov r1, #5
+ mov r2, #0x40
+ bl FUN_02018540
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_02017CD0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_02017CD0
+ mov r1, #0
+ ldr r0, _022536C4 ; =0x04001050
+ add r2, r1, #0
+ mov r3, #0x1f
+ str r1, [sp]
+ bl G2x_SetBlendAlpha_
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ add sp, #0x10
+ pop {r3, r4, r5, pc}
+ nop
+_022536C4: .word 0x04001050
+ thumb_func_end MOD20_02253668
+
+ thumb_func_start MOD20_022536C8
+MOD20_022536C8: ; 0x022536C8
+ push {r3, r4, r5, lr}
+ add r5, r1, #0
+ add r0, r5, #0
+ bl MOD20_022538A0
+ add r4, r0, #0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #4
+ bl FUN_020178A0
+ mov r0, #6
+ lsl r0, r0, #6
+ ldr r0, [r4, r0]
+ mov r1, #5
+ bl FUN_020178A0
+ add r0, r5, #0
+ bl MOD20_02252EBC
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_022536C8
+
+ thumb_func_start MOD20_022536F4
+MOD20_022536F4: ; 0x022536F4
+ ldr r2, _02253710 ; =0x12345678
+ str r1, [r0]
+ mov r3, #0
+ str r2, [r0, #4]
+ cmp r1, #0
+ bls _0225370C
+ sub r2, r3, #1
+_02253702:
+ add r3, r3, #1
+ str r2, [r0, #8]
+ add r0, r0, #4
+ cmp r3, r1
+ blo _02253702
+_0225370C:
+ bx lr
+ nop
+_02253710: .word 0x12345678
+ thumb_func_end MOD20_022536F4
+
+ thumb_func_start MOD20_02253714
+MOD20_02253714: ; 0x02253714
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ ldr r0, _02253750 ; =0x12345678
+ cmp r1, r0
+ beq _02253726
+ bl ErrorHandling
+_02253726:
+ ldr r6, [r5]
+ mov r2, #0
+ cmp r6, #0
+ bls _0225374A
+ add r3, r5, #0
+ sub r0, r2, #1
+_02253732:
+ ldr r1, [r3, #8]
+ cmp r1, r0
+ bne _02253742
+ lsl r0, r2, #2
+ add r0, r5, r0
+ str r4, [r0, #8]
+ mov r0, #1
+ pop {r4, r5, r6, pc}
+_02253742:
+ add r2, r2, #1
+ add r3, r3, #4
+ cmp r2, r6
+ blo _02253732
+_0225374A:
+ mov r0, #0
+ pop {r4, r5, r6, pc}
+ nop
+_02253750: .word 0x12345678
+ thumb_func_end MOD20_02253714
+
+ thumb_func_start MOD20_02253754
+MOD20_02253754: ; 0x02253754
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ ldr r1, [r5, #4]
+ ldr r0, _02253790 ; =0x12345678
+ cmp r1, r0
+ beq _02253766
+ bl ErrorHandling
+_02253766:
+ ldr r3, [r5]
+ mov r2, #0
+ cmp r3, #0
+ bls _0225378A
+ add r1, r5, #0
+_02253770:
+ ldr r0, [r1, #8]
+ cmp r4, r0
+ bne _02253782
+ mov r1, #0
+ lsl r0, r2, #2
+ mvn r1, r1
+ add r0, r5, r0
+ str r1, [r0, #8]
+ pop {r3, r4, r5, pc}
+_02253782:
+ add r2, r2, #1
+ add r1, r1, #4
+ cmp r2, r3
+ blo _02253770
+_0225378A:
+ bl ErrorHandling
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+_02253790: .word 0x12345678
+ thumb_func_end MOD20_02253754
+
+ thumb_func_start MOD20_02253794
+MOD20_02253794: ; 0x02253794
+ push {r3, r4}
+ ldr r4, [r0]
+ mov r3, #0
+ cmp r4, #0
+ bls _022537B2
+_0225379E:
+ ldr r2, [r0, #8]
+ cmp r1, r2
+ bne _022537AA
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_022537AA:
+ add r3, r3, #1
+ add r0, r0, #4
+ cmp r3, r4
+ blo _0225379E
+_022537B2:
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD20_02253794
+
+ thumb_func_start MOD20_022537B8
+MOD20_022537B8: ; 0x022537B8
+ push {r3, r4}
+ ldr r4, [r0]
+ mov r3, #0
+ cmp r4, #0
+ bls _022537D8
+ sub r1, r3, #1
+_022537C4:
+ ldr r2, [r0, #8]
+ cmp r2, r1
+ beq _022537D0
+ mov r0, #0
+ pop {r3, r4}
+ bx lr
+_022537D0:
+ add r3, r3, #1
+ add r0, r0, #4
+ cmp r3, r4
+ blo _022537C4
+_022537D8:
+ mov r0, #1
+ pop {r3, r4}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_022537B8
+
+ thumb_func_start MOD20_022537E0
+MOD20_022537E0: ; 0x022537E0
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0xc
+ add r7, r0, #0
+ str r2, [sp]
+ mov r0, #0
+ add r5, r1, #0
+ ldr r2, [r7]
+ sub r1, r0, #1
+ str r3, [sp, #4]
+ cmp r2, r1
+ beq _02253880
+ add r3, r7, #0
+ sub r1, r0, #1
+_022537FA:
+ ldr r2, [r3]
+ cmp r5, r2
+ bne _02253876
+ add r6, r0, #0
+ add r0, r7, #0
+ str r0, [sp, #8]
+ add r0, #8
+ mov r1, #0xc
+ str r0, [sp, #8]
+ mul r6, r1
+ ldr r1, [sp, #8]
+ ldr r0, [sp, #0x28]
+ ldr r1, [r1, r6]
+ add r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02253870
+ ldr r0, [sp, #8]
+ ldr r0, [r0, r6]
+ cmp r0, #0
+ beq _0225382C
+ add r0, r4, #0
+ add r0, #0x18
+ b _0225382E
+_0225382C:
+ mov r0, #0
+_0225382E:
+ str r0, [r4, #0xc]
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ bl MOD20_02253714
+ cmp r0, #0
+ beq _02253866
+ ldr r0, [sp]
+ ldr r2, [sp, #0x24]
+ str r0, [r4, #8]
+ mov r0, #0
+ str r0, [r4, #4]
+ str r5, [r4]
+ ldr r0, [sp, #4]
+ add r5, r7, #4
+ str r0, [r4, #0x10]
+ ldr r0, [r5, r6]
+ add r1, r4, #0
+ bl FUN_0200CA44
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02253884
+ ldr r2, [r5, r6]
+ add r1, r4, #0
+ blx r2
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02253866:
+ add r0, r4, #0
+ bl FUN_02016A18
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+_02253870:
+ bl ErrorHandling
+ b _02253880
+_02253876:
+ add r3, #0xc
+ ldr r2, [r3]
+ add r0, r0, #1
+ cmp r2, r1
+ bne _022537FA
+_02253880:
+ bl ErrorHandling
+_02253884:
+ add sp, #0xc
+ pop {r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_022537E0
+
+ thumb_func_start MOD20_02253888
+MOD20_02253888: ; 0x02253888
+ push {r4, lr}
+ add r4, r1, #0
+ ldr r1, [r4]
+ bl MOD20_02253754
+ ldr r0, [r4, #0x14]
+ bl FUN_0200CAB4
+ add r0, r4, #0
+ bl FUN_02016A18
+ pop {r4, pc}
+ thumb_func_end MOD20_02253888
+
+ thumb_func_start MOD20_022538A0
+MOD20_022538A0: ; 0x022538A0
+ ldr r0, [r0, #8]
+ bx lr
+ thumb_func_end MOD20_022538A0
+
+ thumb_func_start MOD20_022538A4
+MOD20_022538A4: ; 0x022538A4
+ ldr r0, [r0, #0x10]
+ bx lr
+ thumb_func_end MOD20_022538A4
+
+ thumb_func_start MOD20_022538A8
+MOD20_022538A8: ; 0x022538A8
+ ldr r0, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD20_022538A8
+
+ thumb_func_start MOD20_022538AC
+MOD20_022538AC: ; 0x022538AC
+ ldr r0, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_022538AC
+
+ thumb_func_start MOD20_022538B0
+MOD20_022538B0: ; 0x022538B0
+ ldr r1, [r0, #4]
+ add r1, r1, #1
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_022538B0
+
+ thumb_func_start MOD20_022538B8
+MOD20_022538B8: ; 0x022538B8
+ str r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_022538B8
+
+ thumb_func_start MOD20_022538BC
+MOD20_022538BC: ; 0x022538BC
+ push {r3, r4, r5, r6}
+ mul r2, r3
+ ldr r4, [sp, #0x18]
+ add r1, r1, r2
+ lsl r6, r1, #1
+ lsl r4, r4, #0xc
+ ldr r1, [sp, #0x10]
+ add r5, r4, #0
+ orr r5, r1
+ add r2, r0, r6
+ strh r5, [r0, r6]
+ add r0, r1, #1
+ orr r0, r4
+ strh r0, [r2, #2]
+ ldr r0, [sp, #0x14]
+ lsl r3, r3, #1
+ add r1, r1, r0
+ add r0, r4, #0
+ orr r0, r1
+ strh r0, [r2, r3]
+ add r0, r1, #1
+ add r1, r4, #0
+ orr r1, r0
+ add r0, r2, r3
+ strh r1, [r0, #2]
+ pop {r3, r4, r5, r6}
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_022538BC
+
+ thumb_func_start MOD20_022538F4
+MOD20_022538F4: ; 0x022538F4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r6, r1, #0
+ mov r0, #8
+ mov r1, #0x20
+ bl FUN_02016998
+ add r7, r0, #0
+ beq _02253960
+ bl MOD20_02252DEC
+ mov r4, #0
+ cmp r6, #0
+ bls _0225395A
+_02253910:
+ ldrh r3, [r5]
+ mov r0, #0x1f
+ lsl r0, r0, #0xa
+ and r0, r3
+ asr r0, r0, #0xa
+ add r2, r0, #0
+ mov r1, #0x72
+ mov r0, #0x1f
+ mul r2, r1
+ and r0, r3
+ add r1, #0xb9
+ mul r1, r0
+ mov r0, #0x3e
+ lsl r0, r0, #4
+ and r0, r3
+ asr r3, r0, #5
+ ldr r0, _02253964 ; =0x0000024B
+ mul r0, r3
+ add r0, r1, r0
+ mov r1, #0xfa
+ add r0, r2, r0
+ lsl r1, r1, #2
+ bl _u32_div_f
+ lsr r1, r0, #3
+ cmp r1, #3
+ bls _02253948
+ mov r1, #3
+_02253948:
+ ldr r0, _02253968 ; =0x0225470C
+ add r4, r4, #1
+ ldrb r0, [r0, r1]
+ lsl r0, r0, #1
+ ldrh r0, [r7, r0]
+ strh r0, [r5]
+ add r5, r5, #2
+ cmp r4, r6
+ blo _02253910
+_0225395A:
+ add r0, r7, #0
+ bl FUN_02016A18
+_02253960:
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02253964: .word 0x0000024B
+_02253968: .word 0x0225470C
+ thumb_func_end MOD20_022538F4
+
+ thumb_func_start MOD20_0225396C
+MOD20_0225396C: ; 0x0225396C
+ push {r3, r4, r5, r6, r7, lr}
+ add r6, r0, #0
+ add r7, r1, #0
+ mov r0, #8
+ mov r1, #0x20
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _022539C2
+ mov r0, #8
+ mov r1, #0x20
+ bl FUN_02016998
+ add r5, r0, #0
+ add r0, r4, #0
+ bl MOD20_02252DEC
+ cmp r5, #0
+ beq _022539BC
+ mov r0, #0
+ add r1, r5, #0
+ lsl r3, r6, #1
+_02253998:
+ ldrh r2, [r4, r3]
+ add r0, r0, #1
+ strh r2, [r1]
+ add r1, r1, #2
+ cmp r0, #0x10
+ blt _02253998
+ add r0, r5, #0
+ mov r1, #0x20
+ bl DC_FlushRange
+ add r0, r5, #0
+ lsl r1, r7, #5
+ mov r2, #0x20
+ bl GXS_LoadOBJPltt
+ add r0, r5, #0
+ bl FUN_02016A18
+_022539BC:
+ add r0, r4, #0
+ bl FUN_02016A18
+_022539C2:
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_0225396C
+
+ thumb_func_start MOD20_022539C4
+MOD20_022539C4: ; 0x022539C4
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ bl FUN_0206B888
+ add r1, r0, #0
+ mov r0, #0x13
+ add r2, sp, #0
+ mov r3, #8
+ bl FUN_02006C08
+ add r4, r0, #0
+ beq _02253A02
+ ldr r0, [sp]
+ mov r1, #0x40
+ ldr r0, [r0, #0xc]
+ bl MOD20_022538F4
+ ldr r0, [sp]
+ mov r1, #0x80
+ ldr r0, [r0, #0xc]
+ bl DC_FlushRange
+ ldr r0, [sp]
+ lsl r1, r5, #5
+ ldr r0, [r0, #0xc]
+ mov r2, #0x80
+ bl GXS_LoadOBJPltt
+ add r0, r4, #0
+ bl FUN_02016A18
+_02253A02:
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_022539C4
+
+ thumb_func_start MOD20_02253A04
+MOD20_02253A04: ; 0x02253A04
+ push {r4, r5, r6, r7, lr}
+ sub sp, #0x24
+ str r0, [sp, #4]
+ lsl r0, r3, #1
+ str r0, [sp, #0xc]
+ add r6, r1, #0
+ str r2, [sp, #8]
+ ldr r2, _02253A9C ; =0x02254708
+ ldr r1, [sp, #0xc]
+ mov r0, #8
+ ldrh r1, [r2, r1]
+ bl FUN_02016998
+ add r7, r0, #0
+ beq _02253A98
+ mov r0, #0x13
+ mov r1, #8
+ bl FUN_02006670
+ str r0, [sp, #0x1c]
+ cmp r0, #0
+ beq _02253A92
+ mov r0, #0
+ str r0, [sp, #0x18]
+ ldr r0, [sp, #8]
+ cmp r0, #0
+ bls _02253A8C
+ ldr r1, _02253AA0 ; =0x02254704
+ ldr r0, [sp, #0xc]
+ ldr r4, [sp, #0x18]
+ ldrh r5, [r1, r0]
+ ldr r1, _02253A9C ; =0x02254708
+ ldrh r0, [r1, r0]
+ str r0, [sp, #0x14]
+ ldr r0, [sp, #4]
+ lsl r0, r0, #5
+ str r0, [sp, #0x10]
+_02253A4E:
+ str r7, [sp]
+ ldr r0, [sp, #0x1c]
+ ldr r1, [r6]
+ ldr r3, [sp, #0x14]
+ mov r2, #0
+ bl FUN_02006814
+ add r0, r7, #0
+ add r1, sp, #0x20
+ bl FUN_020B0088
+ ldr r0, [sp, #0x20]
+ add r1, r5, #0
+ ldr r0, [r0, #0x14]
+ bl DC_FlushRange
+ ldr r0, [sp, #0x20]
+ ldr r1, [sp, #0x10]
+ ldr r0, [r0, #0x14]
+ add r1, r1, r4
+ add r2, r5, #0
+ bl GXS_LoadOBJ
+ ldr r0, [sp, #0x18]
+ add r6, r6, #4
+ add r1, r0, #1
+ ldr r0, [sp, #8]
+ add r4, r4, r5
+ str r1, [sp, #0x18]
+ cmp r1, r0
+ blo _02253A4E
+_02253A8C:
+ ldr r0, [sp, #0x1c]
+ bl FUN_020066F4
+_02253A92:
+ add r0, r7, #0
+ bl FUN_02016A18
+_02253A98:
+ add sp, #0x24
+ pop {r4, r5, r6, r7, pc}
+ .align 2, 0
+_02253A9C: .word 0x02254708
+_02253AA0: .word 0x02254704
+ thumb_func_end MOD20_02253A04
+
+ thumb_func_start MOD20_02253AA4
+MOD20_02253AA4: ; 0x02253AA4
+ push {r3, r4, r5, r6, lr}
+ sub sp, #0x14
+ add r5, r1, #0
+ add r4, r2, #0
+ mov r1, #2
+ add r2, sp, #0xc
+ strh r1, [r2]
+ mov r3, #3
+ strh r3, [r2, #2]
+ mov r3, #0xa
+ strh r3, [r2, #4]
+ mov r3, #0xb
+ strh r3, [r2, #6]
+ str r3, [sp]
+ str r1, [sp, #4]
+ str r1, [sp, #8]
+ lsl r1, r4, #0x18
+ lsr r1, r1, #0x18
+ add r2, sp, #0xc
+ mov r3, #9
+ add r6, r0, #0
+ bl FUN_02018148
+ mov r1, #4
+ add r0, sp, #0xc
+ strh r1, [r0]
+ mov r1, #5
+ strh r1, [r0, #2]
+ mov r1, #0xc
+ strh r1, [r0, #4]
+ mov r1, #0xd
+ strh r1, [r0, #6]
+ mov r3, #0xb
+ lsl r1, r4, #0x18
+ str r3, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #0xc
+ bl FUN_02018148
+ mov r1, #6
+ add r0, sp, #0xc
+ strh r1, [r0]
+ mov r1, #7
+ strh r1, [r0, #2]
+ mov r1, #0xe
+ strh r1, [r0, #4]
+ mov r1, #0xf
+ strh r1, [r0, #6]
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ lsl r1, r4, #0x18
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #0xc
+ mov r3, #0xd
+ bl FUN_02018148
+ add r0, r5, #0
+ mov r1, #0xa
+ bl _u32_div_f
+ mov r1, #0xa
+ mul r1, r0
+ add r0, r0, #4
+ sub r5, r5, r1
+ lsr r1, r0, #2
+ lsl r0, r0, #0x1e
+ lsl r1, r1, #4
+ lsr r0, r0, #0x1d
+ add r2, r1, r0
+ add r0, sp, #0xc
+ strh r2, [r0]
+ add r1, r2, #1
+ strh r1, [r0, #2]
+ add r1, r2, #0
+ add r1, #8
+ strh r1, [r0, #4]
+ add r2, #9
+ strh r2, [r0, #6]
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ lsl r1, r4, #0x18
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #0xc
+ mov r3, #0xf
+ bl FUN_02018148
+ add r0, r5, #4
+ lsr r1, r0, #2
+ lsl r0, r0, #0x1e
+ lsl r1, r1, #4
+ lsr r0, r0, #0x1d
+ add r2, r1, r0
+ add r0, sp, #0xc
+ strh r2, [r0]
+ add r1, r2, #1
+ strh r1, [r0, #2]
+ add r1, r2, #0
+ add r1, #8
+ strh r1, [r0, #4]
+ add r2, #9
+ strh r2, [r0, #6]
+ mov r0, #0xb
+ str r0, [sp]
+ mov r0, #2
+ str r0, [sp, #4]
+ lsl r1, r4, #0x18
+ str r0, [sp, #8]
+ add r0, r6, #0
+ lsr r1, r1, #0x18
+ add r2, sp, #0xc
+ mov r3, #0x11
+ bl FUN_02018148
+ add sp, #0x14
+ pop {r3, r4, r5, r6, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253AA4
+
+ thumb_func_start MOD20_02253BA4
+MOD20_02253BA4: ; 0x02253BA4
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r1, #0
+ add r7, r0, #0
+ add r0, r5, #0
+ mov r1, #0x1c
+ mov r6, #0
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02253C0E
+ add r0, r6, #0
+ str r0, [r4, #0x14]
+ str r0, [r4, #0xc]
+ str r0, [r4, #4]
+ str r7, [r4]
+ str r5, [r4, #0x18]
+ add r0, r7, #0
+ bl FUN_020B0830
+ strh r0, [r4, #0x10]
+ ldrh r1, [r4, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #3
+ bl FUN_02016998
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02253C0E
+ ldrh r2, [r4, #0x10]
+ mov r1, #0x90
+ add r0, r5, #0
+ mul r1, r2
+ bl FUN_02016998
+ str r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02253C0E
+ ldrh r1, [r4, #0x10]
+ add r0, r5, #0
+ lsl r1, r1, #2
+ bl FUN_02016998
+ str r0, [r4, #4]
+ cmp r0, #0
+ beq _02253C0E
+ ldrh r2, [r4, #0x10]
+ ldr r1, [r4, #0xc]
+ bl MOD20_0225403C
+ add r0, r6, #0
+ strh r0, [r4, #0x12]
+ str r0, [r4, #8]
+ mov r6, #1
+_02253C0E:
+ cmp r6, #0
+ bne _02253C46
+ cmp r4, #0
+ beq _02253C42
+ ldr r1, [r4, #0x14]
+ cmp r1, #0
+ beq _02253C22
+ add r0, r5, #0
+ bl FUN_02016A8C
+_02253C22:
+ ldr r1, [r4, #0xc]
+ cmp r1, #0
+ beq _02253C2E
+ add r0, r5, #0
+ bl FUN_02016A8C
+_02253C2E:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _02253C3A
+ add r0, r5, #0
+ bl FUN_02016A8C
+_02253C3A:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02016A8C
+_02253C42:
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02253C46:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253BA4
+
+ thumb_func_start MOD20_02253C4C
+MOD20_02253C4C: ; 0x02253C4C
+ push {r4, lr}
+ add r4, r0, #0
+ beq _02253C76
+ ldr r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02253C5C
+ bl FUN_02016A18
+_02253C5C:
+ ldr r0, [r4, #0xc]
+ cmp r0, #0
+ beq _02253C66
+ bl FUN_02016A18
+_02253C66:
+ ldr r0, [r4, #4]
+ cmp r0, #0
+ beq _02253C70
+ bl FUN_02016A18
+_02253C70:
+ add r0, r4, #0
+ bl FUN_02016A18
+_02253C76:
+ pop {r4, pc}
+ thumb_func_end MOD20_02253C4C
+
+ thumb_func_start MOD20_02253C78
+MOD20_02253C78: ; 0x02253C78
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #0x20
+ str r0, [sp, #0xc]
+ ldrh r0, [r0, #0x12]
+ cmp r0, #0
+ bne _02253C86
+ b _02253E52
+_02253C86:
+ ldr r0, [sp, #0xc]
+ ldr r4, [r0, #8]
+ ldr r5, [r0, #0x14]
+ ldrh r0, [r0, #0x10]
+ cmp r4, #0
+ str r0, [sp, #0x10]
+ bne _02253C96
+ b _02253E38
+_02253C96:
+ add r0, r4, #0
+ mov r1, #2
+ add r0, #8
+ lsl r1, r1, #0xc
+ bl FUN_020B1EC4
+ add r0, r4, #0
+ add r0, #0x86
+ ldrb r0, [r0]
+ cmp r0, #0
+ beq _02253CAE
+ b _02253E30
+_02253CAE:
+ add r6, r4, #0
+ add r6, #0x40
+ mov r0, #0xc
+ ldrsh r0, [r6, r0]
+ ldr r1, [r4, #0x64]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x18]
+ mov r0, #0xe
+ ldrsh r0, [r6, r0]
+ ldr r1, [r4, #0x68]
+ lsl r0, r0, #0xc
+ add r0, r1, r0
+ str r0, [sp, #0x1c]
+ add r0, r4, #0
+ add r0, #0x87
+ ldrb r0, [r0]
+ cmp r0, #0
+ bne _02253CEE
+ add r0, sp, #0x18
+ str r0, [sp]
+ mov r3, #0
+ str r3, [sp, #4]
+ ldr r1, [sp, #0x10]
+ str r3, [sp, #8]
+ lsl r1, r1, #0x10
+ ldr r2, [r4, #0x34]
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl FUN_020B1AF8
+ b _02253D86
+_02253CEE:
+ ldr r0, [r4, #0x6c]
+ bl MTX_Identity22_
+ ldrh r1, [r6, #0x12]
+ mov r0, #4
+ tst r0, r1
+ beq _02253D20
+ add r0, r4, #0
+ add r0, #0x8c
+ ldrh r2, [r6, #0x10]
+ ldrh r0, [r0]
+ ldr r1, _02253E58 ; =0x020FFA38
+ add r0, r2, r0
+ lsl r0, r0, #0x10
+ lsr r0, r0, #0x10
+ asr r0, r0, #4
+ lsl r3, r0, #2
+ add r2, r1, r3
+ ldrsh r1, [r1, r3]
+ mov r3, #2
+ ldrsh r2, [r2, r3]
+ ldr r0, [r4, #0x6c]
+ bl MTX_Rot22_
+ b _02253D3E
+_02253D20:
+ add r0, r4, #0
+ add r0, #0x8c
+ ldrh r0, [r0]
+ cmp r0, #0
+ beq _02253D3E
+ asr r0, r0, #4
+ lsl r3, r0, #2
+ ldr r1, _02253E58 ; =0x020FFA38
+ ldr r0, [r4, #0x6c]
+ add r2, r1, r3
+ ldrsh r1, [r1, r3]
+ mov r3, #2
+ ldrsh r2, [r2, r3]
+ bl MTX_Rot22_
+_02253D3E:
+ ldrh r1, [r6, #0x12]
+ mov r0, #2
+ tst r0, r1
+ beq _02253D62
+ ldr r0, [r6, #4]
+ ldr r7, [r4, #0x6c]
+ bl FX_Inv
+ str r0, [sp, #0x14]
+ ldr r0, [r6, #8]
+ bl FX_Inv
+ add r3, r0, #0
+ ldr r2, [sp, #0x14]
+ add r0, r7, #0
+ add r1, r7, #0
+ bl MTX_ScaleApply22
+_02253D62:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r4, #0x6c]
+ ldr r0, [r0]
+ bl FUN_020B0BB0
+ add r1, sp, #0x18
+ str r1, [sp]
+ str r0, [sp, #4]
+ mov r0, #1
+ str r0, [sp, #8]
+ ldr r1, [sp, #0x10]
+ ldr r2, [r4, #0x34]
+ lsl r1, r1, #0x10
+ ldr r3, [r4, #0x6c]
+ add r0, r5, #0
+ lsr r1, r1, #0x10
+ bl FUN_020B1AF8
+_02253D86:
+ ldr r1, [sp, #0x10]
+ sub r1, r1, r0
+ str r1, [sp, #0x10]
+ add r1, r0, #0
+ sub r0, r0, #1
+ cmp r1, #0
+ beq _02253E30
+ ldr r7, _02253E5C ; =0xDFFFFFFF
+ asr r1, r7, #0x11
+_02253D98:
+ ldr r3, [r5, #4]
+ ldr r2, _02253E60 ; =0xFFFFF3FF
+ add r6, r4, #0
+ and r2, r3
+ add r3, r4, #0
+ add r3, #0x82
+ ldrh r3, [r3]
+ add r6, #0x84
+ lsl r3, r3, #0x1e
+ lsr r3, r3, #0x14
+ orr r2, r3
+ str r2, [r5, #4]
+ ldr r3, _02253E64 ; =0xFFFF0FFF
+ ldrh r6, [r6]
+ and r3, r2
+ lsl r2, r2, #0x10
+ lsr r2, r2, #0x1c
+ add r2, r2, r6
+ lsl r2, r2, #0x1c
+ lsr r2, r2, #0x10
+ orr r2, r3
+ add r6, r4, #0
+ ldr r3, _02253E68 ; =0xFFFFFC00
+ str r2, [r5, #4]
+ add r6, #0x88
+ and r3, r2
+ lsl r2, r2, #0x16
+ ldrh r6, [r6]
+ lsr r2, r2, #0x16
+ add r6, r2, r6
+ ldr r2, _02253E6C ; =0x000003FF
+ and r2, r6
+ orr r2, r3
+ add r6, r4, #0
+ str r2, [r5, #4]
+ add r6, #0x8a
+ ldr r2, [r5]
+ ldr r3, _02253E70 ; =0xEFFFFFFF
+ ldrb r6, [r6]
+ and r3, r2
+ lsl r2, r2, #3
+ lsr r2, r2, #0x1f
+ eor r2, r6
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #3
+ orr r2, r3
+ add r6, r4, #0
+ add r3, r2, #0
+ str r2, [r5]
+ add r6, #0x8b
+ lsl r2, r2, #2
+ ldrb r6, [r6]
+ lsr r2, r2, #0x1f
+ and r3, r7
+ eor r2, r6
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #2
+ orr r2, r3
+ add r6, r4, #0
+ add r3, r2, #0
+ str r2, [r5]
+ add r6, #0x8e
+ lsl r2, r2, #0x13
+ ldrb r6, [r6]
+ lsr r2, r2, #0x1f
+ and r3, r1
+ eor r2, r6
+ lsl r2, r2, #0x1f
+ lsr r2, r2, #0x13
+ orr r2, r3
+ str r2, [r5]
+ add r2, r0, #0
+ add r5, #8
+ sub r0, r0, #1
+ cmp r2, #0
+ bne _02253D98
+_02253E30:
+ ldr r4, [r4, #0x5c]
+ cmp r4, #0
+ beq _02253E38
+ b _02253C96
+_02253E38:
+ ldr r0, [sp, #0xc]
+ ldr r1, [r0, #0x14]
+ cmp r5, r1
+ bls _02253E52
+ sub r3, r5, r1
+ asr r2, r3, #2
+ lsr r2, r2, #0x1d
+ add r2, r3, r2
+ lsl r2, r2, #0xd
+ ldr r0, [r0]
+ lsr r2, r2, #0x10
+ bl FUN_020B0D58
+_02253E52:
+ add sp, #0x20
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_02253E58: .word 0x020FFA38
+_02253E5C: .word 0xDFFFFFFF
+_02253E60: .word 0xFFFFF3FF
+_02253E64: .word 0xFFFF0FFF
+_02253E68: .word 0xFFFFFC00
+_02253E6C: .word 0x000003FF
+_02253E70: .word 0xEFFFFFFF
+ thumb_func_end MOD20_02253C78
+
+ thumb_func_start MOD20_02253E74
+MOD20_02253E74: ; 0x02253E74
+ push {r3, r4, r5, r6, r7, lr}
+ add r7, r0, #0
+ add r5, r1, #0
+ add r6, r2, #0
+ bl MOD20_02254068
+ add r4, r0, #0
+ beq _02253F10
+ ldrb r1, [r5, #0xb]
+ add r0, #0x82
+ strh r1, [r0]
+ add r0, r4, #0
+ ldrb r1, [r5, #0xc]
+ add r0, #0x80
+ strh r1, [r0]
+ add r0, r7, #0
+ add r1, r4, #0
+ bl MOD20_022540A4
+ ldr r0, [r6, #8]
+ str r0, [r4]
+ ldr r0, [r6, #0xc]
+ str r0, [r4, #4]
+ ldrh r1, [r5, #8]
+ bl FUN_020AFC04
+ add r1, r0, #0
+ add r0, r4, #0
+ ldr r2, [r4]
+ add r0, #8
+ bl FUN_020B1F80
+ ldr r1, [r5]
+ ldr r0, [r5, #4]
+ str r1, [r4, #0x64]
+ add r1, r4, #0
+ str r0, [r4, #0x68]
+ mov r0, #0
+ add r1, #0x84
+ strh r0, [r1]
+ add r1, r4, #0
+ add r1, #0x88
+ strh r0, [r1]
+ ldrb r2, [r5, #0xa]
+ mov r1, #1
+ tst r2, r1
+ beq _02253ED4
+ add r0, r1, #0
+_02253ED4:
+ add r1, r4, #0
+ add r1, #0x8a
+ strb r0, [r1]
+ ldrb r1, [r5, #0xa]
+ mov r0, #2
+ tst r0, r1
+ beq _02253EE6
+ mov r1, #1
+ b _02253EE8
+_02253EE6:
+ mov r1, #0
+_02253EE8:
+ add r0, r4, #0
+ add r0, #0x8b
+ strb r1, [r0]
+ add r1, r4, #0
+ mov r0, #0
+ add r1, #0x8e
+ strb r0, [r1]
+ add r1, r4, #0
+ add r1, #0x8c
+ strh r0, [r1]
+ add r1, r4, #0
+ add r1, #0x70
+ str r1, [r4, #0x6c]
+ add r1, r4, #0
+ ldrb r2, [r5, #0xd]
+ add r1, #0x87
+ strb r2, [r1]
+ add r1, r4, #0
+ add r1, #0x86
+ strb r0, [r1]
+_02253F10:
+ add r0, r4, #0
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02253E74
+
+ thumb_func_start MOD20_02253F14
+MOD20_02253F14: ; 0x02253F14
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_022540FC
+ add r0, r5, #0
+ add r1, r4, #0
+ bl MOD20_02254080
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_02253F14
+
+ thumb_func_start MOD20_02253F28
+MOD20_02253F28: ; 0x02253F28
+ push {r4, lr}
+ add r4, r0, #0
+ lsl r1, r1, #0x10
+ ldr r0, [r4, #4]
+ lsr r1, r1, #0x10
+ bl FUN_020AFC04
+ add r1, r0, #0
+ add r0, r4, #0
+ ldr r2, [r4]
+ add r0, #8
+ bl FUN_020B1F80
+ pop {r4, pc}
+ thumb_func_end MOD20_02253F28
+
+ thumb_func_start MOD20_02253F44
+MOD20_02253F44: ; 0x02253F44
+ ldr r0, [r0, #0x10]
+ cmp r0, #0
+ bne _02253F4E
+ mov r0, #1
+ bx lr
+_02253F4E:
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253F44
+
+ thumb_func_start MOD20_02253F54
+MOD20_02253F54: ; 0x02253F54
+ ldr r3, [r0, #0x64]
+ add r1, r3, r1
+ str r1, [r0, #0x64]
+ ldr r1, [r0, #0x68]
+ add r1, r1, r2
+ str r1, [r0, #0x68]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253F54
+
+ thumb_func_start MOD20_02253F64
+MOD20_02253F64: ; 0x02253F64
+ str r1, [r0, #0x64]
+ str r2, [r0, #0x68]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253F64
+
+ thumb_func_start MOD20_02253F6C
+MOD20_02253F6C: ; 0x02253F6C
+ ldr r3, [r0, #0x64]
+ str r3, [r1]
+ ldr r0, [r0, #0x68]
+ str r0, [r2]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253F6C
+
+ thumb_func_start MOD20_02253F78
+MOD20_02253F78: ; 0x02253F78
+ add r0, #0x86
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253F78
+
+ thumb_func_start MOD20_02253F80
+MOD20_02253F80: ; 0x02253F80
+ push {r4, r5, r6, lr}
+ add r5, r1, #0
+ add r6, r0, #0
+ add r4, r2, #0
+ bl MOD20_022540FC
+ add r0, r5, #0
+ add r0, #0x80
+ strh r4, [r0]
+ add r0, r6, #0
+ add r1, r5, #0
+ bl MOD20_022540A4
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD20_02253F80
+
+ thumb_func_start MOD20_02253F9C
+MOD20_02253F9C: ; 0x02253F9C
+ add r0, #0x84
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253F9C
+
+ thumb_func_start MOD20_02253FA4
+MOD20_02253FA4: ; 0x02253FA4
+ add r0, #0x88
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253FA4
+
+ thumb_func_start MOD20_02253FAC
+MOD20_02253FAC: ; 0x02253FAC
+ add r0, #0x8e
+ strb r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253FAC
+
+ thumb_func_start MOD20_02253FB4
+MOD20_02253FB4: ; 0x02253FB4
+ add r0, #0x8c
+ strh r1, [r0]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02253FB4
+
+ thumb_func_start MOD20_02253FBC
+MOD20_02253FBC: ; 0x02253FBC
+ push {r3, r4, r5, r6, r7, lr}
+ ldr r4, [sp, #0x18]
+ add r5, r0, #0
+ add r6, r1, #0
+ add r1, r2, #0
+ add r7, r3, #0
+ str r4, [r5, #0x10]
+ add r0, r6, #0
+ add r2, r4, #0
+ bl FUN_02006C88
+ str r0, [r5]
+ add r0, r6, #0
+ add r1, r7, #0
+ add r2, r4, #0
+ bl FUN_02006C88
+ str r0, [r5, #4]
+ ldr r0, [r5]
+ cmp r0, #0
+ beq _0225400E
+ ldr r1, [r5, #4]
+ cmp r1, #0
+ beq _0225400E
+ add r1, r5, #0
+ add r1, #8
+ bl FUN_020AFEB8
+ cmp r0, #0
+ bne _02253FFC
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_02253FFC:
+ ldr r0, [r5, #4]
+ add r5, #0xc
+ add r1, r5, #0
+ bl thunk_FUN_020afda0
+ cmp r0, #0
+ bne _0225400E
+ mov r0, #0
+ pop {r3, r4, r5, r6, r7, pc}
+_0225400E:
+ mov r0, #1
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02253FBC
+
+ thumb_func_start MOD20_02254014
+MOD20_02254014: ; 0x02254014
+ push {r4, lr}
+ add r4, r0, #0
+ ldr r1, [r4]
+ cmp r1, #0
+ beq _02254028
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A8C
+ mov r0, #0
+ str r0, [r4]
+_02254028:
+ ldr r1, [r4, #4]
+ cmp r1, #0
+ beq _02254038
+ ldr r0, [r4, #0x10]
+ bl FUN_02016A8C
+ mov r0, #0
+ str r0, [r4, #4]
+_02254038:
+ pop {r4, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02254014
+
+ thumb_func_start MOD20_0225403C
+MOD20_0225403C: ; 0x0225403C
+ push {r4, r5, r6, lr}
+ add r6, r2, #0
+ add r5, r0, #0
+ add r0, r6, #0
+ add r4, r1, #0
+ sub r6, r6, #1
+ cmp r0, #0
+ beq _0225405E
+_0225404C:
+ add r0, r4, #0
+ stmia r5!, {r4}
+ bl MOD20_02254060
+ add r0, r6, #0
+ add r4, #0x90
+ sub r6, r6, #1
+ cmp r0, #0
+ bne _0225404C
+_0225405E:
+ pop {r4, r5, r6, pc}
+ thumb_func_end MOD20_0225403C
+
+ thumb_func_start MOD20_02254060
+MOD20_02254060: ; 0x02254060
+ mov r1, #0
+ str r1, [r0, #0x5c]
+ str r1, [r0, #0x60]
+ bx lr
+ thumb_func_end MOD20_02254060
+
+ thumb_func_start MOD20_02254068
+MOD20_02254068: ; 0x02254068
+ ldrh r2, [r0, #0x12]
+ ldrh r1, [r0, #0x10]
+ cmp r2, r1
+ bhs _0225407C
+ add r1, r2, #1
+ strh r1, [r0, #0x12]
+ ldr r1, [r0, #4]
+ lsl r0, r2, #2
+ ldr r0, [r1, r0]
+ bx lr
+_0225407C:
+ mov r0, #0
+ bx lr
+ thumb_func_end MOD20_02254068
+
+ thumb_func_start MOD20_02254080
+MOD20_02254080: ; 0x02254080
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ ldrh r0, [r5, #0x12]
+ add r4, r1, #0
+ cmp r0, #0
+ beq _022540A0
+ add r0, r4, #0
+ bl MOD20_02254060
+ ldrh r0, [r5, #0x12]
+ sub r0, r0, #1
+ strh r0, [r5, #0x12]
+ ldrh r0, [r5, #0x12]
+ ldr r1, [r5, #4]
+ lsl r0, r0, #2
+ str r4, [r1, r0]
+_022540A0:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02254080
+
+ thumb_func_start MOD20_022540A4
+MOD20_022540A4: ; 0x022540A4
+ push {r4, r5}
+ ldr r3, [r0, #8]
+ cmp r3, #0
+ bne _022540B8
+ str r1, [r0, #8]
+ mov r0, #0
+ str r0, [r1, #0x5c]
+ str r0, [r1, #0x60]
+ pop {r4, r5}
+ bx lr
+_022540B8:
+ add r4, r1, #0
+ add r4, #0x80
+ ldr r5, [r4]
+ add r2, r3, #0
+_022540C0:
+ add r4, r2, #0
+ add r4, #0x80
+ ldr r4, [r4]
+ cmp r5, r4
+ bhs _022540E2
+ cmp r2, r3
+ bne _022540D0
+ str r1, [r0, #8]
+_022540D0:
+ ldr r0, [r2, #0x60]
+ str r0, [r1, #0x60]
+ cmp r0, #0
+ beq _022540DA
+ str r1, [r0, #0x5c]
+_022540DA:
+ str r2, [r1, #0x5c]
+ str r1, [r2, #0x60]
+ pop {r4, r5}
+ bx lr
+_022540E2:
+ ldr r4, [r2, #0x5c]
+ cmp r4, #0
+ bne _022540F4
+ str r1, [r2, #0x5c]
+ str r2, [r1, #0x60]
+ mov r0, #0
+ str r0, [r1, #0x5c]
+ pop {r4, r5}
+ bx lr
+_022540F4:
+ add r2, r4, #0
+ b _022540C0
+ thumb_func_end MOD20_022540A4
+
+ thumb_func_start MOD20_022540F8
+MOD20_022540F8: ; 0x022540F8
+ pop {r4, r5}
+ bx lr
+ thumb_func_end MOD20_022540F8
+
+ thumb_func_start MOD20_022540FC
+MOD20_022540FC: ; 0x022540FC
+ ldr r2, [r1, #0x60]
+ cmp r2, #0
+ beq _02254118
+ ldr r0, [r1, #0x5c]
+ cmp r0, #0
+ beq _02254112
+ str r0, [r2, #0x5c]
+ ldr r2, [r1, #0x60]
+ ldr r0, [r1, #0x5c]
+ str r2, [r0, #0x60]
+ bx lr
+_02254112:
+ mov r0, #0
+ str r0, [r2, #0x5c]
+ bx lr
+_02254118:
+ ldr r3, [r1, #0x5c]
+ cmp r3, #0
+ beq _02254128
+ mov r2, #0
+ str r2, [r3, #0x60]
+ ldr r1, [r1, #0x5c]
+ str r1, [r0, #8]
+ bx lr
+_02254128:
+ mov r1, #0
+ str r1, [r0, #8]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_022540FC
+
+ thumb_func_start MOD20_02254130
+MOD20_02254130: ; 0x02254130
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r6, r0, #0
+ add r7, r1, #0
+ str r2, [sp]
+ str r3, [sp, #4]
+ ldr r5, [sp, #0x20]
+ bne _02254144
+ bl ErrorHandling
+_02254144:
+ add r0, r5, #0
+ mov r1, #0x18
+ bl FUN_02016998
+ add r4, r0, #0
+ beq _02254192
+ ldr r0, [sp]
+ str r5, [r4, #8]
+ str r0, [r4, #4]
+ str r6, [r4]
+ mov r1, #0xe
+ ldr r0, [sp, #4]
+ str r7, [r4, #0xc]
+ str r0, [r4, #0x10]
+ add r0, r5, #0
+ mul r1, r7
+ bl FUN_02016998
+ str r0, [r4, #0x14]
+ cmp r0, #0
+ beq _02254188
+ mov r6, #0
+ cmp r7, #0
+ bls _02254192
+ add r5, r6, #0
+_02254176:
+ ldr r0, [r4, #0x14]
+ add r0, r0, r5
+ bl MOD20_022542E4
+ add r6, r6, #1
+ add r5, #0xe
+ cmp r6, r7
+ blo _02254176
+ b _02254192
+_02254188:
+ add r0, r5, #0
+ add r1, r4, #0
+ bl FUN_02016A8C
+ mov r4, #0
+_02254192:
+ add r0, r4, #0
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ thumb_func_end MOD20_02254130
+
+ thumb_func_start MOD20_02254198
+MOD20_02254198: ; 0x02254198
+ push {r4, lr}
+ add r4, r0, #0
+ bne _022541A2
+ bl ErrorHandling
+_022541A2:
+ ldr r0, [r4, #8]
+ ldr r1, [r4, #0x14]
+ bl FUN_02016A8C
+ ldr r0, [r4, #8]
+ add r1, r4, #0
+ bl FUN_02016A8C
+ pop {r4, pc}
+ thumb_func_end MOD20_02254198
+
+ thumb_func_start MOD20_022541B4
+MOD20_022541B4: ; 0x022541B4
+ push {r3, r4, r5, r6, r7, lr}
+ sub sp, #8
+ add r5, r0, #0
+ bl FUN_02020A98
+ str r0, [sp, #4]
+ cmp r0, #0
+ beq _0225420C
+ bl FUN_02020AA4
+ ldr r1, [r5, #0xc]
+ mov r7, #0
+ str r0, [sp]
+ cmp r1, #0
+ bls _02254232
+ add r4, r7, #0
+ add r6, r7, #0
+_022541D6:
+ ldr r0, [r5, #0x14]
+ add r1, r0, r4
+ ldrb r0, [r1, #1]
+ strb r0, [r1, #2]
+ ldr r0, [r5, #0x14]
+ add r0, r0, r4
+ ldrb r0, [r0, #1]
+ cmp r0, #0
+ ldr r0, [r5]
+ beq _022541F2
+ add r0, r0, r6
+ bl FUN_02020A40
+ b _022541F8
+_022541F2:
+ add r0, r0, r6
+ bl FUN_02020A6C
+_022541F8:
+ ldr r1, [r5, #0x14]
+ add r7, r7, #1
+ add r1, r1, r4
+ strb r0, [r1, #1]
+ ldr r1, [r5, #0xc]
+ add r4, #0xe
+ add r6, r6, #4
+ cmp r7, r1
+ blo _022541D6
+ b _02254232
+_0225420C:
+ ldr r1, [r5, #0xc]
+ mov r2, #0
+ str r2, [sp]
+ cmp r1, #0
+ bls _02254232
+ add r0, r2, #0
+ add r3, r2, #0
+_0225421A:
+ ldr r1, [r5, #0x14]
+ add r2, r2, #1
+ add r4, r1, r0
+ ldrb r1, [r4, #1]
+ strb r1, [r4, #2]
+ ldr r1, [r5, #0x14]
+ add r1, r1, r0
+ strb r3, [r1, #1]
+ ldr r1, [r5, #0xc]
+ add r0, #0xe
+ cmp r2, r1
+ blo _0225421A
+_02254232:
+ mov r6, #0
+ cmp r1, #0
+ bls _02254278
+ ldr r7, _022542A8 ; =0x02254710
+ add r4, r6, #0
+_0225423C:
+ ldr r3, [r5, #0x14]
+ ldr r1, [sp, #4]
+ add r0, r3, r4
+ ldrb r3, [r3, r4]
+ ldr r2, [sp]
+ lsl r3, r3, #2
+ ldr r3, [r7, r3]
+ blx r3
+ add r1, r0, #0
+ ldr r0, [r5, #0x14]
+ add r0, r0, r4
+ ldrb r2, [r0, #1]
+ ldrb r0, [r0, #2]
+ cmp r2, r0
+ bne _0225425C
+ mov r2, #2
+_0225425C:
+ cmp r1, #0
+ bne _02254264
+ cmp r2, #2
+ beq _0225426E
+_02254264:
+ ldr r3, [r5, #0x10]
+ ldr r4, [r5, #4]
+ add r0, r6, #0
+ blx r4
+ b _02254278
+_0225426E:
+ ldr r0, [r5, #0xc]
+ add r6, r6, #1
+ add r4, #0xe
+ cmp r6, r0
+ blo _0225423C
+_02254278:
+ ldr r0, [r5, #0xc]
+ add r6, r6, #1
+ cmp r6, r0
+ bhs _022542A2
+ mov r0, #0xe
+ add r4, r6, #0
+ ldr r7, _022542A8 ; =0x02254710
+ mul r4, r0
+_02254288:
+ ldr r3, [r5, #0x14]
+ ldr r1, [sp, #4]
+ add r0, r3, r4
+ ldrb r3, [r3, r4]
+ ldr r2, [sp]
+ lsl r3, r3, #2
+ ldr r3, [r7, r3]
+ blx r3
+ ldr r0, [r5, #0xc]
+ add r6, r6, #1
+ add r4, #0xe
+ cmp r6, r0
+ blo _02254288
+_022542A2:
+ add sp, #8
+ pop {r3, r4, r5, r6, r7, pc}
+ nop
+_022542A8: .word 0x02254710
+ thumb_func_end MOD20_022541B4
+
+ thumb_func_start MOD20_022542AC
+MOD20_022542AC: ; 0x022542AC
+ push {r3, r4}
+ ldr r4, [r0, #0x14]
+ mov r0, #0xe
+ mul r0, r1
+ add r1, r4, r0
+ lsl r0, r2, #1
+ add r0, r1, r0
+ strh r3, [r0, #8]
+ pop {r3, r4}
+ bx lr
+ thumb_func_end MOD20_022542AC
+
+ thumb_func_start MOD20_022542C0
+MOD20_022542C0: ; 0x022542C0
+ ldr r3, [r0, #0x14]
+ mov r0, #0xe
+ mul r0, r1
+ add r0, r3, r0
+ strh r2, [r0, #0xc]
+ bx lr
+ thumb_func_end MOD20_022542C0
+
+ thumb_func_start MOD20_022542CC
+MOD20_022542CC: ; 0x022542CC
+ add r3, r1, #0
+ mov r2, #0xe
+ mul r3, r2
+ ldr r1, [r0, #0x14]
+ mov r2, #0
+ add r1, r1, r3
+ strh r2, [r1, #4]
+ ldr r0, [r0, #0x14]
+ mov r1, #4
+ strb r1, [r0, r3]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_022542CC
+
+ thumb_func_start MOD20_022542E4
+MOD20_022542E4: ; 0x022542E4
+ mov r2, #0
+ strb r2, [r0]
+ strb r2, [r0, #1]
+ strb r2, [r0, #2]
+ strh r2, [r0, #4]
+ strh r2, [r0, #6]
+ add r3, r0, #0
+ add r1, r2, #0
+_022542F4:
+ add r2, r2, #1
+ strh r1, [r3, #8]
+ add r3, r3, #2
+ cmp r2, #2
+ blo _022542F4
+ strh r1, [r0, #0xc]
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_022542E4
+
+ thumb_func_start MOD20_02254304
+MOD20_02254304: ; 0x02254304
+ strb r1, [r0]
+ mov r1, #0
+ strh r1, [r0, #4]
+ bx lr
+ thumb_func_end MOD20_02254304
+
+ thumb_func_start MOD20_0225430C
+MOD20_0225430C: ; 0x0225430C
+ strb r1, [r0]
+ bx lr
+ thumb_func_end MOD20_0225430C
+
+ thumb_func_start MOD20_02254310
+MOD20_02254310: ; 0x02254310
+ ldrh r2, [r0, #4]
+ ldr r1, _02254320 ; =0x0000FFFF
+ cmp r2, r1
+ bhs _0225431C
+ add r1, r2, #1
+ strh r1, [r0, #4]
+_0225431C:
+ bx lr
+ nop
+_02254320: .word 0x0000FFFF
+ thumb_func_end MOD20_02254310
+
+ thumb_func_start MOD20_02254324
+MOD20_02254324: ; 0x02254324
+ ldrh r3, [r0, #4]
+ mov r2, #0
+_02254328:
+ ldrh r1, [r0, #8]
+ cmp r3, r1
+ bne _02254332
+ add r0, r2, #5
+ bx lr
+_02254332:
+ add r2, r2, #1
+ add r0, r0, #2
+ cmp r2, #2
+ blo _02254328
+ mov r0, #0
+ bx lr
+ .align 2, 0
+ thumb_func_end MOD20_02254324
+
+ thumb_func_start MOD20_02254340
+MOD20_02254340: ; 0x02254340
+ push {r3, lr}
+ ldrb r1, [r0, #1]
+ cmp r1, #0
+ beq _02254356
+ cmp r2, #0
+ beq _02254356
+ mov r1, #1
+ bl MOD20_02254304
+ mov r0, #1
+ pop {r3, pc}
+_02254356:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_02254340
+
+ thumb_func_start MOD20_0225435C
+MOD20_0225435C: ; 0x0225435C
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ bl MOD20_02254310
+ ldrb r0, [r5, #1]
+ cmp r0, #0
+ beq _0225438A
+ add r0, r5, #0
+ bl MOD20_02254324
+ cmp r0, #0
+ bne _022543B8
+ ldrh r1, [r5, #0xc]
+ cmp r1, #0
+ beq _022543B6
+ ldrh r0, [r5, #4]
+ cmp r0, r1
+ blo _022543B6
+ mov r0, #0
+ strh r0, [r5, #4]
+ mov r0, #7
+ pop {r3, r4, r5, pc}
+_0225438A:
+ cmp r4, #0
+ beq _0225439A
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD20_02254304
+ mov r0, #2
+ pop {r3, r4, r5, pc}
+_0225439A:
+ ldrh r0, [r5, #6]
+ cmp r0, #0
+ beq _022543AA
+ add r0, r5, #0
+ mov r1, #2
+ bl MOD20_0225430C
+ b _022543B6
+_022543AA:
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD20_02254304
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+_022543B6:
+ mov r0, #0
+_022543B8:
+ pop {r3, r4, r5, pc}
+ .align 2, 0
+ thumb_func_end MOD20_0225435C
+
+ thumb_func_start MOD20_022543BC
+MOD20_022543BC: ; 0x022543BC
+ push {r3, r4, r5, lr}
+ add r5, r0, #0
+ add r4, r2, #0
+ bl MOD20_02254310
+ ldrh r1, [r5, #4]
+ ldrh r0, [r5, #6]
+ cmp r1, r0
+ bls _022543DA
+ add r0, r5, #0
+ mov r1, #0
+ bl MOD20_02254304
+ mov r0, #3
+ pop {r3, r4, r5, pc}
+_022543DA:
+ ldrb r0, [r5, #1]
+ cmp r0, #0
+ beq _022543F0
+ cmp r4, #0
+ beq _022543F0
+ add r0, r5, #0
+ mov r1, #3
+ bl MOD20_02254304
+ mov r0, #4
+ pop {r3, r4, r5, pc}
+_022543F0:
+ mov r0, #0
+ pop {r3, r4, r5, pc}
+ thumb_func_end MOD20_022543BC
+
+ thumb_func_start MOD20_022543F4
+MOD20_022543F4: ; 0x022543F4
+ push {r3, lr}
+ ldrb r1, [r0, #1]
+ cmp r1, #0
+ beq _02254402
+ bl MOD20_02254310
+ b _02254408
+_02254402:
+ mov r1, #0
+ bl MOD20_02254304
+_02254408:
+ mov r0, #0
+ pop {r3, pc}
+ thumb_func_end MOD20_022543F4
+
+ thumb_func_start MOD20_0225440C
+MOD20_0225440C: ; 0x0225440C
+ push {r3, lr}
+ ldrb r1, [r0, #1]
+ cmp r1, #0
+ bne _0225441A
+ mov r1, #0
+ bl MOD20_02254304
+_0225441A:
+ mov r0, #0
+ pop {r3, pc}
+ .align 2, 0
+ thumb_func_end MOD20_0225440C
+
+ thumb_func_start MOD20_02254420
+MOD20_02254420: ; 0x02254420
+ push {r3, r4, r5, r6, r7, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ add r7, r3, #0
+ cmp r5, #0x1e
+ blo _02254432
+ bl ErrorHandling
+_02254432:
+ cmp r4, #0x21
+ blo _0225443A
+ bl ErrorHandling
+_0225443A:
+ cmp r5, #0x1e
+ blo _02254440
+ mov r5, #0
+_02254440:
+ cmp r4, #0x21
+ blo _02254446
+ mov r4, #0
+_02254446:
+ ldr r0, _02254458 ; =0x02254744
+ lsl r1, r5, #1
+ ldrh r0, [r0, r1]
+ lsl r1, r4, #1
+ str r0, [r6]
+ ldr r0, _0225445C ; =0x02254780
+ ldrh r0, [r0, r1]
+ str r0, [r7]
+ pop {r3, r4, r5, r6, r7, pc}
+ .align 2, 0
+_02254458: .word 0x02254744
+_0225445C: .word 0x02254780
+ thumb_func_end MOD20_02254420
+
+ thumb_func_start MOD20_02254460
+MOD20_02254460: ; 0x02254460
+ push {r4, r5, r6, lr}
+ add r5, r0, #0
+ add r4, r1, #0
+ add r6, r2, #0
+ cmp r5, #4
+ blo _02254470
+ bl ErrorHandling
+_02254470:
+ ldr r0, _02254480 ; =0x02254724
+ lsl r1, r5, #3
+ ldr r0, [r0, r1]
+ str r0, [r4]
+ ldr r0, _02254484 ; =0x02254728
+ ldr r0, [r0, r1]
+ str r0, [r6]
+ pop {r4, r5, r6, pc}
+ .align 2, 0
+_02254480: .word 0x02254724
+_02254484: .word 0x02254728
+ thumb_func_end MOD20_02254460
+
+ thumb_func_start MOD20_02254488
+MOD20_02254488: ; 0x02254488
+ push {r4, r5}
+ ldr r5, _022544B8 ; =0x022547C2
+ mov r4, #0
+_0225448E:
+ ldrh r3, [r5]
+ cmp r0, r3
+ bne _022544A8
+ ldr r0, _022544BC ; =0x022547C4
+ lsl r3, r4, #2
+ ldrb r0, [r0, r3]
+ str r0, [r1]
+ ldr r0, _022544C0 ; =0x022547C5
+ ldrb r0, [r0, r3]
+ str r0, [r2]
+ mov r0, #1
+ pop {r4, r5}
+ bx lr
+_022544A8:
+ add r4, r4, #1
+ add r5, r5, #4
+ cmp r4, #0x1d
+ blo _0225448E
+ mov r0, #0
+ pop {r4, r5}
+ bx lr
+ nop
+_022544B8: .word 0x022547C2
+_022544BC: .word 0x022547C4
+_022544C0: .word 0x022547C5
+ thumb_func_end MOD20_02254488
+
+ .section .data
+ ; 0x022544C4
+ .incbin "baserom.nds", 0x285284, 0x37C